refactor(hwmom-dms,job): 重构点巡检模块代码

- DmsInspectProjectDevice 类结构,不继承teant实体类,添加 tenantId 字段
- 移除 DmsInspectProjectDeviceServiceImpl 中的冗余排序
- 统一 RemoteJobServiceImpl 中的租户 ID 和用户 ID 字段名
- 修复 DmsInspectStanceExecutor 和 DmsLubeStanceExecutor 中的 tenantId 参数获取
- 优化 DmsPlanInspect 类结构,添加主键标识
- 更新 DmsPlanInspectServiceImpl 中的 cron 表达式设置逻辑
- 重构 RemoteInspectInstanceServiceImpl 中的巡检实例创建流程
- 更新 RemoteMaintInstanceServiceImpl 中的维护实例创建逻辑
- 修复 RemoteRepairStanceServicempl 中的工单实例创建逻辑
master
zch 1 month ago
parent 79d393f414
commit 7ba5490698

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.io.Serializable;
/**
* dms_inspect_project_device
@ -14,9 +15,9 @@ import java.io.Serial;
* @date 2025-03-24
*/
@Data
@EqualsAndHashCode(callSuper = true)
@EqualsAndHashCode()
@TableName("dms_inspect_project_device")
public class DmsInspectProjectDevice extends TenantEntity {
public class DmsInspectProjectDevice implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ -37,4 +38,9 @@ public class DmsInspectProjectDevice extends TenantEntity {
private Long targetId;
/**
*
*/
private String tenantId;
}

@ -1,6 +1,8 @@
package org.dromara.dms.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -26,6 +28,7 @@ public class DmsPlanInspect extends TenantEntity {
/**
*
*/
@TableId(value = "plan_inspect_id", type = IdType.AUTO)
private Long planInspectId;
/**

@ -39,8 +39,6 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
@Override
@Transactional( rollbackFor = Exception.class )
public R<Integer> insertInspectInstance(String planInspectCode, String tenantId, Long userId){
// 使用 replaceAll 方法将双引号替换为空字符串
String result = planInspectCode.replaceAll("\"", "");
@ -55,12 +53,8 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
dmsPlanInspect.setTimeLimitHours(hours / (60 * 60l));
}
DmsBillsInspectInstance dmsBillsInspectInstance = new DmsBillsInspectInstance();
// DmsRepairInstance dmsRepairInstance = dmsRepairInstanceService.selectDmsRepairInstanceByRepairInstanceId(2l);
dmsBillsInspectInstance.setPlanInspectId(dmsPlanInspect.getPlanInspectId());
// dmsBillsInspectInstance.setWfProcessId(105l);
dmsBillsInspectInstance.setInspectType(dmsPlanInspect.getInspectType());//检查类型(1巡检 2点检)
@ -70,7 +64,6 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
// dmsBillsInspectInstance.setDeviceAmount(dmsPlanInspect.getDeviceAmount());//设备数量
// dmsBillsInspectInstance.setPerformer(dmsPlanInspect.getPerformer());//执行人
//写死105也可根据传入对象的wfprocessid作为传参。
/*
Long aLong = dmsRepairInstanceMapper.selectWfProcessActivityId(105l);
@ -83,7 +76,6 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
// dmsBillsInspectInstance.setIsFlag("1");
dmsBillsInspectInstance.setInspectStatus(DmsConstants.DMS_BILLS_INSPECT_INSTANCE_INSPECT_STATUS_TO_INSPECT);//待巡检
dmsBillsInspectInstance.setCreateBy(userId);
// dmsBillsInspectInstance.setCreateTime(new Date());
dmsBillsInspectInstance.setTenantId(tenantId);
@ -108,7 +100,6 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
MPJLambdaWrapper<DmsInspectRouteDetail> lqw = JoinWrappers.lambda(DmsInspectRouteDetail.class)
.eq(DmsInspectRouteDetail::getInspectRouteId, dmsBillsInspectInstance.getInspectRouteId());
List<DmsInspectRouteDetail> dmsInspectRouteDetails = dmsInspectRouteDetailMapper.selectList(lqw);
for(DmsInspectRouteDetail dmsInspectRouteDetail:dmsInspectRouteDetails){
DmsInspectInstanceDetail dmsInspectInstanceDetail = new DmsInspectInstanceDetail();
Long deviceId = dmsInspectRouteDetail.getMachineId();
@ -117,7 +108,7 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
dmsInspectInstanceDetail.setMachineId(deviceId);
dmsInspectInstanceDetail.setInstanceDetailStatus("1");//1待巡检 2巡检中 3已完成
dmsInspectInstanceDetail.setInspectStandard(dmsInspectRouteDetail.getInspectStandard());
dmsInspectInstanceDetail.setInspectStatus("0");//TODO:为什么设置为异常?
dmsInspectInstanceDetail.setInspectStatus("0");//FIXME:为什么设置为异常设备状态1正常 0异常
// dmsInspectInstanceDetailMapper.insertDmsInspectInstanceDetail(dmsInspectInstanceDetail);
@ -125,16 +116,13 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
dmsInspectInstanceDetail.setCreateBy(userId);
// dmsInspectInstanceDetail.setCreateTime(new Date());
dmsInspectInstanceDetailMapper.insert(dmsInspectInstanceDetail);
Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(dmsInspectRouteDetail.getInspectStandard());
DmsInspectProjectDevice queryInspectProjectDevice = new DmsInspectProjectDevice();
queryInspectProjectDevice.setTargetType("2");
queryInspectProjectDevice.setTargetId(deviceId);
// DmsInspectProjectDevice queryInspectProjectDevice = new DmsInspectProjectDevice();
// queryInspectProjectDevice.setTargetType("2");//FIXME:关联类型(1设备类型)
// queryInspectProjectDevice.setTargetId(deviceId);
MPJLambdaWrapper<DmsInspectProjectDevice> DmsInspectProjectDeviceLQW = JoinWrappers.lambda(DmsInspectProjectDevice.class)
.eq(DmsInspectProjectDevice::getTargetType, "2")//关联类型(1设备类型)
.eq(DmsInspectProjectDevice::getTargetType, "2")//FIXME:关联类型(1设备类型)
.eq(DmsInspectProjectDevice::getTargetId, deviceId);
List<DmsInspectProjectDevice> dmsInspectProjectDevices = dmsInspectProjectDeviceMapper.selectList(DmsInspectProjectDeviceLQW);
@ -148,7 +136,6 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
dmsInspectInstanceDetailProject.setTenantId(tenantId);
dmsInspectInstanceDetailProject.setCreateBy(userId);
// dmsInspectInstanceDetailProject.setCreateTime(new Date());
dmsInspectInstanceDetailProjectMapper.insert(dmsInspectInstanceDetailProject);
// }

@ -70,8 +70,8 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
dmsBillsMaintInstance.setPlanEndTime(new Date(lubeTime.getTime() + timeLimit * 1000l));
//字段没有自动填充,只能代码手动填充
dmsBillsMaintInstance.setCreateBy(userId);//暂时默认系统用户
dmsBillsMaintInstance.setTenantId(tenantId);//暂时默认系统用户
dmsBillsMaintInstance.setCreateBy(userId);
dmsBillsMaintInstance.setTenantId(tenantId);
int i = dmsBillsMaintInstanceMapper.insert(dmsBillsMaintInstance);
@ -79,17 +79,13 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
// dmsMaintInstanceActivity.setMaintInstanceId(dmsBillsMaintInstance.getMaintInstanceId());
// dmsMaintInstanceActivity.setProcessStepOrder(1L);
// int i1 = dmsMaintInstanceActivityMapper.insertDmsMaintInstanceActivity(dmsMaintInstanceActivity);
batchInsertDmsBillsMaintDetail(dmsPlanMaint, dmsBillsMaintInstance.getMaintInstanceId(), tenantId, userId);
return R.ok(i);
}
@Transactional( rollbackFor = Exception.class )
public void batchInsertDmsBillsMaintDetail(DmsPlanMaint dmsPlanMaint, Long maintInstanceId, String tenantId, Long userId) {
List<DmsPlanMaintDetail> planMaintDetails = dmsPlanMaint.getDmsPlanMaintDetailList();
List<DmsBillsMaintDetail> billsMaintDetails = new ArrayList<>();
planMaintDetails.forEach(planMaintDetail -> {
@ -119,8 +115,7 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
billsMaintDetailProject.setMaintProjectId(project.getMaintProjectId());
billsMaintDetailProject.setMaintProjectName(project.getMaintProjectName());
billsMaintDetailProject.setMaintProjectDesc(project.getMaintProjectDesc());
billsMaintDetailProject.setMaintProjectStatus("2");//保养项目状态0待保养 1保养完成TODO:为什么是2
billsMaintDetailProject.setMaintProjectStatus("2");//保养项目状态0待保养 1保养完成FIXME:为什么是2
//字段没有自动填充,只能代码手动填充
billsMaintDetailProject.setCreateBy(userId);

@ -33,8 +33,6 @@ public class RemoteRepairStanceServicempl implements RemoteRepairStanceService {
private final IDmsPlanRepairService dmsPlanRepairService;
public static String lastDate="2000-01-01";
//流水号
public static int serialNumber = 0;
@ -64,7 +62,7 @@ public class RemoteRepairStanceServicempl implements RemoteRepairStanceService {
// dmsRepairInstance.setWfProcessId(101l);
dmsRepairInstance.setPlanRepairId(dmsPlanRepair.getPlanRepairId());
dmsRepairInstance.setPlanBeginTime(dmsPlanRepair.getRepairTime());
dmsRepairInstance.setInstanceType("2");
dmsRepairInstance.setInstanceType("2");//工单类型1手工创建 2自动创建
// dmsRepairInstance.setRepairType(dmsPlanRepair.getRepairType());
// dmsRepairInstance.setRepairGroup(dmsPlanRepair.getRepairGroup());
// dmsRepairInstance.setRepairSupervisor(dmsPlanRepair.getRepairSupervisor());
@ -105,23 +103,23 @@ public class RemoteRepairStanceServicempl implements RemoteRepairStanceService {
dmsRepairInstance.setPlanEndTime(new Date(planBeginTime.getTime() + limit*1000l));
}
// dmsRepairInstance.setIsFlag("1");
dmsRepairInstance.setBillsStatus("1");
dmsRepairInstance.setBillsStatus("1");//工单状态0待检修 1检修中 2检修完成
if (dmsRepairInstance.getInstanceType()==null) {
dmsRepairInstance.setInstanceType("1");
dmsRepairInstance.setInstanceType("1");//工单类型1手工创建 2自动创建
}
// dmsRepairInstance.setApplyBy(user.getUsername());
// dmsRepairInstance.setApplyTime(DateUtils.getNowDate());
// dmsRepairInstance.setWfProcessId(101l);
int flag = dmsRepairInstanceMapper.insert(dmsRepairInstance);
//创建工单时新建工单实例节点
//创建工单时新建工单实例节点
DmsRepairInstanceActivity dmsRepairInstanceActivity = new DmsRepairInstanceActivity();
dmsRepairInstanceActivity.setRepairInstanceId(dmsRepairInstance.getRepairInstanceId());
dmsRepairInstanceActivity.setProcessHandleStatus("1");
dmsRepairInstanceActivity.setProcessHandleStatus("1");//状态(0已结束 1执行中 2待接取 3已转发
//先写死第一步所对应的步骤后续通过wfProcessId来查询步骤对应的id
// dmsRepairInstanceActivity.setProcessActivityId(aLong);
dmsRepairInstanceActivity.setProcessStepOrder(1l);
dmsRepairInstanceActivity.setCreateBy(user.getUserId());
dmsRepairInstanceActivity.setProcessStepOrder(1l);//工单流程步骤顺序
// dmsRepairInstanceActivity.setCreateBy();
dmsRepairInstanceActivity.setCreateTime(DateUtils.getNowDate());
dmsRepairInstanceActivity.setStartTime(DateUtils.getNowDate());
// dmsRepairInstanceActivity.setRepairType(dmsRepairInstance.getRepairType());

@ -75,8 +75,7 @@ public class DmsInspectProjectDeviceServiceImpl implements IDmsInspectProjectDev
.selectAll(DmsInspectProjectDevice.class)
.eq(bo.getInspectProjectId() != null, DmsInspectProjectDevice::getInspectProjectId, bo.getInspectProjectId())
.eq(StringUtils.isNotBlank(bo.getTargetType()), DmsInspectProjectDevice::getTargetType, bo.getTargetType())
.eq(bo.getTargetId() != null, DmsInspectProjectDevice::getTargetId, bo.getTargetId())
.orderByDesc(DmsInspectProjectDevice::getCreateTime);
.eq(bo.getTargetId() != null, DmsInspectProjectDevice::getTargetId, bo.getTargetId());
return lqw;
}

@ -192,6 +192,8 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
if (add.getInspectLevel().equals(3l)){
cron = "0 0 "+add.getHour()+" "+day+" "+ month+" ? "+year;
}
bo.setCronExpression(cron);//cron表达式
String planInspectCode = Seq.getId(Seq.planInspectSeqType, Seq.planInspectCode);
if(bo.getActiveFlag().equals("1")) {//激活标识1是 0否
@ -209,6 +211,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
.setExtAttrs(planInspectCode)
.setUserId(LoginHelper.getUserId().toString())
.setTenantId(LoginHelper.getTenantId());
System.out.println(LoginHelper.getTenantId());
R<Long> longR = remoteJobService.addClusterJob(dmsJobEntity);
Long newJobId = longR.getData();
//通过cron表达式获取下一次执行时间
@ -273,6 +276,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
if (update.getInspectLevel().equals(3l)){
cron = "0 0 "+update.getHour()+" "+day+" "+ month+" ? "+year;
}
bo.setCronExpression(cron);//cron表达式
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);

@ -24,8 +24,8 @@ public class RemoteJobServiceImpl implements RemoteJobService {
// private final JobMapper jobMapper;
//常量
private static final String tenant = "tenantId";
private static final String user = "userId";
private static final String tenantId = "tenantId";
private static final String userId = "userId";
/**
*
@ -47,8 +47,8 @@ public class RemoteJobServiceImpl implements RemoteJobService {
.setTriggerType(dmsJobEntity.getTriggerType())//触发类型:2. 固定时间 3.CRON 表达式 99.工作流
.setTriggerInterval(dmsJobEntity.getTriggerInterval())//触发间隔
.addArgsStr(dmsJobEntity.getArgsStr(), dmsJobEntity.getExtAttrs())//执行任务参数
.addArgsStr(tenant, dmsJobEntity.getTenantId())//租户ID执行任务参数手动传参
.addArgsStr(user, dmsJobEntity.getUserId())//用户ID执行任务参数手动传参
.addArgsStr(tenantId, dmsJobEntity.getTenantId())//租户ID执行任务参数手动传参
.addArgsStr(userId, dmsJobEntity.getUserId())//用户ID执行任务参数手动传参
.setRetryInterval(dmsJobEntity.getRetryInterval())//重试间隔时长(秒)
.execute();
if (jobId != null) {
@ -81,8 +81,8 @@ public class RemoteJobServiceImpl implements RemoteJobService {
.setTriggerType(dmsJobEntity.getTriggerType())//触发类型:2. 固定时间 3.CRON 表达式 99.工作流
.setTriggerInterval(dmsJobEntity.getTriggerInterval())//触发间隔
.addArgsStr(dmsJobEntity.getArgsStr(), dmsJobEntity.getExtAttrs())//执行任务参数
.addArgsStr(tenant, dmsJobEntity.getTenantId())//租户ID执行任务参数手动传参
.addArgsStr(user, dmsJobEntity.getUserId())//用户ID执行任务参数手动传参
.addArgsStr(tenantId, dmsJobEntity.getTenantId())//租户ID执行任务参数手动传参
.addArgsStr(userId, dmsJobEntity.getUserId())//用户ID执行任务参数手动传参
.setRetryInterval(dmsJobEntity.getRetryInterval())//重试间隔时长(秒)
.execute();
return success ? R.ok() : R.fail("修改集群任务失败");

@ -33,7 +33,7 @@ public class DmsInspectStanceExecutor {
// 将 JSON 字符串转为 Map
Map<String, Object> paramMap = objectMapper.readValue(jsonStr, Map.class);
String planCode = (String) paramMap.get("planInspectCode");
String tenantId = (String) paramMap.get("tenant");
String tenantId = (String) paramMap.get("tenantId");
String user = (String) paramMap.get("userId");
Long userId = Long.parseLong(user);

@ -33,7 +33,7 @@ public class DmsLubeStanceExecutor {
// 将 JSON 字符串转为 Map
Map<String, Object> paramMap = objectMapper.readValue(jsonStr, Map.class);
String planCode = (String) paramMap.get("planLubeCode");
String tenantId = (String) paramMap.get("tenant");
String tenantId = (String) paramMap.get("tenantId");
String user = (String) paramMap.get("userId");
Long userId = Long.parseLong(user);

Loading…
Cancel
Save