diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java index 2d34b10e..fce4ad83 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/DepotItemController.java @@ -324,6 +324,7 @@ public class DepotItemController { public BaseResponseInfo findByAll(@RequestParam("currentPage") Integer currentPage, @RequestParam("pageSize") Integer pageSize, @RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam(value = "categoryId", required = false) Long categoryId, @RequestParam("monthTime") String monthTime, @RequestParam("materialParam") String materialParam, @RequestParam("mpList") String mpList, @@ -331,13 +332,17 @@ public class DepotItemController { BaseResponseInfo res = new BaseResponseInfo(); Map map = new HashMap<>(); try { + List categoryIdList = new ArrayList<>(); + if(categoryId != null){ + categoryIdList = materialService.getListByParentId(categoryId); + } String timeA = Tools.firstDayOfMonth(monthTime) + BusinessConstants.DAY_FIRST_TIME; String timeB = Tools.lastDayOfMonth(monthTime) + BusinessConstants.DAY_LAST_TIME; List depotList = parseListByDepotIds(depotIds); List dataList = depotItemService.findByAll(StringUtil.toNull(materialParam), - timeB,(currentPage-1)*pageSize, pageSize); + categoryIdList, timeB,(currentPage-1)*pageSize, pageSize); String[] mpArr = mpList.split(","); - int total = depotItemService.findByAllCount(StringUtil.toNull(materialParam), timeB); + int total = depotItemService.findByAllCount(StringUtil.toNull(materialParam), categoryIdList, timeB); map.put("total", total); //存放数据json数组 JSONArray dataArray = new JSONArray(); @@ -396,21 +401,28 @@ public class DepotItemController { @GetMapping(value = "/totalCountMoney") @ApiOperation(value = "统计总计金额") public BaseResponseInfo totalCountMoney(@RequestParam(value = "depotIds",required = false) String depotIds, + @RequestParam(value = "categoryId", required = false) Long categoryId, @RequestParam("monthTime") String monthTime, @RequestParam("materialParam") String materialParam, HttpServletRequest request) throws Exception{ BaseResponseInfo res = new BaseResponseInfo(); Map map = new HashMap<>(); try { + List categoryIdList = new ArrayList<>(); + if(categoryId != null){ + categoryIdList = materialService.getListByParentId(categoryId); + } String endTime = Tools.lastDayOfMonth(monthTime) + BusinessConstants.DAY_LAST_TIME; List depotList = parseListByDepotIds(depotIds); List dataList = depotItemService.findByAll(StringUtil.toNull(materialParam), - endTime, null, null); + categoryIdList, endTime, null, null); + BigDecimal thisAllStock = BigDecimal.ZERO; BigDecimal thisAllPrice = BigDecimal.ZERO; if (null != dataList) { for (DepotItemVo4WithInfoEx diEx : dataList) { Long mId = diEx.getMId(); BigDecimal thisSum = depotItemService.getStockByParamWithDepotList(depotList,mId,null,endTime); + thisAllStock = thisAllStock.add(thisSum); BigDecimal unitPrice = diEx.getPurchaseDecimal(); if(unitPrice == null) { unitPrice = BigDecimal.ZERO; @@ -418,6 +430,7 @@ public class DepotItemController { thisAllPrice = thisAllPrice.add(thisSum.multiply(unitPrice)); } } + map.put("totalStock", thisAllStock); map.put("totalCount", thisAllPrice); res.code = 200; res.data = map; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index 556542de..aabd8c77 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -56,12 +56,14 @@ public interface DepotItemMapperEx { List findByAll( @Param("materialParam") String materialParam, + @Param("categoryIdList") List categoryIdList, @Param("endTime") String endTime, @Param("offset") Integer offset, @Param("rows") Integer rows); int findByAllCount( @Param("materialParam") String materialParam, + @Param("categoryIdList") List categoryIdList, @Param("endTime") String endTime); List getListWithBugOrSale( diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index 2b86fbff..e385d229 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -299,20 +299,20 @@ public class DepotItemService { return list; } - public List findByAll(String materialParam, String endTime, Integer offset, Integer rows)throws Exception { + public List findByAll(String materialParam, List categoryIdList, String endTime, Integer offset, Integer rows)throws Exception { List list =null; try{ - list = depotItemMapperEx.findByAll(materialParam, endTime, offset, rows); + list = depotItemMapperEx.findByAll(materialParam, categoryIdList, endTime, offset, rows); }catch(Exception e){ JshException.readFail(logger, e); } return list; } - public int findByAllCount(String materialParam, String endTime)throws Exception { + public int findByAllCount(String materialParam, List categoryIdList, String endTime)throws Exception { int result=0; try{ - result = depotItemMapperEx.findByAllCount(materialParam, endTime); + result = depotItemMapperEx.findByAllCount(materialParam, categoryIdList, endTime); }catch(Exception e){ JshException.readFail(logger, e); } diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 3a52af6a..a4b803d1 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -328,6 +328,12 @@ and (me.bar_code like #{bindKey} or m.name like #{bindKey} or m.standard like #{bindKey} or m.model like #{bindKey}) + + and m.category_id in + + #{item} + + and dh.oper_time <= #{endTime} @@ -350,6 +356,12 @@ and (me.bar_code like #{bindKey} or m.name like #{bindKey} or m.standard like #{bindKey} or m.model like #{bindKey}) + + and m.category_id in + + #{item} + + and dh.oper_time <= #{endTime}