|
|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|