From 9d60b0cd78e7d50e8776b852c7054a0ea502133d Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Mon, 9 Feb 2026 08:50:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E5=AE=8C=E5=96=84=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=94=9F=E6=88=90=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E5=92=8C=E4=BF=9D=E5=85=BB=E5=B7=A5=E5=8D=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增countByPlanIdAndToday方法检查计划今日是否已生成工单 - 实现insertCompletedInspectInstance方法创建已完成巡检工单 - 实现insertCompletedMaintInstance方法创建已完成保养工单 - 添加selectDeviceIdsByRouteId和selectDeviceIdsByPlanId查询设备ID列表 - 更新巡检计划表结构增加cron_expression字段 - 重构定时任务使用Mapper替代JdbcTemplate提高性能 - 优化巡检计划下次执行时间计算支持cron表达式 - 修复序列名称前缀问题统一使用HAIWEI前缀 - 添加日志记录和异常处理增强系统稳定性 --- .../mapper/DmsBillsInspectInstanceMapper.java | 7 ++ .../mapper/DmsBillsMaintInstanceMapper.java | 8 ++ .../mapper/DmsInspectRouteDetailMapper.java | 8 ++ .../dms/mapper/DmsPlanInspectMapper.java | 17 +++ .../dms/mapper/DmsPlanMaintDetailMapper.java | 7 ++ .../aucma/dms/mapper/DmsPlanMaintMapper.java | 17 +++ .../IDmsBillsInspectInstanceService.java | 8 ++ .../IDmsBillsMaintInstanceService.java | 8 ++ .../DmsBillsInspectInstanceServiceImpl.java | 77 ++++++++++-- .../DmsBillsMaintInstanceServiceImpl.java | 85 +++++++++++++ .../DmsInspectRouteDetailServiceImpl.java | 2 + .../impl/DmsPlanInspectServiceImpl.java | 114 ++++++++++-------- .../impl/DmsPlanMaintDetailServiceImpl.java | 7 -- .../service/impl/DmsPlanMaintServiceImpl.java | 105 +++++++++------- .../dms/DmsBillsInspectInstanceMapper.xml | 8 ++ .../mapper/dms/DmsBillsMaintDetailMapper.xml | 2 +- .../dms/DmsBillsMaintDetailProjectMapper.xml | 2 +- .../dms/DmsBillsMaintInstanceMapper.xml | 10 +- .../dms/DmsInspectRouteDetailMapper.xml | 9 +- .../mapper/dms/DmsPlanInspectMapper.xml | 30 ++++- .../mapper/dms/DmsPlanMaintDetailMapper.xml | 9 +- .../mapper/dms/DmsPlanMaintMapper.xml | 57 +++++++-- .../mapper/dms/DmsPlanRepairMapper.xml | 2 +- 23 files changed, 466 insertions(+), 133 deletions(-) diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsInspectInstanceMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsInspectInstanceMapper.java index a2b5962..05552eb 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsInspectInstanceMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsInspectInstanceMapper.java @@ -84,4 +84,11 @@ public interface DmsBillsInspectInstanceMapper int selectUnCompletedInstance(@Param("inspectInstanceId") Long inspectInstanceId); int selectAllInstance(@Param("inspectInstanceId")Long inspectInstanceId); + + /** + * 检查指定计划今天是否已生成工单 + * @param planInspectId 计划ID + * @return 工单数量 + */ + int countByPlanIdAndToday(@Param("planInspectId") Long planInspectId); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsMaintInstanceMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsMaintInstanceMapper.java index b987edc..38c824e 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsMaintInstanceMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsBillsMaintInstanceMapper.java @@ -4,6 +4,7 @@ import com.aucma.dms.domain.DmsBillsMaintDetail; import com.aucma.dms.domain.DmsBillsMaintDetailProject; import com.aucma.dms.domain.DmsBillsMaintInstance; import com.aucma.dms.domain.DmsMaintInstanceActivity; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -84,4 +85,11 @@ public interface DmsBillsMaintInstanceMapper { int batchDmsProject(List list); List selectDmsMaintInfo(Long maintInstanceId); + + /** + * 检查指定计划今天是否已生成工单 + * @param planMaintId 计划ID + * @return 工单数量 + */ + int countByPlanIdAndToday(@Param("planMaintId") Long planMaintId); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsInspectRouteDetailMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsInspectRouteDetailMapper.java index 8258515..ec355bb 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsInspectRouteDetailMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsInspectRouteDetailMapper.java @@ -1,6 +1,7 @@ package com.aucma.dms.mapper; import com.aucma.dms.domain.DmsInspectRouteDetail; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -62,4 +63,11 @@ public interface DmsInspectRouteDetailMapper List selectInspectRouteListByInspectRouteId(Long inspectRouteId); + /** + * 查询巡检路线下的所有设备ID列表 + * @param inspectRouteId 巡检路线ID + * @return 设备ID列表(machine_id) + */ + List selectDeviceIdsByRouteId(@Param("inspectRouteId") Long inspectRouteId); + } diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanInspectMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanInspectMapper.java index c2558c9..e2e2a55 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanInspectMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanInspectMapper.java @@ -1,7 +1,9 @@ package com.aucma.dms.mapper; import com.aucma.dms.domain.DmsPlanInspect; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -63,4 +65,19 @@ public interface DmsPlanInspectMapper DmsPlanInspect selectPlanInspectJoinJobByInspectId(Long planInspectId); DmsPlanInspect selectPlanInspectJoinJobByInspectId1(String planInspectId); + /** + * 查询待执行的巡检计划列表 + * @return 待执行的巡检计划列表 + */ + List selectPendingInspectPlans(); + + /** + * 更新巡检计划的下次执行时间 + * @param planInspectId 计划ID + * @param planTime 下次执行时间 + * @return 更新结果 + */ + int updatePlanNextTime(@Param("planInspectId") Long planInspectId, + @Param("planTime") Date planTime); + } diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintDetailMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintDetailMapper.java index 2f10452..e9029f0 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintDetailMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintDetailMapper.java @@ -77,4 +77,11 @@ public interface DmsPlanMaintDetailMapper Long selectStandardId(@Param("stationId") Long stationId); + + /** + * 查询保养计划下的所有设备ID列表 + * @param planMaintId 计划ID + * @return 设备ID列表 + */ + List selectDeviceIdsByPlanId(@Param("planMaintId") Long planMaintId); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintMapper.java b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintMapper.java index 831f20f..e73a742 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintMapper.java +++ b/aucma-dms/src/main/java/com/aucma/dms/mapper/DmsPlanMaintMapper.java @@ -2,7 +2,9 @@ package com.aucma.dms.mapper; import com.aucma.dms.domain.DmsPlanMaint; import com.aucma.dms.domain.DmsPlanMaintDetail; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -106,4 +108,19 @@ public interface DmsPlanMaintMapper */ public DmsPlanMaint selectPlanMaintJoinJobByPlanMaintId(Long planMaintId); + /** + * 查询待执行的保养计划列表 + * @return 待执行的保养计划列表 + */ + List selectPendingMaintPlans(); + + /** + * 更新保养计划的下次执行时间 + * @param planMaintId 计划ID + * @param maintTime 下次执行时间 + * @return 更新结果 + */ + int updatePlanNextTime(@Param("planMaintId") Long planMaintId, + @Param("maintTime") Date maintTime); + } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsInspectInstanceService.java b/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsInspectInstanceService.java index 9733f12..2151725 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsInspectInstanceService.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsInspectInstanceService.java @@ -106,4 +106,12 @@ public interface IDmsBillsInspectInstanceService * @return 结果 */ public int updateDeviceStatus(DmsInspectInstanceDetail detail); + + /** + * 定时任务专用:创建已完成状态的巡检工单(含明细),路线所有设备默认正常 + * + * @param dmsBillsInspectInstance 巡检工单(需设置planInspectId、inspectRouteId、inspectType等) + * @return 结果 + */ + int insertCompletedInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsMaintInstanceService.java b/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsMaintInstanceService.java index 4001822..19ead5c 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsMaintInstanceService.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/IDmsBillsMaintInstanceService.java @@ -105,4 +105,12 @@ public interface IDmsBillsMaintInstanceService * @return 结果 */ public int updateDeviceStatus(DmsBillsMaintDetail detail); + + /** + * 定时任务专用:创建已完成状态的保养工单(含明细),所有设备默认保养完成 + * + * @param planMaintCode 保养计划编号 + * @return 结果 + */ + int insertCompletedMaintInstance(String planMaintCode); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java index 8a37cb8..15438cb 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java @@ -1,18 +1,5 @@ package com.aucma.dms.service.impl; -//import com.hw.common.core.constant.DmsConstants; -//import com.hw.common.core.constant.SecurityConstants; -//import com.hw.common.core.exception.ServiceException; -//import com.hw.common.core.utils.DateUtils; -//import com.hw.common.core.utils.StringUtils; -//import com.hw.common.security.utils.SecurityUtils; -//import com.aucma.dms.domain.*; -//import com.aucma.dms.domain.vo.DmsBillsInspectInstanceScanVo; -//import com.aucma.dms.mapper.*; -//import com.aucma.dms.service.IDmsBillsInspectInstanceService; -//import com.hw.system.api.RemoteSysCommonService; -//import com.hw.system.api.model.LoginUser; - import com.aucma.common.constant.DmsConstants; import com.aucma.common.core.domain.model.LoginUser; import com.aucma.common.exception.ServiceException; @@ -402,6 +389,70 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta } + /** + * 定时任务专用:创建已完成状态的巡检工单(含明细),路线所有设备默认正常 + * 不依赖SecurityUtils,适合在定时任务上下文中调用 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertCompletedInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance) { + Date now = new Date(); + + // 1. 设置工单为已完成状态 + dmsBillsInspectInstance.setCreateTime(now); + dmsBillsInspectInstance.setIsFlag("1"); + dmsBillsInspectInstance.setInspectStatus(DmsConstants.DMS_BILLS_INSPECT_INSTANCE_INSPECT_STATUS_FINISH); // 3=已完成 + dmsBillsInspectInstance.setPlanBeginTime(now); + dmsBillsInspectInstance.setPlanEndTime(now); + dmsBillsInspectInstance.setRealBeginTime(now); + dmsBillsInspectInstance.setRealEndTime(now); + if (dmsBillsInspectInstance.getCreateBy() == null) { + dmsBillsInspectInstance.setCreateBy(-1L); + } + + int i = dmsBillsInspectInstanceMapper.insertDmsBillsInspectInstance(dmsBillsInspectInstance); + + // 2. 创建工单实例节点(第一步) + DmsBillsInspectInstanceActivity activity = new DmsBillsInspectInstanceActivity(); + activity.setInspectInstanceId(dmsBillsInspectInstance.getInspectInstanceId()); + activity.setInspectRouteId(dmsBillsInspectInstance.getInspectRouteId()); + activity.setDeviceAmount(dmsBillsInspectInstance.getDeviceAmount()); + activity.setPerformer(dmsBillsInspectInstance.getPerformer()); + activity.setProcessStepOrder(1L); + activity.setProcessHandleStatus("3"); // 已完成 + dmsBillsInspectInstanceActivityMapper.insertDmsBillsInspectInstanceActivity(activity); + + // 3. 创建巡检工单明细:路线所有设备均为正常/已完成状态 + if (dmsBillsInspectInstance.getInspectRouteId() != null) { + DmsInspectRouteDetail queryRouteDetail = new DmsInspectRouteDetail(); + queryRouteDetail.setInspectRouteId(dmsBillsInspectInstance.getInspectRouteId()); + List routeDetails = dmsInspectRouteDetailMapper.selectDmsInspectRouteDetailList(queryRouteDetail); + + for (DmsInspectRouteDetail routeDetail : routeDetails) { + DmsInspectInstanceDetail detail = new DmsInspectInstanceDetail(); + Long deviceId = routeDetail.getDeviceId(); + detail.setInspectInstanceId(dmsBillsInspectInstance.getInspectInstanceId()); + detail.setLineStep(routeDetail.getLineStep()); + detail.setDeviceId(deviceId); + detail.setInstanceDetailStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_STATUS_FINISH); // 3=已完成 + detail.setInspectStandard(routeDetail.getInspectStandard()); + detail.setInspectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_INSPECT_STATUS_PASS); // 1=正常/合格 + dmsInspectInstanceDetailMapper.insertDmsInspectInstanceDetail(detail); + + // 创建明细项目记录 + Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(routeDetail.getInspectStandard()); + DmsInspectInstanceDetailProject detailProject = new DmsInspectInstanceDetailProject(); + detailProject.setInstanceDetailId(detail.getInstanceDetailId()); + detailProject.setInspectProjectId(projectId); + detailProject.setCreateTime(now); + detailProject.setInspectProjectStatus(DmsConstants.DMS_INSPECT_INSTANCE_DETAIL_PROJECT_STATUS_PASS); // 1=合格 + dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(detailProject); + } + } + + return i; + } + /** * 获取工单设备列表(网页版巡检执行) */ diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java index 848cffc..91795d3 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java @@ -8,10 +8,13 @@ import com.aucma.common.utils.uuid.Seq; import com.aucma.dms.domain.*; import com.aucma.dms.mapper.*; import com.aucma.dms.service.IDmsBillsMaintInstanceService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -26,6 +29,8 @@ import java.util.stream.Collectors; */ @Service public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceService { + private static final Logger log = LoggerFactory.getLogger(DmsBillsMaintInstanceServiceImpl.class); + @Autowired private DmsBillsMaintInstanceMapper dmsBillsMaintInstanceMapper; @Autowired @@ -399,4 +404,84 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS return result; } + /** + * 定时任务专用:创建已完成状态的保养工单(含明细),所有设备默认保养完成 + * 不依赖SecurityUtils,适合在定时任务上下文中调用 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertCompletedMaintInstance(String planMaintCode) { + String planMaintCodeS = planMaintCode.replaceAll("\"", ""); + DmsPlanMaint dmsPlanMaint = dmsPlanMaintMapper.selectDmsPlanMaintJoinByPlanMaintCode(planMaintCodeS); + List planMaintDetails = dmsPlanMaint.getDmsPlanMaintDetailList(); + if (planMaintDetails == null || planMaintDetails.isEmpty()) { + log.warn("保养计划[{}]无明细数据,跳过生成工单", planMaintCode); + return 0; + } + + Date now = new Date(); + DmsBillsMaintInstance instance = new DmsBillsMaintInstance(); + + instance.setCreateTime(now); + instance.setPlanBeginTime(now); + instance.setPlanEndTime(now); + instance.setRealBeginTime(now); + instance.setRealEndTime(now); + instance.setPlanMaintId(dmsPlanMaint.getPlanMaintId()); + instance.setBillsMaintCode(Seq.getId(Seq.maintInstanceSeqType, Seq.maintInstanceCode)); + instance.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE); // 已完成 + instance.setMaintCompRate(BigDecimal.valueOf(100)); // 完成率100% + instance.setMaintGroup(dmsPlanMaint.getMaintGroup()); + instance.setMaintSupervisor(dmsPlanMaint.getMaintSupervisor()); + instance.setMaintLevel(dmsPlanMaint.getMaintLevel()); + instance.setIsFlag(1L); + instance.setCreateBy(-1L); + + int i = dmsBillsMaintInstanceMapper.insertDmsBillsMaintInstance(instance); + + // 创建工单实例节点(第一步) + DmsMaintInstanceActivity activity = new DmsMaintInstanceActivity(); + activity.setMaintInstanceId(instance.getMaintInstanceId()); + activity.setProcessStepOrder(1L); + activity.setProcessHandleStatus("3"); // 已完成 + dmsMaintInstanceActivityMapper.insertDmsMaintInstanceActivity(activity); + + // 创建保养工单明细(所有设备均为已完成状态) + List billsMaintDetails = new ArrayList<>(); + for (DmsPlanMaintDetail planDetail : planMaintDetails) { + DmsBillsMaintDetail detail = new DmsBillsMaintDetail(); + detail.setMaintInstanceId(instance.getMaintInstanceId()); + detail.setDeviceId(planDetail.getDeviceId()); + detail.setStationId(planDetail.getMaintStationId()); + detail.setMaintStandardId(planDetail.getMaintStandardId()); + detail.setIsFlag(1L); + detail.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE); // 已完成 + detail.setCreateTime(now); + billsMaintDetails.add(detail); + } + dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails); + + // 创建保养工单明细项目(所有项目均为已完成状态) + List insertedDetails = dmsBillsMaintDetailMapper.selectDetailList(instance.getMaintInstanceId()); + ArrayList projectList = new ArrayList<>(); + for (DmsBillsMaintDetail detail : insertedDetails) { + List projects = dmsBillsMaintDetailMapper.selectPrjectIds(detail.getStationId()); + for (DmsBaseMaintProject project : projects) { + DmsBillsMaintDetailProject detailProject = new DmsBillsMaintDetailProject(); + detailProject.setBillsMaintDetailId(detail.getBillsMaintDetailId()); + detailProject.setMaintProjectId(project.getMaintProjectId()); + detailProject.setMaintProjectName(project.getMaintProjectName()); + detailProject.setMaintProjectDesc(project.getMaintProjectDesc()); + detailProject.setMaintProjectStatus(DmsConstants.DMS_MAINT_PROJECT_STATUS_COMPLETE); // 已完成 + detailProject.setCreateTime(now); + projectList.add(detailProject); + } + } + if (!projectList.isEmpty()) { + dmsBillsMaintInstanceMapper.batchDmsProject(projectList); + } + + return i; + } + } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsInspectRouteDetailServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsInspectRouteDetailServiceImpl.java index 462ede6..a837113 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsInspectRouteDetailServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsInspectRouteDetailServiceImpl.java @@ -57,6 +57,8 @@ public class DmsInspectRouteDetailServiceImpl implements IDmsInspectRouteDetailS @Override public int insertDmsInspectRouteDetail(DmsInspectRouteDetail dmsInspectRouteDetail) { + // 避免外部传入固定主键导致序列失效,强制使用序列生成 + dmsInspectRouteDetail.setRouteDetailId(null); fillMachineIdIfAbsent(dmsInspectRouteDetail); return dmsInspectRouteDetailMapper.insertDmsInspectRouteDetail(dmsInspectRouteDetail); } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java index d79ea8f..d17da40 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanInspectServiceImpl.java @@ -4,19 +4,20 @@ import com.aucma.common.core.domain.model.LoginUser; import com.aucma.common.utils.DateUtils; import com.aucma.common.utils.SecurityUtils; import com.aucma.common.utils.uuid.Seq; +import com.aucma.dms.domain.DmsBillsInspectInstance; import com.aucma.dms.domain.DmsPlanInspect; import com.aucma.dms.mapper.DmsBaseInspectRouteMapper; +import com.aucma.dms.mapper.DmsBillsInspectInstanceMapper; import com.aucma.dms.mapper.DmsPlanInspectMapper; +import com.aucma.dms.service.IDmsBillsInspectInstanceService; import com.aucma.dms.service.IDmsPlanInspectService; import com.aucma.quartz.util.CronUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; - -import java.util.Map; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; @@ -38,9 +39,12 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService private RemoteJobService remoteJobService;*/ @Autowired private DmsBaseInspectRouteMapper dmsBaseInspectRouteMapper; - + @Autowired - private JdbcTemplate jdbcTemplate; + private DmsBillsInspectInstanceMapper dmsBillsInspectInstanceMapper; + + @Autowired + private IDmsBillsInspectInstanceService dmsBillsInspectInstanceService; /** * 查询巡检计划信息 @@ -157,6 +161,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService //通过cron表达式获取下一次执行时间 Date nextExecution = CronUtils.getNextExecution(time); dmsPlanInspect.setPlanTime(nextExecution); + dmsPlanInspect.setCronExpression(cron); dmsPlanInspect.setPlanInspectCode(planInspectCode); // dmsPlanInspect.setJobId(jobIdR.getData().longValue()); @@ -222,74 +227,87 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService /** * 定时任务:每天0点根据巡检计划生成巡检工单 + * 使用Mapper替代JdbcTemplate,生成已完成状态工单,工单中所有设备默认正常 + * 若有异常可在网页端维护工单明细中的设备状态 * cron表达式:秒 分 时 日 月 周 */ @Scheduled(cron = "0 0 0 * * ?") + @Transactional(rollbackFor = Exception.class) public void generateDailyInspectWorkOrders() { log.info("========== 开始执行巡检工单生成任务 =========="); int count = 0; + int skipCount = 0; try { - // 查询今天需要执行的巡检计划(plan_time <= 今天) - String sql = "SELECT plan_inspect_id, plan_inspect_code, inspect_type, inspect_route_id, " + - "device_amount, time_limit, cycle_period, performer " + - "FROM dms_plan_inspect " + - "WHERE (is_flag = '1' OR is_flag IS NULL) " + - "AND plan_time <= TRUNC(SYSDATE) + 1"; - - List> plans = jdbcTemplate.queryForList(sql); - - for (Map plan : plans) { + // 通过Mapper查询今天需要执行的巡检计划(plan_time <= 今天) + List plans = dmsPlanInspectMapper.selectPendingInspectPlans(); + + for (DmsPlanInspect plan : plans) { try { - Long planInspectId = ((Number) plan.get("PLAN_INSPECT_ID")).longValue(); - String planInspectCode = (String) plan.get("PLAN_INSPECT_CODE"); - Long inspectRouteId = plan.get("INSPECT_ROUTE_ID") != null ? - ((Number) plan.get("INSPECT_ROUTE_ID")).longValue() : null; - - // 检查今天是否已生成工单(避免重复) - String checkSql = "SELECT COUNT(1) FROM dms_bills_inspect_instance " + - "WHERE plan_inspect_code = ? AND TRUNC(create_time) = TRUNC(SYSDATE)"; - Integer existCount = jdbcTemplate.queryForObject(checkSql, Integer.class, planInspectCode); - - if (existCount != null && existCount > 0) { + Long planInspectId = plan.getPlanInspectId(); + String planInspectCode = plan.getPlanInspectCode(); + Long inspectRouteId = plan.getInspectRouteId(); + + if (planInspectCode == null || planInspectCode.isEmpty()) { + log.warn("巡检计划ID[{}]编号为空,跳过", planInspectId); + skipCount++; + continue; + } + + // 通过Mapper检查今天是否已生成工单(避免重复) + int existCount = dmsBillsInspectInstanceMapper.countByPlanIdAndToday(planInspectId); + if (existCount > 0) { log.debug("巡检计划[{}]今天已生成工单,跳过", planInspectCode); continue; } - - // 生成巡检工单 + + // 构建巡检工单对象(工单中所有设备状态默认为正常,异常可在网页端维护) String billsCode = Seq.getId(Seq.dmsBillsFaultInstanceSeqType, "XJ"); - String insertSql = "INSERT INTO dms_bills_inspect_instance " + - "(inspect_instance_id, bills_inspect_code, plan_inspect_code, plan_inspect_id, " + - "inspect_route_id, bills_status, is_flag, create_time, create_by) " + - "VALUES (SEQ_DMS_BILLS_INSPECT_INSTANCE.NEXTVAL, ?, ?, ?, ?, '0', '1', SYSDATE, -1)"; - - jdbcTemplate.update(insertSql, billsCode, planInspectCode, planInspectId, inspectRouteId); + DmsBillsInspectInstance instance = new DmsBillsInspectInstance(); + instance.setBillsInspectCode(billsCode); + instance.setPlanInspectId(planInspectId); + instance.setInspectRouteId(inspectRouteId); + instance.setInspectType(plan.getInspectType()); + instance.setDeviceAmount(plan.getDeviceAmount()); + instance.setPerformer(plan.getPerformer()); + instance.setCreateBy(-1L); + + // 通过Service创建已完成状态的巡检工单(含明细,路线所有设备正常) + dmsBillsInspectInstanceService.insertCompletedInspectInstance(instance); count++; - log.info("已为巡检计划[{}]生成工单[{}]", planInspectCode, billsCode); - - // 更新计划的下次执行时间(根据周期计算) - updateInspectPlanNextTime(planInspectId); - + log.info("已为巡检计划[{}]生成已完成工单[{}]", planInspectCode, billsCode); + + // 更新计划的下次执行时间(根据cron表达式或默认+1天) + updateInspectPlanNextTime(plan); + } catch (Exception e) { - log.error("为巡检计划生成工单失败: {}", e.getMessage()); + log.error("为巡检计划[{}]生成工单失败: {}", plan.getPlanInspectCode(), e.getMessage(), e); } } } catch (Exception e) { log.error("查询巡检计划失败", e); } - log.info("========== 巡检工单生成任务完成,生成数量: {} ==========", count); + log.info("========== 巡检工单生成任务完成,生成数量: {},跳过数量: {} ==========", count, skipCount); } - + /** * 更新巡检计划的下次执行时间 + * 优先使用cron表达式计算,无cron则默认+1天 */ - private void updateInspectPlanNextTime(Long planInspectId) { + private void updateInspectPlanNextTime(DmsPlanInspect plan) { try { - // 根据周期计算下次执行时间(默认+1天) - String updateSql = "UPDATE dms_plan_inspect SET plan_time = TRUNC(SYSDATE) + 1, update_time = SYSDATE WHERE plan_inspect_id = ?"; - jdbcTemplate.update(updateSql, planInspectId); - log.debug("更新巡检计划[{}]下次执行时间", planInspectId); + Date nextTime = null; + String cronExpression = plan.getCronExpression(); + if (cronExpression != null && !cronExpression.isEmpty()) { + nextTime = CronUtils.getNextExecution(cronExpression); + } + if (nextTime == null) { + // 默认下次执行时间为明天 + nextTime = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000L); + } + dmsPlanInspectMapper.updatePlanNextTime(plan.getPlanInspectId(), nextTime); + log.debug("更新巡检计划[{}]下次执行时间: {}", plan.getPlanInspectCode(), nextTime); } catch (Exception e) { - log.warn("更新巡检计划下次执行时间失败: {}", e.getMessage()); + log.warn("更新巡检计划[{}]下次执行时间失败: {}", plan.getPlanInspectCode(), e.getMessage()); } } } diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintDetailServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintDetailServiceImpl.java index e055d79..016dd00 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintDetailServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintDetailServiceImpl.java @@ -1,12 +1,5 @@ package com.aucma.dms.service.impl; -//import com.hw.common.core.exception.ServiceException; -//import com.hw.common.core.utils.DateUtils; -//import com.hw.common.security.utils.SecurityUtils; -//import com.aucma.dms.domain.DmsPlanMaintDetail; -//import com.aucma.dms.mapper.DmsPlanMaintDetailMapper; -//import com.aucma.dms.service.IDmsPlanMaintDetailService; - import com.aucma.common.exception.ServiceException; import com.aucma.common.utils.DateUtils; import com.aucma.common.utils.SecurityUtils; diff --git a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintServiceImpl.java b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintServiceImpl.java index 496ffa9..9859622 100644 --- a/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintServiceImpl.java +++ b/aucma-dms/src/main/java/com/aucma/dms/service/impl/DmsPlanMaintServiceImpl.java @@ -8,19 +8,18 @@ import com.aucma.common.utils.StringUtils; import com.aucma.common.utils.uuid.Seq; import com.aucma.dms.domain.DmsPlanMaint; import com.aucma.dms.domain.DmsPlanMaintDetail; +import com.aucma.dms.mapper.DmsBillsMaintInstanceMapper; import com.aucma.dms.mapper.DmsPlanMaintMapper; +import com.aucma.dms.service.IDmsBillsMaintInstanceService; import com.aucma.dms.service.IDmsPlanMaintService; import com.aucma.quartz.util.CronUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Map; - import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -38,9 +37,12 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService { @Autowired private DmsPlanMaintMapper dmsPlanMaintMapper; - + @Autowired - private JdbcTemplate jdbcTemplate; + private DmsBillsMaintInstanceMapper dmsBillsMaintInstanceMapper; + + @Autowired + private IDmsBillsMaintInstanceService dmsBillsMaintInstanceService; /* @Autowired private RemoteJobService remoteJobService;*/ @@ -138,6 +140,7 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService { //通过cron表达式获取下一次执行时间 Date nextExecution = CronUtils.getNextExecution(time); dmsPlanMaint.setMaintTime(nextExecution); + dmsPlanMaint.setCronExpression(cron); // dmsPlanMaint.setJobId(jobIdR.getData().longValue()); dmsPlanMaint.setPlanMaintCode(planMaintCode); Long timeLimitDays = dmsPlanMaint.getTimeLimitDays()==null?0L:dmsPlanMaint.getTimeLimitDays(); @@ -285,63 +288,75 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService { /** * 定时任务:每天0点根据保养计划生成保养工单 + * 使用Mapper替代JdbcTemplate,生成已完成状态工单,工单中所有设备默认保养完成 + * 若有异常可在网页端维护工单明细中的设备状态 * cron表达式:秒 分 时 日 月 周 */ @Scheduled(cron = "0 0 0 * * ?") + @Transactional(rollbackFor = Exception.class) public void generateDailyMaintWorkOrders() { log.info("========== 开始执行保养工单生成任务 =========="); int count = 0; + int skipCount = 0; try { - // 查询今天需要执行的保养计划(maint_time <= 今天) - String sql = "SELECT plan_maint_id, plan_maint_code, maint_level, maint_group, " + - "maint_supervisor, time_limit, cycle_period, cron_expression " + - "FROM dms_plan_maint " + - "WHERE (is_flag = 0 OR is_flag IS NULL) " + - "AND maint_time <= TRUNC(SYSDATE) + 1"; - - List> plans = jdbcTemplate.queryForList(sql); - - for (Map plan : plans) { + // 通过Mapper查询今天需要执行的保养计划(maint_time <= 今天) + List plans = dmsPlanMaintMapper.selectPendingMaintPlans(); + + for (DmsPlanMaint plan : plans) { try { - Long planMaintId = ((Number) plan.get("PLAN_MAINT_ID")).longValue(); - String planMaintCode = (String) plan.get("PLAN_MAINT_CODE"); - - // 检查今天是否已生成工单(避免重复) - String checkSql = "SELECT COUNT(1) FROM dms_bills_maint_instance " + - "WHERE plan_maint_code = ? AND TRUNC(create_time) = TRUNC(SYSDATE)"; - Integer existCount = jdbcTemplate.queryForObject(checkSql, Integer.class, planMaintCode); - - if (existCount != null && existCount > 0) { + Long planMaintId = plan.getPlanMaintId(); + String planMaintCode = plan.getPlanMaintCode(); + + if (planMaintCode == null || planMaintCode.isEmpty()) { + log.warn("保养计划ID[{}]编号为空,跳过", planMaintId); + skipCount++; + continue; + } + + // 通过Mapper检查今天是否已生成工单(避免重复) + int existCount = dmsBillsMaintInstanceMapper.countByPlanIdAndToday(planMaintId); + if (existCount > 0) { log.debug("保养计划[{}]今天已生成工单,跳过", planMaintCode); continue; } - - // 生成保养工单 - String billsCode = Seq.getId(Seq.dmsBillsFaultInstanceSeqType, "BY"); - String insertSql = "INSERT INTO dms_bills_maint_instance " + - "(maint_instance_id, bills_maint_code, plan_maint_code, plan_maint_id, " + - "bills_status, is_flag, create_time, create_by) " + - "VALUES (SEQ_DMS_BILLS_MAINT_INSTANCE.NEXTVAL, ?, ?, ?, '0', '1', SYSDATE, -1)"; - - jdbcTemplate.update(insertSql, billsCode, planMaintCode, planMaintId); + + // 通过Service创建已完成状态的保养工单(含明细,工单中所有设备默认保养完成,异常可在网页端维护) + dmsBillsMaintInstanceService.insertCompletedMaintInstance(planMaintCode); count++; - log.info("已为保养计划[{}]生成工单[{}]", planMaintCode, billsCode); - - // 更新计划的下次执行时间 - String cronExpression = (String) plan.get("CRON_EXPRESSION"); - if (cronExpression != null && !cronExpression.isEmpty()) { - Date nextTime = CronUtils.getNextExecution(cronExpression); - String updateSql = "UPDATE dms_plan_maint SET maint_time = ?, update_time = SYSDATE WHERE plan_maint_id = ?"; - jdbcTemplate.update(updateSql, nextTime, planMaintId); - } - + log.info("已为保养计划[{}]生成已完成工单", planMaintCode); + + // 更新计划的下次执行时间(根据cron表达式或默认+1天) + updateMaintPlanNextTime(plan); + } catch (Exception e) { - log.error("为保养计划生成工单失败: {}", e.getMessage()); + log.error("为保养计划[{}]生成工单失败: {}", plan.getPlanMaintCode(), e.getMessage(), e); } } } catch (Exception e) { log.error("查询保养计划失败", e); } - log.info("========== 保养工单生成任务完成,生成数量: {} ==========", count); + log.info("========== 保养工单生成任务完成,生成数量: {},跳过数量: {} ==========", count, skipCount); + } + + /** + * 更新保养计划的下次执行时间 + * 优先使用cron表达式计算,无cron则默认+1天 + */ + private void updateMaintPlanNextTime(DmsPlanMaint plan) { + try { + Date nextTime = null; + String cronExpression = plan.getCronExpression(); + if (cronExpression != null && !cronExpression.isEmpty()) { + nextTime = CronUtils.getNextExecution(cronExpression); + } + if (nextTime == null) { + // 默认下次执行时间为明天 + nextTime = new Date(System.currentTimeMillis() + 24 * 60 * 60 * 1000L); + } + dmsPlanMaintMapper.updatePlanNextTime(plan.getPlanMaintId(), nextTime); + log.debug("更新保养计划[{}]下次执行时间: {}", plan.getPlanMaintCode(), nextTime); + } catch (Exception e) { + log.warn("更新保养计划[{}]下次执行时间失败: {}", plan.getPlanMaintCode(), e.getMessage()); + } } } diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml index e68eda7..e5239f9 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml @@ -284,4 +284,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" x.inspect_instance_id = #{inspectInstanceId} + + + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml index fb2da90..92a3223 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_MAINT_DETAIL.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_MAINT_DETAIL.NEXTVAL FROM DUAL insert into dms_bills_maint_detail diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailProjectMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailProjectMapper.xml index b677cf3..d1d2ce8 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailProjectMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailProjectMapper.xml @@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_MAINT_DTL_PROJ.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_MAINT_DTL_PROJ.NEXTVAL FROM DUAL insert into dms_bills_maint_detail_project diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml index 8242cea..8ba62b3 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml @@ -85,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_MAINT_INST.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_MAINT_INST.NEXTVAL FROM DUAL insert into dms_bills_maint_instance @@ -220,4 +220,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.maint_instance_id = 25 + + + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsInspectRouteDetailMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsInspectRouteDetailMapper.xml index bea4bb1..58cac2f 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsInspectRouteDetailMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsInspectRouteDetailMapper.xml @@ -44,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_INSPECT_RTE_DTL.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_INSPECT_RTE_DTL.NEXTVAL FROM DUAL insert into dms_inspect_route_detail @@ -93,4 +93,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join dms_base_inspect_standard c on a.inspect_standard = c.inspect_standard_id where a.inspect_route_id = #{inspectRouteId} + + + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsPlanInspectMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsPlanInspectMapper.xml index d57d8fe..823e3d1 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsPlanInspectMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsPlanInspectMapper.xml @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select plan_inspect_id, plan_inspect_code, plan_inspect_name, inspect_type, inspect_route_id, device_amount, plan_time, cycle_period,time_limit,job_id, performer, is_flag, remark, create_by, create_time, update_by, update_time from dms_plan_inspect + select plan_inspect_id, plan_inspect_code, plan_inspect_name, inspect_type, inspect_route_id, device_amount, plan_time, cycle_period,time_limit,job_id, performer, is_flag, remark, create_by, create_time, update_by, update_time, cron_expression from dms_plan_inspect select plan_inspect_id, plan_inspect_code, plan_inspect_name, inspect_type, inspect_route_id, device_amount, plan_time, cycle_period, time_limit, job_id, - performer, is_flag, remark, create_by, create_time, update_by, update_time + performer, is_flag, remark, create_by, create_time, update_by, update_time, cron_expression from dms_plan_inspect where plan_inspect_id = #{planInspectId} @@ -143,8 +146,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" parameterType="java.lang.String"> select plan_inspect_id, plan_inspect_code, plan_inspect_name, inspect_type, inspect_route_id, device_amount, plan_time, cycle_period, time_limit, job_id, - performer, is_flag, remark, create_by, create_time, update_by, update_time + performer, is_flag, remark, create_by, create_time, update_by, update_time, cron_expression from dms_plan_inspect where plan_inspect_code = #{planInspectCode} + + + + + + + UPDATE dms_plan_inspect + SET plan_time = #{planTime}, update_time = SYSDATE + WHERE plan_inspect_id = #{planInspectId} + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintDetailMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintDetailMapper.xml index 27d1522..19b6bb4 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintDetailMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintDetailMapper.xml @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_PLAN_MAINT_DETAIL.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_PLAN_MAINT_DETAIL.NEXTVAL FROM DUAL insert into dms_plan_maint_detail @@ -176,4 +176,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" x.maint_station_id = #{stationId} + + + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintMapper.xml index 030d66b..0e9ee31 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsPlanMaintMapper.xml @@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select plan_maint_id, plan_maint_code, maint_level, maint_group, maint_supervisor, maint_time,job_id,time_limit, cycle_period, maint_status, create_method, is_flag, remark, create_by, create_time, update_by, update_time from dms_plan_maint + select plan_maint_id, plan_maint_code, maint_level, maint_group, maint_supervisor, maint_time,job_id,time_limit, cycle_period, maint_status, create_method, is_flag, remark, create_by, create_time, update_by, update_time, cron_expression from dms_plan_maint - select a.plan_maint_id, a.plan_maint_code, a.maint_level, a.maint_group, a.maint_supervisor, a.maint_time,a.time_limit,a.job_id, a.cycle_period, a.maint_status, a.create_method, a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, - b.plan_maint_detail_id as sub_plan_maint_detail_id, b.plan_maint_id as sub_plan_maint_id, b.OBJ_ID as sub_device_id, b.maint_station_id as sub_maint_station_id, b.maint_standard_id as sub_maint_standard_id, b.operation_description as sub_operation_description, b.is_flag as sub_is_flag, b.remark as sub_remark, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time + select a.plan_maint_id, a.plan_maint_code, a.maint_level, a.maint_group, + a.maint_supervisor, a.maint_time,a.time_limit,a.job_id, a.cycle_period, a.maint_status, a.create_method, + a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.cron_expression, + b.plan_maint_detail_id as sub_plan_maint_detail_id, b.plan_maint_id as sub_plan_maint_id, + b.device_id as sub_device_id, b.maint_station_id as sub_maint_station_id, + b.maint_standard_id as sub_maint_standard_id, b.operation_description as sub_operation_description, + b.is_flag as sub_is_flag, b.remark as sub_remark, b.create_by as sub_create_by, + b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time from dms_plan_maint a left join dms_plan_maint_detail b on b.plan_maint_id = a.plan_maint_id where a.plan_maint_code = #{planMaintCode} @@ -185,11 +202,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + UPDATE dms_plan_maint + SET maint_time = #{maintTime}, update_time = SYSDATE + WHERE plan_maint_id = #{planMaintId} + + diff --git a/aucma-dms/src/main/resources/mapper/dms/DmsPlanRepairMapper.xml b/aucma-dms/src/main/resources/mapper/dms/DmsPlanRepairMapper.xml index 892f678..b9dd694 100644 --- a/aucma-dms/src/main/resources/mapper/dms/DmsPlanRepairMapper.xml +++ b/aucma-dms/src/main/resources/mapper/dms/DmsPlanRepairMapper.xml @@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT SEQ_DMS_PLAN_REPAIR.NEXTVAL FROM DUAL + SELECT HAIWEI.SEQ_DMS_PLAN_REPAIR.NEXTVAL FROM DUAL insert into dms_plan_repair