From fd842ecc0a464becd5f2612e0270bb07aa0457a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Fri, 18 Nov 2022 23:30:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E5=BA=93=E5=AD=98=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=A4=A7=E5=8D=95?= =?UTF-8?q?=E4=BD=8D=E7=9A=84=E5=BA=93=E5=AD=98=E5=B1=95=E7=A4=BA=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/DepotItemController.java | 5 ++- .../erp/controller/MaterialController.java | 8 ----- .../datasource/entities/MaterialVo4Unit.java | 13 +++++++ .../erp/service/material/MaterialService.java | 34 +++++++++++++++++-- .../mapper_xml/DepotItemMapperEx.xml | 3 +- 5 files changed, 51 insertions(+), 12 deletions(-) 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 e25353be..aa61932f 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 @@ -331,7 +331,8 @@ public class DepotItemController { String materialOther = getOtherInfo(mpArr, diEx); item.put("materialOther", materialOther); item.put("materialColor", diEx.getMColor()); - item.put("unitName", diEx.getMaterialUnit()); + item.put("unitId", diEx.getUnitId()); + item.put("unitName", null!=diEx.getUnitId() ? diEx.getMaterialUnit()+"[多单位]" : diEx.getMaterialUnit()); BigDecimal prevSum = depotItemService.getStockByParamWithDepotList(depotList,mId,null,timeA); Map intervalMap = depotItemService.getIntervalMapByParamWithDepotList(depotList,mId,timeA,timeB); BigDecimal inSum = intervalMap.get("inSum"); @@ -341,6 +342,8 @@ public class DepotItemController { item.put("inSum", inSum); item.put("outSum", outSum); item.put("thisSum", thisSum); + //将小单位的库存换算为大单位的库存 + item.put("bigUnitStock", materialService.getBigUnitStock(thisSum, diEx.getUnitId())); item.put("unitPrice", diEx.getPurchaseDecimal()); item.put("thisAllPrice", thisSum.multiply(diEx.getPurchaseDecimal())); dataArray.add(item); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java index 75afe391..9f65814a 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/MaterialController.java @@ -593,11 +593,6 @@ public class MaterialController { depotList.add(object.getLong("id")); } } - Map initialStockMap = new HashMap<>(); - List initialStockList = materialService.getInitialStockWithMaterial(depotList); - for (MaterialInitialStockWithMaterial mism: initialStockList) { - initialStockMap.put(mism.getMaterialId(), mism.getNumber()); - } List dataList = materialService.getListWithStock(depotList, idList, StringUtil.toNull(materialParam), zeroStock, StringUtil.safeSqlParse(column), StringUtil.safeSqlParse(order), (currentPage-1)*pageSize, pageSize); int total = materialService.getListWithStockCount(depotList, idList, StringUtil.toNull(materialParam), zeroStock); @@ -605,9 +600,6 @@ public class MaterialController { map.put("total", total); map.put("currentStock", materialVo4Unit.getCurrentStock()); map.put("currentStockPrice", materialVo4Unit.getCurrentStockPrice()); - for(MaterialVo4Unit item: dataList) { - item.setInitialStock(initialStockMap.get(item.getId())); - } map.put("rows", dataList); res.code = 200; res.data = map; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java index 7633fead..a1c43037 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/entities/MaterialVo4Unit.java @@ -38,6 +38,11 @@ public class MaterialVo4Unit extends Material{ private Long depotId; + /** + * 换算为大单位的库存 + */ + private String bigUnitStock; + public String getUnitName() { return unitName; } @@ -173,4 +178,12 @@ public class MaterialVo4Unit extends Material{ public void setDepotId(Long depotId) { this.depotId = depotId; } + + public String getBigUnitStock() { + return bigUnitStock; + } + + public void setBigUnitStock(String bigUnitStock) { + this.bigUnitStock = bigUnitStock; + } } \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java index 1c2956bd..6051cb8a 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -133,6 +133,7 @@ public class MaterialService { for (MaterialVo4Unit m : list) { m.setMaterialOther(getMaterialOtherByParam(mpArr, m)); m.setStock(currentStockMap.get(m.getId())!=null? currentStockMap.get(m.getId()): BigDecimal.ZERO); + m.setBigUnitStock(getBigUnitStock(m.getStock(), m.getUnitId())); resList.add(m); } } @@ -1103,8 +1104,19 @@ public class MaterialService { } public List getListWithStock(List depotList, List idList, String materialParam, Integer zeroStock, - String column, String order, Integer offset, Integer rows) { - return materialMapperEx.getListWithStock(depotList, idList, materialParam, zeroStock, column, order, offset, rows); + String column, String order, Integer offset, Integer rows) throws Exception { + Map initialStockMap = new HashMap<>(); + List initialStockList = getInitialStockWithMaterial(depotList); + for (MaterialInitialStockWithMaterial mism: initialStockList) { + initialStockMap.put(mism.getMaterialId(), mism.getNumber()); + } + List dataList = materialMapperEx.getListWithStock(depotList, idList, materialParam, zeroStock, column, order, offset, rows); + for(MaterialVo4Unit item: dataList) { + item.setUnitName(null!=item.getUnitId()?item.getUnitName() + "[多单位]":item.getUnitName()); + item.setInitialStock(initialStockMap.get(item.getId())); + item.setBigUnitStock(getBigUnitStock(item.getCurrentStock(), item.getUnitId())); + } + return dataList; } public int getListWithStockCount(List depotList, List idList, String materialParam, Integer zeroStock) { @@ -1115,6 +1127,24 @@ public class MaterialService { return materialMapperEx.getTotalStockAndPrice(depotList, idList, materialParam); } + /** + * 将小单位的库存换算为大单位的库存 + * @param stock + * @param unitId + * @return + * @throws Exception + */ + public String getBigUnitStock(BigDecimal stock, Long unitId) throws Exception { + String bigUnitStock = ""; + if(null!= unitId) { + Unit unit = unitService.getUnit(unitId); + if(unit.getRatio()!=0 && stock!=null) { + bigUnitStock = stock.divide(BigDecimal.valueOf(unit.getRatio()),2,BigDecimal.ROUND_HALF_UP) + unit.getOtherUnit(); + } + } + return bigUnitStock; + } + /** * 构造扩展信息 * @param mpArr diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 6d5dd02e..89c6b7a3 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -47,6 +47,7 @@ + @@ -249,7 +250,7 @@