From 3e23f9c65cd7a6c110d5b654a1a2429755a57a8a Mon Sep 17 00:00:00 2001 From: lzh Date: Sun, 25 Jan 2026 18:21:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(ops):=20=E6=89=A9=E5=B1=95=E8=A1=A8?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=B6=E9=95=BF=E7=BB=9F=E8=AE=A1=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 dispatchedTime: 最近下发时间 - 新增 firstDispatchedTime: 首次下发时间(不受暂停影响) - 新增 insertOrUpdateSelective 方法,保留 firstDispatchedTime 用于计算响应时长:arrivedTime - firstDispatchedTime - totalPauseSeconds Co-Authored-By: Claude Opus 4.5 --- .../workorder/OpsOrderCleanExtDO.java | 8 +++++++ .../workorder/OpsOrderCleanExtMapper.java | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/workorder/OpsOrderCleanExtDO.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/workorder/OpsOrderCleanExtDO.java index c68f12f..7599c05 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/workorder/OpsOrderCleanExtDO.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/dataobject/workorder/OpsOrderCleanExtDO.java @@ -42,6 +42,14 @@ public class OpsOrderCleanExtDO extends BaseDO { * 预计作业时长(分钟) */ private Integer expectedDuration; + /** + * 实际下发时间 + */ + private LocalDateTime dispatchedTime; + /** + * 首次下发时间(用于计算响应时长,不受暂停影响) + */ + private LocalDateTime firstDispatchedTime; /** * 实际到岗时间 */ diff --git a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/mysql/workorder/OpsOrderCleanExtMapper.java b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/mysql/workorder/OpsOrderCleanExtMapper.java index da47f82..f4848f5 100644 --- a/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/mysql/workorder/OpsOrderCleanExtMapper.java +++ b/viewsh-module-ops/viewsh-module-environment-biz/src/main/java/com/viewsh/module/ops/environment/dal/mysql/workorder/OpsOrderCleanExtMapper.java @@ -38,4 +38,26 @@ public interface OpsOrderCleanExtMapper extends BaseMapperX } } + /** + * 插入或选择性更新扩展信息 + *

+ * 只更新非空字段,且保留 firstDispatchedTime(已存在时不覆盖) + * + * @param entity 扩展信息实体 + * @return 影响行数 + */ + default int insertOrUpdateSelective(OpsOrderCleanExtDO entity) { + OpsOrderCleanExtDO existing = selectByOpsOrderId(entity.getOpsOrderId()); + if (existing == null) { + return insert(entity); + } else { + entity.setId(existing.getId()); + // 保留首次下发时间 + if (existing.getFirstDispatchedTime() != null && entity.getFirstDispatchedTime() != null) { + entity.setFirstDispatchedTime(existing.getFirstDispatchedTime()); + } + return updateById(entity); + } + } + }