|  |  | @ -430,7 +430,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Transactional(rollbackFor = Exception.class) |  |  |  |     @Transactional(rollbackFor = Exception.class) | 
			
		
	
		
		
			
				
					
					|  |  |  |     void ProcessData(Element rootElement){ |  |  |  |     void ProcessData(Element rootElement) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         //截取Relation
 |  |  |  |         //截取Relation
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         NodeList relation = rootElement.getElementsByTagName("Relation"); |  |  |  |         NodeList relation = rootElement.getElementsByTagName("Relation"); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (relation == null) { |  |  |  |         if (relation == null) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -482,7 +482,7 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                 relCodeBatch.setUpdateTime(new Date()); |  |  |  |                 relCodeBatch.setUpdateTime(new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 relCodeBatch.setUpdateUser(user.getUserName()); |  |  |  |                 relCodeBatch.setUpdateUser(user.getUserName()); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 relCodeBatch.setErpId(customerId); |  |  |  |                 relCodeBatch.setErpId(customerId); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 relCodeBatch.setUploadFlagDown(1); |  |  |  |                 relCodeBatch.setUploadFlagDown(0); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 relCodeBatch.setUploadFlagUp(0); |  |  |  |                 relCodeBatch.setUploadFlagUp(0); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //batch下的节点code
 |  |  |  |                 //batch下的节点code
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -503,19 +503,19 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                         relCodeDetail.setFlag(Integer.valueOf(flag)); |  |  |  |                         relCodeDetail.setFlag(Integer.valueOf(flag)); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         //判断是否已存在
 |  |  |  |                         //判断是否已存在
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                         List<RelCodeDetail> relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0"); |  |  |  |                         List<RelCodeDetail> relCodeDetails = codeMap.get(StrUtil.isNotBlank(parentCode) ? parentCode : "0"); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if (relCodeDetails == null){ |  |  |  |                         if (relCodeDetails == null) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                             List<RelCodeDetail> newRelCodeDetails = new ArrayList<>(); |  |  |  |                             List<RelCodeDetail> newRelCodeDetails = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                             newRelCodeDetails.add(relCodeDetail); |  |  |  |                             newRelCodeDetails.add(relCodeDetail); | 
			
		
	
		
		
			
				
					
					|  |  |  |                             codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",newRelCodeDetails); |  |  |  |                             codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", newRelCodeDetails); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                         }else { |  |  |  |                         } else { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                             relCodeDetails.add(relCodeDetail); |  |  |  |                             relCodeDetails.add(relCodeDetail); | 
			
		
	
		
		
			
				
					
					|  |  |  |                             codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0",relCodeDetails); |  |  |  |                             codeMap.put(StrUtil.isNotBlank(parentCode) ? parentCode : "0", relCodeDetails); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //开始处理codeMap
 |  |  |  |                 //开始处理codeMap
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (!codeMap.isEmpty()){ |  |  |  |                 if (!codeMap.isEmpty()) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                     Map<String, List<RelCodeDetail>> sortedCodeMap = codeMap.entrySet() |  |  |  |                     Map<String, List<RelCodeDetail>> sortedCodeMap = codeMap.entrySet() | 
			
		
	
		
		
			
				
					
					|  |  |  |                             .stream() |  |  |  |                             .stream() | 
			
		
	
	
		
		
			
				
					|  |  | @ -540,10 +540,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                         String key = entry.getKey(); |  |  |  |                         String key = entry.getKey(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         List<RelCodeDetail> list = entry.getValue(); |  |  |  |                         List<RelCodeDetail> list = entry.getValue(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                         if ("0".equals(key)){ |  |  |  |                         if ("0".equals(key)) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                             for (RelCodeDetail relCodeDetail : list) { |  |  |  |                             for (RelCodeDetail relCodeDetail : list) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 RelCodeBatch addRelCodeBatch = new RelCodeBatch(); |  |  |  |                                 RelCodeBatch addRelCodeBatch = new RelCodeBatch(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch); |  |  |  |                                 BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                 addRelCodeBatch.setParentCode(key); |  |  |  |                                 addRelCodeBatch.setParentCode(key); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 String curCode = relCodeDetail.getCurCode(); |  |  |  |                                 String curCode = relCodeDetail.getCurCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 String diStr = FilterUdiUtils.getUdi(curCode).getUdi(); |  |  |  |                                 String diStr = FilterUdiUtils.getUdi(curCode).getUdi(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -553,16 +553,16 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 addRelCodeBatch.setId(null); |  |  |  |                                 addRelCodeBatch.setId(null); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 this.save(addRelCodeBatch); |  |  |  |                                 this.save(addRelCodeBatch); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 batchIdFkMap.put(curCode,addRelCodeBatch.getId()); |  |  |  |                                 batchIdFkMap.put(curCode, addRelCodeBatch.getId()); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                 updateDrugLevelRelCodeBatch.add(addRelCodeBatch); |  |  |  |                                 updateDrugLevelRelCodeBatch.add(addRelCodeBatch); | 
			
		
	
		
		
			
				
					
					|  |  |  |                             } |  |  |  |                             } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                         }else { |  |  |  |                         } else { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                             for (RelCodeDetail detail : list) { |  |  |  |                             for (RelCodeDetail detail : list) { | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 Integer packLayer = detail.getPackLayer(); |  |  |  |                                 Integer packLayer = detail.getPackLayer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 if (packLayer == 2){ |  |  |  |                                 if (packLayer == 2) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                     RelCodeBatch addRelCodeBatch2 = new RelCodeBatch(); |  |  |  |                                     RelCodeBatch addRelCodeBatch2 = new RelCodeBatch(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     BeanUtils.copyProperties(relCodeBatch,addRelCodeBatch2); |  |  |  |                                     BeanUtils.copyProperties(relCodeBatch, addRelCodeBatch2); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                     String curCode = detail.getCurCode(); |  |  |  |                                     String curCode = detail.getCurCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     String parentCode = detail.getParentCode(); |  |  |  |                                     String parentCode = detail.getParentCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     addRelCodeBatch2.setParentCode(parentCode); |  |  |  |                                     addRelCodeBatch2.setParentCode(parentCode); | 
			
		
	
	
		
		
			
				
					|  |  | @ -574,12 +574,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     addRelCodeBatch2.setId(null); |  |  |  |                                     addRelCodeBatch2.setId(null); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     this.save(addRelCodeBatch2); |  |  |  |                                     this.save(addRelCodeBatch2); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     batchIdFkMap.put(curCode,addRelCodeBatch2.getId()); |  |  |  |                                     batchIdFkMap.put(curCode, addRelCodeBatch2.getId()); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     //同时也是上面的明细
 |  |  |  |                                     //同时也是上面的明细
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     detail.setBatchIdFk(batchIdFkMap.get(parentCode)); |  |  |  |                                     detail.setBatchIdFk(batchIdFkMap.get(parentCode)); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     addRelCodeDetail.add(detail); |  |  |  |                                     addRelCodeDetail.add(detail); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                 }else if (packLayer == 1){ |  |  |  |                                 } else if (packLayer == 1) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                     //直接明细
 |  |  |  |                                     //直接明细
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     String parentCode = detail.getParentCode(); |  |  |  |                                     String parentCode = detail.getParentCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |                                     detail.setBatchIdFk(batchIdFkMap.get(parentCode)); |  |  |  |                                     detail.setBatchIdFk(batchIdFkMap.get(parentCode)); | 
			
		
	
	
		
		
			
				
					|  |  | @ -588,10 +588,10 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |                             } |  |  |  |                             } | 
			
		
	
		
		
			
				
					
					|  |  |  |                         } |  |  |  |                         } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |  |                     if (CollUtil.isNotEmpty(addRelCodeDetail)){ |  |  |  |                     if (CollUtil.isNotEmpty(addRelCodeDetail)) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         relCodeDetailService.saveBatch(addRelCodeDetail); |  |  |  |                         relCodeDetailService.saveBatch(addRelCodeDetail); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         //更新层级关系的数量
 |  |  |  |                         //更新层级关系的数量
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                         updateDrugLevelRelCodeBatch.forEach( item -> { |  |  |  |                         updateDrugLevelRelCodeBatch.forEach(item -> { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                             this.updateDrugLevelCount(item); |  |  |  |                             this.updateDrugLevelCount(item); | 
			
		
	
		
		
			
				
					
					|  |  |  |                         }); |  |  |  |                         }); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     } |  |  |  |                     } | 
			
		
	
	
		
		
			
				
					|  |  | @ -604,15 +604,16 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  |     /** |  |  |  |     /** | 
			
		
	
		
		
			
				
					
					|  |  |  |      * 通过curCode 获取明细的数量 如果是 三级 需要先去计算二级单下的一级数量 在算出二级数量 |  |  |  |      * 通过curCode 获取明细的数量 如果是 三级 需要先去计算二级单下的一级数量 在算出二级数量 | 
			
		
	
		
		
			
				
					
					|  |  |  |      * 如果是 二级 直接计算出 一级 |  |  |  |      * 如果是 二级 直接计算出 一级 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |      * | 
			
		
	
		
		
			
				
					
					|  |  |  |      * @param item |  |  |  |      * @param item | 
			
		
	
		
		
			
				
					
					|  |  |  |      */ |  |  |  |      */ | 
			
		
	
		
		
			
				
					
					|  |  |  |     private void updateDrugLevelCount(RelCodeBatch item) { |  |  |  |     private void updateDrugLevelCount(RelCodeBatch item) { | 
			
		
	
		
		
			
				
					
					|  |  |  |         String curCode = item.getCurCode(); |  |  |  |         String curCode = item.getCurCode(); | 
			
		
	
		
		
			
				
					
					|  |  |  |         List<RelCodeDetail> list = relCodeDetailService.list(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, curCode)); |  |  |  |         List<RelCodeDetail> list = relCodeDetailService.list(new LambdaQueryWrapper<RelCodeDetail>().eq(RelCodeDetail::getParentCode, curCode)); | 
			
		
	
		
		
			
				
					
					|  |  |  |         if (CollUtil.isNotEmpty(list)){ |  |  |  |         if (CollUtil.isNotEmpty(list)) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |             RelCodeDetail relCodeDetail = list.get(0); |  |  |  |             RelCodeDetail relCodeDetail = list.get(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |             Integer packLayer = relCodeDetail.getPackLayer(); |  |  |  |             Integer packLayer = relCodeDetail.getPackLayer(); | 
			
		
	
		
		
			
				
					
					|  |  |  |             if (packLayer == 2){ |  |  |  |             if (packLayer == 2) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 item.setThreeLevelCount(1); |  |  |  |                 item.setThreeLevelCount(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 item.setTwoLevelCount(list.size()); |  |  |  |                 item.setTwoLevelCount(list.size()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -623,12 +624,12 @@ public class RelCodeBatchService extends ServiceImpl<RelCodeBatchMapper, RelCode | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 //更新下 二级单
 |  |  |  |                 //更新下 二级单
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 List<RelCodeBatch> twoRelCodeBatchs = this.list(new LambdaQueryWrapper<RelCodeBatch>().in(RelCodeBatch::getCurCode, twoCurCodes)); |  |  |  |                 List<RelCodeBatch> twoRelCodeBatchs = this.list(new LambdaQueryWrapper<RelCodeBatch>().in(RelCodeBatch::getCurCode, twoCurCodes)); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if (CollUtil.isNotEmpty(twoRelCodeBatchs)){ |  |  |  |                 if (CollUtil.isNotEmpty(twoRelCodeBatchs)) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                     twoRelCodeBatchs.forEach( t -> { |  |  |  |                     twoRelCodeBatchs.forEach(t -> { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                         this.updateDrugLevelCount(t); |  |  |  |                         this.updateDrugLevelCount(t); | 
			
		
	
		
		
			
				
					
					|  |  |  |                     }); |  |  |  |                     }); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |             }else if (packLayer == 1){ |  |  |  |             } else if (packLayer == 1) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                 item.setThreeLevelCount(0); |  |  |  |                 item.setThreeLevelCount(0); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 item.setTwoLevelCount(1); |  |  |  |                 item.setTwoLevelCount(1); | 
			
		
	
		
		
			
				
					
					|  |  |  |                 item.setOneLevelCount(list.size()); |  |  |  |                 item.setOneLevelCount(list.size()); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |