diff --git a/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java b/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java index a4b7fcc..a23f4f5 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/NegativeHistory.java @@ -51,4 +51,12 @@ public class NegativeHistory { // 节点耗时(剔除节假日的秒数) private Long duration; + + @TableField(exist = false) + private String departId; + + @TableField(exist = false) + // 部门level + private Integer departLevel; + } \ 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 bfe4723..545af4f 100644 --- a/src/main/java/com/biutag/supervision/service/NegativeService.java +++ b/src/main/java/com/biutag/supervision/service/NegativeService.java @@ -134,11 +134,19 @@ public class NegativeService extends ServiceImpl { if (StrUtil.isNotBlank(vo.getProblemSourcesCode())) { vo.setFileClasses(fileClassService.list(vo.getProblemSourcesCode())); } - // 计算每个节点的用时(剔除节假日) + // 计算每个节点的用时(剔除节假日),并回填部门ID 最多十几条记录 对性能影响不大,直接查 for (int i = 0; i < flows.size(); i++) { LocalDateTime currentTime = flows.get(i).getCrtTime(); LocalDateTime previousTime = i == 0 ? negative.getCrtTime() : flows.get(i - 1).getCrtTime(); flows.get(i).setDuration(TimeUtil.calculateWorkdayDuration(previousTime, currentTime)); + if (StrUtil.isNotBlank(flows.get(i).getDepartName())) { + String departName = flows.get(i).getDepartName(); + SupDepart depart = departService.getOne(new LambdaQueryWrapper().and(wrapper -> wrapper.eq(SupDepart::getName, departName).or().eq(SupDepart::getShortName, departName)).last("LIMIT 1")); + if (Objects.nonNull(depart)) { + flows.get(i).setDepartId(depart.getId()); + flows.get(i).setDepartLevel(depart.getLevel()); + } + } } NegativeDetail detail = new NegativeDetail() .setNegative(vo)