|  |  |  | @ -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) { | 
			
		
	
		
			
				
					|  |  |  |  |                 //更新码表
 | 
			
		
	
		
			
				
					|  |  |  |  |                 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); | 
			
		
	
		
			
				
					|  |  |  |  |                 int reCount = udiCalCountUtil.getActCount(ioCodeEntity.getNameCode()); | 
			
		
	
		
			
				
					|  |  |  |  |                     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()); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |