fix(dms): 优化保养工单完成逻辑

- 在完成保养工单时增加状态检查,确保只有在保养中状态才能完成保养
- 修复了可能导致非保养中状态也能完成保养的逻辑漏洞
master
zangchenhao 1 week ago
parent c7b73fc540
commit 640ab25e5e

@ -456,11 +456,11 @@ public class DmsMobileController extends BaseController {
public AjaxResult getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) {
// DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId);
DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId);
// 【调试日志】输出查询结果
log.info("PDA获取工单详情repairInstanceId: {}, outsourcingId: {}",
log.info("PDA获取工单详情repairInstanceId: {}, outsourcingId: {}",
repairInstanceId, billsFaultInstance.getOutsourcingId());
// 使用MapstructUtils进行高性能对象转换避免时间字段序列化问题
DmsBillsFaultInstanceMobile mobileInstance = MapstructUtils.convert(billsFaultInstance, DmsBillsFaultInstanceMobile.class);
billsFaultInstance.setDeviceCode(mobileInstance.getMachineCode());
@ -470,10 +470,10 @@ public class DmsMobileController extends BaseController {
billsFaultInstance.setDeviceSpec(mobileInstance.getMachineSpec());
// 手动格式化时间字段确保PDA客户端兼容性
formatTimeFields(mobileInstance, billsFaultInstance);
// 【调试日志】输出转换后的结果
log.info("PDA转换后结果outsrcId: {}", mobileInstance.getOutsrcId());
return AjaxResult.success(mobileInstance);
}

@ -521,6 +521,9 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
@Override
@GlobalTransactional(rollbackFor = Exception.class)
public int completeMaint(DmsBillsMaintDetail dmsBillsMaintDetail) {
if(!dmsBillsMaintDetail.getMaintStatus().equals(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING)){
throw new ServiceException("非保养中状态,不能完成保养");
}
// 获取保养工单明细中的项目列表
List<DmsBillsMaintDetailProjectVo> dmsBillsMaintDetailProjects = dmsBillsMaintDetail.getDmsBillsMaintDetailProjectList();
// 获取保养实例ID

Loading…
Cancel
Save