diff --git a/src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java b/src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java index 952b0ce..5d6c831 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/NegativeCountersign.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; @@ -59,4 +60,21 @@ public class NegativeCountersign { private String state; + + @Schema(description = "会签人姓名") + @TableField(exist = false) + private String signUserName; + + @Schema(description = "会签人账号") + @TableField(exist = false) + private String signUserAccount; + + @Schema(description = "会签时间") + @TableField(exist = false) + private String signTime; + + @TableField(exist = false) + @Schema(description = "加上父级部门名字") + private String departPName; + } \ No newline at end of file diff --git a/src/main/java/com/biutag/supervision/service/NegativeService.java b/src/main/java/com/biutag/supervision/service/NegativeService.java index 9499eb2..4b8ff5b 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeService.java @@ -1,6 +1,7 @@ package com.biutag.supervision.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -18,6 +19,7 @@ import com.biutag.supervision.constants.enums.*; import com.biutag.supervision.flow.FlowService; import com.biutag.supervision.mapper.NegativeMapper; import com.biutag.supervision.pojo.domain.Blame; +import com.biutag.supervision.pojo.domain.CountersignApply; import com.biutag.supervision.pojo.domain.NegativeDetail; import com.biutag.supervision.pojo.domain.NegativeVo; import com.biutag.supervision.pojo.dto.ActionDto; @@ -37,10 +39,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -169,6 +168,7 @@ public class NegativeService extends ServiceImpl { } // 单位会签 detail.setCountersignApplys(countersignApplyService.list(id)); + enrichCountersignsWithHistory(detail); return detail; } @@ -383,11 +383,12 @@ public class NegativeService extends ServiceImpl { /** * 生成样本源头编号 + * * @param problemSourcesCode * @return */ public String generateOriginId(String problemSourcesCode, String businessTypeCode) { - String originId = String.format("%s_%s_%s%s", StrUtil.isBlank(problemSourcesCode) ? "" : ProblemSourcesEnum.get(problemSourcesCode).name(), + String originId = String.format("%s_%s_%s%s", StrUtil.isBlank(problemSourcesCode) ? "" : ProblemSourcesEnum.get(problemSourcesCode).name(), StrUtil.isBlank(businessTypeCode) ? "" : BusinessTypeEnum.get(businessTypeCode).getKey(), DateUtil.format(new Date(), DatePattern.PURE_DATE_FORMAT), RandomUtil.randomString(4)); @@ -420,4 +421,45 @@ public class NegativeService extends ServiceImpl { return true; } + private void enrichCountersignsWithHistory(NegativeDetail detail) { + List histories = detail.getActionHistory(); + List applys = detail.getCountersignApplys(); + if (CollUtil.isEmpty(histories) || CollUtil.isEmpty(applys)) { + return; + } + // 1. 按部门 + Map countersignHistoryMap = new HashMap<>(); + for (NegativeHistory history : histories) { + if ("提交会签".equals(history.getActionName()) && StrUtil.isNotBlank(history.getDepartName())) { + countersignHistoryMap.put(history.getDepartName(), history); + } + } + if (countersignHistoryMap.isEmpty()) { + return; + } + // 2. 回填会签人信息 校验部门 + for (CountersignApply apply : applys) { + List countersigns = apply.getCountersigns(); + if (CollUtil.isEmpty(countersigns)) { + continue; + } + for (NegativeCountersign countersign : countersigns) { + NegativeHistory history = countersignHistoryMap.get(countersign.getDepartName()); + if (history != null) { + countersign.setSignUserName(history.getCrtName()); + countersign.setSignUserAccount(history.getCrtUserName()); + countersign.setSignTime(history.getCrtTime().toString()); + } + String departId = countersign.getDepartId(); + SupDepart byId = departService.getById(departId); + if (3==byId.getLevel()){ + SupDepart byPid = departService.getById(byId.getPid()); + String frontShortName = byPid.getShortName(); + String backedShortName = byId.getShortName(); + countersign.setDepartPName(frontShortName+"/"+backedShortName); + } + } + } + } + }