|
|
@@ -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);
|
|
|
} else if (task.getType() == 1) {
|
|
|
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 {
|
|
|
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();
|
|
|
|
|
|
@@ -312,36 +312,36 @@ public class ArchiveServiceImpl implements IArchiveService {
|
|
|
List<Integer> finalTypes = types;
|
|
|
futureList.add(CompletableFuture.runAsync(() -> {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
- if(finalTypes.contains(1)){
|
|
|
+ if (finalTypes.contains(1)) {
|
|
|
//1 高新技术企业资格证书:基础资源管理-企业基本信息-高企证书上传(按年度)。未上传则为空
|
|
|
generateD1(Paths.get(basePath.toString(), "1.高新技术企业资格证书"), year);
|
|
|
}
|
|
|
- if(finalTypes.contains(2)) {
|
|
|
+ if (finalTypes.contains(2)) {
|
|
|
//2 高新技术企业认定资料:附件补充
|
|
|
Path path2 = FileUtil.mkdir(Paths.get(basePath.toString(), "2.高新技术企业认定资料"));
|
|
|
this.downloadAttachFiles(path2, Collections.singletonList(finalArchiveAttach.getD3()));
|
|
|
}
|
|
|
- if(finalTypes.contains(2)){
|
|
|
+ if (finalTypes.contains(3)) {
|
|
|
//3 加计扣除情况说明:附件补充
|
|
|
Path path3 = FileUtil.mkdir(Paths.get(basePath.toString(), "3.加计扣除情况说明"));
|
|
|
this.downloadAttachFiles(path3, Collections.singletonList(finalArchiveAttach.getD10()));
|
|
|
}
|
|
|
- if(finalTypes.contains(2)){
|
|
|
+ if (finalTypes.contains(4)) {
|
|
|
//4 研发立项决议文件:附件补充
|
|
|
Path path4 = FileUtil.mkdir(Paths.get(basePath.toString(), "4.研发立项决议文件"));
|
|
|
this.downloadAttachFiles(path4, Collections.singletonList(finalArchiveAttach.getD13()));
|
|
|
}
|
|
|
- if(finalTypes.contains(2)){
|
|
|
+ if (finalTypes.contains(5)) {
|
|
|
//5 高新研发项目汇总表:对外报表-高新口径研发费用报表-高新-研发项目清单表
|
|
|
generateD5(Paths.get(basePath.toString(), "5.高新研发项目汇总表"), year, 2);
|
|
|
}
|
|
|
- if(finalTypes.contains(2)){
|
|
|
+ if (finalTypes.contains(6)) {
|
|
|
//6 加计扣除研发项目汇总表:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单表
|
|
|
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.高新研发项目全套技术资料"));
|
|
|
XmFinanceEntity dto = new XmFinanceEntity();
|
|
|
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.加计扣除研发项目全套技术资料"));
|
|
|
XmFinanceEntity dto = new XmFinanceEntity();
|
|
|
dto.setYearAndMonth(year);
|
|
|
@@ -375,11 +375,11 @@ public class ArchiveServiceImpl implements IArchiveService {
|
|
|
|
|
|
futureList.add(CompletableFuture.runAsync(() -> {
|
|
|
RequestContextHolder.setRequestAttributes(requestAttributes);
|
|
|
- if(finalTypes.contains(9)){
|
|
|
+ if (finalTypes.contains(9)) {
|
|
|
//9 高新研发人员与科技人员资料:改成高新科技人员资料:即科技人员管理-年高新科技人员汇总表资料表,选出:对外报表-高新口径研发费用报表-高新-研发项目清单中项目人员汇总
|
|
|
generateD9(Paths.get(basePath.toString(), "9.高新科技人员资料"), year, finalArchiveAttach.getD6());
|
|
|
}
|
|
|
- if(finalTypes.contains(10)){
|
|
|
+ if (finalTypes.contains(10)) {
|
|
|
//10 加计扣除研发人员与科技人员资料:改成加计扣除项目科研人员资料:即科技人员管理-项目人员汇总表,选出:对外报表-加计扣除口径研发费用报表-加计扣除-研发项目清单中项目人员汇总
|
|
|
generateD10(Paths.get(basePath.toString(), "10.加计扣除项目科研人员资料"), year);
|
|
|
}
|
|
|
@@ -387,99 +387,123 @@ public class ArchiveServiceImpl implements IArchiveService {
|
|
|
|
|
|
futureList.add(CompletableFuture.runAsync(() -> {
|
|
|
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(() -> {
|
|
|
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(() -> {
|
|
|
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.其他加计扣除备查资料:附件补充
|
|
|
Path path28 = FileUtil.mkdir(Paths.get(basePath.toString(), "28.其他加计扣除备查资料"));
|
|
|
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 + "秒");
|
|
|
//设置任务状态为 已完成
|
|
|
task.setStatus(2);
|
|
|
@@ -488,14 +512,6 @@ public class ArchiveServiceImpl implements IArchiveService {
|
|
|
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) {
|
|
|
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
|
|
for (XmFinanceEntity xm : list) {
|