From c6a5689f448fb251f464c81e1f3b7544617e4e2b 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, 6 Aug 2021 01:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=89=E6=8B=A9=E5=A4=9A=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/MaterialController.java | 79 +++++++++++++------ .../datasource/entities/MaterialVo4Unit.java | 10 +++ .../datasource/mappers/MaterialMapperEx.java | 2 +- .../erp/service/material/MaterialService.java | 3 +- .../resources/mapper_xml/MaterialMapperEx.xml | 8 +- 5 files changed, 73 insertions(+), 29 deletions(-) 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 25a68a20..863f0341 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 @@ -7,6 +7,7 @@ import com.jsh.erp.constants.BusinessConstants; import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.depot.DepotService; import com.jsh.erp.service.depotItem.DepotItemService; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.service.redis.RedisService; @@ -45,6 +46,9 @@ public class MaterialController { @Resource private UnitService unitService; + @Resource + private DepotService depotService; + @Resource private RedisService redisService; @@ -445,40 +449,63 @@ public class MaterialController { BaseResponseInfo res = new BaseResponseInfo(); try { String[] mpArr = mpList.split(","); - MaterialVo4Unit mu = new MaterialVo4Unit(); List list = materialService.getMaterialByBarCode(barCode); if(list!=null && list.size()>0) { - mu = list.get(0); - String expand = ""; //扩展信息 - for (int i = 0; i < mpArr.length; i++) { - if (mpArr[i].equals("制造商")) { - expand = expand + ((mu.getMfrs() == null || mu.getMfrs().equals("")) ? "" : "(" + mu.getMfrs() + ")"); + for(MaterialVo4Unit mvo: list) { + String expand = ""; //扩展信息 + for (int i = 0; i < mpArr.length; i++) { + if (mpArr[i].equals("制造商")) { + expand = expand + ((mvo.getMfrs() == null || mvo.getMfrs().equals("")) ? "" : "(" + mvo.getMfrs() + ")"); + } + if (mpArr[i].equals("自定义1")) { + expand = expand + ((mvo.getOtherField1() == null || mvo.getOtherField1().equals("")) ? "" : "(" + mvo.getOtherField1() + ")"); + } + if (mpArr[i].equals("自定义2")) { + expand = expand + ((mvo.getOtherField2() == null || mvo.getOtherField2().equals("")) ? "" : "(" + mvo.getOtherField2() + ")"); + } + if (mpArr[i].equals("自定义3")) { + expand = expand + ((mvo.getOtherField3() == null || mvo.getOtherField3().equals("")) ? "" : "(" + mvo.getOtherField3() + ")"); + } } - if (mpArr[i].equals("自定义1")) { - expand = expand + ((mu.getOtherField1() == null || mu.getOtherField1().equals("")) ? "" : "(" + mu.getOtherField1() + ")"); + mvo.setMaterialOther(expand); + if("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { + //零售价 + mvo.setBillPrice(mvo.getCommodityDecimal()); + } else if("CGDD".equals(prefixNo) || "CGRK".equals(prefixNo) || "CGTH".equals(prefixNo) + || "QTRK".equals(prefixNo) || "DBCK".equals(prefixNo) || "ZZD".equals(prefixNo) || "CXD".equals(prefixNo) ) { + //采购价 + mvo.setBillPrice(mvo.getPurchaseDecimal()); + } else if("XSDD".equals(prefixNo) || "XSCK".equals(prefixNo) || "XSTH".equals(prefixNo) || "QTCK".equals(prefixNo)) { + //销售价 + mvo.setBillPrice(mvo.getWholesaleDecimal()); } - if (mpArr[i].equals("自定义2")) { - expand = expand + ((mu.getOtherField2() == null || mu.getOtherField2().equals("")) ? "" : "(" + mu.getOtherField2() + ")"); + //仓库id + JSONArray depotArr = depotService.findDepotByCurrentUser(); + for(Object obj: depotArr){ + JSONObject depotObj = JSONObject.parseObject(obj.toString()); + if(depotObj.get("isDefault")!=null) { + Boolean isDefault = depotObj.getBoolean("isDefault"); + if(isDefault) { + Long depotId = depotObj.getLong("id"); + mvo.setDepotId(depotId); + //库存 + BigDecimal stock = depotItemService.getStockByParam(depotId,mvo.getId(),null,null); + if (mvo.getUnitId()!=null){ + Unit unit = unitService.getUnit(mvo.getUnitId()); + if(mvo.getCommodityUnit().equals(unit.getOtherUnit())) { + if(unit.getRatio()!=0) { + stock = stock.divide(BigDecimal.valueOf(unit.getRatio()),2,BigDecimal.ROUND_HALF_UP); + } + } + } + mvo.setStock(stock); + } + } } - if (mpArr[i].equals("自定义3")) { - expand = expand + ((mu.getOtherField3() == null || mu.getOtherField3().equals("")) ? "" : "(" + mu.getOtherField3() + ")"); - } - } - mu.setMaterialOther(expand); - if("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { - //零售价 - mu.setBillPrice(mu.getCommodityDecimal()); - } else if("CGDD".equals(prefixNo) || "CGRK".equals(prefixNo) || "CGTH".equals(prefixNo) - || "QTRK".equals(prefixNo) || "DBCK".equals(prefixNo) || "ZZD".equals(prefixNo) || "CXD".equals(prefixNo) ) { - //采购价 - mu.setBillPrice(mu.getPurchaseDecimal()); - } else if("XSDD".equals(prefixNo) || "XSCK".equals(prefixNo) || "XSTH".equals(prefixNo) || "QTCK".equals(prefixNo)) { - //销售价 - mu.setBillPrice(mu.getWholesaleDecimal()); } } res.code = 200; - res.data = mu; + res.data = list; } catch(Exception e){ e.printStackTrace(); res.code = 500; 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 5d4fa93a..7633fead 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 @@ -36,6 +36,8 @@ public class MaterialVo4Unit extends Material{ private String sku; + private Long depotId; + public String getUnitName() { return unitName; } @@ -163,4 +165,12 @@ public class MaterialVo4Unit extends Material{ public void setSku(String sku) { this.sku = sku; } + + public Long getDepotId() { + return depotId; + } + + public void setDepotId(Long depotId) { + this.depotId = depotId; + } } \ No newline at end of file diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java index cf8b748f..ab964b60 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/MaterialMapperEx.java @@ -84,7 +84,7 @@ public interface MaterialMapperEx { int setUnitIdToNull(@Param("id") Long id); - List getMaterialByBarCode(@Param("barCode") String barCode); + List getMaterialByBarCode(@Param("barCodeArray") String [] barCodeArray); List getListWithStock( @Param("depotId") Long depotId, 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 fe960b76..b8f861ff 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 @@ -803,7 +803,8 @@ public class MaterialService { } public List getMaterialByBarCode(String barCode) { - return materialMapperEx.getMaterialByBarCode(barCode); + String [] barCodeArray=barCode.split(","); + return materialMapperEx.getMaterialByBarCode(barCodeArray); } public List getListWithStock(Long depotId, List idList, String materialParam, Integer offset, Integer rows) { diff --git a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml index 4e06e658..be14425b 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/MaterialMapperEx.xml @@ -307,8 +307,14 @@ from jsh_material m left join jsh_material_extend me on m.id=me.material_id and ifnull(me.delete_Flag,'0') !='1' left join jsh_unit u on m.unit_id=u.id and ifnull(u.delete_Flag,'0') !='1' - where me.bar_code = #{barCode} + where + me.bar_code in ( + + #{barCode} + + ) and ifnull(m.delete_flag,'0') !='1' + order by me.id desc