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 19e5069e5..802ebb49b 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -2,9 +2,11 @@ package com.glxp.api.controller.inout; import cn.hutool.core.thread.ThreadUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.glxp.api.annotation.CusRedissonAnnotation; import com.glxp.api.constant.*; +import com.glxp.api.dao.inout.IoOrderDetailCodeDao; import com.glxp.api.entity.basic.*; import com.glxp.api.entity.collect.IoCollectCode; import com.glxp.api.entity.collect.IoCollectOrder; @@ -533,9 +535,14 @@ public class IoCodeTempController extends BaseController { if (ioOrderEntity != null) { addOrderRequest.setBillNo(ioOrderEntity.getBillNo()); } - if (IntUtil.value(udiEntity.getProductType()) == 2) { - baseResponse = addDrugOrder(addOrderRequest, udiEntity, code); + try { + baseResponse = addDrugOrder(addOrderRequest, udiEntity, code); + } catch (JsonException e) { + if (e.getCode() == 507) { + baseResponse = ResultVOUtils.error(e.getCode(), e.getMessage()); + } + } } else { baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); } @@ -631,6 +638,8 @@ public class IoCodeTempController extends BaseController { IoSplitFifoCodeService fifoCodeService; @Resource IoSplitCodeService splitCodeService; + @Resource + private IoOrderDetailCodeDao orderDetailCodeDao; @Transactional(rollbackFor = Exception.class) public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) { @@ -1263,7 +1272,13 @@ public class IoCodeTempController extends BaseController { } } addCodeResult.setOrderId(orderId); - transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); + try { + transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); + } catch (JsonException e) { + if (e.getCode() == 507) { + return ResultVOUtils.error(e.getCode(), e.getMessage()); + } + } return ResultVOUtils.success(addCodeResult); } @@ -1423,6 +1438,8 @@ public class IoCodeTempController extends BaseController { IoCodeTempEntity exitLocalEntity = null; IoCodeTempEntity genDetaiEntity = new IoCodeTempEntity(); List udiRelevanceResponses = null; + + if (codeEnttitys.size() > 0) { exitLocalEntity = isExitLocal(code, codeEnttitys); if (exitLocalEntity != null) { @@ -1430,7 +1447,6 @@ public class IoCodeTempController extends BaseController { return ResultVOUtils.error(500, "当前药品追溯码已存在,且存在异常未处理!"); } udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(exitLocalEntity.getNameCode(), null); - BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity); genDetaiEntity.setCount(1); @@ -1549,6 +1565,20 @@ public class IoCodeTempController extends BaseController { } //产品是否禁用 udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(codeEnttity.getNameCode(), false); + + if (bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT)) { + if (orderEntity != null && StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode()) && CollUtil.isNotEmpty(codeEnttitys)) { + boolean isSame = false; + for (IoCodeTempEntity ioOrderDetailCodeEntity : codeEnttitys) { + if (ioOrderDetailCodeEntity.getRelId().equals(udiRelevanceResponse.getId())) { + isSame = true; + } + } + if (!isSame) + return ResultVOUtils.error(507, "上货产品不符!"); + } + } + if (udiRelevanceResponses.size() >= 1) { if (udiRelevanceResponse == null) { return ResultVOUtils.error(500, "该产品信息未维护!"); @@ -2650,7 +2680,14 @@ public class IoCodeTempController extends BaseController { } } addCodeResult.setOrderId(orderId); - transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); + try { + transInoutService.genOrderDetailCode(orderEntity, genDetaiEntity); + } catch (JsonException e) { + if (e.getCode() == 507) { + return ResultVOUtils.error(e.getCode(), e.getMessage()); + } + } + return ResultVOUtils.success(addCodeResult); } @@ -2762,7 +2799,14 @@ public class IoCodeTempController extends BaseController { BaseResponse baseResponse = null; addOrderRequest.setCode(code); if (IntUtil.value(udiEntity.getProductType()) == 2) { - baseResponse = addDrugOrder(addOrderRequest, udiEntity, code); + try { + baseResponse = addDrugOrder(addOrderRequest, udiEntity, code); + } catch (JsonException e) { + if (e.getCode() == 507) { + baseResponse = ResultVOUtils.error(e.getCode(), e.getMessage()); + } + } + } else { baseResponse = addMaterOrder(addOrderRequest, udiEntity, code); } 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 c383def12..9e8250bc0 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -449,17 +449,16 @@ public class IoAddInoutService { List ioOrderDetailCodeEntities = orderDetailCodeDao.selectList(new QueryWrapper().select("id", "count", "reCount", "bindRlFk", "batchNo", "price").eq("orderIdFk", orderEntity.getBillNo())); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectSupGroupById(codeTempEntity.getRelId(), codeTempEntity.getSupId()); - - if (StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode()) && CollUtil.isNotEmpty(ioOrderDetailCodeEntities)) { - boolean isSame = false; - for (IoOrderDetailCodeEntity ioOrderDetailCodeEntity : ioOrderDetailCodeEntities) { - if (ioOrderDetailCodeEntity.getBindRlFk().equals(udiRelevanceResponse.getId())) { - isSame = true; - } - } - if (!isSame) - throw new JsonException(500, "上货产品不符!"); - } +// if (StrUtil.isNotEmpty(orderEntity.getWorkPlaceQueueCode()) && CollUtil.isNotEmpty(ioOrderDetailCodeEntities)) { +// boolean isSame = false; +// for (IoOrderDetailCodeEntity ioOrderDetailCodeEntity : ioOrderDetailCodeEntities) { +// if (ioOrderDetailCodeEntity.getBindRlFk().equals(udiRelevanceResponse.getId())) { +// isSame = true; +// } +// } +// if (!isSame) +// throw new JsonException(507, "上货产品不符!"); +// } if (codeTempEntity.getPrice() == null && udiRelevanceResponse.getPrice() != null) { codeTempService.updateById(IoCodeTempEntity.builder().id(codeTempEntity.getId()).price(udiRelevanceResponse.getPrice()).build());