|
|
|
@ -775,7 +775,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
|
|
|
|
|
try {
|
|
|
|
|
// 根据repairInstanceId查询故障实例及其关联的设备和第一条活动记录
|
|
|
|
|
DmsBillsFaultInstanceVo dmsBillsFaultInstance = baseMapper.selectFaultInstanceJoinFirstAndDeviceById(repairInstanceId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (dmsBillsFaultInstance == null) {
|
|
|
|
|
throw new ServiceException("工单不存在,repairInstanceId: " + repairInstanceId);
|
|
|
|
|
}
|
|
|
|
@ -829,14 +829,14 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
|
|
|
|
|
|
|
|
|
|
// 返回故障实例对象
|
|
|
|
|
return dmsBillsFaultInstance;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("查询工单详情异常,repairInstanceId: {}", repairInstanceId, e);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果是查询返回多条记录的异常,尝试备用查询方案
|
|
|
|
|
if (e.getMessage() != null && e.getMessage().contains("Expected one result")) {
|
|
|
|
|
log.warn("检测到查询返回多条记录异常,尝试备用查询方案,repairInstanceId: {}", repairInstanceId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 备用方案:查询工单基本信息和最新的活动记录
|
|
|
|
|
DmsBillsFaultInstanceVo workOrder = baseMapper.selectVoById(repairInstanceId);
|
|
|
|
|
if (workOrder != null) {
|
|
|
|
@ -847,7 +847,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
|
|
|
|
|
.orderByDesc(DmsFaultInstanceActivity::getInstanceActivityId)
|
|
|
|
|
.last("LIMIT 1");
|
|
|
|
|
DmsFaultInstanceActivity latestActivity = dmsFaultInstanceActivityMapper.selectOne(wrapper);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (latestActivity != null) {
|
|
|
|
|
// 设置活动相关信息
|
|
|
|
|
workOrder.setInstanceActivityId(latestActivity.getInstanceActivityId());
|
|
|
|
@ -858,13 +858,13 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
|
|
|
|
|
workOrder.setOutsourcingId(latestActivity.getOutsourcingId());
|
|
|
|
|
workOrder.setProcessHandleResolution(latestActivity.getProcessHandleResolution());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.info("备用查询方案成功,repairInstanceId: {}, instanceActivityId: {}",
|
|
|
|
|
|
|
|
|
|
log.info("备用查询方案成功,repairInstanceId: {}, instanceActivityId: {}",
|
|
|
|
|
repairInstanceId, workOrder.getInstanceActivityId());
|
|
|
|
|
return workOrder;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
throw new ServiceException("查询工单详情失败:" + e.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|