|  |  | @ -5,20 +5,32 @@ import cn.hutool.core.util.StrUtil; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.github.pagehelper.PageHelper; |  |  |  | import com.github.pagehelper.PageHelper; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.common.util.ResultVOUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.dao.inout.IoCodeTempDao; |  |  |  | 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.IoCodeTempEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; |  |  |  | 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.req.inout.FilterCodeRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.res.basic.UdiRelevanceResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.res.inout.IoCodeResponse; |  |  |  | import com.glxp.api.res.inout.IoCodeResponse; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.res.inout.IoCodeTempResponse; |  |  |  | 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.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.BeanCopyUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.util.IntUtil; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.util.page.PageQuery; |  |  |  | import com.glxp.api.util.page.PageQuery; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.util.page.TableDataInfo; |  |  |  | import com.glxp.api.util.page.TableDataInfo; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.util.udi.UdiCalCountUtil; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.stereotype.Service; |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.transaction.annotation.Transactional; |  |  |  | import org.springframework.transaction.annotation.Transactional; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import javax.annotation.Resource; |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import java.util.Date; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.List; |  |  |  | import java.util.List; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | @Service |  |  |  | @Service | 
			
		
	
	
		
		
			
				
					|  |  | @ -154,20 +166,90 @@ public class IoCodeTempServiceImpl implements IoCodeTempService { | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |     public IoCodeTempEntity selectByCode(String code,String batchNo,String action) { |  |  |  |     public IoCodeTempEntity selectByCode(String code, String batchNo, String action) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>(); |  |  |  |         QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ew.eq("code",code); |  |  |  |         ew.eq("code", code); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo); |  |  |  |         ew.eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ew.eq(StrUtil.isNotEmpty(action), "action", action); |  |  |  |         ew.eq(StrUtil.isNotEmpty(action), "action", action); | 
			
		
	
		
		
			
				
					
					|  |  |  |         return ioCodeTempDao.selectOne(ew); |  |  |  |         return ioCodeTempDao.selectOne(ew); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Override |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |     public List<IoCodeTempEntity> selectByCodes(List<String> codeList,String orderId) { |  |  |  |     public List<IoCodeTempEntity> selectByCodes(List<String> codeList, String orderId) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>(); |  |  |  |         QueryWrapper<IoCodeTempEntity> ew = new QueryWrapper<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ew.eq("orderId",orderId); |  |  |  |         ew.eq("orderId", orderId); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         ew.in("code", codeList); |  |  |  |         ew.in("code", codeList); | 
			
		
	
		
		
			
				
					
					|  |  |  |         return ioCodeTempDao.selectList(ew); |  |  |  |         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; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
	
		
		
			
				
					|  |  | 
 |