diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index 5fbee80c0..0b50222f7 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -396,6 +396,22 @@ public class IoCollectOrderController extends BaseController { } + @PostMapping("/udiwms/basic/collect/order/vailFinish") + public BaseResponse vailOrderFinish(@RequestBody CollectOrderRequest collectOrderRequest) { + + if (StrUtil.isEmpty(collectOrderRequest.getBillNo())) + return ResultVOUtils.error(500, "单据号不能为空!"); + CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); + collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo()); + List collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest); + boolean isAllTag = collectOrderBizResponses.stream() + .allMatch(obj -> StrUtil.isNotEmpty(obj.getFinishUdiCode()) || obj.getAutoTagStatus() == 2); + boolean isAllTag2 = collectOrderBizResponses.stream() + .allMatch(obj -> IntUtil.value(obj.getActCount()) >= IntUtil.value(obj.getCount())); + return ResultVOUtils.success(isAllTag || isAllTag2); + } + + @PostMapping("/udiwms/basic/collect/order/bindWork") public BaseResponse bindWork(@RequestBody CollectOrderBindWorkRequest bindWorkRequest) { if (bindWorkRequest.getCollOrder() != null) { 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 465bae99a..667901bc0 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -186,7 +186,7 @@ public class IoCodeTempController extends BaseController { //前端扫码完整性校验 @AuthRuleAnnotation("") - @PostMapping("warehouse/inout/enterCode") + @PostMapping("warehouse/inout/`enterCode") public BaseResponse addEndterCode(@RequestBody AddEnterCodeRequest addEnterCodeRequest) { if (StrUtil.isEmpty(addEnterCodeRequest.getCode())) { @@ -365,6 +365,14 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "追溯码不能为空"); codeList = codeList.stream().distinct().collect(Collectors.toList()); List vailCodeResultResponses = new ArrayList<>(); + List prefixes = Arrays.asList("01", "11", "17", "10", "21"); + //判断是否多段扫码 + String mutiCode = filterAndConcatenate(codeList, prefixes); + UdiEntity temp = FilterUdiUtils.getUdi(mutiCode); + if (temp != null) { + codeList.clear(); + codeList.add(mutiCode); + } for (String code : codeList) { VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); UdiEntity udiEntity = FilterUdiUtils.getUdi(code); @@ -388,6 +396,30 @@ public class IoCodeTempController extends BaseController { } + public static String filterAndConcatenate(List codeList, List prefixes) { + Set matchedPrefixes = new HashSet<>(); + StringBuilder concatenatedResult = new StringBuilder(); + for (String prefix : prefixes) { + for (String code : codeList) { + if (code.length() >= 2 && code.startsWith(prefix)) { + if (!matchedPrefixes.contains(prefix)) { + matchedPrefixes.add(prefix); + concatenatedResult.append(code); + break; + } + } + } + UdiEntity udiEntity = FilterUdiUtils.getUdi(concatenatedResult.toString()); + if (udiEntity != null && StrUtil.isNotEmpty(udiEntity.getBatchNo())) { + if (concatenatedResult.toString().endsWith("10" + udiEntity.getBatchNo())) { + concatenatedResult.append("\u001D"); + } + } + } + return concatenatedResult.toString(); + } + + @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("warehouse/inout/batchAddCode")