diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index b76ed4d9d..64e29349e 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -763,16 +763,25 @@ public class IoOrderController extends BaseController { } - //单据编辑,条码减一 @AuthRuleAnnotation("") @PostMapping("udiwms/inout/code/finish/delete") @Log(title = "单据管理", businessType = BusinessType.DELETE) public BaseResponse deleteCodeById(@RequestBody IoCodeEntity codeEntity) { - orderService.deleteInvCode(codeEntity); + orderService.deleteInvCode(codeEntity, false); + return ResultVOUtils.success("删除成功!"); + } + + //单据编辑,条码减一 + @AuthRuleAnnotation("") + @PostMapping("udiwms/inout/code/finish/deleteAll") + @Log(title = "单据管理", businessType = BusinessType.DELETE) + public BaseResponse deleteCodeAllById(@RequestBody IoCodeEntity codeEntity) { + orderService.deleteInvCode(codeEntity, true); return ResultVOUtils.success("删除成功!"); } + //已验收单据撤回 @RepeatSubmit() @AuthRuleAnnotation("") diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderService.java b/src/main/java/com/glxp/api/service/inout/IoOrderService.java index c74ba4474..791c9a581 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderService.java @@ -48,7 +48,7 @@ public interface IoOrderService { int deleteInvByBillNo(List billNo); - int deleteInvCode(IoCodeEntity codeEntity); + int deleteInvCode(IoCodeEntity codeEntity, Boolean deleteAll); boolean rollUnCheckOrder(String billNo); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index 224b40ba8..07c40bfaa 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -314,7 +314,7 @@ public class IoOrderServiceImpl implements IoOrderService { //单据编辑条码减一 @Override - public int deleteInvCode(IoCodeEntity codeEntity) { + public int deleteInvCode(IoCodeEntity codeEntity, Boolean deleteAll) { //查询条码 IoOrderEntity orderEntity = findByBillNo(codeEntity.getOrderId()); @@ -322,31 +322,44 @@ public class IoOrderServiceImpl implements IoOrderService { || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_REW) { //更新正式表 IoCodeEntity ioCodeEntity = codeService.getById(codeEntity.getId()); + int remainCount = 0; + int remainScanCount = 0; if (ioCodeEntity.getMyCount() > 1) { //更新码表 - ioCodeEntity.setCount(ioCodeEntity.getMyCount() - 1); - int reCount = udiCalCountUtil.getActCount(ioCodeEntity.getNameCode()); - ioCodeEntity.setReCount(ioCodeEntity.getMyReCount() - reCount); - codeService.updateById(ioCodeEntity); //更新码详情 + int reCount = 0; + if (deleteAll) { + reCount = udiCalCountUtil.getActCount(ioCodeEntity.getNameCode()) * ioCodeEntity.getMyCount(); + remainCount = ioCodeEntity.getMyCount(); + remainScanCount = reCount; + codeService.deleteById(ioCodeEntity.getId()); + } else { + ioCodeEntity.setCount(ioCodeEntity.getMyCount() - 1); + reCount = udiCalCountUtil.getActCount(ioCodeEntity.getNameCode()); + remainCount = 1; + remainScanCount = reCount; + ioCodeEntity.setReCount(ioCodeEntity.getMyReCount() - reCount); + codeService.updateById(ioCodeEntity); //更新码详情 + } + //更新业务详情 IoOrderDetailBizEntity orderDetailBizEntity = orderDetailBizService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo(), null, null); if (orderDetailBizEntity != null) { - orderDetailBizEntity.setCount(IntUtil.value(orderDetailBizEntity.getCount()) - reCount); + orderDetailBizEntity.setCount(IntUtil.value(orderDetailBizEntity.getCount()) - remainScanCount); orderDetailBizService.update(orderDetailBizEntity); } //更新扫码单据详情 IoOrderDetailCodeEntity ioOrderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo(), ioCodeEntity.getPrice()); if (ioOrderDetailCodeEntity != null) { - ioOrderDetailCodeEntity.setReCount(IntUtil.value(ioOrderDetailCodeEntity.getReCount()) - reCount); - ioOrderDetailCodeEntity.setCount(IntUtil.value(ioOrderDetailCodeEntity.getCount()) - reCount); + ioOrderDetailCodeEntity.setReCount(IntUtil.value(ioOrderDetailCodeEntity.getReCount()) - remainScanCount); + ioOrderDetailCodeEntity.setCount(IntUtil.value(ioOrderDetailCodeEntity.getCount()) - remainScanCount); ioOrderDetailCodeService.update(ioOrderDetailCodeEntity); } //更新结果详情 IoOrderDetailResultEntity ioOrderDetailResultEntity = ioOrderDetailResultService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo()); if (ioOrderDetailResultEntity != null) { - ioOrderDetailResultEntity.setReCount(ioOrderDetailResultEntity.getReCount() - reCount); - ioOrderDetailResultEntity.setCount(ioOrderDetailResultEntity.getCount() - reCount); + ioOrderDetailResultEntity.setReCount(ioOrderDetailResultEntity.getReCount() - remainScanCount); + ioOrderDetailResultEntity.setCount(ioOrderDetailResultEntity.getCount() - remainScanCount); ioOrderDetailResultService.update(ioOrderDetailResultEntity); } @@ -357,14 +370,14 @@ public class IoOrderServiceImpl implements IoOrderService { //更新扫码单据详情 IoOrderDetailCodeEntity ioOrderDetailCodeEntity = ioOrderDetailCodeService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo(), ioCodeEntity.getPrice()); if (ioOrderDetailCodeEntity != null) { - ioOrderDetailCodeEntity.setReCount(ioOrderDetailCodeEntity.getReCount() - reCount); + ioOrderDetailCodeEntity.setReCount(ioOrderDetailCodeEntity.getReCount() - remainScanCount); ioOrderDetailCodeService.update(ioOrderDetailCodeEntity); } //更新结果详情 IoOrderDetailResultEntity ioOrderDetailResultEntity = ioOrderDetailResultService.findByUnique(ioCodeEntity.getOrderId(), ioCodeEntity.getRelId(), ioCodeEntity.getBatchNo()); - ioOrderDetailResultEntity.setReCount(ioOrderDetailResultEntity.getReCount() - reCount); + ioOrderDetailResultEntity.setReCount(ioOrderDetailResultEntity.getReCount() - remainScanCount); ioOrderDetailResultService.update(ioOrderDetailResultEntity); } //已审核单据需扣减库存 @@ -376,14 +389,13 @@ public class IoOrderServiceImpl implements IoOrderService { InvPreInProductDetailEntity invProductDetailEntity = invPreinProductDetailService.selectByCode(codeEntity.getOrderId(), codeEntity.getCode(), codeEntity.getPrice()); if (invProductDetailEntity != null) { - int count = invProductDetailEntity.getCount() - 1; - int reCount = udiCalCountUtil.getActCount(invProductDetailEntity.getNameCode()); + int count = invProductDetailEntity.getCount() - remainCount; if (count == 0) { invPreinProductDetailService.deleteById(invProductDetailEntity.getId() + ""); } else { //更新详情表 invProductDetailEntity.setCount(count); - invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount); + invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - remainScanCount); invPreinProductDetailService.update(invProductDetailEntity); } //更新产品表 @@ -391,10 +403,10 @@ public class IoOrderServiceImpl implements IoOrderService { invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice()); if (invProductEntity != null) { if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { - int inCount = invProductEntity.getInCount() - reCount; + int inCount = invProductEntity.getInCount() - remainScanCount; invProductEntity.setInCount(inCount); } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { - int outCount = invProductEntity.getOutCount() - reCount; + int outCount = invProductEntity.getOutCount() - remainScanCount; invProductEntity.setOutCount(outCount); } invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount()); @@ -406,14 +418,13 @@ public class IoOrderServiceImpl implements IoOrderService { } else if (basicBussinessTypeEntity.getActionType() == ConstantStatus.ACTION_TYPE_ADVANCE) { //寄售库存 InvPreProductDetailEntity invProductDetailEntity = invPreProductDetailService.selectByCode(codeEntity.getOrderId(), codeEntity.getCode(), codeEntity.getPrice()); if (invProductDetailEntity != null) { - int count = invProductDetailEntity.getCount() - 1; - int reCount = udiCalCountUtil.getActCount(invProductDetailEntity.getNameCode()); + int count = invProductDetailEntity.getCount() - remainCount; if (count == 0) { invPreProductService.deleteById(invProductDetailEntity.getId()); } else { //更新详情表 invProductDetailEntity.setCount(count); - invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount); + invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - remainScanCount); invPreProductDetailService.update(invProductDetailEntity); } //更新产品表 @@ -421,10 +432,10 @@ public class IoOrderServiceImpl implements IoOrderService { invProductDetailEntity.getSupId(), invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice()); if (invProductEntity != null) { if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { - int inCount = invProductEntity.getInCount() - reCount; + int inCount = invProductEntity.getInCount() - remainScanCount; invProductEntity.setInCount(inCount); } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { - int outCount = invProductEntity.getOutCount() - reCount; + int outCount = invProductEntity.getOutCount() - remainScanCount; invProductEntity.setOutCount(outCount); } invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount()); @@ -436,15 +447,13 @@ public class IoOrderServiceImpl implements IoOrderService { InvProductDetailEntity invProductDetailEntity = invProductDetailService.selectByCode(codeEntity.getOrderId(), codeEntity.getCode(), codeEntity.getPrice()); if (invProductDetailEntity != null) { - int count = invProductDetailEntity.getCount() - 1; - int reCount = udiCalCountUtil.getActCount(invProductDetailEntity.getNameCode()); + int count = invProductDetailEntity.getCount() - remainCount; if (count == 0) { - invProductDetailService.deleteById(invProductDetailEntity.getId()); } else { //更新详情表 invProductDetailEntity.setCount(count); - invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount); + invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - remainScanCount); invProductDetailService.update(invProductDetailEntity); } //更新产品表 @@ -452,10 +461,10 @@ public class IoOrderServiceImpl implements IoOrderService { invProductDetailEntity.getDeptCode(), invProductDetailEntity.getInvCode(), invProductDetailEntity.getPrice()); if (invProductEntity != null) { if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) { - int inCount = invProductEntity.getInCount() - reCount; + int inCount = invProductEntity.getInCount() - remainScanCount; invProductEntity.setInCount(inCount); } else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) { - int outCount = invProductEntity.getOutCount() - reCount; + int outCount = invProductEntity.getOutCount() - remainScanCount; invProductEntity.setOutCount(outCount); } invProductEntity.setReCount(invProductEntity.getInCount() - invProductEntity.getOutCount()); @@ -470,7 +479,7 @@ public class IoOrderServiceImpl implements IoOrderService { } else { //更新临时表 IoCodeTempEntity ioCodeEntity = codeTempService.selectById(codeEntity.getId()); - if (ioCodeEntity.getCount() > 1) { + if (ioCodeEntity.getCount() > 1 && ! deleteAll) { //删除一个条码 ioCodeEntity.setCount(ioCodeEntity.getCount() - 1); int reCount = udiCalCountUtil.getActCount(ioCodeEntity.getNameCode()); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a2ecc2dc9..10d81b490 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt2?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: