From 985396ba8af2116325b2e7b923065f85b99fa07d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Tue, 23 Nov 2021 00:09:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=B9=E6=8D=AE=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=9F=A5=E8=AF=A2=E5=95=86=E5=93=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/MaterialController.java | 72 +++++++++++-------- 1 file changed, 43 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 eafbd310..9af6d05c 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 @@ -494,6 +494,7 @@ public class MaterialController { @GetMapping(value = "/getMaterialByBarCode") @ApiOperation(value = "根据条码查询商品信息") public BaseResponseInfo getMaterialByBarCode(@RequestParam("barCode") String barCode, + @RequestParam(value = "depotId", required = false) Long depotId, @RequestParam("mpList") String mpList, @RequestParam(required = false, value = "prefixNo") String prefixNo, HttpServletRequest request) throws Exception { @@ -519,48 +520,38 @@ public class MaterialController { } } mvo.setMaterialOther(expand); - if("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { + if ("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { //零售价 mvo.setBillPrice(mvo.getCommodityDecimal()); - } else if("CGDD".equals(prefixNo) || "CGRK".equals(prefixNo) || "CGTH".equals(prefixNo) + } else if ("CGDD".equals(prefixNo) || "CGRK".equals(prefixNo) || "CGTH".equals(prefixNo) || "QTRK".equals(prefixNo) || "DBCK".equals(prefixNo) || "ZZD".equals(prefixNo) || "CXD".equals(prefixNo) - || "PDLR".equals(prefixNo) || "PDFP".equals(prefixNo) ) { + || "PDLR".equals(prefixNo) || "PDFP".equals(prefixNo)) { //采购价 mvo.setBillPrice(mvo.getPurchaseDecimal()); - } else if("XSDD".equals(prefixNo) || "XSCK".equals(prefixNo) || "XSTH".equals(prefixNo) || "QTCK".equals(prefixNo)) { + } else if ("XSDD".equals(prefixNo) || "XSCK".equals(prefixNo) || "XSTH".equals(prefixNo) || "QTCK".equals(prefixNo)) { //销售价 mvo.setBillPrice(mvo.getWholesaleDecimal()); } //仓库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"); - if(!"CGDD".equals(prefixNo) && !"XSDD".equals(prefixNo) ) { - //除订单之外的单据才有仓库 - mvo.setDepotId(depotId); - } - //库存 - BigDecimal stock; - if(StringUtil.isNotEmpty(mvo.getSku())){ - stock = depotItemService.getSkuStockByParam(mvo.getDepotId(),mvo.getMeId(),null,null); - } else { - stock = depotItemService.getStockByParam(mvo.getDepotId(),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); - } - } + if (depotId == null) { + 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 id = depotObj.getLong("id"); + if (!"CGDD".equals(prefixNo) && !"XSDD".equals(prefixNo)) { + //除订单之外的单据才有仓库 + mvo.setDepotId(id); } + getStockByMaterialInfo(mvo); } - mvo.setStock(stock); } } + } else { + mvo.setDepotId(depotId); + getStockByMaterialInfo(mvo); } } } @@ -574,6 +565,29 @@ public class MaterialController { return res; } + /** + * 根据商品信息获取库存,进行赋值 + * @param mvo + * @throws Exception + */ + private void getStockByMaterialInfo(MaterialVo4Unit mvo) throws Exception { + BigDecimal stock; + if (StringUtil.isNotEmpty(mvo.getSku())) { + stock = depotItemService.getSkuStockByParam(mvo.getDepotId(), mvo.getMeId(), null, null); + } else { + stock = depotItemService.getStockByParam(mvo.getDepotId(), 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); + } + /** * 商品库存查询 * @param currentPage