diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java index 8d9974ee3..df848e2e2 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -77,8 +77,46 @@ public class IoCollectOrderCodeManController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - IoCollectOrder collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust); - return ResultVOUtils.success(collectOrder); + IoCollectOrder collectOrder; + try { + collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust); + return ResultVOUtils.success(collectOrder); + } catch (JsonException e) { + if (e.getCode() == 503) { + // 单据扫码数量大于1 的需要拆零确认 + List vailCodeResultResponses = new ArrayList<>(); + String msg = e.getMessage(); + String[] data = msg.split(";"); + String count = data[1]; + List vailCodesList = new ArrayList(); + if (IntUtil.value(count) > 1) { + VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); + vailCodeResultResponse.setStatus(4); + vailCodeResultResponse.setCode(addTagCodeReqeust.getCode()); + vailCodeResultResponse.setBizId(data[0]); + vailCodeResultResponse.setCpmctymc(data[2]); + vailCodeResultResponse.setErrMsg(data[3]); + vailCodeResultResponses.add(vailCodeResultResponse); + vailCodesList.add(addTagCodeReqeust.getCode()); + String errMsg = countSameErrMsg(vailCodeResultResponses); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } else { + addTagCodeReqeust.setInsert(true); + collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust); + } + IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz(); + collectOrderBiz.setId(collectOrder.getId()); + collectOrderBiz.setSplitUnCheck(true); + collectOrderBizService.updateById(collectOrderBiz); + return ResultVOUtils.success(collectOrder); + } + + } else { + return ResultVOUtils.error(500, e.getMessage()); + } + } + return ResultVOUtils.error(500, "未知异常"); } /** @@ -140,6 +178,7 @@ public class IoCollectOrderCodeManController extends BaseController { collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust); } + } return ResultVOUtils.success(vailTagResultResponse); } @@ -169,24 +208,30 @@ public class IoCollectOrderCodeManController extends BaseController { collectOrderBizService.updateById(collectiveOrderBiz); } return ResultVOUtils.success("更新成功!"); + } + if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) { + List codeList = addTagCodeReqeust.getCodeList(); + //todo + return ResultVOUtils.success(""); + } else { return ResultVOUtils.error("数据不能为空"); } - } public String countSameErrMsg(List vailCodeResultResponses) { Map errMsgCountMap = new HashMap<>(); for (VailCodeResultResponse response : vailCodeResultResponses) { - String errMsg = response.getCode().substring(0, 7) + ";" + response.getErrMsg(); - if (errMsgCountMap.containsKey(errMsg)) { - errMsgCountMap.put(errMsg, errMsgCountMap.get(errMsg) + 1); - } else { - errMsgCountMap.put(errMsg, 1); + if (response.getStatus() == 4) { + String errMsg = response.getCode().substring(0, 7) + ";" + response.getErrMsg(); + if (errMsgCountMap.containsKey(errMsg)) { + errMsgCountMap.put(errMsg, errMsgCountMap.get(errMsg) + 1); + } else { + errMsgCountMap.put(errMsg, 1); + } } } - for (Map.Entry entry : errMsgCountMap.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); @@ -215,7 +260,7 @@ public class IoCollectOrderCodeManController extends BaseController { @PostMapping("/udiwms/ioSplit/collect/code/removeByScanCode") public BaseResponse removeByScanCode(@RequestBody @Valid DeleteTageCodeRequest deleteTageCodeRequest, - BindingResult bindingResult) { + BindingResult bindingResult) { //codes orderId String orderId = deleteTageCodeRequest.getOrderId(); IoCollectOrder ioCollectOrder = collectOrderService.getByBillNo(orderId); @@ -228,8 +273,7 @@ public class IoCollectOrderCodeManController extends BaseController { deleteTageCodeRequest.setCodeManId(Long.valueOf(ioCollectOrderCode.getId())); collectOrderService.removeCode(deleteTageCodeRequest); } - } - else + } else return ResultVOUtils.error("无效条码"); return ResultVOUtils.success("剔除成功!"); } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java index f49f5e09c..3666b6294 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -298,9 +298,14 @@ public class IoCollectOrderCodeManService extends ServiceImpl myUseCount) { + throw new JsonException(500, collectOrderBiz.getCpmctymc() + "扫码数量超出!"); + } else { + collectOrderBiz.setSplitUnCheck(true); + throw new JsonException(503, collectOrderBiz.getId() + ";" + count1 + ";" + collectOrderBiz.getCpmctymc() + ";" + "扫码数量超出!"); + } } - collectOrderBiz.setSplitUnCheck(true); - throw new JsonException(503, collectOrderBiz.getId() + ";" + count1 + ";" + collectOrderBiz.getCpmctymc() + ";" + "扫码数量超出!"); } collectOrderBiz.setScanCount(count1); collectOrderBiz.setScanActCount(actCount1); @@ -394,9 +399,15 @@ public class IoCollectOrderCodeManService extends ServiceImpl myUseCount) { + throw new JsonException(500, collectOrderBiz.getCpmctymc() + "扫码数量超出!"); + } else { + collectOrderBiz.setSplitUnCheck(true); + throw new JsonException(503, collectOrderBiz.getId() + ";" + count1 + ";" + collectOrderBiz.getCpmctymc() + ";" + "扫码数量超出!"); + } } - collectOrderBiz.setSplitUnCheck(true); - throw new JsonException(503, collectOrderBiz.getId() + ";" + count1 + ";" + collectOrderBiz.getCpmctymc() + ";" + "扫码数量超出!"); + } collectOrderBiz.setScanCount(count1); collectOrderBiz.setScanActCount(actCount1);