From 3e257c5d4b6a179f3d49d631635cb68c4eb2b0d1 Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Mon, 13 Jun 2022 14:50:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2=EF=BC=8C?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E8=AF=A6=E6=83=85=EF=BC=8C=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/WareHouseController.java | 11 ++- .../inventory/InvPreInProductsController.java | 31 ++++---- .../inventory/InvPreProductsController.java | 16 +++- .../inventory/InvProductsController.java | 20 +++-- .../entity/basic/BussinessTypeEntity.java | 2 + .../admin/res/inout/WarehouseResponse.java | 5 +- .../inventory/InvPreProductDetailService.java | 6 ++ .../inventory/InvProductDetailService.java | 5 ++ .../InvPreInProductDetailServiceImpl.java | 16 ++++ .../impl/InvPreProductDetailServiceImpl.java | 47 ++++++++++++ .../impl/InvProductDetailServiceImpl.java | 41 +++++++++- .../api/admin/thread/IoTransInoutService.java | 75 ++++++++++++++++++- .../mybatis/mapper/basic/BussinessTypeDao.xml | 15 ++-- .../inventory/InvPreInProductDetailDao.xml | 11 ++- .../inventory/InvPreProductDetailDao.xml | 10 ++- .../mapper/inventory/InvProductDetailDao.xml | 10 ++- 16 files changed, 279 insertions(+), 42 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 f0b50f44..45cf170e 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 @@ -585,9 +585,14 @@ public class WareHouseController { if (StrUtil.isEmpty(udiEntity.getSerialNo()) && StrUtil.isEmpty(udiEntity.getBatchNo())) { return ResultVOUtils.error(500, "批次号不能为空!"); } - BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); - if (checkOriginCodeRes != null) - return checkOriginCodeRes; + +// String isCheck = systemParamConfigService.selectValueByParamKey("code_fill_check"); + //三期校验 + if (bussinessTypeEntity.isCodeFillCheck()) { + BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity); + if (checkOriginCodeRes != null) + return checkOriginCodeRes; + } //过期提醒: SystemParamConfigEntity expireParamConfigEntity = systemParamConfigService.selectByParamKey("expire_date_tip"); diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreInProductsController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreInProductsController.java index a5d7caf7..b61843ca 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreInProductsController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreInProductsController.java @@ -38,6 +38,7 @@ import java.util.List; @RestController public class InvPreInProductsController { + @Resource InvPreInProductService invProductService; @Resource @@ -131,18 +132,6 @@ public class InvPreInProductsController { return ResultVOUtils.success(pageSimpleResponse); } - @AuthRuleAnnotation("") - @PostMapping("spms/prein/inv/products/clearAll") - public BaseResponse clearAllInvProduct(@RequestBody DeleteRequest deleteRequest) { - - boolean b = invProductService.deleteAll(); - if (b) { - return ResultVOUtils.success("删除成功"); - } else { - return ResultVOUtils.error(500, "删除失败!"); - } - } - @AuthRuleAnnotation("") @PostMapping("spms/prein/inv/products/delete") public BaseResponse deleteInvProduct(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { @@ -156,8 +145,12 @@ public class InvPreInProductsController { invProductService.deleteById(id); FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest(); detailRequest.setSupId(invProductEntity.getSupId()); - detailRequest.setBatchNo(invProductEntity.getBatchNo()); + if (StrUtil.isEmpty(invProductEntity.getBatchNo())) { + detailRequest.setBatchNo("empty"); + } else + detailRequest.setBatchNo(invProductEntity.getBatchNo()); detailRequest.setProductIdFk(invProductEntity.getRelIdFk()); + detailRequest.setInvStorageCode(invProductEntity.getInvStorageCode()); invProductDetailService.deleteByProductId(detailRequest); return ResultVOUtils.success("删除成功"); } else { @@ -165,6 +158,18 @@ public class InvPreInProductsController { } } + @AuthRuleAnnotation("") + @PostMapping("spms/prein/inv/products/clearAll") + public BaseResponse clearAllInvProduct(@RequestBody DeleteRequest deleteRequest) { + + boolean b = invProductService.deleteAll(); + if (b) { + return ResultVOUtils.success("删除成功"); + } else { + return ResultVOUtils.error(500, "删除失败!"); + } + } + @AuthRuleAnnotation("") @GetMapping("spms/prein/inv/products/stat") public BaseResponse statInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest) { diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreProductsController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreProductsController.java index d75cc1fd..9043a21b 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreProductsController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvPreProductsController.java @@ -112,8 +112,12 @@ public class InvPreProductsController { invProductService.deleteById(id); FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest(); detailRequest.setSupId(invProductEntity.getSupId()); - detailRequest.setBatchNo(invProductEntity.getBatchNo()); + if (StrUtil.isEmpty(invProductEntity.getBatchNo())) { + detailRequest.setBatchNo("empty"); + } else + detailRequest.setBatchNo(invProductEntity.getBatchNo()); detailRequest.setProductIdFk(invProductEntity.getRelIdFk()); + detailRequest.setInvStorageCode(invProductEntity.getInvStorageCode()); invProductDetailService.deleteByProductId(detailRequest); return ResultVOUtils.success("删除成功"); } else { @@ -149,4 +153,14 @@ public class InvPreProductsController { return ResultVOUtils.success(invProductStatResponse); } + + @AuthRuleAnnotation("") + @GetMapping("spms/pre/inv/products/getDetaiByCode") + public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) { + InvProductDetailEntity invProductDetailEntity = invProductDetailService.statInvPreInDetail(filterInvProductDetailRequest.getCode()); + if (invProductDetailEntity != null) + return ResultVOUtils.success(invProductDetailEntity); + return ResultVOUtils.error(501, "寄售库存不存在此产品"); + } + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvProductsController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvProductsController.java index c921bb20..9cef2a22 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvProductsController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvProductsController.java @@ -55,8 +55,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.glxp.api.admin.constant.Constant.SYSTEM_CUSTOMER_ID; - @RestController public class InvProductsController { @@ -112,9 +110,6 @@ public class InvProductsController { @AuthRuleAnnotation("") @GetMapping("spms/inv/products/filterDetail") public BaseResponse filterInvProductDetail(FilterInvProductDetailRequest filterInvProductRequest) { - if (SYSTEM_CUSTOMER_ID.equals(filterInvProductRequest.getCustomerId())) { - filterInvProductRequest.setCustomerId(null); - } if (StrUtil.isEmpty(filterInvProductRequest.getBatchNo())) { filterInvProductRequest.setBatchNo("empty"); } @@ -160,8 +155,12 @@ public class InvProductsController { invProductService.deleteById(id); FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest(); detailRequest.setSupId(invProductEntity.getSupId()); - detailRequest.setBatchNo(invProductEntity.getBatchNo()); + if (StrUtil.isEmpty(invProductEntity.getBatchNo())) { + detailRequest.setBatchNo("empty"); + } else + detailRequest.setBatchNo(invProductEntity.getBatchNo()); detailRequest.setProductIdFk(invProductEntity.getRelIdFk()); + detailRequest.setInvStorageCode(invProductEntity.getInvStorageCode()); invProductDetailService.deleteByProductId(detailRequest); return ResultVOUtils.success("删除成功"); } else { @@ -353,4 +352,13 @@ public class InvProductsController { } + @AuthRuleAnnotation("") + @GetMapping("spms/inv/products/getDetaiByCode") + public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) { + InvProductDetailEntity invProductDetailEntity = invProductDetailService.statInvPreInDetail(filterInvProductDetailRequest.getCode()); + if (invProductDetailEntity != null) + return ResultVOUtils.success(invProductDetailEntity); + return ResultVOUtils.error(501, "库存不存在此产品"); + } + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java index 5c141f86..a927d8de 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java +++ b/api-admin/src/main/java/com/glxp/api/admin/entity/basic/BussinessTypeEntity.java @@ -62,4 +62,6 @@ public class BussinessTypeEntity { private boolean vailInv; private boolean entrutSpms; + + private boolean codeFillCheck; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java b/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java index 587f1da7..cbdc55db 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java +++ b/api-admin/src/main/java/com/glxp/api/admin/res/inout/WarehouseResponse.java @@ -16,5 +16,8 @@ public class WarehouseResponse { private long id; private String fromCorp; private Integer count; - + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvPreProductDetailService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvPreProductDetailService.java index 60fa0f97..65d7547b 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvPreProductDetailService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvPreProductDetailService.java @@ -11,6 +11,10 @@ import java.util.List; public interface InvPreProductDetailService { + List findByCode(String code); + + List findByOriginCode(String code); + List filterInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest); List filterJoinInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest); @@ -26,4 +30,6 @@ public interface InvPreProductDetailService { boolean deleteByProductId(FilterInvProductDetailRequest filterInvProductDetailRequest); int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest); + + InvProductDetailEntity statInvPreInDetail(String code); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvProductDetailService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvProductDetailService.java index f01ff173..aaa3a6bc 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvProductDetailService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvProductDetailService.java @@ -11,6 +11,9 @@ public interface InvProductDetailService { List findByCode(String code); + + List findByOriginCode(String code); + List filterInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest); List filterJoinInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest); @@ -29,4 +32,6 @@ public interface InvProductDetailService { boolean deleteByProductId(FilterInvProductDetailRequest productIdFk); int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest); + + InvProductDetailEntity statInvPreInDetail(String code); } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreInProductDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreInProductDetailServiceImpl.java index ff570697..87c7b5b6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreInProductDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreInProductDetailServiceImpl.java @@ -6,11 +6,13 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.admin.constant.ConstantType; import com.glxp.api.admin.dao.inventory.InvPreInProductDao; import com.glxp.api.admin.dao.inventory.InvPreInProductDetailDao; +import com.glxp.api.admin.entity.basic.UdiEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.entity.inventory.InvProductEntity; import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.api.admin.res.inventory.InvProductDetailJoinResponse; import com.glxp.api.admin.service.inventory.InvPreInProductDetailService; +import com.glxp.api.admin.util.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -93,7 +95,21 @@ public class InvPreInProductDetailServiceImpl implements InvPreInProductDetailSe public InvProductDetailEntity statInvPreInDetail(String code) { FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); filterInvProductDetailRequest.setOriginCode(code); + List datas = invPreInProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isEmpty(datas)) { + filterInvProductDetailRequest.setOriginCode(null); + UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(code); + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) + filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); + else + filterInvProductDetailRequest.setBatchNo("empty"); + + filterInvProductDetailRequest.setProductionDate(udiEntity.getProduceDate()); + filterInvProductDetailRequest.setExpireDate(udiEntity.getExpireDate()); + datas = invPreInProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + } + if (CollUtil.isNotEmpty(datas)) { InvProductDetailEntity invProductDetailEntity = datas.get(0); diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java index 53214c4e..34799c96 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvPreProductDetailServiceImpl.java @@ -1,11 +1,15 @@ package com.glxp.api.admin.service.inventory.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.dao.inventory.InvPreProductDetailDao; +import com.glxp.api.admin.entity.basic.UdiEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.api.admin.res.inventory.InvProductDetailJoinResponse; import com.glxp.api.admin.service.inventory.InvPreProductDetailService; +import com.glxp.api.admin.util.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -19,6 +23,22 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic @Resource InvPreProductDetailDao invPreProductDetailDao; + @Override + public List findByCode(String code) { + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setCode(code); + List invProductDetailEntities = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + return invProductDetailEntities; + } + + @Override + public List findByOriginCode(String code) { + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + List invProductDetailEntities = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + return invProductDetailEntities; + } + @Override public List filterInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest) { if (filterInvProductDetailRequest == null) { @@ -74,4 +94,31 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic public int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest) { return invPreProductDetailDao.statCount(filterInvProductDetailRequest); } + + @Override + public InvProductDetailEntity statInvPreInDetail(String code) { + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + + List datas = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isEmpty(datas)) { + filterInvProductDetailRequest.setOriginCode(null); + UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(code); + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) + filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); + else + filterInvProductDetailRequest.setBatchNo("empty"); + + filterInvProductDetailRequest.setProductionDate(udiEntity.getProduceDate()); + filterInvProductDetailRequest.setExpireDate(udiEntity.getExpireDate()); + datas = invPreProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + } + + + if (CollUtil.isNotEmpty(datas)) { + InvProductDetailEntity invProductDetailEntity = datas.get(0); + return invProductDetailEntity; + } + return null; + } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductDetailServiceImpl.java index ec0e75d5..41bbe076 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvProductDetailServiceImpl.java @@ -1,11 +1,15 @@ package com.glxp.api.admin.service.inventory.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.api.admin.dao.inventory.InvProductDetailDao; +import com.glxp.api.admin.entity.basic.UdiEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.api.admin.res.inventory.InvProductDetailJoinResponse; import com.glxp.api.admin.service.inventory.InvProductDetailService; +import com.glxp.api.admin.util.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -16,7 +20,6 @@ import java.util.List; @Service public class InvProductDetailServiceImpl implements InvProductDetailService { - @Resource InvProductDetailDao invProductDetailDao; @@ -28,6 +31,14 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { return invProductDetailEntities; } + @Override + public List findByOriginCode(String code) { + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + List invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + return invProductDetailEntities; + } + @Override public List filterInvProduct(FilterInvProductDetailRequest filterInvProductDetailRequest) { if (filterInvProductDetailRequest == null) { @@ -91,4 +102,32 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { public int statCount(FilterInvProductDetailRequest filterInvProductDetailRequest) { return invProductDetailDao.statCount(filterInvProductDetailRequest); } + + @Override + public InvProductDetailEntity statInvPreInDetail(String code) { + FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); + filterInvProductDetailRequest.setOriginCode(code); + + List datas = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + if (CollUtil.isEmpty(datas)) { + filterInvProductDetailRequest.setOriginCode(null); + UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(code); + if (StrUtil.isNotEmpty(udiEntity.getBatchNo())) + filterInvProductDetailRequest.setBatchNo(udiEntity.getBatchNo()); + else + filterInvProductDetailRequest.setBatchNo("empty"); + + filterInvProductDetailRequest.setProductionDate(udiEntity.getProduceDate()); + filterInvProductDetailRequest.setExpireDate(udiEntity.getExpireDate()); + datas = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); + } + + + if (CollUtil.isNotEmpty(datas)) { + InvProductDetailEntity invProductDetailEntity = datas.get(0); + return invProductDetailEntity; + } + return null; + } + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java index f76c57bb..82a619de 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/thread/IoTransInoutService.java @@ -51,10 +51,7 @@ import com.glxp.api.admin.service.inout.CodesService; import com.glxp.api.admin.service.inout.CodesTempService; import com.glxp.api.admin.service.inout.OrderDetailService; import com.glxp.api.admin.service.inout.OrderService; -import com.glxp.api.admin.service.inventory.InvPreProductService; -import com.glxp.api.admin.service.inventory.InvProductDetailService; -import com.glxp.api.admin.service.inventory.InvProductService; -import com.glxp.api.admin.service.inventory.InvWarehouseService; +import com.glxp.api.admin.service.inventory.*; import com.glxp.api.admin.service.thrsys.ThrDataService; import com.glxp.api.admin.service.thrsys.ThrOrderService; import com.glxp.api.admin.util.*; @@ -358,6 +355,16 @@ public class IoTransInoutService { } + //三期校验 + String checkOriginMsg = checkOriginCode(warehouseEntity, bussinessTypeEntity); + if (StrUtil.isNotEmpty(checkOriginMsg)) { + orderService.updateOrderStatus(warehouseEntity.getOrderId(), ConstantStatus.ORDER_STATUS_FAIL); + orderService.updateRemark(orderEntity.getId(), checkOriginMsg); + insertList.clear(); + return; + } + + //校验是否是当前供应商 if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { CompanyProductRelevanceRequest companyProductRelevanceRequest = new CompanyProductRelevanceRequest(); @@ -431,6 +438,66 @@ public class IoTransInoutService { } } + @Resource + InvPreProductDetailService invPreProductDetailService; + @Resource + InvProductDetailService invProductDetailService; + + public String checkOriginCode(WarehouseEntity warehouseEntity, BussinessTypeEntity bussinessTypeEntity) { + + UdiEntity udiEntity = FilterUdiUtils.getGS1Udi(warehouseEntity.getCode()); + //校验条码的完整性 + String errMsg = ""; + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); + if (udiRelevanceResponse == null) { + return "耗材字典不存在此产品"; + } + if (bussinessTypeEntity.isAdvanceType()) { + List invPreProductDetailEntitys = invPreProductDetailService.findByOriginCode(warehouseEntity.getCode()); + if (CollUtil.isNotEmpty(invPreProductDetailEntitys)) { + InvProductDetailEntity invProductDetailEntity = invPreProductDetailEntitys.get(invPreProductDetailEntitys.size() - 1); + if (StrUtil.isEmpty(warehouseEntity.getBatchNo())) { + warehouseEntity.setBatchNo(invProductDetailEntity.getBatchNo()); + } + if (StrUtil.isEmpty(warehouseEntity.getProduceDate())) { + warehouseEntity.setProduceDate(invProductDetailEntity.getProductionDate()); + } + if (StrUtil.isEmpty(warehouseEntity.getExpireDate())) { + warehouseEntity.setExpireDate(invProductDetailEntity.getExpireDate()); + } + } + } else { + List invProductDetailEntities = invProductDetailService.findByOriginCode(warehouseEntity.getCode()); + if (CollUtil.isNotEmpty(invProductDetailEntities)) { + InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(invProductDetailEntities.size() - 1); + if (StrUtil.isEmpty(warehouseEntity.getBatchNo())) { + warehouseEntity.setBatchNo(invProductDetailEntity.getBatchNo()); + } + if (StrUtil.isEmpty(warehouseEntity.getProduceDate())) { + warehouseEntity.setProduceDate(invProductDetailEntity.getProductionDate()); + } + if (StrUtil.isEmpty(warehouseEntity.getExpireDate())) { + warehouseEntity.setExpireDate(invProductDetailEntity.getExpireDate()); + } + } + } + + if (StrUtil.isEmpty(warehouseEntity.getBatchNo()) && !udiRelevanceResponse.isAllowNoBatch()) { + errMsg = errMsg + ",批次号"; + } + if (StrUtil.isEmpty(warehouseEntity.getProduceDate()) && !udiRelevanceResponse.isAllowNoProduct()) { + errMsg = errMsg + ",生产日期"; + } + if (StrUtil.isEmpty(warehouseEntity.getExpireDate()) && !udiRelevanceResponse.isAllowNoExpire()) { + errMsg = errMsg + ",失效日期"; + } + + if (StrUtil.isNotEmpty(errMsg)) { + return "UDI码" + warehouseEntity.getCode() + "产品三期缺失请补齐" + errMsg.substring(1) + ""; + } + return null; + } + //转入正式表后,更换单据状态,等待校验或已完成 public void transStatus(String orderId) { diff --git a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml index 0bd16659..80304d65 100644 --- a/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -13,7 +13,7 @@ basic_bussiness_type.checkWebNew,basic_bussiness_type.checkChange, basic_bussiness_type.secCheckUdims, basic_bussiness_type.secCheckPdaEd, basic_bussiness_type.secCheckPdaUn, basic_bussiness_type.secCheckWebNew, basic_bussiness_type.secCheckChange, - basic_bussiness_type.entrutSpms, + basic_bussiness_type.entrutSpms,basic_bussiness_type.codeFillCheck, basic_bussiness_type.ullageFill, basic_bussiness_type.scanPreIn, basic_bussiness_type.vailInv, basic_bustype_local.name localName,basic_bussiness_type.checkEnable, basic_bustype_local.advanceType, basic_bustype_local.changeEnable,basic_bussiness_type.genUnit,basic_bussiness_type.innerOrder,basic_bussiness_type.outTospms, @@ -129,7 +129,7 @@ basic_bussiness_type.enable,basic_bussiness_type.remark,basic_bussiness_type.mainAction, basic_bussiness_type.thirdSysFk,basic_bussiness_type.localAction,basic_bussiness_type.secCheckEnable, basic_bussiness_type.checkUdims,basic_bussiness_type.checkPdaEd,basic_bussiness_type.checkPdaUn,basic_bussiness_type.checkPc, - basic_bussiness_type.checkWebNew,basic_bussiness_type.checkChange,basic_bussiness_type.entrutSpms, + basic_bussiness_type.checkWebNew,basic_bussiness_type.checkChange,basic_bussiness_type.entrutSpms,basic_bussiness_type.codeFillCheck, basic_bussiness_type.ullageFill, basic_bussiness_type.scanPreIn, basic_bussiness_type.vailInv, basic_bussiness_type.secCheckUdims, basic_bussiness_type.secCheckPdaEd, basic_bussiness_type.secCheckPdaUn, basic_bussiness_type.secCheckWebNew, basic_bussiness_type.secCheckChange,basic_bussiness_type.outTospms, @@ -185,7 +185,7 @@ ,secCheckUdims,secCheckPdaEd,secCheckPdaUn,secCheckPc,secCheckWebNew, secCheckChange,corpType,basic_bussiness_type.storageCode,checkBalacne, secCheckBalacne,supplementOrderType,defaultUnit,useDyCount,expireTip,updateTime,prefix,outTospms -,ullageFill,scanPreIn,vailInv,entrutSpms) +,ullageFill,scanPreIn,vailInv,entrutSpms,codeFillCheck) values ( #{action}, @@ -224,7 +224,8 @@ #{outTospms} , #{ullageFill}, #{scanPreIn}, - #{vailInv},#{entrutSpms} + #{vailInv}, + #{entrutSpms},#{codeFillCheck} ) @@ -239,7 +240,7 @@ ,secCheckUdims,secCheckPdaEd,secCheckPdaUn,secCheckPc,secCheckWebNew, secCheckChange,corpType,storageCode,checkBalacne,secCheckBalacne,supplementOrderType, defaultUnit,useDyCount,expireTip,updateTime,prefix,outTospms -,ullageFill,scanPreIn,vailInv,entrutSpms) +,ullageFill,scanPreIn,vailInv,entrutSpms,codeFillCheck) values ( #{index}, @@ -279,7 +280,8 @@ defaultUnit,useDyCount,expireTip,updateTime,prefix,outTospms #{outTospms}, #{ullageFill}, #{scanPreIn}, - #{vailInv},#{entrutSpms} + #{vailInv}, + #{entrutSpms},#{codeFillCheck} ) @@ -325,6 +327,7 @@ defaultUnit,useDyCount,expireTip,updateTime,prefix,outTospms scanPreIn=#{scanPreIn}, vailInv=#{vailInv}, entrutSpms=#{entrutSpms}, + codeFillCheck=#{codeFillCheck}, thirdSysFk=#{thirdSysFk}, diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDetailDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDetailDao.xml index 0108f3f2..acf0bb70 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDetailDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreInProductDetailDao.xml @@ -210,14 +210,19 @@ AND productIdFk = #{productIdFk} - - AND batchNo = #{batchNo} + + AND inv_prein_product_detail.batchNo like concat('%',#{batchNo},'%') + + + AND batchNo is NULL + + + AND invStorageCode = #{invStorageCode} AND supId = #{supId} - diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDetailDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDetailDao.xml index 0c0265ac..6becd74d 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDetailDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvPreProductDetailDao.xml @@ -158,8 +158,14 @@ AND productIdFk = #{productIdFk} - - AND batchNo = #{batchNo} + + AND inv_product.batchNo like concat('%',#{batchNo},'%') + + + AND batchNo is NULL + + + AND invStorageCode = #{invStorageCode} AND supId = #{supId} diff --git a/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDetailDao.xml b/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDetailDao.xml index c441754f..a8da2b22 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDetailDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inventory/InvProductDetailDao.xml @@ -155,8 +155,14 @@ AND productIdFk = #{productIdFk} - - AND batchNo = #{batchNo} + + AND inv_product.batchNo like concat('%',#{batchNo},'%') + + + AND batchNo is NULL + + + AND invStorageCode = #{invStorageCode} AND supId = #{supId}