From 6c2e5b7f14ba9690fc9678fb4e1578309726444c Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 26 Jun 2023 22:40:10 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/glxp/api/constant/Constant.java | 2 ++ .../api/controller/inout/IoCodeTempController.java | 4 ++-- .../basic/impl/BasicBussinessTypeServiceImpl.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index e22166a49..f6480456d 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -284,6 +284,8 @@ public class Constant { public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit"; public static final String ORDER_ACTION_SUP_INOUT = "supInout"; public static final String ORDER_ACTION_SUP_PREIN = "preInOrder"; + public static final String ORDER_ACTION_WAIT_CHECK = "waitCheck"; //待校验 + public static final String ORDER_ACTION_WAIT_DEAL = "waitDeal"; //待配货/拣货 public static final String SYNC_REMARK = "syncRemark"; } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 7abcef388..d180d9a67 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -579,13 +579,13 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.updateById(exitLocalEntity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 79d9e52c6..a4f8b1702 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -257,6 +257,17 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) .eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT)); + break; + case Constant.ORDER_ACTION_WAIT_CHECK: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) + .eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT)); + break; + case Constant.ORDER_ACTION_WAIT_DEAL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) + .eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT)); + break; default: break; From ae4ff7d291753323d4a9ff71ac92d4526a70a13a Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 27 Jun 2023 16:59:41 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 42 ------------------- .../controller/inout/IoOrderController.java | 16 +++++++ .../inout/IoOrderDetailResultController.java | 21 +++++----- .../thrsys/ThirdUploadSetController.java | 1 + .../thrsys/ThrOrderUploadBustypesEntity.java | 2 +- .../impl/BasicBussinessTypeServiceImpl.java | 32 +++++++++++--- .../api/service/inout/IoOrderService.java | 3 ++ .../inout/impl/IoOrderServiceImpl.java | 15 +++++++ .../glxp/api/service/sync/HeartService.java | 36 ++++++++-------- .../mybatis/mapper/basic/ProductInfoDao.xml | 2 +- 10 files changed, 91 insertions(+), 79 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index d180d9a67..e1341edeb 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -629,7 +629,6 @@ public class IoCodeTempController extends BaseController { //产品是否可以以使用单元入库 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); if (udiRelevanceResponses.size() >= 1) { -// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); } else if (!udiRelevanceResponse.getUseDy() && udiRelevanceResponse.getDiType() == ConstantStatus.DITYPE_SYDY) { @@ -708,18 +707,6 @@ public class IoCodeTempController extends BaseController { if (baseResponse != null) { deleteEmptyBillNo(orderEntity); } - - //判断证书是否过期 -// if (codeEnttity.getRelId() != null && bussinessTypeEntity.isCheckCertExpire()) { -// -// SupProductEntity supProductEntity = supProductService.findByRelIdFk(codeEnttity.getRelId() + ""); -// if(supProductEntity!=null){ -// -// } -// if (DateUtil.) -// } - - genDetaiEntity = codeEnttity; if (baseResponse == null) { baseResponse = checkSupId(bussinessTypeEntity, codeEnttity, unitFk); @@ -784,14 +771,8 @@ public class IoCodeTempController extends BaseController { InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE); int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), null, codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { //按指定货位出库 @@ -809,35 +790,12 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "添加失败,该产品未上架货位!"); } } else { -// if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) { -// count = invPreProductDetailService.vailStockCountByCode(null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode(), codeTempEntity.getCode()); -// } else count = invPreProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, invWarehouseEntity.getCode(), codeTempEntity.getPreSpaceCode()); } } - -// InvPreProductDetailEntity invPreinDetailEntity = invPreProductDetailService.findUseOneByCode(codeTempEntity.getCode()); if (count <= 0) { return ResultVOUtils.error(500, "寄售库存数量不足!"); } else { -// if (StrUtil.isNotEmpty(invPreinDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) -// && !invPreinDetailEntity.getBatchNo().equals(codeTempEntity.getBatchNo())) { -// return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); -// } -// if (StrUtil.isNotEmpty(codeTempEntity.getOrderId())) {//非首次添加 -// if (StrUtil.isEmpty(codeTempEntity.getSerialNo())) {//该单据已有该产品 -// IoCodeTempEntity tempEntity = codeTempService.findByUnique(codeTempEntity.getOrderId(), codeTempEntity.getCode()); -// if (tempEntity != null) { -// if (count < (tempEntity.getMyCount() + 1)) { -// return ResultVOUtils.error(500, "超出寄售库存数量"); -// } -// } -// } else { -// if (count < 1) { -// return ResultVOUtils.error(500, "寄售库存数量不足"); -// } -// } -// } int exitCount = IntUtil.value(codeTempService.selectExitCount(codeTempEntity.getOrderId(), codeTempEntity.getBatchNo(), codeTempEntity.getRelId(), codeTempEntity.getSupId())); if ((codeTempEntity.getMyReCount() + exitCount) > count) { return ResultVOUtils.error(500, "寄售库存数量不足"); diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 41aaa7365..ab8cde29a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -538,6 +538,22 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } + //待校验撤回草稿 + @RepeatSubmit() + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/waitCheck/rollback") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse rollUnCheckOrder(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean result = orderService.rollUnCheckOrder(billNo); + if (result) { + return ResultVOUtils.success("撤回成功!"); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } + //手持终端获取未处理业务单据进行校验 @AuthRuleAnnotation("") diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index d4dbaf346..b2f63e27d 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -98,8 +98,8 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(""); } orderDetailResultRequest.setActions(actions); - AuthAdmin authAdmin= customerService.getUserBean(); - if (StrUtil.isBlank(orderDetailResultRequest.getInvCode())){ + AuthAdmin authAdmin = customerService.getUserBean(); + if (StrUtil.isBlank(orderDetailResultRequest.getInvCode())) { orderDetailResultRequest.setInvCode(authAdmin.getLocInvCode()); } List list = orderDetailResultService.filterOrderList(orderDetailResultRequest); @@ -196,8 +196,8 @@ public class IoOrderDetailResultController extends BaseController { */ @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/resultDetail/filterOrderPrint") - public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { - List ioOrderDetailResultResponseList=new ArrayList<>(); + public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List ioOrderDetailResultResponseList = new ArrayList<>(); SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailResultRequest.getTemplateId()); //打印单号标签 Map data = new HashMap<>(1); @@ -205,9 +205,9 @@ public class IoOrderDetailResultController extends BaseController { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义新的日期格式 //按选入打印 - if(filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size()>0){ - ioOrderDetailResultResponseList =filterOrderDetailResultRequest.getList(); - }else{ + if (filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size() > 0) { + ioOrderDetailResultResponseList = filterOrderDetailResultRequest.getList(); + } else { //按查询打印 FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setVueType(filterOrderDetailResultRequest.getActionType()); @@ -227,7 +227,7 @@ public class IoOrderDetailResultController extends BaseController { } } } - int i=1; + int i = 1; for (IoOrderDetailResultResponse ioOrderDetailResultResponse : ioOrderDetailResultResponseList) { //组装数据 Map ioOrderDetailResultData = new HashMap<>(); @@ -244,7 +244,7 @@ public class IoOrderDetailResultController extends BaseController { ioOrderDetailResultData.put("spec", ioOrderDetailResultResponse.getSpec() == null ? ' ' : ioOrderDetailResultResponse.getSpec()); ioOrderDetailResultData.put("price", ioOrderDetailResultResponse.getPrice() == null ? ' ' : ioOrderDetailResultResponse.getPrice()); ioOrderDetailResultData.put("count", ioOrderDetailResultResponse.getCount()); - ioOrderDetailResultData.put("reCount",ioOrderDetailResultResponse.getReCount()); + ioOrderDetailResultData.put("reCount", ioOrderDetailResultResponse.getReCount()); ioOrderDetailResultData.put("inCount", ioOrderDetailResultResponse.getInCount()); ioOrderDetailResultData.put("acceptCount", ioOrderDetailResultResponse.getAcceptCount()); ioOrderDetailResultData.put("fromCorpName", ioOrderDetailResultResponse.getFromCorpName() == null ? ' ' : ioOrderDetailResultResponse.getFromCorpName()); @@ -257,10 +257,9 @@ public class IoOrderDetailResultController extends BaseController { data.put("data", list); String param = JSON.toJSONString(data); - JasperUtils.jasperReport(request, response, param, filePath+"pdf/template/"+systemPDFTemplateEntity.getPath(), "pdf"); + JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); return ResultVOUtils.success(); } - } diff --git a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java index 301bd24e3..3647402ec 100644 --- a/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java +++ b/src/main/java/com/glxp/api/controller/thrsys/ThirdUploadSetController.java @@ -75,6 +75,7 @@ public class ThirdUploadSetController { thrOrderUploadBustypesEntity.setUpdateTime(new Date()); thrOrderUploadBustypesEntity.setCreateTime(new Date()); thrOrderUploadBustypesEntity.setOrderSource(Arrays.asList("2")); + thrOrderUploadBustypesEntity.setId(null); thrOrderUploadBustypesService.save(thrOrderUploadBustypesEntity); } } diff --git a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java index 75f6709f9..f61ee0144 100644 --- a/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java +++ b/src/main/java/com/glxp/api/entity/thrsys/ThrOrderUploadBustypesEntity.java @@ -18,7 +18,7 @@ import lombok.Data; @TableName(value = "thr_order_upload_bustypes", autoResultMap = true) public class ThrOrderUploadBustypesEntity implements Serializable { - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField(value = "`action`") diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index a4f8b1702..31155bfe7 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -258,15 +258,35 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() - .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) - .eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT)); + .eq("enable", true).and( + webNew -> webNew.eq("checkWebNew", 3) + .or().eq("checkPdaUn", 3) + .or().eq("checkPdaEd", 3) + .or().eq("checkUdims", 3) + .or().eq("checkPc", 3) + .or().eq("checkSp", 3) + .or().eq("checkChange", 3) + .or().eq("checkBalance", 3) + .or().eq("checkCopy", 3) + ) + ); break; - case Constant.ORDER_ACTION_WAIT_DEAL: + case Constant.ORDER_ACTION_WAIT_DEAL: //待校验页面 bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() - .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) - .eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT)); + .eq("enable", true).and( + webNew -> webNew.in("checkWebNew", 1, 2) + .or().in("checkPdaUn", 1, 2) + .or().in("checkPdaEd", 1, 2) + .or().in("checkUdims", 1, 2) + .or().in("checkPc", 1, 2) + .or().in("checkSp", 1, 2) + .or().in("checkChange", 1, 2) + .or().in("checkBalance", 1, 2) + .or().in("checkCopy", 1, 2) + ) + ); break; default: diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index 3ae34d963..7ba9551c4 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -46,6 +46,9 @@ public interface IoOrderService { int deleteInvCode(String billNo, String code); + + boolean rollUnCheckOrder(String billNo); + boolean rollbackOrder(String billNo); boolean rollbackUnReOrder(String billNo); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index f1f702b0f..2446c2249 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -439,6 +439,21 @@ public class IoOrderServiceImpl implements IoOrderService { return 0; } + //撤回待校验单据 + @Override + public boolean rollUnCheckOrder(String billNo) { + IoOrderEntity orderEntity = findByBillNo(billNo); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK) { + List codeEntityList = codeService.findByOrderId(billNo); + codeTempService.deleteByBillNo(billNo); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); + orderEntity.setUpdateTime(new Date()); + update(orderEntity); + } + return true; + } + @Resource InvPreinProductService invPreinProductService; diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index e25752254..ed51bd538 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1951,15 +1951,15 @@ public class HeartService { } } - //更新发票信息 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { - List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); - for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { - if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - ioOrderInvoiceMapper.insertOrUpdate(orderInvoiceEntity); - } - } - } +// //更新发票信息 +// if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { +// List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); +// for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { +// if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { +// ioOrderInvoiceMapper.insertOrUpdate(orderInvoiceEntity); +// } +// } +// } } @Resource @@ -1994,15 +1994,15 @@ public class HeartService { } } - //更新发票信息 - if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { - List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); - for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { - if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { - ioOrderInvoiceMapper.insertOrUpdate(orderInvoiceEntity); - } - } - } +// //更新发票信息 +// if (CollUtil.isNotEmpty(syncDataResponse.getOrderInvoiceEntities())) { +// List orderInvoiceEntities = syncDataResponse.getOrderInvoiceEntities(); +// for (IoOrderInvoiceEntity orderInvoiceEntity : orderInvoiceEntities) { +// if (orderInvoiceEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { +// ioOrderInvoiceMapper.insertOrUpdate(orderInvoiceEntity); +// } +// } +// } } diff --git a/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml b/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml index f07a02b15..6c928354b 100644 --- a/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml +++ b/src/main/resources/mybatis/mapper/basic/ProductInfoDao.xml @@ -472,7 +472,7 @@ #{sfwwjbz}, #{syqsfxyjxmj}, #{qtxxdwzlj}, - #{mjfs},#{categoryName}) + #{mjfs},#{categoryName}) From 6e38f6e9a3df9277782520b1739c1c5f81b4b388 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 27 Jun 2023 18:42:28 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 105 +++++++++++++++++- 1 file changed, 102 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index ab8cde29a..a76e0656b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -307,7 +307,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.success("保存成功!"); } - //等待校验-立即提交 + //待配货/待校验-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("warehouse/inout/submitOrderWeb") @@ -358,6 +358,107 @@ public class IoOrderController extends BaseController { } + // 待校验提交,以扫码结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/codeResult/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCodeResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); + + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + + if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { + if (CollUtil.isNotEmpty(orderDetailBizEntities)) { + String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); + + + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + } else { + return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); + } + } else { + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + } + + return ResultVOUtils.success("提交成功!"); + } + + + //待校验提交,以比对结果提交 + @RepeatSubmit() + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/codeResult/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) { + + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + + //校验单据是否已完成 + List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); + + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + + if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { + if (CollUtil.isNotEmpty(orderDetailBizEntities)) { + String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); + + + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + } else { + return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); + } + } else { + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + } + + return ResultVOUtils.success("提交成功!"); + } + public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) { if (orderEntity == null) { return ResultVOUtils.error(500, "提交失败,请先添加物资!"); @@ -849,8 +950,6 @@ public class IoOrderController extends BaseController { @GetMapping("/udiwms/inout/order/getUserBean") public BaseResponse getUserBean() { AuthAdmin userBean = customerService.getUserBean(); - - return ResultVOUtils.success(userBean); } From ce801cd27c013b91b8193a79aea83c0f922048d1 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 29 Jun 2023 10:24:01 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=B8=A6=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E6=AF=94=E5=AF=B9=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 8 +- .../controller/inout/IoOrderController.java | 195 ++++++++++++------ .../api/entity/inout/IoCodeTempEntity.java | 6 + .../service/inout/IoCheckInoutService.java | 38 ++++ .../java/com/glxp/api/task/SyncHeartTask.java | 4 +- 5 files changed, 188 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index e1341edeb..dc3042abc 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1062,7 +1062,6 @@ public class IoCodeTempController extends BaseController { if (StrUtil.isEmpty(filterCodeRequest.getOrderId())) { return ResultVOUtils.error(500, "单据号不能为空!"); } - List list = codeTempService.findCodeList(filterCodeRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); @@ -1071,9 +1070,16 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.success(pageSimpleResponse); } + + + + + + @AuthRuleAnnotation("") @PostMapping("/udiwms/addCode/updateBindSup") @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse updateBindSup(@RequestBody IoCodeTempEntity codeSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index a76e0656b..eb71dbde5 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -28,6 +28,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.*; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse; @@ -371,40 +372,15 @@ public class IoOrderController extends BaseController { return tempResponse; //校验单据是否已完成 - List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); - if (CollUtil.isEmpty(orderDetailCodeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - - if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { - if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); - - - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - saveOrderWeb(addOrderRequest); - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderService.update(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); - } else { - return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); - } - } else { - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - ioAddInoutService.dealProcess(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); - return ResultVOUtils.success("提交成功!"); - } - + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.checkCodeResult(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); } @@ -412,7 +388,7 @@ public class IoOrderController extends BaseController { //待校验提交,以比对结果提交 @RepeatSubmit() @AuthRuleAnnotation("") - @PostMapping("warehouse/inout/codeResult/submitOrderWeb") + @PostMapping("warehouse/inout/codeCheck/submitOrderWeb") @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) { @@ -422,41 +398,28 @@ public class IoOrderController extends BaseController { return tempResponse; //校验单据是否已完成 - List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); - List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); - - if (CollUtil.isEmpty(orderDetailCodeEntities)) { + List codeEntities = codeTempService.findByOrderId(addOrderRequest.getBillNo()); + if (CollUtil.isEmpty(codeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { - if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); - - - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - saveOrderWeb(addOrderRequest); - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderService.update(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); - } else { - return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); + List codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + if (codeTempEntity.getCheckStatus() == 2) { + return ResultVOUtils.error(501, "存在多余条码,请先剔除后重新提交!"); } - } else { - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - ioAddInoutService.dealProcess(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); - return ResultVOUtils.success("提交成功!"); } - + codeTempService.deleteByBillNo(addOrderRequest.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + if (codeTempEntity.getCheckStatus() == 0) { + codeTempService.insert(codeTempEntity); + } + } + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); + } public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) { @@ -474,6 +437,77 @@ public class IoOrderController extends BaseController { return null; } + @AuthRuleAnnotation("") + @GetMapping("admin/warehouse/inout/findCheckCode") + public BaseResponse findCheckCode(FilterCodeRequest filterCodeRequest) { + //校验单据是否已完成 + List codeTempEntities = codeTempService.findByOrderId(filterCodeRequest.getOrderId()); + List codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(0l); + pageSimpleResponse.setList(codeEntities); + return ResultVOUtils.success(pageSimpleResponse); + } + + + public List getOtherCode(String billNo, List codeEntities) { + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + bizEntity.setCheckSuccess(false); + bizEntity.setScanCount(0); + } + for (IoCodeTempEntity codeTempEntity : codeEntities) { + codeTempEntity.setCheckSuccess(false); + } + List otherCodes = new ArrayList<>(); + for (IoCodeTempEntity codeEntity : codeEntities) { + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + if (checkId(bizEntity, codeEntity) == null + && checkBatchNo(bizEntity, codeEntity) == null + && checkProductDate(bizEntity, codeEntity) == null + && checkExpireDate(bizEntity, codeEntity) == null) { + int curCount = IntUtil.value(codeEntity.getReCount()) + bizEntity.getScanCount(); + if (bizEntity.getCount() < curCount) { + otherCodes.add(codeEntity); + } else { + bizEntity.setScanCount(curCount); + } + codeEntity.setCheckSuccess(true); + break; + } + } + if (!codeEntity.isCheckSuccess()) { + otherCodes.add(codeEntity); + } + } + return otherCodes; + } + + public List getCheckRusultCode(String billNo, List codeEntities) { + List otherCodes = getOtherCode(billNo, codeEntities); + for (IoCodeTempEntity codeTempEntity : otherCodes) { + boolean isTure = false; + for (IoCodeTempEntity codeEntity : codeEntities) { + if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) { + if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + codeEntity.setCheckStatus(2); + isTure = true; + } + } else { + if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) { + codeEntity.setCheckStatus(2); + isTure = true; + } + } + } + if (!isTure) + codeTempEntity.setCheckStatus(1); + } + return codeEntities; + } + + //带配货-立即提交 @RepeatSubmit() @AuthRuleAnnotation("") @@ -954,4 +988,45 @@ public class IoOrderController extends BaseController { } + public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) { + return null; + } else { + return "产品ID不匹配"; + } + } + + public String checkBatchNo(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + + if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { + return null; + } else { + return bizEntity.getCoName() + "批次号不匹配"; + } + } + + public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getProductDate()).equals(StrUtil.nullToEmpty(codeEntity.getProduceDate()))) { + return null; + } else { + return bizEntity.getCoName() + "生产日期不匹配"; + } + } + + public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (StrUtil.nullToEmpty(bizEntity.getExpireDate()).equals(StrUtil.nullToEmpty(codeEntity.getExpireDate()))) { + return null; + } else { + return bizEntity.getCoName() + "失效日期不匹配"; + } + } + + public String checkCount(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) { + if (bizEntity.getCount() == codeEntity.getReCount()) { + return null; + } + return bizEntity.getCoName() + "数量不匹配!"; + } + } diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java index a073f5b2a..b34d77d10 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeTempEntity.java @@ -148,8 +148,14 @@ public class IoCodeTempEntity { @TableField(exist = false) private int status; //条码校验状态 @TableField(exist = false) + private int checkStatus; //1:多余条码;2.同一产品条码超出 + @TableField(exist = false) private String mySupId; //更新供应商 + + @TableField(exist = false) + private boolean checkSuccess; //临时字段校验是否成功 + public int getMyCount() { if (count == null) return 0; diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 69bb21bc2..457094a86 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -182,6 +182,44 @@ public class IoCheckInoutService { } } + //待校验 以扫码结果为准 + public void checkCodeResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_FAIL); + orderEntity.setUpdateTime(new Date()); + orderEntity.setErrMsg("校验失败,扫码详情为空!"); + orderService.update(orderEntity); + return; + } + orderDetailCodeEntities.forEach(orderDetailCodeEntity -> + { + //生成单据结果 + IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailResultEntity); + orderDetailResultEntity.setCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setReCount(orderDetailCodeEntity.getReCount()); + orderDetailResultEntity.setId(null); + orderDetailResultService.insert(orderDetailResultEntity); + + }); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + @Resource IoCodeLostService codeLostService; diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 2dcc0989d..61fdbc44a 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -21,8 +21,8 @@ import javax.annotation.Resource; import java.util.Arrays; -@Component -@EnableScheduling +//@Component +//@EnableScheduling public class SyncHeartTask implements SchedulingConfigurer { final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); From 3e28f489331290d9e72bcc118f0d463e7099a6b3 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 30 Jun 2023 11:17:22 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E5=BE=85=E6=A0=A1=E9=AA=8C=EF=BC=8C?= =?UTF-8?q?=E7=AD=89=E7=9B=B8=E5=85=B3=E4=BF=AE=E6=94=B9=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoOrderController.java | 82 ++++++---- .../inout/IoOrderDetailResultController.java | 55 +++++++ .../com/glxp/api/dao/inout/IoCodeDao.java | 3 + .../com/glxp/api/dao/inout/IoCodeTempDao.java | 3 + .../api/dao/inout/IoOrderDetailResultDao.java | 4 + .../glxp/api/req/inout/CptTraceRequest.java | 89 +++++++++++ .../api/res/inout/CptTraceOrderResponse.java | 21 +++ .../api/res/inout/CptTraceResultResponse.java | 146 ++++++++++++++++++ .../glxp/api/res/inout/IoCodeResponse.java | 7 + .../api/res/inout/IoCodeTempResponse.java | 24 +++ .../service/inout/IoCheckInoutService.java | 21 +++ .../glxp/api/service/inout/IoCodeService.java | 2 + .../api/service/inout/IoCodeTempService.java | 3 + .../inout/IoOrderDetailResultService.java | 4 + .../service/inout/impl/IoCodeServiceImpl.java | 9 ++ .../inout/impl/IoCodeTempServiceImpl.java | 11 ++ .../impl/IoOrderDetailResultServiceImpl.java | 8 + .../inout/impl/IoOrderServiceImpl.java | 2 +- .../com/glxp/api/util/udi/UdiInfoUtil.java | 14 +- .../mybatis/mapper/inout/IoCodeDao.xml | 45 ++++-- .../mybatis/mapper/inout/IoCodeTempDao.xml | 33 +++- .../mapper/inout/IoOrderDetailResultDao.xml | 41 ++++- src/main/resources/schemas/schema_v2.1.sql | 1 + 23 files changed, 573 insertions(+), 55 deletions(-) create mode 100644 src/main/java/com/glxp/api/req/inout/CptTraceRequest.java create mode 100644 src/main/java/com/glxp/api/res/inout/CptTraceOrderResponse.java create mode 100644 src/main/java/com/glxp/api/res/inout/CptTraceResultResponse.java diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index eb71dbde5..9335188d6 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -28,10 +28,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.*; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; -import com.glxp.api.res.inout.IoCodeTempResponse; -import com.glxp.api.res.inout.IoOrderDetailBizResponse; -import com.glxp.api.res.inout.IoOrderResponse; -import com.glxp.api.res.inout.PdaBusOrderResponse; +import com.glxp.api.res.inout.*; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.InvBusUserService; import com.glxp.api.service.auth.InvWarehouseService; @@ -45,6 +42,7 @@ import com.glxp.api.util.IntUtil; import com.glxp.api.util.OrderNoTypeBean; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; @@ -388,6 +386,7 @@ public class IoOrderController extends BaseController { //待校验提交,以比对结果提交 @RepeatSubmit() @AuthRuleAnnotation("") + @Transactional(rollbackFor = Exception.class) @PostMapping("warehouse/inout/codeCheck/submitOrderWeb") @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) { @@ -398,26 +397,28 @@ public class IoOrderController extends BaseController { return tempResponse; //校验单据是否已完成 - List codeEntities = codeTempService.findByOrderId(addOrderRequest.getBillNo()); + List codeEntities = codeTempService.findJoinByOrderId(addOrderRequest.getBillNo()); if (CollUtil.isEmpty(codeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - List codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities); - for (IoCodeTempEntity codeTempEntity : codeTempEntities) { - if (codeTempEntity.getCheckStatus() == 2) { + List codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities); + for (IoCodeResponse codeTempEntity : codeTempEntities) { + if (IntUtil.value(codeTempEntity.getCheckStatus()) == 2) { return ResultVOUtils.error(501, "存在多余条码,请先剔除后重新提交!"); } } codeTempService.deleteByBillNo(addOrderRequest.getBillNo()); - for (IoCodeTempEntity codeTempEntity : codeTempEntities) { - if (codeTempEntity.getCheckStatus() == 0) { + for (IoCodeResponse codeResponse : codeTempEntities) { + if (IntUtil.value(codeResponse.getCheckStatus()) == 0) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtil.copyProperties(codeResponse, codeTempEntity); codeTempService.insert(codeTempEntity); } } orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); ioAddInoutService.dealProcess(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); + checkInoutService.checkRightResult(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); } @@ -441,9 +442,9 @@ public class IoOrderController extends BaseController { @GetMapping("admin/warehouse/inout/findCheckCode") public BaseResponse findCheckCode(FilterCodeRequest filterCodeRequest) { //校验单据是否已完成 - List codeTempEntities = codeTempService.findByOrderId(filterCodeRequest.getOrderId()); - List codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + List codeTempEntities = codeTempService.findJoinByOrderId(filterCodeRequest.getOrderId()); + List codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(0l); pageSimpleResponse.setList(codeEntities); return ResultVOUtils.success(pageSimpleResponse); @@ -484,26 +485,47 @@ public class IoOrderController extends BaseController { return otherCodes; } - public List getCheckRusultCode(String billNo, List codeEntities) { - List otherCodes = getOtherCode(billNo, codeEntities); - for (IoCodeTempEntity codeTempEntity : otherCodes) { - boolean isTure = false; - for (IoCodeTempEntity codeEntity : codeEntities) { - if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) { - if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { - codeEntity.setCheckStatus(2); - isTure = true; - } - } else { - if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) { - codeEntity.setCheckStatus(2); - isTure = true; + public List getCheckRusultCode(String billNo, List codeEntities) { + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(billNo); + List orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo); + List orderCheckResultResponses = ioCheckInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (CollUtil.isNotEmpty(orderCheckResultResponses)) { + for (IoOrderCheckResultResponse orderCheckResultResponse : orderCheckResultResponses) { + for (IoCodeResponse codeTempEntity : codeEntities) { + if (IntUtil.value(codeTempEntity.getRelId()) == IntUtil.value(orderCheckResultResponse.getBindRlFk()) + && (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getBBatchNo())) + || StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(orderCheckResultResponse.getSBatchNo()) + ))) { + if (orderCheckResultResponse.getCount() < 1) { + codeTempEntity.setCheckStatus(1); + } else if (orderCheckResultResponse.getCount() < orderCheckResultResponse.getScanCount()) { + codeTempEntity.setCheckStatus(2); + } } } } - if (!isTure) - codeTempEntity.setCheckStatus(1); } + + +// List otherCodes = getOtherCode(billNo, codeEntities); +// for (IoCodeTempEntity codeTempEntity : otherCodes) { +// boolean isTure = false; +// for (IoCodeTempEntity codeEntity : codeEntities) { +// if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) { +// if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } else { +// if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) { +// codeEntity.setCheckStatus(2); +// isTure = true; +// } +// } +// } +// if (!isTure) +// codeTempEntity.setCheckStatus(1); +// } return codeEntities; } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index b2f63e27d..78f9eb492 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -1,8 +1,10 @@ package com.glxp.api.controller.inout; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; @@ -15,15 +17,20 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.system.CompanyEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.InspectionPDFTemplateRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; +import com.glxp.api.res.inout.CptTraceResultResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; +import com.glxp.api.service.system.CompanyService; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; @@ -261,5 +268,53 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(); } + @Resource + CompanyService companyService; + /** + * 提供UDI协调调用单据明细 + */ + @PostMapping("/udiCpt/inout/trace/search") + public BaseResponse cptTraceOrder(@RequestBody CptTraceRequest cptTraceRequest) { + if (StrUtil.isEmpty(cptTraceRequest.getBatchNo()) || CollUtil.isEmpty(cptTraceRequest.getDiList())) { + return ResultVOUtils.error(500, "参数有误!"); + } + CompanyEntity authCompany = companyService.findCompany(); + List cptTraceOrderResponses = orderDetailResultService.cptTrace(cptTraceRequest); + List cptTraceResultResponses = new ArrayList<>(); + if (CollUtil.isNotEmpty(cptTraceOrderResponses)) { + for (CptTraceOrderResponse cptTraceOrderResponse : cptTraceOrderResponses) { + CptTraceResultResponse cptTraceResultResponse = new CptTraceResultResponse(); + cptTraceResultResponse.setBillNo(cptTraceOrderResponse.getBillNo()); + cptTraceResultResponse.setBillDate(DateUtil.formatDate(cptTraceOrderResponse.getCreateTime())); + cptTraceResultResponse.setBillType(cptTraceOrderResponse.getBillType()); + if (cptTraceOrderResponse.getMainAction().equals(ConstantType.TYPE_OUT)) { + if (StrUtil.isNotEmpty(cptTraceOrderResponse.getFromInvCode())) + continue; + cptTraceResultResponse.setInOutType(2); + cptTraceResultResponse.setFromCorp(authCompany.getName()); + cptTraceResultResponse.setFromCorpCreditNum(authCompany.getCreditCode()); + + //往来单位为病人 + if (cptTraceOrderResponse.getCorpType() == 1 && cptTraceOrderResponse.getOutType() == 1) { + cptTraceResultResponse.setToUserInfo(cptTraceOrderResponse.getFromCorpName()); + } else { + cptTraceResultResponse.setToCorp(cptTraceOrderResponse.getFromCorpName()); + cptTraceResultResponse.setToCorpCreditNum(cptTraceOrderResponse.getCreditNo()); + } + } else { + cptTraceResultResponse.setInOutType(1); + cptTraceResultResponse.setFromCorp(cptTraceOrderResponse.getFromCorpName()); + cptTraceResultResponse.setFromCorpCreditNum(cptTraceOrderResponse.getCreditNo()); + cptTraceResultResponse.setToCorp(authCompany.getName()); + cptTraceResultResponse.setToCorpCreditNum(authCompany.getCreditCode()); + } + + cptTraceResultResponses.add(cptTraceResultResponse); + } + } + + return ResultVOUtils.success(cptTraceResultResponses); + + } } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java index 275fb88e4..f4ad75bc1 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeDao.java @@ -24,4 +24,7 @@ public interface IoCodeDao extends BaseMapperPlus filterList(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); + } diff --git a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java index 95f7a691a..0c34c5c9b 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoCodeTempDao.java @@ -3,6 +3,7 @@ package com.glxp.api.dao.inout; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import java.util.List; @@ -18,4 +19,6 @@ public interface IoCodeTempDao extends BaseMapperPlus selectCodeList(FilterCodeRequest filterCodeRequest); Integer selectExitCount(FilterCodeRequest filterCodeRequest); + + List filterJoinProduct(FilterCodeRequest filterCodeRequest); } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java index d4548eb7a..69683c5c9 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailResultDao.java @@ -2,7 +2,9 @@ package com.glxp.api.dao.inout; import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import io.lettuce.core.dynamic.annotation.Param; @@ -32,4 +34,6 @@ public interface IoOrderDetailResultDao extends BaseMapperPlus selectStatDataByTime(@Param("list") List orderIdFk); + + List cptTrace(CptTraceRequest cptTraceRequest); } diff --git a/src/main/java/com/glxp/api/req/inout/CptTraceRequest.java b/src/main/java/com/glxp/api/req/inout/CptTraceRequest.java new file mode 100644 index 000000000..64a3c849e --- /dev/null +++ b/src/main/java/com/glxp/api/req/inout/CptTraceRequest.java @@ -0,0 +1,89 @@ +package com.glxp.api.req.inout; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 客户端查询任务列表实体类 + */ +@Data +public class CptTraceRequest { + + + /** + * 按UDI码查询出入库信息 + */ + private String udiCode; + + /** + * 查询记录表ID外键 + */ + private Long produdctRecordIdFk; + + /** + * 任务类型 1:关联关系;2:入库;3:出库 + */ + private Integer taskType; + + /** + * DI标识列表,多级包装会有多个DI + * DI标识数组,逗号隔开 + */ + private List diList; + + /** + * 企业信息ID外键 + */ + private Long companyIdFk; + + /** + * 医疗器械注册人 + */ + private String ylqxzcrbarmc; + + /** + * 医疗器械注册人统一社会信用号 + */ + private String creditNum; + + /** + * 产品名称 + */ + private String cpmctymc; + + /** + * 规格型号 + */ + private String ggxh; + + /** + * 批次号 + */ + private String batchNo; + /** + * 生成日期 + */ + private String produceDate; + /** + * 失效日期 + */ + private String expireDate; + + /** + * 序列号 + */ + private String serialNo; + + /** + * 任务创建时间 + */ + private Date createTime; + /** + * 任务更新时间 + */ + private Date updateTime; + + +} diff --git a/src/main/java/com/glxp/api/res/inout/CptTraceOrderResponse.java b/src/main/java/com/glxp/api/res/inout/CptTraceOrderResponse.java new file mode 100644 index 000000000..53de6cace --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/CptTraceOrderResponse.java @@ -0,0 +1,21 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CptTraceOrderResponse { + + private String billNo; + private Date createTime; + private String mainAction; + private String billType; + private String fromCorpName; + private String creditNo; + private String action; + private String fromInvCode; + private Integer outType; + private Integer corpType; + private Integer count; +} diff --git a/src/main/java/com/glxp/api/res/inout/CptTraceResultResponse.java b/src/main/java/com/glxp/api/res/inout/CptTraceResultResponse.java new file mode 100644 index 000000000..c8c6599dc --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/CptTraceResultResponse.java @@ -0,0 +1,146 @@ +package com.glxp.api.res.inout; + +import cn.hutool.core.util.StrUtil; +import lombok.Data; + +import java.util.Date; + +@Data +public class CptTraceResultResponse { + + + private Long id; + + /** + * 单据号 + */ + private String billNo; + + /** + * 单据时间 + */ + private String billDate; + + /** + * 1:入库;2:出库 + */ + private Integer inOutType; + + /** + * 单据类型 + */ + private String billType; + + /** + * 发货企业 + */ + private String fromCorp; + + /** + * 发货企业统一社会信用号 + */ + private String fromCorpCreditNum; + + /** + * 收货企业 + */ + private String toCorp; + + /** + * 收货企业统一社会信用号 + */ + private String toCorpCreditNum; + + private String toUserInfo; + + /** + * 单据创建者 + */ + private Long createUser; + + /** + * 当前企业信息ID外键 + */ + private Long companyIdFk; + + /** + * 当前企业名称 + */ + private String companyName; + + /** + * 当前企业统一社会信用号 + */ + private String companyCertNum; + + /** + * 客户端类型 + */ + private Integer clientType; + + /** + * 退货原因(退货时填写) + */ + private String returnReason; + + /** + * 销毁原因(销毁时填写) + */ + private String destoryReason; + + /** + * 执行销毁人(销毁时填写) + */ + private String excuseUser; + + /** + * 执行销毁人证件号(销毁时填写) + */ + private String excuseCode; + + /** + * 监督人姓名【销毁出库时填写】 + */ + private String superviserUser; + + /** + * 监督人证件号【销毁出库时填写】 + */ + private String superviserCode; + + /** + * 上传着ID + */ + private Long uploadUser; + + /** + * 备注 + */ + private String remark; + + /** + * 更新时间 + */ + private Date updateTime; + + //关联信息 + private String cpmctymc; + private String nameCode; + private String ggxh; + private String ylqxzcrbarmc; + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String udiCode; + private String zczbhhzbapzbh; + private String recordCode; + private Integer count; + + public String getToCorp() { + if (StrUtil.isEmpty(toCorp)) + return toUserInfo; + return toCorp; + } + +} diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java index 6472ee4a8..1bdafe793 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeResponse.java @@ -148,4 +148,11 @@ public class IoCodeResponse { private String ylqxzcrbarmc; private String zczbhhzbapzbh; private String manufactory; + + private Integer checkStatus; + + + private String mySupId; //更新供应商 + + } diff --git a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java index 7012b514c..149d1d334 100644 --- a/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoCodeTempResponse.java @@ -121,4 +121,28 @@ public class IoCodeTempResponse { */ private String supName; + /** + * 部门名称 + */ + private String deptName; + + /** + * 仓库名称 + */ + private String invName; + + /** + * 货位名称 + */ + private String warehouseName; + + private String productName; + private String ggxh; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String manufactory; + + private Integer checkStatus; + + } diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 457094a86..c3051da9e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -220,6 +220,27 @@ public class IoCheckInoutService { checkThird(orderEntity); } + + public void checkRightResult(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + orderDetailCodeService.deleteByOrderId(orderId); + List codeTempEntities = codeTempService.findByOrderId(orderEntity.getBillNo()); + for (IoCodeTempEntity codeTempEntity : codeTempEntities) { + IoCodeEntity codeEnttity = new IoCodeEntity(); + BeanUtils.copyProperties(codeTempEntity, codeEnttity); + codeEnttity.setId(null); + codeService.insert(codeEnttity); + addInoutService.genOrderDetailCode(orderEntity, codeTempEntity); + } + codeTempService.deleteByBillNo(orderEntity.getBillNo()); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genLostCode(orderEntity.getBillNo()); + checkThird(orderEntity); + } + @Resource IoCodeLostService codeLostService; diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/IoCodeService.java index c04f895b5..54ee8dd87 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeService.java @@ -15,6 +15,8 @@ public interface IoCodeService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + int updateById(IoCodeEntity codeEnttity); int deleteById(Integer id); diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index f39684883..c77a3386e 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.util.page.TableDataInfo; @@ -27,6 +28,8 @@ public interface IoCodeTempService { List findByOrderId(String billNo); + List findJoinByOrderId(String billNo); + TableDataInfo findByOrderId(FilterCodeRequest filterCodeRequest); int deleteByBillNo(String orderId); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java index fc8e1f92f..8f1a66099 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailResultService.java @@ -2,7 +2,9 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import java.util.List; @@ -24,4 +26,6 @@ public interface IoOrderDetailResultService { List filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest); + + List cptTrace(CptTraceRequest cptTraceRequest); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java index 023b4e6f4..c5cca9a07 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeServiceImpl.java @@ -52,6 +52,15 @@ public class IoCodeServiceImpl implements IoCodeService { return ioCodeDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeEntity codeEnttity) { return ioCodeDao.updateById(codeEnttity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index c9a743ae5..5a787ae76 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; @@ -7,6 +8,7 @@ import com.glxp.api.dao.inout.IoCodeTempDao; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; import com.glxp.api.service.inout.IoCodeTempService; import com.glxp.api.util.BeanCopyUtils; @@ -51,6 +53,15 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { return ioCodeTempDao.selectList(new QueryWrapper().eq("orderId", billNo)); } + @Override + public List findJoinByOrderId(String billNo) { + if (StrUtil.isEmpty(billNo)) + return null; + FilterCodeRequest filterCodeRequest = new FilterCodeRequest(); + filterCodeRequest.setOrderId(billNo); + return ioCodeTempDao.filterJoinProduct(filterCodeRequest); + } + @Override public int updateById(IoCodeTempEntity codeEnttity) { return ioCodeTempDao.updateById(codeEnttity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index 00f6e3669..b6ba77c92 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -6,7 +6,9 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoOrderDetailResultDao; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.inout.IoOrderDetailResultService; import org.springframework.stereotype.Service; @@ -72,4 +74,10 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic return orderDetailResultDao.filterOrderList(orderDetailResultRequest); } + @Override + public List cptTrace(CptTraceRequest cptTraceRequest) { + return orderDetailResultDao.cptTrace(cptTraceRequest); + } + + } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index 2446c2249..dfc25170e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -444,8 +444,8 @@ public class IoOrderServiceImpl implements IoOrderService { public boolean rollUnCheckOrder(String billNo) { IoOrderEntity orderEntity = findByBillNo(billNo); if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK) { - List codeEntityList = codeService.findByOrderId(billNo); codeTempService.deleteByBillNo(billNo); + ioOrderDetailCodeService.deleteByOrderId(billNo); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT); orderEntity.setUpdateTime(new Date()); diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index 252bdbbc8..6683df3d5 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -28,6 +28,9 @@ public class UdiInfoUtil { if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) { udiProductEntity.setAllowNoExpire(true); } + if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhxlh()) && "否".equals(udiProductEntity.getScbssfbhxlh())) { + udiProductEntity.setAllowNoExpire(true); + } return udiProductEntity; } @@ -47,12 +50,15 @@ public class UdiInfoUtil { if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) { udiProductEntity.setAllowNoExpire(true); } - //名字转拼音 - if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){ + if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhxlh()) && "否".equals(udiProductEntity.getScbssfbhxlh())) { + udiProductEntity.setAllowNoExpire(true); + } + //名字转拼音 + if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc())) { try { - String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); + String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc()); udiProductEntity.setPinyinInitial(pinyin); - }catch (Exception e){ + } catch (Exception e) { logger.error(ExceptionUtils.getStackTrace(e)); e.printStackTrace(); } diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml index 07c4936ad..c4339d3d5 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeDao.xml @@ -50,20 +50,23 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml index d3b410844..dd82dc640 100644 --- a/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoCodeTempDao.xml @@ -2,9 +2,16 @@ + + + diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml index 4069e8825..0835692a2 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailResultDao.xml @@ -27,8 +27,8 @@ SELECT a2.*, a1.mainAction, a1.auditTime, - b1.NAME AS fromCorpName, - (select name from auth_warehouse aw where aw.code= a1.fromInvCode) as fromInvName, + b1.NAME AS fromCorpName, + (select name from auth_warehouse aw where aw.code = a1.fromInvCode) as fromInvName, (SELECT NAME FROM basic_bussiness_type bus WHERE bus.action = a1.action) billTypeName FROM io_order_detail_result a2 LEFT JOIN io_order a1 ON a1.billNo = a2.orderIdFk @@ -95,11 +95,11 @@ spec, price, reCount, - io_order.deptCode + io_order.deptCode from io_order_detail_result - left JOIN io_order on io_order.billNo=io_order_detail_result.orderIdFk + left JOIN io_order on io_order.billNo = io_order_detail_result.orderIdFk - + orderIdFk in @@ -108,4 +108,35 @@ + + + diff --git a/src/main/resources/schemas/schema_v2.1.sql b/src/main/resources/schemas/schema_v2.1.sql index d2de50266..adc1124b4 100644 --- a/src/main/resources/schemas/schema_v2.1.sql +++ b/src/main/resources/schemas/schema_v2.1.sql @@ -500,6 +500,7 @@ CALL Pro_Temp_ColumnWork('inv_place_order_detail', 'topInvSpaceCode', 'varchar(2 call Modify_index('basic_products', 'uuid', 'idx_uuid', 'BTREE'); +call Modify_index('basic_products', 'nameCode', 'idex_nameCode', 'BTREE'); CALL Pro_Temp_ColumnWork('basic_products', 'sfwblztlcp', 'varchar(255)', 1); From 6ce3adb1f4600d1ed99a068b2e981bbe1bd1b137 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 30 Jun 2023 15:56:32 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E5=BE=85=E9=85=8D=E8=B4=A7=EF=BC=8C?= =?UTF-8?q?=E5=BE=85=E6=A0=A1=E9=AA=8C=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoCodeTempController.java | 11 ++-- .../controller/inout/IoOrderController.java | 52 ++++++++++++++----- .../api/service/inout/IoAddInoutService.java | 2 - .../impl/IoOrderDetailBizServiceImpl.java | 8 ++- 4 files changed, 48 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index dc3042abc..7c4b4c6d9 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -693,7 +693,7 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { + if (IntUtil.value(addOrderRequest.getOrderType()) == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); if (!isBillExit) { @@ -744,13 +744,13 @@ public class IoCodeTempController extends BaseController { } //是否边扫边校验 - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable()) { + if (bussinessTypeEntity.getCheckWebNew() == 1 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); - } else if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_WAIT && bussinessTypeEntity.isCheckEnable()) { + } else if (bussinessTypeEntity.getCheckWebNew() == 2 && bussinessTypeEntity.isCheckEnable()) { String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); @@ -1071,11 +1071,6 @@ public class IoCodeTempController extends BaseController { } - - - - - @AuthRuleAnnotation("") @PostMapping("/udiwms/addCode/updateBindSup") @Log(title = "单据管理", businessType = BusinessType.UPDATE) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 9335188d6..8fb7ba55f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -325,24 +325,47 @@ public class IoOrderController extends BaseController { if (CollUtil.isEmpty(orderDetailCodeEntities)) { return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); } - + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (checkInoutService.checkManual(addOrderRequest.getBillNo())) { if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); - - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); - } - errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); - if (StrUtil.isNotEmpty(errMsg)) { - return ResultVOUtils.error(500, errMsg); + if (bussinessTypeEntity.getCheckWebNew() == 1) { + String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + } else { + String errMsg = checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + orderDetailBizService.deleteByOrderId(addOrderRequest.getBillNo()); + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setId(null); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); + getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); + orderDetailBizService.insert(orderDetailBizEntity); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); } - saveOrderWeb(addOrderRequest); - orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); - orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderService.update(orderEntity); - checkInoutService.check(addOrderRequest.getBillNo()); + + } else { return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); } @@ -557,6 +580,7 @@ public class IoOrderController extends BaseController { for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailCodeEntity.getReCount())); orderDetailBizEntity.setId(null); getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); orderDetailBizService.insert(orderDetailBizEntity); diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 31a7d4d34..d78561b3d 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -296,8 +296,6 @@ public class IoAddInoutService { } if (fromVailPi != null && fromVailPi == 2) - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_ALLOCATE); - else orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index e1077961a..c0951d1c6 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inout.IoOrderDetailBizDao; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; @@ -15,6 +16,7 @@ import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; @@ -140,6 +142,7 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { } return ioOrderDetailBizDao.getfilterOrderList(OrderDetailCodeRequest); } + @Override public IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk) { QueryWrapper ew = new QueryWrapper<>(); @@ -161,12 +164,15 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { IoCheckInoutService checkInoutService; @Resource IoOrderService orderService; + @Resource + IBasicBussinessTypeService bussinessTypeService; @Override public List checkOrderList(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailBizEntities = findByOrderId(orderId); - if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_ALLOCATE) { + BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.getCheckWebNew() == 2) { checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); } else { List codeEntities = orderDetailCodeService.findByOrderId(orderId); From b3b935c0fe1667089bd3e5e86f88cdd779378486 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Fri, 30 Jun 2023 17:32:15 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8D=95=E6=8D=AE?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=9F=A5=E8=AF=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/constant/ConstantStatus.java | 8 +++---- .../controller/inout/IoOrderController.java | 22 +++++++++++++------ .../basic/BasicBussinessTypeEntity.java | 6 +++++ .../impl/BasicBussinessTypeServiceImpl.java | 4 ++-- .../api/service/inout/IoAddInoutService.java | 8 +++---- 5 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 713edc2b6..eb98e869f 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -317,10 +317,10 @@ public class ConstantStatus { public static final int BUS_TYPE_DD = 5; - public static final int SCAN_NO_BUS = 0; //无业业务单扫码拣货 - public static final int SCAN_BUS_PI = 1; //有业务单有三期拣货 - public static final int SCAN_NO_PI = 2; //有业务单无三期拣货 - public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) + public static final int SCAN_NO_BUS = 0; //扫码直接生成业务单 + public static final int SCAN_BUS_PI = 1; //有三期业务单配/拣货 + public static final int SCAN_NO_PI = 2; //无三期业务单配/拣货 + public static final int SCAN_ALL_PI = 3; //有三期业务单校验 //按货位出库 public static final int SPACE_OUT_NULL = 0; //无,不按货位出库 diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 8fb7ba55f..54ac305cd 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -94,6 +94,9 @@ public class IoOrderController extends BaseController { } if (StrUtil.isNotBlank(filterOrderRequest.getVueType())) { orderService.setActions(filterOrderRequest); + if (CollUtil.isEmpty(filterOrderRequest.getActions())) { + return ResultVOUtils.success(null); + } } if (StrUtil.isNotEmpty(filterOrderRequest.getSupInoivceSearch())) { orderService.setInvoiceFiltes(filterOrderRequest); @@ -201,6 +204,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "请先录入产品!"); } + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); String vailKey = ""; for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { @@ -213,16 +217,20 @@ public class IoOrderController extends BaseController { if (orderDetailBizEntity.getCount() == 0) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0!"); } - if (addOrderRequest.getFromVailPi() != 2 && - StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) - && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) - && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { - return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + + if (bussinessTypeEntity.getCheckWebNew() == 1 || bussinessTypeEntity.getCheckWebNew() == 3) { + if (StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) + && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) + && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { + return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); + } } + + } - ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); + ioAddInoutService.dealBusProcess(orderEntity, bussinessTypeEntity); return ResultVOUtils.success("提交成功!"); } @@ -269,7 +277,7 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据类型不能为空"); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); - BasicCorpEntity basicCorpEntity = new BasicCorpEntity(); + BasicCorpEntity basicCorpEntity; //要是特殊往来信息没有就创建 if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) { basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp()); diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index e0cd68eec..69276f251 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -107,7 +107,13 @@ public class BasicBussinessTypeEntity { /** * web前端页面新增单据 + * 0.扫码直接生成业务单 + * 1.有三期业务单配/拣货 + * 2.无三期业务单配/拣货 + * 3.有三期业务单校验 */ + + @TableField(value = "checkWebNew") private int checkWebNew; diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 31155bfe7..4c0999ece 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -258,7 +258,7 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() .eq("enable", true).and( webNew -> webNew.eq("checkWebNew", 3) @@ -273,7 +273,7 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() .eq("enable", true).and( webNew -> webNew.in("checkWebNew", 1, 2) diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index d78561b3d..94261fe9f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -239,7 +239,8 @@ public class IoAddInoutService { //新增业务单据处理 - public void dealBusProcess(IoOrderEntity orderEntity, Integer fromVailPi) { + public void dealBusProcess(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { + orderEntity.setErrMsg("正在处理!"); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); @@ -294,10 +295,7 @@ public class IoAddInoutService { orderService.update(orderEntity); return; } - - if (fromVailPi != null && fromVailPi == 2) - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); - + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); From dae7656fff2f6e73ff782915e9e06fd30f2c21ad Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 3 Jul 2023 09:05:53 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E8=87=B3=E7=AC=AC=E4=B8=89=E6=96=B9=E7=9B=B8=E5=85=B3=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8Cbug=E4=BF=AE=E6=94=B9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/glxp/api/dao/inout/IoOrderDao.java | 2 +- .../inout/impl/IoOrderServiceImpl.java | 21 ++++++++++++------- .../com/glxp/api/task/SyncThirdSysTask.java | 4 +++- .../mybatis/mapper/inout/IoOrderDao.xml | 5 +++++ 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java index ac5351321..8c5e41da9 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDao.java @@ -70,7 +70,7 @@ public interface IoOrderDao extends BaseMapperPlus selectWaitSubmitOrder(@Param("thirdSys") String thirdSys); + List selectWaitSubmitOrder(@Param("thirdSys") String thirdSys, @Param("orderStartTime") String orderStartTime); boolean updateOrder(IoOrderEntity orderEntity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index dfc25170e..e8ed53f60 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -27,6 +27,7 @@ import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.*; import com.glxp.api.entity.system.SyncDataBustypeEntity; +import com.glxp.api.entity.system.SyncUploadDataSetEntity; import com.glxp.api.entity.thrsys.ThrOrderUploadBustypesEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.entity.thrsys.ThrSystemDetailEntity; @@ -42,6 +43,7 @@ import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import com.glxp.api.service.inv.*; import com.glxp.api.service.system.SyncUploadDataBustypeService; +import com.glxp.api.service.system.SyncUploadDataSetService; import com.glxp.api.service.thrsys.ThrOrderUploadBustypesService; import com.glxp.api.util.MsDateUtil; import com.glxp.api.util.IntUtil; @@ -859,14 +861,14 @@ public class IoOrderServiceImpl implements IoOrderService { udiwmsOrderRequest.setBillType(billType); String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest); if (StrUtil.isBlank(response)) { - log.info("单据提交失败,无返回信息"); + log.error("----单据上传----" + billNo + "单据提交失败,无返回信息"); return ResultVOUtils.error(500, "提交失败"); } else { BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); if (baseResponse.getCode() == 20000) { return ResultVOUtils.success("提交成功"); } else { - log.error("单据提交失败,错误信息:{}", baseResponse.getMessage()); + log.error("----单据上传----" + billNo + baseResponse.getMessage()); return ResultVOUtils.error(500, "提交失败"); } } @@ -880,11 +882,14 @@ public class IoOrderServiceImpl implements IoOrderService { @Resource ThrOrderUploadBustypesService thrOrderUploadBustypesService; + @Resource + SyncUploadDataSetService syncUploadDataSetService; @Override public BaseResponse submitOrderToThrSys(ThrSystemDetailEntity thrSystemDetailEntity) { //查询可以提交到第三方系统的单据 - List billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk()); + SyncUploadDataSetEntity syncUploadDataSetEntity = syncUploadDataSetService.selectSet(); + List billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk(),syncUploadDataSetEntity.getOrderStartTime()); if (CollUtil.isNotEmpty(billNos)) { log.info("开始提交单据到第三方系统,本次提交单据数量:{}", billNos.size()); for (String billNo : billNos) { @@ -894,25 +899,25 @@ public class IoOrderServiceImpl implements IoOrderService { log.error(billNo + ":" + orderEntity.getAction() + "单据类型未设置自动上传"); return ResultVOUtils.error(500, billNo + ":" + orderEntity.getAction() + "单据类型未设置自动上传"); } - if (thrOrderUploadBustypesEntity.getOrderSource().contains(orderEntity.getFromType() + "")) { + if (!thrOrderUploadBustypesEntity.getOrderSource().contains(orderEntity.getFromType() + "")) { log.error(billNo + ":" + "单据来源不允许自动提交"); - return ResultVOUtils.error(500, billNo + ":" + "单据来源不允许自动提交"); + continue; } if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 1) { if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW) { log.error(billNo + ":" + "非待审核单据"); - return ResultVOUtils.error(500, billNo + ":" + "非待审核单据"); + continue; } } else if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 2) { if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_AUDITED) { log.error(billNo + ":" + "非已审核单据"); - return ResultVOUtils.error(500, billNo + ":" + "非已审核单据"); + continue; } } else if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 3) { if (IntUtil.value(orderEntity.getCheckStatus()) != 1) { log.error(billNo + ":" + "非已确认单据"); - return ResultVOUtils.error(500, billNo + ":" + "非已确认单据"); + continue; } } return submitToThrSys(billNo); diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index ee60d88b4..7c9b708c8 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -274,7 +274,9 @@ public class SyncThirdSysTask implements SchedulingConfigurer { long curTime = new Date().getTime(); if (vo != null) { long lastTime = vo.getNextTime(); - if (curTime - lastTime < thrSystemDetailEntity.getTime().intValue() * 1000 * 60) { + + long timeInterval = Long.parseLong(thrSystemDetailEntity.getTime().intValue() + "") * 1000 * 60; + if (curTime - lastTime < timeInterval) { log.info("定时任务时间未到", taskKey); return false; } else { diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml index 5e417cb01..3d9e2f404 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDao.xml @@ -441,6 +441,11 @@ AND t1.thirdSys = #{thirdSys} + + = DATE_FORMAT(#{orderStartTime}, '%Y-%m-%d %H:%i:%S') + ]]> + From 1beea3a2540cc400dc03ba47a378866f04e821ec Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 6 Jul 2023 10:01:01 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=90=88=E5=B9=B6dev=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/inout/IoOrderDetailResultController.java | 6 ++++++ .../service/inout/impl/IoOrderDetailResultServiceImpl.java | 2 ++ src/main/java/com/glxp/api/task/SyncHeartTask.java | 1 + 3 files changed, 9 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index 78dc1572a..c69a5e34a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -1,6 +1,7 @@ package com.glxp.api.controller.inout; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; @@ -15,15 +16,20 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.system.CompanyEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.InspectionPDFTemplateRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; +import com.glxp.api.res.inout.CptTraceResultResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; +import com.glxp.api.service.system.CompanyService; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index 66ac03de1..23ba1b5ed 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -6,7 +6,9 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inout.IoOrderDetailResultDao; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.req.inout.CptTraceRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; +import com.glxp.api.res.inout.CptTraceOrderResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.inout.IoOrderDetailResultService; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 8daa0ac60..aaf5e9027 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -8,6 +8,7 @@ import com.glxp.api.entity.system.SyncDataSetEntity; import com.glxp.api.req.system.ScheduledRequest; import com.glxp.api.service.sync.HeartService; import com.glxp.api.util.RedisUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; From 7c15d5ba3d0bd8b8035c76ec7a60249c8b886ea0 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Thu, 6 Jul 2023 17:36:39 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E6=97=A0=E6=89=B9=E6=AC=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/res/basic/UdiRelevanceResponse.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 4d588f774..e192f98a9 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -155,6 +155,12 @@ public class UdiRelevanceResponse { return allowNoProduct; } + public Boolean getAllowNoSerial() { + + if (allowNoSerial == null) + return true; + return allowNoSerial; + } public Boolean getUseDy() { if (isUseDy == null)