|
|
|
|
@ -2,6 +2,7 @@ package org.dromara.dms.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
import com.alibaba.ttl.TtlRunnable;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.github.yulichang.toolkit.JoinWrappers;
|
|
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
@ -509,12 +510,53 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
|
|
|
|
|
@Override
|
|
|
|
|
@GlobalTransactional(rollbackFor = Exception.class)
|
|
|
|
|
public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, List<MultipartFile> files) {
|
|
|
|
|
// 【调试日志】打印Service层接收到的数据
|
|
|
|
|
log.info("===== completeRepair Service层接收到的数据 =====");
|
|
|
|
|
log.info("repairInstanceId: {}", dmsFaultInstanceActivity.getRepairInstanceId());
|
|
|
|
|
log.info("PDA传入instanceActivityId: {}", dmsFaultInstanceActivity.getInstanceActivityId());
|
|
|
|
|
log.info("processHandleResolution: {}", dmsFaultInstanceActivity.getProcessHandleResolution());
|
|
|
|
|
log.info("repairContent: {}", dmsFaultInstanceActivity.getRepairContent());
|
|
|
|
|
log.info("protectedMethod: {}", dmsFaultInstanceActivity.getProtectedMethod());
|
|
|
|
|
log.info("=======================================");
|
|
|
|
|
|
|
|
|
|
// 【关键修复】查询最新的活动记录(process_step_order=2),而不是使用PDA传入的旧ID
|
|
|
|
|
// PDA传入的instanceActivityId是第一步的ID,我们需要更新第二步的记录
|
|
|
|
|
DmsFaultInstanceActivity latestActivity = dmsFaultInstanceActivityMapper.selectOne(
|
|
|
|
|
new LambdaQueryWrapper<DmsFaultInstanceActivity>()
|
|
|
|
|
.eq(DmsFaultInstanceActivity::getRepairInstanceId, dmsFaultInstanceActivity.getRepairInstanceId())
|
|
|
|
|
.eq(DmsFaultInstanceActivity::getProcessStepOrder, 2L)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (latestActivity == null) {
|
|
|
|
|
throw new ServiceException("未找到维修活动记录,请先开始维修");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.info("查询到最新的活动记录,instanceActivityId: {}", latestActivity.getInstanceActivityId());
|
|
|
|
|
|
|
|
|
|
// 更新 dms_fault_instance_activity 表
|
|
|
|
|
DmsFaultInstanceActivity activity = new DmsFaultInstanceActivity();
|
|
|
|
|
activity.setInstanceActivityId(dmsFaultInstanceActivity.getInstanceActivityId());
|
|
|
|
|
activity.setInstanceActivityId(latestActivity.getInstanceActivityId()); // 使用查询到的最新ID
|
|
|
|
|
activity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH);
|
|
|
|
|
activity.setEndTime(new Date());
|
|
|
|
|
activity.setRepairer(LoginHelper.getLoginUser() == null ? LoginHelper.getUsername() : LoginHelper.getLoginUser().getNickname());
|
|
|
|
|
// 【修复】设置维修相关字段(从Bo对象传递到Entity)
|
|
|
|
|
activity.setProcessHandleResolution(dmsFaultInstanceActivity.getProcessHandleResolution());
|
|
|
|
|
activity.setRepairContent(dmsFaultInstanceActivity.getRepairContent());
|
|
|
|
|
activity.setProtectedMethod(dmsFaultInstanceActivity.getProtectedMethod());
|
|
|
|
|
// 同时更新其他可能被修改的字段
|
|
|
|
|
activity.setDesignOperations(dmsFaultInstanceActivity.getDesignOperations());
|
|
|
|
|
activity.setFaultType(dmsFaultInstanceActivity.getFaultType());
|
|
|
|
|
activity.setRepairType(dmsFaultInstanceActivity.getRepairType());
|
|
|
|
|
activity.setOutsourcingId(dmsFaultInstanceActivity.getOutsourcingId());
|
|
|
|
|
|
|
|
|
|
// 【调试日志】打印即将更新到数据库的值
|
|
|
|
|
log.info("===== 即将更新到数据库的值 =====");
|
|
|
|
|
log.info("instanceActivityId: {}", activity.getInstanceActivityId());
|
|
|
|
|
log.info("processHandleResolution: {}", activity.getProcessHandleResolution());
|
|
|
|
|
log.info("repairContent: {}", activity.getRepairContent());
|
|
|
|
|
log.info("protectedMethod: {}", activity.getProtectedMethod());
|
|
|
|
|
log.info("================================");
|
|
|
|
|
|
|
|
|
|
dmsFaultInstanceActivityMapper.updateById(activity);
|
|
|
|
|
|
|
|
|
|
// 批量保存处理的零部件
|
|
|
|
|
|