浏览代码

feat:导出监督报告

shc 7 月之前
父节点
当前提交
da834f5c1b

+ 133 - 40
hnqz-common/hnqz-common-core/src/main/java/com/qunzhixinxi/hnqz/common/core/util/PdfUtils.java

@@ -1,23 +1,26 @@
 package com.qunzhixinxi.hnqz.common.core.util;
 
-import cn.hutool.core.date.DatePattern;
+import com.itextpdf.text.BaseColor;
 import com.itextpdf.text.Document;
+import com.itextpdf.text.Element;
+import com.itextpdf.text.Font;
 import com.itextpdf.text.PageSize;
+import com.itextpdf.text.Paragraph;
+import com.itextpdf.text.Rectangle;
 import com.itextpdf.text.pdf.AcroFields;
 import com.itextpdf.text.pdf.BaseFont;
 import com.itextpdf.text.pdf.PdfCopy;
 import com.itextpdf.text.pdf.PdfImportedPage;
+import com.itextpdf.text.pdf.PdfPCell;
+import com.itextpdf.text.pdf.PdfPTable;
 import com.itextpdf.text.pdf.PdfReader;
 import com.itextpdf.text.pdf.PdfStamper;
+import com.itextpdf.text.pdf.PdfWriter;
 import lombok.experimental.UtilityClass;
 
 import java.io.ByteArrayOutputStream;
 import java.io.FileOutputStream;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.HashMap;
 import java.util.Map;
-import java.util.UUID;
 
 /**
  * pdf工具
@@ -75,48 +78,138 @@ public final class PdfUtils {
     }
 
 
-    public static void main(String[] args) {
+    public static void generateSupervisionReport(String targetPath, Rectangle pageSize, boolean rotate, String f, Object[][] datas) {
+        FileOutputStream fos;
+        PdfWriter writer;
+        Font font;
 
-        String templatePath = "/Users/jimmy/pkg_temp_v19_1.pdf";
-        String outFilePath = "/Users/jimmy/Desktop/" + UUID.randomUUID() + ".pdf";
-        Map<String, String> params = new HashMap<>();
-        params.put("party_a_name", "中国生物水痘生产企业");
-        params.put("party_a_address", "北京市朝阳区双桥路123号中国生物基地10-12号");
-        params.put("party_a_resp_name", "张三");
-        params.put("party_a_contact_name", "买还买提~阿卜杜拉~买买提");
-        params.put("party_a_contact_phone", "13388889999");
+        int numberColumns = 12;
 
-        params.put("party_b_name", "长春生物药品科技有限公司");
-        params.put("party_b_address", "吉林省长春市光驱路123号生物医药基地123楼");
-        params.put("party_b_resp_name", "里斯");
-        params.put("party_b_contact_name", "王五");
-        params.put("party_b_contact_phone", "18877778888");
-
-        params.put("issue_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.of(2024, 1, 1)));
-        params.put("expiry_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.of(2024, 3, 31)));
+        if (pageSize == null) {
+            pageSize = PageSize.A4;
+        }
 
-        params.put("s1_name", "市场信息手机");
-        params.put("s1_qty", "1");
-        params.put("s1_price", "3000");
-        params.put("s1_rate", "19%");
 
-        params.put("s2_name", "会议举办");
-        params.put("s2_qty", "1000");
-        params.put("s2_price", "30000");
-        params.put("s2_rate", "100%");
+        try {
+            fos = new FileOutputStream(targetPath);
+
+            Rectangle rectangle = rotate ? new Rectangle(pageSize).rotate() : new Rectangle(pageSize);
+
+            Document document = new Document(rectangle);
+            writer = PdfWriter.getInstance(document, fos);
+            writer.setViewerPreferences(PdfWriter.PageModeUseThumbs);
+            document.open();
+
+            PdfPTable table = new PdfPTable(numberColumns);
+            table.setLockedWidth(true);
+            table.setTotalWidth(780);
+            table.setHorizontalAlignment(Element.ALIGN_LEFT);
+
+            // 设置单元格文本字体样式
+            font = getPdfChineseFont(f);
+
+            for (int i = 0; i < datas.length; i++) {
+                for (int j = 0; j < datas[i].length; j++) {
+                    PdfPCell pdfCell = new PdfPCell();
+                    pdfCell.setMinimumHeight(30);
+
+                    // 设置单元格样式
+                    pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);
+                    pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+
+
+                    // 设置表头背景色
+                    if (i <= 1 && j <= numberColumns) {
+                        pdfCell.setBackgroundColor(BaseColor.GRAY);
+                    }
+
+                    pdfCell.setBorder(1);
+                    pdfCell.setBorderWidthTop(0.1f);
+                    pdfCell.setBorderWidthBottom(0.1f);
+                    pdfCell.setBorderWidthLeft(0.1f);
+                    pdfCell.setBorderWidthRight(0.1f);
+                    pdfCell.setBorderColorBottom(BaseColor.BLACK);
+                    pdfCell.setBorderColorLeft(BaseColor.BLACK);
+                    pdfCell.setBorderColorRight(BaseColor.BLACK);
+                    pdfCell.setBorderColorTop(BaseColor.BLACK);
+
+                    // // 设置单元格文本字体样式
+                    // Font font = getPdfChineseFont(font);
+
+                    // 合并单元格
+                    if (i == 0 && j == 0) {
+                        pdfCell.setRowspan(1);
+                        pdfCell.setColspan(numberColumns);
+                    }
+
+                    Paragraph paragraph = new Paragraph(String.valueOf(datas[i][j]), font);
+                    pdfCell.setPhrase(paragraph);
+
+                    table.addCell(pdfCell);
+                }
+            }
 
-        params.put("s3_name", "会议举办");
-        params.put("s3_qty", "1000");
-        params.put("s3_price", "30000");
-        params.put("s3_rate", "100%");
+            document.add(table);
+            document.close();
 
-        params.put("s4_name", "会议举办");
-        params.put("s4_qty", "1000");
-        params.put("s4_price", "30000");
-        params.put("s4_rate", "100%");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
+    public static Font getPdfChineseFont(String font) throws Exception {
+        // BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H",
+        //         BaseFont.NOT_EMBEDDED);
+        BaseFont bfChinese = BaseFont.createFont(font + ",0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
+        Font fontChinese = new Font(bfChinese, 6, Font.NORMAL);
+        return fontChinese;
+    }
 
-        params.put("sign_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.now()));
-        resumeGenerate(templatePath, outFilePath, "/Users/jimmy/Desktop/SimSun.ttc", params);
+    public static void main(String[] args) throws Exception {
+
+        // String targetPath = "/Users/jimmy/table8.pdf";
+        // generateSupervisionReport(targetPath, PageSize.A4, true);
+
+        // String templatePath = "/Users/jimmy/pkg_temp_v19_1.pdf";
+        // String outFilePath = "/Users/jimmy/Desktop/" + UUID.randomUUID() + ".pdf";
+        // Map<String, String> params = new HashMap<>();
+        // params.put("party_a_name", "中国生物水痘生产企业");
+        // params.put("party_a_address", "北京市朝阳区双桥路123号中国生物基地10-12号");
+        // params.put("party_a_resp_name", "张三");
+        // params.put("party_a_contact_name", "买还买提~阿卜杜拉~买买提");
+        // params.put("party_a_contact_phone", "13388889999");
+        //
+        // params.put("party_b_name", "长春生物药品科技有限公司");
+        // params.put("party_b_address", "吉林省长春市光驱路123号生物医药基地123楼");
+        // params.put("party_b_resp_name", "里斯");
+        // params.put("party_b_contact_name", "王五");
+        // params.put("party_b_contact_phone", "18877778888");
+        //
+        // params.put("issue_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.of(2024, 1, 1)));
+        // params.put("expiry_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.of(2024, 3, 31)));
+        //
+        // params.put("s1_name", "市场信息手机");
+        // params.put("s1_qty", "1");
+        // params.put("s1_price", "3000");
+        // params.put("s1_rate", "19%");
+        //
+        // params.put("s2_name", "会议举办");
+        // params.put("s2_qty", "1000");
+        // params.put("s2_price", "30000");
+        // params.put("s2_rate", "100%");
+        //
+        // params.put("s3_name", "会议举办");
+        // params.put("s3_qty", "1000");
+        // params.put("s3_price", "30000");
+        // params.put("s3_rate", "100%");
+        //
+        // params.put("s4_name", "会议举办");
+        // params.put("s4_qty", "1000");
+        // params.put("s4_price", "30000");
+        // params.put("s4_rate", "100%");
+        //
+        //
+        // params.put("sign_date", DateTimeFormatter.ofPattern(DatePattern.CHINESE_DATE_PATTERN).format(LocalDate.now()));
+        // resumeGenerate(templatePath, outFilePath, "/Users/jimmy/Desktop/SimSun.ttc", params);
     }
 }

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmSupervisionController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -146,5 +147,20 @@ public class WmSupervisionController {
 
     }
 
+    /**
+     * 导出监察报告
+     *
+     * @param entId 企业ID
+     * @return 上传结果
+     * @throws Exception 异常
+     */
+    @GetMapping(value = "/supervision/report/export")
+    public R<Map<String, String>> exportSupervisionReportPDF(@RequestParam(value = "entId") Integer entId) throws Exception {
+
+        return R.ok(supervisionManager.exportSupervisionReportPDF(entId, SecurityUtils.getUser()));
+
+
+    }
+
 
 }

+ 194 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/WmSupervisionManager.java

@@ -4,15 +4,18 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.itextpdf.text.PageSize;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
 import com.qunzhixinxi.hnqz.admin.api.dto.WmSupervisionDto;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPackageSupervision;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmRoleSupervisionWarn;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmRoleSupervisionWarnRule;
@@ -21,9 +24,12 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervision;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSupervisionAdvice;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmWarnUserRelation;
+import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntDrugtableMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysEnterpriseAreaService;
+import com.qunzhixinxi.hnqz.admin.service.SysFileService;
 import com.qunzhixinxi.hnqz.admin.service.SysRoleService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserDrugService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserRoleService;
@@ -36,20 +42,27 @@ import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionAdviceService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSupervisionService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.admin.service.WmWarnUserRelationService;
+import com.qunzhixinxi.hnqz.admin.util.OsEnvUtils;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.exception.BizException;
+import com.qunzhixinxi.hnqz.common.core.util.PdfUtils;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.File;
+import java.nio.file.Files;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -94,6 +107,9 @@ public class WmSupervisionManager {
     private final SysUserRoleService userRoleService;
     private final SysUserDrugService userDrugService;
     private final WmTaskSupervisionAdviceService taskSupervisionAdviceService;
+    private final SysFileService fileService;
+    private final WmTaskTypeService taskTypeService;
+    private final WmDaDrugEntDrugtableMapper wmDaDrugEntDrugtableMapper;
 
 
     /**
@@ -1444,6 +1460,184 @@ public class WmSupervisionManager {
         return true;
     }
 
+    /**
+     * 生成报告pdf
+     *
+     * @param entId 企业ID
+     * @param user  操作人
+     * @return 本地路径
+     */
+    public Map<String, String> exportSupervisionReportPDF(Integer entId, HnqzUser user) throws Exception {
+
+        Map<String, String> envPaths = OsEnvUtils.getEachEnvPaths();
+        // 生成本地路径
+        String targetPath = envPaths.get(OsEnvUtils.TargetFile.TEMP.getName()) + DateTimeFormatter.ofPattern(DatePattern.PURE_DATE_PATTERN).format(LocalDate.now()) + "/supervision_" + IdUtil.fastSimpleUUID() + "_" + DateTimeFormatter.ofPattern(DatePattern.PURE_DATETIME_PATTERN).format(LocalDateTime.now()) + ".pdf";
+
+        // 封装报告数据
+        Object[][] datas = buildSupervisionReportDatas(entId, user);
+
+        PdfUtils.generateSupervisionReport(targetPath, PageSize.A4, true, envPaths.get(OsEnvUtils.TargetFile.FONT.getName()) + "SimSun.ttc", datas);
+
+        File pdf = new File(targetPath);
+        MockMultipartFile multipartFile = new MockMultipartFile("file", pdf.getName(), null, Files.newInputStream(pdf.toPath()));
+        Map<String, String> uploaded = fileService.upload(multipartFile, user.getUsername());
+
+        // 上传到oss
+        return uploaded;
+    }
+
+    private Object[][] buildSupervisionReportDatas(Integer entId, HnqzUser user) {
+
+
+        // 获取企业
+        SysDept service = deptService.getById(entId);
+
+        // 获取服务商下的所有c端包
+        List<WmScorePackage> pkgs = packageService.list(Wrappers.<WmScorePackage>lambdaQuery().eq(WmScorePackage::getSendPackageDeptId, service.getDeptId().toString()));
+
+        if (CollUtil.isEmpty(pkgs)) {
+            throw new BizException("当前服务商不存在可用的执行包,无法导出");
+        }
+        Map<String, WmScorePackage> pkgMap = pkgs.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
+
+        // 获取c端包下的所有的产品
+        Map<String, WmDaDrugEntDrugtable> drugMap = wmDaDrugEntDrugtableMapper.selectList(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getId, pkgs.stream().flatMap(p -> Arrays.stream(p.getDrugtable())).distinct().sorted().collect(Collectors.toList()))).stream().collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
+
+        // 获取服务类型
+        Map<String, String> taskTypeMap = taskTypeService.list(Wrappers.<WmTaskType>lambdaQuery().le(WmTaskType::getId, "100")).stream().collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
+
+        // 获取包下的所有任务
+        List<WmTask> tasks = taskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getScorePackageId, pkgs));
+        Map<String, WmTask> tid2EntityMap = tasks.stream().collect(Collectors.toMap(WmTask::getId, Function.identity()));
+
+        List<Integer> taskIds = tasks.stream().mapToInt(t -> Integer.parseInt(t.getId())).boxed().distinct().sorted().collect(Collectors.toList());
+
+        // 代表名称
+        List<Integer> uid = tasks.stream().mapToInt(t -> Integer.parseInt(t.getTaskUserId())).boxed().distinct().sorted().collect(Collectors.toList());
+        Map<Integer, String> userMap = userService.listByIds(uid).stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
+
+        List<WmTaskSupervision> taskSupervisions = taskSupervisionService.list(Wrappers.<WmTaskSupervision>lambdaQuery().eq(WmTaskSupervision::getTaskId, taskIds).eq(WmTaskSupervision::getCreateBy, user.getUsername()));
+
+        // 获取监督意见
+        List<Long> supIds = taskSupervisions.stream().mapToLong(WmTaskSupervision::getSupervisionId).boxed().distinct().sorted().collect(Collectors.toList());
+        Map<Long, List<WmTaskSupervisionAdvice>> advices = taskSupervisionAdviceService.list(Wrappers.<WmTaskSupervisionAdvice>lambdaQuery().in(WmTaskSupervisionAdvice::getTaskSupervisionId, supIds)).stream().collect(Collectors.groupingBy(WmTaskSupervisionAdvice::getTaskSupervisionId));
+
+
+        Object[][] datas = new Object[taskSupervisions.size() + 2][12];
+        datas[0][0] = "2024年第四季度监察结构";
+        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] = "总经理意见";
+
+        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();
+                }
+
+                // 服务类型
+                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());
+                    WmTaskSupervisionAdvice advice = supervisionAdvices.get(0);
+                    datas[idx][j] = advice != null ? advice.getRemarks() : "";
+                }
+
+                // 分管领导意见
+                if (j == 10) {
+                    List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
+                    WmTaskSupervisionAdvice advice = supervisionAdvices.get(1);
+                    datas[idx][j] = advice != null ? advice.getRemarks() : "";
+                }
+
+                // 总经理意见
+                if (j == 11) {
+                    List<WmTaskSupervisionAdvice> supervisionAdvices = advices.get(wmTaskSupervision.getSupervisionId());
+                    WmTaskSupervisionAdvice advice = supervisionAdvices.get(2);
+                    datas[idx][j] = advice != null ? advice.getRemarks() : "";
+
+                }
+
+
+            }
+
+            idx++;
+        }
+
+        return datas;
+    }
+
+
 //     @Transactional(rollbackFor = Exception.class)
 //     public Boolean checkTaskSupervision(WmSupervisionDto.OnTaskSupervisionCheck resource, HnqzUser user) {
 //         Integer supervisionId = resource.getSupervisionId();

+ 6 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/util/OsEnvUtils.java

@@ -22,6 +22,8 @@ public final class OsEnvUtils {
     @Getter
     @AllArgsConstructor
     public enum TargetFile {
+
+        TEMP("temp"),
         FONT("font"),
         TEMPLATE("tmpl"),
         EXCEL("EXCEL_FILE_PATH"),
@@ -48,24 +50,27 @@ public final class OsEnvUtils {
      */
     public static Map<String, String> getEachEnvPaths() {
         String osName = getOSName();
-        Map<String, String> pathMap = new HashMap<>(2);
+        Map<String, String> pathMap = new HashMap<>(5);
         if (osName.contains("linux") || osName.contains("unix")) {
             pathMap.put(TargetFile.EXCEL.getName(), "/serving/server/cso_prod/excel/");
             pathMap.put(TargetFile.FONT.getName(), "/serving/server/cso_prod/font/");
             pathMap.put(TargetFile.CONTRACT.getName(), "/serving/server/cso_prod/contract/");
             pathMap.put(TargetFile.TEMPLATE.getName(), "/serving/server/cso_prod/template/");
+            pathMap.put(TargetFile.TEMP.getName(), "/serving/server/cso_prod/temp/");
         }
         if (osName.contains("mac")) {
             pathMap.put(TargetFile.EXCEL.getName(), "~/");
             pathMap.put(TargetFile.FONT.getName(), "~/");
             pathMap.put(TargetFile.CONTRACT.getName(), "~/");
             pathMap.put(TargetFile.TEMPLATE.getName(), "~/");
+            pathMap.put(TargetFile.TEMP.getName(), "~/");
         }
         if (osName.contains("windows")) {
             pathMap.put(TargetFile.EXCEL.getName(), "D:\\");
             pathMap.put(TargetFile.FONT.getName(), "D:\\");
             pathMap.put(TargetFile.CONTRACT.getName(), "D:\\");
             pathMap.put(TargetFile.TEMPLATE.getName(), "D:\\");
+            pathMap.put(TargetFile.TEMP.getName(), "D:\\");
         }
         return pathMap;
     }