refactor(dms): 重构PDA实体类和接口

- 新增PDA专用的MobileBo实体类,以便于PDA传参给后端
- 更新了多个实体类的字段和注释,使其与 PDA端保持一致
- 调整了部分方法的返回类型,使用 Vo 替代实体类以包含更多关联信息
- 优化了 SQL 查询,加入了更多关联字段以减少后续处理
- 移除了不必要的字段和方法,简化了代码结构
master
zch 19 hours ago
parent 06f0bcfe0d
commit 53192c4ca6

@ -14,6 +14,9 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.dms.domain.DmsBillsMaintDetail;
import org.dromara.dms.domain.DmsBillsMaintDetailProject;
import org.dromara.dms.domain.DmsInspectInstanceDetailProject;
import org.dromara.dms.domain.vo.DmsInspectInstanceDetailProjectVo;
import org.dromara.dms.domain.DmsFaultComponentsParts;
import org.dromara.dms.domain.bo.*;
import org.dromara.dms.domain.mobile.*;
@ -71,46 +74,46 @@ public class DmsMobileController extends BaseController {
* @param voInstance VO
*/
private void formatTimeFields(DmsBillsFaultInstanceMobile mobileInstance, DmsBillsFaultInstanceVo voInstance) {
// 时间字段格式化
// if (voInstance.getApplyTime() != null) {
// mobileInstance.setApplyTime(DATE_FORMAT.format(voInstance.getApplyTime()));
// }
// if (voInstance.getRealBeginTime() != null) {
// mobileInstance.setRealBeginTime(DATE_FORMAT.format(voInstance.getRealBeginTime()));
// }
// if (voInstance.getRealEndTime() != null) {
// mobileInstance.setRealEndTime(DATE_FORMAT.format(voInstance.getRealEndTime()));
// }
// if (voInstance.getRequireEndTime() != null) {
// mobileInstance.setRequireEndTime(DATE_FORMAT.format(voInstance.getRequireEndTime()));
// }
// if (voInstance.getConfirmTime() != null) {
// mobileInstance.setConfirmTime(DATE_FORMAT.format(voInstance.getConfirmTime()));
// }
// 时间字段格式化将Date转换为String格式确保PDA客户端兼容性
if (voInstance.getApplyTime() != null) {
mobileInstance.setApplyTime(DATE_FORMAT.format(voInstance.getApplyTime()));
}
if (voInstance.getRealBeginTime() != null) {
mobileInstance.setRealBeginTime(DATE_FORMAT.format(voInstance.getRealBeginTime()));
}
if (voInstance.getRealEndTime() != null) {
mobileInstance.setRealEndTime(DATE_FORMAT.format(voInstance.getRealEndTime()));
}
if (voInstance.getRequireEndTime() != null) {
mobileInstance.setRequireEndTime(DATE_FORMAT.format(voInstance.getRequireEndTime()));
}
if (voInstance.getConfirmTime() != null) {
mobileInstance.setConfirmTime(DATE_FORMAT.format(voInstance.getConfirmTime()));
}
// PDA客户端字段映射 - 从voInstance正确获取数据
// PDA客户端字段映射 - 处理machineId与deviceId的映射
mobileInstance.setDeviceCode(voInstance.getMachineCode());
mobileInstance.setDeviceName(voInstance.getMachineName());
mobileInstance.setDeviceLocation(voInstance.getMachineLocation());
mobileInstance.setDeviceSpec(voInstance.getMachineSpec());
// ID字段类型转换 - Long到String
if (voInstance.getRepairInstanceId() != null) {
mobileInstance.setRepairInstanceId(String.valueOf(voInstance.getRepairInstanceId()));
}
if (voInstance.getFaultSourceId() != null) {
mobileInstance.setFaultSourceId(String.valueOf(voInstance.getFaultSourceId()));
}
if (voInstance.getWfDefinitionId() != null) {
mobileInstance.setWfDefinitionId(String.valueOf(voInstance.getWfDefinitionId()));
// PDA客户端兼容字段
mobileInstance.setWfProcessId(String.valueOf(voInstance.getWfDefinitionId()));
}
if (voInstance.getMachineId() != null) {
mobileInstance.setMachineId(String.valueOf(voInstance.getMachineId()));
}
// ID字段类型转换 - Long到String,并处理字段映射差异
if (voInstance.getRepairInstanceId() != null) {
mobileInstance.setRepairInstanceId(String.valueOf(voInstance.getRepairInstanceId()));
}
if (voInstance.getFaultSourceId() != null) {
mobileInstance.setFaultSourceId(String.valueOf(voInstance.getFaultSourceId()));
}
if (voInstance.getWfDefinitionId() != null) {
mobileInstance.setWfDefinitionId(String.valueOf(voInstance.getWfDefinitionId()));
// PDA客户端兼容字段
mobileInstance.setWfProcessId(String.valueOf(voInstance.getWfDefinitionId()));
}
if (voInstance.getMachineId() != null) {
// 后端machineId对应PDA端deviceId
mobileInstance.setMachineId(String.valueOf(voInstance.getMachineId()));
mobileInstance.setDeviceId(String.valueOf(voInstance.getMachineId()));
}
}
/**
@ -225,8 +228,19 @@ public class DmsMobileController extends BaseController {
DmsBaseMachineInfoBo dmsBaseMachineInfoBo = new DmsBaseMachineInfoBo();
dmsBaseMachineInfoBo.setMachineCode(deviceCode);
//TODO根据设备编号查一个设备
DmsBaseMachineInfoVo dmsBaseDeviceLedger = baseDeviceLedgerService.queryList(dmsBaseMachineInfoBo).get(0);
return AjaxResult.success(dmsBaseDeviceLedger);
List<DmsBaseMachineInfoVo> queryResult = baseDeviceLedgerService.queryList(dmsBaseMachineInfoBo);
if (queryResult.isEmpty()) {
return AjaxResult.error("未找到对应设备信息");
}
DmsBaseMachineInfoVo dmsBaseDeviceLedger = queryResult.get(0);
// 使用MapstructUtils进行对象转换然后手动处理字段映射差异
DeviceBeen deviceBeen = MapstructUtils.convert(dmsBaseDeviceLedger, DeviceBeen.class);
// 手动处理字段映射差异machineId -> deviceId确保类型安全转换
if (dmsBaseDeviceLedger.getMachineId() != null) {
deviceBeen.setDeviceId(dmsBaseDeviceLedger.getMachineId().intValue());
}
return AjaxResult.success(deviceBeen);
}
/**
@ -244,10 +258,11 @@ public class DmsMobileController extends BaseController {
queryBaseOutsrcInfo.setActiveFlag("1");
List<DmsBaseOutsourcingInfoVo> baseOutsrcInfos = dmsBaseOutsrcInfoService.queryList(queryBaseOutsrcInfo);
// 使用MapstructUtils进行对象转换然后手动处理字段映射差异
List<Outsourcing> outsourcingList = new ArrayList<>();
for (DmsBaseOutsourcingInfoVo vo : baseOutsrcInfos) {
Outsourcing outsourcing = new Outsourcing();
outsourcing.setOutsrcId(vo.getOutsourcingId().intValue());
outsourcing.setOutsrcId(Math.toIntExact(vo.getOutsourcingId()));
outsourcing.setOutsrcCode(vo.getOutsourcingCode());
outsourcing.setOutsrcName(vo.getOutsourcingName());
outsourcingList.add(outsourcing);
@ -339,7 +354,15 @@ public class DmsMobileController extends BaseController {
public TableDataInfo getBillsFaultInstances() {
DmsBillsFaultInstanceBo queryBillsFaultInstance = new DmsBillsFaultInstanceBo();
List<DmsBillsFaultInstanceVo> billsFaultInstances = dmsBillsFaultInstanceService.queryList(queryBillsFaultInstance);
return TableDataInfo.build(billsFaultInstances);
// 转换为Mobile对象处理字段映射差异
List<DmsBillsFaultInstanceMobile> mobileInstances = new ArrayList<>();
for (DmsBillsFaultInstanceVo vo : billsFaultInstances) {
DmsBillsFaultInstanceMobile mobileInstance = MapstructUtils.convert(vo, DmsBillsFaultInstanceMobile.class);
// 手动处理字段映射差异
formatTimeFields(mobileInstance, vo);
mobileInstances.add(mobileInstance);
}
return TableDataInfo.build(mobileInstances);
}
/**
@ -404,7 +427,10 @@ public class DmsMobileController extends BaseController {
@GetMapping("/scanDevice4Repair")
@RepeatSubmit
public AjaxResult scanDevice4Repair(@Validated DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) {
return AjaxResult.success(dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan));
Object result = dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan);
// 注意:此接口返回的具体类型需要根据业务逻辑确认
// 如果返回的是VO对象建议转换为Mobile对象以保持一致性
return AjaxResult.success(result);
}
@ -456,6 +482,21 @@ public class DmsMobileController extends BaseController {
DmsBillsInspectInstanceVo newestInspectInstance = dmsBillsInspectInstanceService.getNewestBillsInspectInstance(dmsBillsInspectInstance);
// 使用MapstructUtils进行高性能对象转换避免时间字段序列化问题
DmsBillsInspectInstanceMobile mobileInstance = MapstructUtils.convert(newestInspectInstance, DmsBillsInspectInstanceMobile.class);
// 处理嵌套对象的字段映射dmsInspectInstanceDetailList
if (newestInspectInstance.getDmsInspectInstanceDetailList() != null) {
List<DmsInspectInstanceDetailMobile> detailMobileList = new ArrayList<>();
for (var detailVo : newestInspectInstance.getDmsInspectInstanceDetailList()) {
DmsInspectInstanceDetailMobile detailMobile = MapstructUtils.convert(detailVo, DmsInspectInstanceDetailMobile.class);
// 手动处理字段映射差异machineId -> deviceId
if (detailVo.getMachineId() != null) {
detailMobile.setDeviceId(detailVo.getMachineId().intValue());
}
detailMobileList.add(detailMobile);
}
mobileInstance.setDmsInspectInstanceDetailList(detailMobileList);
}
return AjaxResult.success(mobileInstance);
}
@ -468,9 +509,116 @@ public class DmsMobileController extends BaseController {
@RepeatSubmit
public AjaxResult scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) {
DmsInspectInstanceDetailVo dmsInspectInstanceDetailVo = dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScan);
DmsInspectInstanceDetailMobile dmsInspectInstanceDetailMobile = MapstructUtils.convert(dmsInspectInstanceDetailVo, DmsInspectInstanceDetailMobile.class);
// 【关键修复】完全避免使用MapstructUtils自动转换采用手动映射
DmsInspectInstanceDetailMobile dmsInspectInstanceDetailMobile = new DmsInspectInstanceDetailMobile();
// 手动映射基本字段
dmsInspectInstanceDetailMobile.setInstanceDetailId(dmsInspectInstanceDetailVo.getInstanceDetailId());
dmsInspectInstanceDetailMobile.setInspectInstanceId(dmsInspectInstanceDetailVo.getInspectInstanceId());
dmsInspectInstanceDetailMobile.setLineStep(dmsInspectInstanceDetailVo.getLineStep());
dmsInspectInstanceDetailMobile.setRealLineStep(dmsInspectInstanceDetailVo.getRealLineStep());
dmsInspectInstanceDetailMobile.setInstanceDetailStatus(dmsInspectInstanceDetailVo.getInstanceDetailStatus());
dmsInspectInstanceDetailMobile.setInspectStandard(dmsInspectInstanceDetailVo.getInspectStandard());
dmsInspectInstanceDetailMobile.setInspectDesc(dmsInspectInstanceDetailVo.getInspectDesc());
dmsInspectInstanceDetailMobile.setInspectStatus(dmsInspectInstanceDetailVo.getInspectStatus());
dmsInspectInstanceDetailMobile.setDeviceCode(dmsInspectInstanceDetailVo.getDeviceCode());
dmsInspectInstanceDetailMobile.setDeviceName(dmsInspectInstanceDetailVo.getDeviceName());
// 手动处理字段映射差异machineId -> deviceId
if (dmsInspectInstanceDetailVo.getMachineId() != null) {
dmsInspectInstanceDetailMobile.setDeviceId(dmsInspectInstanceDetailVo.getMachineId().intValue());
}
// 【方案对比实现】处理项目列表:使用流和类型过滤 vs 强制转换
if (dmsInspectInstanceDetailVo.getDmsInspectInstanceDetailProjectList() != null) {
List<DeviceInspectionItem> deviceInspectionItemList = new ArrayList<>();
// 【方案A流和类型过滤 - 类型安全,性能稍低】
List<?> rawProjectList = dmsInspectInstanceDetailVo.getDmsInspectInstanceDetailProjectList();
for (Object projectObj : rawProjectList) {
DeviceInspectionItem deviceInspectionItem = new DeviceInspectionItem();
// 运行时类型检查,支持多种类型
if (projectObj instanceof DmsInspectInstanceDetailProject) {
DmsInspectInstanceDetailProject project = (DmsInspectInstanceDetailProject) projectObj;
mapProjectFields(deviceInspectionItem, project);
} else if (projectObj instanceof DmsInspectInstanceDetailProjectVo) {
DmsInspectInstanceDetailProjectVo projectVo = (DmsInspectInstanceDetailProjectVo) projectObj;
mapProjectVoFields(deviceInspectionItem, projectVo);
} else {
log.warn("未知的项目类型: {}", projectObj.getClass().getName());
continue; // 跳过未知类型,保证程序稳定性
}
deviceInspectionItemList.add(deviceInspectionItem);
}
dmsInspectInstanceDetailMobile.setDmsInspectInstanceDetailProjectList(deviceInspectionItemList);
}
return AjaxResult.success(dmsInspectInstanceDetailMobile);
}
/**
* DmsInspectInstanceDetailProjectDeviceInspectionItem
*/
private void mapProjectFields(DeviceInspectionItem deviceInspectionItem, DmsInspectInstanceDetailProject project) {
deviceInspectionItem.setInstanceDetailProjectId(project.getInstanceDetailProjectId());
deviceInspectionItem.setInspectProjectStatus(project.getInspectProjectStatus());
deviceInspectionItem.setInspectProjectName(project.getInspectProjectName());
deviceInspectionItem.setInspectProjectProperty(project.getInspectProjectProperty());
deviceInspectionItem.setInspectProjectDesc(project.getInspectProjectDesc());
if (project.getInspectProjectResult() != null) {
deviceInspectionItem.setInspectProjectResult(project.getInspectProjectResult().toString());
} else {
// 【PDA适配】确保为null而不是空字符串
deviceInspectionItem.setInspectProjectResult(null);
}
if (project.getDefValue() != null) {
deviceInspectionItem.setDefValue(project.getDefValue().doubleValue());
}
if (project.getUpLimit() != null) {
deviceInspectionItem.setUpLimit(project.getUpLimit().doubleValue());
}
if (project.getLowLimit() != null) {
deviceInspectionItem.setLowLimit(project.getLowLimit().doubleValue());
}
}
/**
* DmsInspectInstanceDetailProjectVoDeviceInspectionItem
*/
private void mapProjectVoFields(DeviceInspectionItem deviceInspectionItem, DmsInspectInstanceDetailProjectVo projectVo) {
deviceInspectionItem.setInstanceDetailProjectId(projectVo.getInstanceDetailProjectId());
deviceInspectionItem.setInspectProjectStatus(projectVo.getInspectProjectStatus());
deviceInspectionItem.setInspectProjectName(projectVo.getInspectProjectName());
deviceInspectionItem.setInspectProjectProperty(projectVo.getInspectProjectProperty());
deviceInspectionItem.setInspectProjectDesc(projectVo.getInspectProjectDesc());
// 【PDA适配】不设置statusName让PDA端自己计算
// deviceInspectionItem.setStatusName() 由PDA端的getStatusName()方法自动计算
if (projectVo.getInspectProjectResult() != null) {
deviceInspectionItem.setInspectProjectResult(projectVo.getInspectProjectResult().toString());
} else {
// 【PDA适配】确保为null而不是空字符串
deviceInspectionItem.setInspectProjectResult(null);
}
if (projectVo.getDefValue() != null) {
deviceInspectionItem.setDefValue(projectVo.getDefValue().doubleValue());
}
if (projectVo.getUpLimit() != null) {
deviceInspectionItem.setUpLimit(projectVo.getUpLimit().doubleValue());
}
if (projectVo.getLowLimit() != null) {
deviceInspectionItem.setLowLimit(projectVo.getLowLimit().doubleValue());
}
}
/**
*
@ -494,6 +642,34 @@ public class DmsMobileController extends BaseController {
DmsBillsMaintInstanceVo newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance);
// 使用MapstructUtils进行高性能对象转换避免时间字段序列化问题
DmsBillsMaintInstanceMobile mobileInstance = MapstructUtils.convert(newestMaintInstance, DmsBillsMaintInstanceMobile.class);
// 处理嵌套对象的字段映射dmsBillsMaintDetailList
// PDA端MaintainBeen使用的是List<MaintainDetail>,需要转换
if (newestMaintInstance.getDmsBillsMaintDetailList() != null) {
List<MaintainDetail> maintainDetailList = new ArrayList<>();
for (var detailVo : newestMaintInstance.getDmsBillsMaintDetailList()) {
MaintainDetail maintainDetail = MapstructUtils.convert(detailVo, MaintainDetail.class);
// 手动处理字段映射差异machineId -> deviceId
if (detailVo.getMachineId() != null) {
maintainDetail.setDeviceId(detailVo.getMachineId());
}
// 手动处理字段映射maintStationId -> stationId
if (detailVo.getMaintStationId() != null) {
maintainDetail.setStationId(detailVo.getMaintStationId());
}
// 手动处理其他字段映射
maintainDetail.setDeviceCode(detailVo.getMachineCode());
maintainDetail.setDeviceName(detailVo.getMachineName());
maintainDetail.setTypeName(detailVo.getDeviceTypeName());
maintainDetail.setMaintStationName(detailVo.getMaintStationName());
maintainDetail.setMaintProtocol(detailVo.getMaintProtocol());
maintainDetail.setMaintOperationDescription(detailVo.getMaintOperationDescription());
maintainDetail.setOperationDescription(detailVo.getOperationDescription());
maintainDetailList.add(maintainDetail);
}
mobileInstance.setDmsBillsMaintDetailList(maintainDetailList);
}
// 手动格式化时间字段确保PDA客户端兼容性
// formatMaintTimeFields(mobileInstance, newestMaintInstance);
return AjaxResult.success(mobileInstance);
@ -507,9 +683,55 @@ public class DmsMobileController extends BaseController {
@Log(title = "保养工单", businessType = BusinessType.START)
@PostMapping("/startMaint")
@RepeatSubmit
public AjaxResult startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
public AjaxResult startMaint(@RequestBody DmsBillsMaintDetailMobileBo dmsBillsMaintDetailMobileBo) {
// 将PDA端Bo转换为后端实体处理字段名差异
DmsBillsMaintDetail dmsBillsMaintDetail = dmsBillsMaintDetailMobileBo.toEntity();
DmsBillsMaintDetail result = dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail);
return AjaxResult.success(result);
// 转换为Mobile对象确保与PDA端兼容
MaintainDetail maintainDetail = MapstructUtils.convert(result, MaintainDetail.class);
// 手动处理字段映射差异machineId -> deviceId
if (result.getMachineId() != null) {
maintainDetail.setDeviceId(result.getMachineId());
}
// 手动处理字段映射maintStationId -> stationId
if (result.getMaintStationId() != null) {
maintainDetail.setStationId(result.getMaintStationId());
}
// 手动处理其他字段映射确保PDA端能正确显示
maintainDetail.setDeviceCode(result.getMachineCode());
maintainDetail.setDeviceName(result.getMachineName());
maintainDetail.setTypeName(result.getDeviceTypeName());
maintainDetail.setMaintStationName(result.getMaintStationName());
maintainDetail.setMaintProtocol(result.getMaintProtocol());
maintainDetail.setMaintOperationDescription(result.getMaintOperationDescription());
maintainDetail.setOperationDescription(result.getOperationDescription());
// 处理嵌套对象的字段映射dmsBillsMaintDetailProjectList
if (result.getDmsBillsMaintDetailProjectList() != null) {
List<MaintainProject> maintainProjectList = new ArrayList<>();
for (var projectVo : result.getDmsBillsMaintDetailProjectList()) {
MaintainProject maintainProject = MapstructUtils.convert(projectVo, MaintainProject.class);
// 确保字段正确映射兼容PDA端期望的字段结构
if (projectVo.getMaintDetailProjectId() != null) {
maintainProject.setMaintDetailProjectId(projectVo.getMaintDetailProjectId());
}
if (projectVo.getBillsMaintDetailId() != null) {
maintainProject.setBillsMaintDetailId(projectVo.getBillsMaintDetailId());
}
if (projectVo.getMaintProjectId() != null) {
maintainProject.setMaintProjectId(projectVo.getMaintProjectId());
}
maintainProject.setMaintProjectName(projectVo.getMaintProjectName());
maintainProject.setMaintProjectDesc(projectVo.getMaintProjectDesc());
maintainProject.setMaintProjectStatus(projectVo.getMaintProjectStatus());
maintainProject.setRemark(projectVo.getRemark());
maintainProjectList.add(maintainProject);
}
maintainDetail.setDmsBillsMaintDetailProjectList(maintainProjectList);
}
return AjaxResult.success(maintainDetail);
}
/**
@ -519,7 +741,21 @@ public class DmsMobileController extends BaseController {
@Log(title = "保养工单", businessType = BusinessType.COMPLETE)
@PostMapping("/completeMaint")
@RepeatSubmit
public AjaxResult completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
public AjaxResult completeMaint(@RequestBody DmsBillsMaintDetailMobileBo dmsBillsMaintDetailMobileBo) {
// 将PDA端Bo转换为后端实体处理字段名差异和项目列表
DmsBillsMaintDetail dmsBillsMaintDetail = dmsBillsMaintDetailMobileBo.toEntity();
// 处理项目列表的转换
if (dmsBillsMaintDetailMobileBo.getDmsBillsMaintDetailProjectList() != null) {
List<DmsBillsMaintDetailProjectVo> projectList = new ArrayList<>();
for (var mobileBo : dmsBillsMaintDetailMobileBo.getDmsBillsMaintDetailProjectList()) {
DmsBillsMaintDetailProject project = mobileBo.toEntity();
DmsBillsMaintDetailProjectVo projectVo = MapstructUtils.convert(project, DmsBillsMaintDetailProjectVo.class);
projectList.add(projectVo);
}
dmsBillsMaintDetail.setDmsBillsMaintDetailProjectList(projectList);
}
int i = dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail);
return AjaxResult.success(i);
}
@ -537,6 +773,25 @@ public class DmsMobileController extends BaseController {
DmsBillsLubeInstanceVo newestLubeInstance = dmsBillsLubeInstanceService.getNewestBillsLubeInstance(dmsBillsLubeInstance);
// 使用MapstructUtils进行高性能对象转换避免时间字段序列化问题
DmsBillsLubeInstanceMobile mobileInstance = MapstructUtils.convert(newestLubeInstance, DmsBillsLubeInstanceMobile.class);
// 处理嵌套对象的字段映射dmsBillsLubeDetailList
if (newestLubeInstance.getDmsBillsLubeDetailList() != null) {
List<LubricationDetail> lubricationDetailList = new ArrayList<>();
for (var detailVo : newestLubeInstance.getDmsBillsLubeDetailList()) {
LubricationDetail lubricationDetail = MapstructUtils.convert(detailVo, LubricationDetail.class);
// 手动处理字段映射差异machineId -> deviceId
if (detailVo.getMachineId() != null) {
lubricationDetail.setDeviceId(detailVo.getMachineId());
}
// 处理其他字段映射machineCode -> deviceCode, machineName -> deviceName
lubricationDetail.setDeviceCode(detailVo.getMachineCode());
lubricationDetail.setDeviceName(detailVo.getMachineName());
lubricationDetail.setTypeName(detailVo.getDeviceTypeName());
lubricationDetailList.add(lubricationDetail);
}
mobileInstance.setDmsBillsLubeDetailList(lubricationDetailList);
}
// 注意润滑Mobile类中的时间字段已被注释无需格式化
// 如果将来启用时间字段,请添加相应的格式化方法
return AjaxResult.success(mobileInstance);

@ -67,6 +67,11 @@ public class DmsBaseMaintStation extends TenantEntity {
@TableField(exist = false)
private String deviceTypeName;//JOIN
/**
*
*/
@TableField(exist = false)
private String maintStandardCode;//JOIN
/*
@TableField(exist = false)
private List<DmsBaseMaintProject> dmsBaseMaintProject;

@ -109,4 +109,11 @@ public class DmsBillsLubeDetailBo extends BaseEntity {
*/
private String lubeOperationDescription;
/**
* IDprod_base_machine_infomachine_id
* PDA
*/
private Long deviceId;
}

@ -0,0 +1,142 @@
package org.dromara.dms.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.dms.domain.DmsBillsMaintDetail;
import java.util.Date;
import java.util.List;
/**
* PDA
* PDA
*
* @author system
* @date 2025-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBillsMaintDetail.class, reverseConvertGenerate = false)
public class DmsBillsMaintDetailMobileBo extends BaseEntity {
/**
*
*/
@NotNull(message = "保养明细ID不能为空", groups = {EditGroup.class})
private Long billsMaintDetailId;
/**
* IDdms_bills_maint_instancemaint_instance_id
*/
private Long maintInstanceId;
/**
* ID - PDA使deviceIdmachineId
*/
private Long deviceId;
/**
* ID - PDA使stationIdmaintStationId
*/
private Long stationId;
/**
* ID
*/
private Long maintStandardId;
/**
*
*/
private String operationDescription;
/**
* 1 2 3
*/
private Long maintStatus;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date beginTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
/**
*
*/
private String remark;
/**
* - PDA
*/
private List<DmsBillsMaintDetailProjectMobileBo> dmsBillsMaintDetailProjectList;
// ============ 以下是PDA端可能传入但后端不使用的显示字段 ============
/**
* (PDA)
*/
private String deviceCode;
/**
* (PDA)
*/
private String deviceName;
/**
* (PDA)
*/
private String maintStationName;
/**
* (PDA)
*/
private String maintProtocol;
/**
* (PDA)
*/
private String maintOperationDescription;
/**
* (PDA)
*/
private String typeName;
/**
*
* deviceId -> machineId, stationId -> maintStationId
*/
public DmsBillsMaintDetail toEntity() {
DmsBillsMaintDetail entity = new DmsBillsMaintDetail();
entity.setBillsMaintDetailId(this.billsMaintDetailId);
entity.setMaintInstanceId(this.maintInstanceId);
entity.setMachineId(this.deviceId); // deviceId -> machineId
entity.setMaintStationId(this.stationId); // stationId -> maintStationId
entity.setMaintStandardId(this.maintStandardId);
entity.setOperationDescription(this.operationDescription);
entity.setMaintStatus(this.maintStatus);
entity.setBeginTime(this.beginTime);
entity.setEndTime(this.endTime);
entity.setRemark(this.remark);
// 继承的基础字段
entity.setCreateBy(this.getCreateBy());
entity.setCreateTime(this.getCreateTime());
entity.setUpdateBy(this.getUpdateBy());
entity.setUpdateTime(this.getUpdateTime());
// 租户信息由TenantEntity处理
return entity;
}
}

@ -0,0 +1,75 @@
package org.dromara.dms.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.dms.domain.DmsBillsMaintDetailProject;
/**
* PDA
* PDAintLong
*
* @author system
* @date 2025-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsBillsMaintDetailProject.class, reverseConvertGenerate = false)
public class DmsBillsMaintDetailProjectMobileBo extends BaseEntity {
/**
* ID - PDAint
*/
private Long maintDetailProjectId;
/**
* ID - PDAint
*/
private Long billsMaintDetailId;
/**
* ID - PDAint
*/
private Long maintProjectId;
/**
* ()
*/
private String maintProjectName;
/**
*
*/
private String maintProjectDesc;
/**
* 0 1
*/
private String maintProjectStatus;
/**
*
*/
private String remark;
/**
*
*/
public DmsBillsMaintDetailProject toEntity() {
DmsBillsMaintDetailProject entity = new DmsBillsMaintDetailProject();
entity.setMaintDetailProjectId(this.maintDetailProjectId);
entity.setBillsMaintDetailId(this.billsMaintDetailId);
entity.setMaintProjectId(this.maintProjectId);
entity.setMaintProjectName(this.maintProjectName);
entity.setMaintProjectDesc(this.maintProjectDesc);
entity.setMaintProjectStatus(this.maintProjectStatus);
entity.setRemark(this.remark);
// 继承的基础字段
entity.setCreateBy(this.getCreateBy());
entity.setCreateTime(this.getCreateTime());
entity.setUpdateBy(this.getUpdateBy());
entity.setUpdateTime(this.getUpdateTime());
return entity;
}
}

@ -0,0 +1,54 @@
package org.dromara.dms.domain.mobile;
import lombok.Data;
/**
* - Mobile
* PDABxSubmitBeen
*
* @author system
* @date 2025-01-20
*/
@Data
public class BxSubmitBeen {
/**
* ID
*/
private Long deviceld;
/**
*
*/
private String faultType;
/**
*
*/
private String faultDescription;
/**
*
*/
private String designOperations;
/**
*
*/
private int repairType;
/**
* ID
*/
private int outsrcld;
/**
*
*/
private String deviceCode;
/**
*
*/
private String selectName;
}

@ -3,10 +3,12 @@ package org.dromara.dms.domain.mobile;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo;
/**
* PDA
* PDA - PDADeviceBeen
* PDA Web prod_base_machine_info
*
* @author system
@ -14,6 +16,7 @@ import lombok.Data;
*/
@Data
@TableName("prod_base_machine_info")
@AutoMapper(target = DmsBaseMachineInfoVo.class, reverseConvertGenerate = true)
public class DeviceBeen {
/**

@ -0,0 +1,66 @@
package org.dromara.dms.domain.mobile;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
/**
* - Mobile
* PDADeviceInspectionItem
*
* @author system
* @date 2025-01-20
*/
@Data
public class DeviceInspectionItem {
/**
*
*/
private int index;
/**
* ID
*/
private Long instanceDetailProjectId;
/**
*
*/
private double defValue;
/**
*
*/
private double upLimit;
/**
*
*/
private double lowLimit;
/**
*
*/
private String inspectProjectProperty;
/**
*
*/
private String inspectProjectName;
/**
*
*/
private String inspectProjectResult;
/**
* 0 1
*/
private String inspectProjectStatus;
/**
*
*/
private String inspectProjectDesc;
}

@ -0,0 +1,29 @@
package org.dromara.dms.domain.mobile;
import lombok.Data;
/**
* - Mobile
* PDADeviceRepairPart
*
* @author system
* @date 2025-01-20
*/
@Data
public class DeviceRepairPart {
/**
*
*/
private String partName;
/**
*
*/
private String partSpecifications;
/**
*
*/
private String amount;
}

@ -1,20 +1,24 @@
package org.dromara.dms.domain.mobile;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.system.api.domain.vo.RemoteDictDataVo;
/**
* - Mobile
* PDADict
*
* @author system
* @date 2025-01-20
*/
@Data
@AutoMapper(target = RemoteDictDataVo.class, reverseConvertGenerate = true)
public class Dict {
/**
*
*/
private String dictLabel;
/**
*
*
*/
private String dictValue;
@ -24,8 +28,7 @@ public class Dict {
private String dictType;
/**
* - PDAString
*
*/
private String dictCode;
}

@ -16,7 +16,8 @@ import java.util.List;
/**
* dms_bills_fault_instance
* Mobile - PDADeviceRepair
* PDADeviceRepair
*
* @author zch
* @date 2025-04-07
@ -244,4 +245,71 @@ public class DmsBillsFaultInstanceMobile implements Serializable {
private List<DmsFaultComponentsParts> parts;//JOIN
// === PDA端DeviceRepair兼容字段 ===
/**
* PDA
*/
private String applyTime;
/**
* PDA
*/
private String realBeginTime;
/**
* PDA
*/
private String realEndTime;
/**
* PDA
*/
private String requireEndTime;
/**
* PDA
*/
private String confirmTime;
/**
*
*/
private List<Outsourcing> outsourcingList;
/**
*
*/
private List<String> outsourcingNameList;
/**
* ID
*/
private int outsrcId;
/**
* ID
*/
private int outsrcIdIndex;
/**
*
*/
private String outsrcName;
/**
* 1
*/
private boolean radioState1;
/**
* 2
*/
private boolean radioState2;
/**
*
*/
private String deviceCodeTag;
}

@ -15,7 +15,8 @@ import java.util.List;
/**
* dms_bills_inspect_instance
* Mobile - PDADeviceInspection
* PDADeviceInspection
*
* @author zch
* @date 2025-03-31

@ -17,7 +17,8 @@ import java.util.List;
/**
* dms_bills_lube_instance
* Mobile - PDALubricationBeen
* PDALubricationBeen
*
* @author zch
* @date 2025-03-25
@ -127,9 +128,9 @@ public class DmsBillsLubeInstanceMobile implements Serializable {
private String planLubeCode;
/**
*
* - PDALubricationBeen
*/
private List<DmsBillsLubeDetailVo> dmsBillsLubeDetailList;
private List<LubricationDetail> dmsBillsLubeDetailList;
/**
@ -144,11 +145,4 @@ public class DmsBillsLubeInstanceMobile implements Serializable {
@ExcelIgnore
private Date createTime;
/**
*
*/
private List<LubricationDetail> dmsBillsLubeDetails;
private String lubeStatusStr;
}

@ -16,7 +16,8 @@ import java.util.List;
/**
* dms_bills_maint_instance
* Mobile - PDAMaintainBeen
* PDAMaintainBeen
*
* @author zch
* @date 2025-03-31
@ -128,18 +129,12 @@ public class DmsBillsMaintInstanceMobile implements Serializable {
*/
private Long wfProcessId;
private String maintStatusStr;
private String planRemark;
private String maintLevelName;
private List<DmsBillsMaintDetail> dmsBillsMaintDetailList;
/**
* - PDAMaintainBeen
*/
private List<MaintainDetail> dmsBillsMaintDetailList;
// private Date createTime;

@ -12,7 +12,8 @@ import java.io.Serializable;
import java.util.List;
/**
* Mobile - PDA
* Mobile - PDADeviceInspectionDetail
* PDADeviceInspectionDetail
*
* @author system
* @date 2025-06-21
@ -102,8 +103,9 @@ public class DmsInspectInstanceDetailMobile implements Serializable {
private String deviceName;
/**
* - PDA (JSONnull)
* - PDA
* PDADeviceInspectionItem
*/
// private List<DmsInspectInstanceDetailProjectMobile> dmsInspectInstanceDetailProjectList;
private List<DeviceInspectionItem> dmsInspectInstanceDetailProjectList;
}

@ -0,0 +1,34 @@
package org.dromara.dms.domain.mobile;
import lombok.Data;
/**
* - Mobile
* PDAInstanceFile
*
* @author system
* @date 2025-01-20
*/
@Data
public class InstanceFile {
/**
* ID
*/
private int instanceFileId;
/**
*
*/
private String targetType;
/**
* ID
*/
private int targetId;
/**
*
*/
private String filePath;
}

@ -1,7 +1,10 @@
package org.dromara.dms.domain.mobile;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.dms.domain.vo.DmsBillsLubeDetailVo;
@AutoMapper(target = DmsBillsLubeDetailVo.class)
@Data
public class LubricationDetail {
@ -25,32 +28,66 @@ public class LubricationDetail {
* lubeOperationDescription : null
*/
private int billsLubeDetailId;
private Long billsLubeDetailId;
private int lubeInstanceId;
/**
* ID
*/
private Long lubeInstanceId;
private int deviceId;
/**
* ID
*/
private Long deviceId;
private int lubeStationId;
/**
* ID
*/
private Long lubeStationId;
private int lubeStandardId;
/**
* ID
*/
private Long lubeStandardId;
/**
*
*/
private String operationDescription;
/**
*
*/
private Long maintStatus;
/**
*
*/
private String typeName;
/**
*
*/
private String deviceCode;
/**
*
*/
private String deviceName;
/**
*
*/
private String lubeStationName;
/**
*
*/
private String lubeProtocol;
/**
*
*/
private String lubeOperationDescription;
// 显示
private String maintStatusStr;
}

@ -0,0 +1,93 @@
package org.dromara.dms.domain.mobile;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import lombok.Data;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo;
import java.util.List;
/**
* - Mobile
* PDAMaintainDetail
*
* @author system
* @date 2025-01-20
*/
@AutoMappers({
@AutoMapper(target = DmsBillsMaintDetailVo.class),
@AutoMapper(target = org.dromara.dms.domain.DmsBillsMaintDetail.class)
})
@Data
public class MaintainDetail {
/**
* ID
*/
private Long billsMaintDetailId;
/**
* ID
*/
private Long maintInstanceId;
/**
* ID
*/
private Long deviceId;
/**
* ID
*/
private Long stationId;
/**
* ID
*/
private Long maintStandardId;
/**
*
*/
private String operationDescription;
/**
*
*/
private String deviceCode;
/**
*
*/
private String deviceName;
/**
*
*/
private String maintStationName;
/**
*
*/
private String maintProtocol;
/**
*
*/
private String maintOperationDescription;
/**
*
*/
private String typeName;
/**
* - VoLong
*/
private Long maintStatus;
/**
*
*/
private List<MaintainProject> dmsBillsMaintDetailProjectList;
}

@ -0,0 +1,52 @@
package org.dromara.dms.domain.mobile;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailProjectVo;
/**
* - Mobile
* PDAMaintainProject
*
* @author system
* @date 2025-01-20
*/
@Data
@AutoMapper(target = DmsBillsMaintDetailProjectVo.class)
public class MaintainProject {
/**
*
*/
private String remark;
/**
* ID - LongVO
*/
private Long maintDetailProjectId;
/**
* ID - LongVO
*/
private Long billsMaintDetailId;
/**
* ID - LongVO
*/
private Long maintProjectId;
/**
*
*/
private String maintProjectName;
/**
*
*/
private String maintProjectDesc;
/**
* 0 1
*/
private String maintProjectStatus;
}

@ -3,9 +3,18 @@ package org.dromara.dms.domain.mobile;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import io.github.linpeilie.annotations.AutoMapper;
import org.dromara.dms.domain.vo.DmsBaseOutsourcingInfoVo;
/**
* Mobile - PDAOutsourcing
* PDAOutsourcing
*
* @author system
* @date 2025-01-20
*/
@Data
//@AutoMapper(target = DmsBaseOutsourcingInfoVo.class, reverseConvertGenerate = true)
public class Outsourcing {
/**

@ -1,5 +1,6 @@
package org.dromara.dms.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import org.dromara.dms.domain.DmsBaseMaintStandard;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@ -76,4 +77,5 @@ public class DmsBaseMaintStandardVo implements Serializable {
*/
private String deviceTypeName;//JOIN
}

@ -132,5 +132,9 @@ public class DmsBillsLubeDetailVo implements Serializable {
@ExcelProperty(value = "润滑操作描述")
private String lubeOperationDescription;
/**
* ()
*/
@ExcelProperty(value = "润滑部位名称")
private String lubeStationName;
}

@ -8,7 +8,6 @@ import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.dms.domain.DmsBillsLubeInstance;
import org.dromara.dms.domain.mobile.LubricationDetail;
import java.io.Serial;
import java.io.Serializable;
@ -129,7 +128,7 @@ public class DmsBillsLubeInstanceVo implements Serializable {
/**
*
*/
private List<LubricationDetail> dmsBillsLubeDetailList;
private List<DmsBillsLubeDetailVo> dmsBillsLubeDetailList;
/**

@ -90,6 +90,12 @@ public class DmsBillsMaintDetailVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
* ()
*/

@ -144,7 +144,7 @@ public class DmsBillsMaintInstanceVo implements Serializable {
private String maintLevelName;
private List<DmsBillsMaintDetail> dmsBillsMaintDetailList;
private List<DmsBillsMaintDetailVo> dmsBillsMaintDetailList;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;

@ -17,7 +17,7 @@ import java.util.Date;
/**
* dmsRecordInspect dms_record_inspect
* dms_record_inspect
*
* @author zch
* @date 2025-06-24

@ -2,7 +2,6 @@ package org.dromara.dms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.dms.domain.DmsBillsLubeDetail;
import org.dromara.dms.domain.mobile.LubricationDetail;
import org.dromara.dms.domain.vo.DmsBillsLubeDetailVo;
import java.util.List;
@ -21,7 +20,7 @@ public interface DmsBillsLubeDetailMapper extends BaseMapperPlus<DmsBillsLubeDet
* @param dmsBillsLubeDetail
* @return
*/
List<LubricationDetail> selectDmsBillsLubeDetailJoinList(DmsBillsLubeDetail dmsBillsLubeDetail);
List<DmsBillsLubeDetailVo> selectDmsBillsLubeDetailJoinList(DmsBillsLubeDetail dmsBillsLubeDetail);
}

@ -24,7 +24,7 @@ public interface DmsBillsMaintDetailMapper extends BaseMapperPlus<DmsBillsMaintD
* @param dmsBillsMaintDetail
* @return
*/
public List<DmsBillsMaintDetail> selectDmsBillsMaintDetailJoinList(DmsBillsMaintDetail dmsBillsMaintDetail);
public List<DmsBillsMaintDetailVo> selectDmsBillsMaintDetailJoinList(DmsBillsMaintDetail dmsBillsMaintDetail);
List<DmsBillsMaintDetail> selectDetailList(Long maintInstanceId);

@ -10,7 +10,7 @@ import java.util.Collection;
import java.util.List;
/**
* dmsRecordInspectService
* Service
*
* @author zch
* @date 2025-06-24
@ -18,48 +18,48 @@ import java.util.List;
public interface IDmsRecordInspectService {
/**
* dmsRecordInspect
*
*
* @param recordInspectId
* @return dmsRecordInspect
* @return
*/
DmsRecordInspectVo queryById(Long recordInspectId);
/**
* dmsRecordInspect
*
*
* @param bo
* @param pageQuery
* @return dmsRecordInspect
* @return
*/
TableDataInfo<DmsRecordInspectVo> queryPageList(DmsRecordInspectBo bo, PageQuery pageQuery);
/**
* dmsRecordInspect
*
*
* @param bo
* @return dmsRecordInspect
* @return
*/
List<DmsRecordInspectVo> queryList(DmsRecordInspectBo bo);
/**
* dmsRecordInspect
*
*
* @param bo dmsRecordInspect
* @param bo
* @return
*/
Boolean insertByBo(DmsRecordInspectBo bo);
/**
* dmsRecordInspect
*
*
* @param bo dmsRecordInspect
* @param bo
* @return
*/
Boolean updateByBo(DmsRecordInspectBo bo);
/**
* dmsRecordInspect
*
*
* @param ids
* @param isValid

@ -222,8 +222,6 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
// 可以考虑记录到失败表,后续补偿处理
}
}));
// 创建故障实例活动对象
DmsFaultInstanceActivity dmsFaultInstanceActivity = new DmsFaultInstanceActivity();
// 设置维修实例ID
@ -250,13 +248,11 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
dmsFaultInstanceActivity.setProcessStepOrder(1l);
// 插入故障实例活动记录
dmsFaultInstanceActivityMapper.insert(dmsFaultInstanceActivity);
//存储图片
// 获取文件URL列表
List<String> fileUrls = add.getFileUrls();
// 批量插入实例文件记录
batchInsertInstanceFiles(fileUrls, dmsFaultInstanceActivity.getInstanceActivityId());
return flag;
}

@ -287,23 +287,18 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer
// 设置润滑状态字符串,表示待润滑和正在润滑的状态
bo.setLubeStatusStr(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE
+ "," + DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_LUBING);
// 查询最新的润滑工单
DmsBillsLubeInstanceVo newestBillsLubeInstance = baseMapper.selectNewestDmsBillsLubeInstance(bo);
// 如果找到最新的润滑工单
if (newestBillsLubeInstance != null) {
// 查询关联的润滑详情列表
// 创建一个新的润滑详情对象
DmsBillsLubeDetail queryBillsLubeDetail = new DmsBillsLubeDetail();
// 设置润滑详情对象的润滑ID
queryBillsLubeDetail.setLubeInstanceId(newestBillsLubeInstance.getLubeInstanceId());
List<LubricationDetail> dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectDmsBillsLubeDetailJoinList(queryBillsLubeDetail);
List<DmsBillsLubeDetailVo> dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectDmsBillsLubeDetailJoinList(queryBillsLubeDetail);
newestBillsLubeInstance.setDmsBillsLubeDetailList(dmsBillsLubeDetails);
}
return newestBillsLubeInstance;
}

@ -282,7 +282,8 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
if (newestBillsMaintInstance != null) {
DmsBillsMaintDetail queryBillsMaintDetail = new DmsBillsMaintDetail();
queryBillsMaintDetail.setMaintInstanceId(newestBillsMaintInstance.getMaintInstanceId());
List<DmsBillsMaintDetail> dmsBillsMaintDetails = dmsBillsMaintDetailMapper.selectDmsBillsMaintDetailJoinList(queryBillsMaintDetail);
List<DmsBillsMaintDetailVo> dmsBillsMaintDetails = dmsBillsMaintDetailMapper.selectDmsBillsMaintDetailJoinList(queryBillsMaintDetail);
newestBillsMaintInstance.setDmsBillsMaintDetailList(dmsBillsMaintDetails);
}
Long maintLevel = newestBillsMaintInstance.getMaintLevel();
@ -386,6 +387,24 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
List<DmsBillsMaintDetailProjectVo> dmsBillsMaintDetailProjects = dmsBillsMaintInstanceProjectService.queryList(queryBillsMaintDetailProject);
// 设置保养明细的项目列表
dmsBillsMaintDetail.setDmsBillsMaintDetailProjectList(dmsBillsMaintDetailProjects);
// 【关键修复】重新查询完整的保养明细信息,包含关联字段
// 使用关联查询方法获取完整的保养明细信息,包括设备名称、保养部位名称等
DmsBillsMaintDetail queryDetail = new DmsBillsMaintDetail();
queryDetail.setBillsMaintDetailId(dmsBillsMaintDetail.getBillsMaintDetailId());
List<DmsBillsMaintDetailVo> detailVoList = dmsBillsMaintDetailMapper.selectDmsBillsMaintDetailJoinList(queryDetail);
if (!detailVoList.isEmpty()) {
DmsBillsMaintDetailVo detailVo = detailVoList.get(0);
// 将关联查询到的字段赋值给返回对象
dmsBillsMaintDetail.setMachineCode(detailVo.getMachineCode());
dmsBillsMaintDetail.setMachineName(detailVo.getMachineName());
dmsBillsMaintDetail.setDeviceTypeName(detailVo.getDeviceTypeName());
dmsBillsMaintDetail.setMaintStationName(detailVo.getMaintStationName());
dmsBillsMaintDetail.setMaintProtocol(detailVo.getMaintProtocol());
dmsBillsMaintDetail.setMaintOperationDescription(detailVo.getMaintOperationDescription());
}
// 返回更新后的保养明细对象
return dmsBillsMaintDetail;
}

@ -99,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectRecord" resultType="org.dromara.dms.domain.DmsRecordInspect" parameterType="java.lang.Long">
select
x.inspect_instance_id,
c.plan_inspect_id,
c.plan_inspect_code bills_inspect_code,
c.inspect_type ,
c.device_amount ,

@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="org.dromara.dms.mapper.DmsBillsLubeDetailMapper">
<resultMap type="DmsBillsLubeDetailVo" id="DmsBillsLubeDetailResult">
<resultMap type="org.dromara.dms.domain.vo.DmsBillsLubeDetailVo" id="DmsBillsLubeDetailResult">
<result property="billsLubeDetailId" column="bills_lube_detail_id" />
<result property="lubeInstanceId" column="lube_instance_id" />
<result property="machineId" column="machine_id" />
@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join dms_base_lube_standard dblsd on dbld.lube_standard_id=dblsd.lube_standard_id
</sql>
<select id="selectDmsBillsLubeDetailJoinList" parameterType="DmsBillsLubeDetail" resultMap="LubricationDetail">
<select id="selectDmsBillsLubeDetailJoinList" parameterType="DmsBillsLubeDetail" resultMap="DmsBillsLubeDetailResult">
<include refid="selectDmsBillsLubeDetailJoinVo"/>
<where>
<if test="lubeInstanceId != null "> and dbld.lube_instance_id = #{lubeInstanceId}</if>

@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="machineCode" column="machine_code" />
<result property="machineName" column="machine_name" />
<result property="deviceTypeName" column="device_type_name" />
<result property="maintStationCode" column="maint_station_code" />
<result property="maintStationName" column="maint_station_name" />
<result property="maintProtocol" column="maint_protocol" />
<result property="maintOperationDescription" column="maint_operation_description" />
@ -63,10 +64,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dbmd.maint_standard_id,
dbmd.operation_description,
dbmd.maint_status,
dbmd.begin_time,
dbmd.end_time,
dbmd.remark,
dbdl.machine_code,
dbdl.machine_name,
dbdt.device_type_name,
dbms.maint_station_code maint_station_name,
dbms.maint_station_code,
dbms.maint_station_name,
dbmsd.maint_protocol,
dbmsd.operation_description as maint_operation_description
from
@ -84,6 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectDmsBillsMaintDetailJoinList" parameterType="DmsBillsMaintDetail" resultMap="DmsBillsMaintDetailResult">
<include refid="selectDmsBillsMaintDetailJoinVo"/>
<where>
<if test="billsMaintDetailId != null "> and dbmd.bills_maint_detail_id = #{billsMaintDetailId}</if>
<if test="maintInstanceId != null "> and dbmd.maint_instance_id = #{maintInstanceId}</if>
<if test="machineId != null "> and dbmd.machine_id = #{machineId}</if>
<if test="maintStationId != null "> and dbmd.maint_station_id = #{maintStationId}</if>

Loading…
Cancel
Save