From 86f5684d54dc2d957992909d0aa81e97b7f4974d Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Mon, 13 Jun 2022 18:08:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/WareHouseController.java | 76 ++++++++++++++++--- .../inventory/InvWarehouseController.java | 1 + .../basic/BussinessLocalTypeEntity.java | 7 ++ .../entity/basic/BussinessTypeEntity.java | 1 - .../sale/admin/req/inout/AddOrderRequest.java | 4 + .../service/inout/impl/OrderServiceImpl.java | 26 ++++--- .../mapper/basic/BussinessLocalTypeDao.xml | 3 +- 7 files changed, 97 insertions(+), 21 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java index 7bb5623..2b77118 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java @@ -37,6 +37,8 @@ import com.glxp.sale.admin.service.info.CompanyProductRelevanceService; import com.glxp.sale.admin.service.info.CompanyService; import com.glxp.sale.admin.service.inout.*; import com.glxp.sale.admin.service.inventory.InvPreInProductDetailService; +import com.glxp.sale.admin.service.inventory.InvPreProductDetailService; +import com.glxp.sale.admin.service.inventory.InvProductDetailService; import com.glxp.sale.admin.service.inventory.InvWarehouseService; import com.glxp.sale.admin.service.param.SystemParamConfigService; import com.glxp.sale.admin.thread.IoTransInoutService; @@ -538,6 +540,12 @@ public class WareHouseController { return null; } + @Resource + InvPreProductDetailService invPreProductDetailService; + @Resource + InvProductDetailService invProductDetailService; + + //网页端数据上传调用接口 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/addOrderWeb") @@ -585,7 +593,7 @@ public class WareHouseController { // String isCheck = systemParamConfigService.selectValueByParamKey("code_fill_check"); //三期校验 - if (bussinessTypeEntity.isCodeFillCheck()) { + if (addOrderRequest.isCodeFillCheck()) { BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); if (checkOriginCodeRes != null) return checkOriginCodeRes; @@ -650,7 +658,20 @@ public class WareHouseController { } } } - } + } else //是否查询库存 + if (addOrderRequest.isVailInv()) { + if (bussinessTypeEntity.isAdvanceType()) { + InvProductDetailEntity invProductDetailEntity = invPreProductDetailService.statInvPreInDetail(code); + if (invProductDetailEntity == null) { + addCodeResult.setErrMsg("库存不存在此产品!"); + } + } else { + InvProductDetailEntity invProductDetailEntity = invProductDetailService.statInvPreInDetail(code); + if (invProductDetailEntity == null) { + addCodeResult.setErrMsg("库存不存在此产品!"); + } + } + } if (addOrderRequest.getCustomerId() != null && (addOrderRequest.getFromCorpId() == null || "".equals(addOrderRequest.getFromCorpId()))) { @@ -683,19 +704,25 @@ public class WareHouseController { WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest(); warehouseQueryRequest.setOrderId(orderId); - warehouseQueryRequest.setCode(code); +// warehouseQueryRequest.setCode(code); List warehouseEntitys = codesTempService.findByOrderIdAndCode(warehouseQueryRequest); WarehouseEntity warehouseEntity = new WarehouseEntity(); + WarehouseEntity exitLocalEntity = null; if (warehouseEntitys.size() > 0) { - warehouseEntity = warehouseEntitys.get(0); - warehouseEntity.setCount(warehouseEntity.getCount() + 1); - if (StringUtils.isBlank(warehouseEntity.getSerialNo())) { - codesTempService.updateById(warehouseEntity); - } else { - return ResultVOUtils.error(ResultEnum.DATA_REPEAT); + exitLocalEntity = isExitLocal(code, warehouseEntitys); + if (exitLocalEntity != null) { + warehouseEntity = exitLocalEntity; + warehouseEntity.setCount(warehouseEntity.getCount() + 1); + if (StringUtils.isBlank(warehouseEntity.getSerialNo())) { + codesTempService.updateById(warehouseEntity); + } else { + return ResultVOUtils.error(ResultEnum.DATA_REPEAT); + } } - } else { + } + + if (exitLocalEntity == null) { warehouseEntity.setCode(code); warehouseEntity.setOrderId(orderId); warehouseEntity.setCorpOrderId(addOrderRequest.getCorpOrderId()); @@ -797,6 +824,35 @@ public class WareHouseController { return ResultVOUtils.success(addCodeResult); } + + //判断本单是否存在 + public WarehouseEntity isExitLocal(String code, List warehouseEntityList) { + + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + for (int i = 0; i < warehouseEntityList.size(); i++) { + WarehouseEntity drugCodeSelectEntity = warehouseEntityList.get(i); + if (warehouseEntityList.get(i).getCode().equals(code)) { + return drugCodeSelectEntity; + } + + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getNameCode()).equals(StrUtil.emptyIfNull(udiEntity.getUdi()))) { + continue; + } + + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getBatchNo()).equals(StrUtil.emptyIfNull(udiEntity.getBatchNo()))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getProduceDate()).equals(StrUtil.emptyIfNull(udiEntity.getProduceDate()))) { + continue; + } + if (!StrUtil.emptyIfNull(drugCodeSelectEntity.getExpireDate()).equals(StrUtil.emptyIfNull(udiEntity.getExpireDate()))) { + continue; + } + return drugCodeSelectEntity; + } + return null; + } + //校验供应商是否配送此产品 public BaseResponse checkCorp(WarehouseEntity warehouseEntity, BussinessTypeEntity bussinessTypeEntity) { if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java index 4947dba..b752884 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inventory/InvWarehouseController.java @@ -182,6 +182,7 @@ public class InvWarehouseController { AuthAdmin authAdmin = customerService.getUserBean(); if (authAdmin.getCustomerId() != 110) { filterInvWarehouseRequest.setPcode("0"); + filterInvWarehouseRequest.setStatus(1); invWarehouseEntities = invWarehouseService.filterGroupInvWarehouse(filterInvWarehouseRequest); } else { filterInvWarehouseRequest.setUserId(authAdmin.getId().intValue()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessLocalTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessLocalTypeEntity.java index c559a18..ebde338 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessLocalTypeEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessLocalTypeEntity.java @@ -29,4 +29,11 @@ public class BussinessLocalTypeEntity { private String prefix; private String localPrefix; private boolean preIn; + + private boolean ullageFill; + private boolean scanPreIn; + private boolean vailInv; + private boolean codeFillCheck; + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java index c386f07..0864bfe 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/basic/BussinessTypeEntity.java @@ -64,7 +64,6 @@ public class BussinessTypeEntity { private boolean ullageFill; private boolean scanPreIn; private boolean vailInv; - private boolean codeFillCheck; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddOrderRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddOrderRequest.java index 433a699..cbce487 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/AddOrderRequest.java @@ -25,6 +25,10 @@ public class AddOrderRequest { private boolean ignoreRecentExpire; private boolean ignoreCode; private boolean preCheck; + + private boolean vailInv; + private boolean codeFillCheck; + private String batchNo; private String produceDate; private String expireDate; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java index 5e6b6f3..1f3374a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java @@ -349,6 +349,9 @@ public class OrderServiceImpl implements OrderService { public List getOneOrderById(String id) { List orderIds = new ArrayList<>(); OrderNoResult orderNo = orderDao.selectOrderNos(id); + if (orderNo == null) { + return orderIds; + } Field[] fields = ReflectUtil.getFields(OrderNoResult.class); for (Field field : fields) { String value = String.valueOf(ReflectUtil.getFieldValue(orderNo, field)); @@ -470,10 +473,13 @@ public class OrderServiceImpl implements OrderService { StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest(); stockOrderFilterRequest.setBillNo(orderEntity.getErpFk()); StockOrderEntity stockOrderEntity = stockOrderDao.findOne(stockOrderFilterRequest); - //删除业务单据详情 - stockOrderDetailDao.deleteByOrderIdFk(stockOrderEntity.getId()); - //删除业务单据 - stockOrderDao.deleteById(stockOrderEntity.getId()); + if (stockOrderEntity != null) { + //删除业务单据详情 + stockOrderDetailDao.deleteByOrderIdFk(stockOrderEntity.getId()); + //删除业务单据 + stockOrderDao.deleteById(stockOrderEntity.getId()); + } + //删除扫码单据详情 orderDetailDao.deleteByOrderId(id); //删除扫码单据 @@ -488,15 +494,17 @@ public class OrderServiceImpl implements OrderService { try { orderDao.deleteById(id); orderDetailDao.deleteByOrderId(id); - //查询业务单据 StockOrderFilterRequest stockOrderFilterRequest = new StockOrderFilterRequest(); stockOrderFilterRequest.setBillNo(orderEntity.getErpFk()); StockOrderEntity stockOrderEntity = stockOrderDao.findOne(stockOrderFilterRequest); - //删除业务单据详情 - stockOrderDetailDao.deleteByOrderIdFk(stockOrderEntity.getId()); - //删除业务单据 - stockOrderDao.deleteById(stockOrderEntity.getId()); + if (stockOrderEntity != null) { + //删除业务单据详情 + stockOrderDetailDao.deleteByOrderIdFk(stockOrderEntity.getId()); + //删除业务单据 + stockOrderDao.deleteById(stockOrderEntity.getId()); + } + //删除码 codesDao.deleteByOrderId(id); } catch (Exception e) { diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml index 0f0efcd..23ae6ae 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml @@ -85,7 +85,8 @@ basic_bussiness_type.action,basic_bussiness_type.checkEnable,basic_bustype_local.advanceType,basic_bustype_local.changeEnable, basic_bustype_local.spUse,basic_bussiness_type.storageCode,basic_bussiness_type.corpType,basic_bussiness_type.mainAction, basic_bussiness_type.defaultUnit,basic_bussiness_type.genUnit,basic_bustype_origin.action - thirdAction,basic_bustype_origin.thirdSys,basic_bussiness_type.prefix,basic_bustype_local.prefix localPrefix,preIn + thirdAction,basic_bustype_origin.thirdSys,basic_bussiness_type.prefix,basic_bustype_local.prefix localPrefix,preIn, + basic_bussiness_type.ullageFill, basic_bussiness_type.scanPreIn, basic_bussiness_type.vailInv, basic_bussiness_type.codeFillCheck FROM basic_bustype_local inner join basic_bussiness_type on basic_bustype_local.action = basic_bussiness_type.localAction INNER JOIN inv_warehouse_bussiness_type on basic_bussiness_type.action = inv_warehouse_bussiness_type.action