Parcourir la source

init: init project step4: biz code support

shc il y a 1 an
Parent
commit
84033cdf1c
100 fichiers modifiés avec 3328 ajouts et 0 suppressions
  1. 31 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/HnqzReportApplication.java
  2. 45 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/ReportExportController.java
  3. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/CRO_evidence_dynamic_upload_template.xlsx
  4. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_score_package_template.xlsx
  5. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_user_template.xlsx
  6. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_user_template_v2.xlsx
  7. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1-1.docx
  8. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1-1_pushi.docx
  9. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1.docx
  10. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11-1.docx
  11. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11-1_pushi.docx
  12. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11.docx
  13. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_guangshengtang.docx
  14. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_jinpai.docx
  15. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_pushi.docx
  16. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review.docx
  17. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_guangshengtang.docx
  18. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_jinpai.docx
  19. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_pushi.docx
  20. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1.docx
  21. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_invest_manager.docx
  22. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_pushi.docx
  23. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_pushi_invest_manager.docx
  24. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1docx.docx
  25. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12.docx
  26. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_invest_manager.docx
  27. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_pushi.docx
  28. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_pushi_invest_manager.docx
  29. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_pushi.docx
  30. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_review.docx
  31. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_review_pushi.docx
  32. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template2-1.docx
  33. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template2.docx
  34. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template21.docx
  35. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template3.docx
  36. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template_hcp.docx
  37. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/drugEnt.xlsx
  38. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/review_task_summary_template.xlsx
  39. BIN
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/task_summary_template.xlsx
  40. 20 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/ExcelNbaQueueEvent.java
  41. 20 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/NbQueueEvent.java
  42. 20 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/NbaQueueEvent.java
  43. 90 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/ExcelNbaQueueEventListener.java
  44. 90 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/NbQueueEventListener.java
  45. 90 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/NbaQueueEventListener.java
  46. 20 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/ReportHandlerDeptRelationMapper.java
  47. 54 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysDeptMapper.java
  48. 17 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysDictItemMapper.java
  49. 18 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysFileMapper.java
  50. 26 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysUserMapper.java
  51. 18 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmDaDrugEntDrugtableMapper.java
  52. 17 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmDaDrugEntMapper.java
  53. 18 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmReportExportRecordMapper.java
  54. 22 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmReportMapper.java
  55. 15 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageMapper.java
  56. 14 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageSettleNoteMapper.java
  57. 17 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageStatusMapper.java
  58. 18 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskContentConfigMapper.java
  59. 16 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskContentMapper.java
  60. 168 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskMapper.java
  61. 16 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskTypeMapper.java
  62. 13 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmUserSignDetailMapper.java
  63. 18 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmUserSignMapper.java
  64. 96 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbReceiver.java
  65. 78 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbReviewReceiver.java
  66. 104 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbaHistoryReceiver.java
  67. 50 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbaReceiver.java
  68. 98 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportReceiver.java
  69. 83 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportReviewReceiver.java
  70. 86 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewDrugEntReportExportReceiver.java
  71. 85 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewExcelCommonReportExportReceiver.java
  72. 86 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewPersonalReportExportReceiver.java
  73. 49 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbReceiver.java
  74. 96 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbReviewReceiver.java
  75. 104 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbaHistoryReceiver.java
  76. 50 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbaReceiver.java
  77. 101 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportReceiver.java
  78. 103 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportZbReviewReceiver.java
  79. 59 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ExcelReportExportService.java
  80. 23 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/NewReportService.java
  81. 29 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportForGuangshengtangService.java
  82. 64 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportForPushiService.java
  83. 68 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportService.java
  84. 50 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportHandlerDeptRelationService.java
  85. 23 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysDeptService.java
  86. 31 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysFileService.java
  87. 14 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysUserService.java
  88. 24 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmDaDrugEntDrugtableService.java
  89. 15 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmDaDrugEntService.java
  90. 17 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmReportExportRecordService.java
  91. 21 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmReportService.java
  92. 15 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmScorePackageService.java
  93. 34 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmScorePackageStatusService.java
  94. 14 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskContentConfigService.java
  95. 14 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskContentService.java
  96. 30 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskService.java
  97. 15 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskTypeService.java
  98. 14 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmUserSignDetailService.java
  99. 23 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmUserSignService.java
  100. 551 0
      hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ExcelReportExportServiceImpl.java

+ 31 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/HnqzReportApplication.java

@@ -0,0 +1,31 @@
+package com.qunzhixinxi.hnqz.report;
+
+import com.qunzhixinxi.hnqz.common.feign.annotation.EnableHnqzFeignClients;
+import com.qunzhixinxi.hnqz.common.security.annotation.EnableHnqzResourceServer;
+import lombok.AllArgsConstructor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.retry.annotation.EnableRetry;
+
+/**
+ * 启动类
+ *
+ * @author hnqz
+ * @author hengchen.sun modify on 2021.06.15 enable retry
+ * @date 2018年06月21日
+ * 用户统一管理系统
+ */
+@SpringCloudApplication
+@EnableHnqzFeignClients
+@EnableHnqzResourceServer
+@EnableRetry
+@MapperScan(value = {"com.qunzhixinxi.hnqz.report.mapper"})
+public class HnqzReportApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(HnqzReportApplication.class, args);
+    }
+
+}

+ 45 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/ReportExportController.java

@@ -0,0 +1,45 @@
+package com.qunzhixinxi.hnqz.report.controller;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.WmTaskService;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+/**
+ * <p>
+ * 报告审核导出
+ * </p>
+ */
+@Slf4j
+@RestController
+@AllArgsConstructor
+@RequestMapping("/reportExport")
+public class ReportExportController {
+
+    private final ReportExportService reportExportService;
+    private final WmTaskService wmTaskService;
+
+    /**
+     * 个人报告导出--导出汇总或详情  汇总和详情合为一个模版
+     *
+     * @param wmTask
+     * @return
+     * @throws IOException
+     */
+    @GetMapping("/exportZbReport")
+    public R exportZbReport(WmTask wmTask) throws IOException {
+
+        return reportExportService.newExportZb(wmTask, null);//报告汇总
+
+
+    }
+
+
+}

BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/CRO_evidence_dynamic_upload_template.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_score_package_template.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_user_template.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/batch_create_user_template_v2.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1-1.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1-1_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11-1.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11-1_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_guangshengtang.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_jinpai.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_guangshengtang.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_jinpai.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template11_review_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_invest_manager.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1_pushi_invest_manager.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12-1docx.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_invest_manager.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template12_pushi_invest_manager.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_review.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template1_review_pushi.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template2-1.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template2.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template21.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template3.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/doc_template_hcp.docx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/drugEnt.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/review_task_summary_template.xlsx


BIN
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/controller/excel/task_summary_template.xlsx


+ 20 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/ExcelNbaQueueEvent.java

@@ -0,0 +1,20 @@
+package com.qunzhixinxi.hnqz.report.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * NBA队列事件
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-03-17 21:12
+ */
+@Getter
+@AllArgsConstructor
+public class ExcelNbaQueueEvent {
+
+    String requestBody;
+    String username;
+    Integer deptId;
+}

+ 20 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/NbQueueEvent.java

@@ -0,0 +1,20 @@
+package com.qunzhixinxi.hnqz.report.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * NB队列事件
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-06-29 11:35
+ */
+@Getter
+@AllArgsConstructor
+public class NbQueueEvent {
+
+    String requestBody;
+    String username;
+    Integer deptId;
+}

+ 20 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/event/NbaQueueEvent.java

@@ -0,0 +1,20 @@
+package com.qunzhixinxi.hnqz.report.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * NBA队列事件
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-03-17 21:12
+ */
+@Getter
+@AllArgsConstructor
+public class NbaQueueEvent {
+
+    String requestBody;
+    String username;
+    Integer deptId;
+}

+ 90 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/ExcelNbaQueueEventListener.java

@@ -0,0 +1,90 @@
+package com.qunzhixinxi.hnqz.report.listener;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.report.event.ExcelNbaQueueEvent;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * NBA事件监听
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-03-17 21:12
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+public class ExcelNbaQueueEventListener {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+    private final StringRedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+
+    @Order
+    @Async("taskExecutor")
+    @EventListener(ExcelNbaQueueEvent.class)
+    public void handleNbaQueueEvent(ExcelNbaQueueEvent event) {
+
+        log.info("++++++ 异步处理Excel Nba Queue操作记录[START] ++++++");
+
+        //业务处理
+        String requestBody = event.getRequestBody();
+        String username = event.getUsername();
+        Integer deptId = event.getDeptId();
+        WmScorePackage wmScorePackage = JSONUtil.toBean(requestBody, WmScorePackage.class);
+        String key = String.format(CacheConstants.EXCEL_EXPORT_NBA_REPORT_CACHE, wmScorePackage.getId());
+        String resStr = "ERROR_未知错误,请联系管理员";
+
+
+        try {
+            // 根据企业获取对应报告处理类
+            ExcelReportExportService reportExportService =
+                    reportHandlerDeptRelationService.getExcelHandlerClass(ReportTypeEnum.EXCEL_NBA.getType(), deptId);
+
+            R r = reportExportService.newExportNba(wmScorePackage, deptId, username);
+
+            if (r.getCode() == CommonConstants.SUCCESS) {
+                // url
+                Map<String, String> data = (Map<String, String>) r.getData();
+                log.info("result-map:{}", data);
+                resStr = data.get("url");
+            } else {
+                // error msg
+                resStr = r.getMsg();
+            }
+
+        } catch (Exception e) {
+            log.error("异步处理Nba Queue操作记录失败", e);
+            e.printStackTrace();
+        } finally {
+            Map<String, String> res = new HashMap<>(2);
+            res.put("key", key);
+            res.put("res", resStr);
+            log.info("异步处理Nba Queue操作记录结果:{}", res);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+        }
+
+        log.info("++++++ 异步处理 Excel Nba Queue操作记录[END] ++++++");
+    }
+}

+ 90 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/NbQueueEventListener.java

@@ -0,0 +1,90 @@
+package com.qunzhixinxi.hnqz.report.listener;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.report.event.NbQueueEvent;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * NB事件监听
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-06-29 11:35
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+public class NbQueueEventListener {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+    private final StringRedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+
+    @Order
+    @Async("taskExecutor")
+    @EventListener(NbQueueEvent.class)
+    public void handleNbaQueueEvent(NbQueueEvent event) {
+
+        log.info("++++++ 异步处理Nb Queue操作记录[START] ++++++");
+
+        //业务处理
+        String requestBody = event.getRequestBody();
+        String username = event.getUsername();
+        Integer deptId = event.getDeptId();
+        WmReport wmReport = JSONUtil.toBean(requestBody, WmReport.class);
+        String key = String.format(CacheConstants.EXPORT_NB_REPORT_CACHE, wmReport.getId());
+        String resStr = "ERROR_未知错误,请联系管理员";
+
+        try {
+            // 根据企业获取对应报告处理类
+            ReportExportService reportExportService =
+                    reportHandlerDeptRelationService.getHandlerClass(ReportTypeEnum.NB.getType(), deptId);
+
+
+            R r = reportExportService.newExportNb(wmReport, deptId, username);
+
+            if (r.getCode() == CommonConstants.SUCCESS) {
+                // url
+                Map<String, String> data = (Map<String, String>) r.getData();
+                log.info("result-map:{}", data);
+                resStr = data.get("url");
+            } else {
+                // error msg
+                resStr = r.getMsg();
+            }
+
+        } catch (Exception e) {
+            log.error("异步处理Nb Queue操作记录失败", e);
+            e.printStackTrace();
+        } finally {
+            Map<String, String> res = new HashMap<>(2);
+            res.put("key", key);
+            res.put("res", resStr);
+            log.info("异步处理Nb Queue操作记录结果:{}", res);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+        }
+
+        log.info("++++++ 异步处理Nb Queue操作记录[END] ++++++");
+    }
+}

+ 90 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/listener/NbaQueueEventListener.java

@@ -0,0 +1,90 @@
+package com.qunzhixinxi.hnqz.report.listener;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.report.event.NbaQueueEvent;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * NBA事件监听
+ *
+ * @author jimmy
+ * @version 1.0.0
+ * @date 2023-03-17 21:12
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+public class NbaQueueEventListener {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+    private final StringRedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+
+    @Order
+    @Async("taskExecutor")
+    @EventListener(NbaQueueEvent.class)
+    public void handleNbaQueueEvent(NbaQueueEvent event) {
+
+        log.info("++++++ 异步处理Nba Queue操作记录[START] ++++++");
+
+        //业务处理
+        String requestBody = event.getRequestBody();
+        String username = event.getUsername();
+        Integer deptId = event.getDeptId();
+        WmScorePackage wmScorePackage = JSONUtil.toBean(requestBody, WmScorePackage.class);
+        String key = String.format(CacheConstants.EXPORT_NBA_REPORT_CACHE, wmScorePackage.getId());
+        String resStr = "ERROR_未知错误,请联系管理员";
+
+        try {
+            // 根据企业获取对应报告处理类
+            ReportExportService reportExportService =
+                    reportHandlerDeptRelationService.getHandlerClass(ReportTypeEnum.NBA.getType(), deptId);
+
+
+            R r = reportExportService.newExportNba(wmScorePackage, deptId, username);
+
+            if (r.getCode() == CommonConstants.SUCCESS) {
+                // url
+                Map<String, String> data = (Map<String, String>) r.getData();
+                log.info("result-map:{}", data);
+                resStr = data.get("url");
+            } else {
+                // error msg
+                resStr = r.getMsg();
+            }
+
+        } catch (Exception e) {
+            log.error("异步处理Nba Queue操作记录失败", e);
+            e.printStackTrace();
+        } finally {
+            Map<String, String> res = new HashMap<>(2);
+            res.put("key", key);
+            res.put("res", resStr);
+            log.info("异步处理Nba Queue操作记录结果:{}", res);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+        }
+
+        log.info("++++++ 异步处理Nba Queue操作记录[END] ++++++");
+    }
+}

+ 20 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/ReportHandlerDeptRelationMapper.java

@@ -0,0 +1,20 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.ReportHandlerDeptRelation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author lixuesong
+ * @description 针对表【report_handler_dept_relation(导出报告处理类和企业关系表)】的数据库操作Mapper
+ * @createDate 2022-11-25 09:01:19
+ * @Entity com.qunzhixinxi.hnqz.admin.entity.ReportHandlerDeptRelation
+ */
+@Mapper
+public interface ReportHandlerDeptRelationMapper extends BaseMapper<ReportHandlerDeptRelation> {
+
+}
+
+
+
+

+ 54 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysDeptMapper.java

@@ -0,0 +1,54 @@
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 部门管理 Mapper 接口
+ * </p>
+ *
+ * @author hnqz
+ * @since 2018-01-20
+ */
+@Mapper
+public interface SysDeptMapper extends BaseMapper<SysDept> {
+	List<SysDept> selectDeptList(@Param("query") SysDept sysDept);
+
+	List<SysDept> selectListByDept(@Param("query") SysDept sysDept);
+
+	List<SysDept> selectDeptByIds(@Param("query") SysDept sysDept);
+
+	List<SysDept> getAllParentDept(@Param("query") SysDept sysDept);
+
+	SysDept selectDistinctDeptId(@Param("query") SysDept sysDept);
+
+	List<SysDept> selectDeptByName(@Param("query")SysDept sysDept);
+
+	List<Map<String,Object>> selectDeptById(@Param("query") SysDept sysDept);
+
+	List<SysDept> selectByName(String entname);
+
+
+	String selectEntCodeByLevelId(@Param(value = "levelId") long levelId,
+								  @Param(value = "level") int level);
+
+	/**
+	 * 修改名称 结算渠道
+	 */
+	void updateByPrimaryKeySelective(SysDept sysDept);
+
+	SysDept selectDept(SysDept sysDept);
+
+	List<SysDept> getParentDept(@Param("query") SysDept sysDept);
+
+	List getDeptConvertToName();
+
+	List getChildDept(@Param("query") SysDept sysDept);
+}

+ 17 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysDictItemMapper.java

@@ -0,0 +1,17 @@
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 字典项
+ *
+ * @author hnqz
+ * @date 2019/03/19
+ */
+@Mapper
+public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
+
+}

+ 18 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysFileMapper.java

@@ -0,0 +1,18 @@
+
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 文件管理
+ *
+ * @author Luckly
+ * @date 2019-06-18 17:18:42
+ */
+@Mapper
+public interface SysFileMapper extends BaseMapper<SysFile> {
+
+}

+ 26 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/SysUserMapper.java

@@ -0,0 +1,26 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * <p>
+ * 用户表 Mapper 接口
+ * </p>
+ *
+ * @author hnqz
+ * @since 2017-10-29
+ */
+@Mapper
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+	/**
+	 * 忽略逻辑删除
+	 * 查询数据库的用户信息(包含已逻辑删除的数据) del_flag = 0
+	 * @param id
+	 * @return
+	 */
+	SysUser getByIdIgnore(String id);
+}

+ 18 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmDaDrugEntDrugtableMapper.java

@@ -0,0 +1,18 @@
+
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 档案-药企药品
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+@Mapper
+public interface WmDaDrugEntDrugtableMapper extends BaseMapper<WmDaDrugEntDrugtable> {
+
+}

+ 17 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmDaDrugEntMapper.java

@@ -0,0 +1,17 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
+import org.apache.ibatis.annotations.Mapper;
+;
+
+/**
+ * 档案-药企
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+@Mapper
+public interface WmDaDrugEntMapper extends BaseMapper<WmDaDrugEnt> {
+
+}

+ 18 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmReportExportRecordMapper.java

@@ -0,0 +1,18 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReportExportRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * {@code WmReportExportRecordMapper}
+ * <p>
+ * 报告导出mapper
+ *
+ * @author Hengchen.Sun
+ * @version 1.0.0
+ * @date 2021/12/09 16:27
+ */
+@Mapper
+public interface WmReportExportRecordMapper extends BaseMapper<WmReportExportRecord> {
+}

+ 22 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmReportMapper.java

@@ -0,0 +1,22 @@
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 报告审核表
+ *
+ * @author pigx code generator
+ * @date 2020-12-21 20:57:26
+ */
+@Mapper
+public interface WmReportMapper extends BaseMapper<WmReport> {
+	IPage<WmReport> getReportListPage(Page page, @Param("query") WmReport wmReport, @Param("queryScoreId")String scoreId, @Param("queryName")String name);
+
+
+}

+ 15 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageMapper.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 积分包
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+@Mapper
+public interface WmScorePackageMapper extends BaseMapper<WmScorePackage> {
+}

+ 14 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageSettleNoteMapper.java

@@ -0,0 +1,14 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageSettleNote;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author pigx code generator
+ * @date 2021-01-26 15:44:49
+ */
+@Mapper
+public interface WmScorePackageSettleNoteMapper extends BaseMapper<WmScorePackageSettleNote> {
+
+}

+ 17 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmScorePackageStatusMapper.java

@@ -0,0 +1,17 @@
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 积分包状态
+ *
+ * @author pigx code generator
+ * @date 2020-07-17 23:32:01
+ */
+@Mapper
+public interface WmScorePackageStatusMapper extends BaseMapper<WmScorePackageStatus> {
+
+}

+ 18 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskContentConfigMapper.java

@@ -0,0 +1,18 @@
+
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 任务内容字段配置
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+@Mapper
+public interface WmTaskContentConfigMapper extends BaseMapper<WmTaskContentConfig> {
+
+}

+ 16 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskContentMapper.java

@@ -0,0 +1,16 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 任务内容表
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+@Mapper
+public interface WmTaskContentMapper extends BaseMapper<WmTaskContent> {
+
+}

+ 168 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskMapper.java

@@ -0,0 +1,168 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 任务表
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+@Mapper
+public interface WmTaskMapper extends BaseMapper<WmTask> {
+	public IPage<WmTask> selectListByExtEnt(Page page, @Param("query") WmTask wmTask);
+
+	public IPage<WmTask> selectListByRelationScoreId(Page page, @Param("query") WmTask wmTask);
+
+	public List<WmTask> selectListByExtEntNoPage(@Param("query") WmTask wmTask);
+
+	public List<Map<String, Object>> selectZbCount(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIds(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIdsForJs(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIdsForJsUser(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIdsCount(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIdsAndUser(@Param("query") WmTask wmTask);
+
+	public List<Map<String,Object>> getTaskListByPackageIdsZd(@Param("query") WmTask wmTask);
+
+	public List<WmTask> getTaskListByPackageIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
+
+	List<WmTask> selectListByWmTask(@Param("query")WmScorePackage wmScorePackage);
+
+	public IPage<Map<String,Object>> getH5PackageList(Page page, @Param("query") WmTask wmTask);
+
+	public IPage<Map<String,Object>> getH5TaskList(Page page, @Param("query") WmTask wmTask);
+
+	List<Map<String, Object>> selectByWmTaskOne(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> selectByWmTaskSecond(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> selectByWmTaskDrug(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> selectByReportOneApprovalStatus(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> selectByReportSecondApprovalStatus(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> selectByReportDrugApprovalStatus(@Param("query") WmTask wmTask);
+
+	List<WmTask> selectByWmTaskId(@Param("query") WmTask wmTask);
+
+	int selectById(@Param("query") Long id);
+
+	WmTask selectByRealFlag(Integer id);
+
+	WmTask selectWmTaskById(@Param("query") WmTask wmTask);
+	List<Map<String, Object>> saveAndUpdateWmTask(@Param("query") WmTask wmTask, WmReport wmReport);
+
+	List<WmTask> selectListByIds(@Param("query") WmTask wmTask);
+
+	List<WmTask> selectListByScorePackageId(@Param("query") WmTask wmTask);
+
+	public Page<WmTask> selectList(Page page, QueryWrapper wrappers);
+
+	 List<WmTask> selectByTask(@Param("query") WmTask wmTask);
+
+
+	 List<Map<String,Object>> getTaskListByIdsCount(@Param("query") WmTask wmTask);
+
+	 List<Map<String,Object>> getTaskListByIds(@Param("query") WmTask wmTask);
+
+	List<Map<String,Object>> getTaskListByIdsOld(@Param("query") WmTask wmTask);
+
+
+	List<Map<String,Object>> getTaskListByIdsJs(@Param("query") WmTask wmTask);
+
+	 List<WmTask> getTaskListByIdsReturnWmtaskInfo(@Param("query") WmTask wmTask);
+
+	 List<Map<String,Object>> getTaskListByIdsZd(@Param("query") WmTask wmTask);
+
+	List<Map<String,Object>> getTaskListByIdsZdJs(@Param("query") WmTask wmTask);
+
+	 IPage<WmTask> getWmTaskList(Page page, @Param("query") WmTask wmTask);
+
+	List<Map<String,String>> PackageIsFinishByTask(@Param("query") WmTask wmTask);
+
+	Map<String, Timestamp> getMaxCreateTime(@Param("query") WmTask wmTask);
+
+	IPage<Map<String,Object>> selectSettleTask(Page page, @Param("query") WmTask wmTask);
+
+	/**
+	 * 查询用户审核中和审核通过的积分
+	 * @param userId 用户id
+	 * @param startTime 开始时间
+	 * @param endTime 截止时间
+	 * @return 任务积分值和
+	 */
+	int getUserTaskSubScore(@Param("userId")String userId, @Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
+
+	/**
+	 * 发包方审核时候只校验审核通过的分数
+	 * @param userId 用户id
+	 * @param startTime 开始时间
+	 * @param endTime 截止时间
+	 * @return 任务积分值和
+	 */
+	int newGetUserTaskSubScore(@Param("userId")String userId, @Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime);
+
+	/**
+	 * 患者教育-处方列表
+	 *
+	 * @param page 分页条件
+	 * @param scorePackageId 积分包id
+	 * @param prescriptionNo 处方单编号
+	 * @return 处方列表分页
+	 */
+	IPage<WmTask> listTaskPrescriptionPage(Page page, @Param("scorePackageId") String scorePackageId, @Param("prescriptionNo") String prescriptionNo);
+
+	/**
+	 * 患者教育-处方列表
+	 *
+	 * @param scorePackageId 积分包id
+	 * @param prescriptionNo 处方单编号
+	 * @return 处方列表
+	 */
+	List<WmTask> listTaskPrescription(@Param("scorePackageId") String scorePackageId, @Param("prescriptionNo") String prescriptionNo);
+
+	/**
+	 * 查询调查信息审核列表
+	 *
+	 * @param wmTask
+	 * @param startDate
+	 * @param endDate
+	 * @return
+	 */
+	IPage<WmTask> listInfoAudit(Page page, @Param("query") WmTask wmTask, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
+
+	/**
+	 * 查询同一家医院一个月做的任务
+	 *
+	 * @param hospitalId
+	 * @return
+	 */
+	List<WmTask> listCurrentMonthHospitalTask(@Param("hospitalId") String hospitalId);
+
+	/**
+	 * 查询会议任务个数
+	 *
+	 * @param taskTypeList 任务类型列表
+	 * @param taskUserId 用户id
+	 * @param startTime 会议时间范围-开始
+	 * @param endTime 会议时间范围-结束
+	 * @return 会议任务个数
+	 */
+	Long countMeetingTask(@Param("taskTypeList") List<String> taskTypeList, @Param("taskUserId") String taskUserId,
+						  @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
+}

+ 16 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmTaskTypeMapper.java

@@ -0,0 +1,16 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 任务类型打分表
+ *
+ * @author gaoyang
+ * @date 2020-07-01 20:20:05
+ */
+@Mapper
+public interface WmTaskTypeMapper extends BaseMapper<WmTaskType> {
+
+}

+ 13 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmUserSignDetailMapper.java

@@ -0,0 +1,13 @@
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSignDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author lixuesong
+ * @date 2022年01月18日 18:19
+ */
+@Mapper
+public interface WmUserSignDetailMapper extends BaseMapper<WmUserSignDetail> {
+}

+ 18 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mapper/WmUserSignMapper.java

@@ -0,0 +1,18 @@
+
+
+package com.qunzhixinxi.hnqz.report.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSign;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户签到表
+ *
+ * @author pigx code generator
+ * @date 2020-07-14 20:10:02
+ */
+@Mapper
+public interface WmUserSignMapper extends BaseMapper<WmUserSign> {
+
+}

+ 96 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbReceiver.java

@@ -0,0 +1,96 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_NB_QUEUE)
+@RabbitMqComponent(value = "excelNbReportExportReceiver")
+public class ExcelReportExportNbReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmReport wmReport = JSONUtil.toBean(requestBody, WmReport.class);
+            String key = String.format(CacheConstants.EXCEL_EXPORT_NB_REPORT_CACHE, wmReport.getId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ExcelReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getExcelHandlerClass(ReportTypeEnum.EXCEL_NB.getType(), deptId);
+
+                R r = reportExportService.newExportNb(wmReport, deptId, username);
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+            } catch (Exception e) {
+                log.error("excel_nb报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+                return res;
+            }
+        });
+    }
+
+}

+ 78 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbReviewReceiver.java

@@ -0,0 +1,78 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_NB_REVIEW_QUEUE)
+@RabbitMqComponent(value = "excelReportExportNbReviewReceiver")
+public class ExcelReportExportNbReviewReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nb待审核报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+            WmReport wmReport = JSONUtil.toBean(requestBody, WmReport.class);
+            String key = String.format(CacheConstants.EXCEL_EXPORT_NB_REVIEW_REPORT_CACHE, wmReport.getId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ExcelReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getExcelReviewHandlerClass(ReportTypeEnum.EXCEL_NB_REVIEW.getType(), deptId);
+
+                R r = reportExportService.newExportNb(wmReport, deptId, username);
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+                }
+            } catch (Exception e) {
+                log.error("excel_nb报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+                return res;
+            }
+        });
+    }
+
+}

+ 104 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbaHistoryReceiver.java

@@ -0,0 +1,104 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_NBA_HISTORY_QUEUE)
+@RabbitMqComponent(value = "excelNbaReportHistoryExportReceiver")
+public class ExcelReportExportNbaHistoryReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:nba-history报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmScorePackage wmScorePackage = JSONUtil.toBean(requestBody, WmScorePackage.class);
+            String key = String.format(CacheConstants.EXCEL_EXPORT_NBA_HISTORY_REPORT_CACHE, wmScorePackage.getId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+
+
+            try {
+                // 根据企业获取对应报告处理类
+                ExcelReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getExcelHandlerClass(ReportTypeEnum.EXCEL_NBA.getType(), deptId);
+
+                R r = reportExportService.newExportNbaHistory(wmScorePackage, deptId, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS) {
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+
+            } catch (Exception e) {
+                log.error("excel_nba_history报告导出异常", e);
+            } finally {
+                Map<String, String> res = new HashMap<>(2);
+                res.put("key", key);
+                res.put("res", resStr);
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+
+                return res;
+            }
+
+        });
+    }
+
+}

+ 50 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportNbaReceiver.java

@@ -0,0 +1,50 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.event.ExcelNbaQueueEvent;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_NBA_QUEUE)
+@RabbitMqComponent(value = "excelNbaReportExportReceiver")
+public class ExcelReportExportNbaReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ApplicationEventPublisher publisher;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nba报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+
+
+            publisher.publishEvent(new ExcelNbaQueueEvent(requestBody, username, deptId));
+
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", "success");
+            return res;
+        });
+    }
+}

+ 98 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportReceiver.java

@@ -0,0 +1,98 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_ZB_QUEUE)
+@RabbitMqComponent(value = "excelReportExportReceiver")
+public class ExcelReportExportReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:zb excel报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = map.get("deptId");
+
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmTask wmTask = JSONUtil.toBean(requestBody, WmTask.class);
+            String key = String.format(CacheConstants.EXCEL_EXPORT_ZB_REPORT_CACHE, wmTask.getScorePackageDrugId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ExcelReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getExcelHandlerClass(ReportTypeEnum.EXCEL_ZB.getType(), deptId);
+
+                R r = reportExportService.newExportZb(wmTask, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+            } catch (Exception e) {
+                log.error("excel_zb报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+
+                return res;
+            }
+        });
+    }
+
+
+}

+ 83 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ExcelReportExportReviewReceiver.java

@@ -0,0 +1,83 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_EXCEL_REPORT_EXPORT_ZB_REVIEW_QUEUE)
+@RabbitMqComponent(value = "excelReportExportReviewReceiver")
+public class ExcelReportExportReviewReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:zb excel待审核报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = map.get("deptId");
+
+            WmTask wmTask = JSONUtil.toBean(requestBody, WmTask.class);
+            String key = String.format(CacheConstants.EXCEL_EXPORT_ZB_REVIEW_REPORT_CACHE, wmTask.getScorePackageDrugId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ExcelReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getExcelReviewHandlerClass(ReportTypeEnum.EXCEL_ZB_REVIEW.getType(), deptId);
+
+                R r = reportExportService.newExportZb(wmTask, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+                }
+            } catch (Exception e) {
+                log.error("excel_zb报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+
+                return res;
+            }
+        });
+    }
+
+
+}

+ 86 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewDrugEntReportExportReceiver.java

@@ -0,0 +1,86 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.service.NewReportService;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.messaging.handler.annotation.Header;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 新版企业报告导出队列监听器
+ *
+ * @author lixuesong
+ * @date 2023/12/13
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_NEW_DRUG_ENT_REPORT_EXPORT_QUEUE)
+@RabbitMqComponent(value = "newDrugEntReportExportReceiver")
+public class NewDrugEntReportExportReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    @Resource(name = "newDrugEntReportServiceImpl")
+    private NewReportService newReportService;
+    private final RedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:新版企业报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+
+            String key = null;
+            String resStr = null;
+            try {
+                String requestBody = map.get("requestBody").toString();
+
+                JSONObject bodyJson = JSONUtil.parseObj(requestBody);
+                String scorePackageId = bodyJson.getStr("id");
+                Integer deptId = bodyJson.getInt("deptId");
+                String taskStatus = bodyJson.getStr("taskStatus");
+
+                key = String.format(CacheConstants.NEW_DRUG_ENT_REPORT_CACHE, scorePackageId);
+
+                Map<String, String> nbaExportResult = newReportService.export(StrUtil.split(scorePackageId, ","), taskStatus, deptId);
+
+                if (CollUtil.isNotEmpty(nbaExportResult)) {
+                    resStr = nbaExportResult.get("url");
+                } else {
+                    resStr = "ERROR_未知错误,请联系管理员";
+                }
+
+            } catch (Exception e) {
+                log.error("新版企业报告导出异常", e);
+                resStr = "ERROR_" + e.getMessage();
+            }
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", resStr);
+            res.put("key", key);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+            return res;
+        });
+    }
+}

+ 85 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewExcelCommonReportExportReceiver.java

@@ -0,0 +1,85 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.service.NewReportService;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.messaging.handler.annotation.Header;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 新版excel通用报告导出队列监听器
+ *
+ * @author lixuesong
+ * @date 2023/12/13
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_NEW_EXCEL_COMMON_REPORT_EXPORT_QUEUE)
+@RabbitMqComponent(value = "newExcelCommonReportExportReceiver")
+public class NewExcelCommonReportExportReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    @Resource(name = "newCommonExcelReportServiceImpl")
+    private NewReportService newReportService;
+    private final RedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:新版excel报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+
+            String key = null;
+            String resStr = null;
+            try {
+                String requestBody = map.get("requestBody").toString();
+
+                JSONObject bodyJson = JSONUtil.parseObj(requestBody);
+                String scorePackageId = bodyJson.getStr("id");
+                String taskStatus = bodyJson.getStr("taskStatus");
+                Integer deptId = bodyJson.getInt("deptId");
+
+                key = String.format(CacheConstants.NEW_EXCEL_COMMON_REPORT_CACHE, scorePackageId);
+
+                Map<String, String> nbaExportResult = newReportService.export(StrUtil.split(scorePackageId, ","), taskStatus, deptId);
+                if (CollUtil.isNotEmpty(nbaExportResult)) {
+                    resStr = nbaExportResult.get("url");
+                } else {
+                    resStr = "ERROR_未知错误,请联系管理员";
+                }
+
+            } catch (Exception e) {
+                log.error("新版excel报告导出异常", e);
+                resStr = "ERROR_" + e.getMessage();
+            }
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", resStr);
+            res.put("key", key);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+            return res;
+        });
+    }
+}

+ 86 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/NewPersonalReportExportReceiver.java

@@ -0,0 +1,86 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.service.NewReportService;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.messaging.handler.annotation.Header;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 新版个人报告导出队列监听器
+ *
+ * @author lixuesong
+ * @date 2023/12/13
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_NEW_PERSONAL_REPORT_EXPORT_QUEUE)
+@RabbitMqComponent(value = "newPersonalReportExportReceiver")
+public class NewPersonalReportExportReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    @Resource(name = "newPersonalReportServiceImpl")
+    private NewReportService newReportService;
+    private final RedisTemplate redisTemplate;
+
+    private static final long DEF_REPORT_TTL = 7L * 24 * 60 * 60 * 1000;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:新版个人报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+
+            String key = null;
+            String resStr = null;
+            try {
+                String requestBody = map.get("requestBody").toString();
+
+                JSONObject bodyJson = JSONUtil.parseObj(requestBody);
+                String scorePackageId = bodyJson.getStr("id");
+                String taskStatus = bodyJson.getStr("taskStatus");
+                Integer deptId = bodyJson.getInt("deptId");
+
+                key = String.format(CacheConstants.NEW_PERSONAL_REPORT_CACHE, scorePackageId);
+
+                Map<String, String> nbaExportResult = newReportService.export(StrUtil.split(scorePackageId, ","), taskStatus, deptId);
+
+                if (CollUtil.isNotEmpty(nbaExportResult)) {
+                    resStr = nbaExportResult.get("url");
+                } else {
+                    resStr = "ERROR_未知错误,请联系管理员";
+                }
+
+            } catch (Exception e) {
+                log.error("新版个人报告导出异常", e);
+                resStr = "ERROR_" + e.getMessage();
+            }
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", resStr);
+            res.put("key", key);
+
+            redisTemplate.opsForValue().set(key, resStr, DEF_REPORT_TTL, TimeUnit.MILLISECONDS);
+
+            return res;
+        });
+    }
+}

+ 49 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbReceiver.java

@@ -0,0 +1,49 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.event.NbQueueEvent;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_NB_QUEUE)
+@RabbitMqComponent(value = "nbReportExportReceiver")
+public class ReportExportNbReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ApplicationEventPublisher publisher;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+
+            publisher.publishEvent(new NbQueueEvent(requestBody, username, deptId));
+
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", "success");
+            return res;
+        });
+    }
+}

+ 96 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbReviewReceiver.java

@@ -0,0 +1,96 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_NB_REVIEW_QUEUE)
+@RabbitMqComponent(value = "nbReviewReceiver")
+public class ReportExportNbReviewReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmReport wmReport = JSONUtil.toBean(requestBody, WmReport.class);
+            String key = String.format(CacheConstants.EXPORT_NB_REVIEW_REPORT_CACHE, wmReport.getId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getReviewHandlerClass(ReportTypeEnum.NB_REVIEW.getType(), deptId);
+
+                R r = reportExportService.newExportNb(wmReport, deptId, username);
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+            } catch (Exception e) {
+                log.error("nb_review报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+                return res;
+            }
+        });
+    }
+
+}

+ 104 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbaHistoryReceiver.java

@@ -0,0 +1,104 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_NBA_HISTORY_QUEUE)
+@RabbitMqComponent(value = "nbaReportHistoryExportReceiver")
+public class ReportExportNbaHistoryReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:nba-history报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmScorePackage wmScorePackage = JSONUtil.toBean(requestBody, WmScorePackage.class);
+            String key = String.format(CacheConstants.EXPORT_NBA_HISTORY_REPORT_CACHE, wmScorePackage.getId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+
+
+            try {
+                // 根据企业获取对应报告处理类
+                ReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getHandlerClass(ReportTypeEnum.NBA.getType(), deptId);
+
+                R r = reportExportService.newExportNbaHistory(wmScorePackage, deptId, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS) {
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+
+            } catch (Exception e) {
+                log.error("nba_history报告导出异常", e);
+            } finally {
+                Map<String, String> res = new HashMap<>(2);
+                res.put("key", key);
+                res.put("res", resStr);
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+
+                return res;
+            }
+
+        });
+    }
+
+}

+ 50 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportNbaReceiver.java

@@ -0,0 +1,50 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.report.event.NbaQueueEvent;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_NBA_QUEUE)
+@RabbitMqComponent(value = "nbaReportExportReceiver")
+public class ReportExportNbaReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+
+    private final ApplicationEventPublisher publisher;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck1(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+            //业务处理
+            log.info("直接队列:nba报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = Integer.valueOf(map.get("deptId").toString());
+
+            publisher.publishEvent(new NbaQueueEvent(requestBody, username, deptId));
+
+
+            Map<String, String> res = new HashMap<>(1);
+            res.put("res", "success");
+            return res;
+        });
+    }
+}

+ 101 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportReceiver.java

@@ -0,0 +1,101 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_ZB_QUEUE)
+@RabbitMqComponent(value = "reportExportReceiver")
+public class ReportExportReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+//    private final ReportExportForGuangshengtangService reportExportForGuangshengtangService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:zb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = map.get("deptId");
+
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmTask wmTask = JSONUtil.toBean(requestBody, WmTask.class);
+            String key = String.format(CacheConstants.EXPORT_ZB_REPORT_CACHE, wmTask.getScorePackageDrugId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getHandlerClass(ReportTypeEnum.ZB.getType(), deptId);
+
+                R r = reportExportService.newExportZb(wmTask, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+            } catch (Exception e) {
+                log.error("zb报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+
+                return res;
+            }
+        });
+    }
+
+
+}

+ 103 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/mq/ReportExportZbReviewReceiver.java

@@ -0,0 +1,103 @@
+package com.qunzhixinxi.hnqz.report.mq;
+
+import cn.hutool.json.JSONUtil;
+import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportTypeEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportHandlerDeptRelationService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
+import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.rabbitmq.annotation.RabbitMqComponent;
+import com.qunzhixinxi.hnqz.common.rabbitmq.core.BaseRabbiMqHandler;
+import com.qunzhixinxi.hnqz.common.rabbitmq.listenter.MqListener;
+import com.rabbitmq.client.Channel;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.support.AmqpHeaders;
+import org.springframework.messaging.handler.annotation.Header;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * zb_review对列监听器
+ */
+@Slf4j
+@AllArgsConstructor
+@RabbitListener(queues = MqConstants.DIRECT_MODE_REPORT_EXPORT_ZB_REVIEW_QUEUE)
+@RabbitMqComponent(value = "reportExportZbReviewReceiver")
+public class ReportExportZbReviewReceiver extends BaseRabbiMqHandler<BaseMap> {
+
+    private final ReportHandlerDeptRelationService reportHandlerDeptRelationService;
+
+//    private final ReportExportService reportExportService;
+//    private final WmReportExportRecordService wmReportExportRecordService;
+//    private final ReportExportForGuangshengtangService reportExportForGuangshengtangService;
+
+    @RabbitHandler
+    public void onMessage(BaseMap baseMap, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
+        super.onMessageAck(baseMap, deliveryTag, channel, (MqListener<BaseMap>) (map, channel1) -> {
+
+            //业务处理
+            log.info("直接队列:zb报告导出,手动ACK,接收消息TAG:{},消息内容:{}", deliveryTag, baseMap);
+            String requestBody = map.get("requestBody").toString();
+            String username = map.get("username").toString();
+            Integer deptId = map.get("deptId");
+            String taskStatus = map.get("taskStatus");
+
+//            Integer exportRecordId = Integer.valueOf(map.get("recordId").toString());
+            WmTask wmTask = JSONUtil.toBean(requestBody, WmTask.class);
+            wmTask.setTaskStatus(taskStatus);
+            String key = String.format(CacheConstants.EXPORT_ZB_REVIEW_REPORT_CACHE, wmTask.getScorePackageDrugId());
+            String resStr = "ERROR_未知错误,请联系管理员";
+
+//            int exportStatus = WmReportOpt.WmReportOptStatus.GENERATED.ordinal();
+//            String name = "无";
+//            String title = "无";
+
+            try {
+                // 根据企业获取对应报告处理类
+                ReportExportService reportExportService =
+                        reportHandlerDeptRelationService.getReviewHandlerClass(ReportTypeEnum.ZB_REVIEW.getType(), deptId);
+
+                R r = reportExportService.newExportZb(wmTask, username);
+
+                if (r.getCode() == CommonConstants.SUCCESS){
+                    // url
+                    Map<String,String> data = (Map<String, String>) r.getData();
+                    log.info("result-map:{}",data);
+                    resStr = data.get("url") ;
+//                    name = data.get("fileName");
+//                    title = data.get("orgFileNmae");
+                } else {
+                    // error msg
+                    resStr = r.getMsg();
+//                    exportStatus = WmReportOpt.WmReportOptStatus.ERROR.ordinal();
+                }
+            } catch (Exception e) {
+                log.error("zb_review报告导出异常", e);
+            } finally {
+                Map<String,String> res = new HashMap<>(2);
+                res.put("key",key);
+                res.put("res",resStr);
+
+//                WmReportExportRecord byId = wmReportExportRecordService.getById(exportRecordId);
+//                byId.setExportStatus(exportStatus);
+//                byId.setUrl(resStr);
+//                byId.setTitle(title);
+//                byId.setReportNum(name);
+//                byId.setFinishTime(LocalDateTime.now());
+//                wmReportExportRecordService.updateById(byId);
+
+                return res;
+            }
+        });
+    }
+
+
+}

+ 59 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ExcelReportExportService.java

@@ -0,0 +1,59 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+
+import java.io.IOException;
+
+/**
+ * @author: lixuesong
+ * @createTime: 2022/11/28 13:03
+ * @description: Excel报告导出
+ */
+public interface ExcelReportExportService {
+
+    /**
+     * 个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告导出的导出
+     *
+     * @param wmTask
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportZb(WmTask wmTask, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出History
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNbaHistory(WmScorePackage wmScorePackage,Integer deptId,String username) throws IOException;
+
+    /**
+     * 结算报告管理,结算报告审批的导出
+     *
+     * @param wmReport
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException;
+}

+ 23 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/NewReportService.java

@@ -0,0 +1,23 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 新版报告导出
+ *
+ * @author lixuesong
+ * @date 2023/12/08
+ */
+public interface NewReportService {
+
+    /**
+     * 导出
+     *
+     * @param packageIds 积分包id
+     * @param taskStatus 任务状态
+     * @param deptId     部门id
+     * @return {@link Boolean} 结果
+     */
+    Map<String, String> export(List<String> packageIds, String taskStatus, Integer deptId) throws Exception;
+}

+ 29 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportForGuangshengtangService.java

@@ -0,0 +1,29 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+
+import java.io.IOException;
+
+
+/**
+ * <p>
+ * 报告导出--服务类
+ * </p>
+ *
+ * @author hnqz
+ * @since 2018-01-20
+ */
+public interface ReportExportForGuangshengtangService {
+
+    /**
+     * 个人承接按积分制-单独用于广生堂
+     *
+     * @param wmTask
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportZbForGuangshengtang(WmTask wmTask, String username) throws IOException;
+
+}

+ 64 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportForPushiService.java

@@ -0,0 +1,64 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+
+import java.io.IOException;
+
+
+/**
+ * <p>
+ * 报告导出--服务类(单独处理用于企业-成都普什)
+ * </p>
+ *
+ * @author hnqz
+ * @since 2018-01-20
+ */
+public interface ReportExportForPushiService {
+
+    /**
+     * 个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告导出的导出
+     *
+     * @param wmTask
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportZb(WmTask wmTask, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出History
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNbaHistory(WmScorePackage wmScorePackage,Integer deptId,String username) throws IOException;
+
+    /**
+     * 结算报告管理,结算报告审批的导出
+     *
+     * @param wmReport
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException;
+
+}

+ 68 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportExportService.java

@@ -0,0 +1,68 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 报告导出--服务类
+ * </p>
+ *
+ * @author hnqz
+ * @since 2018-01-20
+ */
+public interface ReportExportService {
+
+    /**
+     * 个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告导出的导出
+     *
+     * @param wmTask
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportZb(WmTask wmTask, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException;
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出History
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNbaHistory(WmScorePackage wmScorePackage,Integer deptId,String username) throws IOException;
+
+    /**
+     * 结算报告管理,结算报告审批的导出
+     *
+     * @param wmReport
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    R newExportNb(WmReport wmReport,Integer deptId, String username) throws IOException;
+
+    List<Map<String, Object>> exportZbInfo(WmTask wmTask) throws IOException;
+
+}

+ 50 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/ReportHandlerDeptRelationService.java

@@ -0,0 +1,50 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.qunzhixinxi.hnqz.admin.api.entity.ReportHandlerDeptRelation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.ReportExportService;
+
+/**
+* @author lixuesong
+* @description 针对表【report_handler_dept_relation(导出报告处理类和企业关系表)】的数据库操作Service
+* @createDate 2022-11-25 09:01:19
+*/
+public interface ReportHandlerDeptRelationService extends IService<ReportHandlerDeptRelation> {
+
+    /**
+     * 根据企业查询对应的处理类
+     *
+     * @param reportType 报告类型
+     * @param deptId 企业id
+     * @return 处理类
+     */
+    ReportExportService getHandlerClass(String reportType, Integer deptId);
+
+    /**
+     * 根据企业查询对应的处理类
+     *
+     * @param reportType 报告类型
+     * @param deptId 企业id
+     * @return 处理类
+     */
+    ReportExportService getReviewHandlerClass(String reportType, Integer deptId);
+
+    /**
+     * 根据企业查询对应的处理类
+     *
+     * @param reportType 报告类型
+     * @param deptId 企业id
+     * @return 处理类
+     */
+   ExcelReportExportService getExcelHandlerClass(String reportType, Integer deptId);
+
+    /**
+     * 根据企业查询对应的处理类
+     *
+     * @param reportType 报告类型
+     * @param deptId 企业id
+     * @return 处理类
+     */
+    ExcelReportExportService getExcelReviewHandlerClass(String reportType, Integer deptId);
+}

+ 23 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysDeptService.java

@@ -0,0 +1,23 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.dto.DeptTree;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 部门管理 服务类
+ * </p>
+ *
+ * @author hnqz
+ * @since 2018-01-20
+ */
+public interface SysDeptService extends IService<SysDept> {
+
+
+	SysDept selectDeptById(SysDept sysDept);
+
+}

+ 31 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysFileService.java

@@ -0,0 +1,31 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.InputStream;
+
+/**
+ * 文件管理
+ *
+ * @author Luckly
+ * @date 2019-06-18 17:18:42
+ */
+public interface SysFileService extends IService<SysFile> {
+
+	/**
+	 * 上传文件流
+	 *
+	 * @param fileName    文件名
+	 * @param inputStream 输入流
+	 * @return {@link R} 结果
+	 */
+	R uploadFileAllUrlRealName(String fileName, FileInputStream inputStream);
+
+	R uploadFileAllUrlRealName(MultipartFile file,String username) ;
+
+}

+ 14 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/SysUserService.java

@@ -0,0 +1,14 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
+
+
+/**
+ * @author hnqz
+ * @date 2017/10/31
+ */
+public interface SysUserService extends IService<SysUser> {
+
+	SysUser getByIdIgnore(String taskUserId);
+}

+ 24 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmDaDrugEntDrugtableService.java

@@ -0,0 +1,24 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
+
+import java.util.List;
+
+/**
+ * 档案-药企药品
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+public interface WmDaDrugEntDrugtableService extends IService<WmDaDrugEntDrugtable> {
+
+	/**
+	 * 获取药品列表
+	 *
+	 * @param drugProducerList 关联药品生产厂商名称
+	 * @return 名称列表
+	 */
+	List<String> listDrugByDrugEntName(String[] drugProducerList);
+
+}

+ 15 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmDaDrugEntService.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
+
+
+/**
+ * 档案-药企
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+public interface WmDaDrugEntService extends IService<WmDaDrugEnt> {
+
+}

+ 17 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmReportExportRecordService.java

@@ -0,0 +1,17 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReportExportRecord;
+
+/**
+ * {@code WmReportExportRecordService}
+ * <p>
+ * 报告导出记录
+ *
+ * @author Hengchen.Sun
+ * @version 1.0.0
+ * @date 2021/12/09 16:28
+ */
+public interface WmReportExportRecordService extends IService<WmReportExportRecord> {
+
+}

+ 21 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmReportService.java

@@ -0,0 +1,21 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+
+import java.util.List;
+
+/**
+ * 报告审核表
+ *
+ * @author pigx code generator
+ * @date 2020-12-21 20:57:26
+ */
+public interface WmReportService extends IService<WmReport> {
+
+
+
+}

+ 15 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmScorePackageService.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+
+
+/**
+ * 积分包
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:42
+ */
+public interface WmScorePackageService extends IService<WmScorePackage> {
+
+}

+ 34 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmScorePackageStatusService.java

@@ -0,0 +1,34 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 积分包状态
+ *
+ * @author pigx code generator
+ * @date 2020-07-17 23:32:01
+ */
+public interface WmScorePackageStatusService extends IService<WmScorePackageStatus> {
+
+	/**
+	 * 查询服务周期(服务周期字段的取值 改为:积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间)
+	 *
+	 * @param wmScorePackage
+	 * @return
+	 */
+	Map<String, String> getServiceTimeRange(WmScorePackage wmScorePackage);
+
+	/**
+	 * 查询服务周期(服务周期字段的取值 改为:积分包领取审核通过时间~管理员审核积分包时最后审核通过的时间)
+	 *
+	 * @param scorePackageList 积分包列表
+	 * @return 结果
+	 */
+	Map<String, String> getServiceTimeRange(List<WmScorePackage> scorePackageList);
+
+}

+ 14 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskContentConfigService.java

@@ -0,0 +1,14 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContentConfig;
+
+/**
+ * 任务内容字段配置
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+public interface WmTaskContentConfigService extends IService<WmTaskContentConfig> {
+
+}

+ 14 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskContentService.java

@@ -0,0 +1,14 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskContent;
+
+/**
+ * 任务内容表
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+public interface WmTaskContentService extends IService<WmTaskContent> {
+
+}

+ 30 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskService.java

@@ -0,0 +1,30 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import org.apache.ibatis.annotations.Param;
+
+import java.sql.Timestamp;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 任务表
+ *
+ * @author gaoyanng
+ * @date 2020-06-25 23:35:25
+ */
+public interface WmTaskService extends IService<WmTask> {
+
+    List<Map<String, Object>> getTaskListByIdsOld(WmTask wmTask);
+    List<Map<String, Object>> getTaskListByIdsJs(WmTask wmTask);
+    List<WmTask> getTaskListByIdsReturnWmtaskInfo(WmTask wmTask);
+    Map<String, Timestamp> getMaxCreateTime(@Param("query") WmTask wmTask);
+    List<Map<String, Object>> getTaskListByIdsCount(WmTask wmTask);
+    List<Map<String, Object>> getTaskListByIdsZd(WmTask wmTask);
+    List<Map<String, Object>> getTaskListByIdsZdJs(WmTask wmTask);
+    List<Map<String, Object>> getTaskListByIds(WmTask wmTask);
+
+
+}

+ 15 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmTaskTypeService.java

@@ -0,0 +1,15 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+
+
+/**
+ * 任务类型打分表
+ *
+ * @author gaoyang
+ * @date 2020-07-01 20:20:05
+ */
+public interface WmTaskTypeService extends IService<WmTaskType> {
+
+}

+ 14 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmUserSignDetailService.java

@@ -0,0 +1,14 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSignDetail;
+
+/**
+ * 用户签到详情服务
+ *
+ * @author lixuesong
+ * @date 2022年01月18日 17:53
+ */
+public interface WmUserSignDetailService extends IService<WmUserSignDetail> {
+
+}

+ 23 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/WmUserSignService.java

@@ -0,0 +1,23 @@
+package com.qunzhixinxi.hnqz.report.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmUserSign;
+
+import java.util.List;
+
+/**
+ * 用户签到表
+ *
+ * @author pigx code generator
+ * @date 2020-07-14 20:10:02
+ */
+public interface WmUserSignService extends IService<WmUserSign> {
+
+    /**
+     * 根据signId查询打卡详情list
+     *
+     * @param signIdList
+     * @return
+     */
+    List<WmUserSign> listUserSign(List<Integer> signIdList);
+}

+ 551 - 0
hnqz-visual/hnqz-report-biz/src/main/java/com/qunzhixinxi/hnqz/report/service/impl/ExcelReportExportServiceImpl.java

@@ -0,0 +1,551 @@
+package com.qunzhixinxi.hnqz.report.service.impl;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillConfig;
+import com.alibaba.excel.write.metadata.fill.FillWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.report.mapper.SysDictItemMapper;
+import com.qunzhixinxi.hnqz.report.service.ExcelReportExportService;
+import com.qunzhixinxi.hnqz.report.service.NewReportService;
+import com.qunzhixinxi.hnqz.report.service.SysDeptService;
+import com.qunzhixinxi.hnqz.report.service.SysFileService;
+import com.qunzhixinxi.hnqz.report.service.SysUserService;
+import com.qunzhixinxi.hnqz.report.service.WmDaDrugEntService;
+import com.qunzhixinxi.hnqz.report.service.WmReportService;
+import com.qunzhixinxi.hnqz.report.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.report.service.WmScorePackageStatusService;
+import com.qunzhixinxi.hnqz.report.service.WmTaskService;
+import com.qunzhixinxi.hnqz.report.service.WmTaskTypeService;
+import com.qunzhixinxi.hnqz.common.core.util.R;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @author: lixuesong
+ * @createTime: 2022/11/28 13:18
+ * @description: 创建excel表格数据
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class ExcelReportExportServiceImpl implements ExcelReportExportService {
+
+    private final WmScorePackageService wmScorePackageService;
+
+    private final WmScorePackageStatusService wmScorePackageStatusService;
+
+    private final WmTaskService wmTaskService;
+
+    private final WmReportService wmReportService;
+
+    private final WmTaskTypeService wmTaskTypeService;
+
+    private final WmDaDrugEntService wmDaDrugEntService;
+
+    private final SysDeptService sysDeptService;
+
+    private final SysUserService sysUserService;
+
+    private final SysDictItemMapper sysDictItemMapper;
+
+    private final SysFileService sysFileService;
+
+    @Resource(name = "newCommonExcelReportServiceImpl")
+    private final NewReportService newReportService;
+
+    /**
+     * 个人承接任务-按积分值,个人承接任务-按任务量,个人承接任务-通用,个人报告管理-个人报告导出的导出
+     *
+     * @param wmTask
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    @Override
+    public R newExportZb(WmTask wmTask, String username) throws IOException {
+        String packageId = wmTask.getScorePackageDrugId();
+        if (null == packageId) {
+            return R.failed("积分包ID不能为空");
+        }
+        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
+        queryWrapper.in(WmTask::getScorePackageId, Arrays.asList(packageId.split(",")));
+        queryWrapper.eq(WmTask::getTaskStatus, "3");
+        queryWrapper.eq(WmTask::getDelFlag, "0");
+        queryWrapper.eq(WmTask::getEnableFlag, "0");
+        queryWrapper.eq(WmTask::getRealFlag, "0");
+        List<WmTask> taskList = wmTaskService.list(queryWrapper);
+        if (taskList.isEmpty()) {
+            return R.failed("未查询到审核通过的任务");
+        }
+
+        return this.export(packageId, taskList);
+    }
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    @Override
+    public R newExportNba(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
+        wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
+
+        HashSet<String> idSet = new HashSet<>();
+        idSet.add(wmScorePackage.getId());
+        int size = idSet.size();
+        do {
+            Set<String> collect = wmScorePackageService.list(Wrappers.<WmScorePackage>lambdaQuery().in(WmScorePackage::getRelationScoreId, idSet))
+                    .stream()
+                    .map(WmScorePackage::getId)
+                    .collect(Collectors.toSet());
+            idSet.addAll(collect);
+            size += collect.size();
+        } while (size != idSet.size());
+
+        List<WmTask> taskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, idSet)
+                .eq(WmTask::getTaskStatus, 3)
+                .and(item -> item.in(WmTask::getReportDrugApprovalStatus, Arrays.asList(5, 6)).eq(WmTask::getReportDrugApprovalOpinion, 1)
+                        .or(item2 -> item2.in(WmTask::getReportOneApprovalStatus, Arrays.asList(5, 6)).eq(WmTask::getReportOneApprovalOpinion, 1))));
+
+        //更新任务表审批意见
+        WmTask wmTask = new WmTask();
+        wmTask.setDelFlag("0");
+        wmTask.setEnableFlag("0");
+
+        if (null == taskList || taskList.size() <= 0) {
+            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
+        }
+
+        return this.export(wmScorePackage.getId(), taskList);
+    }
+
+    /**
+     * 企业承接任务的导出、任务中心单的导出History
+     *
+     * @param wmScorePackage
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    @Override
+    public R newExportNbaHistory(WmScorePackage wmScorePackage, Integer deptId, String username) throws IOException {
+        wmScorePackage = wmScorePackageService.getById(wmScorePackage.getId());
+        if (wmScorePackage == null) {
+            return R.failed("未查询到积分包信息");
+        }
+        LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper();
+        queryWrapper.eq(WmTask::getScorePackageDrugId, wmScorePackage.getId());
+        queryWrapper.eq(WmTask::getTaskStatus, "3");
+        queryWrapper.eq(WmTask::getDelFlag, "0");
+        queryWrapper.eq(WmTask::getEnableFlag, "0");
+        queryWrapper.eq(WmTask::getRealFlag, "0");
+        List<WmTask> taskList = wmTaskService.list(queryWrapper);
+        //List<WmTask> taskList = wmTaskMapper.selectListByWmTask(wmScorePackage);
+        //更新任务表审批意见
+        WmTask wmTask = new WmTask();
+        wmTask.setDelFlag("0");
+        wmTask.setEnableFlag("0");
+
+        if (null == taskList || taskList.size() <= 0) {
+            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
+        }
+
+        return this.export(wmScorePackage.getId(), taskList);
+    }
+
+    /**
+     * 结算报告管理,结算报告审批的导出
+     *
+     * @param wmReport
+     * @param deptId
+     * @param username
+     * @return
+     * @throws IOException
+     */
+    @Override
+    public R newExportNb(WmReport wmReport, Integer deptId, String username) throws IOException {
+        wmReport = wmReportService.getById(wmReport.getId());
+        List<WmTask> taskList = new ArrayList<>();//该报告关联的所有未提交的任务
+        //更新任务表审批意见
+        WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
+        WmTask wmTask = new WmTask();
+        wmTask.setDelFlag("0");
+        wmTask.setEnableFlag("0");
+        wmTask.setRealFlag("0");
+
+        SysDept sysDept = sysDeptService.getById(scorePackage.getSendPackageDeptId());
+
+
+        if ("0".equals(scorePackage.getTypeid())) {//药企
+            wmTask.setReportDrugId(wmReport.getId());
+            wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            taskList = wmTaskService.list(Wrappers.query(wmTask));
+        } else if ("1".equals(scorePackage.getTypeid())) {//一级代理商类型
+            wmTask.setReportOneId(wmReport.getId());
+            if (sysDept.getLevel() == 2) {
+                wmTask.setReportDrugApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            } else {
+                wmTask.setReportOneApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            }
+
+            taskList = wmTaskService.list(Wrappers.query(wmTask));
+        } else if ("2".equals(scorePackage.getTypeid())) {//二级代理商类型
+            wmTask.setReportSecondId(wmReport.getId());
+            wmTask.setReportSecondApprovalOpinion(ReportEnum.APPROVAL_OPINION_YES.getType());//审核通过的状态
+            taskList = wmTaskService.list(Wrappers.query(wmTask));
+        }
+        if (null == taskList || taskList.size() <= 0) {
+            return R.failed("ERROR_未查询到该报告关联的审批通过的任务");
+        }
+
+        return this.export(wmReport.getScoreId().toString(), taskList);
+    }
+
+    /**
+     * 导出
+     *
+     * @param packageId 积分包id
+     * @return
+     */
+    private R<?> export(String packageId, List<WmTask> taskList) {
+        try {
+//            // 创建excel模板数据
+//            Map<String, Object> excelData = this.createExcelData(packageId, taskList);
+//            // 基础路径
+//            String workPath = (String) OsEnvUtils.getEachEnvPaths().get("EXCEL_FILE_PATH");
+//            // 模板路径
+//            String templateFile = workPath + "task_summary_template.xlsx";
+//            // 目标路径
+//            String targetFile = workPath +
+//                    String.format("out/任务汇总报告(%s)-%s.xlsx", packageId, DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN));
+//            ;
+//
+//            // 填充模板
+//            this.createExcel(templateFile, targetFile, excelData);
+//
+//            // 上传oss
+//            FileInputStream input = new FileInputStream(targetFile);
+//            MultipartFile multipartFile = new MockMultipartFile(String.format("任务汇总报告(%s)", packageId),
+//                    String.format("任务汇总报告(%s).xlsx", packageId),
+//                    "text/plain", IOUtils.toByteArray(input));
+//            return sysFileService.uploadFileAllUrlRealName(multipartFile, null);
+            Map<String, String> nbaExportResult = newReportService.export(StrUtil.split(packageId, ","), "3", 1);
+            return R.ok(nbaExportResult);
+        } catch (Exception e) {
+            log.error("任务汇总报告导出异常", e);
+            return R.failed("任务汇总报告导出异常");
+        }
+
+    }
+
+    /**
+     * 创建excel表格数据
+     *
+     * @param packageId
+     * @param taskList
+     * @return
+     */
+    private Map<String, Object> createExcelData(String packageId, List<WmTask> taskList) {
+        Map<String, Object> textParams = new HashMap<>();
+
+        WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
+
+        List<WmScorePackage> wmScorePackages = wmScorePackageService.listByIds(Arrays.asList(packageId.split(",")));
+        String scoreIds = wmScorePackages.stream().map(WmScorePackage::getScorePackageName).collect(Collectors.joining(","));
+
+        // 委托公司
+//        SysDept sysDept = sysDeptService.getById(Integer.valueOf(wmScorePackage.getSendPackageDeptId()));
+//        textParams.put("ent_name", sysDept.getName());
+
+        // 积分包名称
+        textParams.put("score_package_name", StrUtil.isBlank(scoreIds) ? wmScorePackage.getScorePackageName() : scoreIds);
+        // 积分包值
+//        textParams.put("total_score_package_score", wmScorePackage.getScore());
+        // 结算金额
+//        textParams.put("settle_amount",
+//                wmScorePackage.getSettleStatus() != null && wmScorePackage.getSettleStatus() == 1 ? wmScorePackage.getScore() : "");
+
+        // 委托项目-年份
+//        String belongDate = wmScorePackage.getBelongDate();
+//        if (StrUtil.isNotBlank(belongDate)) {
+//            textParams.put("year", belongDate.substring(0, 4));
+//        }
+        // 委托项目-月份
+//        String monthStr = belongDate.substring(5, 7);
+
+        if (taskList.isEmpty()) {
+            log.warn("未查询到审核通过的任务packageId={}", packageId);
+            return textParams;
+        }
+
+        // 任务承接人
+        Set<String> taskUserIdSet = taskList.stream().map(WmTask::getTaskUserId).collect(Collectors.toSet());
+        List<SysUser> userList = sysUserService.listByIds(taskUserIdSet);
+        textParams.put("report_users", userList.stream().map(SysUser::getRealname).collect(Collectors.joining(StrUtil.COMMA)));
+
+
+        String minDateStr = null;
+        String maxDateStr = null;
+        // 服务周期
+        Map<String, String> serviceTimeRangeMap = wmScorePackageStatusService.getServiceTimeRange(wmScorePackage);
+        textParams.put("service_date", serviceTimeRangeMap.get("service_start_date") + "至" + serviceTimeRangeMap.get("service_end_date"));
+        minDateStr = serviceTimeRangeMap.get("service_start_date").substring(5, 7);
+        maxDateStr = serviceTimeRangeMap.get("service_end_date").substring(5, 7);
+
+//        if (StrUtil.isAllNotBlank(minDateStr, maxDateStr)) {
+//            if (minDateStr.equals(maxDateStr)) {
+//                monthStr = minDateStr;
+//            } else {
+//                // 跨年情况判断
+//                if (!belongDate.substring(0, 4).equals(serviceTimeRangeMap.get("service_end_date").substring(0, 4))) {
+//                    monthStr = String.format("%s月至%s年%s", minDateStr, serviceTimeRangeMap.get("service_end_date").substring(0, 4), maxDateStr);
+//                } else {
+//                    monthStr = minDateStr + "月至" + maxDateStr;
+//                }
+//            }
+//        } else if (StrUtil.isNotBlank(minDateStr)) {
+//            monthStr = minDateStr;
+//        } else if (StrUtil.isNotBlank(maxDateStr)) {
+//            monthStr = maxDateStr;
+//        }
+
+        // 委托项目-月份
+//        textParams.put("month", monthStr);
+
+        // 任务完成时间
+//        WmTask maxLookIntoDateTask = taskList.stream()
+//                .filter(wmTask -> wmTask.getLookintoDate() != null)
+//                .max(Comparator.comparing(WmTask::getLookintoDate)).get();
+//        LocalDateTime maxTime = maxLookIntoDateTask.getLookintoDate();
+//        textParams.put("finish_year", maxTime.getYear() + "");
+//        Integer month = maxTime.getMonthValue();
+//        if (month < 10) {
+//            textParams.put("finish_month", "0" + maxTime.getMonthValue() + "");
+//        } else {
+//            textParams.put("finish_month", maxTime.getMonthValue() + "");
+//        }
+//        Integer day = maxTime.getDayOfMonth();
+//        if (day < 10) {
+//            textParams.put("finish_day", "0" + maxTime.getDayOfMonth() + "");
+//        } else {
+//            textParams.put("finish_day", maxTime.getDayOfMonth() + "");
+//        }
+
+
+//        int taskScoreSum = taskList.stream().mapToInt(WmTask::getScore).sum();
+        // 已提交总值
+//        textParams.put("total_submit_score", taskScoreSum);
+        // 审核通过总值
+//        textParams.put("total_approved_score", taskScoreSum);
+
+        // 查询字典score_task_type
+        List<SysDictItem> scoreTaskTypeDictList = sysDictItemMapper.selectList(Wrappers.<SysDictItem>lambdaQuery()
+                .eq(SysDictItem::getType, "score_task_type")
+                .eq(SysDictItem::getDelFlag, "0"));
+        Map<String, String> scoreTaskTypeDictMap = scoreTaskTypeDictList.stream()
+                .collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+
+        // 查询taskType
+        List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
+                .eq(WmTaskType::getTaskTypeLevel, "1")
+                .eq(WmTaskType::getDelFlag, "0")
+//                .eq(WmTaskType::getEnableFlag, "0")
+        );
+        // taskType通过parentId分组(key为parentId,value为taskTypeId的set)
+        Map<String, WmTaskType> taskTypeIdMap = taskTypeList.stream()
+                .collect(Collectors.toMap(WmTaskType::getId, taskType -> taskType));
+        // taskList添加parentId
+        taskList.forEach(wmTask -> wmTask.setTaskTypeParentId(taskTypeIdMap.get(wmTask.getTaskTypeId()).getParentId()));
+
+        // task通过taskTypeParentId分组
+        Map<String, List<WmTask>> taskParantMap = taskList.stream()
+                .collect(Collectors.groupingBy(WmTask::getTaskTypeParentId, Collectors.toList()));
+
+        // 封装brief table1数据(统计每个大类任务的积分、任务数)
+        List<Map<String, Object>> briefTable1List = new ArrayList<>();
+        taskParantMap.forEach((parentId, wmTasks) -> {
+            Map<String, Object> briefTable1Params = new HashMap<>();
+            briefTable1Params.put("task_type_name", scoreTaskTypeDictMap.get(parentId));
+            briefTable1Params.put("task_count", wmTasks.size());
+            briefTable1Params.put("task_sum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+            briefTable1List.add(briefTable1Params);
+        });
+        Map<String, Object> briefTable1TotalParams = new HashMap<>();
+        briefTable1TotalParams.put("task_type_name", "合计");
+        briefTable1TotalParams.put("task_count", taskList.size());
+        briefTable1TotalParams.put("task_sum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+        briefTable1List.add(briefTable1TotalParams);
+
+        // task通过taskTypeId分组
+        Map<String, List<WmTask>> taskTypeMap = taskList.stream()
+                .collect(Collectors.groupingBy(WmTask::getTaskTypeId, Collectors.toList()));
+        // 封装brief table1数据(统计每个小类任务的积分、任务数)
+        List<Map<String, Object>> briefTable1bList = new ArrayList<>();
+        taskTypeMap.forEach((taskTypeId, wmTasks) -> {
+            Map<String, Object> briefTable1Params = new HashMap<>();
+            briefTable1Params.put("task_type_name", taskTypeIdMap.get(taskTypeId).getTaskTypeName());
+            briefTable1Params.put("task_count", wmTasks.size());
+            briefTable1Params.put("task_sum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+            briefTable1bList.add(briefTable1Params);
+        });
+        Map<String, Object> briefTable11TotalParams = new HashMap<>();
+        briefTable11TotalParams.put("task_type_name", "合计");
+        briefTable11TotalParams.put("task_count", taskList.size());
+        briefTable11TotalParams.put("task_sum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+        briefTable1bList.add(briefTable11TotalParams);
+
+        // 封装brief table2数据(统计每个人任务积分、任务数)
+        Map<String, List<WmTask>> taskUserMap = taskList.stream().collect(Collectors.groupingBy(WmTask::getTaskUserId));
+        List<Map<String, Object>> briefTable2List = new ArrayList<>();
+        taskUserMap.forEach((userId, wmTasks) -> {
+            SysUser sysUser = sysUserService.getById(userId);
+            Map<String, Object> briefTable2Map = new HashMap<>();
+            briefTable2Map.put("user_name", sysUser.getRealname());
+            briefTable2Map.put("user_task_count", wmTasks.size());
+            briefTable2Map.put("user_task_sum", wmTasks.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+            briefTable2List.add(briefTable2Map);
+        });
+        Map<String, Object> briefTable2TotalParams = new HashMap<>();
+        briefTable2TotalParams.put("user_name", "合计");
+        briefTable2TotalParams.put("user_task_count", taskList.size());
+        briefTable2TotalParams.put("user_task_sum", taskList.stream().map(WmTask::getScore).reduce(0, Integer::sum));
+        briefTable2List.add(briefTable2TotalParams);
+
+        // 查询所有涉及到的userId
+        Set<String> userIdSet = taskList.stream().map(WmTask::getTaskUserId).collect(Collectors.toSet());
+        List<SysUser> sysUsers = sysUserService.listByIds(userIdSet);
+        // userMap
+        Map<Integer, String> userMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
+
+        // dept
+        WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getById(wmScorePackage.getDrugEntId());
+        SysDept sysDept = sysDeptService.getById(wmScorePackage.getDeptId());
+
+        // 封装detailTable数据(任务详情)
+        List<Map<String, Object>> detailTableList = new ArrayList<>();
+        Map<String, Map<String, List<WmTask>>> collect = taskList.stream().collect(Collectors.groupingBy(WmTask::getTaskUserId, Collectors.groupingBy(WmTask::getTaskTypeParentId)));
+
+        collect.forEach((k, v) -> {
+            v.forEach((x, y) -> {
+                Map<String, Object> detailTableMap = new HashMap<>();
+                detailTableMap.put("user_name", userMap.get(Integer.valueOf(k)));
+                detailTableMap.put("task_type", scoreTaskTypeDictMap.get(x));
+                detailTableMap.put("score", y.stream().mapToInt(WmTask::getScore).sum());
+                detailTableMap.put("finish_time", DateUtil.format(y.stream().max(Comparator.comparing(WmTask::getCreateTime)).get().getCreateTime(), DatePattern.NORM_DATE_PATTERN));
+                detailTableMap.put("ent_name", (wmDaDrugEnt == null) ? ((sysDept == null) ? "无" : sysDept.getName()) : wmDaDrugEnt.getEntname());
+                detailTableList.add(detailTableMap);
+            });
+        });
+
+        // 封装detailTable2数据(任务详情)
+        List<Map<String, Object>> detailTable2List = new ArrayList<>();
+        for (int i = 0; i < taskList.size(); i++) {
+            WmTask wmTask = taskList.get(i);
+            Map<String, Object> detailTableMap = new HashMap<>();
+            detailTableMap.put("user_name", userMap.get(Integer.valueOf(wmTask.getTaskUserId())));
+            detailTableMap.put("task_type", scoreTaskTypeDictMap.get(wmTask.getTaskTypeId()));
+            detailTableMap.put("score", wmTask.getScore());
+            detailTableMap.put("create_time", DateUtil.format(wmTask.getCreateTime(), DatePattern.NORM_DATE_PATTERN));
+            detailTableMap.put("index", i + 1);
+            detailTable2List.add(detailTableMap);
+        }
+
+        Map<String, Object> params = new HashMap<>();
+        params.put("textParams", textParams);
+        params.put("briefTable1Params", briefTable1List);
+        params.put("briefTable1bParams", briefTable1bList);
+        params.put("briefTable2Params", briefTable2List);
+        params.put("detailTableParams", detailTableList);
+        params.put("detailTable2Params", detailTable2List);
+
+        log.info("模板数据创建成功packageId={}, data={}", packageId, params);
+
+        return params;
+    }
+
+    private void createExcel(final String templateFile, final String targetFile, final Map<String, Object> params) {
+        // 这里 指定文件
+        try (ExcelWriter excelWriter = EasyExcel.write(targetFile).withTemplate(templateFile).build()) {
+
+            // 填充列表开启自动换行,自动换行表示每次写入一条list数据是都会重新生成一行空行,此选项默认是关闭的,需要提前设置为true
+            FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
+
+            // 每次都要创建writeSheet 这里注意必须指定sheetNo 而且sheetName必须不一样。
+            // sheet0
+            WriteSheet writeSheet = EasyExcel.writerSheet(0, "学术推广服务整体概况").build();
+
+            // sheet0填充标题
+            Map<String, Object> sheet0TitleMap = (Map<String, Object>) params.get("textParams");
+            excelWriter.fill(sheet0TitleMap, writeSheet);
+
+            // sheet0-table1填充数据
+            List<Map<String, Object>> briefTable1Params = (List<Map<String, Object>>) params.get("briefTable1Params");
+            excelWriter.fill(new FillWrapper("table1", briefTable1Params), fillConfig, writeSheet);
+
+            // sheet0-table2填充数据
+            List<Map<String, Object>> briefTable1bParams = (List<Map<String, Object>>) params.get("briefTable1bParams");
+            excelWriter.fill(new FillWrapper("table2", briefTable1bParams), fillConfig, writeSheet);
+
+            // sheet0-table3填充数据
+            List<Map<String, Object>> briefTable2Params = (List<Map<String, Object>>) params.get("briefTable2Params");
+            excelWriter.fill(new FillWrapper("table3", briefTable2Params), fillConfig, writeSheet);
+
+            // sheet1
+            WriteSheet writeSheet1 = EasyExcel.writerSheet(1, "学术推广服务明细").build();
+
+            // sheet1填充标题
+            excelWriter.fill(sheet0TitleMap, writeSheet1);
+
+            // sheet1-table1填充数据
+            List<Map<String, Object>> detailTableParams = (List<Map<String, Object>>) params.get("detailTableParams");
+            excelWriter.fill(new FillWrapper("table1", detailTableParams), fillConfig, writeSheet1);
+
+            // sheet2
+            WriteSheet writeSheet2 = EasyExcel.writerSheet(2, "学术推广服务任务明细").build();
+
+            // sheet2填充标题
+            excelWriter.fill(sheet0TitleMap, writeSheet2);
+
+            // sheet1-table1填充数据
+            List<Map<String, Object>> detailTable2Params = (List<Map<String, Object>>) params.get("detailTable2Params");
+            excelWriter.fill(new FillWrapper("table1", detailTable2Params), fillConfig, writeSheet2);
+
+            // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
+//            excelWriter.write(dataList(), writeSheet);
+
+        }
+    }
+}

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff