优化根据条码查询商品信息接口,增加仓库参数

This commit is contained in:
季圣华
2021-11-23 00:09:28 +08:00
parent c1cfeadf17
commit 985396ba8a

View File

@@ -494,6 +494,7 @@ public class MaterialController {
@GetMapping(value = "/getMaterialByBarCode") @GetMapping(value = "/getMaterialByBarCode")
@ApiOperation(value = "根据条码查询商品信息") @ApiOperation(value = "根据条码查询商品信息")
public BaseResponseInfo getMaterialByBarCode(@RequestParam("barCode") String barCode, public BaseResponseInfo getMaterialByBarCode(@RequestParam("barCode") String barCode,
@RequestParam(value = "depotId", required = false) Long depotId,
@RequestParam("mpList") String mpList, @RequestParam("mpList") String mpList,
@RequestParam(required = false, value = "prefixNo") String prefixNo, @RequestParam(required = false, value = "prefixNo") String prefixNo,
HttpServletRequest request) throws Exception { HttpServletRequest request) throws Exception {
@@ -519,48 +520,38 @@ public class MaterialController {
} }
} }
mvo.setMaterialOther(expand); mvo.setMaterialOther(expand);
if("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) { if ("LSCK".equals(prefixNo) || "LSTH".equals(prefixNo)) {
//零售价 //零售价
mvo.setBillPrice(mvo.getCommodityDecimal()); 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) || "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()); 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()); mvo.setBillPrice(mvo.getWholesaleDecimal());
} }
//仓库id //仓库id
JSONArray depotArr = depotService.findDepotByCurrentUser(); if (depotId == null) {
for(Object obj: depotArr){ JSONArray depotArr = depotService.findDepotByCurrentUser();
JSONObject depotObj = JSONObject.parseObject(obj.toString()); for (Object obj : depotArr) {
if(depotObj.get("isDefault")!=null) { JSONObject depotObj = JSONObject.parseObject(obj.toString());
Boolean isDefault = depotObj.getBoolean("isDefault"); if (depotObj.get("isDefault") != null) {
if(isDefault) { Boolean isDefault = depotObj.getBoolean("isDefault");
Long depotId = depotObj.getLong("id"); if (isDefault) {
if(!"CGDD".equals(prefixNo) && !"XSDD".equals(prefixNo) ) { Long id = depotObj.getLong("id");
//除订单之外的单据才有仓库 if (!"CGDD".equals(prefixNo) && !"XSDD".equals(prefixNo)) {
mvo.setDepotId(depotId); //除订单之外的单据才有仓库
} mvo.setDepotId(id);
//库存
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);
}
}
} }
getStockByMaterialInfo(mvo);
} }
mvo.setStock(stock);
} }
} }
} else {
mvo.setDepotId(depotId);
getStockByMaterialInfo(mvo);
} }
} }
} }
@@ -574,6 +565,29 @@ public class MaterialController {
return res; 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 * @param currentPage