Browse Source

危险作业导出

wangbo 3 months ago
parent
commit
7fbb431cbf

+ 114 - 149
js-security/security-common/src/main/java/com/rongwei/sfcommon/sys/service/impl/RiskJobServiceImpl.java

@@ -218,178 +218,142 @@ public class RiskJobServiceImpl implements RiskJobService {
 
 */
 
-    public void riskJobExport2(String id, String jobtype, HttpServletResponse response){
+    public void riskJobExport2(String id, String jobtype, HttpServletResponse response) {
         Map<String, String> wordMap = new HashMap<>();
 
+        // 校验:主对象是否为空
         AspDhzyDo dhzyDo = dhzyService.getById(id);
+        if (dhzyDo == null) {
+            throw new RuntimeException("未找到该动火作业信息!");
+        }
 
         List<SysDictDo> sysDictDoList = sysDictDao.selectList(new LambdaQueryWrapper<SysDictDo>()
                 .eq(BaseDo::getDeleted, "0")
-                .in(SysDictDo::getDicttype, "dhfs","dhzyjb"));
-        SysDictDo sysDictDo = null;
+                .in(SysDictDo::getDicttype, "dhfs", "dhzyjb"));
+        if (sysDictDoList == null) {
+            sysDictDoList = Collections.emptyList();
+        }
 
-        //动火方式
+        // 动火方式
         String dhfs = dhzyDo.getDhfs();
-        String[] dhfsValues = dhfs.split(",");
-        Map<String, String> dictValueNameMap = sysDictDoList.stream()
-                .filter(dict -> "dhfs".equals(dict.getDicttype()))
-                .collect(Collectors.toMap(SysDictDo::getValue, SysDictDo::getName));
-        List<String> dhfsNames = Arrays.stream(dhfsValues)
-                .map(String::trim)
-                .map(dictValueNameMap::get)
-                .filter(Objects::nonNull)
-                .collect(Collectors.toList());
-        String DHFS = String.join(",", dhfsNames);
-
-        //动火作业级别
-        String dhzyjb = dhzyDo.getDhzyjb();
-        sysDictDo = sysDictDoList.stream()
-                .filter(dict -> "dhzyjb".equals(dict.getDicttype()) &&
-                        dict.getValue().equals(dhzyjb))
-                .findFirst()
-                .orElse(null);
-        String DHZYJB = sysDictDo == null ? "" : sysDictDo.getName();
-
-
-
-
-
-
-
-        QueryWrapper<AspJobConfigFxbsDo> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("tenantid", dhzyDo.getTenantid());
-        queryWrapper.eq("jobtype", dhzyDo.getJobtype());
-        queryWrapper.eq("deleted", '0');
-        List<AspJobConfigFxbsDo> fxbsList = aspJobConfigFxbsService.list(queryWrapper);
-        // 创建一个与 fxbsList 大小相同的数组
-        String[] fxbs = new String[fxbsList.size()];
-        // 将 fxbsList 中的元素复制到数组中
-        for (int i = 0; i < fxbsList.size(); i++) {
-            fxbs[i] = fxbsList.get(i).getFxbsx();
+        String DHFS = "";
+        if (dhfs != null) {
+            String[] dhfsValues = dhfs.split(",");
+            Map<String, String> dictValueNameMap = sysDictDoList.stream()
+                    .filter(dict -> "dhfs".equals(dict.getDicttype()))
+                    .collect(Collectors.toMap(SysDictDo::getValue, SysDictDo::getName, (v1, v2) -> v1));
+            List<String> dhfsNames = Arrays.stream(dhfsValues)
+                    .map(String::trim)
+                    .map(dictValueNameMap::get)
+                    .filter(Objects::nonNull)
+                    .collect(Collectors.toList());
+            DHFS = String.join(",", dhfsNames);
         }
-//        List<Map<String, String>> fxbs = new ArrayList<>();
-//        for (AspJobConfigFxbsDo item : fxbsList) {
-//            Map<String, String> subItem = new HashMap<>();
-//            // 根据实际情况添加属性到 Map 中
-//            subItem.put("FXBSX", defaultEmptyStr(item.getFxbsx()));
-//            fxbs.add(subItem);
-//        }
 
-//气体检查
-        QueryWrapper<AspCombustibleGasDetectionDo> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("jobid", dhzyDo.getId());
-        queryWrapper1.eq("deleted", '0');
-        List<AspCombustibleGasDetectionDo> qtjcList = aspCombustibleGasDetectionService.list(queryWrapper1);
+        // 动火作业级别
+        String DHZYJB = "";
+        String dhzyjb = dhzyDo.getDhzyjb();
+        if (dhzyjb != null) {
+            SysDictDo sysDictDo = sysDictDoList.stream()
+                    .filter(dict -> "dhzyjb".equals(dict.getDicttype()) &&
+                            dhzyjb.equals(dict.getValue()))
+                    .findFirst()
+                    .orElse(null);
+            DHZYJB = sysDictDo == null ? "" : defaultEmptyStr(sysDictDo.getName());
+        }
 
+        // 风险辨识
+        List<AspJobConfigFxbsDo> fxbsList = aspJobConfigFxbsService.list(new QueryWrapper<AspJobConfigFxbsDo>()
+                .eq("tenantid", dhzyDo.getTenantid())
+                .eq("jobtype", dhzyDo.getJobtype())
+                .eq("deleted", '0'));
+        String[] fxbs = fxbsList != null
+                ? fxbsList.stream()
+                .sorted(Comparator.comparing(AspJobConfigFxbsDo::getSon))
+                .map(AspJobConfigFxbsDo::getFxbsx)
+                .toArray(String[]::new)
+                : new String[0];
+
+
+        // 气体检查
+        List<AspCombustibleGasDetectionDo> qtjcList = aspCombustibleGasDetectionService.list(new QueryWrapper<AspCombustibleGasDetectionDo>()
+                .eq("jobid", dhzyDo.getId())
+                .eq("deleted", '0'));
         List<Map<String, String>> subList1 = new ArrayList<>();
-        for (AspCombustibleGasDetectionDo item : qtjcList) {
-            Map<String, String> subItem = new HashMap<>();
-            // 根据实际情况添加属性到 Map 中
-            subItem.put("COMBUSTIBLEGASLETCONTENT", defaultEmptyStr(item.getCombustiblegasletcontent()));
-            subItem.put("OXYGENCONTENT",defaultEmptyStr(item.getOxygencontent()));
-            subItem.put("TOXICGAS", defaultEmptyStr(item.getToxicgas()));
-            subItem.put("SAMPLINGTIME", defaultEmptyStr(item.getSamplingtime()));
-            subItem.put("LELSAMPLINGSITE", defaultEmptyStr(item.getLelsamplingsite()));
-            subItem.put("ANALYST", defaultEmptyStr(item.getAnalyst()));
-            subList1.add(subItem);
+        if (qtjcList != null) {
+            for (AspCombustibleGasDetectionDo item : qtjcList) {
+                Map<String, String> subItem = new HashMap<>();
+                subItem.put("COMBUSTIBLEGASLETCONTENT", defaultEmptyStr(item.getCombustiblegasletcontent()));
+                subItem.put("OXYGENCONTENT", defaultEmptyStr(item.getOxygencontent()));
+                subItem.put("TOXICGAS", defaultEmptyStr(item.getToxicgas()));
+                subItem.put("SAMPLINGTIME", defaultEmptyStr(item.getSamplingtime()));
+                subItem.put("LELSAMPLINGSITE", defaultEmptyStr(item.getLelsamplingsite()));
+                subItem.put("ANALYST", defaultEmptyStr(item.getAnalyst()));
+                subList1.add(subItem);
+            }
         }
 
-        //关联作业查询
-        QueryWrapper<AspJobSjzyDo> queryWrapper2 = new QueryWrapper<>();
-        queryWrapper2.eq("JOBID",dhzyDo.getId());
-        queryWrapper2.eq("DELETED","0");
-        List<AspJobSjzyDo> resultList = aspJobSjzyService.list(queryWrapper2);
-        //        JOBTYPE  SJZYZBH
-        if (!resultList.isEmpty()) {
-            String jobTypeString = resultList.stream()
-                    .map(AspJobSjzyDo::getJobtype)
-                    .distinct()
-                    .collect(Collectors.joining(","));
-            String sjzyzbhString = resultList.stream()
-                    .map(AspJobSjzyDo::getSjzyzbh)
-                    .distinct()
-                    .collect(Collectors.joining(","));
-            wordMap.put("SJQTZYLX",defaultEmptyStr(jobTypeString) );
+        // 关联作业
+        List<AspJobSjzyDo> resultList = aspJobSjzyService.list(new QueryWrapper<AspJobSjzyDo>()
+                .eq("JOBID", dhzyDo.getId())
+                .eq("DELETED", "0"));
+        if (resultList != null && !resultList.isEmpty()) {
+            String jobTypeString = resultList.stream().map(AspJobSjzyDo::getJobtype).distinct().collect(Collectors.joining(","));
+            String sjzyzbhString = resultList.stream().map(AspJobSjzyDo::getSjzyzbh).distinct().collect(Collectors.joining(","));
+            wordMap.put("SJQTZYLX", defaultEmptyStr(jobTypeString));
             wordMap.put("SJQTTSZYZBH", defaultEmptyStr(sjzyzbhString));
         }
 
-
-//安全措施
-        QueryWrapper<AspInspectionInformationTableDo> queryWrapper3 = new QueryWrapper<>();
-
-        queryWrapper3.eq("jobid", dhzyDo.getId());
-        queryWrapper3.eq("deleted", '0');
-        List<AspInspectionInformationTableDo> aqcsList = aspInspectionInformationTableService.list(queryWrapper3);
+        // 安全措施
+        List<AspInspectionInformationTableDo> aqcsList = aspInspectionInformationTableService.list(new QueryWrapper<AspInspectionInformationTableDo>()
+                .eq("jobid", dhzyDo.getId())
+                .eq("deleted", '0'));
         List<Map<String, String>> subList2 = new ArrayList<>();
-        for (AspInspectionInformationTableDo item : aqcsList) {
-            Map<String, String> subItem2 = new HashMap<>();
-            // 根据实际情况添加属性到 Map 中
-            subItem2.put("MAINSAFETYMEASURES", defaultEmptyStr(item.getMainsafetymeasures()));
-            subItem2.put("WHETHERITINVOLVES",defaultEmptyStr(item.getWhetheritinvolves()));
-            subItem2.put("CHECKUSER", defaultEmptyStr(item.getCheckuser()));
-            subList2.add(subItem2);
+        if (aqcsList != null) {
+            for (AspInspectionInformationTableDo item : aqcsList) {
+                Map<String, String> subItem2 = new HashMap<>();
+                subItem2.put("MAINSAFETYMEASURES", defaultEmptyStr(item.getMainsafetymeasures()));
+                subItem2.put("WHETHERITINVOLVES", defaultEmptyStr(item.getWhetheritinvolves()));
+                subItem2.put("CHECKUSER", defaultEmptyStr(item.getCheckuser()));
+                subList2.add(subItem2);
+            }
         }
 
-
-//   动火人以及证书编号
-//        aspSpecialPersonalInformationService
-        QueryWrapper<AspSpecialPersonalInformationDo> queryWrapper4 = new QueryWrapper<>();
-        queryWrapper3.eq("jobid", dhzyDo.getId());
-        queryWrapper3.eq("deleted", '0');
-        List<AspSpecialPersonalInformationDo> dhrList = aspSpecialPersonalInformationService.list(queryWrapper4);
-
-        String dhrxx = dhrList.stream()
-                .map(item -> item.getName() + "," + item.getCertificateno())
-                .collect(Collectors.joining(" "));
-        if (!resultList.isEmpty()) {
-            wordMap.put("DHRJZSBH",defaultEmptyStr(dhrxx) );
+        // 动火人信息
+        List<AspSpecialPersonalInformationDo> dhrList = aspSpecialPersonalInformationService.list(new QueryWrapper<AspSpecialPersonalInformationDo>()
+                .eq("jobid", dhzyDo.getId())
+                .eq("deleted", '0'));
+        if (dhrList != null && !dhrList.isEmpty()) {
+            String dhrxx = dhrList.stream()
+                    .map(item -> defaultEmptyStr(item.getName()) + "," + defaultEmptyStr(item.getCertificateno()))
+                    .collect(Collectors.joining(" "));
+            wordMap.put("DHRJZSBH", defaultEmptyStr(dhrxx));
         }
-//        CERTIFICATENO name    小王,123 小明456
-//        List<Map<String, String>> subList2 = new ArrayList<>();
-//        for (AspInspectionInformationTableDo item : aqcsList) {
-//            Map<String, String> subItem2 = new HashMap<>();
-//            // 根据实际情况添加属性到 Map 中
-//            subItem2.put("MAINSAFETYMEASURES", defaultEmptyStr(item.getMainsafetymeasures()));
-//            subItem2.put("WHETHERITINVOLVES",defaultEmptyStr(item.getWhetheritinvolves()));
-//            subItem2.put("CHECKUSER", defaultEmptyStr(item.getCheckuser()));
-//            subList2.add(subItem2);
-//        }
-
-
-
-
-
-//
-//        dhzyDo.getFxbs();//风险辨识
-
-
-        wordMap.put("SQDW", defaultEmptyStr( dhzyDo.getSqdw()));
-        wordMap.put("SQR", defaultEmptyStr( dhzyDo.getSqr()));
-        wordMap.put("ZYZBH", defaultEmptyStr( dhzyDo.getZyzbh()));
-        wordMap.put("ZYNR", defaultEmptyStr( dhzyDo.getZynr()));
-
-        wordMap.put("DHZYJB", defaultEmptyStr( DHZYJB));
-//        wordMap.put("DHFS",dhfs);
-        wordMap.put("DHFS",DHFS);
-
-        wordMap.put("DHDD", defaultEmptyStr( dhzyDo.getDhdd()));
-        wordMap.put("ZYWZ", defaultEmptyStr( dhzyDo.getZywz()));
-        wordMap.put("ZYDWMC", defaultEmptyStr( dhzyDo.getZydwmc()));
-        wordMap.put("ZYFZR", defaultEmptyStr( dhzyDo.getZyfzr()));
-        wordMap.put("ZYKSSJ", defaultEmptyStr( dhzyDo.getZykssj()));
-        wordMap.put("ZYJSSJ", defaultEmptyStr( dhzyDo.getZyjssj()));
-
-        wordMap.put("JHRQM", defaultEmptyStr( dhzyDo.getJhrqm()));
-        wordMap.put("AQJDRQM", defaultEmptyStr( dhzyDo.getAqjdrqm()));
-        wordMap.put("JSJDRQM", defaultEmptyStr( dhzyDo.getJsjdrqm()));
-        wordMap.put("SDBMFZRQZ", defaultEmptyStr( dhzyDo.getSdbmfzrqz()));
-
-          String fxbsx = defaultEmptyStr( dhzyDo.getFxbs());
-
-        response(wordMap, response ,subList1,subList2,fxbs ,fxbsx , sysDictDoList );
 
+        // 设置通用字段
+        wordMap.put("SQDW", defaultEmptyStr(dhzyDo.getSqdw()));
+        wordMap.put("SQR", defaultEmptyStr(dhzyDo.getSqr()));
+        wordMap.put("ZYZBH", defaultEmptyStr(dhzyDo.getZyzbh()));
+        wordMap.put("ZYNR", defaultEmptyStr(dhzyDo.getZynr()));
+        wordMap.put("DHZYJB", DHZYJB);
+        wordMap.put("DHFS", DHFS);
+        wordMap.put("DHDD", defaultEmptyStr(dhzyDo.getDhdd()));
+        wordMap.put("ZYWZ", defaultEmptyStr(dhzyDo.getZywz()));
+        wordMap.put("ZYDWMC", defaultEmptyStr(dhzyDo.getZydwmc()));
+        wordMap.put("ZYFZR", defaultEmptyStr(dhzyDo.getZyfzr()));
+        wordMap.put("ZYKSSJ", defaultEmptyStr(dhzyDo.getZykssj()));
+        wordMap.put("ZYJSSJ", defaultEmptyStr(dhzyDo.getZyjssj()));
+        wordMap.put("JHRQM", defaultEmptyStr(dhzyDo.getJhrqm()));
+        wordMap.put("AQJDRQM", defaultEmptyStr(dhzyDo.getAqjdrqm()));
+        wordMap.put("JSJDRQM", defaultEmptyStr(dhzyDo.getJsjdrqm()));
+        wordMap.put("SDBMFZRQZ", defaultEmptyStr(dhzyDo.getSdbmfzrqz()));
+        wordMap.put("FXBSX", defaultEmptyStr(dhzyDo.getFxbs()));
+
+        // 输出
+        response(wordMap, response, subList1, subList2, fxbs, defaultEmptyStr(dhzyDo.getFxbs()), sysDictDoList);
     }
 
+
     public String defaultEmptyStr(Object str) {
         if (str == null) {
             return "";
@@ -536,7 +500,8 @@ public class RiskJobServiceImpl implements RiskJobService {
             // 设置返回 PDF 的响应头
             response.setContentType("application/pdf");
             String fileName = URLEncoder.encode("导出结果.pdf", "UTF-8").replaceAll("\\+", "%20");
-            response.setHeader("Content-Disposition", "inline; filename*=UTF-8''" + fileName);
+//            response.setHeader("Content-Disposition", "inline; filename*=UTF-8''" + fileName);
+            response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + fileName);
 
             log.info("开始输出 PDF 至前端");