From bb4b592466099f0616fa16b48211bddd7cb6a138 Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Mon, 13 Jun 2022 17:27:24 +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 | 74 ++++++++++++++++--- .../basic/BussinessLocalTypeEntity.java | 4 + .../api/admin/req/inout/AddOrderRequest.java | 5 ++ .../service/inout/impl/OrderServiceImpl.java | 23 ++++-- .../mapper/basic/BussinessLocalTypeDao.xml | 3 +- 5 files changed, 89 insertions(+), 20 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java index 45cf170e..ca3217f6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inout/WareHouseController.java @@ -42,6 +42,8 @@ import com.glxp.api.admin.service.info.CompanyProductRelevanceService; import com.glxp.api.admin.service.info.SystemParamConfigService; import com.glxp.api.admin.service.inout.*; import com.glxp.api.admin.service.inventory.InvPreInProductDetailService; +import com.glxp.api.admin.service.inventory.InvPreProductDetailService; +import com.glxp.api.admin.service.inventory.InvProductDetailService; import com.glxp.api.admin.thread.IoTransInoutService; import com.glxp.api.admin.util.*; import com.glxp.api.common.enums.ResultEnum; @@ -588,7 +590,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; @@ -652,7 +654,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.getFromCorpId() == null) { @@ -678,19 +693,23 @@ 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()); @@ -803,6 +822,34 @@ public class WareHouseController { return null; } + //判断本单是否存在 + 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; + } + //校验产品ID唯一性 public BaseResponse checkRelId(BussinessTypeEntity bussinessTypeEntity, WarehouseEntity warehouseEntity) { @@ -944,6 +991,11 @@ public class WareHouseController { return ResultVOUtils.success("绑定成功"); } + @Resource + InvPreProductDetailService invPreProductDetailService; + @Resource + InvProductDetailService invProductDetailService; + //网页端数据上传调用接口 @AuthRuleAnnotation("") diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessLocalTypeEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessLocalTypeEntity.java index 5a897240..1df14b34 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessLocalTypeEntity.java +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessLocalTypeEntity.java @@ -29,5 +29,9 @@ public class BussinessLocalTypeEntity { private String localPrefix; private boolean preIn; private boolean outTospms; + private boolean ullageFill; + private boolean scanPreIn; + private boolean vailInv; + private boolean codeFillCheck; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inout/AddOrderRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inout/AddOrderRequest.java index f0f355ea..fa8eda57 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/req/inout/AddOrderRequest.java +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inout/AddOrderRequest.java @@ -26,4 +26,9 @@ public class AddOrderRequest { private String produceDate; private String expireDate; private String serialNo; + + + private boolean vailInv; + private boolean codeFillCheck; + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java index d387d9c9..46a7e422 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inout/impl/OrderServiceImpl.java @@ -395,6 +395,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)); @@ -511,10 +514,12 @@ 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); //删除扫码单据 @@ -534,10 +539,12 @@ 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()); + } //删除码 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 fe760420..e216bbb0 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessLocalTypeDao.xml @@ -127,7 +127,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,basic_bustype_local.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