From cfd0972889eaec4f92af33083cecd732d9325776 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 9 Mar 2026 09:25:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E6=B7=BB=E5=8A=A0PDA=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=8F=82=E6=95=B0=E6=9B=B4=E6=96=B0VO=E5=92=8C?= =?UTF-8?q?=E5=B7=A1=E6=A3=80=E8=AE=A1=E5=88=92=E4=BA=8B=E5=8A=A1=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增DmsPdaDeviceParamUpdateVo用于PDA设备参数手工更新请求 - 添加deviceCode、deviceId和paramValue字段支持设备标识和参数值传递 - 创建DmsPlanInspectTxService提供独立事务隔离的计划时间更新功能 - 使用REQUIRES_NEW传播行为确保计划推进不影响工单生成事务 - 实现updatePlanNextTimeInNewTx方法处理巡检计划时间更新逻辑 --- .../domain/vo/DmsPdaDeviceParamUpdateVo.java | 22 +++++++++++++++ .../service/impl/DmsPlanInspectTxService.java | 27 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 aucma-dms/src/main/java/com/aucma/dms/domain/vo/DmsPdaDeviceParamUpdateVo.java create mode 100644 aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectTxService.java diff --git a/aucma-dms/src/main/java/com/aucma/dms/domain/vo/DmsPdaDeviceParamUpdateVo.java b/aucma-dms/src/main/java/com/aucma/dms/domain/vo/DmsPdaDeviceParamUpdateVo.java new file mode 100644 index 0000000..a83fb2e --- /dev/null +++ b/aucma-dms/src/main/java/com/aucma/dms/domain/vo/DmsPdaDeviceParamUpdateVo.java @@ -0,0 +1,22 @@ +package com.aucma.dms.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * PDA设备参数手工更新请求对象。 + * 仅暴露设备标识与参数值,避免前端直接透传完整实体字段。 + */ +@Data +public class DmsPdaDeviceParamUpdateVo { + + /** 设备编码(可选,与deviceId至少传一个) */ + private String deviceCode; + + /** 设备主键(可选,与deviceCode至少传一个) */ + private Long deviceId; + + /** 参数值(运行时间/当日产量),按数字接收,最多2位小数 */ + private BigDecimal paramValue; +} diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectTxService.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectTxService.java new file mode 100644 index 0000000..91a8529 --- /dev/null +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectTxService.java @@ -0,0 +1,27 @@ +package com.aucma.dms.service.impl; + +import com.aucma.dms.mapper.DmsPlanInspectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +/** + * 巡检计划事务隔离服务。 + * 单独使用 REQUIRES_NEW 推进计划时间,避免影响已提交的工单生成事务。 + */ +@Service +public class DmsPlanInspectTxService { + + @Autowired + private DmsPlanInspectMapper dmsPlanInspectMapper; + + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + public int updatePlanNextTimeInNewTx(Long planInspectId, Date nextTime) { + // 单独新事务提交计划推进: + // 该事务失败时,不影响已经成功提交的工单生成事务。 + return dmsPlanInspectMapper.updatePlanNextTime(planInspectId, nextTime); + } +}