Browse Source

feat:导出监督报告 12

shc 7 months ago
parent
commit
23961c94ae

+ 110 - 2
hnqz-common/hnqz-common-core/src/main/java/com/qunzhixinxi/hnqz/common/core/util/PdfUtils.java

@@ -167,8 +167,116 @@ public final class PdfUtils {
 
     public static void main(String[] args) throws Exception {
 
-        // String targetPath = "/Users/jimmy/table8.pdf";
-        // generateSupervisionReport(targetPath, PageSize.A4, true);
+        String targetPath = "/Users/jimmy/table8.pdf";
+
+        // Object[][] datas = new Object[3][12] {
+        //         {"2024年第四季度监督结果"},
+        //         {"服务ID", "服务类型", "代表名称", "产品名称", "生产企业", "执行包名称", "周期", "监督结果", "监督意见", "部门负责人意见", "分管领导意见", "总经理意见"} };
+        //         // {"江苏省" , 9045,  2256},
+        //         // {"广东省", 3000, 690}};
+        // Object[][] datas ;
+
+        Object[][] datas = new Object[4][];
+        for (int i = 0; i < datas.length; i++) {
+            // 列的长度每次都变化。每次都要重新申请空间(长度)
+            datas[i] = new Object[i == 0 ? 1 : 12];
+
+            if (i== 0){
+                datas[0][0] = "区域产品销售额";
+                continue;
+            }
+
+            if (i == 1){
+                datas[1][0] = "服务ID";
+                datas[1][1] = "服务类型";
+                datas[1][2] = "代表名称";
+                datas[1][3] = "产品名称";
+                datas[1][4] = "生产企业";
+                datas[1][5] = "执行包名称";
+                datas[1][6] = "周期";
+                datas[1][7] = "监督结果";
+                datas[1][8] = "监督意见";
+                datas[1][9] = "部门负责人意见";
+                datas[1][10] = "分管领导意见";
+                datas[1][11] = "总经理意见";
+                continue;
+            }
+
+
+            for (int j = 0; j < datas[i].length; j++){
+                datas[i][j] = i + j;
+            }
+        }
+        // for(int i=0; i<arr3.length; ++i) {
+        //     for(int j=0; j<arr3[i].length; ++j)
+        //         System.out.print(arr3[i][j]);
+        //     System.out.print("\n");
+        // }
+
+
+        // Object[][] datas = new Object[2][12];
+
+        // for (int i = 0; i < datas.length; i++) {
+        //     datas[i] = new Object[i];
+        //     for (int j = 0; j < datas[i].length; j++) {
+        //         datas[i][j] = "区域产品销售额";
+        //     }
+        // }
+
+
+        // datas[0][0] = "区域产品销售额";
+        // datas[0][1] = "";
+        // datas[0][2] = "";
+        // datas[0][3] = "";
+        // datas[0][4] = "";
+        // datas[0][5] = "";
+        // datas[0][6] = "";
+        // datas[0][7] = "";
+        // datas[0][8] = "";
+        // datas[0][9] = "";
+        // datas[0][10] = "";
+        // datas[0][11] = "";
+        // datas[1][0] = "服务ID";
+        // datas[1][1] = "服务类型";
+        // datas[1][2] = "代表名称";
+        // datas[1][3] = "产品名称";
+        // datas[1][4] = "生产企业";
+        // datas[1][5] = "执行包名称";
+        // datas[1][6] = "周期";
+        // datas[1][7] = "监督结果";
+        // datas[1][8] = "监督意见";
+        // datas[1][9] = "部门负责人意见";
+        // datas[1][10] = "分管领导意见";
+        // datas[1][11] = "总经理意见";
+
+        // datas[3][0] = "服务ID";
+        // datas[3][1] = "服务类型";
+        // datas[3][2] = "代表名称";
+        // datas[3][3] = "产品名称";
+        // datas[3][4] = "生产企业";
+        // datas[3][5] = "执行包名称";
+        // datas[3][6] = "周期";
+        // datas[3][7] = "监督结果";
+        // datas[3][8] = "监督意见";
+        // datas[3][9] = "部门负责人意见";
+        // datas[3][10] = "分管领导意见";
+        // datas[3][11] = "总经理意见";
+
+        // datas[2][0] = "服务ID";
+        // datas[2][1] = "服务类型";
+        // datas[2][2] = "代表名称";
+        // datas[2][3] = "产品名称";
+        // datas[2][4] = "生产企业";
+        // datas[2][5] = "执行包名称";
+        // datas[2][6] = "周期";
+        // datas[2][7] = "监督结果";
+        // datas[2][8] = "监督意见";
+        // datas[2][9] = "部门负责人意见";
+        // datas[2][10] = "分管领导意见";
+        // datas[2][11] = "总经理意见";
+
+
+        generateSupervisionReport(targetPath, PageSize.A4, true, "/Users/jimmy/Desktop/SimSun.ttc", datas);
 
         // String templatePath = "/Users/jimmy/pkg_temp_v19_1.pdf";
         // String outFilePath = "/Users/jimmy/Desktop/" + UUID.randomUUID() + ".pdf";

+ 151 - 47
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -1523,56 +1523,54 @@ public class WmSupervisionManager {
         Map<Long, List<WmTaskSupervisionAdvice>> advices = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery().in(WmTaskSupervisionAdvice::getTaskSupervisionId, supIds)).stream().collect(Collectors.groupingBy(WmTaskSupervisionAdvice::getTaskSupervisionId));
 
 
+        // {{"2024年第四季度" + user.getRealName() + "监督结果"}, {"服务ID", "服务类型", "代表名称", "产品名称", "生产企业", "执行包名称", "周期", "监督结果", "监督意见", "部门负责人意见", "分管领导意见", "总经理意见"}};
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
         Object[][] datas = new Object[taskSupervisions.size() + 1][];
-                // {{"2024年第四季度" + user.getRealName() + "监督结果"}, {"服务ID", "服务类型", "代表名称", "产品名称", "生产企业", "执行包名称", "周期", "监督结果", "监督意见", "部门负责人意见", "分管领导意见", "总经理意见"}};
-        // datas[0][0] = "2024年第四季度" + user.getRealName() + "监督结果";
-        // datas[0][1] = "";
-        // datas[0][2] = "";
-        // datas[0][3] = "";
-        // datas[0][4] = "";
-        // datas[0][5] = "";
-        // datas[0][6] = "";
-        // datas[0][7] = "";
-        // datas[0][8] = "";
-        // datas[0][9] = "";
-        // datas[0][10] = "";
-        // datas[0][11] = "";
-
-
-        datas[1][0] = "服务ID";
-        datas[1][1] = "服务类型";
-        datas[1][2] = "代表名称";
-        datas[1][3] = "产品名称";
-        datas[1][4] = "生产企业";
-        datas[1][5] = "执行包名称";
-        datas[1][6] = "周期";
-        datas[1][7] = "监督结果";
-        datas[1][8] = "监督意见";
-        datas[1][9] = "部门负责人意见";
-        datas[1][10] = "分管领导意见";
-        datas[1][11] = "总经理意见";
+        for (int i = 0; i < datas.length; ++i) {
+            datas[i] = new Object[i == 0 ? 1 : 12];
+            if (i == 0) {
+                datas[0][0] = "2024 年第 四 季度 " + user.getRealName() + " 监督结果";
+                continue;
+            }
+
+            if (i == 1) {
+                datas[1][0] = "服务ID";
+                datas[1][1] = "服务类型";
+                datas[1][2] = "代表名称";
+                datas[1][3] = "产品名称";
+                datas[1][4] = "生产企业";
+                datas[1][5] = "执行包名称";
+                datas[1][6] = "周期";
+                datas[1][7] = "监督结果";
+                datas[1][8] = "监督意见";
+                datas[1][9] = "部门负责人意见";
+                datas[1][10] = "分管领导意见";
+                datas[1][11] = "总经理意见";
+                continue;
+            }
+
+
+            WmTaskSupervision wmTaskSupervision = taskSupervisions.get(i - 2);
+            // 列的长度每次都变化。每次都要重新申请空间(长度)
+            for (int j = 0; j < datas[i].length; j++) {
 
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-        int idx = 2;
-        for (WmTaskSupervision wmTaskSupervision : taskSupervisions) {
-            for (int j = 0; j < 12; j++) {
 
                 // 服务ID
                 if (j == 0) {
-                    datas[idx][j] = wmTaskSupervision.getTaskId().toString();
+                    datas[i][j] = wmTaskSupervision.getTaskId().toString();
                 }
 
                 // 服务类型
                 if (j == 1) {
                     WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
 
-                    datas[idx][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
+                    datas[i][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
                 }
 
                 // 代表名称
                 if (j == 2) {
                     WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
-                    datas[idx][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
+                    datas[i][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
                 }
 
                 // 产品名称
@@ -1583,7 +1581,7 @@ public class WmSupervisionManager {
                     WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
 
 
-                    datas[idx][j] = drugtable.getDrugname();
+                    datas[i][j] = drugtable.getDrugname();
                 }
 
                 // 生产企业
@@ -1592,31 +1590,31 @@ public class WmSupervisionManager {
                     WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
                     String drugId = scorePackage.getDrugtable()[0];
                     WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
-                    datas[idx][j] = drugtable.getDrugEntName();
+                    datas[i][j] = drugtable.getDrugEntName();
                 }
 
                 // 执行包名称
                 if (j == 5) {
                     WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
                     WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
-                    datas[idx][j] = scorePackage.getScorePackageName();
+                    datas[i][j] = scorePackage.getScorePackageName();
                 }
 
                 // 周期
                 if (j == 6) {
                     WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
                     WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
-                    datas[idx][j] = String.format("%s至%s", formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
+                    datas[i][j] = String.format("%s至%s", formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
                 }
 
                 // 监督结果
                 if (j == 7) {
-                    datas[idx][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
+                    datas[i][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
                 }
 
                 // 监督意见
                 if (j == 8) {
-                    datas[idx][j] = wmTaskSupervision.getRemarks();
+                    datas[i][j] = wmTaskSupervision.getRemarks();
                 }
 
 
@@ -1625,9 +1623,9 @@ public class WmSupervisionManager {
                     List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
                     if (CollUtil.isNotEmpty(supervisionAdvices)) {
                         WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
-                        datas[idx][j] = advice != null ? advice.getRemarks() : "";
+                        datas[i][j] = advice != null ? advice.getRemarks() : "";
                     } else {
-                        datas[idx][j] = "";
+                        datas[i][j] = "";
                     }
 
 
@@ -1638,9 +1636,9 @@ public class WmSupervisionManager {
                     List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
                     if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
                         WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
-                        datas[idx][j] = advice != null ? advice.getRemarks() : "";
+                        datas[i][j] = advice != null ? advice.getRemarks() : "";
                     } else {
-                        datas[idx][j] = "";
+                        datas[i][j] = "";
                     }
                 }
 
@@ -1649,16 +1647,122 @@ public class WmSupervisionManager {
                     List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
                     if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 2) {
                         WmTaskSupervisionAdvice advice = supervisionAdvices.get(2);
-                        datas[idx][j] = advice != null ? advice.getRemarks() : "";
+                        datas[i][j] = advice != null ? advice.getRemarks() : "";
                     } else {
-                        datas[idx][j] = "";
+                        datas[i][j] = "";
                     }
 
                 }
             }
-            idx++;
         }
 
+
+        // int idx = 2;
+        // for (WmTaskSupervision wmTaskSupervision : taskSupervisions) {
+        //     for (int j = 0; j < 12; j++) {
+        //
+        //         // 服务ID
+        //         if (j == 0) {
+        //             datas[idx][j] = wmTaskSupervision.getTaskId().toString();
+        //         }
+        //
+        //         // 服务类型
+        //         if (j == 1) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //
+        //             datas[idx][j] = wmTask != null ? taskTypeMap.get(wmTask.getTaskTypeId()) : "";
+        //         }
+        //
+        //         // 代表名称
+        //         if (j == 2) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //             datas[idx][j] = wmTask != null ? userMap.get(Integer.parseInt(wmTask.getTaskUserId())) : "";
+        //         }
+        //
+        //         // 产品名称
+        //         if (j == 3) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //             WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
+        //             String drugId = scorePackage.getDrugtable()[0];
+        //             WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
+        //
+        //
+        //             datas[idx][j] = drugtable.getDrugname();
+        //         }
+        //
+        //         // 生产企业
+        //         if (j == 4) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //             WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
+        //             String drugId = scorePackage.getDrugtable()[0];
+        //             WmDaDrugEntDrugtable drugtable = drugMap.get(drugId);
+        //             datas[idx][j] = drugtable.getDrugEntName();
+        //         }
+        //
+        //         // 执行包名称
+        //         if (j == 5) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //             WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
+        //             datas[idx][j] = scorePackage.getScorePackageName();
+        //         }
+        //
+        //         // 周期
+        //         if (j == 6) {
+        //             WmTask wmTask = tid2EntityMap.get(wmTaskSupervision.getTaskId().toString());
+        //             WmScorePackage scorePackage = pkgMap.get(wmTask.getScorePackageId());
+        //             datas[idx][j] = String.format("%s至%s", formatter.format(scorePackage.getStartTime()), formatter.format(scorePackage.getEndTime()));
+        //         }
+        //
+        //         // 监督结果
+        //         if (j == 7) {
+        //             datas[idx][j] = wmTaskSupervision.getSupervisionResult() ? "通过" : "不通过";
+        //         }
+        //
+        //         // 监督意见
+        //         if (j == 8) {
+        //             datas[idx][j] = wmTaskSupervision.getRemarks();
+        //         }
+        //
+        //
+        //         // 部门负责人意见
+        //         if (j == 9) {
+        //             List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
+        //             if (CollUtil.isNotEmpty(supervisionAdvices)) {
+        //                 WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
+        //                 datas[idx][j] = advice != null ? advice.getRemarks() : "";
+        //             } else {
+        //                 datas[idx][j] = "";
+        //             }
+        //
+        //
+        //         }
+        //
+        //         // 分管领导意见
+        //         if (j == 10) {
+        //             List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
+        //             if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 1) {
+        //                 WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
+        //                 datas[idx][j] = advice != null ? advice.getRemarks() : "";
+        //             } else {
+        //                 datas[idx][j] = "";
+        //             }
+        //         }
+        //
+        //         // 总经理意见
+        //         if (j == 11) {
+        //             List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
+        //             if (CollUtil.isNotEmpty(supervisionAdvices) && supervisionAdvices.size() > 2) {
+        //                 WmTaskSupervisionAdvice advice = supervisionAdvices.get(2);
+        //                 datas[idx][j] = advice != null ? advice.getRemarks() : "";
+        //             } else {
+        //                 datas[idx][j] = "";
+        //             }
+        //
+        //         }
+        //     }
+        //     idx++;
+        // }
+
         return datas;
     }