|  |  | @ -23,6 +23,7 @@ import com.glxp.api.entity.inout.IoOrderDetailBizEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.entity.inout.IoOrderEntity; |  |  |  | import com.glxp.api.entity.inout.IoOrderEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.entity.system.SystemParamConfigEntity; |  |  |  | import com.glxp.api.entity.system.SystemParamConfigEntity; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.entity.thrsys.*; |  |  |  | import com.glxp.api.entity.thrsys.*; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | import com.glxp.api.exception.JsonException; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.http.ErpInvClient; |  |  |  | import com.glxp.api.http.ErpInvClient; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.req.inv.FilterInvProductRequest; |  |  |  | import com.glxp.api.req.inv.FilterInvProductRequest; | 
			
		
	
		
		
			
				
					
					|  |  |  | import com.glxp.api.req.thrsys.FilterDownloadInvOrderRequest; |  |  |  | import com.glxp.api.req.thrsys.FilterDownloadInvOrderRequest; | 
			
		
	
	
		
		
			
				
					|  |  | @ -168,6 +169,15 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { |  |  |  |                 if (CollectionUtil.isNotEmpty(thrInvOrderDetails)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     handleExternalConvertThrInvOrder(billNo, filterInvProductRequest, thrInvOrder, list.get(0), Constant.THR_INV_PH_ORDER_TYPE); |  |  |  |                     handleExternalConvertThrInvOrder(billNo, filterInvProductRequest, thrInvOrder, list.get(0), Constant.THR_INV_PH_ORDER_TYPE); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     //是否自动生成出入库单据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (IntUtil.value(systemParamConfigService.selectValueByParamKey("fee_out_auto_gen")) > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         GenerateOrderRequest generateOrderRequest = new GenerateOrderRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generateOrderRequest.setBillNo(thrInvOrder.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generateOrderRequest.setAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generateOrderRequest.setFromCorp(thrInvOrder.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generateOrder(generateOrderRequest); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     //保存数据
 |  |  |  |                     //保存数据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     thrInvOrderMapper.insert(thrInvOrder); |  |  |  |                     thrInvOrderMapper.insert(thrInvOrder); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     thrInvOrderDetailMapper.insertBatch(thrInvOrderDetails); |  |  |  |                     thrInvOrderDetailMapper.insertBatch(thrInvOrderDetails); | 
			
		
	
	
		
		
			
				
					|  |  | @ -391,7 +401,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; |  |  |  |         if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //校验单据的relId有null不生成单据
 |  |  |  |         //校验单据的relId有null不生成单据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (!inspectionDocuments(thrInvOrderDetails)) return false; |  |  |  | //        if (!inspectionDocuments(thrInvOrderDetails)) return false;
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(generateOrderRequest.getAction()); |  |  |  |         BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(generateOrderRequest.getAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -421,7 +431,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 |  |  |  |             ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 |  |  |  |             ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 |  |  |  |             ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCorpOrderId(billNo);//单据号
 |  |  |  |             ioOrderEntity.setCorpOrderId(UUID.randomUUID()+"");//单据号
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ioOrderEntity.setThrOrderIdFk(billNo);//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setUpdateTime(new Date()); |  |  |  |             ioOrderEntity.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCustomerId("110"); |  |  |  |             ioOrderEntity.setCustomerId("110"); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCreateTime(new Date()); |  |  |  |             ioOrderEntity.setCreateTime(new Date()); | 
			
		
	
	
		
		
			
				
					|  |  | @ -435,6 +446,15 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return false; |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //更新三方明细列表为已处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> value = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> updateThrInvOrderDetails = new ArrayList<>(value.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             value.forEach( x -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 x.setHandleStatus(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 updateThrInvOrderDetails.add(x); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             thrInvOrderDetailMapper.updateBatchById(updateThrInvOrderDetails); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderService.insertOrder(ioOrderEntity); |  |  |  |             ioOrderService.insertOrder(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |             thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
 |  |  |  |             thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             thrInvOrder.setUpdateTime(new Date()); |  |  |  |             thrInvOrder.setUpdateTime(new Date()); | 
			
		
	
	
		
		
			
				
					|  |  | @ -474,7 +494,7 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; |  |  |  |         if (CollectionUtil.isEmpty(thrInvOrderDetails)) return false; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         //校验单据的relId有null不生成单据
 |  |  |  |         //校验单据的relId有null不生成单据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (!inspectionDocuments(thrInvOrderDetails)) return false; |  |  |  | //        if (!inspectionDocuments(thrInvOrderDetails)) return false;
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(generateOrderRequest.getAction()); |  |  |  |         BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(generateOrderRequest.getAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |         Map<String, List<ThrInvOrderDetail>> grouped = new HashMap<>(); |  |  |  |         Map<String, List<ThrInvOrderDetail>> grouped = new HashMap<>(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -500,7 +520,8 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 |  |  |  |             ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 |  |  |  |             ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 |  |  |  |             ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCorpOrderId(billNo);//单据号
 |  |  |  |             ioOrderEntity.setCorpOrderId(UUID.randomUUID()+"");//单据号
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             ioOrderEntity.setThrOrderIdFk(billNo);//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setUpdateTime(new Date()); |  |  |  |             ioOrderEntity.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCreateTime(new Date()); |  |  |  |             ioOrderEntity.setCreateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderEntity.setCustomerId("110"); |  |  |  |             ioOrderEntity.setCustomerId("110"); | 
			
		
	
	
		
		
			
				
					|  |  | @ -520,6 +541,15 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return false; |  |  |  |                 return false; | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             //更新三方明细列表为已处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> value = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> updateThrInvOrderDetails = new ArrayList<>(value.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             value.forEach( x -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 x.setHandleStatus(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 updateThrInvOrderDetails.add(x); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             thrInvOrderDetailMapper.updateBatchById(updateThrInvOrderDetails); | 
			
		
	
		
		
			
				
					
					|  |  |  |             ioOrderService.insertOrder(ioOrderEntity); |  |  |  |             ioOrderService.insertOrder(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |             thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
 |  |  |  |             thrInvOrder.setStatus(ConstantStatus.SFIO_CFMD);//已确认
 | 
			
		
	
		
		
			
				
					
					|  |  |  |             thrInvOrder.setUpdateTime(new Date()); |  |  |  |             thrInvOrder.setUpdateTime(new Date()); | 
			
		
	
	
		
		
			
				
					|  |  | @ -757,6 +787,259 @@ public class ThrInvOrderServiceImpl implements ThrInvOrderService { | 
			
		
	
		
		
			
				
					
					|  |  |  |         log.info("手动抓取第三方普耗出入库明细生成单据定时任务结束"); |  |  |  |         log.info("手动抓取第三方普耗出入库明细生成单据定时任务结束"); | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void scanInvSfOrderGenerateSfOrder() { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("扫描处理第三方收费明细生成单据定时任务开始"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<ThrInvOrderDetail> list = thrInvOrderDetailMapper.selectSourceTypeList(Constant.THR_INV_SF_ORDER_TYPE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 1、根据 外检单号 进行 分组 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 2、遍历不同分组 在分组的列表再次进行匹配 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 3、匹配到的列表 不为空  进行 新增关联的单据  插入明细操作 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 4、需要 回写三方的明细表 标记已处理 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (CollectionUtil.isEmpty(list)) return; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Map<String, List<ThrInvOrderDetail>> grouped = list.stream() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .collect(Collectors.groupingBy(ThrInvOrderDetail::getOrderIdFk)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (Map.Entry<String, List<ThrInvOrderDetail>> entry : grouped.entrySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String orderIdFk = entry.getKey(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> thrInvOrderDetails = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> generatethrInvOrderDetails = new ArrayList<>(entry.getValue().size());//需要生成的明细
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             thrInvOrderDetails.forEach(item -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long relId = item.getRelId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (ObjectUtil.isNull(relId)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     String nameCode = item.getNameCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     List<BasicProductsEntity> productsEntities = udiRelevanceDao.getProductsEntitiesByNameCode(nameCode); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (CollectionUtil.isNotEmpty(productsEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         BasicProductsEntity basicProductsEntity = productsEntities.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setRelId(basicProductsEntity.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setHandleStatus(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generatethrInvOrderDetails.add(item); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (generatethrInvOrderDetails.size() >0 ){ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails);//先进行 回写已处理状态
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //通过单号获取单据信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 qw.eq("billNo", orderIdFk); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //新单号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 IoOrderEntity ioOrderEntity = new IoOrderEntity(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setBillNo(newBillNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setMainAction(thrInvOrder.getMainAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromCorp(thrInvOrder.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCorpOrderId(UUID.randomUUID()+"");//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setThrOrderIdFk(thrInvOrder.getBillNo());//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCustomerId("110"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long userId = customerService.getUserId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);//正常单据处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 List<IoOrderDetailBizEntity> newOrderDetailBiz = new ArrayList<>(generatethrInvOrderDetails.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (!copyOrderDetailBiz(generatethrInvOrderDetails, newOrderDetailBiz, newBillNo)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     throw new JsonException("第三方收费明细自动转化单据异常"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderService.insertOrder(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //自动处理业务单据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioAddInoutService.dealBusProcess(ioOrderEntity, bussinessTypeEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("扫描处理第三方收费明细生成单据定时任务结束"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void scanInvPhOrderGeneratePhOrder() { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("扫描处理第三方普耗明细生成单据定时任务开始"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<ThrInvOrderDetail> list = thrInvOrderDetailMapper.selectSourceTypeList(Constant.THR_INV_PH_ORDER_TYPE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 1、根据 外检单号 进行 分组 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 2、遍历不同分组 在分组的列表再次进行匹配 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 3、匹配到的列表 不为空  进行 新增关联的单据  插入明细操作 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 4、需要 回写三方的明细表 标记已处理 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (CollectionUtil.isEmpty(list)) return; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Map<String, List<ThrInvOrderDetail>> grouped = list.stream() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .collect(Collectors.groupingBy(ThrInvOrderDetail::getOrderIdFk)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (Map.Entry<String, List<ThrInvOrderDetail>> entry : grouped.entrySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String orderIdFk = entry.getKey(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> thrInvOrderDetails = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> generatethrInvOrderDetails = new ArrayList<>(entry.getValue().size());//需要生成的明细
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             thrInvOrderDetails.forEach(item -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long relId = item.getRelId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (ObjectUtil.isNull(relId)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     String nameCode = item.getNameCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     List<BasicProductsEntity> productsEntities = udiRelevanceDao.getProductsEntitiesByNameCode(nameCode); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (CollectionUtil.isNotEmpty(productsEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         BasicProductsEntity basicProductsEntity = productsEntities.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setRelId(basicProductsEntity.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setHandleStatus(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generatethrInvOrderDetails.add(item); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (generatethrInvOrderDetails.size() > 0) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails);//先进行 回写已处理状态
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //通过单号获取单据信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 qw.eq("billNo", orderIdFk); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //新单号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 IoOrderEntity ioOrderEntity = new IoOrderEntity(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setBillNo(newBillNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setMainAction(thrInvOrder.getMainAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromCorp(thrInvOrder.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCorpOrderId(UUID.randomUUID() + "");//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setThrOrderIdFk(thrInvOrder.getBillNo());//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCustomerId("110"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long userId = customerService.getUserId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);//正常单据处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 List<IoOrderDetailBizEntity> newOrderDetailBiz = new ArrayList<>(generatethrInvOrderDetails.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (!copyOrderDetailBiz(generatethrInvOrderDetails, newOrderDetailBiz, newBillNo)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     throw new JsonException("第三方普耗明细自动转化单据异常"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderService.insertOrder(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderDetailBizService.batchInsertBizs(newOrderDetailBiz); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //自动处理业务单据
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioAddInoutService.dealBusProcess(ioOrderEntity, bussinessTypeEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 log.info("扫描处理第三方普耗明细生成单据定时任务结束"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     @Override | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     public void scanInvGhOrderGenerateGhOrder() { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("扫描处理第三方高耗明细生成单据定时任务开始"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         List<ThrInvOrderDetail> list = thrInvOrderDetailMapper.selectSourceTypeList(Constant.THR_INV_GH_ORDER_TYPE); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         /** | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 1、根据 外检单号 进行 分组 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 2、遍历不同分组 在分组的列表再次进行匹配 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 3、匹配到的列表 不为空  进行 新增关联的单据  插入明细操作 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          * 4、需要 回写三方的明细表 标记已处理 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          */ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         if (CollectionUtil.isEmpty(list)) return; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         Map<String, List<ThrInvOrderDetail>> grouped = list.stream() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 .collect(Collectors.groupingBy(ThrInvOrderDetail::getOrderIdFk)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         for (Map.Entry<String, List<ThrInvOrderDetail>> entry : grouped.entrySet()) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             String orderIdFk = entry.getKey(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> thrInvOrderDetails = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             List<ThrInvOrderDetail> generatethrInvOrderDetails = new ArrayList<>(entry.getValue().size());//需要生成的明细
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             thrInvOrderDetails.forEach(item -> { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long relId = item.getRelId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (ObjectUtil.isNull(relId)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     String nameCode = item.getNameCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     List<BasicProductsEntity> productsEntities = udiRelevanceDao.getProductsEntitiesByNameCode(nameCode); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     if (CollectionUtil.isNotEmpty(productsEntities)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         BasicProductsEntity basicProductsEntity = productsEntities.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setRelId(basicProductsEntity.getId()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         item.setHandleStatus(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                         generatethrInvOrderDetails.add(item); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             }); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             if (generatethrInvOrderDetails.size() >0 ) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails);//先进行 回写已处理状态
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //通过单号获取单据信息
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 QueryWrapper<ThrInvOrder> qw = new QueryWrapper<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 qw.eq("billNo", orderIdFk); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ThrInvOrder thrInvOrder = thrInvOrderMapper.selectOne(qw); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 //新单号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 String newBillNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER, "yyyyMMdd")); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 IoOrderEntity ioOrderEntity = new IoOrderEntity(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setBillNo(newBillNo); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setMainAction(thrInvOrder.getMainAction()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromCorp(thrInvOrder.getFromCorp()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setInvCode(thrInvOrder.getInvCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDeptCode(thrInvOrder.getDeptCode()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setFromType(ConstantStatus.FROM_WEBNEW);//网页新增
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);//草稿
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCorpOrderId(UUID.randomUUID() + "");//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setThrOrderIdFk(thrInvOrder.getBillNo());//单据号
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCustomerId("110"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 Long userId = customerService.getUserId(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setCreateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setUpdateUser(userId + ""); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderEntity.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);//正常单据处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 List<IoCodeTempEntity> newIoCodeTemps = new ArrayList<>(thrInvOrderDetails.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 GenerateOrderRequest generateOrderRequest = new GenerateOrderRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 generateOrderRequest.setAction(thrInvOrder.getBillType()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (!copyIoCodeTemps(entry.getValue(), newIoCodeTemps, newBillNo, generateOrderRequest)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     throw new JsonException("第三方高耗明细自动转化单据异常"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 thrInvOrderDetailMapper.updateBatchById(generatethrInvOrderDetails); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioOrderService.insertOrder(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioCodeTempDao.insertBatch(newIoCodeTemps); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 for (IoCodeTempEntity codeTempEntity : newIoCodeTemps) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     addInoutService.genOrderDetailCode(ioOrderEntity, codeTempEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 ioAddInoutService.dealProcess(ioOrderEntity); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 if (!ioCheckInoutService.checkManual(ioOrderEntity.getBillNo())) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     ioCheckInoutService.check(ioOrderEntity.getBillNo()); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         log.info("扫描处理第三方高耗明细生成单据定时任务结束"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /** |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |      * 校验relId字段有空返回false |  |  |  |      * 校验relId字段有空返回false | 
			
		
	
		
		
			
				
					
					|  |  |  |      * |  |  |  |      * | 
			
		
	
	
		
		
			
				
					|  |  | 
 |