From 47f1b6875dfcae0d0340b16f0c70f60e9d784342 Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Thu, 19 Sep 2024 16:19:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=A5=E4=BD=8D=E4=B8=8A=E8=B4=A7?= =?UTF-8?q?=E9=80=89=E5=B7=B2=E5=AE=8C=E6=88=90=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collect/IoCollectOriginController.java | 1 + .../inout/IoCodeTempController.java | 103 ++++++++++++++++++ .../req/basic/GetSickPrescribeRequest.java | 1 + .../api/req/collect/CollectOrderRequest.java | 4 - .../api/req/inout/AddOrderCodeRequest.java | 2 + .../collect/IoCollectOrderBackupMapper.xml | 16 +-- 6 files changed, 115 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java index bff0acbf8..af2211595 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOriginController.java @@ -86,6 +86,7 @@ public class IoCollectOriginController extends BaseController { getSickPrescribeRequest.setPage(collectOrderRequest.getPage()); getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName()); getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName()); + getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType()); BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); return baseResponse; 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 ad90f5897..dc0783295 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -1,8 +1,10 @@ package com.glxp.api.controller.inout; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.constant.*; import com.glxp.api.entity.basic.*; +import com.glxp.api.entity.collect.IoCollectCode; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.exception.JsonException; @@ -10,6 +12,8 @@ import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; import com.glxp.api.res.inout.VailCodeResultResponse; +import com.glxp.api.service.collect.IoCollectCodeService; +import com.glxp.api.service.collect.IoCollectOrderBizBackupService; import com.glxp.api.service.collect.IoCollectOrderService; import com.glxp.api.service.collect.IoCollectOriginService; import com.glxp.api.service.inout.impl.IoCodeService; @@ -105,6 +109,8 @@ public class IoCodeTempController extends BaseController { IoCollectOriginService collectOriginService; @Resource IoCollectOrderService collectOrderService; + @Resource + IoCollectCodeService ioCollectCodeService; /** * PDA-----单据上传 @@ -2515,4 +2521,101 @@ public class IoCodeTempController extends BaseController { } return true; } + + /** + * 工位上货选入完成单据 + */ + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/batchAddCodeByOrderFinish") + @Log(title = "单据管理", businessType = BusinessType.INSERT) + public BaseResponse batchAddCodeByOrderFinish(@RequestBody AddOrderCodeRequest addOrderCodeRequest, BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + String orderFinishBillNo = addOrderCodeRequest.getOrderFinishBillNo(); + List list = ioCollectCodeService.list(new LambdaUpdateWrapper().eq(IoCollectCode::getBillNo, orderFinishBillNo)); + if (CollUtil.isEmpty(list)) return ResultVOUtils.error(500, "未找到已完成单的码明细"); + List codeList = new ArrayList<>(); + list.forEach(item -> { + String code = item.getCode(); + Integer reCountObj = item.getScanCount(); + int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null,则默认为0次迭代 + for (int i = 0; i < reCount; i++) { + codeList.add(code); + } + }); + addOrderCodeRequest.setCodeList(codeList); + addOrderCodeRequest.setCorpOrderId(orderFinishBillNo); + + AddCodeResult addCodeResult = new AddCodeResult(); + if (CollUtil.isEmpty(codeList)) + return ResultVOUtils.error(500, "追溯码不能为空"); + List vailCodeResultResponses = new ArrayList<>(); + for (String code : codeList) { + VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); + AddOrderRequest addOrderRequest = new AddOrderRequest(); + BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest); + addOrderRequest.setBillNo(addCodeResult.getOrderId()); + if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); + code = code.trim(); + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (udiEntity == null) { + vailCodeResultResponse.setCode(code); + vailCodeResultResponse.setStatus(2); + vailCodeResultResponse.setErrMsg("无效条码"); + } + if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) { + udiEntity.setBatchNo(addOrderRequest.getBatchNo()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) { + udiEntity.setProduceDate(addOrderRequest.getProduceDate()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) { + udiEntity.setExpireDate(addOrderRequest.getExpireDate()); + } + if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) { + udiEntity.setSerialNo(addOrderRequest.getSerialNo()); + } + + AuthAdmin authAdmin = getUser(); + addOrderRequest.setInvCode(authAdmin.getLocInvCode()); + if (IntUtil.value(addOrderCodeRequest.getInoutType()) == 2) { + addOrderRequest.setAction(ConstantType.SPLIT_RETURN); + } else { + addOrderRequest.setAction(ConstantType.SPLIT_OUT); + } + addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP); + + BaseResponse baseResponse = null; + addOrderRequest.setCode(code); + if (IntUtil.value(udiEntity.getProductType()) == 2) { + baseResponse = adddGrugOrder(addOrderRequest, udiEntity, code); + } else { + baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); + } + + if (baseResponse.getCode() == 20000) { + vailCodeResultResponse.setCode(code); + vailCodeResultResponse.setStatus(1); + vailCodeResultResponse.setErrMsg("正确"); + AddCodeResult temp = (AddCodeResult) baseResponse.getData(); + addCodeResult.setOrderId(temp.getOrderId()); + addOrderRequest.setBillNo(temp.getOrderId()); + } else { + vailCodeResultResponse.setCode(code); + vailCodeResultResponse.setStatus(2); + vailCodeResultResponse.setErrMsg(baseResponse.getMessage()); + } + vailCodeResultResponses.add(vailCodeResultResponse); + } + addCodeResult.setVailCodeResultResponses(vailCodeResultResponses); + return ResultVOUtils.success(addCodeResult); + } + + } diff --git a/src/main/java/com/glxp/api/req/basic/GetSickPrescribeRequest.java b/src/main/java/com/glxp/api/req/basic/GetSickPrescribeRequest.java index 7967b0680..be25fd7f3 100644 --- a/src/main/java/com/glxp/api/req/basic/GetSickPrescribeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/GetSickPrescribeRequest.java @@ -32,4 +32,5 @@ public class GetSickPrescribeRequest extends ListPageRequest { private String fromCorpName; private String shipperName; + private String busType; } diff --git a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java index 611a729a6..1e146a0d8 100644 --- a/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java +++ b/src/main/java/com/glxp/api/req/collect/CollectOrderRequest.java @@ -143,10 +143,6 @@ public class CollectOrderRequest extends ListPageRequest { private List documentTypeCodes; - /** - * 关键字搜索 - */ - private String keywords; private String excludeWorkCode; diff --git a/src/main/java/com/glxp/api/req/inout/AddOrderCodeRequest.java b/src/main/java/com/glxp/api/req/inout/AddOrderCodeRequest.java index 716e276eb..66afd4a33 100644 --- a/src/main/java/com/glxp/api/req/inout/AddOrderCodeRequest.java +++ b/src/main/java/com/glxp/api/req/inout/AddOrderCodeRequest.java @@ -44,4 +44,6 @@ public class AddOrderCodeRequest { */ private String billNo; + private String orderFinishBillNo; + } diff --git a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml index 98f421475..e8c36897d 100644 --- a/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/IoCollectOrderBackupMapper.xml @@ -104,12 +104,12 @@ and icob.uploadStatus = #{uploadStatus} - - and (icob.billNo like concat('%', #{keywords}, '%') - or icob.fromCorp like concat('%', #{keywords}, '%') - or icob.workPlaceCode like concat('%', #{keywords}, '%') - or icob.busType like concat('%', #{keywords}, '%') - or icob.fromType like concat('%', #{keywords}, '%')) + + and (icob.billNo like concat('%', #{keyWords}, '%') + or icob.fromCorp like concat('%', #{keyWords}, '%') + or icob.workPlaceCode like concat('%', #{keyWords}, '%') + or icob.busType like concat('%', #{keyWords}, '%') + or icob.fromType like concat('%', #{keyWords}, '%')) AND icob.shipperName LIKE concat('%', #{shipperName}, '%') @@ -119,12 +119,12 @@ = DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S') + and icob.updateTime >= DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S') ]]>