diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 9ee5a8db..65eef206 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -9,8 +9,12 @@ - + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index e862d07d..4db70e18 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -2,6 +2,7 @@ + diff --git a/pom.xml b/pom.xml index 2c1a56a5..c1696bc8 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,10 @@ + + org.springframework.boot + spring-boot-starter-test + org.springframework.boot spring-boot-configuration-processor @@ -153,6 +157,7 @@ + org.springframework.boot diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java index 2d3cea85..eac497fa 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java @@ -104,21 +104,25 @@ public class DepositoryController { Map depositoryAllNameAndId = depositoryService.findDepositoryAllNameAndId(); Iterator it = depositoryAllNameAndId.keySet().iterator(); Map map = new HashMap<>(); - // 获取当周仓库库存 + // 获取本周仓库库存 Map thisWeekInventoryByDName = getThisWeekInventoryByDName(depositoryService, depositoryRecordService); while (it.hasNext()){ int i; Object key = it.next(); Double thisDayInventory = 0.0; + // 本周周一的总量 thisDayInventory = ((List)thisWeekInventoryByDName.get(key.toString())).get(0); result.add(thisDayInventory); int j = 0; for (i = days.size() - 1; i > 0; i--) { // 遍历 Map并计算各仓库的入库数 Integer val = (Integer) depositoryAllNameAndId.get(key); - Double depositoryRecordByDateByIn = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), 1, val); - Double depositoryRecordByDateByOut = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), 0, val); - result.add(result.get(j++) - depositoryRecordByDateByIn + depositoryRecordByDateByOut); + // 获取一段时间内的入库额度 + Double depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i), days.get(i - 1), val); + // 获取一段时间内的出库库额度 + Double depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i), days.get(i - 1), val); + Double wareHouseCount1 = result.get(j++) - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1; + result.add(wareHouseCount1); } result.remove(0); Collections.reverse(result); @@ -159,11 +163,7 @@ public class DepositoryController { }else { int now = instance.get(Calendar.DAY_OF_WEEK) - 1; List days = new ArrayList<>(); - instance.add(Calendar.DATE, 1); days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); - instance.add(Calendar.DATE, -1); - days.add(DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime()))); - while (now - 1 > 0) { now--; instance.add(Calendar.DATE, -1); @@ -174,20 +174,40 @@ public class DepositoryController { int i; Object key = it.next(); int j =0; + // 获取今天容量 Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); result.add(toDayInventoryByDName); - for (i = days.size() - 1; i > 0; i--) { + for (i = 0;i 0; i--) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE,1); - String format = formatter.format(calendar.getTime()); - if(days.get(i - 1).equals(format)){ + String format = formatter.format(calendar.getTime()) + " 00:00:00"; + if(Long.compare(days.get(i - 1),DateUtil.DateTimeToTimeStamp(format)) == 0){ continue; } Integer val = (Integer) depositoryAllNameAndId.get(key); - Double depositoryRecordByDateByIn = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), 1, val); - Double depositoryRecordByDateByOut = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), 0, val); - result.add(result.get(j++) - depositoryRecordByDateByIn + depositoryRecordByDateByOut); - } + // 获取一段时间内的入库额度 + //测试 + Double depositoryRecordByDateByIn1 = depositoryRecordService.findApplicationInRecordByDate(days.get(i - 1), days.get(i), val); + // 获取一段时间内的入库额度 + Double depositoryRecordByDateByOut1 = depositoryRecordService.findApplicationOutRecordByDate(days.get(i - 1), days.get(i), val); + Double warehouserCount1 = result.get(j++) - depositoryRecordByDateByIn1 + depositoryRecordByDateByOut1; + result.add(warehouserCount1); + }*/ Collections.reverse(result); map.put(key.toString(), ((ArrayList) result).clone()); result.clear(); @@ -236,19 +256,23 @@ public class DepositoryController { parmOut.put("depository_id",depositoryAll.get(j).getId()); parmOut.put("start", months.get(num + 1)); parmOut.put("end", months.get(num)); - Double wareHouseInCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmIn); - Double wareHouseOutCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmOut); - Double wareHouseCount = result.get(k++) - wareHouseInCountByMonth + wareHouseOutCountByMonth; - result.add(wareHouseCount); - ((Map) sourceList.get(num)).put(depositoryAll.get(j).getDname(), wareHouseCount); + // 获取月份中入库材料的总额 + // 测试 + Double wareHouseInCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parmIn); + // 获取月份中出库材料的总额 + // 测试 + Double wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parmOut); + // 获取当前月库存容量 + // 测试 + Double wareHouseCount1 = result.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1; + result.add(wareHouseCount1); + ((Map) sourceList.get(num)).put(depositoryAll.get(j).getDname(), wareHouseCount1); } for (int i = 0; i < depositoryAll.size(); i++) { result.remove(0); } -// Double last = result.get(result.size() - 1); -// result.clear(); -// result.add(last); } + for (int i = 0; i < depositoryAll.size(); i++) { ((Map) sourceList.get(0)).put(depositoryAll.get(i).getDname(), depositoryService.getToDayInventoryByDName(depositoryAll.get(i).getDname())); } @@ -308,17 +332,20 @@ public class DepositoryController { parmOut.put("start", months.get(j + 1)); parmOut.put("end", months.get(j)); parmOut.put("dname", depositoryAll.get(i).getDname()); - Double wareHouseInCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmIn); - Double wareHouseOutCountByMonth = depositoryRecordService.findMaterialCountByMonth(parmOut); - Double wareHouseCount = (Double) productData.get(k++) - wareHouseInCountByMonth + wareHouseOutCountByMonth; - productData.add(wareHouseCount); + // 获取某个月某材料入库总额 + // 测试 + Double wareHouseInCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parmIn); + // 获取某个月某材料出库总额 + // 测试 + Double wareHouseOutCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parmOut); + Double wareHouseCount1 = (Double) productData.get(k++) - wareHouseInCountByMonth1 + wareHouseOutCountByMonth1; + productData.add(wareHouseCount1); } List result = new ArrayList<>(); result.add(productData.get(0)); for (int j = productData.size() - 2; j > 0;j--) { result.add(productData.get(j)); } -// mapDataList.add(((ArrayList) productData).clone()); mapDataList.add(result); productData.clear(); } @@ -326,6 +353,7 @@ public class DepositoryController { return mapData; } + /** * 根据条件查询仓库 * @@ -654,16 +682,20 @@ public class DepositoryController { depositoryName.add(key.toString()); } Integer val = (Integer) depositoryAllNameAndId.get(key); - Double depositoryRecordByDateAndType = depositoryRecordService.findDepositoryRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val); - drCountbyDrName.add(depositoryRecordByDateAndType); + // 获取一段时间内的库存额度 + // 测试 + Double depositoryRecordByDateAndType1 = depositoryRecordService.findApplicationRecordByDate(days.get(i), days.get(i - 1), Integer.parseInt(type), val); + drCountbyDrName.add(depositoryRecordByDateAndType1); if (i == 2 && flag) { - yesterdayData.put(key.toString(), depositoryRecordByDateAndType); + yesterdayData.put(key.toString(), depositoryRecordByDateAndType1); } } + Collections.reverse(drCountbyDrName); show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); drCountbyDrName.clear(); } - } else { + } + else { if (weekDay == 1) { //只获取今天 Long now = DateUtil.DateTimeByMonthToTimeStamp(formatter.format(instance.getTime())); @@ -676,12 +708,13 @@ public class DepositoryController { Object key = it.next(); depositoryName.add(key.toString()); Integer val = (Integer) depositoryAllNameAndId.get(key); - Double depositoryRecordByDate = depositoryRecordService.findDepositoryRecordByDate(tomorrow,now , Integer.parseInt(type), val); + // 获取一段时间内的库存额度 + Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(tomorrow,now , Integer.parseInt(type), val); Double toDayInventoryByDName = depositoryService.getToDayInventoryByDName(key.toString()); todayInventory.put(key.toString(),toDayInventoryByDName); - yesterdayData.put(key.toString(), depositoryRecordByDate); + yesterdayData.put(key.toString(), depositoryRecordByDate1); List drCountbyDrName = new ArrayList<>(); - drCountbyDrName.add(depositoryRecordByDate); + drCountbyDrName.add(depositoryRecordByDate1); show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); } } else { @@ -709,10 +742,12 @@ public class DepositoryController { depositoryName.add(key.toString()); } Integer val = (Integer) depositoryAllNameAndId.get(key); - Double depositoryRecordByDate = depositoryRecordService.findDepositoryRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val); - drCountbyDrName.add(depositoryRecordByDate); + // 获取一段时间内的库存额度 + // 测试 + Double depositoryRecordByDate1 = depositoryRecordService.findApplicationRecordByDate(days.get(i - 1), days.get(i), Integer.parseInt(type), val); + drCountbyDrName.add(depositoryRecordByDate1); if (i == 2 && flag) { - yesterdayData.put(key.toString(), depositoryRecordByDate); + yesterdayData.put(key.toString(), depositoryRecordByDate1); } } show_data.put(key.toString(), ((ArrayList) drCountbyDrName).clone()); @@ -737,8 +772,11 @@ public class DepositoryController { parm.put("start", months.get(num + 1)); parm.put("end", months.get(num)); parm.put("tname", materialTypeAll.get(j).getTname()); + //根据条件获取月份中材料的总额 Double materialCountByMonth = depositoryRecordService.findMaterialCountByMonth(parm); - ((Map) sourceList.get(num)).put(materialTypeAll.get(j).getTname(), materialCountByMonth); + // 测试 + Double materialCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parm); + ((Map) sourceList.get(num)).put(materialTypeAll.get(j).getTname(), materialCountByMonth1); } } @@ -777,8 +815,10 @@ public class DepositoryController { parm.put("start", months1.get(j)); parm.put("end", months1.get(j - 1)); parm.put("tname", materialTypeAll.get(i).getTname()); - Double materialCountByMonth = depositoryRecordService.findMaterialCountByMonth(parm); - productData.add(materialCountByMonth); + //根据条件获取月份中材料的总额 + // 测试 + Double materialCountByMonth1 = depositoryRecordService.findMaterialCountByMonth1(parm); + productData.add(materialCountByMonth1); } mapDataList.add(((ArrayList) productData).clone()); productData.clear(); @@ -987,4 +1027,11 @@ public class DepositoryController { return new RestResponse(administrationPList,size, 200); } + // 构造树选择框 + @GetMapping("/treeMenus") + public RestResponse InitTreeMenus(){ + List list = depositoryService.InitTreeMenus(); + return new RestResponse(list); + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java index 0fbd6379..797ab33c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/MaterialTypeController.java @@ -1,5 +1,6 @@ package com.dreamchaser.depository_manage.controller; +import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.entity.Depository; import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.exception.MyException; @@ -187,6 +188,12 @@ public class MaterialTypeController { return new RestResponse(allSonDepository); } + @GetMapping("/treeMenus") + public RestResponse InitTreeMenus(){ + List list = materialTypeService.InitTreeMenus(); + return new RestResponse(list); + } + /** * 根据父级类型编号查询所有子类型 @@ -295,4 +302,6 @@ public class MaterialTypeController { } + + } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index 3d93806e..078fd2be 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -258,6 +258,7 @@ public class PageController { }; mv.addObject("depositoryCount", depositoryService.findAllCountByNoDelete()); mv.addObject("allPrice", materialService.findAllPriceNoDelete()); + mv.addObject("allMaterial", materialService.findMaterialAll().size()); /** * 获取当天日期 */ @@ -271,7 +272,12 @@ public class PageController { Map parm = new HashMap<>(); map.put("statr", days.get(1)); map.put("end", days.get(0)); - Integer warehouseRecord = depositoryRecordService.findWarehouseRecord(parm); +// Integer warehouseRecord = depositoryRecordService.findWarehouseRecord(parm); + Integer warehouseRecord = 0; + Map param = new HashMap<>(); + Integer applicationOut = depositoryRecordService.findApplicationOutRecordPCountByCondition(param); + Integer applicationIn = depositoryRecordService.findApplicationInRecordPCountByCondition(param); + warehouseRecord = applicationIn + applicationOut; mv.addObject("warehouseRecord", warehouseRecord); mv.addObject("notices", noticeService.findNoticeByCondition(map)); return mv; @@ -339,6 +345,17 @@ public class PageController { return mv; } + @GetMapping("/selectType") + public String selectType(){ + return "pages/material/selectType"; + } + + + @GetMapping("/selectDepository") + public String selectDepository(){ + return "pages/material/selectDepository"; + } + @GetMapping("material_view") public ModelAndView material_view(Integer id) { ModelAndView mv = new ModelAndView(); @@ -474,17 +491,31 @@ public class PageController { return mv; } + /** + * 入库可视化 + * @return + */ @GetMapping("chart_in_back") public ModelAndView chart_in_back() { ModelAndView mv = new ModelAndView(); mv.setViewName("pages/chart/chart-in_back"); + /** + * 仓库总数 + */ mv.addObject("depositories", depositoryService.findDepositoryAll()); - mv.addObject("reviewers", userService.findReviewers()); + /** + * 材料总数 + */ mv.addObject("materials", materialService.findMaterialAll()); - mv.addObject("InCount", depositoryRecordService.CalculateAllCount(1, "已入库")); - mv.addObject("allInCount", depositoryRecordService.CalculateAllCount(1, "")); - mv.addObject("InPrice", depositoryRecordService.CalculateAllPrice(1, "已入库")); - mv.addObject("allInPrice", depositoryRecordService.CalculateAllPrice(1, "")); + // 转入材料数量 + mv.addObject("InCount", depositoryRecordService.CalculateAllApplicationInCount()); + + // 转入材料总额 + mv.addObject("allInCount", depositoryRecordService.CalculateAllApplicationInCount()); + // 购入材料数量 + mv.addObject("InPrice", depositoryRecordService.CalculateAllApplicationInPrice()); + // 购入材料总额 + mv.addObject("allInPrice", depositoryRecordService.CalculateAllApplicationInPrice()); return mv; } @@ -500,10 +531,14 @@ public class PageController { mv.addObject("depositories", depositoryService.findDepositoryAll()); mv.addObject("reviewers", userService.findReviewers()); mv.addObject("materials", materialService.findMaterialAll()); - mv.addObject("InCount", depositoryRecordService.CalculateAllCount(2, "已出库")); - mv.addObject("allInCount", depositoryRecordService.CalculateAllCount(2, "")); - mv.addObject("InPrice", depositoryRecordService.CalculateAllPrice(2, "已出库")); - mv.addObject("allInPrice", depositoryRecordService.CalculateAllPrice(2, "")); + // 转出材料数量 + mv.addObject("InCount", depositoryRecordService.CalculateAllApplicationOutCount("已出库")); + // 转出材料金额 + mv.addObject("allInCount", depositoryRecordService.CalculateAllApplicationOutCount("")); + // 出售材料数量 + mv.addObject("InPrice", depositoryRecordService.CalculateAllApplicationOutPrice("已出库")); + // 出库材料总额 + mv.addObject("allInPrice", depositoryRecordService.CalculateAllApplicationOutPrice("")); return mv; } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java index c1f6190c..23e57b3f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java +++ b/src/main/java/com/dreamchaser/depository_manage/entity/ExcelInfo.java @@ -19,7 +19,7 @@ import java.math.BigInteger; public class ExcelInfo { /** 材料编号 */ - @ExcelProperty("材料编号") + @ExcelProperty("EAS编号") private Integer id; /** 仓库名称 */ @@ -47,7 +47,7 @@ public class ExcelInfo { private Integer state; /** 存货编码 */ - @ExcelProperty("存货编码") + @ExcelProperty("存货编码(用友U8)") private Long code; /** 规格型号 */ diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java index 3886c027..850f2450 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.java @@ -130,4 +130,10 @@ public interface DepositoryMapper { * @return */ String findUserNameByDepositoryId(Integer depositoryId); + /** + * 根据父级获取子类 + * @param parentId + * @return + */ + List getParentByDepository(Integer parentId); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index 762c1a96..effd09d2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -141,6 +141,13 @@ AND d.state != 3 + + + - + - + - - + + + + + - + + + SELECT ifnull(sum(quantity),0) @@ -892,6 +905,31 @@ and check_time between #{start} and #{end} + + + + + + + + + + + @@ -951,4 +1019,6 @@ + + \ No newline at end of file diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java index 24a49dfe..5d018f0b 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.java @@ -1,5 +1,6 @@ package com.dreamchaser.depository_manage.mapper; +import com.dreamchaser.depository_manage.entity.ExcelInfo; import com.dreamchaser.depository_manage.entity.Material; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -21,6 +22,13 @@ public interface MaterialMapper { * @return 受影响的行数 */ Integer insertMaterial(Map map); + /** + * 增加库存记录 + * + * @param list 参数map + * @return 受影响的行数 + */ + Integer insertMaterials(List list); /** * 更新一条库存记录 diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml index 7826e2f3..1c10363c 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -171,10 +171,10 @@ ) - INSERT INTO material ( - id, depository_id, mname, quantity, price, type_id + id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode ) VALUES ( @@ -183,10 +183,16 @@ #{item.mname}, #{item.quantity}, #{item.price}, - #{item.typeId} + #{item.typeId}, + #{item.code}, + #{item.unit}, + #{item.version}, + #{item.texture}, + #{item.amounts}, + #{item.depositoryCode} ) - --> + diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java index 468ab769..96be1c54 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java @@ -105,5 +105,9 @@ public interface MaterialTypeMapper { */ Integer updateStateByParam(Map map); - + /** + * 查询所有顶级类型 + * @return 所有记录 + */ + List findMaterialTypeNoParent(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml index 2920474a..fbf6e4d0 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -23,6 +23,13 @@ FROM material_type mt where mt.state != 3 and mt.state != 4 + + + +
-
@@ -111,15 +115,44 @@
+ + + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/material/selectType.html b/src/main/resources/templates/pages/material/selectType.html new file mode 100644 index 00000000..1d24defb --- /dev/null +++ b/src/main/resources/templates/pages/material/selectType.html @@ -0,0 +1,47 @@ + + + + + layui + + + + + + + +
+ + + + \ No newline at end of file diff --git a/src/main/resources/templates/pages/other/welcome.html b/src/main/resources/templates/pages/other/welcome.html index 63e0f249..866d6aaf 100644 --- a/src/main/resources/templates/pages/other/welcome.html +++ b/src/main/resources/templates/pages/other/welcome.html @@ -79,10 +79,10 @@
实时 -
记录数
+
物品数
-

7

+

当前分类总记录数
diff --git a/src/test/java/com/dreamchaser/depository_manage/Test.java b/src/test/java/com/dreamchaser/depository_manage/Test.java index 985a1de5..a1959909 100644 --- a/src/test/java/com/dreamchaser/depository_manage/Test.java +++ b/src/test/java/com/dreamchaser/depository_manage/Test.java @@ -1,30 +1,194 @@ -package com.dreamchaser; +package com.dreamchaser.depository_manage; +import com.alibaba.fastjson.JSONObject; +import com.dreamchaser.depository_manage.controller.DepositoryController; +import com.dreamchaser.depository_manage.entity.Depository; +import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.entity.Md5Encryption; import com.dreamchaser.depository_manage.mapper.DepositoryRecordMapper; import com.dreamchaser.depository_manage.mapper.RoleMapper; +import com.dreamchaser.depository_manage.service.DepositoryRecordService; import com.dreamchaser.depository_manage.service.DepositoryService; +import com.dreamchaser.depository_manage.service.MaterialTypeService; +import com.dreamchaser.depository_manage.utils.DateUtil; +import lombok.extern.java.Log; +import lombok.extern.log4j.Log4j2; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; +import org.springframework.test.context.junit4.SpringRunner; -import java.util.List; - +import java.sql.SQLOutput; +import java.text.SimpleDateFormat; +import java.util.*; +@Log4j2 +@RunWith(SpringRunner.class) +@SpringBootTest(classes = DepositoryManageApplication.class) public class Test { @Autowired(required = false) private RedisTemplate redisTemplate; + @Autowired private DepositoryService depositoryService; + @Autowired + private DepositoryRecordService depositoryRecordService; + @Autowired + private MaterialTypeService materialTypeService; + + /** + * { + * "title": '江西' + * ,"id": 1 + * ,"children": [{ + * title: '南昌' + * ,id: 1000 + * ,children: [{ + * title: '青山湖区' + * ,id: 10001 + * },{ + * title: '高新区' + * ,id: 10002 + * }] + * },{ + * title: '九江' + * ,id: 1001 + * },{ + * title: '赣州' + * ,id: 1002 + * }] + * } + */ + + // 材料类型选择 @org.junit.Test public void test1(){ - Double sum = 0.0; - sum += (double)7080/100; - System.out.println(sum); + List materialTypeNoParent = materialTypeService.findMaterialTypeNoParent(); + List list = new ArrayList<>(); + for (int i = 0; i < materialTypeNoParent.size(); i++) { + MaterialType mt = materialTypeNoParent.get(i); + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId()); + Map stringObjectMap = InitTreeMenus(mt,childForMaterialTypeByParent); + list.add(stringObjectMap); + } + String s = JSONObject.toJSONString(list); + System.out.println(s); + } + + + // 构造树形组件数据模板 + public Map InitTreeMenus(MaterialType mt,List children){ + if(mt != null) { + Map map = new HashMap<>(); + map.put("title", mt.getTname()); + map.put("id", mt.getId()); + map.put("children",children); + return map; + } + else{ + return null; + } + } + + // 构造树形组件数据模板 + public Map InitTreeMenus2(Depository d,List children){ + if(d != null) { + Map map = new HashMap<>(); + map.put("title", d.getDname()); + map.put("id", d.getId()); + map.put("children",children); + return map; + } + else{ + return null; + } + } + + + // 判断是否有子类 + public boolean isChildForMaterialType(Integer id){ + boolean flag = false; + Map param = new HashMap<>(); + param.put("parentId",id); + Integer count = materialTypeService.findMaterialTypeCountByCondition(param); + if(count > 0){ + flag = true; + } + return flag; + } + + // 根据id获取子类 + public List findChildForMaterialTypeByParent(Integer id){ + Map param = new HashMap<>(); + List result = new ArrayList<>(); + param.put("parentId",id); + // 获取当前父类的子类 + List materialTypeByCondition = materialTypeService.findMaterialTypeByCondition(param); + if(materialTypeByCondition.size() > 0){ + for (int i = 0; i < materialTypeByCondition.size(); i++) { + MaterialType mt = materialTypeByCondition.get(i); + List childForMaterialTypeByParent = findChildForMaterialTypeByParent(mt.getId()); + result.add(InitTreeMenus(mt,childForMaterialTypeByParent)); + } + return result; + }else{ + return null; + } + } + + // 仓库种类选择 + @org.junit.Test + public void test2(){ + Map param = new HashMap<>(); + param.put("parentId",0); + List depositories = depositoryService.findDepositoryRecordPByCondition(param); + List list = new ArrayList<>(); + for (int i = 0; i < depositories.size(); i++) { + Depository d = depositories.get(i); + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId()); + Map stringObjectMap = InitTreeMenus2(d,childForMaterialTypeByParent); + list.add(stringObjectMap); + } + String s = JSONObject.toJSONString(list); + System.out.println(s); + + } + + //判断是否有子类 + public boolean isChildForDepository(Integer parentId){ + boolean flag = false; + List parentByDepository = depositoryService.getParentByDepository(parentId); + if(parentByDepository.size() > 0 ){ + flag = true; + } + return flag; + } + + // 根据id获取子类 + public List findChildForDepositoryByParent(Integer id){ + Map param = new HashMap<>(); + List result = new ArrayList<>(); + param.put("parentId",id); + // 获取当前父类的子类 + List parentByDepository = depositoryService.getParentByDepository(id); + if(parentByDepository.size() > 0){ + for (int i = 0; i < parentByDepository.size(); i++) { + Depository d = parentByDepository.get(i); + List childForMaterialTypeByParent = findChildForDepositoryByParent(d.getId()); + result.add(InitTreeMenus2(d,childForMaterialTypeByParent)); + } + return result; + }else{ + return null; + } + } + + } diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml index 762c1a96..effd09d2 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/DepositoryMapper.xml @@ -141,6 +141,13 @@ AND d.state != 3 + + + - + - + - - + + + + + - + + + SELECT ifnull(sum(quantity),0) @@ -892,6 +905,31 @@ and check_time between #{start} and #{end} + + + + + + + + + + + @@ -951,4 +1019,6 @@ + + \ No newline at end of file diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml index 7826e2f3..1c10363c 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialMapper.xml @@ -171,10 +171,10 @@ ) - INSERT INTO material ( - id, depository_id, mname, quantity, price, type_id + id, depository_id, mname, quantity, price, type_id,code,unit,version,texture,amounts,depositoryCode ) VALUES ( @@ -183,10 +183,16 @@ #{item.mname}, #{item.quantity}, #{item.price}, - #{item.typeId} + #{item.typeId}, + #{item.code}, + #{item.unit}, + #{item.version}, + #{item.texture}, + #{item.amounts}, + #{item.depositoryCode} ) - --> + diff --git a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml index 2920474a..fbf6e4d0 100644 --- a/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml +++ b/target/classes/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -23,6 +23,13 @@ FROM material_type mt where mt.state != 3 and mt.state != 4 + + + +
-
@@ -111,15 +115,44 @@
+ + + + + \ No newline at end of file diff --git a/target/classes/templates/pages/material/selectType.html b/target/classes/templates/pages/material/selectType.html new file mode 100644 index 00000000..1d24defb --- /dev/null +++ b/target/classes/templates/pages/material/selectType.html @@ -0,0 +1,47 @@ + + + + + layui + + + + + + + +
+ + + + \ No newline at end of file diff --git a/target/classes/templates/pages/other/welcome.html b/target/classes/templates/pages/other/welcome.html index 63e0f249..866d6aaf 100644 --- a/target/classes/templates/pages/other/welcome.html +++ b/target/classes/templates/pages/other/welcome.html @@ -79,10 +79,10 @@
实时 -
记录数
+
物品数
-

7

+

当前分类总记录数