Browse Source

3333333333

zhouli 7 months ago
parent
commit
a346613659

+ 114 - 98
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/ArchiveServiceImpl.java

@@ -290,10 +290,10 @@ public class ArchiveServiceImpl implements IArchiveService {
 			types = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28);
 			types = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28);
 		} else if (task.getType() == 1) {
 		} else if (task.getType() == 1) {
 			dir = "高新备查资料";
 			dir = "高新备查资料";
- 			types = Arrays.asList(1, 2, 4, 5, 7, 9, 11, 14, 21, 22, 23, 25, 27);
+			types = Arrays.asList(1, 2, 4, 5, 7, 9, 11, 14, 21, 22, 23, 25, 27);
 		} else {
 		} else {
 			dir = "加计扣除备查资料";
 			dir = "加计扣除备查资料";
- 			types = Arrays.asList(3, 4, 6, 8, 10, 13, 15, 19, 20, 26, 28);
+			types = Arrays.asList(3, 4, 6, 8, 10, 13, 15, 19, 20, 26, 28);
 		}
 		}
 		Date date = new Date();
 		Date date = new Date();
 
 
@@ -312,36 +312,36 @@ public class ArchiveServiceImpl implements IArchiveService {
 		List<Integer> finalTypes = types;
 		List<Integer> finalTypes = types;
 		futureList.add(CompletableFuture.runAsync(() -> {
 		futureList.add(CompletableFuture.runAsync(() -> {
 			RequestContextHolder.setRequestAttributes(requestAttributes);
 			RequestContextHolder.setRequestAttributes(requestAttributes);
-			if(finalTypes.contains(1)){
+			if (finalTypes.contains(1)) {
 				//1 高新技术企业资格证书:基础资源管理-企业基本信息-高企证书上传(按年度)。未上传则为空
 				//1 高新技术企业资格证书:基础资源管理-企业基本信息-高企证书上传(按年度)。未上传则为空
 				generateD1(Paths.get(basePath.toString(), "1.高新技术企业资格证书"), year);
 				generateD1(Paths.get(basePath.toString(), "1.高新技术企业资格证书"), year);
 			}
 			}
-			if(finalTypes.contains(2)) {
+			if (finalTypes.contains(2)) {
 				//2 高新技术企业认定资料:附件补充
 				//2 高新技术企业认定资料:附件补充
 				Path path2 = FileUtil.mkdir(Paths.get(basePath.toString(), "2.高新技术企业认定资料"));
 				Path path2 = FileUtil.mkdir(Paths.get(basePath.toString(), "2.高新技术企业认定资料"));
 				this.downloadAttachFiles(path2, Collections.singletonList(finalArchiveAttach.getD3()));
 				this.downloadAttachFiles(path2, Collections.singletonList(finalArchiveAttach.getD3()));
 			}
 			}
-			if(finalTypes.contains(2)){
+			if (finalTypes.contains(3)) {
 				//3 加计扣除情况说明:附件补充
 				//3 加计扣除情况说明:附件补充
 				Path path3 = FileUtil.mkdir(Paths.get(basePath.toString(), "3.加计扣除情况说明"));
 				Path path3 = FileUtil.mkdir(Paths.get(basePath.toString(), "3.加计扣除情况说明"));
 				this.downloadAttachFiles(path3, Collections.singletonList(finalArchiveAttach.getD10()));
 				this.downloadAttachFiles(path3, Collections.singletonList(finalArchiveAttach.getD10()));
 			}
 			}
-			if(finalTypes.contains(2)){
+			if (finalTypes.contains(4)) {
 				//4 研发立项决议文件:附件补充
 				//4 研发立项决议文件:附件补充
 				Path path4 = FileUtil.mkdir(Paths.get(basePath.toString(), "4.研发立项决议文件"));
 				Path path4 = FileUtil.mkdir(Paths.get(basePath.toString(), "4.研发立项决议文件"));
 				this.downloadAttachFiles(path4, Collections.singletonList(finalArchiveAttach.getD13()));
 				this.downloadAttachFiles(path4, Collections.singletonList(finalArchiveAttach.getD13()));
 			}
 			}
-			if(finalTypes.contains(2)){
+			if (finalTypes.contains(5)) {
 				//5 高新研发项目汇总表:对外报表-高新口径研发费用报表-高新-研发项目清单表
 				//5 高新研发项目汇总表:对外报表-高新口径研发费用报表-高新-研发项目清单表
 				generateD5(Paths.get(basePath.toString(), "5.高新研发项目汇总表"), year, 2);
 				generateD5(Paths.get(basePath.toString(), "5.高新研发项目汇总表"), year, 2);
 			}
 			}
-			if(finalTypes.contains(2)){
+			if (finalTypes.contains(6)) {
 				//6 加计扣除研发项目汇总表:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单表
 				//6 加计扣除研发项目汇总表:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单表
 				generateD5(Paths.get(basePath.toString(), "6.加计扣除研发项目汇总表"), year, 3);
 				generateD5(Paths.get(basePath.toString(), "6.加计扣除研发项目汇总表"), year, 3);
 			}
 			}
 		}));
 		}));
 
 
-		if(types.contains(7)){
+		if (types.contains(7)) {
 			Path path7 = FileUtil.mkdir(Paths.get(basePath.toString(), "7.高新研发项目全套技术资料"));
 			Path path7 = FileUtil.mkdir(Paths.get(basePath.toString(), "7.高新研发项目全套技术资料"));
 			XmFinanceEntity dto = new XmFinanceEntity();
 			XmFinanceEntity dto = new XmFinanceEntity();
 			dto.setYearAndMonth(year);
 			dto.setYearAndMonth(year);
@@ -356,7 +356,7 @@ public class ArchiveServiceImpl implements IArchiveService {
 				}));
 				}));
 			}
 			}
 		}
 		}
-		if(types.contains(8)){
+		if (types.contains(8)) {
 			Path path8 = FileUtil.mkdir(Paths.get(basePath.toString(), "8.加计扣除研发项目全套技术资料"));
 			Path path8 = FileUtil.mkdir(Paths.get(basePath.toString(), "8.加计扣除研发项目全套技术资料"));
 			XmFinanceEntity dto = new XmFinanceEntity();
 			XmFinanceEntity dto = new XmFinanceEntity();
 			dto.setYearAndMonth(year);
 			dto.setYearAndMonth(year);
@@ -375,11 +375,11 @@ public class ArchiveServiceImpl implements IArchiveService {
 
 
 		futureList.add(CompletableFuture.runAsync(() -> {
 		futureList.add(CompletableFuture.runAsync(() -> {
 			RequestContextHolder.setRequestAttributes(requestAttributes);
 			RequestContextHolder.setRequestAttributes(requestAttributes);
-			if(finalTypes.contains(9)){
+			if (finalTypes.contains(9)) {
 				//9 高新研发人员与科技人员资料:改成高新科技人员资料:即科技人员管理-年高新科技人员汇总表资料表,选出:对外报表-高新口径研发费用报表-高新-研发项目清单中项目人员汇总
 				//9 高新研发人员与科技人员资料:改成高新科技人员资料:即科技人员管理-年高新科技人员汇总表资料表,选出:对外报表-高新口径研发费用报表-高新-研发项目清单中项目人员汇总
 				generateD9(Paths.get(basePath.toString(), "9.高新科技人员资料"), year, finalArchiveAttach.getD6());
 				generateD9(Paths.get(basePath.toString(), "9.高新科技人员资料"), year, finalArchiveAttach.getD6());
 			}
 			}
-			if(finalTypes.contains(10)){
+			if (finalTypes.contains(10)) {
 				//10 加计扣除研发人员与科技人员资料:改成加计扣除项目科研人员资料:即科技人员管理-项目人员汇总表,选出:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单中项目人员汇总
 				//10 加计扣除研发人员与科技人员资料:改成加计扣除项目科研人员资料:即科技人员管理-项目人员汇总表,选出:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单中项目人员汇总
 				generateD10(Paths.get(basePath.toString(), "10.加计扣除项目科研人员资料"), year);
 				generateD10(Paths.get(basePath.toString(), "10.加计扣除项目科研人员资料"), year);
 			}
 			}
@@ -387,99 +387,123 @@ public class ArchiveServiceImpl implements IArchiveService {
 
 
 		futureList.add(CompletableFuture.runAsync(() -> {
 		futureList.add(CompletableFuture.runAsync(() -> {
 			RequestContextHolder.setRequestAttributes(requestAttributes);
 			RequestContextHolder.setRequestAttributes(requestAttributes);
-			//11 全部知识产权资料(汇总表、附件):当年度所有科研成果列表导出,及所有附件资料的下载
-			generateD11(Paths.get(basePath.toString(), "11.全部知识产权资料"), 0, year);
-			//12 高新项目知识产权资料(汇总表、附件):对外报表-高新口径研发费用报表-高新-研发项目清单中的科研成果列表及所有附件资料的下载
-			generateD11(Paths.get(basePath.toString(), "12.高新项目知识产权资料"), 2, year);
-			//13 加计扣除项目知识产权资料(汇总表、附件):对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单中的科研成果列表及所有附件资料的下载
-			generateD11(Paths.get(basePath.toString(), "13.加计扣除项目知识产权资料"), 3, year);
-		}));
+			if (finalTypes.contains(11)) {
+				//11 全部知识产权资料(汇总表、附件):当年度所有科研成果列表导出,及所有附件资料的下载
+				generateD11(Paths.get(basePath.toString(), "11.全部知识产权资料"), 0, year);
+			}
+			if (finalTypes.contains(12)) {
+				//12 高新项目知识产权资料(汇总表、附件):对外报表-高新口径研发费用报表-高新-研发项目清单中的科研成果列表及所有附件资料的下载
+				generateD11(Paths.get(basePath.toString(), "12.高新项目知识产权资料"), 2, year);
+			}
+			if (finalTypes.contains(13)) {
+				//13 加计扣除项目知识产权资料(汇总表、附件):对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单中的科研成果列表及所有附件资料的下载
+				generateD11(Paths.get(basePath.toString(), "13.加计扣除项目知识产权资料"), 3, year);
+			}
 
 
-		futureList.add(CompletableFuture.runAsync(() -> {
-			RequestContextHolder.setRequestAttributes(requestAttributes);
-			//14 会计口径研发费用辅助账:对外报表-会计加计扣除口径研发费用报表-会计-研发支出辅助账
-			generateD14(Paths.get(basePath.toString(), "14.会计口径研发费用辅助账"), year);
-			//15 高新口径研发费用辅助账:对外报表-高新口径研发费用报表-高新-研发支出辅助账
-			generateD15(Paths.get(basePath.toString(), "15.高新口径研发费用辅助账"), year, finalArchiveAttach.getD9());
-			//16 加计扣除口径研发费用辅助账:对外报表-加计扣除口径研发费用报表-加计扣除-研发支出辅助账
-			generateD16(Paths.get(basePath.toString(), "16.加计扣除口径研发费用辅助账"), year);
 		}));
 		}));
 
 
 		futureList.add(CompletableFuture.runAsync(() -> {
 		futureList.add(CompletableFuture.runAsync(() -> {
 			RequestContextHolder.setRequestAttributes(requestAttributes);
 			RequestContextHolder.setRequestAttributes(requestAttributes);
-			//14 会计口径研发费用辅助账:对外报表-会计加计扣除口径研发费用报表-会计-研发支出辅助账
-			generateD14(Paths.get(basePath.toString(), "14.会计口径研发费用辅助账"), year);
-			//15 高新口径研发费用辅助账:对外报表-高新口径研发费用报表-高新-研发支出辅助账
-			generateD15(Paths.get(basePath.toString(), "15.高新口径研发费用辅助账"), year, finalArchiveAttach.getD9());
-			//16 加计扣除口径研发费用辅助账:对外报表-加计扣除口径研发费用报表-加计扣除-研发支出辅助账
-			generateD16(Paths.get(basePath.toString(), "16.加计扣除口径研发费用辅助账"), year);
+			if (finalTypes.contains(14)) {
+				//14 会计口径研发费用辅助账:对外报表-会计加计扣除口径研发费用报表-会计-研发支出辅助账
+				generateD14(Paths.get(basePath.toString(), "14.会计口径研发费用辅助账"), year);
+			}
+			if (finalTypes.contains(15)) {
+				//15 高新口径研发费用辅助账:对外报表-高新口径研发费用报表-高新-研发支出辅助账
+				generateD15(Paths.get(basePath.toString(), "15.高新口径研发费用辅助账"), year, finalArchiveAttach.getD9());
+			}
+			if (finalTypes.contains(16)) {
+				//16 加计扣除口径研发费用辅助账:对外报表-加计扣除口径研发费用报表-加计扣除-研发支出辅助账
+				generateD16(Paths.get(basePath.toString(), "16.加计扣除口径研发费用辅助账"), year);
+			}
 		}));
 		}));
-
-		//17.会计口径研发费用附件凭证资料及相关说明:对外报表-会计加计扣除口径研发费用报表-会计-研发项目(见列表详细)
-		Path path17 = FileUtil.mkdir(Paths.get(basePath.toString(), "17.会计口径研发费用附件支撑资料及相关说明"));
-		try {
-			XmFinanceEntity dto2 = new XmFinanceEntity();
-			dto2.setYearAndMonth(year);
-			dto2.setType(1);
-			generateD17(path17, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
+		if (finalTypes.contains(17)) {
+			//17.会计口径研发费用附件凭证资料及相关说明:对外报表-会计加计扣除口径研发费用报表-会计-研发项目(见列表详细)
+			Path path17 = FileUtil.mkdir(Paths.get(basePath.toString(), "17.会计口径研发费用附件支撑资料及相关说明"));
+			try {
+				XmFinanceEntity dto2 = new XmFinanceEntity();
+				dto2.setYearAndMonth(year);
+				dto2.setType(1);
+				generateD17(path17, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
 		}
 		}
-
-		//18.高新研发费用附件凭证资料及相关说明:对外报表-高新口径研发费用报表-高新-研发项目(见列表详细)
-		Path path18 = FileUtil.mkdir(Paths.get(basePath.toString(), "18.高新研发费用附件支持资料及相关说明"));
-		try {
-			XmFinanceEntity dto2 = new XmFinanceEntity();
-			dto2.setYearAndMonth(year);
-			dto2.setType(2);
-			generateD17(path18, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
+		if (finalTypes.contains(18)) {
+			//18.高新研发费用附件凭证资料及相关说明:对外报表-高新口径研发费用报表-高新-研发项目(见列表详细)
+			Path path18 = FileUtil.mkdir(Paths.get(basePath.toString(), "18.高新研发费用附件支持资料及相关说明"));
+			try {
+				XmFinanceEntity dto2 = new XmFinanceEntity();
+				dto2.setYearAndMonth(year);
+				dto2.setType(2);
+				generateD17(path18, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
 		}
 		}
-
-		//19.加计扣除研发费用附件凭证资料及相关说明:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目(见列表详细)
-		Path path19 = FileUtil.mkdir(Paths.get(basePath.toString(), "19.加计扣除研发费用附件支撑资料及相关说明"));
-		try {
-			XmFinanceEntity dto2 = new XmFinanceEntity();
-			dto2.setYearAndMonth(year);
-			dto2.setType(3);
-			generateD17(path19, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
+		if (finalTypes.contains(19)) {
+			//19.加计扣除研发费用附件凭证资料及相关说明:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目(见列表详细)
+			Path path19 = FileUtil.mkdir(Paths.get(basePath.toString(), "19.加计扣除研发费用附件支撑资料及相关说明"));
+			try {
+				XmFinanceEntity dto2 = new XmFinanceEntity();
+				dto2.setYearAndMonth(year);
+				dto2.setType(3);
+				generateD17(path19, xmFinanceService.selectXmFinanceList(dto2), year, futureList);
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
+		}
+		if (finalTypes.contains(20)) {
+			futureList.add(CompletableFuture.runAsync(() -> {
+				RequestContextHolder.setRequestAttributes(requestAttributes);
+				//20.A107012研发费用加计扣除优惠明细表:A107012导出表
+				generateD20(Paths.get(basePath.toString(), "20.A107012研发费用加计扣除优惠明细表"), year);
+			}));
 		}
 		}
 		futureList.add(CompletableFuture.runAsync(() -> {
 		futureList.add(CompletableFuture.runAsync(() -> {
 			RequestContextHolder.setRequestAttributes(requestAttributes);
 			RequestContextHolder.setRequestAttributes(requestAttributes);
-			//20.A107012研发费用加计扣除优惠明细表:A107012导出表
-			generateD20(Paths.get(basePath.toString(), "20.A107012研发费用加计扣除优惠明细表"), year);
-		}));
-		futureList.add(CompletableFuture.runAsync(() -> {
-			RequestContextHolder.setRequestAttributes(requestAttributes);
-			//21.当年和前两个会计年度研发费用总额及占同期销售收入比例的说明:附件补充
-			Path path21 = FileUtil.mkdir(Paths.get(basePath.toString(), "21.当年和前两个会计年度研发费用总额及占同期销售收入比例的说明"));
-			this.downloadAttachFiles(path21, Collections.singletonList(finalArchiveAttach.getD7()));
-			//22.年度主要产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》规定范围的说明:附件补充
-			Path path22 = FileUtil.mkdir(Paths.get(basePath.toString(), "22.年度主要产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》规定范围的说明"));
-			this.downloadAttachFiles(path22, Collections.singletonList(finalArchiveAttach.getD4()));
-			//23.高新技术产品(服务)及对应收入资料:附件补充
-			Path path23 = FileUtil.mkdir(Paths.get(basePath.toString(), "23.高新技术产品(服务)及对应收入资料"));
-			this.downloadAttachFiles(path23, Collections.singletonList(finalArchiveAttach.getD5()));
-			//24.研发管理制度:附件补充
-			Path path24 = FileUtil.mkdir(Paths.get(basePath.toString(), "24.研发管理制度"));
-			this.downloadAttachFiles(path24, Collections.singletonList(finalArchiveAttach.getD8()));
-			//25.高新项目技术鉴定资料:附件补充
-			Path path25 = FileUtil.mkdir(Paths.get(basePath.toString(), "25.高新项目技术鉴定资料"));
-			this.downloadAttachFiles(path25, Collections.singletonList(finalArchiveAttach.getD1()));
-			//26.加计扣除项目技术鉴定资料:附件补充
-			Path path26 = FileUtil.mkdir(Paths.get(basePath.toString(), "26.加计扣除项目技术鉴定资料"));
-			this.downloadAttachFiles(path26, Collections.singletonList(finalArchiveAttach.getD2()));
-			//27.其他高新备查资料:附件补充
-			Path path27 = FileUtil.mkdir(Paths.get(basePath.toString(), "27.其他高新备查资料"));
-			this.downloadAttachFiles(path27, Collections.singletonList(finalArchiveAttach.getD11()));
+			if (finalTypes.contains(21)) {
+				//21.当年和前两个会计年度研发费用总额及占同期销售收入比例的说明:附件补充
+				Path path21 = FileUtil.mkdir(Paths.get(basePath.toString(), "21.当年和前两个会计年度研发费用总额及占同期销售收入比例的说明"));
+				this.downloadAttachFiles(path21, Collections.singletonList(finalArchiveAttach.getD7()));
+			}
+			if (finalTypes.contains(22)) {
+				//22.年度主要产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》规定范围的说明:附件补充
+				Path path22 = FileUtil.mkdir(Paths.get(basePath.toString(), "22.年度主要产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》规定范围的说明"));
+				this.downloadAttachFiles(path22, Collections.singletonList(finalArchiveAttach.getD4()));
+			}
+			if (finalTypes.contains(23)) {
+				//23.高新技术产品(服务)及对应收入资料:附件补充
+				Path path23 = FileUtil.mkdir(Paths.get(basePath.toString(), "23.高新技术产品(服务)及对应收入资料"));
+				this.downloadAttachFiles(path23, Collections.singletonList(finalArchiveAttach.getD5()));
+			}
+			if (finalTypes.contains(24)) {
+				//24.研发管理制度:附件补充
+				Path path24 = FileUtil.mkdir(Paths.get(basePath.toString(), "24.研发管理制度"));
+				this.downloadAttachFiles(path24, Collections.singletonList(finalArchiveAttach.getD8()));
+			}
+			if (finalTypes.contains(25)) {
+				//25.高新项目技术鉴定资料:附件补充
+				Path path25 = FileUtil.mkdir(Paths.get(basePath.toString(), "25.高新项目技术鉴定资料"));
+				this.downloadAttachFiles(path25, Collections.singletonList(finalArchiveAttach.getD1()));
+			}
+			if (finalTypes.contains(26)) {
+				//26.加计扣除项目技术鉴定资料:附件补充
+				Path path26 = FileUtil.mkdir(Paths.get(basePath.toString(), "26.加计扣除项目技术鉴定资料"));
+				this.downloadAttachFiles(path26, Collections.singletonList(finalArchiveAttach.getD2()));
+			}
+			if (finalTypes.contains(27)) {
+				//27.其他高新备查资料:附件补充
+				Path path27 = FileUtil.mkdir(Paths.get(basePath.toString(), "27.其他高新备查资料"));
+				this.downloadAttachFiles(path27, Collections.singletonList(finalArchiveAttach.getD11()));
+			}
+			if (finalTypes.contains(28)) {
 			//28.其他加计扣除备查资料:附件补充
 			//28.其他加计扣除备查资料:附件补充
 			Path path28 = FileUtil.mkdir(Paths.get(basePath.toString(), "28.其他加计扣除备查资料"));
 			Path path28 = FileUtil.mkdir(Paths.get(basePath.toString(), "28.其他加计扣除备查资料"));
 			this.downloadAttachFiles(path28, Collections.singletonList(finalArchiveAttach.getD12()));
 			this.downloadAttachFiles(path28, Collections.singletonList(finalArchiveAttach.getD12()));
+			}
 		}));
 		}));
-		CompletableFuture.allOf(futureList.toArray(new CompletableFuture[futureList.size()])).join();
+		CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join();
 		log.info("一键导出耗时:{}", (new Date().getTime() - date.getTime()) / 1000 + "秒");
 		log.info("一键导出耗时:{}", (new Date().getTime() - date.getTime()) / 1000 + "秒");
 		//设置任务状态为 已完成
 		//设置任务状态为 已完成
 		task.setStatus(2);
 		task.setStatus(2);
@@ -488,14 +512,6 @@ public class ArchiveServiceImpl implements IArchiveService {
 		downloadTaskMapper.updateById(task);
 		downloadTaskMapper.updateById(task);
 	}
 	}
 
 
-	private void downloadHighTechZipFiles(DownloadTask task) {
-
-	}
-
-	private void downloadDeductionZipFiles(DownloadTask task) {
-
-	}
-
 	private void generateD17(Path path, List<XmFinanceEntity> list, String year, List<CompletableFuture<Void>> futureList) {
 	private void generateD17(Path path, List<XmFinanceEntity> list, String year, List<CompletableFuture<Void>> futureList) {
 		RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
 		RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
 		for (XmFinanceEntity xm : list) {
 		for (XmFinanceEntity xm : list) {