feat(dms): 完善PDA接口DmsMobileController(@RequestMapping("/mobile"))

- 新增 PDA 端专用的设备查询接口,直接返回 DeviceBeen 格式数据
- @RepeatSubmit防止重复调用接口
master
zch 5 days ago
parent 85b1d16ae9
commit f82c93b424

@ -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 truefalse
*/
@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<String, Object> beanParams = new HashMap<>();

@ -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<List<Outsourcing>> getOutsrcInfos() {
DmsBaseOutsourcingInfoBo queryBaseOutsrcInfo = new DmsBaseOutsourcingInfoBo();
//沒有外协状态,用激活状态
@ -131,15 +137,40 @@ public class DmsMobileController extends BaseController {
queryBaseOutsrcInfo.setActiveFlag("1");
List<DmsBaseOutsourcingInfoVo> baseOutsrcInfos = dmsBaseOutsrcInfoService.queryList(queryBaseOutsrcInfo);
return R.ok(baseOutsrcInfos);
// 将 DmsBaseOutsourcingInfoVo 转换为 Outsourcing 对象
/* List<Outsourcing> 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<Outsourcing> 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<DmsBaseMachineInfoVo> deviceLedgerList = baseDeviceLedgerService.likeDeviceName(deviceName);
return R.ok(deviceLedgerList);
@RepeatSubmit
public R<List<DeviceBeen>> likeDeviceName(String deviceName) {
// 直接调用 PDA 端专用查询方法,无需对象转换
List<DeviceBeen> 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<MultipartFile> files) {
List<String> 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<DmsBillsFaultInstanceVo> 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<DmsBillsFaultInstanceVo> 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<Integer> updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity,
@RequestParam(value = "files") List<MultipartFile> files) {
List<String> 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<DmsBillsFaultInstanceVo> 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<Long> 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<Integer> 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<MultipartFile> 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<DmsBillsInspectInstanceVo> 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<DmsBillsMaintInstanceVo> 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<DmsBillsLubeInstanceVo> 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));
}
}

@ -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<DmsInspectInstanceDetail> dmsInspectInstanceDetailList;
private String planInspectCode;
private String inspectStatusStr;
}

@ -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;
}

@ -84,4 +84,40 @@ public class DmsBillsMaintDetail extends TenantEntity {
@TableField(exist = false)
private List<DmsBillsMaintDetailProjectVo> 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;
}

@ -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<DmsBillsMaintDetail> dmsBillsMaintDetailList;
@TableField(exist = false)
private String wfProcessId;
}

@ -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;
/**

@ -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映射
}

@ -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<DmsInspectInstanceDetail> dmsInspectInstanceDetailList;//表结构不存在
/**
*
*/
private String deviceCode;//表结构中是machine_code
}

@ -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;
}

@ -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
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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

@ -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;
}

@ -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;
}

@ -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<LubricationDetail> dmsBillsLubeDetails;
private String lubeStatusStr;
}

@ -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;
}

@ -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<DmsBillsMaintDetail> dmsBillsMaintDetailList;
private String createTime;
}

@ -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<DmsInspectInstanceDetailProject> dmsInspectInstanceDetailProjectList;//表结构不存在
}

@ -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<DmsBaseMachineI
List<DmsBaseMachineInfoVo> likeDeviceName(@Param("deviceName") String deviceName);
/**
* PDA DeviceBeen
*
* @param deviceName
* @return PDA
*/
List<DeviceBeen> likeDeviceNameForPda(@Param("deviceName") String deviceName);
}

@ -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<DmsBillsIn
/**
*
*
* @param dmsBillsInspectInstance
* @param dmsBillsInspectInstanceBo BO
* @return
*/
public DmsBillsInspectInstanceVo selectNewestDmsBillsInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance);
public DmsBillsInspectInstanceVo selectNewestDmsBillsInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstanceBo);
}

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

@ -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<DmsBillsMaintD
* @param dmsBillsMaintInstance
* @return
*/
public DmsBillsMaintInstance selectNewestDmsBillsMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance);
public DmsBillsMaintInstanceVo selectNewestDmsBillsMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance);
}

@ -0,0 +1,14 @@
package org.dromara.dms.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.dms.domain.mobile.DeviceBeen;
/**
* ()Mapper
*
* @author Yinq
* @date 2025-03-11
*/
public interface DmsDeviceBeenMapper extends BaseMapperPlus<DeviceBeen, DeviceBeen> {
}

@ -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<DmsInspec
* @param dmsInspectInstanceDetail
* @return
*/
public List<DmsInspectInstanceDetail> selectDmsInspectInstanceDetailJoinList(DmsInspectInstanceDetail dmsInspectInstanceDetail);
public List<DmsInspectInstanceDetail> selectDmsInspectInstanceDetailJoinList(DmsInspectInstanceDetailBo dmsInspectInstanceDetail);
}

@ -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<DmsBaseMachineInfoVo> likeDeviceName(String deviceName);
/**
* PDA
*
* @param deviceName
* @return PDA
*/
List<DeviceBeen> likeDeviceNameForPda(String deviceName);
/* *//**
*
*

@ -111,5 +111,11 @@ public interface IDmsBillsFaultInstanceService {
*/
public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity);
/**
* ID
* @param repairInstanceId ID
* @param wfDefinitionId ID
* @return truefalse
*/
public Boolean updateWfDefinitionIdById(Long repairInstanceId, Long wfDefinitionId);
}

@ -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);
/**

@ -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<DeviceBeen> likeDeviceNameForPda(String deviceName) {
return baseMapper.likeDeviceNameForPda(deviceName);
}
/* *//**
*
*

@ -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<String> 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<String> 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 truefalse
*/
@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<DmsFaultInstanceActivityVo> 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<String> fileUrls, Long instanceActivityId) {
// 判断文件URL列表是否不为空且非空集合
if (fileUrls != null && !fileUrls.isEmpty()) {
@ -551,4 +676,5 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
}
}

@ -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());
// 查询巡检实例详情列表

@ -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<DmsBillsLubeDetail> 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())

@ -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<DmsBillsLubeInstance> 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<DmsBillsLubeDetail> detailWrapper = JoinWrappers.lambda(DmsBillsLubeDetail.class)
.selectAll(DmsBillsLubeDetail.class)
.eq(DmsBillsLubeDetail::getLubeInstanceId, newestBillsLubeInstance.getLubeInstanceId());
List<DmsBillsLubeDetailVo> dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectJoinList(DmsBillsLubeDetailVo.class, detailWrapper);*/
// 创建一个新的润滑详情对象
DmsBillsLubeDetail queryBillsLubeDetail = new DmsBillsLubeDetail();
// 设置润滑详情对象的润滑实例ID
queryBillsLubeDetail.setLubeInstanceId(bo.getLubeInstanceId());
List<DmsBillsLubeDetailVo> dmsBillsLubeDetails = dmsBillsLubeDetailMapper.selectDmsBillsLubeDetailJoinList(queryBillsLubeDetail);
newestBillsLubeInstance.setDmsBillsLubeDetailList(dmsBillsLubeDetails);
// 设置润滑详情对象的润滑ID
queryBillsLubeDetail.setLubeInstanceId(newestBillsLubeInstance.getLubeInstanceId());
List<LubricationDetail> 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;
}

@ -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<DmsBillsMaintDetailProjectVo> 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);
}

@ -49,7 +49,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
private final DmsBaseInspectRouteMapper dmsBaseInspectRouteMapper;
@DubboReference
@DubboReference(timeout = 15000, retries = 1)
private final RemoteJobService remoteJobService;

@ -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;

@ -44,7 +44,7 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService {
private final DmsPlanMaintMapper baseMapper;
@DubboReference
@DubboReference(timeout = 15000, retries = 1)
private final RemoteJobService remoteJobService;

@ -14,4 +14,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
x.machine_name like concat('%',#{deviceName},'%')
</select>
<!-- PDA 端专用查询,直接返回 DeviceBeen 格式 -->
<select id="likeDeviceNameForPda" resultType="org.dromara.dms.domain.mobile.DeviceBeen"
parameterType="java.lang.String">
select
x.machine_id as deviceId,
x.machine_code as deviceCode,
x.machine_name as deviceName,
x.machine_location as deviceLocation,
x.machine_type as deviceTypeId,
x.machine_spec as deviceSpec,
x.machine_status as deviceStatus
from
prod_base_machine_info x
where
x.machine_name like concat('%',#{deviceName},'%')
</select>
</mapper>

@ -9,7 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="repairInstanceId" column="repair_instance_id" />
<result property="faultSourceType" column="fault_source_type" />
<result property="faultSourceId" column="fault_source_id" />
<result property="wfProcessId" column="wf_process_id" />
<result property="wfDefinitionId" column="wf_definition_id" />
<result property="billsFaultCode" column="bills_fault_code" />
<result property="billsStatus" column="bills_status" />
<result property="applyUser" column="apply_user" />
@ -47,15 +47,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<select id="selectProcessActivityId" parameterType="Long" resultType="Long">
select min(process_activity_id) from wf_process_activity where wf_process_id = #{wfProcessId}
</select>
<!-- <select id="selectProcessActivityId" parameterType="Long" resultType="Long">-->
<!-- select min(process_activity_id) from wf_process_activity where wf_process_id = #{wfDefinitionId}-->
<!-- </select>-->
<sql id="selectDmsBillsFaultInstanceJoinVo">
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 id="selectFaultInstanceJoinFirstAndDeviceById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
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,dbfi.approveStatus,
dbdl.machine_code,dbdl.machine_name,dbdl.machine_location,dbdl.machine_spec,
@ -104,13 +104,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from dms_bills_fault_instance dbfi
left join prod_base_machine_info dbdl on dbfi.machine_id=dbdl.machine_id
left join dms_fault_instance_activity dfia on dbfi.repair_instance_id=dfia.repair_instance_id
where dbfi.repair_instance_id = #{repairInstanceId} and dfia.process_step_order=1
where dbfi.repair_instance_id = #{repairInstanceId}
<!-- and dfia.process_step_order=1 -->
and dfia.process_step_order=2
</select>
<select id="selectFaultInstanceJoinActivityByRepairInstanceId" parameterType="Long" resultMap="DmsBillsFaultInstanceDmsFaultInstanceActivityResult">
select a.repair_instance_id, a.fault_source_type, a.fault_source_id,
-- a.wf_process_id,
a.wf_definition_id,
a.bills_fault_code, a.bills_status, a.apply_user, a.apply_time, a.real_begin_time, a.real_end_time, a.require_end_time,
a.instance_type, a.remark, a.create_by, a.create_time, a.update_by, a.update_time,a.approveStatus,dbdl.machine_code,dbdl.machine_name,dbdl.machine_location,dbdl.machine_spec,
b.instance_activity_id as sub_instance_activity_id,
@ -151,7 +153,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectFaultInstanceJoinFirstById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
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 id="selectDmsBillsFaultInstanceCompletedList" resultType="org.dromara.dms.domain.vo.DmsBillsFaultInstanceVo"
parameterType="org.dromara.dms.domain.DmsBillsFaultInstance">
select repair_instance_id, fault_source_type, fault_source_id, wf_process_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, remark, create_by, create_time, update_by, update_time,machine_id,approveStatus,repair_confirm from dms_bills_fault_instance
select repair_instance_id, fault_source_type, fault_source_id, wf_definition_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, remark, create_by, create_time, update_by, update_time,machine_id,approveStatus,repair_confirm from dms_bills_fault_instance
<where>
bills_status = 2
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
<if test="faultSourceId != null "> and fault_source_id = #{faultSourceId}</if>
<if test="repairInstanceId != null "> and repair_instance_id = #{repairInstanceId}</if>
<if test="wfProcessId != null "> and wf_process_id = #{wfProcessId}</if>
<if test="wfDefinitionId != null "> and wf_definition_id = #{wfDefinitionId}</if>
<if test="billsFaultCode != null and billsFaultCode != ''"> and bills_fault_code = #{billsFaultCode}</if>
<if test="billsStatus != null and billsStatus != ''"> and bills_status = #{billsStatus}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>

@ -23,6 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="inspectRouteId" column="inspect_route_id" />
<result property="routeName" column="route_name" />
<result property="performer" column="performer" />
<result property="planInspectCode" column="plan_inspect_code" />
<result property="inspectStatusStr" column="inspect_status_str" />
</resultMap>
@ -60,8 +63,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.inspect_type = 1
</select>
<select id="selectNewestDmsBillsInspectInstance" parameterType="DmsBillsInspectInstance" resultMap="DmsBillsInspectInstanceResult">
select
<select id="selectNewestDmsBillsInspectInstance" parameterType="DmsBillsInspectInstanceBo" resultMap="DmsBillsInspectInstanceResult">
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"
<where>
<if test="inspectRouteId != null "> and dbii.inspect_route_id = #{inspectRouteId}</if>
<if test="wfProcessId != null "> and dbii.wf_process_id = #{wfProcessId}</if>
<if test="wfDefinitionId != null "> and dbii.wf_definition_id = #{wfDefinitionId}</if>
<if test="inspectType != null and inspectType != ''"> and dbii.inspect_type = #{inspectType}</if>
<if test="billsInspectCode != null and billsInspectCode != ''"> and dbii.bills_inspect_code = #{billsInspectCode}</if>
<if test="inspectStatus != null and inspectStatus != ''"> and dbii.inspect_status = #{inspectStatus}</if>
<if test="inspectStatusStr != null and inspectStatusStr != ''"> and dbii.inspect_status in (${inspectStatusStr})</if>
<if test="isFlag != null and isFlag != ''"> and dbii.is_flag = #{isFlag}</if>
<!-- <if test="isFlag != null and isFlag != ''"> and dbii.is_flag = #{isFlag}</if> -->
</where>
order by dbii.create_time desc limit 1
order by dbii.create_time desc
</select>
</mapper>

@ -15,37 +15,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="maintStatus" column="maint_status" />
<result property="isFlag" column="is_flag" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
<result property="machineCode" column="machine_code" />
<result property="machineName" column="machinee_name" />
<result property="machineName" column="machine_name" />
<result property="deviceTypeName" column="device_type_name" />
<result property="lubeStationName" column="lube_station_name" />
<result property="lubeProtocol" column="lube_protocol" />
<result property="lubeOperationDescription" column="lube_operation_description" />
<result property="lubeStationCode" column="lube_station_code" />
</resultMap>
<!-- LubricationDetail 结果映射 -->
<resultMap type="org.dromara.dms.domain.mobile.LubricationDetail" id="LubricationDetail">
<result property="billsLubeDetailId" column="bills_lube_detail_id" />
<result property="lubeInstanceId" column="lube_instance_id" />
<result property="deviceId" column="machine_id" />
<result property="lubeStationId" column="lube_station_id" />
<result property="lubeStandardId" column="lube_standard_id" />
<result property="operationDescription" column="operation_description" />
<result property="maintStatus" column="maint_status" />
<result property="typeName" column="device_type_name" />
<result property="deviceCode" column="machine_code" />
<result property="deviceName" column="machine_name" />
<result property="lubeStationName" column="lube_station_name" />
<result property="lubeProtocol" column="lube_protocol" />
<result property="lubeOperationDescription" column="lube_operation_description" />
</resultMap>
<sql id="selectDmsBillsLubeDetailJoinVo">
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
</sql>
<select id="selectDmsBillsLubeDetailJoinList" parameterType="DmsBillsLubeDetail" resultMap="DmsBillsLubeDetailResult">
<select id="selectDmsBillsLubeDetailJoinList" parameterType="DmsBillsLubeDetail" resultMap="LubricationDetail">
<include refid="selectDmsBillsLubeDetailJoinVo"/>
<where>
<if test="lubeInstanceId != null "> and dbld.lube_instance_id = #{lubeInstanceId}</if>

@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</insert>
<select id="selectNewestDmsBillsLubeInstance" parameterType="DmsBillsLubeInstance" resultMap="DmsBillsLubeInstanceResult">
select dbli.lube_instance_id, dbli.plan_lube_id, dbli.bills_lube_code, dbli.plan_begin_time, dbli.real_begin_time, dbli.plan_end_time,
select top 1 dbli.lube_instance_id, dbli.plan_lube_id, dbli.bills_lube_code, dbli.plan_begin_time, dbli.real_begin_time, dbli.plan_end_time,
dbli.real_end_time, dbli.lube_status,
dbli.lube_group,dbli.lube_supervisor,dbli.lube_level
from dms_bills_lube_instance dbli
@ -50,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="lubeStatusStr != null and lubeStatusStr != ''"> and dbli.lube_status in (${lubeStatusStr})</if>
</where>
order by dbli.create_time desc limit 1
order by dbli.create_time desc
</select>
</mapper>

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.dms.mapper.DmsBillsMaintDetailMapper">
<resultMap type="DmsBillsMaintDetail" id="DmsBillsMaintDetailResult">
<resultMap type="DmsBillsMaintDetailVo" id="DmsBillsMaintDetailResult">
<result property="billsMaintDetailId" column="bills_maint_detail_id" />
<result property="maintInstanceId" column="maint_instance_id" />
<result property="machineId" column="machine_id" />
@ -13,10 +13,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="maintStatus" column="maint_status" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<!-- <result property="createBy" column="create_by" /> -->
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<!-- <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> -->
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<resultMap type="DmsBillsMaintInstance" id="DmsBillsMaintInstanceResult">
<resultMap type="DmsBillsMaintInstanceVo" id="DmsBillsMaintInstanceResult">
<result property="maintInstanceId" column="maint_instance_id" />
<result property="planMaintId" column="plan_maint_id" />
<result property="wfProcessId" column="wf_process_id" />
@ -43,10 +43,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="maintCompRate" column="maint_comp_rate" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<!-- <result property="createBy" column="create_by" /> -->
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<!-- <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> -->
<result property="maintLevel" column="maint_level" />
<result property="maintGroup" column="maint_group" />
@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="maintInstanceId != null "> and dbmd.maint_instance_id = #{maintInstanceId}</if>
<if test="machineId != null "> and dbmd.machine_id = #{machineId}</if>
<if test="stationId != null "> and dbmd.maint_station_id = #{stationId}</if>
<if test="maintStationId != null "> and dbmd.maint_station_id = #{maintStationId}</if>
<if test="maintStandardId != null "> and dbmd.maint_standard_id = #{maintStandardId}</if>
<if test="maintStatus != null "> and dbmd.maint_status = #{maintStatus}</if>
</where>
@ -110,11 +110,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where x.maint_station_id = #{stationId}
</select>
<select id="selectNewestDmsBillsMaintInstance" parameterType="DmsBillsMaintInstance" resultMap="DmsBillsMaintInstanceResult">
select
<select id="selectNewestDmsBillsMaintInstance" parameterType="DmsBillsMaintInstanceBo" resultMap="DmsBillsMaintInstanceResult">
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"
<where>
<if test="maintStatusStr != null and maintStatusStr != ''"> and dbmi.maint_status in (${maintStatusStr})</if>
</where>
order by dbmi.create_time desc limit 1
order by dbmi.create_time desc
</select>
</mapper>

@ -30,10 +30,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectNewestDmsBillsMaintInstance" parameterType="DmsBillsMaintInstance" resultMap="DmsBillsMaintInstanceResult">
select
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,
@ -53,14 +53,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="maintStatusStr != null and maintStatusStr != ''"> and dbmi.maint_status in (${maintStatusStr})</if>
</where>
order by dbmi.create_time desc limit 1
order by dbmi.create_time desc
</select>
<sql id="selectDmsBillsMaintInstanceVo">
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

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.dms.mapper.DmsDeviceBeenMapper">
</mapper>

@ -21,6 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="machineCode" column="machine_code" />
<result property="machineName" column="machine_name" />
<result property="deviceCode" column="device_code" />
<result property="deviceName" column="device_name" />
</resultMap>
@ -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"
</sql>
<select id="selectDmsInspectInstanceDetailByUI" resultMap="DmsInspectInstanceDetailResult">
<include refid="selectDmsInspectInstanceDetailJoinVo"/>
select top 1
diid.instance_detail_id,
diid.inspect_instance_id,
diid.line_step,
diid.real_line_step,
diid.machine_id,
diid.instance_detail_status,
diid.inspect_standard,
a.inspect_project_desc inspect_desc,
diid.inspect_status,
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
diid.machine_id = dbdl.machine_id
left join dms_inspect_instance_detail_project a on diid.instance_detail_id = a.instance_detail_id
where diid.inspect_instance_id = #{inspectInstanceId} and dbdl.machine_code = #{machineCode}
limit 1
</select>
<select id="selectProjectId" resultType="java.lang.Long" parameterType="java.lang.String">
@ -57,14 +74,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where x.inspect_standard_id = #{inspectStandard}
</select>
<select id="selectDmsInspectInstanceDetailJoinList" parameterType="DmsInspectInstanceDetail" resultMap="DmsInspectInstanceDetailResult">
<select id="selectDmsInspectInstanceDetailJoinList" parameterType="DmsInspectInstanceDetailBo" resultMap="DmsInspectInstanceDetailResult">
<include refid="selectDmsInspectInstanceDetailJoinVo"/>
<where>
<if test="deviceCode != null and deviceCode != ''"> and dbdl.device_code = #{deviceCode}</if>
<if test="deviceCode != null and deviceCode != ''"> and dbdl.machine_code = #{deviceCode}</if>
<if test="machineCode != null and machineCode != ''"> and dbdl.machine_code = #{machineCode}</if>
<if test="inspectInstanceId != null "> and diid.inspect_instance_id = #{inspectInstanceId}</if>
<if test="lineStep != null "> and diid.line_step = #{lineStep}</if>
<if test="realLineStep != null "> and diid.real_line_step = #{realLineStep}</if>
<if test="deviceId != null "> and diid.device_id = #{deviceId}</if>
<if test="deviceId != null "> and diid.machine_id = #{deviceId}</if>
<if test="machineId != null "> and diid.machine_id = #{machineId}</if>
<if test="instanceDetailStatus != null and instanceDetailStatus != ''"> and diid.instance_detail_status = #{instanceDetailStatus}</if>
<if test="inspectStandard != null and inspectStandard != ''"> and diid.inspect_standard = #{inspectStandard}</if>
<if test="inspectStatus != null and inspectStatus != ''"> and diid.inspect_status = #{inspectStatus}</if>

Loading…
Cancel
Save