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 c74f3ad97..263d1957a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -2081,57 +2081,7 @@ public class IoCodeTempController extends BaseController { if (codeTempEntity == null) { return ResultVOUtils.error(506, "UDI码异常,未录入!"); } - IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); - UdiRelevanceResponse udiRelevanceResponses = udiRelevanceService.selectByNameCode(codeTempEntity.getNameCode()); - - if (codeTempEntity.getMyCount() > 1) { - codeTempEntity.setCount(codeTempEntity.getMyCount() - 1); - if (bussinessTypeEntity.isUse()) { - codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); - } else { - codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); - } - codeTempService.updateById(codeTempEntity); - } else { - codeTempService.deleteById(id); - } - - //更新扫码详情 - IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getPrice()); - if (orderDetailCodeEntity != null) { - //扫码数量-1 - int orderCount = IntUtil.value(orderDetailCodeEntity.getCount()); - int orderReCount = IntUtil.value(orderDetailCodeEntity.getReCount()); - if (orderCount > 1) { - orderDetailCodeEntity.setCount(orderCount - 1); - - - if (bussinessTypeEntity.isUse()) { - orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); -// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses); - } else { - orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); -// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses); - } - - ioOrderDetailCodeService.update(orderDetailCodeEntity); - } else { - ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); - } - } - - - boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); - boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); - if (!r1 && !r2) { - if (StrUtil.isNotEmpty(orderDetailCodeEntity.getOrderIdFk())) - orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk()); - } - - orderEntity.setUpdateUser(getUserId() + ""); - orderEntity.setUpdateTime(new Date()); - orderService.update(orderEntity); + codeTempService.removeCodeById(codeTempEntity); return ResultVOUtils.success("删除成功!"); } @@ -2846,60 +2796,11 @@ public class IoCodeTempController extends BaseController { if (CollUtil.isEmpty(codeList)) return ResultVOUtils.error(500, "追溯码不能为空"); //器械的码 可能会是一样的 - List ioCodeTempEntities = codeTempService.selectByCodes(codeList,orderId); + List ioCodeTempEntities = codeTempService.selectByCodes(codeList, orderId); if (CollUtil.isEmpty(ioCodeTempEntities)) return ResultVOUtils.error(500, "当前追溯码不存在"); for (IoCodeTempEntity codeTempEntity : ioCodeTempEntities) { - IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); - UdiRelevanceResponse udiRelevanceResponses = udiRelevanceService.selectByNameCode(codeTempEntity.getNameCode()); - - if (codeTempEntity.getMyCount() > 1) { - codeTempEntity.setCount(codeTempEntity.getMyCount() - 1); - if (bussinessTypeEntity.isUse()) { - codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); - } else { - codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); - } - codeTempService.updateById(codeTempEntity); - } else { - codeTempService.deleteById(codeTempEntity.getId()); - } - //更新扫码详情 - IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getPrice()); - if (orderDetailCodeEntity != null) { - //扫码数量-1 - int orderCount = IntUtil.value(orderDetailCodeEntity.getCount()); - int orderReCount = IntUtil.value(orderDetailCodeEntity.getReCount()); - if (orderCount > 1) { - orderDetailCodeEntity.setCount(orderCount - 1); - - - if (bussinessTypeEntity.isUse()) { - orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); -// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses); - } else { - orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); -// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses); - } - - ioOrderDetailCodeService.update(orderDetailCodeEntity); - } else { - ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); - } - } - - - boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); - boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); - if (!r1 && !r2) { - if (StrUtil.isNotEmpty(orderDetailCodeEntity.getOrderIdFk())) - orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk()); - } - - orderEntity.setUpdateUser(getUserId() + ""); - orderEntity.setUpdateTime(new Date()); - orderService.update(orderEntity); + codeTempService.removeCodeById(codeTempEntity); } return ResultVOUtils.success("删除成功!"); } diff --git a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java index b518bb957..4fc897d29 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCodeTempService.java @@ -50,7 +50,10 @@ public interface IoCodeTempService { Boolean checkTempCode(IoCodeTempEntity ioCodeTempEntity); - IoCodeTempEntity selectByCode(String code,String batchNo,String action); + IoCodeTempEntity selectByCode(String code, String batchNo, String action); - List selectByCodes(List codeList,String orderId); + List selectByCodes(List codeList, String orderId); + + + Boolean removeCodeById(IoCodeTempEntity codeTempEntity); } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java index 932701808..3f4e2593b 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeTempServiceImpl.java @@ -5,20 +5,32 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.inout.IoCodeTempDao; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoCodeTempService; +import com.glxp.api.service.inout.IoOrderDetailBizService; +import com.glxp.api.service.inout.IoOrderDetailCodeService; +import com.glxp.api.service.inout.IoOrderService; import com.glxp.api.util.BeanCopyUtils; +import com.glxp.api.util.IntUtil; import com.glxp.api.util.page.PageQuery; import com.glxp.api.util.page.TableDataInfo; +import com.glxp.api.util.udi.UdiCalCountUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.List; @Service @@ -154,20 +166,90 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { } @Override - public IoCodeTempEntity selectByCode(String code,String batchNo,String action) { + public IoCodeTempEntity selectByCode(String code, String batchNo, String action) { QueryWrapper ew = new QueryWrapper<>(); - ew.eq("code",code); + ew.eq("code", code); ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo); ew.eq(StrUtil.isNotEmpty(action), "action", action); return ioCodeTempDao.selectOne(ew); } @Override - public List selectByCodes(List codeList,String orderId) { + public List selectByCodes(List codeList, String orderId) { QueryWrapper ew = new QueryWrapper<>(); - ew.eq("orderId",orderId); + ew.eq("orderId", orderId); ew.in("code", codeList); return ioCodeTempDao.selectList(ew); } + + @Resource + private IoOrderService orderService; + @Resource + private IBasicBussinessTypeService basicBussinessTypeService; + @Resource + UdiRelevanceService udiRelevanceService; + @Resource + UdiCalCountUtil udiCalCountUtil; + @Resource + IoOrderDetailCodeService ioOrderDetailCodeService; + @Resource + IoOrderDetailBizService orderDetailBizService; + + @Override + public Boolean removeCodeById(IoCodeTempEntity codeTempEntity) { + + IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + UdiRelevanceResponse udiRelevanceResponses = udiRelevanceService.selectByNameCode(codeTempEntity.getNameCode()); + + if (codeTempEntity.getMyCount() > 1) { + codeTempEntity.setCount(codeTempEntity.getMyCount() - 1); + if (bussinessTypeEntity.isUse()) { + codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); + } else { + codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); + } + updateById(codeTempEntity); + } else { + deleteById(codeTempEntity.getId()); + } + + //更新扫码详情 + IoOrderDetailCodeEntity orderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(orderEntity.getBillNo(), codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getPrice()); + if (orderDetailCodeEntity != null) { + //扫码数量-1 + int orderCount = IntUtil.value(orderDetailCodeEntity.getCount()); + int orderReCount = IntUtil.value(orderDetailCodeEntity.getReCount()); + if (orderCount > 1) { + orderDetailCodeEntity.setCount(orderCount - 1); + + + if (bussinessTypeEntity.isUse()) { + orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getUseActCount(udiRelevanceResponses)); +// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getUseActCount(udiRelevanceResponses); + } else { + orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getCirActCount(udiRelevanceResponses)); +// codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getCirActCount(udiRelevanceResponses); + } + + ioOrderDetailCodeService.update(orderDetailCodeEntity); + } else { + ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId()); + } + } + + + boolean r1 = orderDetailBizService.isExit(orderEntity.getBillNo()); + boolean r2 = ioOrderDetailCodeService.isExit(orderEntity.getBillNo()); + if (!r1 && !r2) { + if (StrUtil.isNotEmpty(orderDetailCodeEntity.getOrderIdFk())) + orderService.deleteByBillNo(orderDetailCodeEntity.getOrderIdFk()); + } + + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + return true; + } + }