Jelajahi Sumber

提交校核校验

xzc 18 jam lalu
induk
melakukan
afb207a207

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/boilertaskordersignfile/BoilerTaskOrderSignFileController.java

@@ -106,4 +106,11 @@ public class BoilerTaskOrderSignFileController {
         return success(boilerTaskOrderSignFileService.hasValidSignByOrderId(orderId));
     }
 
+    @GetMapping("/getSignStatus")
+    @Operation(summary = "查询任务单下各业务类型签名状态(100=服务单/受理单, 200=检验情况告知, 300=安全记录检查)")
+    @Parameter(name = "orderId", description = "任务单ID", required = true)
+    public CommonResult<Map<Integer, Boolean>> getSignStatusByOrderId(@RequestParam("orderId") String orderId) {
+        return success(boilerTaskOrderSignFileService.getSignStatusByOrderId(orderId));
+    }
+
 }

+ 8 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileService.java

@@ -84,4 +84,12 @@ public interface BoilerTaskOrderSignFileService extends IService<BoilerTaskOrder
      * @return true-签名有效,false-签名已失效
      */
     boolean hasValidSignByOrderId(String orderId);
+
+    /**
+     * 查询任务单下各业务类型的签名状态
+     *
+     * @param orderId 任务单ID
+     * @return key=businessType,value=是否存在有效签名(signUrl 非空)
+     */
+    Map<Integer, Boolean> getSignStatusByOrderId(String orderId);
 }

+ 26 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/boilertaskordersignfile/BoilerTaskOrderSignFileServiceImpl.java

@@ -572,4 +572,30 @@ public class BoilerTaskOrderSignFileServiceImpl extends ServiceImpl<BoilerTaskOr
         return signFiles.stream().anyMatch(f -> StrUtil.isNotBlank(f.getSignUrl()));
     }
 
+    @Override
+    public Map<Integer, Boolean> getSignStatusByOrderId(String orderId) {
+        // 100=服务单/受理单, 200=检验情况告知, 300=安全记录检查
+        Map<Integer, Boolean> result = new HashMap<>();
+        result.put(100, false);
+        result.put(200, false);
+        result.put(300, false);
+        List<BoilerTaskOrderSignFileDO> signFiles = boilerTaskOrderSignFileMapper.selectList(
+                BoilerTaskOrderSignFileDO::getOrderId, orderId);
+        if (CollUtil.isEmpty(signFiles)) {
+            return result;
+        }
+        // 按 businessType 分组,任一记录 signUrl 非空即视为已签名
+        Map<Integer, List<BoilerTaskOrderSignFileDO>> grouped = signFiles.stream()
+                .filter(f -> f.getBusinessType() != null)
+                .collect(java.util.stream.Collectors.groupingBy(BoilerTaskOrderSignFileDO::getBusinessType));
+        grouped.forEach((type, list) -> {
+            boolean signed = list.stream().anyMatch(f -> StrUtil.isNotBlank(f.getSignUrl()));
+            // 仅保留前端关注的 100/200/300 三个类型
+            if (result.containsKey(type)) {
+                result.put(type, signed);
+            }
+        });
+        return result;
+    }
+
 }