|  |  | @ -32,6 +32,7 @@ import com.glxp.api.util.udi.FilterUdiUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.apache.bcel.classfile.Code; |  |  |  | import org.apache.bcel.classfile.Code; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.beans.BeanUtils; |  |  |  | import org.springframework.beans.BeanUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | import org.springframework.stereotype.Service; |  |  |  | import org.springframework.stereotype.Service; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import org.springframework.util.StringUtils; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | import javax.annotation.Resource; |  |  |  | import javax.annotation.Resource; | 
			
		
	
		
		
			
				
					
					|  |  |  | import java.util.ArrayList; |  |  |  | import java.util.ArrayList; | 
			
		
	
	
		
		
			
				
					|  |  | @ -81,6 +82,7 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     public BaseResponse scanCheckCode(IoCollectCodeRequest filterCodeRequest) { |  |  |  |     public BaseResponse scanCheckCode(IoCollectCodeRequest filterCodeRequest) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // 先根据单据编号获取订单备份信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo()); |  |  |  |         IoCollectOrderBackup orderBackup = ioCollectOrderBackupService.getByBillNo(filterCodeRequest.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (orderBackup == null) { |  |  |  |         if (orderBackup == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.error(500, "订单不存在"); |  |  |  |             return ResultVOUtils.error(500, "订单不存在"); | 
			
		
	
	
		
		
			
				
					|  |  | @ -89,117 +91,134 @@ public class IoCollectCodeBackService extends ServiceImpl<IoCollectCodeBackMappe | 
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.error(500, "该单据已校验完成"); |  |  |  |             return ResultVOUtils.error(500, "该单据已校验完成"); | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //判断
 |  |  |  |         // 判断传入的校验码情况
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); |  |  |  |         if (StringUtils.hasText(filterCodeRequest.getCode())) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         collectOrderBizRequest.setOrderIdFk(filterCodeRequest.getBillNo()); |  |  |  |             return handleSingleCode(filterCodeRequest); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest); |  |  |  |         } else { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return handleCodeList(filterCodeRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (StrUtil.isNotEmpty(filterCodeRequest.getCode())) { |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             IoCollectOrderCheckCode one = ioCollectOrderCheckCodeService.getOne(new LambdaQueryWrapper<IoCollectOrderCheckCode>().eq(IoCollectOrderCheckCode::getCode, filterCodeRequest.getCode())); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             if (one != null) { |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 return ResultVOUtils.error(500, "该追溯码已被其他单据校验"); |  |  |  |     private BaseResponse handleSingleCode(IoCollectCodeRequest filterCodeRequest) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |         // 检查校验码是否已被其他单据校验
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { |  |  |  |         IoCollectOrderCheckCode existingCode = getExistingCheckCode(filterCodeRequest.getCode()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode()); |  |  |  |         if (existingCode!= null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); |  |  |  |             return ResultVOUtils.error(500, "该追溯码已被其他单据校验"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 if (checkCount == collectOrderBizResponse.getScanActCount()) { |  |  |  |         } | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     BaseResponse response = new BaseResponse(); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     response.setData(filterCodeRequest.getCode()); |  |  |  |         // 校验是否本单产品
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     response.setCode(500); |  |  |  |         UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     response.setMessage("追溯码校验校验超出"); |  |  |  |         UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     return response; |  |  |  |         IoCollectOrderBizBackup collectOrderBizBackup = checkProduct(filterCodeRequest.getBillNo(), udiEntity); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |         if (collectOrderBizBackup == null) { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             BaseResponse response = new BaseResponse(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setData(filterCodeRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setCode(500); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setMessage("非此单产品"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return response; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // 校验扫码次数是否超出
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (checkCount >= collectOrderBizBackup.getScanCount()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return ResultVOUtils.error(500, "追溯码数量超出"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         IoCollectCodeBackup ioCollectCodeBackup = getIoCollectCodeBackup(filterCodeRequest.getBillNo(), filterCodeRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (ioCollectCodeBackup == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             BaseResponse response = new BaseResponse(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setData(filterCodeRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setCode(503); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             response.setMessage("追溯码不存在"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return response; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         udiEntity.setCode(filterCodeRequest.getCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         AddEnterCodeResponse addEnterCodeResponse = setAddEnterCodeResponse(udiEntity, udiRelevanceResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         setOrderCheckStatus(ioCollectCodeBackup); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return ResultVOUtils.success(addEnterCodeResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private BaseResponse handleCodeList(IoCollectCodeRequest filterCodeRequest) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (String code : filterCodeRequest.getCodeList()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             vailCodeResultResponse.setCode(code); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             // 检查校验码是否已被其他单据校验
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             IoCollectOrderCheckCode existingCode = getExistingCheckCode(code); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (existingCode!= null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponse.setStatus(2); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponse.setErrMsg("该追溯码已被单据校验"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponses.add(vailCodeResultResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 continue; | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |             //校验是否本单产品
 |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); |  |  |  |             UdiEntity udiEntity = FilterUdiUtils.getUdi(code); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             // 校验是否本单产品
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             IoCollectOrderBizBackup collectOrderBizBackup = checkProduct(filterCodeRequest.getBillNo(), udiEntity); |  |  |  |             IoCollectOrderBizBackup collectOrderBizBackup = checkProduct(filterCodeRequest.getBillNo(), udiEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (collectOrderBizBackup == null) { |  |  |  |             if (collectOrderBizBackup == null) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 BaseResponse response = new BaseResponse(); |  |  |  |                 vailCodeResultResponse.setStatus(4); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setData(filterCodeRequest.getCode()); |  |  |  |                 vailCodeResultResponse.setErrMsg("非此单产品"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setCode(500); |  |  |  |                 vailCodeResultResponses.add(vailCodeResultResponse); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setMessage("非此单产品"); |  |  |  |                 continue; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 return response; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             IoCollectCodeBackup ioCollectCodeBackup = ioCollectCodeBackMapper.selectOne(new LambdaQueryWrapper<IoCollectCodeBackup>() |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     .eq(IoCollectCodeBackup::getCode, filterCodeRequest.getCode())); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (ioCollectCodeBackup == null) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 BaseResponse response = new BaseResponse(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setData(filterCodeRequest.getCode()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setCode(503); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 response.setMessage("追溯码不存在"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return response; |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             // 校验扫码次数相关逻辑
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             boolean isScanCountExceeded = checkScanCountExceeded(filterCodeRequest, udiRelevanceResponse, code); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (isScanCountExceeded) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponse.setStatus(3); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponse.setErrMsg("追溯码校验校验超出"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 vailCodeResultResponses.add(vailCodeResultResponse); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 continue; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); |  |  |  |             IoCollectCodeBackup ioCollectCodeBackup = getIoCollectCodeBackup(filterCodeRequest.getBillNo(), code); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             udiEntity.setCode(filterCodeRequest.getCode()); |  |  |  |             if (ioCollectCodeBackup!= null) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             AddEnterCodeResponse addEnterCodeResponse = setAddEnterCodeResponse(udiEntity, udiRelevanceResponse); |  |  |  |                 vailCodeResultResponse.setStatus(1); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             setOrderCheckStatus(ioCollectCodeBackup); |  |  |  |                 vailCodeResultResponse.setSucMsg("校验成功"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.success(addEnterCodeResponse); |  |  |  |                 vailCodeResultResponses.add(vailCodeResultResponse); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         } else { |  |  |  |                 // 校验成功 加入校验表
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>(); |  |  |  |                 setOrderCheckStatus(ioCollectCodeBackup); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |             for (String code : filterCodeRequest.getCodeList()) { |  |  |  |             } else { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); |  |  |  |                 vailCodeResultResponse.setStatus(5); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 IoCollectOrderCheckCode one = ioCollectOrderCheckCodeService.getOne(new LambdaQueryWrapper<IoCollectOrderCheckCode>().eq(IoCollectOrderCheckCode::getCode, code)); |  |  |  |                 vailCodeResultResponse.setErrMsg("追溯码不存在"); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 if (one != null) { |  |  |  |                 vailCodeResultResponses.add(vailCodeResultResponse); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setStatus(2); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setCode(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setErrMsg("该追溯码已被单据校验"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponses.add(vailCodeResultResponse); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     continue; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 boolean shouldContinue = false; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //扫入的校验码全是没有没有的 导致 checkCount 一直为0
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(collectOrderBizResponse.getNameCode()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (checkCount == collectOrderBizResponse.getScanCount()) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         vailCodeResultResponse.setStatus(3); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         vailCodeResultResponse.setCode(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         vailCodeResultResponse.setErrMsg("追溯码校验校验超出"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         vailCodeResultResponses.add(vailCodeResultResponse); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         shouldContinue = true; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         break; // 跳出内部循环
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (shouldContinue) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     continue; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //校验是否本单产品
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 UdiEntity udiEntity = FilterUdiUtils.getUdi(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 IoCollectOrderBizBackup collectOrderBizBackup = checkProduct(filterCodeRequest.getBillNo(), udiEntity); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (collectOrderBizBackup == null) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setStatus(4); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setCode(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setErrMsg("非此单产品"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponses.add(vailCodeResultResponse); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     continue; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 IoCollectCodeBackup ioCollectCodeBackup = ioCollectCodeBackMapper.selectOne(new LambdaQueryWrapper<IoCollectCodeBackup>() |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                         .eq(IoCollectCodeBackup::getCode, code)); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (ioCollectCodeBackup != null) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setStatus(1); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setCode(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setSucMsg("校验成功"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponses.add(vailCodeResultResponse); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     //校验成功 加入校验表
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     setOrderCheckStatus(ioCollectCodeBackup); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } else { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setStatus(5); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setCode(code); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponse.setErrMsg("追溯码不存在"); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     vailCodeResultResponses.add(vailCodeResultResponse); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |             return ResultVOUtils.success(vailCodeResultResponses); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         } |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return ResultVOUtils.success(vailCodeResultResponses); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private IoCollectOrderCheckCode getExistingCheckCode(String code) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return ioCollectOrderCheckCodeService.getOne(new LambdaQueryWrapper<IoCollectOrderCheckCode>().eq(IoCollectOrderCheckCode::getCode, code)); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private IoCollectCodeBackup getIoCollectCodeBackup(String billNo, String code) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return ioCollectCodeBackMapper.selectOne(new LambdaQueryWrapper<IoCollectCodeBackup>() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .eq(IoCollectCodeBackup::getBillNo, billNo) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .eq(IoCollectCodeBackup::getCode, code)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     private boolean checkScanCountExceeded(IoCollectCodeRequest filterCodeRequest, UdiRelevanceResponse udiRelevanceResponse, String code) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         collectOrderBizRequest.setOrderIdFk(filterCodeRequest.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         collectOrderBizRequest.setRelId(udiRelevanceResponse.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (collectOrderBizResponses.isEmpty()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         CollectOrderBizResponse collectOrderBizResponse = collectOrderBizResponses.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (udiRelevanceResponse.getId().equals(collectOrderBizResponse.getRelId())){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if ( filterCodeRequest.getCodeList().size() > collectOrderBizResponse.getScanCount()){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                throw new JsonException(500,"追溯码数量超出"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Integer checkCount = ioCollectOrderCheckCodeService.getCountByRelIdAndBillNo(udiRelevanceResponse.getId(), filterCodeRequest.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return checkCount == collectOrderBizResponse.getScanCount(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |     public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) { |  |  |  |     public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse(); |  |  |  |         AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         BeanUtils.copyProperties(udiEntity, addEnterCodeResponse); |  |  |  |         BeanUtils.copyProperties(udiEntity, addEnterCodeResponse); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |