From 9285c08d5bd0232e43530c656e22755b28685bad Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Mon, 15 Jun 2026 18:41:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=8A=A0=E4=B8=8AdepartLevel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/pojo/entity/NegativeHistory.java | 8 ++++++++ .../biutag/supervision/service/NegativeService.java | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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)