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 c9356ec92..786dc0ef0 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderCodeManController.java @@ -98,196 +98,7 @@ public class IoCollectOrderCodeManController extends BaseController { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } - SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode()); - if (workPlace == null) - return ResultVOUtils.error(500, "请先选择工位"); - IoCollectOrderBiz collectOrderBiz = null; - IoCollectOrder collectOrder = null; - - //1.校验UDI码完整性 - String code = addTagCodeReqeust.getCode(); - if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR); - if (code.endsWith("\u001D")) { - code = code.replace("\u001D", ""); - } - UdiEntity udiEntity = FilterUdiUtils.getUdi(code); - if (udiEntity == null) - return ResultVOUtils.error(500, "无效条码!"); - UdiRelevanceResponse udiRelevanceResponse; - List udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null); - if (CollUtil.isEmpty(udiRelevanceResponses)) - return ResultVOUtils.error(500, "耗材字典不存在此产品!"); - else - udiRelevanceResponse = udiRelevanceResponses.get(0); - - List collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); - //2.校验是否处方单UDI码 - if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { - if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) { - String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); - BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(workPlace.getOrderId()); - collectOrder = IoCollectOrder.builder() - .billNo(orderNo) - .busType(bustypeEntity.getCode()) - .fromType(bustypeEntity.getFromType()) - .fromCorp(addTagCodeReqeust.getFromCorp()) - .billTime(new Date()) - .workPlaceCode(workPlace.getWorkplaceId()) - .createTime(new Date()) - .createUser(getUserId() + "") - .updateTime(new Date()) - .tagStatus(1) - .build(); - collectOrderService.save(collectOrder); - } else { - collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); - } - - //直接扫码单生成业务单 - collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); - collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); - collectOrderBizService.saveOrUpdate(collectOrderBiz); - } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { - collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); - if (collectOrder == null) - return ResultVOUtils.error(500, "单据不存在!"); - //3.校验该UDI码是否已经出库(是否在预出库队列) -// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); -// if (!b1) { -// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); -// } - - collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); - - - switch (workPlace.getCheckInsert()) { - case 1: //插入 - if (collectOrderBiz == null) { - collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); - collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); - } else { - collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); - } - break; - case 2: //不插入 - if (collectOrderBiz == null) - return ResultVOUtils.error(500, "非此单据追溯码!"); - int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; - if (count > IntUtil.value(collectOrderBiz.getCount())) { - return ResultVOUtils.error(500, "扫码数量超出!"); - } - collectOrderBiz.setScanCount(count); - - break; - case 3: //提醒是否插入 - - if (!IntUtil.value(addTagCodeReqeust.getInsert())) { - if (collectOrderBiz == null) - return ResultVOUtils.error(502, "非此单据追溯码!"); - int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1; - if (count1 > collectOrderBiz.getCount()) { - return ResultVOUtils.error(502, "扫码数量超出!"); - } - collectOrderBiz.setScanCount(count1); - } else { - if (collectOrderBiz == null) { - collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); - collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); - } else { - collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); - } - } - break; - default: - break; - } - - - } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { - collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); - if (collectOrder == null) - return ResultVOUtils.error(500, "单据不存在!"); - //3.校验该UDI码是否已经出库(是否在预出库队列) -// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); -// if (!b1) { -// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); -// } - - //按单不校验三期 - collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); - switch (workPlace.getCheckInsert()) { - case 1: //插入 - if (collectOrderBiz == null) { - collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); - collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); - } else { - collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); - } - break; - case 2: //不插入 - if (collectOrderBiz == null) - return ResultVOUtils.error(500, "非此单据追溯码!"); - int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; - if (count > IntUtil.value(collectOrderBiz.getCount())) { - return ResultVOUtils.error(500, "扫码数量超出!"); - } - collectOrderBiz.setScanCount(count); - - break; - case 3: //提醒是否插入 - - if (!IntUtil.value(addTagCodeReqeust.getInsert())) { - if (collectOrderBiz == null) - return ResultVOUtils.error(502, "非此单据追溯码!"); - int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1; - if (count1 > IntUtil.value(collectOrderBiz.getCount())) { - return ResultVOUtils.error(502, "扫码数量超出!"); - } - collectOrderBiz.setScanCount(count1); - } else { - if (collectOrderBiz == null) { - collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); - collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); - } else { - collectOrderBiz.setScanCount(collectOrderBiz.getScanCount() + 1); - } - } - - break; - default: - break; - } - } - collectOrderBizService.updateById(collectOrderBiz); - - IoCollectOrderCodeMan exitCode = collectOrderCodeManService.findByCode(collectOrderBiz.getOrderIdFk(), code); - if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { - exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); - exitCode.setBizIdFk(collectOrderBiz.getId()); - collectOrderCodeManService.updateById(exitCode); - } else if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) { - return ResultVOUtils.error(500, "重复扫码!"); - } else { - IoCollectOrderCodeMan collectOrderCodeMan = - IoCollectOrderCodeMan.builder() - .udiCode(code) - .orderIdFk(collectOrder.getBillNo()) - .bizIdFk(collectOrderBiz.getId()) - .relId(collectOrderBiz.getRelId()) - .nameCode(udiRelevanceResponse.getNameCode()) - .batchNo(udiEntity.getBatchNo()) - .productDate(udiEntity.getProduceDate()) - .expireDate(udiEntity.getExpireDate()) - .createTime(new Date()) - .createUser(getUserId()) - .updateTime(new Date()) - .updateUser(getUserId()) - .scanCount(1) - .build(); - collectOrderCodeManService.save(collectOrderCodeMan); - } - collectOrder.setTagStatus(2); - collectOrderService.updateById(collectOrder); + IoCollectOrder collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust); return ResultVOUtils.success(collectOrder); } @@ -299,80 +110,4 @@ public class IoCollectOrderCodeManController extends BaseController { return ResultVOUtils.success("操作成功!"); } - public IoCollectOrderBiz scanGenOrder(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { - for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { - for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && - (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) - ) { - collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1); - collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); - return collectOrderBiz; - } - - } - } - UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); - return IoCollectOrderBiz.builder() - .relId(udiRelevanceResponse.getId()) - .thrCode(udiRelevanceResponse.getMainId()) - .ybbm(udiRelevanceResponse.getYbbm()) - .payFeeCode(udiRelevanceResponse.getPayFeeCode()) - .cpmctymc(udiRelevanceResponse.getCpmctymc()) - .nameCode(udiRelevanceResponse.getNameCode()) - .ggxh(udiRelevanceResponse.getGgxh()) - .batchNo(udiEntity.getBatchNo()) - .productDate(udiEntity.getProduceDate()) - .expireDate(udiEntity.getExpireDate()) - .count(0) - .actCount(0) - .scanCount(1) - .scanActCount(1) - .measureUnit(udiRelevanceResponse.getMeasname()) - .createTime(new Date()) - .updateTime(new Date()) - .build(); - - } - - public IoCollectOrderBiz vailByBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { - for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { - for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && - (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) - ) { - return collectOrderBiz; - } - - } - } - return null; - } - - - public IoCollectOrderBiz vailNoBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { - List addList = new ArrayList<>(); - for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { - for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { - if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId())) { - addList.add(collectOrderBiz); - } - } - } - if (addList.size() > 0) { - for (IoCollectOrderBiz collectOrderBiz : addList) { - - if (StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { - return collectOrderBiz; - } - if (IntUtil.value(collectOrderBiz.getCount()) > IntUtil.value(collectOrderBiz.getScanCount())) { - return collectOrderBiz; - } - } - return addList.get(0); - } - return null; - } - - } 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 f6f39d462..21f580e37 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderCodeManService.java @@ -1,29 +1,69 @@ package com.glxp.api.service.collect; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.common.enums.ResultEnum; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.WorkOperType; import com.glxp.api.dao.basic.BasicSkPrescribeItemCodeMapper; import com.glxp.api.dao.collect.IoCollectOrderCodeAutoMapper; +import com.glxp.api.entity.auth.SysWorkplace; +import com.glxp.api.entity.basic.BasicCollectBustypeEntity; import com.glxp.api.entity.basic.BasicSkPrescribeItemCode; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.entity.collect.IoCollectOrder; +import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.collect.IoCollectOrderCodeAuto; +import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.CollectOrderCodeAutoRequest; import com.glxp.api.req.collect.CollectOrderCodeManRequest; +import com.glxp.api.req.inout.AddTagCodeReqeust; +import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.CollectOrderCodeAutoResponse; import com.glxp.api.res.collect.CollectOrderCodeManResponse; +import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.auth.SysWorkplaceService; +import com.glxp.api.service.basic.BasicCollectBustypeService; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.IntUtil; +import com.glxp.api.util.OrderNoTypeBean; +import com.glxp.api.util.udi.FilterUdiUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.collect.IoCollectOrderCodeMan; import com.glxp.api.dao.collect.IoCollectOrderCodeManMapper; +import org.springframework.transaction.annotation.Transactional; @Service public class IoCollectOrderCodeManService extends ServiceImpl { @Resource IoCollectOrderCodeManMapper collectOrderCodeManMapper; + @Resource + SysWorkplaceService sysWorkPlaceService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + IoCollectOrderBizService collectOrderBizService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + BasicCollectBustypeService bustypeService; + @Resource + CustomerService customerService; + @Resource + IoCollectOrderService collectOrderService; public List filterList(CollectOrderCodeManRequest collectOrderCodeManRequest) { if (collectOrderCodeManRequest == null) { @@ -46,4 +86,277 @@ public class IoCollectOrderCodeManService extends ServiceImpl().eq(IoCollectOrderCodeMan::getOrderIdFk, billNo) .eq(IoCollectOrderCodeMan::getUdiCode, code).last("limit 1")); } + + @Transactional(rollbackFor = Exception.class) + public IoCollectOrder prescribeTagCode(AddTagCodeReqeust addTagCodeReqeust) { + Long userId = customerService.getUserId(); + String userIds = customerService.getUserId() + ""; + SysWorkplace workPlace = sysWorkPlaceService.getWorkplace(addTagCodeReqeust.getWorkPlaceCode()); + if (workPlace == null) throw new JsonException(500,"请先选择工位"); + IoCollectOrderBiz collectOrderBiz = null; + IoCollectOrder collectOrder = null; + + //1.校验UDI码完整性 + String code = addTagCodeReqeust.getCode(); + if (StringUtils.isBlank(code)) throw new JsonException(ResultEnum.DATA_ERROR.getMessage()); + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } + UdiEntity udiEntity = FilterUdiUtils.getUdi(code); + if (udiEntity == null) throw new JsonException(500,"无效条码!"); + + UdiRelevanceResponse udiRelevanceResponse; + List udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), null); + if (CollUtil.isEmpty(udiRelevanceResponses)) throw new JsonException(500,"耗材字典不存在此产品!"); + else udiRelevanceResponse = udiRelevanceResponses.get(0); + + List collectOrderBizs = collectOrderBizService.listByBillNo(addTagCodeReqeust.getBillNo()); + //2.校验是否处方单UDI码 + if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_GEN_ORDER) { + if (StrUtil.isEmpty(addTagCodeReqeust.getBillNo())) { + String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); + BasicCollectBustypeEntity bustypeEntity = bustypeService.findByCode(workPlace.getOrderId()); + collectOrder = IoCollectOrder.builder() + .billNo(orderNo) + .busType(bustypeEntity.getCode()) + .fromType(bustypeEntity.getFromType()) + .fromCorp(addTagCodeReqeust.getFromCorp()) + .billTime(new Date()) + .workPlaceCode(workPlace.getWorkplaceId()) + .createTime(new Date()) + .createUser(userIds) + .updateTime(new Date()) + .tagStatus(1) + .build(); + collectOrderService.save(collectOrder); + } else { + collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + } + + //直接扫码单生成业务单 + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + collectOrderBizService.saveOrUpdate(collectOrderBiz); + } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_VAIL_BATCH) { + collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + if (collectOrder == null) + throw new JsonException(500,"单据不存在!"); + //3.校验该UDI码是否已经出库(是否在预出库队列) +// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); +// if (!b1) { +// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); +// } + + collectOrderBiz = vailByBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); + + + switch (workPlace.getCheckInsert()) { + case 1: //插入 + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); + } + break; + case 2: //不插入 + if (collectOrderBiz == null) + throw new JsonException(500, "非此单据追溯码!"); + int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; + if (count > IntUtil.value(collectOrderBiz.getCount())) { + throw new JsonException(500, "扫码数量超出!"); + } + collectOrderBiz.setScanCount(count); + + break; + case 3: //提醒是否插入 + + if (!IntUtil.value(addTagCodeReqeust.getInsert())) { + if (collectOrderBiz == null) + throw new JsonException(502, "非此单据追溯码!"); + int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1; + if (count1 > collectOrderBiz.getCount()) { + throw new JsonException(502, "扫码数量超出!"); + } + collectOrderBiz.setScanCount(count1); + } else { + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); + } + } + break; + default: + break; + } + + + } else if (IntUtil.value(workPlace.getOperationType()) == WorkOperType.TYPE_UNVAIL_BATCH) { + collectOrder = collectOrderService.getByBillNo(addTagCodeReqeust.getBillNo()); + if (collectOrder == null) + throw new JsonException(500, "单据不存在!"); + //3.校验该UDI码是否已经出库(是否在预出库队列) +// Boolean b1 = splitFifoCodeService.isExitCode(code, collectOrder.getWorkPlaceCode()); +// if (!b1) { +// return ResultVOUtils.error(500, "该追溯码未上货,无法使用!"); +// } + + //按单不校验三期 + collectOrderBiz = vailNoBatchNo(udiRelevanceResponses, collectOrderBizs, udiEntity); + switch (workPlace.getCheckInsert()) { + case 1: //插入 + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); + } + break; + case 2: //不插入 + if (collectOrderBiz == null) + throw new JsonException(500, "非此单据追溯码!"); + int count = IntUtil.value(collectOrderBiz.getScanCount()) + 1; + if (count > IntUtil.value(collectOrderBiz.getCount())) { + throw new JsonException(500, "扫码数量超出!"); + } + collectOrderBiz.setScanCount(count); + + break; + case 3: //提醒是否插入 + + if (!IntUtil.value(addTagCodeReqeust.getInsert())) { + if (collectOrderBiz == null) + throw new JsonException(502, "非此单据追溯码!"); + int count1 = IntUtil.value(collectOrderBiz.getScanCount()) + 1; + if (count1 > IntUtil.value(collectOrderBiz.getCount())) { + throw new JsonException(502, "扫码数量超出!"); + } + collectOrderBiz.setScanCount(count1); + } else { + if (collectOrderBiz == null) { + collectOrderBiz = scanGenOrder(udiRelevanceResponses, collectOrderBizs, udiEntity); + collectOrderBiz.setOrderIdFk(collectOrder.getBillNo()); + } else { + collectOrderBiz.setScanCount(collectOrderBiz.getScanCount() + 1); + } + } + + break; + default: + break; + } + } + collectOrderBizService.updateById(collectOrderBiz); + + IoCollectOrderCodeMan exitCode = this.findByCode(collectOrderBiz.getOrderIdFk(), code); + if (StrUtil.isEmpty(udiEntity.getSerialNo()) && exitCode != null) { + exitCode.setScanCount(IntUtil.value(exitCode.getScanCount()) + 1); + exitCode.setBizIdFk(collectOrderBiz.getId()); + this.updateById(exitCode); + } else if (StrUtil.isNotEmpty(udiEntity.getSerialNo()) && exitCode != null) { + throw new JsonException(500, "重复扫码!"); + } else { + IoCollectOrderCodeMan collectOrderCodeMan = + IoCollectOrderCodeMan.builder() + .udiCode(code) + .orderIdFk(collectOrder.getBillNo()) + .bizIdFk(collectOrderBiz.getId()) + .relId(collectOrderBiz.getRelId()) + .nameCode(udiRelevanceResponse.getNameCode()) + .batchNo(udiEntity.getBatchNo()) + .productDate(udiEntity.getProduceDate()) + .expireDate(udiEntity.getExpireDate()) + .createTime(new Date()) + .createUser(userId) + .updateTime(new Date()) + .updateUser(userId) + .scanCount(1) + .build(); + this.save(collectOrderCodeMan); + } + collectOrder.setTagStatus(2); + collectOrderService.updateById(collectOrder); + return collectOrder; + } + + + + public IoCollectOrderBiz scanGenOrder(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) + ) { + collectOrderBiz.setCount(IntUtil.value(collectOrderBiz.getCount()) + 1); + collectOrderBiz.setScanCount(IntUtil.value(collectOrderBiz.getScanCount()) + 1); + return collectOrderBiz; + } + + } + } + UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0); + return IoCollectOrderBiz.builder() + .relId(udiRelevanceResponse.getId()) + .thrCode(udiRelevanceResponse.getMainId()) + .ybbm(udiRelevanceResponse.getYbbm()) + .payFeeCode(udiRelevanceResponse.getPayFeeCode()) + .cpmctymc(udiRelevanceResponse.getCpmctymc()) + .nameCode(udiRelevanceResponse.getNameCode()) + .ggxh(udiRelevanceResponse.getGgxh()) + .batchNo(udiEntity.getBatchNo()) + .productDate(udiEntity.getProduceDate()) + .expireDate(udiEntity.getExpireDate()) + .count(0) + .actCount(0) + .scanCount(1) + .scanActCount(1) + .measureUnit(udiRelevanceResponse.getMeasname()) + .createTime(new Date()) + .updateTime(new Date()) + .build(); + + } + + public IoCollectOrderBiz vailByBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId()) && + (StrUtil.isNotEmpty(collectOrderBiz.getBatchNo()) && collectOrderBiz.getBatchNo().equals(udiEntity.getBatchNo())) + ) { + return collectOrderBiz; + } + + } + } + return null; + } + + + public IoCollectOrderBiz vailNoBatchNo(List udiRelevanceResponses, List collectOrderBizs, UdiEntity udiEntity) { + List addList = new ArrayList<>(); + for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { + for (IoCollectOrderBiz collectOrderBiz : collectOrderBizs) { + if (udiRelevanceResponse.getId().equals(collectOrderBiz.getRelId())) { + addList.add(collectOrderBiz); + } + } + } + if (addList.size() > 0) { + for (IoCollectOrderBiz collectOrderBiz : addList) { + + if (StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) { + return collectOrderBiz; + } + if (IntUtil.value(collectOrderBiz.getCount()) > IntUtil.value(collectOrderBiz.getScanCount())) { + return collectOrderBiz; + } + } + return addList.get(0); + } + return null; + } + + } diff --git a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java index 947f01c04..b066b1dd4 100644 --- a/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java +++ b/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java @@ -342,14 +342,10 @@ public class IoCollectOrderService extends ServiceImpl() .eq(IoCollectOrderBiz::getId, bizIdFk)); if (bizServiceOne == null) throw new JsonException("扫码详情未查找到"); - Integer count = bizServiceOne.getCount(); - Integer newCount = count - delCount; - if (newCount > 0) { - bizServiceOne.setCount(newCount); - collectOrderBizService.updateById(bizServiceOne); - } else { - collectOrderBizService.removeById(bizServiceOne.getId()); - } + Integer oneScanCount = bizServiceOne.getScanCount(); + Integer newCount = oneScanCount - delCount; + bizServiceOne.setScanCount(newCount); + collectOrderBizService.updateById(bizServiceOne); } }