|  |  |  | @ -2,6 +2,7 @@ package com.glxp.api.controller.sync; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.collection.CollUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.lang.Dict; | 
			
		
	
		
			
				
					|  |  |  |  | import cn.hutool.core.util.StrUtil; | 
			
		
	
		
			
				
					|  |  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.annotation.AuthRuleAnnotation; | 
			
		
	
		
			
				
					|  |  |  |  | import com.glxp.api.common.enums.ResultEnum; | 
			
		
	
	
		
			
				
					|  |  |  | @ -61,10 +62,7 @@ import javax.validation.Valid; | 
			
		
	
		
			
				
					|  |  |  |  | import java.io.FileNotFoundException; | 
			
		
	
		
			
				
					|  |  |  |  | import java.io.FileReader; | 
			
		
	
		
			
				
					|  |  |  |  | import java.io.IOException; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.ArrayList; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Date; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.List; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.Map; | 
			
		
	
		
			
				
					|  |  |  |  | import java.util.*; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | @RestController | 
			
		
	
		
			
				
					|  |  |  |  | public class SpsSyncDownloadController { | 
			
		
	
	
		
			
				
					|  |  |  | @ -154,13 +152,13 @@ public class SpsSyncDownloadController { | 
			
		
	
		
			
				
					|  |  |  |  |     @AuthRuleAnnotation("") | 
			
		
	
		
			
				
					|  |  |  |  |     @GetMapping("sps/sync/data") | 
			
		
	
		
			
				
					|  |  |  |  |     public BaseResponse data(BasicExportTypeEnum exportType) { | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse<Object> baseResponse = new BaseResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         BaseResponse<RelaySyncResponse> baseResponse = new BaseResponse<>(); | 
			
		
	
		
			
				
					|  |  |  |  |         BasicExportStatusEntity one = basicExportService.getOne(Wrappers.lambdaQuery(BasicExportStatusEntity.class) | 
			
		
	
		
			
				
					|  |  |  |  |                 .eq(BasicExportStatusEntity::getType, exportType.getRemark()) | 
			
		
	
		
			
				
					|  |  |  |  |                 .orderByDesc(BasicExportStatusEntity::getStartTime) | 
			
		
	
		
			
				
					|  |  |  |  |                 .last("limit 1") | 
			
		
	
		
			
				
					|  |  |  |  |         ); | 
			
		
	
		
			
				
					|  |  |  |  |         Object result = null; | 
			
		
	
		
			
				
					|  |  |  |  |         RelaySyncResponse relaySyncResponse = null; | 
			
		
	
		
			
				
					|  |  |  |  |         if (one != null) { | 
			
		
	
		
			
				
					|  |  |  |  |             if (BasicExportStatusEnum.WAIT_TRIGGERED.getCode().equals(one.getStatus())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class) | 
			
		
	
	
		
			
				
					|  |  |  | @ -170,81 +168,36 @@ public class SpsSyncDownloadController { | 
			
		
	
		
			
				
					|  |  |  |  |                         .eq(BasicExportStatusEntity::getId, one.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                 ); | 
			
		
	
		
			
				
					|  |  |  |  |             } else if (BasicExportStatusEnum.WAIT_SYNC.getCode().equals(one.getStatus())) { | 
			
		
	
		
			
				
					|  |  |  |  |                 switch (exportType) { | 
			
		
	
		
			
				
					|  |  |  |  |                     case BASIC_DATA: | 
			
		
	
		
			
				
					|  |  |  |  |                         result = this.readBasicDataFile(one); | 
			
		
	
		
			
				
					|  |  |  |  |                         break; | 
			
		
	
		
			
				
					|  |  |  |  |                     case OTHER_DATA: | 
			
		
	
		
			
				
					|  |  |  |  |                         result = this.readOtherDataFile(one); | 
			
		
	
		
			
				
					|  |  |  |  |                         break; | 
			
		
	
		
			
				
					|  |  |  |  |                     case COUNTRY_DI_DATA: | 
			
		
	
		
			
				
					|  |  |  |  |                 if (StrUtil.isBlank(one.getCacheFilePath())) { | 
			
		
	
		
			
				
					|  |  |  |  |                     throw new RuntimeException("系统异常,文件名为空"); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 // 修改任务状态
 | 
			
		
	
		
			
				
					|  |  |  |  | //                basicExportService.update(Wrappers.lambdaUpdate(BasicExportStatusEntity.class)
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        .set(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.COMPLETED.getCode())
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        .set(BasicExportStatusEntity::getUpdateTime, new Date())
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        .set(BasicExportStatusEntity::getEndTime, new Date())
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        .eq(BasicExportStatusEntity::getStatus, BasicExportStatusEnum.WAIT_SYNC.getCode())
 | 
			
		
	
		
			
				
					|  |  |  |  | //                        .eq(BasicExportStatusEntity::getId, one.getId())
 | 
			
		
	
		
			
				
					|  |  |  |  | //                );
 | 
			
		
	
		
			
				
					|  |  |  |  |                 relaySyncResponse = RelaySyncResponse.builder() | 
			
		
	
		
			
				
					|  |  |  |  |                         .taskId(one.getId()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .filePath(one.getCacheFilePath()) | 
			
		
	
		
			
				
					|  |  |  |  |                         .fileContent(this.readDataFile(one.getCacheFilePath())) | 
			
		
	
		
			
				
					|  |  |  |  |                         .build(); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         baseResponse.setCode(ResultEnum.SUCCESS.getCode()); | 
			
		
	
		
			
				
					|  |  |  |  |         baseResponse.setData(result); | 
			
		
	
		
			
				
					|  |  |  |  |         baseResponse.setData(relaySyncResponse); | 
			
		
	
		
			
				
					|  |  |  |  |         return baseResponse; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private SpsSyncBasicDataResponse readBasicDataFile(BasicExportStatusEntity one) { | 
			
		
	
		
			
				
					|  |  |  |  |     private String readDataFile(String fileFullPath) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         // 读取文件数据
 | 
			
		
	
		
			
				
					|  |  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |  |             FileReader reader = new FileReader(one.getCacheFilePath()); | 
			
		
	
		
			
				
					|  |  |  |  |             StringBuilder str = new StringBuilder(); | 
			
		
	
		
			
				
					|  |  |  |  |             int data; | 
			
		
	
		
			
				
					|  |  |  |  |             while ((data = reader.read()) != -1) { | 
			
		
	
		
			
				
					|  |  |  |  |                 str.append((char) data); | 
			
		
	
		
			
				
					|  |  |  |  |             if (StrUtil.isBlank(fileFullPath)) { | 
			
		
	
		
			
				
					|  |  |  |  |                 throw new RuntimeException("系统异常,文件名为空"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             reader.close(); | 
			
		
	
		
			
				
					|  |  |  |  |             Dict map = JsonUtils.parseMap(str.toString()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             SpsSyncBasicDataResponse spsSyncBasicDataResponse = new SpsSyncBasicDataResponse(); | 
			
		
	
		
			
				
					|  |  |  |  |             // 组装返回数据
 | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setTaskId(one.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setHospTypeList((List<BasicHospTypeEntity>) map.get(BasicHospTypeEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setUdiRelevanceList((List<UdiRelevanceEntity>) map.get(UdiRelevanceEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setProductsList((List<BasicProductsEntity>) map.get(BasicProductsEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setRelevanceList((List<CompanyProductRelevanceEntity>) map.get(CompanyProductRelevanceEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setCorpList((List<BasicCorpEntity>) map.get(BasicCorpEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setSupCertList((List<SupCertEntity>) map.get(SupCertEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setSupCertSetList((List<SupCertSetEntity>) map.get(SupCertSetEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setSupCompanyList((List<SupCompanyEntity>) map.get(SupCompanyEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setSupManufacturerList((List<SupManufacturerEntity>) map.get(SupManufacturerEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncBasicDataResponse.setSupProductList((List<SupProductEntity>) map.get(SupProductEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             return spsSyncBasicDataResponse; | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (FileNotFoundException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new RuntimeException("系统异常,未找到对应数据文件"); | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (IOException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new RuntimeException(e); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private SpsSyncOtherDataResponse readOtherDataFile(BasicExportStatusEntity one) { | 
			
		
	
		
			
				
					|  |  |  |  |         // 读取文件数据
 | 
			
		
	
		
			
				
					|  |  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |  |             FileReader reader = new FileReader(one.getCacheFilePath()); | 
			
		
	
		
			
				
					|  |  |  |  |             FileReader reader = new FileReader(fileFullPath); | 
			
		
	
		
			
				
					|  |  |  |  |             StringBuilder str = new StringBuilder(); | 
			
		
	
		
			
				
					|  |  |  |  |             int data; | 
			
		
	
		
			
				
					|  |  |  |  |             while ((data = reader.read()) != -1) { | 
			
		
	
		
			
				
					|  |  |  |  |                 str.append((char) data); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             reader.close(); | 
			
		
	
		
			
				
					|  |  |  |  |             Dict map = JsonUtils.parseMap(str.toString()); | 
			
		
	
		
			
				
					|  |  |  |  |             SpsSyncOtherDataResponse spsSyncOtherDataResponse = new SpsSyncOtherDataResponse(); | 
			
		
	
		
			
				
					|  |  |  |  |             // 组装返回数据
 | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncOtherDataResponse.setTaskId(one.getId()); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncOtherDataResponse.setIoCodeLostList((List<IoCodeLostEntity>) map.get(IoCodeLostEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             spsSyncOtherDataResponse.setIoCodeRelList((List<IoCodeRelEntity>) map.get(IoCodeRelEntity.class.getSimpleName())); | 
			
		
	
		
			
				
					|  |  |  |  |             return spsSyncOtherDataResponse; | 
			
		
	
		
			
				
					|  |  |  |  |             return str.toString(); | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (FileNotFoundException e) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new RuntimeException("系统异常,未找到对应数据文件"); | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (IOException e) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |