diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsFaultInstanceController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsFaultInstanceController.java index f4f84ce..d1dec27 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsFaultInstanceController.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsBillsFaultInstanceController.java @@ -18,7 +18,6 @@ import org.dromara.common.web.core.BaseController; import org.dromara.dms.domain.bo.DmsBillsFaultInstanceBo; import org.dromara.dms.domain.vo.DmsBillsFaultInstanceVo; import org.dromara.dms.service.IDmsBillsFaultInstanceService; -import org.dromara.dms.utils.TemplateExcelUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -117,6 +116,18 @@ public class DmsBillsFaultInstanceController extends BaseController { return R.ok(list); } + /** + * 更新故障报修工单的工作流定义ID + * @param repairInstanceId 故障报修工单的ID + * @param wfDefinitionId 工作流定义的ID + * @return 如果更新成功返回true,否则返回false + */ + @PostMapping("/updateWfDefinitionIdById") + public R updateWfDefinitionIdById(@RequestParam Long repairInstanceId, @RequestParam Long wfDefinitionId) + { + return toAjax(dmsBillsFaultInstanceService.updateWfDefinitionIdById(repairInstanceId, wfDefinitionId)); + } + // @PostMapping("faultRecordExport") // public void faultRecordExport(DmsBillsFaultInstance dmsBillsFaultInstance, HttpServletResponse response) throws Exception { // Map beanParams = new HashMap<>(); diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java index 0e4bcf4..e9e1dc4 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/controller/DmsMobileController.java @@ -4,13 +4,19 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; 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.*; +import org.dromara.dms.domain.DmsBillsMaintDetail; +import org.dromara.dms.domain.DmsFaultComponentsParts; import org.dromara.dms.domain.bo.*; +import org.dromara.dms.domain.mobile.DeviceBeen; +import org.dromara.dms.domain.mobile.Outsourcing; import org.dromara.dms.domain.vo.*; import org.dromara.dms.service.*; import org.dromara.resource.api.RemoteFileService; @@ -18,10 +24,8 @@ import org.dromara.resource.api.domain.RemoteFile; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import org.dromara.common.core.exception.ServiceException; -import java.io.IOException; -import lombok.extern.slf4j.Slf4j; +import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -108,6 +112,7 @@ public class DmsMobileController extends BaseController { * @return */ @GetMapping("/getDeviceByDeviceCode/{deviceCode}") + @RepeatSubmit public R getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode) { DmsBaseMachineInfoBo dmsBaseMachineInfoBo = new DmsBaseMachineInfoBo(); dmsBaseMachineInfoBo.setMachineCode(deviceCode); @@ -123,7 +128,8 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getOutsrcInfos") - public R getOutsrcInfos() { + // @RepeatSubmit + public R> getOutsrcInfos() { DmsBaseOutsourcingInfoBo queryBaseOutsrcInfo = new DmsBaseOutsourcingInfoBo(); //沒有外协状态,用激活状态 @@ -131,15 +137,40 @@ public class DmsMobileController extends BaseController { queryBaseOutsrcInfo.setActiveFlag("1"); List baseOutsrcInfos = dmsBaseOutsrcInfoService.queryList(queryBaseOutsrcInfo); - return R.ok(baseOutsrcInfos); + // 将 DmsBaseOutsourcingInfoVo 转换为 Outsourcing 对象 +/* List outsourcingList = baseOutsrcInfos.stream() + .map(vo -> { + Outsourcing outsourcing = new Outsourcing(); + // 手动设置每个字段,确保正确映射 + outsourcing.setOutsrcId(vo.getOutsourcingId().intValue()); // Long转int + outsourcing.setOutsrcCode(vo.getOutsourcingCode()); + outsourcing.setOutsrcName(vo.getOutsourcingName()); + return outsourcing; + }) + .collect(Collectors.toList());*/ + List outsourcingList = new ArrayList<>(); + for (DmsBaseOutsourcingInfoVo vo : baseOutsrcInfos) { + Outsourcing outsourcing = new Outsourcing(); + outsourcing.setOutsrcId(vo.getOutsourcingId().intValue()); + outsourcing.setOutsrcCode(vo.getOutsourcingCode()); + outsourcing.setOutsrcName(vo.getOutsourcingName()); + outsourcingList.add(outsourcing); + } + + return R.ok(outsourcingList); } + + /** * 根据传参模糊查询设备名 + * 直接返回 PDA 端需要的 DeviceBeen 格式数据,无需对象转换 */ @GetMapping("/likeDeviceName") - public R likeDeviceName(String deviceName) { - List deviceLedgerList = baseDeviceLedgerService.likeDeviceName(deviceName); - return R.ok(deviceLedgerList); + @RepeatSubmit + public R> likeDeviceName(String deviceName) { + // 直接调用 PDA 端专用查询方法,无需对象转换 + List deviceBeenList = baseDeviceLedgerService.likeDeviceNameForPda(deviceName); + return R.ok(deviceBeenList); } @@ -158,6 +189,7 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "故障报修工单", businessType = BusinessType.INSERT) @PostMapping("/insertFaultInstsanceActivity") + @RepeatSubmit public R insertFaultInstsanceActivity(DmsBillsFaultInstanceBo dmsBillsFaultInstance, List files) { List fileUrls = new ArrayList<>(); @@ -175,7 +207,6 @@ public class DmsMobileController extends BaseController { } try { - // 调用 RemoteFileService 的 upload 方法,传入正确参数 // 'name' 参数在当前RemoteFileServiceImpl实现中并非强制决定最终文件名, // 这里传入originalFilename以保持一致性或作为备用标识 RemoteFile sysFile = remoteFileService.upload(originalFilename, originalFilename, contentType, fileBytes); @@ -208,6 +239,7 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getBillsFaultInstances") + @RepeatSubmit public TableDataInfo getBillsFaultInstances() { DmsBillsFaultInstanceBo queryBillsFaultInstance = new DmsBillsFaultInstanceBo(); List billsFaultInstances = dmsBillsFaultInstanceService.queryList(queryBillsFaultInstance); @@ -221,7 +253,8 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getBillsFaultInstanceByRepairInstanceId/{repairInstanceId}") - public R getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) { + @RepeatSubmit + public R getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) { //fixme:图片地址完整路径(IP) DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId); return R.ok(billsFaultInstance); @@ -234,7 +267,8 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "故障报修工单", businessType = BusinessType.UPDATE) @PostMapping("/updateFaultInstanceActivity") - public R updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, + @RepeatSubmit + public R updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, @RequestParam(value = "files") List files) { List fileUrls = handleFileUploads(files); dmsFaultInstanceActivity.setFileUrls(fileUrls); @@ -248,6 +282,7 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getBillsFaultInstance4Repair/{repairInstanceId}") + @RepeatSubmit public R getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) { DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId); return R.ok(billsFaultInstance); @@ -261,6 +296,7 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/scanDevice4Repair") + @RepeatSubmit public R scanDevice4Repair(@Validated DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) { //FIXME:返回从void改为long return R.ok(dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan)); @@ -273,7 +309,8 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "故障报修工单", businessType = BusinessType.START) @PostMapping("/startRepair") - public R startRepair(@RequestBody DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + @RepeatSubmit + public R startRepair(@RequestBody DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { return R.ok(dmsBillsFaultInstanceService.startRepair(dmsFaultInstanceActivity)); } @@ -283,6 +320,7 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "故障报修工单", businessType = BusinessType.COMPLETE) @PostMapping("/completeRepair") + @RepeatSubmit public R completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, @RequestParam(value = "files") List files) throws JsonProcessingException { dmsFaultInstanceActivity.setRepairConfirm("2"); @@ -306,7 +344,8 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getNewestInspectInstance") - public R getNewestInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance) { + @RepeatSubmit + public R getNewestInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance) { DmsBillsInspectInstanceVo newestInspectInstance = dmsBillsInspectInstanceService.getNewestBillsInspectInstance(dmsBillsInspectInstance); return R.ok(newestInspectInstance); } @@ -317,6 +356,7 @@ public class DmsMobileController extends BaseController { * */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/scanInspectInstanceDetail") + @RepeatSubmit public R scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) { return R.ok(dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScan)); } @@ -324,7 +364,6 @@ public class DmsMobileController extends BaseController { /** * 点巡检工单 */ -// @RequiresPermissions("qms:checkresultdetail:add") // @Log(title = "点巡检工单明细", businessType = BusinessType.INSERT) // @PostMapping("/saveInspectInstanceDetail") // public R saveInspectInstanceDetail(@RequestBody DmsInspectInstanceDetailBo dmsInspectInstanceDetail) { @@ -341,8 +380,9 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getNewestMaintInstance") - public R getNewestMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance) { - DmsBillsMaintInstance newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance); +// @RepeatSubmit + public R getNewestMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance) { + DmsBillsMaintInstanceVo newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance); return R.ok(newestMaintInstance); } @@ -353,6 +393,7 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "保养工单", businessType = BusinessType.START) @PostMapping("/startMaint") + @RepeatSubmit public R startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { return R.ok(dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail)); } @@ -363,6 +404,7 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "保养工单", businessType = BusinessType.COMPLETE) @PostMapping("/completeMaint") + @RepeatSubmit public R completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { return R.ok(dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail)); } @@ -375,7 +417,8 @@ public class DmsMobileController extends BaseController { */ // @RequiresPermissions("qms:checkrule:list") @GetMapping("/getNewestLubeInstance") - public R getNewestLubeInstance(DmsBillsLubeInstanceBo dmsBillsLubeInstance) { +// @RepeatSubmit + public R getNewestLubeInstance(DmsBillsLubeInstanceBo dmsBillsLubeInstance) { DmsBillsLubeInstanceVo newestLubeInstance = dmsBillsLubeInstanceService.getNewestBillsLubeInstance(dmsBillsLubeInstance); return R.ok(newestLubeInstance); } @@ -386,6 +429,7 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "润滑工单", businessType = BusinessType.START) @PostMapping("/startLube") + @RepeatSubmit public R startLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) { return R.ok(dmsBillsLubeInstanceService.startLube(dmsBillsLubeDetail)); @@ -397,8 +441,10 @@ public class DmsMobileController extends BaseController { // @RequiresPermissions("qms:checkresultdetail:add") @Log(title = "润滑工单", businessType = BusinessType.COMPLETE) @PostMapping("/completeLube") + @RepeatSubmit public R completeLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) { return R.ok(dmsBillsLubeInstanceService.completeLube(dmsBillsLubeDetail)); } + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsInspectInstance.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsInspectInstance.java index b97a5ce..678a5e1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsInspectInstance.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsInspectInstance.java @@ -1,6 +1,5 @@ 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; @@ -10,6 +9,7 @@ import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; import java.util.Date; +import java.util.List; /** * 点巡检工单对象 dms_bills_inspect_instance @@ -105,4 +105,11 @@ public class DmsBillsInspectInstance extends TenantEntity { @TableField(exist = false) private String performer; + + + private List dmsInspectInstanceDetailList; + + private String planInspectCode; + + private String inspectStatusStr; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeDetail.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeDetail.java index b4b7b91..92fbe80 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeDetail.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsLubeDetail.java @@ -1,6 +1,7 @@ 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; @@ -81,5 +82,40 @@ public class DmsBillsLubeDetail extends TenantEntity { */ private String remark; + /** + * 部位编号 + */ + @TableField(exist = false) + private String lubeStationCode; + + /** + * 润滑操作描述 + */ + @TableField(exist = false) + private String lubeOperationDescription; + + /** + * 设备编码 (关联查询字段) + */ + @TableField(exist = false) + private String machineCode; + + /** + * 设备名称 (关联查询字段) + */ + @TableField(exist = false) + private String machineName; + + /** + * 设备类型名称 (关联查询字段) + */ + @TableField(exist = false) + private String deviceTypeName; + + /** + * 润滑协议 (关联查询字段) + */ + @TableField(exist = false) + private String lubeProtocol; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintDetail.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintDetail.java index c57cbd9..8e7d3e2 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintDetail.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintDetail.java @@ -84,4 +84,40 @@ public class DmsBillsMaintDetail extends TenantEntity { @TableField(exist = false) private List dmsBillsMaintDetailProjectList; + /** + * 设备编码 (关联查询字段) + */ + @TableField(exist = false) + private String machineCode; + + /** + * 设备名称 (关联查询字段) + */ + @TableField(exist = false) + private String machineName; + + /** + * 设备类型名称 (关联查询字段) + */ + @TableField(exist = false) + private String deviceTypeName; + + /** + * 保养部位名称 (关联查询字段) + */ + @TableField(exist = false) + private String maintStationName; + + /** + * 保养协议 (关联查询字段) + */ + @TableField(exist = false) + private String maintProtocol; + + /** + * 保养操作描述 (关联查询字段) + */ + @TableField(exist = false) + private String maintOperationDescription; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintInstance.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintInstance.java index 8967ca6..2ca1064 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintInstance.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsMaintInstance.java @@ -1,6 +1,5 @@ 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; @@ -116,4 +115,7 @@ public class DmsBillsMaintInstance extends TenantEntity { @TableField(exist = false) private List dmsBillsMaintDetailList; + + @TableField(exist = false) + private String wfProcessId; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInstanceFile.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInstanceFile.java index c3d47a6..daae994 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInstanceFile.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInstanceFile.java @@ -24,7 +24,7 @@ public class DmsInstanceFile extends TenantEntity { /** * 主键标识 */ - @TableId(value = "instance_file_id") + @TableId(value = "instance_file_id", type = IdType.AUTO) private Long instanceFileId; /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceBo.java index 1c66637..62be1d3 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceBo.java @@ -1,18 +1,17 @@ package org.dromara.dms.domain.bo; -import org.dromara.dms.domain.DmsBillsFaultInstance; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +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.DmsBillsFaultInstance; + import java.util.Date; import java.util.List; -import com.fasterxml.jackson.annotation.JsonFormat; - /** * 故障报修工单业务对象 dms_bills_fault_instance * @@ -122,4 +121,41 @@ public class DmsBillsFaultInstanceBo extends BaseEntity { */ private Long outsourcingId; + + /** + * 设备ID,映射到数据库的 machine_id 字段 + */ + private int deviceId;//DeviceBeen映射 + + /** + * 设备编码,映射到数据库的 machine_code 字段 + */ + private String deviceCode;//DeviceBeen映射 + + /** + * 设备名称,映射到数据库的 machine_name 字段 + */ + private String deviceName;//DeviceBeen映射 + + /** + * 设备位置,映射到数据库的 machine_location 字段 + */ + private String deviceLocation;//DeviceBeen映射 + + /** + * 设备类型ID,映射到数据库的 machine_type 字段 + * 注意:这里可能需要根据实际业务调整数据类型 + */ + private Long deviceTypeId;//DeviceBeen映射 + + /** + * 设备规格,映射到数据库的 machine_spec 字段 + */ + private String deviceSpec;//DeviceBeen映射 + + /** + * 设备状态,映射到数据库的 machine_status 字段 + * 注意:数据库中是 String 类型,这里是 int 类型,可能需要转换 + */ + private int deviceStatus;//DeviceBeen映射 } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceBo.java index edbaf14..ddd31d6 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceBo.java @@ -1,19 +1,15 @@ package org.dromara.dms.domain.bo; -import org.dromara.dms.domain.DmsBillsInspectInstance; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.dms.domain.DmsBillsInspectInstance; +import org.dromara.dms.domain.DmsInspectInstanceDetail; + import java.util.Date; import java.util.List; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.dms.domain.DmsInspectInstanceDetail; - /** * 点巡检工单业务对象 dms_bills_inspect_instance * @@ -95,5 +91,8 @@ public class DmsBillsInspectInstanceBo extends BaseEntity { private List dmsInspectInstanceDetailList;//表结构不存在 - + /** + * 设备编号 + */ + private String deviceCode;//表结构中是machine_code } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeDetailBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeDetailBo.java index 8555718..fcdfbd6 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeDetailBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsLubeDetailBo.java @@ -79,4 +79,34 @@ public class DmsBillsLubeDetailBo extends BaseEntity { private String remark; + /** + * 设备编码 (关联查询字段) + */ + private String machineCode; + + /** + * 设备名称 (关联查询字段) + */ + private String machineName; + + /** + * 设备类型名称 (关联查询字段) + */ + private String deviceTypeName; + + /** + * 润滑部位编码 (关联查询字段) + */ + private String lubeStationCode; + + /** + * 润滑协议 (关联查询字段) + */ + private String lubeProtocol; + + /** + * 润滑操作描述 (关联查询字段) + */ + private String lubeOperationDescription; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsInspectInstanceDetailBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsInspectInstanceDetailBo.java index 1c331d2..38e16be 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsInspectInstanceDetailBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsInspectInstanceDetailBo.java @@ -1,15 +1,12 @@ package org.dromara.dms.domain.bo; -import org.dromara.dms.domain.DmsInspectInstanceDetail; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.dms.domain.DmsInspectInstanceDetail; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 点巡检工单明细业务对象 dms_inspect_instance_detail @@ -82,5 +79,21 @@ public class DmsInspectInstanceDetailBo extends BaseEntity { */ private String remark; + /** + * 设备编号 + */ + private String deviceCode;//表结构中是machine_code + + /** + * 设备编号 + */ + private String machineCode;//表结构中是machine_code + + + + /** + * 设备ID + */ + private Long deviceId;////表结构中是machine_id } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/DeviceBeen.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/DeviceBeen.java new file mode 100644 index 0000000..5218f96 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/DeviceBeen.java @@ -0,0 +1,62 @@ +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 lombok.Data; + +/** + * PDA 设备信息实体类 + * 用于 PDA 端与 Web 端数据交互,字段映射到 prod_base_machine_info 表 + * + * @author system + * @date 2025-01-20 + */ +@Data +@TableName("prod_base_machine_info") +public class DeviceBeen { + + /** + * 设备ID,映射到数据库的 machine_id 字段 + */ + @TableId("machine_id") + private int deviceId; + + /** + * 设备编码,映射到数据库的 machine_code 字段 + */ + @TableField("machine_code") + private String deviceCode; + + /** + * 设备名称,映射到数据库的 machine_name 字段 + */ + @TableField("machine_name") + private String deviceName; + + /** + * 设备位置,映射到数据库的 machine_location 字段 + */ + @TableField("machine_location") + private String deviceLocation; + + /** + * 设备类型ID,映射到数据库的 machine_type 字段 + * 注意:这里可能需要根据实际业务调整数据类型 + */ + @TableField("machine_type") + private Long deviceTypeId; + + /** + * 设备规格,映射到数据库的 machine_spec 字段 + */ + @TableField("machine_spec") + private String deviceSpec; + + /** + * 设备状态,映射到数据库的 machine_status 字段 + * 注意:数据库中是 String 类型,这里是 int 类型,可能需要转换 + */ + @TableField("machine_status") + private int deviceStatus; +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/LubricationDetail.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/LubricationDetail.java new file mode 100644 index 0000000..49b0464 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/LubricationDetail.java @@ -0,0 +1,56 @@ +package org.dromara.dms.domain.mobile; + +import lombok.Data; + +@Data +public class LubricationDetail { + + + /** + * billsLubeDetailId : 1 + * lubeInstanceId : 1 + * deviceId : 1 + * lubeStationId : 1 + * lubeStandardId : 1 + * operationDescription : ddd1d + * maintStatus : 3 + * isFlag : null + * beginTime : null + * endTime : null + * typeName : 测试类型1 + * deviceCode : 22601 + * deviceName : 设备一号 + * lubeStationName : null + * lubeProtocol : 标准1 + * lubeOperationDescription : null + */ + + private int billsLubeDetailId; + + private int lubeInstanceId; + + private int deviceId; + + private int lubeStationId; + + private int 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; + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/Outsourcing.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/Outsourcing.java new file mode 100644 index 0000000..18358eb --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/mobile/Outsourcing.java @@ -0,0 +1,27 @@ +package org.dromara.dms.domain.mobile; + +import lombok.Data; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; + + +@Data +public class Outsourcing { + + /** + * outsrcId : 1 + * outsrcCode : code0001 + * outsrcName : 青岛软控 + */ + + @TableId(value = "outsourcing_id") + private int outsrcId; + + @TableField(value = "outsourcing_code") + private String outsrcCode; + + @TableField(value = "outsourcing_name") + private String outsrcName; + + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsFaultInstanceVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsFaultInstanceVo.java index 30603e4..f30f7c4 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsFaultInstanceVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsFaultInstanceVo.java @@ -2,7 +2,6 @@ package org.dromara.dms.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.TableField; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.excel.annotation.ExcelDictFormat; @@ -159,6 +158,43 @@ public class DmsBillsFaultInstanceVo implements Serializable { private String machineSpec;//JOIN + /** + * 设备ID,映射到数据库的 machine_id 字段 + */ + private int deviceId; + + /** + * 设备编码,映射到数据库的 machine_code 字段 + */ + private String deviceCode; + + /** + * 设备名称,映射到数据库的 machine_name 字段 + */ + private String deviceName; + + /** + * 设备位置,映射到数据库的 machine_location 字段 + */ + private String deviceLocation; + + /** + * 设备类型ID,映射到数据库的 machine_type 字段 + * 注意:这里可能需要根据实际业务调整数据类型 + */ + private Long deviceTypeId; + + /** + * 设备规格,映射到数据库的 machine_spec 字段 + */ + private String deviceSpec; + + /** + * 设备状态,映射到数据库的 machine_status 字段 + * 注意:数据库中是 String 类型,这里是 int 类型,可能需要转换 + */ + private int deviceStatus; + private String imgUrl;//JOIN private Long instanceActivityId;//JOIN diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsInspectInstanceVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsInspectInstanceVo.java index 5ac8042..0cb380d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsInspectInstanceVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsInspectInstanceVo.java @@ -1,16 +1,12 @@ package org.dromara.dms.domain.vo; -import java.util.Date; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.dms.domain.DmsBillsInspectInstance; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.dms.domain.DmsBillsInspectInstance; import org.dromara.dms.domain.DmsInspectInstanceDetail; import java.io.Serial; @@ -127,4 +123,11 @@ public class DmsBillsInspectInstanceVo implements Serializable { private String planInspectCode; + private String inspectStatusStr; + + /** + * 创建时间 + */ + private Date createTime; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeDetailVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeDetailVo.java index 30f961d..4eabd2d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeDetailVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeDetailVo.java @@ -96,5 +96,41 @@ public class DmsBillsLubeDetailVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 设备编码 (关联查询字段) + */ + @ExcelProperty(value = "设备编码") + private String machineCode; + + /** + * 设备名称 (关联查询字段) + */ + @ExcelProperty(value = "设备名称") + private String machineName; + + /** + * 设备类型名称 (关联查询字段) + */ + @ExcelProperty(value = "设备类型名称") + private String deviceTypeName; + + /** + * 润滑部位编码 (关联查询字段) + */ + @ExcelProperty(value = "润滑部位编码") + private String lubeStationCode; + + /** + * 润滑协议 (关联查询字段) + */ + @ExcelProperty(value = "润滑协议") + private String lubeProtocol; + + /** + * 润滑操作描述 (关联查询字段) + */ + @ExcelProperty(value = "润滑操作描述") + private String lubeOperationDescription; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java index fbe1c7c..be9e5db 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsLubeInstanceVo.java @@ -3,13 +3,12 @@ package org.dromara.dms.domain.vo; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.FieldFill; -import com.baomidou.mybatisplus.annotation.TableField; import io.github.linpeilie.annotations.AutoMapper; 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; @@ -145,4 +144,11 @@ public class DmsBillsLubeInstanceVo implements Serializable { @ExcelIgnore private Date createTime; + /** + * + */ + private List dmsBillsLubeDetails; + + private String lubeStatusStr; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintDetailVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintDetailVo.java index bdbd1b8..998abb4 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintDetailVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintDetailVo.java @@ -1,14 +1,12 @@ package org.dromara.dms.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.dms.domain.DmsBillsMaintDetail; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.dms.domain.DmsBillsMaintDetail; import java.io.Serial; import java.io.Serializable; @@ -92,5 +90,45 @@ public class DmsBillsMaintDetailVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 设备编码 (关联查询字段) + */ + @ExcelProperty(value = "设备编码") + private String machineCode; + + /** + * 设备名称 (关联查询字段) + */ + @ExcelProperty(value = "设备名称") + private String machineName; + + /** + * 设备类型名称 (关联查询字段) + */ + @ExcelProperty(value = "设备类型名称") + private String deviceTypeName; + + /** + * 保养部位名称 (关联查询字段) + */ + @ExcelProperty(value = "保养部位名称") + private String maintStationName; + + /** + * 部位编号 + */ + private String maintStationCode; + + /** + * 保养协议 (关联查询字段) + */ + @ExcelProperty(value = "保养协议") + private String maintProtocol; + + /** + * 保养操作描述 + */ + private String maintOperationDescription; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintInstanceVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintInstanceVo.java index a05d046..8f7cc25 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintInstanceVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsBillsMaintInstanceVo.java @@ -1,20 +1,19 @@ package org.dromara.dms.domain.vo; -import java.math.BigDecimal; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.dms.domain.DmsBillsMaintInstance; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.dms.domain.DmsBillsMaintDetail; +import org.dromara.dms.domain.DmsBillsMaintInstance; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; - +import java.util.List; /** @@ -122,4 +121,26 @@ public class DmsBillsMaintInstanceVo implements Serializable { * 流程状态 */ private String status; + + /** + * 流程状态 + * selectNewestDmsBillsMaintInstance + * dbmi.wf_definition_id as wf_process_id + */ + private String wfProcessId; + + + private String maintStatusStr; + + + private String planRemark; + + + private String maintLevelName; + + + private List dmsBillsMaintDetailList; + + private String createTime; + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsInspectInstanceDetailVo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsInspectInstanceDetailVo.java index e478871..d788391 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsInspectInstanceDetailVo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/vo/DmsInspectInstanceDetailVo.java @@ -105,6 +105,26 @@ public class DmsInspectInstanceDetailVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 设备编号 + */ + private String machineCode;//JOIN + + /** + * 设备名称 + */ + private String machineName;//JOIN + + /** + * 设备编号 + */ + private String deviceCode;//JOIN + + /** + * 设备名称 + */ + private String deviceName;//JOIN + private List dmsInspectInstanceDetailProjectList;//表结构不存在 } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMachineInfoMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMachineInfoMapper.java index 99e34b8..bb09fa5 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMachineInfoMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBaseMachineInfoMapper.java @@ -3,6 +3,7 @@ package org.dromara.dms.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.dms.domain.DmsBaseMachineInfo; +import org.dromara.dms.domain.mobile.DeviceBeen; import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo; import java.util.List; @@ -17,4 +18,12 @@ public interface DmsBaseMachineInfoMapper extends BaseMapperPlus likeDeviceName(@Param("deviceName") String deviceName); + + /** + * 根据设备名称模糊查询,直接返回 PDA 端需要的 DeviceBeen 格式 + * + * @param deviceName 设备名称 + * @return PDA 端设备信息列表 + */ + List likeDeviceNameForPda(@Param("deviceName") String deviceName); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsInspectInstanceMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsInspectInstanceMapper.java index 12ab70e..62a1b6f 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsInspectInstanceMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsInspectInstanceMapper.java @@ -1,8 +1,9 @@ package org.dromara.dms.mapper; -import org.dromara.dms.domain.DmsBillsInspectInstance; -import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.dms.domain.DmsBillsInspectInstance; +import org.dromara.dms.domain.bo.DmsBillsInspectInstanceBo; +import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo; import java.util.List; @@ -32,10 +33,10 @@ public interface DmsBillsInspectInstanceMapper extends BaseMapperPlus selectDmsBillsLubeDetailJoinList(DmsBillsLubeDetail dmsBillsLubeDetail); + List selectDmsBillsLubeDetailJoinList(DmsBillsLubeDetail dmsBillsLubeDetail); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsMaintDetailMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsMaintDetailMapper.java index b50cc64..93c6dc5 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsMaintDetailMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsMaintDetailMapper.java @@ -3,10 +3,10 @@ package org.dromara.dms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.dms.domain.DmsBaseMaintProject; import org.dromara.dms.domain.DmsBillsMaintDetail; -import org.dromara.dms.domain.DmsBillsMaintInstance; -import org.dromara.dms.domain.vo.DmsBaseMaintProjectVo; +import org.dromara.dms.domain.bo.DmsBillsMaintInstanceBo; import org.dromara.dms.domain.vo.DmsBaseMaintStationVo; import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo; +import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo; import java.util.List; @@ -38,6 +38,6 @@ public interface DmsBillsMaintDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInspectInstanceDetailMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInspectInstanceDetailMapper.java index eb8d9d1..5254529 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInspectInstanceDetailMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInspectInstanceDetailMapper.java @@ -2,6 +2,7 @@ package org.dromara.dms.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.dms.domain.DmsInspectInstanceDetail; +import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo; import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -34,6 +35,6 @@ public interface DmsInspectInstanceDetailMapper extends BaseMapperPlus selectDmsInspectInstanceDetailJoinList(DmsInspectInstanceDetail dmsInspectInstanceDetail); + public List selectDmsInspectInstanceDetailJoinList(DmsInspectInstanceDetailBo dmsInspectInstanceDetail); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseMachineInfoService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseMachineInfoService.java index a2b773f..6c033f1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseMachineInfoService.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBaseMachineInfoService.java @@ -4,6 +4,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.dms.domain.bo.DmsBaseMachineInfoBo; import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo; +import org.dromara.dms.domain.mobile.DeviceBeen; import java.util.Collection; import java.util.List; @@ -51,6 +52,14 @@ public interface IDmsBaseMachineInfoService { List likeDeviceName(String deviceName); + /** + * 根据设备名称模糊查询,返回 PDA 端格式数据 + * + * @param deviceName 设备名称 + * @return PDA 端设备信息列表 + */ + List likeDeviceNameForPda(String deviceName); + /* *//** * 新增设备信息 * diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsFaultInstanceService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsFaultInstanceService.java index b0beec4..94f176e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsFaultInstanceService.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsFaultInstanceService.java @@ -111,5 +111,11 @@ public interface IDmsBillsFaultInstanceService { */ public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity); - + /** + * 更新故障报修工单的工作流定义ID + * @param repairInstanceId 故障报修工单的ID + * @param wfDefinitionId 工作流定义的ID + * @return 如果更新成功返回true,否则返回false + */ + public Boolean updateWfDefinitionIdById(Long repairInstanceId, Long wfDefinitionId); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsMaintInstanceService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsMaintInstanceService.java index 680de0a..a507e8f 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsMaintInstanceService.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsMaintInstanceService.java @@ -3,7 +3,6 @@ package org.dromara.dms.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.dms.domain.DmsBillsMaintDetail; -import org.dromara.dms.domain.DmsBillsMaintInstance; import org.dromara.dms.domain.bo.DmsBillsMaintInstanceBo; import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo; @@ -82,7 +81,7 @@ public interface IDmsBillsMaintInstanceService { * @param dmsBillsMaintInstance * @return */ - public DmsBillsMaintInstance getNewestBillsMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance); + public DmsBillsMaintInstanceVo getNewestBillsMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance); /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java index 02736a3..d559b4a 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseMachineInfoServiceImpl.java @@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.dms.domain.DmsBaseMachineInfo; import org.dromara.dms.domain.bo.DmsBaseMachineInfoBo; +import org.dromara.dms.domain.mobile.DeviceBeen; import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo; import org.dromara.dms.mapper.DmsBaseMachineInfoMapper; import org.dromara.dms.service.IDmsBaseMachineInfoService; @@ -122,6 +122,15 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService return list; } + /** + * 根据设备名称模糊查询,返回 PDA 端格式数据 + * 直接从数据库查询返回,无需对象转换 + */ + @Override + public List likeDeviceNameForPda(String deviceName) { + return baseMapper.likeDeviceNameForPda(deviceName); + } + /* *//** * 新增设备信息 * diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java index 25ca667..02b1f55 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsFaultInstanceServiceImpl.java @@ -6,7 +6,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.seata.spring.annotation.GlobalTransactional; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; -import org.apache.dubbo.config.annotation.DubboService; import org.dromara.common.core.constant.DmsConstants; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -20,6 +19,7 @@ import org.dromara.dms.domain.bo.DmsBillsFaultInstanceBo; import org.dromara.dms.domain.bo.DmsBillsFaultInstanceScanBo; import org.dromara.dms.domain.bo.DmsFaultInstanceActivityBo; import org.dromara.dms.domain.bo.DmsInstanceFileBo; +import org.dromara.dms.domain.mobile.DeviceBeen; import org.dromara.dms.domain.vo.DmsBillsFaultInstanceVo; import org.dromara.dms.domain.vo.DmsFaultComponentsPartsVo; import org.dromara.dms.domain.vo.DmsFaultInstanceActivityVo; @@ -31,6 +31,7 @@ import org.dromara.dms.service.IDmsBillsFaultInstanceService; import org.dromara.dms.service.IDmsFaultInstanceActivityService; import org.dromara.dms.service.IDmsInstanceFileService; import org.dromara.workflow.api.RemoteWorkflowService; +import org.dromara.workflow.api.domain.RemoteCompleteTask; import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.springframework.beans.BeanUtils; @@ -39,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.concurrent.CompletableFuture; /** * 故障报修工单Service业务层处理 @@ -58,7 +60,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS private final IDmsInstanceFileService DmsInstanceFileService; - @DubboReference + @DubboReference(timeout = 15000, retries = 1) private final RemoteWorkflowService remoteWorkflowService; private final DmsFaultInstanceActivityMapper dmsFaultInstanceActivityMapper; @@ -116,6 +118,18 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS .select(DmsBaseMachineInfo::getMachineSpec) .leftJoin(DmsBaseMachineInfo.class, DmsBaseMachineInfo::getMachineId, DmsBaseShutReason::getMachineId) + //FIXME:关联查询设备信息 + .select(DeviceBeen::getDeviceId) + .select(DeviceBeen::getDeviceCode) + .select(DeviceBeen::getDeviceName) + .select(DeviceBeen::getDeviceLocation) + .select(DeviceBeen::getDeviceTypeId) + .select(DeviceBeen::getDeviceSpec) + .select(DeviceBeen::getDeviceStatus) + .leftJoin(DeviceBeen.class, DeviceBeen::getDeviceId, DmsBillsFaultInstance::getMachineId) + + //关联查询故障报修工单活动信息 + //关联查询零部件更换记录 .select(DmsFaultComponentsParts::getPartName) .select(DmsFaultComponentsParts::getPartSpecifications) @@ -155,6 +169,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS @Override @GlobalTransactional(rollbackFor = Exception.class) public Boolean insertByBo(DmsBillsFaultInstanceBo bo) { + bo.setMachineId((long) bo.getDeviceId()); DmsBillsFaultInstance add = MapstructUtils.convert(bo, DmsBillsFaultInstance.class); validEntityBeforeSave(add); // 获取当前日期时间 @@ -166,18 +181,33 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS add.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR); // 设置实例类型为手动录入 add.setInstanceType(DmsConstants.DMS_BILLS_FAULT_INSTANCE_TYPE_MAUAL); - RemoteStartProcess remoteStartProcess = new RemoteStartProcess(); - remoteStartProcess.setFlowCode(DmsConstants.DMS_BILLS_FAULT_INSTANCE_WF_CODE); - remoteStartProcess.setBusinessId(add.getRepairInstanceId().toString()); - RemoteStartProcessReturn remoteStartProcessReturn = remoteWorkflowService.startWorkFlow(remoteStartProcess); - add.setWfDefinitionId(remoteStartProcessReturn.getTaskId()); + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setRepairInstanceId(add.getRepairInstanceId()); } + //FIXME:工作流相关 + RemoteStartProcess remoteStartProcess = new RemoteStartProcess(); + remoteStartProcess.setFlowCode(DmsConstants.DMS_BILLS_FAULT_INSTANCE_WF_CODE); + remoteStartProcess.setBusinessId(add.getRepairInstanceId().toString()); + RemoteStartProcessReturn remoteStartProcessReturn = remoteWorkflowService.startWorkFlow(remoteStartProcess); + Long taskId = remoteStartProcessReturn.getTaskId(); + + //TODO:异步线程内执行updateWrokFlow + CompletableFuture.runAsync(() -> { + try { + updateWorkFlow(add, taskId); + } catch (Exception e) { + // 简单记录错误,不影响主流程 + System.err.println("异步更新工作流失败,repairInstanceId: " + add.getRepairInstanceId() + ", 错误: " + e.getMessage()); + // 可以考虑记录到失败表,后续补偿处理 + } + }); + + // 创建故障实例活动对象 - DmsFaultInstanceActivity dmsFaultInstanceActivity = new DmsFaultInstanceActivity(); +/* DmsFaultInstanceActivity dmsFaultInstanceActivity = new DmsFaultInstanceActivity(); // 设置维修实例ID dmsFaultInstanceActivity.setRepairInstanceId(add.getRepairInstanceId()); // 设置流程活动ID @@ -208,11 +238,37 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS List fileUrls = add.getFileUrls(); // 批量插入实例文件记录 batchInsertInstanceFiles(fileUrls, dmsFaultInstanceActivity.getInstanceActivityId()); - +*/ return flag; } + + /** + * 更新工作流 + * @param dmsBillsFaultInstance + * @param taskId 任务ID + * @return 是否更新成功 + */ + private Boolean updateWorkFlow(DmsBillsFaultInstance dmsBillsFaultInstance, Long taskId){ + dmsBillsFaultInstance.setWfDefinitionId(taskId); + + RemoteCompleteTask remoteCompleteTask = new RemoteCompleteTask(); + // 必填字段 + remoteCompleteTask.setTaskId(taskId); + remoteCompleteTask.setMessage("自动推进"); + // 关键:设置messageType为非null的List(解决原始错误) + List messageTypes = new ArrayList<>(); + messageTypes.add("system"); // 系统消息 + remoteCompleteTask.setMessageType(messageTypes); + boolean b = remoteWorkflowService.completeTask(remoteCompleteTask); + if (!b) { + return false; + }else { + return baseMapper.updateById(dmsBillsFaultInstance) > 0; + } + } + /** * 修改故障报修工单 * @@ -251,6 +307,28 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS return baseMapper.deleteByIds(ids) > 0; } + /** + * 更新故障报修工单的工作流定义ID + * @param repairInstanceId 故障报修工单的ID + * @param wfDefinitionId 工作流定义的ID + * @return 如果更新成功返回true,否则返回false + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateWfDefinitionIdById(Long repairInstanceId, Long wfDefinitionId) { + if(StringUtils.isNull(repairInstanceId)){ + throw new ServiceException("参数为空"); + } + DmsBillsFaultInstance entity = baseMapper.selectById(repairInstanceId); + if (entity == null) { + throw new ServiceException("记录不存在"); + } + entity.setWfDefinitionId(wfDefinitionId); + entity.setRealBeginTime(new Date()); + return baseMapper.updateById(entity) > 0; + } + + @Override public DmsFaultInstanceActivity selectFaults(Long repairInstanceId) { List list = dmsBillsFaultInstanceMapper.selectFaults(repairInstanceId); @@ -399,8 +477,12 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS * @return 结果 */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public int startRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + // 定义一个布尔变量b,用于存储更新结果 + Boolean b = false; + + // 根据维修实例ID查询故障实例信息 DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper .selectFaultInstanceJoinFirstById(dmsFaultInstanceActivity.getRepairInstanceId());//join 第一步activity @@ -410,7 +492,6 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH)) {//维修完成 throw new ServiceException("已经维修完成"); } - // 获取当前日期和登录用户名 Date currentDate = new Date(); String userName = LoginHelper.getLoginUser()==null ? LoginHelper.getUsername() :LoginHelper.getLoginUser().getNickname(); @@ -421,8 +502,20 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS dmsBillsFaultInstance.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_REPAIRING); // 设置实际开始时间 dmsBillsFaultInstance.setRealBeginTime(currentDate); - // 更新故障实例信息 - dmsBillsFaultInstanceMapper.updateById(dmsBillsFaultInstance); + //启动工作流 + Long taskId = getOrCreateTaskId(dmsBillsFaultInstance); + + //TODO:异步线程内执行updateWrokFlow + CompletableFuture.runAsync(() -> { + try { + updateWorkFlow(dmsBillsFaultInstance, taskId); + } catch (Exception e) { + // 简单记录错误,不影响主流程 + System.err.println("异步更新工作流失败,repairInstanceId: " + dmsBillsFaultInstance.getRepairInstanceId() + ", 错误: " + e.getMessage()); + // 可以考虑记录到失败表,后续补偿处理 + } + }); + // 设置维修实例ID dmsFaultInstanceActivity.setRepairInstanceId(dmsBillsFaultInstance.getRepairInstanceId()); @@ -445,7 +538,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS dmsFaultInstanceActivity.setHandleTime(currentDate); // 插入新的故障实例活动记录 - Boolean b = dmsFaultInstanceActivityService.insertByBo(dmsFaultInstanceActivity); + b = dmsFaultInstanceActivityService.insertByBo(dmsFaultInstanceActivity); // 创建第一个实例活动对象并设置其属性 DmsFaultInstanceActivityBo firstInstanceActivity = new DmsFaultInstanceActivityBo(); @@ -460,13 +553,33 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS } else {// 如果工单状态为维修中 // 更新故障实例活动记录 - Boolean b = dmsFaultInstanceActivityService.updateByBo(dmsFaultInstanceActivity); + b = dmsFaultInstanceActivityService.updateByBo(dmsFaultInstanceActivity); } // 返回结果1表示成功 - return 1; + return b ? 1 : 0; } + // startRepair方法内提取的获取或创建taskId的方法 + private Long getOrCreateTaskId(DmsBillsFaultInstance dmsBillsFaultInstance) { + Long taskId = dmsBillsFaultInstance.getWfDefinitionId(); + if (StringUtils.isNull(taskId)) { + // 启动工作流 + RemoteStartProcess startProcess = new RemoteStartProcess(); + startProcess.setFlowCode(DmsConstants.DMS_BILLS_FAULT_INSTANCE_WF_CODE); + String businessId = dmsBillsFaultInstance.getRepairInstanceId().toString(); + startProcess.setBusinessId(businessId); + RemoteStartProcessReturn remoteStartProcessReturn = remoteWorkflowService.startWorkFlow(startProcess); + taskId = remoteStartProcessReturn.getTaskId(); + if (StringUtils.isNull(taskId)) { + throw new ServiceException("流程启动失败"); + } + } + return taskId; + } + + + /** * 完成维修 @@ -475,7 +588,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS * @return 结果 */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { // 批量插入实例的附件文件信息 batchInsertInstanceAfterFiles(dmsFaultInstanceActivity.getFileUrls(),dmsFaultInstanceActivity.getInstanceActivityId()); @@ -503,31 +616,43 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS throw new ServiceException("请先开始维修"); } - // 获取当前日期和时间 Date currentDate = new Date(); // 获取当前登录用户的用户名或昵称 String userName = LoginHelper.getLoginUser()==null ? LoginHelper.getUsername() :LoginHelper.getLoginUser().getNickname(); - // 设置工单状态为已完成,并记录实际结束时间 dmsBillsFaultInstance.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH); dmsBillsFaultInstance.setRealEndTime(currentDate); // 将工单实例转换为数据库实体对象并更新数据库 DmsBillsFaultInstance faultInstance = MapstructUtils.convert(dmsBillsFaultInstance, DmsBillsFaultInstance.class); - dmsBillsFaultInstanceMapper.updateById(faultInstance); - // 设置工单活动状态为已完成,并记录结束时间和维修人员 - dmsFaultInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH); - dmsFaultInstanceActivity.setEndTime(currentDate); - dmsFaultInstanceActivity.setRepairer(userName); - // 将工单活动实例转换为数据库实体对象并更新数据库 - DmsFaultInstanceActivity faultInstanceActivity = MapstructUtils.convert(dmsFaultInstanceActivity, DmsFaultInstanceActivity.class); - int i = dmsFaultInstanceActivityMapper.updateById(faultInstanceActivity); + if(StringUtils.isNull(dmsBillsFaultInstance.getWfDefinitionId())){ + throw new ServiceException("流程未启动"); + }else{ + //FIXME:完成第一步,待测试待完善 + RemoteCompleteTask remoteCompleteTask = new RemoteCompleteTask(); + remoteCompleteTask.setTaskId(dmsBillsFaultInstance.getWfDefinitionId()); + remoteCompleteTask.setMessage("同意"); + remoteWorkflowService.completeTask(remoteCompleteTask); + + dmsBillsFaultInstanceMapper.updateById(faultInstance); + + // 设置工单活动状态为已完成,并记录结束时间和维修人员 + dmsFaultInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH); + dmsFaultInstanceActivity.setEndTime(currentDate); + dmsFaultInstanceActivity.setRepairer(userName); + // 将工单活动实例转换为数据库实体对象并更新数据库 + DmsFaultInstanceActivity faultInstanceActivity = MapstructUtils.convert(dmsFaultInstanceActivity, DmsFaultInstanceActivity.class); + int i = dmsFaultInstanceActivityMapper.updateById(faultInstanceActivity); + + // 返回更新操作影响的行数 + return i; + } - // 返回更新操作影响的行数 - return i; } + + public void batchInsertInstanceAfterFiles(List fileUrls, Long instanceActivityId) { // 判断文件URL列表是否不为空且非空集合 if (fileUrls != null && !fileUrls.isEmpty()) { @@ -551,4 +676,5 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS } } + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java index 4a5ce63..9b880cc 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceServiceImpl.java @@ -10,7 +10,6 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.dms.domain.*; import org.dromara.dms.domain.bo.DmsBillsInspectInstanceBo; import org.dromara.dms.domain.bo.DmsBillsInspectInstanceScanBo; @@ -269,16 +268,16 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta */ @Override public DmsBillsInspectInstanceVo getNewestBillsInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstanceBo) { - // 设置巡检状态字符串,包含“待巡检”和“巡检中”状态 + // 设置巡检状态字符串,包含"待巡检"和"巡检中"状态 dmsBillsInspectInstanceBo.setInspectStatusStr(DmsConstants.DMS_BILLS_INSPECT_INSTANCE_INSPECT_STATUS_TO_INSPECT + "," + DmsConstants.DMS_BILLS_INSPECT_INSTANCE_INSPECT_STATUS_INSPECTING); // 将传入的BO对象转换为DO对象 DmsBillsInspectInstance dmsBillsInspectInstance = MapstructUtils.convert(dmsBillsInspectInstanceBo, DmsBillsInspectInstance.class); // 查询最新的未完成巡检工单 - DmsBillsInspectInstanceVo newestBillsInspectInstance = dmsBillsInspectInstanceMapper.selectNewestDmsBillsInspectInstance(dmsBillsInspectInstance); + DmsBillsInspectInstanceVo newestBillsInspectInstance = dmsBillsInspectInstanceMapper.selectNewestDmsBillsInspectInstance(dmsBillsInspectInstanceBo); // 如果查询结果不为空 if (newestBillsInspectInstance != null) { // 创建巡检实例详情查询对象 - DmsInspectInstanceDetail queryInspectInstanceDetail = new DmsInspectInstanceDetail(); + DmsInspectInstanceDetailBo queryInspectInstanceDetail = new DmsInspectInstanceDetailBo(); // 设置巡检实例ID queryInspectInstanceDetail.setInspectInstanceId(newestBillsInspectInstance.getInspectInstanceId()); // 查询巡检实例详情列表 diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeDetailServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeDetailServiceImpl.java index f0b3194..68efbaa 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeDetailServiceImpl.java @@ -8,7 +8,7 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.dms.domain.DmsBillsLubeDetail; +import org.dromara.dms.domain.*; import org.dromara.dms.domain.bo.DmsBillsLubeDetailBo; import org.dromara.dms.domain.vo.DmsBillsLubeDetailVo; import org.dromara.dms.mapper.DmsBillsLubeDetailMapper; @@ -73,6 +73,34 @@ public class DmsBillsLubeDetailServiceImpl implements IDmsBillsLubeDetailService MPJLambdaWrapper lqw = JoinWrappers.lambda(DmsBillsLubeDetail.class) .selectAll(DmsBillsLubeDetail.class) + +// select dbld.bills_lube_detail_id, dbld.lube_instance_id, dbld.machine_id, dbld.lube_station_id, dbld.lube_standard_id, +// dbld.operation_description, dbld.maint_status, dbld.create_by, dbld.create_time, +// dbdl.machine_code,dbdl.machine_name, +// dbdt.device_type_name, +// dbls.lube_station_code, +// dblsd.lube_protocol, +// dblsd.operation_description as lube_operation_description +// from dms_bills_lube_detail dbld +// left join prod_base_machine_info dbdl on dbld.machine_id = dbdl.machine_id +// left join base_device_type dbdt on dbdl.machine_type=dbdt.device_type_id +// left join dms_base_lube_station dbls on dbld.lube_station_id=dbls.lube_station_id +// left join dms_base_lube_standard dblsd on dbld.lube_standard_id=dblsd.lube_standard_id + .select(DmsBaseLubeStation::getLubeStationCode) + .leftJoin(DmsBaseLubeStation.class,DmsBaseLubeStation::getLubeStationId,DmsBillsLubeDetail::getLubeStationId) + + .selectAs(DmsBaseLubeStandard::getOperationDescription,"lube_operation_description") + .select(DmsBaseLubeStandard::getLubeProtocol) + .leftJoin(DmsBaseLubeStandard.class,DmsBaseLubeStandard::getLubeStandardId,DmsBillsLubeDetail::getLubeStandardId) + + .select(DmsBaseMachineInfo::getMachineCode) + .select(DmsBaseMachineInfo::getMachineName) + .leftJoin(DmsBaseMachineInfo.class,DmsBaseMachineInfo::getMachineId,DmsBillsLubeDetail::getMachineId) + + .select(BaseDeviceType::getDeviceTypeName) + .leftJoin(BaseDeviceType.class,BaseDeviceType::getDeviceTypeId,DmsBaseMachineInfo::getMachineType) + + .eq(bo.getBillsLubeDetailId() != null, DmsBillsLubeDetail::getBillsLubeDetailId, bo.getBillsLubeDetailId()) .eq(bo.getLubeInstanceId() != null, DmsBillsLubeDetail::getLubeInstanceId, bo.getLubeInstanceId()) .eq(bo.getMachineId() != null, DmsBillsLubeDetail::getMachineId, bo.getMachineId()) diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceServiceImpl.java index 21310d4..500f76e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.dms.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.seata.spring.annotation.GlobalTransactional; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.constant.DmsConstants; @@ -15,20 +16,20 @@ import org.dromara.common.mybatis.Utils.UniqueCodeUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; -import org.dromara.dms.domain.*; +import org.dromara.dms.domain.DmsBillsLubeDetail; +import org.dromara.dms.domain.DmsBillsLubeInstance; +import org.dromara.dms.domain.DmsPlanLube; import org.dromara.dms.domain.bo.DmsBillsLubeDetailBo; import org.dromara.dms.domain.bo.DmsBillsLubeInstanceBo; import org.dromara.dms.domain.bo.DmsPlanLubeBo; +import org.dromara.dms.domain.mobile.LubricationDetail; import org.dromara.dms.domain.vo.DmsBillsLubeDetailVo; import org.dromara.dms.domain.vo.DmsBillsLubeInstanceVo; import org.dromara.dms.domain.vo.DmsPlanLubeDetailVo; -import org.dromara.dms.domain.vo.DmsPlanLubeVo; import org.dromara.dms.mapper.*; import org.dromara.dms.service.IDmsBillsLubeInstanceService; import org.dromara.workflow.api.RemoteWorkflowService; import org.dromara.workflow.api.domain.RemoteCompleteTask; -import org.dromara.workflow.api.domain.RemoteStartProcess; -import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -56,7 +57,7 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer private final DmsPlanLubeDetailMapper dmsPlanLubeDetailMapper; - @DubboReference + @DubboReference(timeout = 15000, retries = 1) private final RemoteWorkflowService remoteWorkflowService; /** @@ -271,45 +272,25 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer */ @Override public DmsBillsLubeInstanceVo getNewestBillsLubeInstance(DmsBillsLubeInstanceBo bo) { - //被注释的是mybatis-plus的关联查询,是根据注释下面的查询仿写的,暂时保留 -/* String LubeStatusStr = DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE - + "," + DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_LUBING; - // 构建查询条件 - MPJLambdaWrapper wrapper = JoinWrappers.lambda(DmsBillsLubeInstance.class) - .selectAll(DmsBillsLubeInstance.class) - .in(DmsBillsLubeInstance::getLubeStatus, - DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE, - DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_LUBING) - .orderByDesc(DmsBillsLubeInstance::getCreateTime) - .last("limit 1"); - - // 查询最新的润滑工单实例 - DmsBillsLubeInstanceVo newestBillsLubeInstance = baseMapper.selectJoinOne(DmsBillsLubeInstanceVo.class, wrapper);*/ // 设置润滑状态字符串,表示待润滑和正在润滑的状态 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) { // 查询关联的润滑详情列表 - //被注释的是mybatis-plus的关联查询,是根据注释下面的查询仿写的,暂时保留 -/* MPJLambdaWrapper detailWrapper = JoinWrappers.lambda(DmsBillsLubeDetail.class) - .selectAll(DmsBillsLubeDetail.class) - .eq(DmsBillsLubeDetail::getLubeInstanceId, newestBillsLubeInstance.getLubeInstanceId()); - - List dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectJoinList(DmsBillsLubeDetailVo.class, detailWrapper);*/ // 创建一个新的润滑详情对象 DmsBillsLubeDetail queryBillsLubeDetail = new DmsBillsLubeDetail(); - // 设置润滑详情对象的润滑实例ID - queryBillsLubeDetail.setLubeInstanceId(bo.getLubeInstanceId()); - List dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectDmsBillsLubeDetailJoinList(queryBillsLubeDetail); - newestBillsLubeInstance.setDmsBillsLubeDetailList(dmsBillsLubeDetails); + // 设置润滑详情对象的润滑ID + queryBillsLubeDetail.setLubeInstanceId(newestBillsLubeInstance.getLubeInstanceId()); + List dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectDmsBillsLubeDetailJoinList(queryBillsLubeDetail); + newestBillsLubeInstance.setDmsBillsLubeDetails(dmsBillsLubeDetails); } return newestBillsLubeInstance; @@ -323,26 +304,18 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer * @return 结果 */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public Boolean startLube(DmsBillsLubeDetailBo bo) { Long lubeInstanceId = bo.getLubeInstanceId(); - // 根据润滑实例ID查询润滑实例信息 + // 根据润滑工单ID查询润滑实例信息 DmsBillsLubeInstanceVo dmsBillsLubeInstance = this.queryById(lubeInstanceId); - //FIXME:需测试能否启动工作流 - RemoteStartProcess startProcess = new RemoteStartProcess(); - startProcess.setFlowCode(DmsConstants.DMS_BILLS_LUBE_INSTANCE_WF_CODE); - String businessId = lubeInstanceId.toString(); - startProcess.setBusinessId(businessId); - RemoteStartProcessReturn remoteStartProcessReturn = remoteWorkflowService.startWorkFlow(startProcess); - Long taskId = remoteStartProcessReturn.getTaskId(); - if (taskId == null) { - throw new ServiceException("流程启动失败"); - }else if (taskId != null) { - dmsBillsLubeInstance.setWfDefinitionId(taskId); - } - DmsBillsLubeInstanceBo dmsBillsLubeInstanceBo = MapstructUtils.convert(dmsBillsLubeInstance, DmsBillsLubeInstanceBo.class); - this.updateByBo(dmsBillsLubeInstanceBo); + // 获取当前日期和用户 + Date currentDate = DateUtils.getNowDate(); + Long userId = LoginHelper.getUserId(); + String userName = LoginHelper.getLoginUser()==null ? LoginHelper.getUsername() :LoginHelper.getLoginUser().getNickname(); + + // 获取润滑状态,如果为空则设置为待润滑状态 String lubeStatus = StringUtils.isEmpty(dmsBillsLubeInstance.getLubeStatus()) ? @@ -351,27 +324,19 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer // 如果润滑已经完成,抛出异常 if (lubeStatus.equals(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_COMPLETE)) { throw new ServiceException("已经润滑完成"); - } - - // 获取当前日期和用户 - Date currentDate = DateUtils.getNowDate(); - Long userId = LoginHelper.getUserId(); - - // 如果润滑状态为待润滑,更新润滑实例和润滑工单明细的状态 - if (lubeStatus.equals(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE)) {//待润滑 - // 更新润滑实例状态 + }else if (lubeStatus.equals(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE)) {// 如果润滑状态为待润滑 + // 更新润滑状态 DmsBillsLubeInstanceBo updateInstance = new DmsBillsLubeInstanceBo(); updateInstance.setLubeInstanceId(dmsBillsLubeInstance.getLubeInstanceId()); updateInstance.setLubeStatus(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_LUBING); updateInstance.setRealBeginTime(currentDate); //updateInstance.setUpdateBy(userId); - // 更新润滑实例信息 + // 更新润滑工单信息 this.updateByBo(updateInstance); // 更新润滑工单明细状态 bo.setBeginTime(currentDate); - //bo.setUpdateBy(userId); bo.setMaintStatus(DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_LUBING); dmsBillsLubeDetailMapper.updateById(MapstructUtils.convert(bo, DmsBillsLubeDetail.class)); } else { @@ -383,6 +348,8 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer return true; } + + /** * 完成润滑 * @@ -390,19 +357,23 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer * @return 结果 */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public int completeLube(DmsBillsLubeDetailBo bo) { - // 获取润滑实例ID + // 获取润滑工单ID Long lubeInstanceId = bo.getLubeInstanceId(); - // 根据润滑实例ID查询润滑实例信息 + // 根据润滑工单ID查询润滑实例信息 DmsBillsLubeInstanceVo dmsBillsLubeInstance = this.queryById(lubeInstanceId); - //fIXME:需测试能否完成工作流 + // 获取工作流任务ID Long taskId = dmsBillsLubeInstance.getWfDefinitionId(); + // 创建远程完成任务的实例 RemoteCompleteTask completeTask = new RemoteCompleteTask(); + // 设置任务ID completeTask.setTaskId(taskId); + // 调用远程服务完成任务,返回任务执行状态 boolean taskFlag = remoteWorkflowService.completeTask(completeTask); + // 获取润滑状态,如果为空则设置为待润滑状态 String lubeStatus = StringUtils.isEmpty(dmsBillsLubeInstance.getLubeStatus()) ? DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE : dmsBillsLubeInstance.getLubeStatus(); @@ -452,7 +423,7 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer bo.setMaintStatus(String.valueOf(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE)); int i = dmsBillsLubeDetailMapper.updateById(MapstructUtils.convert(bo, DmsBillsLubeDetail.class)); - + // 返回更新结果 return i; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java index efd07d7..725dbb6 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsMaintInstanceServiceImpl.java @@ -3,7 +3,9 @@ package org.dromara.dms.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.seata.spring.annotation.GlobalTransactional; import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.constant.DmsConstants; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; @@ -16,7 +18,6 @@ import org.dromara.dms.domain.*; import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo; import org.dromara.dms.domain.bo.DmsBillsMaintDetailProjectBo; import org.dromara.dms.domain.bo.DmsBillsMaintInstanceBo; -import org.dromara.dms.domain.vo.DmsBaseMaintProjectVo; import org.dromara.dms.domain.vo.DmsBillsMaintDetailProjectVo; import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo; import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo; @@ -27,6 +28,10 @@ import org.dromara.dms.mapper.DmsPlanMaintMapper; import org.dromara.dms.service.IDmsBillsMaintDetailProjectService; import org.dromara.dms.service.IDmsBillsMaintDetailService; import org.dromara.dms.service.IDmsBillsMaintInstanceService; +import org.dromara.workflow.api.RemoteWorkflowService; +import org.dromara.workflow.api.domain.RemoteCompleteTask; +import org.dromara.workflow.api.domain.RemoteStartProcess; +import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; @@ -57,6 +62,10 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS private final IDmsBillsMaintDetailProjectService dmsBillsMaintInstanceProjectService; + @DubboReference(timeout = 15000, retries = 1) + private final RemoteWorkflowService remoteWorkflowService; + + /** * 查询保养工单 * @@ -255,11 +264,11 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS * @return */ @Override - public DmsBillsMaintInstance getNewestBillsMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance) { + public DmsBillsMaintInstanceVo getNewestBillsMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance) { dmsBillsMaintInstance.setMaintStatusStr(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_TO_MAINT + "," + DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING); - DmsBillsMaintInstance newestBillsMaintInstance = dmsBillsMaintDetailMapper + DmsBillsMaintInstanceVo newestBillsMaintInstance = dmsBillsMaintDetailMapper .selectNewestDmsBillsMaintInstance(dmsBillsMaintInstance); if (newestBillsMaintInstance != null) { DmsBillsMaintDetail queryBillsMaintDetail = new DmsBillsMaintDetail(); @@ -281,7 +290,7 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS * @return DmsBillsMaintDetail */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public DmsBillsMaintDetail startMaint(DmsBillsMaintDetail dmsBillsMaintDetail) { DmsBillsMaintInstance dmsBillsMaintInstance = baseMapper. selectDmsBillsMaintInstanceByMaintInstanceId(dmsBillsMaintDetail.getMaintInstanceId()); @@ -296,7 +305,29 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS if (maintStatus.equals(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_TO_MAINT)) {//待保养 dmsBillsMaintInstance.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING); dmsBillsMaintInstance.setRealBeginTime(currentDate); + //FIXME:工作流相关 + RemoteStartProcess startProcess = new RemoteStartProcess(); + startProcess.setFlowCode(DmsConstants.DMS_BILLS_MAINT_INSTANCE_WF_CODE); + String businessId = dmsBillsMaintInstance.getMaintInstanceId().toString(); + startProcess.setBusinessId(businessId); + RemoteStartProcessReturn remoteStartProcessReturn = remoteWorkflowService.startWorkFlow(startProcess); + Long taskId = remoteStartProcessReturn.getTaskId(); + if (StringUtils.isNull(taskId)) { + throw new ServiceException("流程启动失败"); + }else{ + dmsBillsMaintInstance.setWfDefinitionId(taskId); + dmsBillsMaintInstance.setRealBeginTime(new Date()); + //FIXME:完成第一步,待测试待完善 + RemoteCompleteTask remoteCompleteTask = new RemoteCompleteTask(); + remoteCompleteTask.setTaskId(taskId); + remoteCompleteTask.setMessage("同意"); + remoteWorkflowService.completeTask(remoteCompleteTask); + } + + baseMapper.updateById(dmsBillsMaintInstance); + + dmsBillsMaintDetail.setBeginTime(currentDate); dmsBillsMaintDetail.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING); dmsBillsMaintDetailMapper.updateById(dmsBillsMaintDetail); @@ -325,7 +356,7 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS * @return 结果 */ @Override - @Transactional(rollbackFor = Exception.class) + @GlobalTransactional(rollbackFor = Exception.class) public int completeMaint(DmsBillsMaintDetail dmsBillsMaintDetail) { // 获取保养工单明细中的项目列表 List dmsBillsMaintDetailProjects = dmsBillsMaintDetail.getDmsBillsMaintDetailProjectList(); @@ -341,7 +372,6 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS if (maintStatus.equals(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE)) {//保养完成 throw new ServiceException("已经保养完成"); } - // 如果保养状态为待保养,抛出异常提示请先执行开始保养 if (maintStatus.equals(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_TO_MAINT)) {//待保养 throw new ServiceException("请先执行开始保养"); @@ -349,7 +379,6 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS // 获取当前日期时间 Date currentDate = new Date(); - // 创建查询保养明细的对象 DmsBillsMaintDetailBo queryMaintDetail = new DmsBillsMaintDetailBo(); // 设置查询条件为保养实例ID @@ -371,6 +400,12 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS // 设置实际结束时间为当前时间 dmsBillsMaintInstance.setRealEndTime(currentDate); + //FIXME:工作流相关 + RemoteCompleteTask remoteCompleteTask = new RemoteCompleteTask(); + remoteCompleteTask.setTaskId(dmsBillsMaintInstance.getWfDefinitionId()); + remoteCompleteTask.setMessage("同意"); + remoteWorkflowService.completeTask(remoteCompleteTask); + // 更新保养实例信息 baseMapper.updateById(dmsBillsMaintInstance); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanInspectServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanInspectServiceImpl.java index c04d485..5bb7b0f 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanInspectServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanInspectServiceImpl.java @@ -49,7 +49,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService { private final DmsBaseInspectRouteMapper dmsBaseInspectRouteMapper; - @DubboReference + @DubboReference(timeout = 15000, retries = 1) private final RemoteJobService remoteJobService; diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanLubeServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanLubeServiceImpl.java index 86d3cc8..def83f9 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanLubeServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanLubeServiceImpl.java @@ -53,7 +53,7 @@ public class DmsPlanLubeServiceImpl implements IDmsPlanLubeService { private final DmsBillsLubeInstanceMapper dmsBillsLubeInstanceMapper; - @DubboReference + @DubboReference(timeout = 15000, retries = 1) private final RemoteJobService remoteJobService; private static final Long SECONDS_PER_DAY = 24 * 60 * 60L; diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanMaintServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanMaintServiceImpl.java index d66f250..d92ee0d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanMaintServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsPlanMaintServiceImpl.java @@ -44,7 +44,7 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService { private final DmsPlanMaintMapper baseMapper; - @DubboReference + @DubboReference(timeout = 15000, retries = 1) private final RemoteJobService remoteJobService; diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMachineInfoMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMachineInfoMapper.xml index b78a5d7..835e34a 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMachineInfoMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBaseMachineInfoMapper.xml @@ -14,4 +14,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" x.machine_name like concat('%',#{deviceName},'%') + + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml index 20e158f..9111a95 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsFaultInstanceMapper.xml @@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -47,15 +47,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, --- dbfi.wf_process_id, + dbfi.wf_definition_id, dbfi.bills_fault_code, dbfi.bills_status, dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.machine_id as machine_id, @@ -88,7 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, --- dbfi.wf_process_id, + dbfi.wf_definition_id, dbfi.bills_fault_code, dbfi.bills_status, dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.machine_id, dfia.instance_activity_id,dfia.fault_type,dfia.fault_description,dfia.design_operations,dfia.repair_type,dfia.outsourcing_id,dfia.process_handle_resolution @@ -192,13 +194,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select top 1 dbii.inspect_instance_id, dbii.plan_inspect_id, dbii.wf_definition_id, @@ -82,14 +85,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and dbii.inspect_route_id = #{inspectRouteId} - and dbii.wf_process_id = #{wfProcessId} + and dbii.wf_definition_id = #{wfDefinitionId} and dbii.inspect_type = #{inspectType} and dbii.bills_inspect_code = #{billsInspectCode} and dbii.inspect_status = #{inspectStatus} and dbii.inspect_status in (${inspectStatusStr}) - and dbii.is_flag = #{isFlag} + - order by dbii.create_time desc limit 1 + order by dbii.create_time desc diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeDetailMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeDetailMapper.xml index a2cfb16..7ecfe4e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeDetailMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeDetailMapper.xml @@ -15,37 +15,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - + + + + + + + + + + + + + + + + + + + + select dbld.bills_lube_detail_id, dbld.lube_instance_id, dbld.machine_id, dbld.lube_station_id, dbld.lube_standard_id, - dbld.operation_description, dbld.maint_status, dbld.create_by, dbld.create_time, + dbld.operation_description, dbld.maint_status, dbdl.machine_code,dbdl.machine_name, dbdt.device_type_name, - dbls.protocol_code, - dblsd.lube_protocol,dblsd.operation_description as lube_operation_description + dbls.lube_station_code, dbls.lube_station_name, + dblsd.lube_protocol, + dblsd.operation_description as lube_operation_description from dms_bills_lube_detail dbld left join prod_base_machine_info dbdl on dbld.machine_id = dbdl.machine_id - left join base_device_type dbdt on dbdl.device_type_id=dbdt.device_type_id + left join base_device_type dbdt on dbdl.machine_type=dbdt.device_type_id left join dms_base_lube_station dbls on dbld.lube_station_id=dbls.lube_station_id left join dms_base_lube_standard dblsd on dbld.lube_standard_id=dblsd.lube_standard_id - - and dbld.lube_instance_id = #{lubeInstanceId} diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeInstanceMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeInstanceMapper.xml index d5b30f2..b9f5741 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeInstanceMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsLubeInstanceMapper.xml @@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml index aa4fa43..1dd1733 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintDetailMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -13,10 +13,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - - + @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -43,10 +43,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - - + @@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and dbmd.maint_instance_id = #{maintInstanceId} and dbmd.machine_id = #{machineId} - and dbmd.maint_station_id = #{stationId} + and dbmd.maint_station_id = #{maintStationId} and dbmd.maint_standard_id = #{maintStandardId} and dbmd.maint_status = #{maintStatus} @@ -110,11 +110,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.maint_station_id = #{stationId} - + select top 1 dbmi.maint_instance_id, dbmi.plan_maint_id, - dbmi.wf_process_id, + dbmi.wf_definition_id as wf_process_id, dbmi.bills_maint_code, dbmi.plan_begin_time, dbmi.real_begin_time, @@ -122,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dbmi.real_end_time, dbmi.maint_status, dbmi.maint_comp_rate, - dbmi.create_by, +-- dbmi.create_by, dbmi.create_time, a.maint_level, a.maint_group, @@ -133,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and dbmi.maint_status in (${maintStatusStr}) - order by dbmi.create_time desc limit 1 + order by dbmi.create_time desc diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml index 0a004bc..d57a0d1 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsMaintInstanceMapper.xml @@ -30,10 +30,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select a.maint_instance_id, a.plan_maint_id, --- a.wf_process_id, + a.wf_definition_id as wf_process_id, a.bills_maint_code, a.plan_begin_time, a.real_begin_time, @@ -69,10 +69,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.maint_status, a.maint_comp_rate, - a.create_by, - a.create_time, - a.update_by, - a.update_time, +-- a.create_by, +-- a.create_time, +-- a.update_by, +-- a.update_time, b.maint_supervisor, b.remark from diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceBeenMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceBeenMapper.xml new file mode 100644 index 0000000..0ce3b7c --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsDeviceBeenMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInspectInstanceDetailMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInspectInstanceDetailMapper.xml index 2df854f..ead1147 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInspectInstanceDetailMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInspectInstanceDetailMapper.xml @@ -21,6 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -36,8 +38,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diid.inspect_standard, a.inspect_project_desc inspect_desc, diid.inspect_status, - dbdl.machine_code, - dbdl.machine_name + dbdl.machine_code as device_code, + dbdl.machine_name as device_name from dms_inspect_instance_detail diid left join prod_base_machine_info dbdl on @@ -46,9 +48,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - and dbdl.device_code = #{deviceCode} + and dbdl.machine_code = #{deviceCode} + and dbdl.machine_code = #{machineCode} and diid.inspect_instance_id = #{inspectInstanceId} and diid.line_step = #{lineStep} and diid.real_line_step = #{realLineStep} - and diid.device_id = #{deviceId} + and diid.machine_id = #{deviceId} + and diid.machine_id = #{machineId} and diid.instance_detail_status = #{instanceDetailStatus} and diid.inspect_standard = #{inspectStandard} and diid.inspect_status = #{inspectStatus}