Переглянути джерело

基因流程附件审核信息只显示最后一次驳回之后的

陈长荣 3 місяців тому
батько
коміт
8ccd60050f

+ 20 - 4
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/flow/service/impl/FlowInfoServiceImpl.java

@@ -63,6 +63,7 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -340,7 +341,10 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
         JSONObject dataMap = JSON.parseObject(JSON.toJSONString(detail));
         wordDataService.fillDocCreator(dataMap);
         dataMap.put("createDateStr", createDate);
-        dataMap.put("createBySign", userIdNameCache.getSignBase64(Long.valueOf(flowInfo.getCreateBy())));
+        String sign = userIdNameCache.getSignBase64(Long.valueOf(flowInfo.getCreateBy()));
+        if (StrUtil.isNotBlank(sign)) {
+            dataMap.put("createBySign", sign);
+        }
 
         dataMap.put("approvalNo", WordUtil.padString(flowInfo.getApprovalNo(), 14));
         dataMap.put("revisionNo", WordUtil.padString(flowInfo.getRevisionNo(), 14));
@@ -354,13 +358,23 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
                 .eq(FlowAudit::getFlowId, flowId)
                 .eq(FlowAudit::getDeleted, WhetherEnum.NO.getCode())
                 .orderByDesc(FlowAudit::getCreateTime));
+        //如果有驳回节点,只显示最后一次驳回后的流程审核信息
+        Optional<FlowAudit> opt = flowAudits.stream().filter(audit -> StrConstant.NO.equals(audit.getAuditResult())).findFirst();
+        if (opt.isPresent()) {
+            FlowAudit rejectedAudit = opt.get();
+            flowAudits = flowAudits.stream().filter(audit -> audit.getCreateTime().after(rejectedAudit.getCreateTime())).collect(Collectors.toList());
+        }
+
         //项目管理部审核
         flowAudits.stream()
                 .filter(audit -> GeneStatusEnum.PROJECT_MANAGEMENT.getStatus().equals(audit.getFlowStatus()) && StrConstant.YES.equals(audit.getAuditResult()))
                 .findFirst()
                 .ifPresent(audit -> {
                     dataMap.put("projectManagementDateStr", DateUtil.format(audit.getCreateTime(), DatePattern.CHINESE_DATE_PATTERN));
-                    dataMap.put("projectManagementSign", wordDataService.getBase64(audit.getCreateSign()));
+                    String base64 = wordDataService.getBase64(audit.getCreateSign());
+                    if (StrUtil.isNotBlank(base64)) {
+                        dataMap.put("projectManagementSign", base64);
+                    }
                 });
         //项目负责人审核
         flowAudits.stream()
@@ -368,7 +382,10 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
                 .findFirst()
                 .ifPresent(audit -> {
                     dataMap.put("projectLeaderDateStr", DateUtil.format(audit.getCreateTime(), DatePattern.CHINESE_DATE_PATTERN));
-                    dataMap.put("projectLeaderSign", wordDataService.getBase64(audit.getCreateSign()));
+                    String base64 = wordDataService.getBase64(audit.getCreateSign());
+                    if (StrUtil.isNotBlank(base64)) {
+                        dataMap.put("projectLeaderSign", base64);
+                    }
                     if (StrUtil.isNotBlank(audit.getAdditionalData())) {
                         JSONObject additionObj = JSON.parseObject(audit.getAdditionalData());
                         dataMap.put("leaderResult", StrConstant.YES.equals(additionObj.getOrDefault("leaderResult", "")));
@@ -413,7 +430,6 @@ public class FlowInfoServiceImpl extends ServiceImpl<FlowInfoMapper, FlowInfo> i
             }
         }
 
-
     }
 
     @Override