From 9ae73da19682d5f404f99ba848159a4f042de162 Mon Sep 17 00:00:00 2001 From: zch Date: Fri, 13 Jun 2025 11:12:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(dms):=20=E6=96=B0=E5=A2=9EPDA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=88=E9=9C=80=E6=B5=8B=E8=AF=95=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/DmsConstants.java | 7 + .../dromara/common/core/utils/uuid/Seq.java | 13 + .../dms/controller/DmsMobileController.java | 718 ++++++++++-------- .../dms/domain/DmsBaseMachineInfo.java | 2 + .../dms/domain/DmsBillsFaultInstance.java | 33 + .../dms/domain/DmsBillsInspectInstance.java | 12 + .../dms/domain/DmsFaultComponentsParts.java | 1 + .../DmsInspectInstanceDetailProject.java | 2 + .../dms/domain/DmsMaintInstanceActivity.java | 2 +- .../dromara/dms/domain/DmsPlanInspect.java | 4 +- .../domain/bo/DmsBillsFaultInstanceBo.java | 8 + .../bo/DmsBillsFaultInstanceScanBo.java | 18 + .../domain/bo/DmsBillsInspectInstanceBo.java | 8 + .../bo/DmsBillsInspectInstanceScanBo.java | 17 + .../domain/bo/DmsFaultInstanceActivityBo.java | 14 + .../domain/vo/DmsBillsFaultInstanceVo.java | 5 + .../domain/vo/DmsBillsInspectInstanceVo.java | 19 +- .../domain/vo/DmsInspectInstanceDetailVo.java | 4 +- .../RemoteInspectInstanceServiceImpl.java | 53 +- .../dms/mapper/DmsBaseMachineInfoMapper.java | 5 + .../mapper/DmsBillsFaultInstanceMapper.java | 3 +- .../mapper/DmsBillsInspectInstanceMapper.java | 11 + .../DmsFaultInstanceActivityMapper.java | 5 + .../DmsInspectInstanceDetailMapper.java | 12 + .../dms/mapper/DmsInstanceFileMapper.java | 10 + .../service/IDmsBaseMachineInfoService.java | 12 +- .../IDmsBillsFaultInstanceService.java | 43 ++ .../IDmsBillsInspectInstanceService.java | 29 + .../impl/DmsBaseMachineInfoServiceImpl.java | 22 + .../impl/DmsBaseTransferInfoServiceImpl.java | 4 +- .../DmsBillsFaultInstanceServiceImpl.java | 400 +++++++++- ...llsInspectInstanceActivityServiceImpl.java | 33 + .../DmsBillsInspectInstanceServiceImpl.java | 178 ++++- ...sBillsLubeInstanceActivityServiceImpl.java | 111 +-- .../impl/DmsBillsLubeInstanceServiceImpl.java | 39 +- .../DmsBillsMaintInstanceServiceImpl.java | 28 +- .../DmsMaintInstanceActivityServiceImpl.java | 21 + .../service/impl/DmsPlanMaintServiceImpl.java | 1 + .../mapper/dms/DmsBaseMachineInfoMapper.xml | 10 + .../dms/DmsBillsFaultInstanceMapper.xml | 4 +- .../dms/DmsBillsInspectInstanceMapper.xml | 39 +- .../dms/DmsFaultInstanceActivityMapper.xml | 13 + .../dms/DmsInspectInstanceDetailMapper.xml | 14 + .../mapper/dms/DmsInstanceFileMapper.xml | 7 + .../impl/ProdShiftChangeServiceImpl.java | 1 - 45 files changed, 1507 insertions(+), 488 deletions(-) create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceScanBo.java create mode 100644 ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceScanBo.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DmsConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DmsConstants.java index 85b89cc..25c40f9 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DmsConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DmsConstants.java @@ -87,4 +87,11 @@ public class DmsConstants { public static final String DMS_MAINT_PROJECT_STATUS_TO_MAINT="0";//0待保养 public static final String DMS_MAINT_PROJECT_STATUS_COMPLETE="1";//1保养完成 + + /** 工作流编码 */ + public static final String DMS_BILLS_LUBE_INSTANCE_WF_CODE="Lube01"; + public static final String DMS_BILLS_MAINT_INSTANCE_WF_CODE="Maint01"; + public static final String DMS_BILLS_FAULT_INSTANCE_WF_CODE="Fault01"; + public static final String DMS_BILLS_INSPECT_INSTANCE_WF_CODE="Inspect01"; + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java index 35f6587..6a0b818 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java @@ -54,6 +54,19 @@ public class Seq { public static final String dmsLubeInstanceCode = "LI"; + + // 设备报修工单编号记录标识 + public static final String dmsBillsFaultInstanceSeqType = "DMSBILLSFAULTINSTANCE"; + + // 设备报修工单接口序列数 + private static AtomicInteger dmsBillsFaultInstanceSeq = new AtomicInteger(1); + + // 设备报修工单标识 + public static final String dmsBillsFaultInstanceSeqCode = "BF"; + + + + //检修计划序列类型 public static final String planRepairSeqType = "PLANREPAIR"; //检修计划接口序列数 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 4d717f0..0e4bcf4 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 @@ -1,326 +1,404 @@ -//package org.dromara.dms.controller; -// -//import com.fasterxml.jackson.core.JsonProcessingException; -//import com.fasterxml.jackson.core.type.TypeReference; -//import com.fasterxml.jackson.databind.ObjectMapper; -//import lombok.RequiredArgsConstructor; -//import org.dromara.common.core.constant.DmsConstants; -//import org.dromara.common.core.domain.R; -//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.DmsBaseMachineInfo; -//import org.dromara.dms.domain.DmsBaseOutsourcingInfo; -//import org.dromara.dms.domain.DmsBillsLubeDetail; -//import org.dromara.dms.domain.DmsBillsLubeInstance; -//import org.dromara.dms.service.IDmsBillsLubeInstanceService; -//import org.springframework.util.CollectionUtils; -//import org.springframework.validation.annotation.Validated; -//import org.springframework.web.bind.annotation.*; -//import org.springframework.web.multipart.MultipartFile; -// -//import java.util.ArrayList; -//import java.util.Date; -//import java.util.List; -// -//@Validated -//@RequiredArgsConstructor -//@RestController -//@RequestMapping("/mobile") -//public class DmsMobileController extends BaseController { -// -// -// private final IDmsBillsFaultInstanceService dmsBillsFaultInstanceService; -// -// -// private final IDmsBillsInspectInstanceService dmsBillsInspectInstanceService; -// -// -// private final IDmsBaseDeviceLedgerService baseDeviceLedgerService; -// -// -// private final IDmsBaseOutsrcInfoService dmsBaseOutsrcInfoService; -// -// -// private final IDmsBillsMaintInstanceService dmsBillsMaintInstanceService; -// -// -// private final IDmsBillsLubeInstanceService dmsBillsLubeInstanceService; -// -// /** -// * 根据设备编号获取设备信息 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getDeviceByDeviceCode/{deviceCode}") -// public R getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode) { -// DmsBaseMachineInfo dmsBaseDeviceLedger = baseDeviceLedgerService.selectDmsBaseDeviceLedgerByDeviceCode(deviceCode); -// return R.ok(dmsBaseDeviceLedger); -// } -// -// /** -// * 获取外协单位列表 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getOutsrcInfos") -// public R getOutsrcInfos() { -// DmsBaseOutsourcingInfo queryBaseOutsrcInfo = new DmsBaseOutsourcingInfo(); +package org.dromara.dms.controller; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +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.bo.*; +import org.dromara.dms.domain.vo.*; +import org.dromara.dms.service.*; +import org.dromara.resource.api.RemoteFileService; +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.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/mobile") +@Slf4j +public class DmsMobileController extends BaseController { + + + private final IDmsBillsFaultInstanceService dmsBillsFaultInstanceService; + + private final IDmsBillsInspectInstanceService dmsBillsInspectInstanceService; + + private final IDmsBaseMachineInfoService baseDeviceLedgerService; + + private final IDmsBaseOutsourcingInfoService dmsBaseOutsrcInfoService; + + private final IDmsBillsMaintInstanceService dmsBillsMaintInstanceService; + + private final IDmsBillsLubeInstanceService dmsBillsLubeInstanceService; + + private final RemoteFileService remoteFileService; + + + /** + * 处理文件上传的函数 + * @param files 多部分文件列表 + * @return 上传文件的URL列表 + */ + private List handleFileUploads(List files) { + // 创建一个存储上传文件URL的列表 + List fileUrls = new ArrayList<>(); + // 判断文件列表是否为空 + if (files != null) { + // 遍历每个文件 + for (MultipartFile file : files) { + // 获取原始文件名 + String originalFilename = file.getOriginalFilename(); + // 获取文件类型 + String contentType = file.getContentType(); + byte[] fileBytes; + try { + // 获取文件字节内容 + fileBytes = file.getBytes(); + } catch (IOException e) { + // 记录错误日志并抛出服务异常 + log.error("获取文件字节失败: {}", originalFilename, e); + throw new ServiceException("文件获取失败,请重试。"); + } + + try { + // 调用远程文件服务的上传方法 + RemoteFile sysFile = remoteFileService.upload(originalFilename, originalFilename, contentType, fileBytes); + // 判断上传结果是否成功 + if (sysFile != null && sysFile.getUrl() != null) { + // 将文件URL添加到列表中 + fileUrls.add(sysFile.getUrl()); + } else { + // 记录警告日志 + log.warn("文件上传成功但未返回URL或返回数据为空: {}", originalFilename); + } + } catch (ServiceException e) { + // 记录服务异常日志并抛出新的服务异常 + log.error("文件上传服务异常: {}", originalFilename, e); + throw new ServiceException("文件上传服务异常:" + e.getMessage()); + } catch (Exception e) { + // 记录未知错误日志并抛出新的服务异常 + log.error("文件上传过程中发生未知错误: {}", originalFilename, e); + throw new ServiceException("文件上传过程中发生未知错误,请联系管理员。"); + } + } + } + // 返回上传文件的URL列表 + return fileUrls; + } + + + /** + * 根据设备编号获取设备信息 + * + * @return + */ + @GetMapping("/getDeviceByDeviceCode/{deviceCode}") + public R getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode) { + DmsBaseMachineInfoBo dmsBaseMachineInfoBo = new DmsBaseMachineInfoBo(); + dmsBaseMachineInfoBo.setMachineCode(deviceCode); + //TODO:根据设备编号查一个设备 + DmsBaseMachineInfoVo dmsBaseDeviceLedger = baseDeviceLedgerService.queryList(dmsBaseMachineInfoBo).get(0); + return R.ok(dmsBaseDeviceLedger); + } + + /** + * 获取外协单位列表 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getOutsrcInfos") + public R getOutsrcInfos() { + DmsBaseOutsourcingInfoBo queryBaseOutsrcInfo = new DmsBaseOutsourcingInfoBo(); + + //沒有外协状态,用激活状态 // queryBaseOutsrcInfo.setOutsrcStatus(DmsConstants.DMS_BASE_OUTSRC_INFO_STATUS_NROMAL); -// List baseOutsrcInfos = dmsBaseOutsrcInfoService.selectDmsBaseOutsrcInfoList(queryBaseOutsrcInfo); -// return R.ok(baseOutsrcInfos); -// } -// /** -// * 根据传参模糊查询设备名 -// */ -// @GetMapping("/likeDeviceName") -// public R likeDeviceName(String deviceName) { -// List deviceLedgerList = baseDeviceLedgerService.likeDeviceName(deviceName); -// return R.ok(deviceLedgerList); -// } -// -// -// /** -// * PDA-报修 -// *

-// * 需传入 -// * 设备id deviceId -// * 故障类别 faultType -// * 故障描述 faultDescription -// * 涉及操作 designOperations -// * 维修类型 repairType -// * 外协id outsrcId(可不传入) -// * 图片 files -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "故障报修工单", businessType = BusinessType.INSERT) -// @PostMapping("/insertFaultInstsanceActivity") -// public R insertFaultInstsanceActivity(DmsBillsFaultInstance dmsBillsFaultInstance, -// List files) { -// List fileUrls = new ArrayList<>(); -// if(files!=null){ -// for (MultipartFile file : files) { -// R sysFileR = remoteFileService.upload(file); -// SysFile sysFile = sysFileR.getData(); -// fileUrls.add(sysFile.getUrl()); -// } -// } -// dmsBillsFaultInstance.setFileUrls(fileUrls); -// return R.ok(dmsBillsFaultInstanceService.insertDmsBillsFaultInstance(dmsBillsFaultInstance)); -// } -// -// -// /** -// * 获取故障报修工单列表 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getBillsFaultInstances") -// public TableDataInfo getBillsFaultInstances() { -//// startPage(); -// DmsBillsFaultInstance queryBillsFaultInstance = new DmsBillsFaultInstance(); -// List billsFaultInstances = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceJoinList(queryBillsFaultInstance); -// return getDataTable(billsFaultInstances); -// } -// -// /** -// * 获取故障报修工单详细信息,修改工单使用 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getBillsFaultInstanceByRepairInstanceId/{repairInstanceId}") -// public R getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) { -// DmsBillsFaultInstance billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId); -// return R.ok(billsFaultInstance); -// } -// -// /** -// * 修改工单提交 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "故障报修工单", businessType = BusinessType.UPDATE) -// @PostMapping("/updateFaultInstanceActivity") -// public R updateFaultInstanceActivity(DmsFaultInstanceActivity dmsFaultInstanceActivity, -// @RequestParam(value = "files") List files) { -// List fileUrls = new ArrayList<>(); -// if (!CollectionUtils.isEmpty(files)){ -// for (MultipartFile file : files) { -// R sysFileR = remoteFileService.upload(file); -// SysFile sysFile = sysFileR.getData(); -// fileUrls.add(sysFile.getUrl()); -// } -// dmsFaultInstanceActivity.setFileUrls(fileUrls); -// } -// return R.ok(dmsBillsFaultInstanceService.updateDmsFaultInstanceActivity(dmsFaultInstanceActivity)); -// } -// -// /** -// * 获取故障报修工单详细信息,维修使用 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getBillsFaultInstance4Repair/{repairInstanceId}") -// public R getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) { -// DmsBillsFaultInstance billsFaultInstance = dmsBillsFaultInstanceService.getDmsBillsFaultInstance4Repair(repairInstanceId); -// return R.ok(billsFaultInstance); -// } -// -// -// /** -// * 故障报修扫描设备验证 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/scanDevice4Repair") -// public R scanDevice4Repair(@Validated DmsBillsFaultInstanceScanVo dmsBillsFaultInstanceScanVo) { -// dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScanVo); -// return R.ok(); -// } -// -// -// /** -// * 开始维修 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "故障报修工单", businessType = BusinessType.START) -// @PostMapping("/startRepair") -// public R startRepair(@RequestBody DmsFaultInstanceActivity dmsFaultInstanceActivity) { -// return R.ok(dmsBillsFaultInstanceService.startRepair(dmsFaultInstanceActivity)); -// } -// -// /** -// * 完成维修 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "故障报修工单", businessType = BusinessType.COMPLETE) -// @PostMapping("/completeRepair") -// public R completeRepair(DmsFaultInstanceActivity dmsFaultInstanceActivity,@RequestParam(value = "files") List files) throws JsonProcessingException { -// dmsFaultInstanceActivity.setRepairConfirm(2); -// dmsFaultInstanceActivity.setConfirmTime(new Date()); -// String parts1 = dmsFaultInstanceActivity.getParts1(); -// ObjectMapper objectMapper = new ObjectMapper(); -// List parts2 = objectMapper.readValue(parts1, new TypeReference>() {}); -// dmsFaultInstanceActivity.setParts(parts2); -// List < String > fileUrls = new ArrayList<>(); -// for (MultipartFile file : files) { -// R sysFileR = remoteFileService.upload(file); -// SysFile sysFile = sysFileR.getData(); -// fileUrls.add(sysFile.getUrl()); -// } -// dmsFaultInstanceActivity.setFileUrls(fileUrls); -// return R.ok(dmsBillsFaultInstanceService.completeRepair(dmsFaultInstanceActivity)); -// } -// -// -// /** -// * 获取最新一条待巡检或巡检中的巡检或点检工单(检查类型inspectType(1巡检,2点检)) -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getNewestInspectInstance") -// public R getNewestInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance) { -// DmsBillsInspectInstance newestInspectInstance = dmsBillsInspectInstanceService.getNewestBillsInspectInstance(dmsBillsInspectInstance); -// return R.ok(newestInspectInstance); -// } -// -// -// /** -// * 扫描设备编号或者输入设备编号进行巡检验证 -// * */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/scanInspectInstanceDetail") -// public R scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanVo dmsBillsInspectInstanceScanVo) { -// return R.ok(dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScanVo)); -// } -// -// /** -// * 点巡检工单 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") + queryBaseOutsrcInfo.setActiveFlag("1"); + + List baseOutsrcInfos = dmsBaseOutsrcInfoService.queryList(queryBaseOutsrcInfo); + return R.ok(baseOutsrcInfos); + } + /** + * 根据传参模糊查询设备名 + */ + @GetMapping("/likeDeviceName") + public R likeDeviceName(String deviceName) { + List deviceLedgerList = baseDeviceLedgerService.likeDeviceName(deviceName); + return R.ok(deviceLedgerList); + } + + + /** + * PDA-报修 + *

+ * 需传入 + * 设备id deviceId + * 故障类别 faultType + * 故障描述 faultDescription + * 涉及操作 designOperations + * 维修类型 repairType + * 外协id outsrcId(可不传入) + * 图片 files + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "故障报修工单", businessType = BusinessType.INSERT) + @PostMapping("/insertFaultInstsanceActivity") + public R insertFaultInstsanceActivity(DmsBillsFaultInstanceBo dmsBillsFaultInstance, + List files) { + List fileUrls = new ArrayList<>(); + if(files!=null){ + for (MultipartFile file : files) { + // 从 MultipartFile 中提取 RemoteFileService 所需的参数 + String originalFilename = file.getOriginalFilename(); + String contentType = file.getContentType(); + byte[] fileBytes; + try { + fileBytes = file.getBytes(); + } catch (IOException e) { + log.error("获取文件字节失败: {}", originalFilename, e); + return R.fail("文件获取失败,请重试。"); + } + + try { + // 调用 RemoteFileService 的 upload 方法,传入正确参数 + // 'name' 参数在当前RemoteFileServiceImpl实现中并非强制决定最终文件名, + // 这里传入originalFilename以保持一致性或作为备用标识 + RemoteFile sysFile = remoteFileService.upload(originalFilename, originalFilename, contentType, fileBytes); + if (sysFile != null && sysFile.getUrl() != null) { + fileUrls.add(sysFile.getUrl()); + } else { + log.warn("文件上传成功但未返回URL或返回数据为空: {}", originalFilename); + // 可以选择返回失败,或继续处理其他文件 + } + } catch (ServiceException e) { + log.error("文件上传服务异常: {}", originalFilename, e); + return R.fail("文件上传服务异常:" + e.getMessage()); + } catch (Exception e) { // 捕获其他未知异常 + log.error("文件上传过程中发生未知错误: {}", originalFilename, e); + return R.fail("文件上传过程中发生未知错误,请联系管理员。"); + } + } + } + + //TODO:文件存储待测试 + dmsBillsFaultInstance.setFileUrls(fileUrls); + return R.ok(dmsBillsFaultInstanceService.insertByBo(dmsBillsFaultInstance)); + } + + + /** + * 获取故障报修工单列表 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getBillsFaultInstances") + public TableDataInfo getBillsFaultInstances() { + DmsBillsFaultInstanceBo queryBillsFaultInstance = new DmsBillsFaultInstanceBo(); + List billsFaultInstances = dmsBillsFaultInstanceService.queryList(queryBillsFaultInstance); + return TableDataInfo.build(billsFaultInstances); + } + + /** + * 获取故障报修工单详细信息,修改工单使用 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getBillsFaultInstanceByRepairInstanceId/{repairInstanceId}") + public R getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) { + //fixme:图片地址完整路径(IP) + DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId); + return R.ok(billsFaultInstance); + } + + + /** + * 修改工单提交 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "故障报修工单", businessType = BusinessType.UPDATE) + @PostMapping("/updateFaultInstanceActivity") + public R updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, + @RequestParam(value = "files") List files) { + List fileUrls = handleFileUploads(files); + dmsFaultInstanceActivity.setFileUrls(fileUrls); + return R.ok(dmsBillsFaultInstanceService.updateDmsFaultInstanceActivity(dmsFaultInstanceActivity)); + } + + /** + * 获取故障报修工单详细信息,维修使用 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getBillsFaultInstance4Repair/{repairInstanceId}") + public R getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) { + DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId); + return R.ok(billsFaultInstance); + } + + + /** + * 故障报修扫描设备验证 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/scanDevice4Repair") + public R scanDevice4Repair(@Validated DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) { + //FIXME:返回从void改为long + return R.ok(dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan)); + } + + + /** + * 开始维修 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "故障报修工单", businessType = BusinessType.START) + @PostMapping("/startRepair") + public R startRepair(@RequestBody DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + return R.ok(dmsBillsFaultInstanceService.startRepair(dmsFaultInstanceActivity)); + } + + /** + * 完成维修 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "故障报修工单", businessType = BusinessType.COMPLETE) + @PostMapping("/completeRepair") + public R completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity, + @RequestParam(value = "files") List files) throws JsonProcessingException { + dmsFaultInstanceActivity.setRepairConfirm("2"); + dmsFaultInstanceActivity.setConfirmTime(new Date()); + String parts1 = dmsFaultInstanceActivity.getParts1(); + ObjectMapper objectMapper = new ObjectMapper(); + List parts2 = objectMapper.readValue(parts1, new TypeReference>() {}); + dmsFaultInstanceActivity.setParts(parts2); + + List fileUrls = handleFileUploads(files); + dmsFaultInstanceActivity.setFileUrls(fileUrls); + //FIXME:关于工作流相关的本页代码以及调用方法都需测试完善修改 + return R.ok(dmsBillsFaultInstanceService.completeRepair(dmsFaultInstanceActivity)); + } + + + /** + * 获取最新一条待巡检或巡检中的巡检或点检工单(检查类型inspectType(1巡检,2点检)) + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getNewestInspectInstance") + public R getNewestInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance) { + DmsBillsInspectInstanceVo newestInspectInstance = dmsBillsInspectInstanceService.getNewestBillsInspectInstance(dmsBillsInspectInstance); + return R.ok(newestInspectInstance); + } + + + /** + * 扫描设备编号或者输入设备编号进行巡检验证 + * */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/scanInspectInstanceDetail") + public R scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) { + return R.ok(dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScan)); + } + + /** + * 点巡检工单 + */ +// @RequiresPermissions("qms:checkresultdetail:add") // @Log(title = "点巡检工单明细", businessType = BusinessType.INSERT) // @PostMapping("/saveInspectInstanceDetail") -// public R saveInspectInstanceDetail(@RequestBody DmsInspectInstanceDetail dmsInspectInstanceDetail) { +// public R saveInspectInstanceDetail(@RequestBody DmsInspectInstanceDetailBo dmsInspectInstanceDetail) { // return R.ok(dmsBillsInspectInstanceService.updateDmsInspectInstanceDetail(dmsInspectInstanceDetail)); // // } -// -// -// -// -// /** -// * 获取最新一条待保养或保养中的保养工单 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getNewestMaintInstance") -// public R getNewestMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance) { -// DmsBillsMaintInstance newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance); -// return R.ok(newestMaintInstance); -// } -// -// -// /** -// * 开始保养 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "保养工单", businessType = BusinessType.START) -// @PostMapping("/startMaint") -// public R startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { -// return R.ok(dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail)); -// } -// -// /** -// * 完成保养 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "保养工单", businessType = BusinessType.COMPLETE) -// @PostMapping("/completeMaint") -// public R completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { -// return R.ok(dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail)); -// } -// -// -// /** -// * 获取最新一条待润滑或润滑中的润滑工单 -// * -// * @return -// */ -// // @RequiresPermissions("qms:checkrule:list") -// @GetMapping("/getNewestLubeInstance") -// public R getNewestLubeInstance(DmsBillsLubeInstance dmsBillsLubeInstance) { -// DmsBillsLubeInstance newestLubeInstance = dmsBillsLubeInstanceService.getNewestBillsLubeInstance(dmsBillsLubeInstance); -// return R.ok(newestLubeInstance); -// } -// -// /** -// * 开始润滑 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "润滑工单", businessType = BusinessType.START) -// @PostMapping("/startLube") -// public R startLube(@RequestBody DmsBillsLubeDetail dmsBillsLubeDetail) { -// -// return R.ok(dmsBillsLubeInstanceService.startLube(dmsBillsLubeDetail)); -// } -// -// /** -// * 完成润滑 -// */ -//// @RequiresPermissions("qms:checkresultdetail:add") -// @Log(title = "润滑工单", businessType = BusinessType.COMPLETE) -// @PostMapping("/completeLube") -// public R completeLube(@RequestBody DmsBillsLubeDetail dmsBillsLubeDetail) { -// return R.ok(dmsBillsLubeInstanceService.completeLube(dmsBillsLubeDetail)); -// } -// -// -//} + + + + /** + * 获取最新一条待保养或保养中的保养工单 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getNewestMaintInstance") + public R getNewestMaintInstance(DmsBillsMaintInstance dmsBillsMaintInstance) { + DmsBillsMaintInstance newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance); + return R.ok(newestMaintInstance); + } + + + /** + * 开始保养 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "保养工单", businessType = BusinessType.START) + @PostMapping("/startMaint") + public R startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { + return R.ok(dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail)); + } + + /** + * 完成保养 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "保养工单", businessType = BusinessType.COMPLETE) + @PostMapping("/completeMaint") + public R completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) { + return R.ok(dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail)); + } + + + /** + * 获取最新一条待润滑或润滑中的润滑工单 + * + * @return + */ + // @RequiresPermissions("qms:checkrule:list") + @GetMapping("/getNewestLubeInstance") + public R getNewestLubeInstance(DmsBillsLubeInstanceBo dmsBillsLubeInstance) { + DmsBillsLubeInstanceVo newestLubeInstance = dmsBillsLubeInstanceService.getNewestBillsLubeInstance(dmsBillsLubeInstance); + return R.ok(newestLubeInstance); + } + + /** + * 开始润滑 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "润滑工单", businessType = BusinessType.START) + @PostMapping("/startLube") + public R startLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) { + + return R.ok(dmsBillsLubeInstanceService.startLube(dmsBillsLubeDetail)); + } + + /** + * 完成润滑 + */ +// @RequiresPermissions("qms:checkresultdetail:add") + @Log(title = "润滑工单", businessType = BusinessType.COMPLETE) + @PostMapping("/completeLube") + 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/DmsBaseMachineInfo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java index 90e8f20..4001650 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBaseMachineInfo.java @@ -136,4 +136,6 @@ public class DmsBaseMachineInfo extends TenantEntity { */ @TableField(exist = false) private String deviceModeName; + + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsFaultInstance.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsFaultInstance.java index d3bcde6..1c3d5bd 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsFaultInstance.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsBillsFaultInstance.java @@ -1,6 +1,8 @@ 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; import lombok.EqualsAndHashCode; @@ -27,6 +29,7 @@ public class DmsBillsFaultInstance extends TenantEntity { /** * 主键标识;此表不会长期保存 */ + @TableId(value = "repair_instance_id") private Long repairInstanceId; /** @@ -92,6 +95,7 @@ public class DmsBillsFaultInstance extends TenantEntity { /** * 审批状态 */ + @TableField("approveStatus") // 显式指定数据库列名approveStatus private String approveStatus; /** @@ -138,8 +142,13 @@ public class DmsBillsFaultInstance extends TenantEntity { @TableField(exist = false) private String repairType;//JOIN + + /** + * 外协单位,关联dms_base_outsourcing_info的outsourcing_id;最后一步自动复制第1步的,可在第2步修改,修改保存后为第2步的记录,第1步为要求的,第2步为实际的 + */ @TableField(exist = false) private Long outsourcingId;//JOIN + @TableField(exist = false) private String processHandleResolution;//JOIN @TableField(exist = false) @@ -165,4 +174,28 @@ public class DmsBillsFaultInstance extends TenantEntity { @TableField(exist = false) private List parts;//JOIN + /** + * 故障文件地址,一般是图片 + */ + @TableField(exist = false) + private String filePath;//join + + /** + * 零部件名称 + */ + @TableField(exist = false) + private String partName;//JOIN + + /** + * 零部件规格 + */ + @TableField(exist = false) + private String partSpecifications;//JOIN + + /** + * 数量 + */ + @TableField(exist = false) + private Long amount;//JOIN + } 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 c6c38ae..b97a5ce 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,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; @@ -92,5 +93,16 @@ public class DmsBillsInspectInstance extends TenantEntity { */ private String status; + /** + * 线路名称 + */ + @TableField(exist = false) + private String routeName; + + /** + * 执行人员 + */ + @TableField(exist = false) + private String performer; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsFaultComponentsParts.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsFaultComponentsParts.java index f840c04..f676a60 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsFaultComponentsParts.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsFaultComponentsParts.java @@ -46,5 +46,6 @@ public class DmsFaultComponentsParts extends TenantEntity { */ private Long amount; + private Long faultId;//表结构不存在 } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInspectInstanceDetailProject.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInspectInstanceDetailProject.java index 9f74454..4acf56b 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInspectInstanceDetailProject.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsInspectInstanceDetailProject.java @@ -83,4 +83,6 @@ public class DmsInspectInstanceDetailProject extends TenantEntity { private String inspectProjectDesc; + private Long deviceId;//表结构不存在,在其他地方叫machineId + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsMaintInstanceActivity.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsMaintInstanceActivity.java index 8b63753..d9071ad 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsMaintInstanceActivity.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsMaintInstanceActivity.java @@ -26,7 +26,7 @@ public class DmsMaintInstanceActivity extends BaseEntity { /** * 保养工单实例节点ID */ - @TableId(value = "instance_activity_id", type = IdType.AUTO) + @TableId(value = "instance_activity_id") private Long instanceActivityId; /** diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsPlanInspect.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsPlanInspect.java index 9f29017..9cb6636 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsPlanInspect.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/DmsPlanInspect.java @@ -28,8 +28,8 @@ public class DmsPlanInspect extends TenantEntity { /** * 主键标识 */ -// @TableId(value = "plan_inspect_id", type = IdType.AUTO) - @TableId(value = "plan_inspect_id") + @TableId(value = "plan_inspect_id", type = IdType.AUTO) +// @TableId(value = "plan_inspect_id") private Long planInspectId; /** 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 4850a02..1c66637 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 @@ -9,6 +9,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; /** @@ -113,5 +115,11 @@ public class DmsBillsFaultInstanceBo extends BaseEntity { */ private String remark; + private List fileUrls; + + /** + * 外协单位,关联dms_base_outsourcing_info的outsourcing_id;最后一步自动复制第1步的,可在第2步修改,修改保存后为第2步的记录,第1步为要求的,第2步为实际的 + */ + private Long outsourcingId; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceScanBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceScanBo.java new file mode 100644 index 0000000..4a388c4 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsFaultInstanceScanBo.java @@ -0,0 +1,18 @@ +package org.dromara.dms.domain.bo; + + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class DmsBillsFaultInstanceScanBo { + + @NotNull(message="故障报修工单ID必须输入") + private Long repairInstanceId; + + /** 设备编号 */ + @NotBlank(message="设备编号必须输入") + private String deviceCode; + +} 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 c002a62..edbaf14 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 @@ -9,7 +9,10 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.dms.domain.DmsInspectInstanceDetail; /** * 点巡检工单业务对象 dms_bills_inspect_instance @@ -87,5 +90,10 @@ public class DmsBillsInspectInstanceBo extends BaseEntity { */ private String status; + /**多个状态时使用,以,隔开*/ + private String inspectStatusStr;//表结构不存在 + + private List dmsInspectInstanceDetailList;//表结构不存在 + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceScanBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceScanBo.java new file mode 100644 index 0000000..557d0a2 --- /dev/null +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsBillsInspectInstanceScanBo.java @@ -0,0 +1,17 @@ +package org.dromara.dms.domain.bo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class DmsBillsInspectInstanceScanBo { + + @NotNull(message="点巡检工单ID必须输入") + private Long inspectInstanceId; + + /** 设备编号 */ + @NotBlank(message="设备编号必须输入") + private String deviceCode; + +} diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsFaultInstanceActivityBo.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsFaultInstanceActivityBo.java index 028f390..139f00e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsFaultInstanceActivityBo.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/domain/bo/DmsFaultInstanceActivityBo.java @@ -1,5 +1,6 @@ package org.dromara.dms.domain.bo; +import org.dromara.dms.domain.DmsFaultComponentsParts; import org.dromara.dms.domain.DmsFaultInstanceActivity; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -9,6 +10,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; +import java.util.List; + import com.fasterxml.jackson.annotation.JsonFormat; /** @@ -157,5 +160,16 @@ public class DmsFaultInstanceActivityBo extends BaseEntity { */ private String componentsPartsId; + private List fileUrls;//表结构不存在 + + /** + * 报修来源类型(1检修 2点检 3巡检 9其他) + */ + private String faultSourceType;//表结构不存在 + + + private String parts1;//表结构不存在 + + private List parts;//表结构不存在 } 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 05ee563..30603e4 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,6 +2,7 @@ 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; @@ -144,6 +145,10 @@ public class DmsBillsFaultInstanceVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 故障文件地址,一般是图片 + */ + private String filePath;//join private String machineCode;//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 a7b6e39..5ac8042 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,6 +1,8 @@ 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; @@ -9,11 +11,12 @@ 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.dms.domain.DmsInspectInstanceDetail; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -110,4 +113,18 @@ public class DmsBillsInspectInstanceVo implements Serializable { private String status; + /** + * 线路名称 + */ + private String routeName; + + /** + * 执行人员 + */ + private String performer; + + private List dmsInspectInstanceDetailList; + + private String planInspectCode; + } 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 9d93d86..e478871 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 @@ -9,11 +9,12 @@ 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.dms.domain.DmsInspectInstanceDetailProject; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -104,5 +105,6 @@ public class DmsInspectInstanceDetailVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + private List dmsInspectInstanceDetailProjectList;//表结构不存在 } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteInspectInstanceServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteInspectInstanceServiceImpl.java index 5b0607a..21b2504 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteInspectInstanceServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/dubbo/RemoteInspectInstanceServiceImpl.java @@ -41,65 +41,48 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe public R insertInspectInstance(String planInspectCode, String tenantId, Long userId){ // 使用 replaceAll 方法将双引号替换为空字符串 String result = planInspectCode.replaceAll("\"", ""); - + // 根据检查计划代码查询检查计划信息 DmsPlanInspect dmsPlanInspect = dmsPlanInspectMapper.selectPlanInspectJoinJobByInspectCode(result); + // 获取时间限制 Long timeLimit = dmsPlanInspect.getTimeLimit(); if (timeLimit != null) { + // 计算天数和小时数 Long days = timeLimit / (24 * 60 * 60l); Long hours = timeLimit % (24 * 60 * 60l); -// System.out.println(days); -// System.out.println(hours); + // 设置时间限制的天数和小时数 dmsPlanInspect.setTimeLimitDays(days); dmsPlanInspect.setTimeLimitHours(hours / (60 * 60l)); } + // 创建新的检查实例对象 DmsBillsInspectInstance dmsBillsInspectInstance = new DmsBillsInspectInstance(); - // DmsRepairInstance dmsRepairInstance = dmsRepairInstanceService.selectDmsRepairInstanceByRepairInstanceId(2l); + // 设置检查实例的相关属性 dmsBillsInspectInstance.setPlanInspectId(dmsPlanInspect.getPlanInspectId()); // dmsBillsInspectInstance.setWfProcessId(105l); dmsBillsInspectInstance.setInspectType(dmsPlanInspect.getInspectType());//检查类型(1巡检 2点检) dmsBillsInspectInstance.setPlanBeginTime(dmsPlanInspect.getPlanTime()); dmsBillsInspectInstance.setPlanEndTime(new Date(dmsPlanInspect.getPlanTime().getTime()+dmsPlanInspect.getTimeLimit()*1000l)); dmsBillsInspectInstance.setInspectRouteId(dmsPlanInspect.getInspectRouteId()); -// dmsBillsInspectInstance.setDeviceAmount(dmsPlanInspect.getDeviceAmount());//设备数量 -// dmsBillsInspectInstance.setPerformer(dmsPlanInspect.getPerformer());//执行人 - - //写死105,也可根据传入对象的wfprocessid作为传参。 -/* - Long aLong = dmsRepairInstanceMapper.selectWfProcessActivityId(105l); - if (dmsBillsInspectInstance.getInspectType().equals("1")) { - dmsBillsInspectInstance.setWfProcessId(105l); - } else if (dmsBillsInspectInstance.getInspectType().equals("2")) { - dmsBillsInspectInstance.setWfProcessId(104l); - } -*/ +// dmsBillsInspectInstance.setDeviceAmount(dmsPlanInspect.getDeviceAmount());//设备数量FIXME:没有这个字段 + dmsBillsInspectInstance.setPerformer(dmsPlanInspect.getPerformer());//执行人 // dmsBillsInspectInstance.setIsFlag("1"); dmsBillsInspectInstance.setInspectStatus(DmsConstants.DMS_BILLS_INSPECT_INSTANCE_INSPECT_STATUS_TO_INSPECT);//待巡检 dmsBillsInspectInstance.setCreateBy(userId); -// dmsBillsInspectInstance.setCreateTime(new Date()); dmsBillsInspectInstance.setTenantId(tenantId); + // 插入检查实例并返回影响的行数 int i = dmsBillsInspectInstanceMapper.insert(dmsBillsInspectInstance); // List dmsBillsInspectInstances = dmsBillsInspectInstanceMapper.selectDmsBillsInspectInstanceList(dmsBillsInspectInstance); - //新建第一步工单实例节点 -/* - DmsBillsInspectInstanceActivity dmsBillsInspectInstanceActivity = new DmsBillsInspectInstanceActivity(); - dmsBillsInspectInstanceActivity.setInspectInstanceId(dmsBillsInspectInstance.getInspectInstanceId()); - dmsBillsInspectInstanceActivity.setInspectRouteId(dmsBillsInspectInstance.getInspectRouteId()); - dmsBillsInspectInstanceActivity.setDeviceAmount(dmsBillsInspectInstance.getDeviceAmount()); - dmsBillsInspectInstanceActivity.setPerformer(dmsBillsInspectInstance.getPerformer()); - dmsBillsInspectInstanceActivity.setProcessStepOrder(1l); - dmsBillsInspectInstanceActivity.setProcessActivityId(aLong); - dmsBillsInspectInstanceActivityMapper.insertDmsBillsInspectInstanceActivity(dmsBillsInspectInstanceActivity); -*/ //新建点巡检工单明细 /* DmsInspectRouteDetail queryInspectRouteDetail = new DmsInspectRouteDetail(); queryInspectRouteDetail.setInspectRouteId(dmsBillsInspectInstance.getInspectRouteId());*/ + // 查询检查路线明细 MPJLambdaWrapper lqw = JoinWrappers.lambda(DmsInspectRouteDetail.class) .eq(DmsInspectRouteDetail::getInspectRouteId, dmsBillsInspectInstance.getInspectRouteId()); List dmsInspectRouteDetails = dmsInspectRouteDetailMapper.selectList(lqw); + // 遍历检查路线明细,生成检查实例明细 for(DmsInspectRouteDetail dmsInspectRouteDetail:dmsInspectRouteDetails){ DmsInspectInstanceDetail dmsInspectInstanceDetail = new DmsInspectInstanceDetail(); Long deviceId = dmsInspectRouteDetail.getMachineId(); @@ -109,18 +92,17 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe dmsInspectInstanceDetail.setInstanceDetailStatus("1");//(1待巡检 2巡检中 3已完成) dmsInspectInstanceDetail.setInspectStandard(dmsInspectRouteDetail.getInspectStandard()); dmsInspectInstanceDetail.setInspectStatus("0");//FIXME:为什么设置为异常?设备状态(1正常 0异常) - -// dmsInspectInstanceDetailMapper.insertDmsInspectInstanceDetail(dmsInspectInstanceDetail); - dmsInspectInstanceDetail.setTenantId(tenantId); dmsInspectInstanceDetail.setCreateBy(userId); // dmsInspectInstanceDetail.setCreateTime(new Date()); dmsInspectInstanceDetailMapper.insert(dmsInspectInstanceDetail); + + // 查询项目ID Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(dmsInspectRouteDetail.getInspectStandard()); -// DmsInspectProjectDevice queryInspectProjectDevice = new DmsInspectProjectDevice(); -// queryInspectProjectDevice.setTargetType("2");//FIXME:关联类型(1设备类型) -// queryInspectProjectDevice.setTargetId(deviceId); + DmsInspectProjectDevice queryInspectProjectDevice = new DmsInspectProjectDevice(); + queryInspectProjectDevice.setTargetType("2");//FIXME:关联类型(1设备类型) + queryInspectProjectDevice.setTargetId(deviceId); MPJLambdaWrapper DmsInspectProjectDeviceLQW = JoinWrappers.lambda(DmsInspectProjectDevice.class) .eq(DmsInspectProjectDevice::getTargetType, "2")//FIXME:关联类型(1设备类型) .eq(DmsInspectProjectDevice::getTargetId, deviceId); @@ -131,16 +113,15 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe DmsInspectInstanceDetailProject dmsInspectInstanceDetailProject = new DmsInspectInstanceDetailProject(); dmsInspectInstanceDetailProject.setInstanceDetailId(dmsInspectInstanceDetail.getInstanceDetailId()); dmsInspectInstanceDetailProject.setInspectProjectId(projectId); -// dmsInspectInstanceDetailProjectMapper.insertDmsInspectInstanceDetailProject(dmsInspectInstanceDetailProject); dmsInspectInstanceDetailProject.setTenantId(tenantId); dmsInspectInstanceDetailProject.setCreateBy(userId); -// dmsInspectInstanceDetailProject.setCreateTime(new Date()); dmsInspectInstanceDetailProjectMapper.insert(dmsInspectInstanceDetailProject); // } } + // 返回成功结果和影响的行数 return R.ok(i); } 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 29e1623..99e34b8 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 @@ -1,9 +1,12 @@ 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.vo.DmsBaseMachineInfoVo; +import java.util.List; + /** * 设备信息Mapper接口 * @@ -12,4 +15,6 @@ import org.dromara.dms.domain.vo.DmsBaseMachineInfoVo; */ public interface DmsBaseMachineInfoMapper extends BaseMapperPlus { + + List likeDeviceName(@Param("deviceName") String deviceName); } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsFaultInstanceMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsFaultInstanceMapper.java index 19ee43c..ac9526a 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsFaultInstanceMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsBillsFaultInstanceMapper.java @@ -36,7 +36,7 @@ public interface DmsBillsFaultInstanceMapper extends BaseMapperPlus getDmsPartsList(@Param("repairInstanceId") Long repairInstanceId); + } 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 aa82a8d..12ab70e 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 @@ -27,4 +27,15 @@ public interface DmsBillsInspectInstanceMapper extends BaseMapperPlus selectInspection(); + + + /** + * 查询最新一条巡检工单列表 + * + * @param dmsBillsInspectInstance 巡检工单 + * @return 巡检工单 + */ + public DmsBillsInspectInstanceVo selectNewestDmsBillsInspectInstance(DmsBillsInspectInstance dmsBillsInspectInstance); + + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsFaultInstanceActivityMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsFaultInstanceActivityMapper.java index cc013c9..c98362b 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsFaultInstanceActivityMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsFaultInstanceActivityMapper.java @@ -2,6 +2,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.DmsFaultComponentsParts; import org.dromara.dms.domain.DmsFaultInstanceActivity; import org.dromara.dms.domain.vo.DmsFaultComponentsPartsVo; import org.dromara.dms.domain.vo.DmsFaultInstanceActivityVo; @@ -22,4 +23,8 @@ public interface DmsFaultInstanceActivityMapper extends BaseMapperPlus parts); + } 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 0f590d6..eb8d9d1 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 @@ -5,6 +5,8 @@ import org.dromara.dms.domain.DmsInspectInstanceDetail; import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 点巡检工单明细Mapper接口 * @@ -24,4 +26,14 @@ public interface DmsInspectInstanceDetailMapper extends BaseMapperPlus selectDmsInspectInstanceDetailJoinList(DmsInspectInstanceDetail dmsInspectInstanceDetail); + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInstanceFileMapper.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInstanceFileMapper.java index 7ba75af..534821e 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInstanceFileMapper.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/mapper/DmsInstanceFileMapper.java @@ -4,6 +4,8 @@ import org.dromara.dms.domain.DmsInstanceFile; import org.dromara.dms.domain.vo.DmsInstanceFileVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 维修工单文件Mapper接口 * @@ -12,4 +14,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface DmsInstanceFileMapper extends BaseMapperPlus { + /** + * 批量新增工单文件;手工创建,从故障报修开始 + * + * @param dmsInstanceFileList 工单文件;手工创建,从故障报修开始列表 + * @return 结果 + */ + public int batchDmsInstanceFile(List dmsInstanceFileList); + } 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 6495249..a2b773f 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 @@ -41,7 +41,17 @@ public interface IDmsBaseMachineInfoService { */ List queryList(DmsBaseMachineInfoBo bo); -/* *//** + /** + * 查询设备台账信息 + * + * @param + * @return 设备台账信息 + */ +// public DmsBaseMachineInfoVo selectDmsBaseDeviceLedgerByDeviceCode(String deviceCode); + + List likeDeviceName(String deviceName); + + /* *//** * 新增设备信息 * * @param bo 设备信息 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 9495849..b0beec4 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 @@ -2,8 +2,11 @@ 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.DmsBillsFaultInstance; import org.dromara.dms.domain.DmsFaultInstanceActivity; 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.vo.DmsBillsFaultInstanceVo; import java.util.Collection; @@ -69,4 +72,44 @@ public interface IDmsBillsFaultInstanceService { DmsFaultInstanceActivity selectFaults(Long repairInstanceId); + + /** + * 查询检修工单 + * + * @param repairInstanceId 检修工单主键 + * @return 检修工单 + */ + public DmsBillsFaultInstanceVo selectDmsBillsFaultInstanceByRepairInstanceId(Long repairInstanceId); + + /** + * 修改报修工单实例节点 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + public int updateDmsFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity); + + /** + * 扫描设备编码验证,验证通过后进行维修 + * @param dmsBillsFaultInstanceScan + */ + public Long scanDevice4Repair(DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan); + + /** + * 开始维修 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + public int startRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity); + + /** + * 完成维修 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity); + + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsInspectInstanceService.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsInspectInstanceService.java index 920951f..27db0d3 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsInspectInstanceService.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/IDmsBillsInspectInstanceService.java @@ -1,10 +1,14 @@ package org.dromara.dms.service; import org.dromara.dms.domain.DmsBillsInspectInstance; +import org.dromara.dms.domain.DmsInspectInstanceDetail; +import org.dromara.dms.domain.bo.DmsBillsInspectInstanceScanBo; +import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo; import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo; import org.dromara.dms.domain.bo.DmsBillsInspectInstanceBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo; import java.util.Collection; import java.util.List; @@ -74,4 +78,29 @@ public interface IDmsBillsInspectInstanceService { * @return 如果更新成功返回true,否则返回false */ public Boolean updateWfDefinitionIdById(Long inspectInstanceId, Long wfDefinitionId); + + /** + * 更新点巡检工单明细 + * + * @param dmsInspectInstanceDetail 点巡检工单明细 + * @return 结果 + */ +// int updateDmsInspectInstanceDetail(DmsInspectInstanceDetailBo dmsInspectInstanceDetail); + + + /** + * 获取最新一条未完成的巡检工单 + * + * @param dmsBillsInspectInstance + * @return + */ + public DmsBillsInspectInstanceVo getNewestBillsInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance); + + /** + * 扫描设备验证并获取巡检项目信息 + * @param dmsBillsInspectInstanceScan + * @return + */ + public DmsInspectInstanceDetailVo scanInspectInstanceDetail(DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan); + } 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 ff64fb9..02736a3 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,6 +4,7 @@ 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; @@ -100,6 +101,27 @@ public class DmsBaseMachineInfoServiceImpl implements IDmsBaseMachineInfoService return lqw; } + /** + * 查询设备台账信息 + * + * @param deviceCode 设备Code + * @return 设备台账信息 + */ +// @Override +// public DmsBaseMachineInfoVo selectDmsBaseDeviceLedgerByDeviceCode(String deviceCode) { +// DmsBaseMachineInfoVo dmsBaseDeviceLedger = baseMapper.selectDmsBaseDeviceLedgerByDeviceCode(deviceCode); +// if (dmsBaseDeviceLedger == null) { +// throw new ServiceException("无此设备"); +// } +// return dmsBaseDeviceLedger; +// } + + @Override + public List likeDeviceName(String deviceName) { + List list = baseMapper.likeDeviceName(deviceName); + return list; + } + /* *//** * 新增设备信息 * diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseTransferInfoServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseTransferInfoServiceImpl.java index 86c7f51..fa71d9d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseTransferInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBaseTransferInfoServiceImpl.java @@ -150,10 +150,10 @@ public class DmsBaseTransferInfoServiceImpl implements IDmsBaseTransferInfoServi throw new ServiceException("新位置不能与原位置相同"); } - // 2. 校验转移前必须有安装位置 + // 2. 校验转移前必须有位置 //设备安装时会赋值给设备信息表的设备位置;新增或修改转移信息时,前端会将设备信息的设备位置赋值给转移信息的旧位置(自动赋值,不可编辑) if (StringUtils.isBlank(entity.getDevicePosition())) { - throw new ServiceException("转移前必须有安装位置"); + throw new ServiceException("转移前必须有位置(可先安装)"); } // 3. 校验转移时间不能小于之前记录的安装时间和转移时间 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 44a3bf7..25ca667 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 @@ -3,25 +3,42 @@ 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.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; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.uuid.Seq; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.dms.domain.DmsBillsFaultInstance; -import org.dromara.dms.domain.DmsFaultInstanceActivity; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.dms.domain.*; 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.vo.DmsBillsFaultInstanceVo; import org.dromara.dms.domain.vo.DmsFaultComponentsPartsVo; import org.dromara.dms.domain.vo.DmsFaultInstanceActivityVo; +import org.dromara.dms.domain.vo.DmsInstanceFileVo; import org.dromara.dms.mapper.DmsBillsFaultInstanceMapper; +import org.dromara.dms.mapper.DmsFaultInstanceActivityMapper; +import org.dromara.dms.mapper.DmsInstanceFileMapper; 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.RemoteStartProcess; +import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 故障报修工单Service业务层处理 @@ -37,6 +54,19 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS private final DmsBillsFaultInstanceMapper dmsBillsFaultInstanceMapper; + private final DmsInstanceFileMapper dmsInstanceFileMapper; + + private final IDmsInstanceFileService DmsInstanceFileService; + + @DubboReference + private final RemoteWorkflowService remoteWorkflowService; + + private final DmsFaultInstanceActivityMapper dmsFaultInstanceActivityMapper; + + private final IDmsFaultInstanceActivityService dmsFaultInstanceActivityService; + + + /** * 查询故障报修工单 * @@ -78,6 +108,23 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(DmsBillsFaultInstance.class) .selectAll(DmsBillsFaultInstance.class) + + //关联查询设备信息 + .select(DmsBaseMachineInfo::getMachineName) + .select(DmsBaseMachineInfo::getMachineCode) + .select(DmsBaseMachineInfo::getMachineLocation) + .select(DmsBaseMachineInfo::getMachineSpec) + .leftJoin(DmsBaseMachineInfo.class, DmsBaseMachineInfo::getMachineId, DmsBaseShutReason::getMachineId) + + //关联查询零部件更换记录 + .select(DmsFaultComponentsParts::getPartName) + .select(DmsFaultComponentsParts::getPartSpecifications) + .select(DmsFaultComponentsParts::getAmount) + .leftJoin(DmsFaultComponentsParts.class, DmsFaultComponentsParts::getRepairInstanceId, DmsBillsFaultInstance::getRepairInstanceId) + + .select(DmsInstanceFile::getFilePath) + .leftJoin(DmsInstanceFile.class, DmsInstanceFile::getTargetId, DmsBillsFaultInstance::getRepairInstanceId) + .eq(bo.getRepairInstanceId() != null, DmsBillsFaultInstance::getRepairInstanceId, bo.getRepairInstanceId()) .eq(StringUtils.isNotBlank(bo.getBillsFaultCode()), DmsBillsFaultInstance::getBillsFaultCode, bo.getBillsFaultCode()) .eq(StringUtils.isNotBlank(bo.getInstanceType()), DmsBillsFaultInstance::getInstanceType, bo.getInstanceType()) @@ -106,13 +153,63 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS * @return 是否新增成功 */ @Override + @GlobalTransactional(rollbackFor = Exception.class) public Boolean insertByBo(DmsBillsFaultInstanceBo bo) { DmsBillsFaultInstance add = MapstructUtils.convert(bo, DmsBillsFaultInstance.class); validEntityBeforeSave(add); + // 获取当前日期时间 + Date curretnDate = new Date(); + add.setApplyTime(curretnDate); + add.setApplyUser(LoginHelper.getUsername()); + add.setBillsFaultCode(Seq.getId(Seq.dmsBillsFaultInstanceSeqType, Seq.dmsBillsFaultInstanceSeqCode)); + // 设置报修状态为待维修 + 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()); } + + // 创建故障实例活动对象 + DmsFaultInstanceActivity dmsFaultInstanceActivity = new DmsFaultInstanceActivity(); + // 设置维修实例ID + dmsFaultInstanceActivity.setRepairInstanceId(add.getRepairInstanceId()); + // 设置流程活动ID + dmsFaultInstanceActivity.setWfNodeId(remoteStartProcessReturn.getProcessInstanceId()); + // 设置故障类型 + dmsFaultInstanceActivity.setFaultType(add.getFaultType()); + // 设置故障描述 + dmsFaultInstanceActivity.setFaultDescription(add.getFaultDescription()); + // 设置设计操作 + dmsFaultInstanceActivity.setDesignOperations(add.getDesignOperations()); + // 设置设备ID + dmsFaultInstanceActivity.setMachineId(add.getMachineId()); + // 设置维修类型 + dmsFaultInstanceActivity.setRepairType(add.getRepairType()); + // 如果外部资源ID不为空,则设置外部资源ID + if (add.getOutsourcingId() != null) { + dmsFaultInstanceActivity.setOutsourcingId(add.getOutsourcingId()); + } + // 设置处理状态为待领取 + dmsFaultInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_TO_PICK); + // 设置流程步骤顺序 + dmsFaultInstanceActivity.setProcessStepOrder(1l); + // 插入故障实例活动记录 + dmsFaultInstanceActivityMapper.insert(dmsFaultInstanceActivity); + + //存储图片 + // 获取文件URL列表 + List fileUrls = add.getFileUrls(); + // 批量插入实例文件记录 + batchInsertInstanceFiles(fileUrls, dmsFaultInstanceActivity.getInstanceActivityId()); + + return flag; } @@ -123,8 +220,11 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(DmsBillsFaultInstanceBo bo) { DmsBillsFaultInstance update = MapstructUtils.convert(bo, DmsBillsFaultInstance.class); + + validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } @@ -161,4 +261,294 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS activity.setParts(parts); return activity; } + + /** + * 查询报修工单 + * + * @param repairInstanceId 报修工单主键 + * @return 报修工单 + */ + @Override + public DmsBillsFaultInstanceVo selectDmsBillsFaultInstanceByRepairInstanceId(Long repairInstanceId) { + // 根据repairInstanceId查询故障实例及其关联的设备和第一条活动记录 + DmsBillsFaultInstanceVo dmsBillsFaultInstance = dmsBillsFaultInstanceMapper.selectFaultInstanceJoinFirstAndDeviceById(repairInstanceId); + // 创建实例文件查询对象 + DmsInstanceFileBo queryInstanceFile = new DmsInstanceFileBo(); + // 设置目标类型为故障实例活动 + queryInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY); + // 设置目标ID为故障实例的活动ID + queryInstanceFile.setTargetId(dmsBillsFaultInstance.getInstanceActivityId()); + // 查询实例文件列表 + List dmsInstanceFiles = DmsInstanceFileService.queryList(queryInstanceFile); + + // 遍历实例文件列表FIXME + for (DmsInstanceFileVo dmsInstanceFile : dmsInstanceFiles){ + // 获取文件路径 + String filePath = dmsInstanceFile.getFilePath(); + // 如果文件路径不包含"7309" + if(!filePath.contains("7309")){ + // 如果文件路径包含"https",将其替换为"http" + if(filePath.contains("https")){ + filePath.replaceFirst("https","http"); + } + // 找到"/statics"的索引位置 + int index= filePath.indexOf("/statics"); + // 修改文件路径为新的地址 + filePath = "http://172.16.12.100:7309"+filePath.substring(index); + // 设置新的URL和文件路径 + dmsInstanceFile.setFilePath(filePath); + dmsInstanceFile.setFilePath(filePath); + }else{ + // 如果文件路径包含"7309",直接设置URL为文件路径 + dmsInstanceFile.setFilePath(dmsInstanceFile.getFilePath()); + } + } + List InstanceFiles = MapstructUtils.convert(dmsInstanceFiles, DmsInstanceFile.class); + // 将修改后的实例文件列表设置到故障实例中 + dmsBillsFaultInstance.setDmsInstanceFiles(InstanceFiles); + + // 返回故障实例对象 + return dmsBillsFaultInstance; + } + + + public void batchInsertInstanceFiles(List fileUrls, Long instanceActivityId) { + // 判断文件URL列表是否不为空且非空 + if (fileUrls != null && !fileUrls.isEmpty()) { + // 创建一个DmsInstanceFile对象的列表 + List dmsInstanceFiles = new ArrayList<>(); + // 遍历文件URL列表 + for (String fileUrl : fileUrls) { + // 创建一个新的DmsInstanceFile对象 + DmsInstanceFile dmsInstanceFile = new DmsInstanceFile(); + // 设置目标ID为实例活动ID + dmsInstanceFile.setTargetId(instanceActivityId); + // 设置目标类型为故障实例活动 + dmsInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY); + // 设置文件路径为当前URL + dmsInstanceFile.setFilePath(fileUrl); + // 将DmsInstanceFile对象添加到列表中 + dmsInstanceFiles.add(dmsInstanceFile); + } + // 批量插入DmsInstanceFile对象到数据库 + dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles); + } + } + + + /** + * 修改报修工单实例节点 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int updateDmsFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + // 获取文件URL列表 + List fileUrls = dmsFaultInstanceActivity.getFileUrls(); + // 获取活动ID + Long activityId = dmsFaultInstanceActivity.getInstanceActivityId(); + // 根据活动ID查询对应的维修实例ID + Long repairInstanceId = dmsFaultInstanceActivityMapper.selectRepairInstanceId(activityId); + // 创建新的DmsBillsFaultInstance对象 + DmsBillsFaultInstance dmsBillsFaultInstance = new DmsBillsFaultInstance(); + // 设置外包ID + dmsBillsFaultInstance.setOutsourcingId(dmsFaultInstanceActivity.getOutsourcingId()); + // 设置故障来源类型 + dmsBillsFaultInstance.setFaultSourceType(dmsFaultInstanceActivity.getFaultSourceType()); + // 设置故障类型 + dmsBillsFaultInstance.setFaultType(dmsFaultInstanceActivity.getFaultType()); + // 设置维修实例ID + dmsBillsFaultInstance.setRepairInstanceId(repairInstanceId); + // 根据ID更新DmsBillsFaultInstance记录 + int i = dmsBillsFaultInstanceMapper.updateById(dmsBillsFaultInstance); + // 根据目标ID删除DmsFaultInstanceActivity记录 + int rows = dmsFaultInstanceActivityMapper.deleteByTargetId(activityId); + // 批量插入实例文件 + batchInsertInstanceFiles(fileUrls,activityId); + + // 将dmsFaultInstanceActivity转换为DmsBillsFaultInstance对象 + DmsBillsFaultInstance update = MapstructUtils.convert(dmsFaultInstanceActivity, DmsBillsFaultInstance.class); + // 在保存之前验证实体 + validEntityBeforeSave(update); + // 根据ID更新记录并返回影响行数 + return baseMapper.updateById(update); + } + + /** + * 扫描设备编码验证,验证通过后进行维修 + * + * @param dmsBillsFaultInstanceScanVo + */ + @Override + public Long scanDevice4Repair(DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) { + Long count = dmsBillsFaultInstanceMapper.selectCountByRepairInstanceIdAndDeviceCode( + dmsBillsFaultInstanceScan.getRepairInstanceId(), dmsBillsFaultInstanceScan.getDeviceCode()); + if (count <= 0) { + throw new ServiceException("扫描验证失败"); + }else { + return count; + } + } + + /** + * 开始维修 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int startRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + // 根据维修实例ID查询故障实例信息 + DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper + .selectFaultInstanceJoinFirstById(dmsFaultInstanceActivity.getRepairInstanceId());//join 第一步activity + // 获取工单状态 + String dmsBillsStatus = dmsBillsFaultInstance.getBillsStatus(); + // 如果工单状态为已完成,抛出异常 + 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(); + + // 如果工单状态为待维修 + if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR)) {//待维修 + // 设置工单状态为维修中 + dmsBillsFaultInstance.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_REPAIRING); + // 设置实际开始时间 + dmsBillsFaultInstance.setRealBeginTime(currentDate); + // 更新故障实例信息 + dmsBillsFaultInstanceMapper.updateById(dmsBillsFaultInstance); + + // 设置维修实例ID + dmsFaultInstanceActivity.setRepairInstanceId(dmsBillsFaultInstance.getRepairInstanceId()); + // FIXME: 工作流相关代码(暂时注释掉) +// dmsFaultInstanceActivity.setProcessActivityId(WfConstants.WF_BILLS_FAULT_INSTANCE_PROCESS_ACTIVITY_SECOND_ID); + + // 设置机器ID + dmsFaultInstanceActivity.setMachineId(dmsBillsFaultInstance.getMachineId()); + // 设置处理状态为执行中 + dmsFaultInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_EXECUTING); + // 设置步骤顺序 + dmsFaultInstanceActivity.setProcessStepOrder(2L); + // 设置开始时间 + dmsFaultInstanceActivity.setStartTime(currentDate); + // 设置处理用户ID + dmsFaultInstanceActivity.setHandleUserId(LoginHelper.getUserId()); + // 设置处理人名称 + dmsFaultInstanceActivity.setHandleBy(userName); + // 设置处理时间 + dmsFaultInstanceActivity.setHandleTime(currentDate); + + // 插入新的故障实例活动记录 + Boolean b = dmsFaultInstanceActivityService.insertByBo(dmsFaultInstanceActivity); + + // 创建第一个实例活动对象并设置其属性 + DmsFaultInstanceActivityBo firstInstanceActivity = new DmsFaultInstanceActivityBo(); + firstInstanceActivity.setInstanceActivityId(dmsBillsFaultInstance.getInstanceActivityId()); + // 设置处理状态为已完成 + firstInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH); + // 设置结束时间 + firstInstanceActivity.setEndTime(currentDate); + // FIXME: 需重新梳理代码dmsFaultInstanceActivityService + // 更新第一个实例活动记录 + dmsFaultInstanceActivityService.updateByBo(firstInstanceActivity); + + } else {// 如果工单状态为维修中 + // 更新故障实例活动记录 + Boolean b = dmsFaultInstanceActivityService.updateByBo(dmsFaultInstanceActivity); + } + + // 返回结果1表示成功 + return 1; + } + + + /** + * 完成维修 + * + * @param dmsFaultInstanceActivity 报修工单实例节点 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity) { + // 批量插入实例的附件文件信息 + batchInsertInstanceAfterFiles(dmsFaultInstanceActivity.getFileUrls(),dmsFaultInstanceActivity.getInstanceActivityId()); + // 获取需要插入的备件列表 + List parts = dmsFaultInstanceActivity.getParts(); + // 如果备件列表不为空,则设置每个备件的故障ID并插入数据库 + if (!CollectionUtils.isEmpty(parts)){ + for (DmsFaultComponentsParts part : parts) { + part.setFaultId(dmsFaultInstanceActivity.getRepairInstanceId()); + } + dmsFaultInstanceActivityMapper.insertParts(parts); + } + // 根据维修实例ID查询对应的工单实例 + DmsBillsFaultInstanceVo dmsBillsFaultInstance = this. + queryById(dmsFaultInstanceActivity.getRepairInstanceId()); + + // 获取当前工单的状态 + String dmsBillsStatus = dmsBillsFaultInstance.getBillsStatus(); + // 如果状态为已完成,抛出异常提示已经维修完成 + if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH)) {//维修完成 + throw new ServiceException("已经维修完成"); + } + // 如果状态为待维修,抛出异常提示请先开始维修 + if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR)) {//待维修 + 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); + + // 返回更新操作影响的行数 + return i; + } + + public void batchInsertInstanceAfterFiles(List fileUrls, Long instanceActivityId) { + // 判断文件URL列表是否不为空且非空集合 + if (fileUrls != null && !fileUrls.isEmpty()) { + // 创建一个DmsInstanceFile对象的列表,用于存储文件信息 + List dmsInstanceFiles = new ArrayList<>(); + // 遍历文件URL列表 + for (String fileUrl : fileUrls) { + // 创建一个新的DmsInstanceFile对象 + DmsInstanceFile dmsInstanceFile = new DmsInstanceFile(); + // 设置目标ID为传入的实例活动ID + dmsInstanceFile.setTargetId(instanceActivityId); + // 设置目标类型为"2",表示关联类型为维修后 + dmsInstanceFile.setTargetType("2");//关联类型(1维修前,2维修后) + // 设置文件路径为当前遍历到的文件URL + dmsInstanceFile.setFilePath(fileUrl); + // 将DmsInstanceFile对象添加到列表中 + dmsInstanceFiles.add(dmsInstanceFile); + } + // 调用数据映射器批量插入文件信息 + dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles); + } + } + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceActivityServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceActivityServiceImpl.java index e184eb8..468f92b 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceActivityServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsInspectInstanceActivityServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.dms.service.impl; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,13 +10,24 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.dms.domain.DmsBillsInspectInstance; +import org.dromara.dms.domain.DmsBillsLubeInstance; +import org.dromara.dms.domain.bo.DmsBillsInspectInstanceBo; +import org.dromara.dms.domain.bo.DmsBillsLubeInstanceBo; +import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo; +import org.dromara.dms.domain.vo.DmsBillsLubeInstanceVo; +import org.dromara.dms.mapper.DmsBillsInspectInstanceMapper; +import org.dromara.dms.service.IDmsBillsInspectInstanceService; import org.springframework.stereotype.Service; import org.dromara.dms.domain.bo.DmsBillsInspectInstanceActivityBo; import org.dromara.dms.domain.vo.DmsBillsInspectInstanceActivityVo; import org.dromara.dms.domain.DmsBillsInspectInstanceActivity; import org.dromara.dms.mapper.DmsBillsInspectInstanceActivityMapper; import org.dromara.dms.service.IDmsBillsInspectInstanceActivityService; +import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; @@ -32,6 +44,8 @@ public class DmsBillsInspectInstanceActivityServiceImpl implements IDmsBillsInsp private final DmsBillsInspectInstanceActivityMapper baseMapper; + private final DmsBillsInspectInstanceMapper dmsBillsInspectInstanceMapper; + /** * 查询点巡检工单实例节点;此暂时不用 * @@ -101,9 +115,28 @@ public class DmsBillsInspectInstanceActivityServiceImpl implements IDmsBillsInsp * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public DmsBillsInspectInstanceActivityVo insertByBo(DmsBillsInspectInstanceActivityBo bo) { DmsBillsInspectInstanceActivity add = MapstructUtils.convert(bo, DmsBillsInspectInstanceActivity.class); validEntityBeforeSave(add); + // 获取当前登录用户信息 + Long userId = LoginHelper.getUserId(); + String username = LoginHelper.getUsername(); + add.setHandleTime(DateUtils.getNowDate());/**/ + add.setHandleUserId(userId); + add.setHandleBy(username); + + // 更新点巡检工单状态 + DmsBillsInspectInstanceVo dmsBillsInspectInstanceVo = dmsBillsInspectInstanceMapper.selectVoById(add.getInspectInstanceId()); + if (add.getProcessStepOrder() == 2L) {//如果是第二步就更新为巡检中 + dmsBillsInspectInstanceVo.setInspectStatus("2"); + }else if (add.getProcessStepOrder() == 3L) {//如果是第三步就更新为巡检结束 + dmsBillsInspectInstanceVo.setInspectStatus("3"); + dmsBillsInspectInstanceVo.setRealEndTime(new Date()); + } + DmsBillsInspectInstance updateInstance = MapstructUtils.convert(dmsBillsInspectInstanceVo, DmsBillsInspectInstance.class); + dmsBillsInspectInstanceMapper.updateById(updateInstance); + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setInstanceActivityId(add.getInstanceActivityId()); 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 19719cf..4a5ce63 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 @@ -4,23 +4,30 @@ 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.constant.DmsConstants; import org.dromara.common.core.exception.ServiceException; 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.DmsBaseInspectRoute; -import org.dromara.dms.domain.DmsBillsInspectInstance; -import org.dromara.dms.domain.DmsPlanInspect; +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; +import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo; import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo; +import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo; import org.dromara.dms.mapper.DmsBillsInspectInstanceMapper; +import org.dromara.dms.mapper.DmsInspectInstanceDetailMapper; +import org.dromara.dms.mapper.DmsInspectInstanceDetailProjectMapper; +import org.dromara.dms.mapper.DmsPlanInspectMapper; import org.dromara.dms.service.IDmsBillsInspectInstanceService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.Collection; +import java.util.Date; import java.util.List; import java.util.Map; @@ -36,6 +43,15 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta private final DmsBillsInspectInstanceMapper baseMapper; + private final DmsBillsInspectInstanceMapper dmsBillsInspectInstanceMapper; + + private final DmsPlanInspectMapper dmsPlanInspectMapper; + + private final DmsInspectInstanceDetailMapper dmsInspectInstanceDetailMapper; + + private final DmsInspectInstanceDetailProjectMapper dmsInspectInstanceDetailPrjectMapper; + + /** * 查询点巡检工单 * @@ -87,8 +103,6 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta .leftJoin(DmsBaseInspectRoute.class, DmsBaseInspectRoute::getInspectRouteId, DmsBillsInspectInstance::getInspectRouteId) - - .eq(bo.getInspectInstanceId() != null, DmsBillsInspectInstance::getInspectInstanceId, bo.getInspectInstanceId()) .eq(bo.getPlanInspectId() != null, DmsBillsInspectInstance::getPlanInspectId, bo.getPlanInspectId()) .eq(bo.getWfDefinitionId() != null, DmsBillsInspectInstance::getWfDefinitionId, bo.getWfDefinitionId()) @@ -173,6 +187,160 @@ public class DmsBillsInspectInstanceServiceImpl implements IDmsBillsInspectInsta throw new ServiceException("记录不存在"); } entity.setWfDefinitionId(wfDefinitionId); + entity.setInspectStatus("1"); + entity.setRealBeginTime(new Date()); return baseMapper.updateById(entity) > 0; } + + /** + * 更新点巡检工单明细 + * + * @param dmsInspectInstanceDetail 点巡检工单明细 + * @return 结果 + */ + +// @Override +// @Transactional(rollbackFor = Exception.class) +// public int updateDmsInspectInstanceDetail(DmsInspectInstanceDetailBo dmsInspectInstanceDetail) { +// // 根据instanceDetailId查询记录检查信息 +// DmsRecordInspect dmsRecordInspect = dmsBillsInspectInstanceMapper.selectRecord(dmsInspectInstanceDetail.getInstanceDetailId()); +// +// // 根据inspectInstanceId批量查询记录检查信息 +// List recordInspect = dmsBillsInspectInstanceMapper.selectRecordByInstainceId(dmsRecordInspect.getInspectInstanceId()); +//// if (recordInspect!=null&&recordInspect.size()>0){ +//// // 如果有未完成的检查记录,设置状态为2 +//// dmsRecordInspect.setInspectStatus(2l); +//// }else { +//// // 如果所有检查记录都完成,设置状态为3 +//// dmsRecordInspect.setInspectStatus(3l); +//// } +// // 直接将状态设置为3,表示完成 +// dmsRecordInspect.setInspectStatus(3l); +// // 插入记录检查信息 +// int i1 = dmsBillsInspectInstanceMapper.insertRecord(dmsRecordInspect); +// // 查询未完成的检查实例数量 +// int count = dmsBillsInspectInstanceMapper.selectUnCompletedInstance(dmsRecordInspect.getInspectInstanceId()); +//// int count1 = dmsBillsInspectInstanceMapper.selectAllInstance(dmsRecordInspect.getInspectInstanceId()); +// // 创建新的检查实例对象 +// DmsBillsInspectInstanceBo dmsBillsInspectInstance = new DmsBillsInspectInstanceBo(); +// if (count==0||count==1){ +// // 如果没有未完成的检查实例,设置状态为3 +// dmsBillsInspectInstance.setInspectStatus("3"); +// }else{ +// // 如果有未完成的检查实例,设置状态为2 +// dmsBillsInspectInstance.setInspectStatus("2"); +// } +// // 设置检查实例ID +// dmsBillsInspectInstance.setInspectInstanceId(dmsInspectInstanceDetail.getInspectInstanceId()); +// // 设置实际结束时间 +// dmsBillsInspectInstance.setRealEndTime(new Date()); +// // 更新检查实例信息 +// dmsBillsInspectInstanceService.updateByBo(dmsBillsInspectInstance); +// // 获取当前登录用户的信息 +// String userName = LoginHelper.getLoginUser()==null ? LoginHelper.getUsername() :LoginHelper.getLoginUser().getNickname(); +// // 获取当前日期 +// Date currentDate = new Date(); +// // 设置更新时间和更新人 +// dmsInspectInstanceDetail.setUpdateTime(currentDate); +// dmsInspectInstanceDetail.setUpdateBy(Long.valueOf(userName)); +// +// // 处理检查实例详情的子项目 +// DmsInspectInstanceDetail returnInspectInstanceDetail = handleDmsInspectInstanceDetailProject(dmsInspectInstanceDetail); +// if (returnInspectInstanceDetail != null) { +// // 更新检查状态和实例详情状态 +// dmsInspectInstanceDetail.setInspectStatus(returnInspectInstanceDetail.getInspectStatus()); +// dmsInspectInstanceDetail.setInstanceDetailStatus(returnInspectInstanceDetail.getInstanceDetailStatus()); +// // 设置子项目列表 +// dmsInspectInstanceDetail.setDmsInspectInstanceDetailProjectList(returnInspectInstanceDetail.getDmsInspectInstanceDetailProjectList()); +// // 批量更新子项目信息 +// batchUpdateDmsInspectInstanceDetailProject(dmsInspectInstanceDetail); +// } +// +// // 返回更新结果 +// return dmsInspectInstanceDetailMapper.update(dmsInspectInstanceDetail); +// } + + + /** + * 获取最新一条未完成的巡检工单 + * + * @param dmsBillsInspectInstanceBo + * @return + */ + @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); + // 如果查询结果不为空 + if (newestBillsInspectInstance != null) { + // 创建巡检实例详情查询对象 + DmsInspectInstanceDetail queryInspectInstanceDetail = new DmsInspectInstanceDetail(); + // 设置巡检实例ID + queryInspectInstanceDetail.setInspectInstanceId(newestBillsInspectInstance.getInspectInstanceId()); + // 查询巡检实例详情列表 + List inspectInstanceDetails = dmsInspectInstanceDetailMapper.selectDmsInspectInstanceDetailJoinList(queryInspectInstanceDetail); + // 设置巡检实例详情列表到newestBillsInspectInstance对象中 + newestBillsInspectInstance.setDmsInspectInstanceDetailList(inspectInstanceDetails); + } + // 设置新的巡检编码为计划巡检编码 + newestBillsInspectInstance.setBillsInspectCode(newestBillsInspectInstance.getPlanInspectCode()); + // 返回最新的未完成巡检工单 + return newestBillsInspectInstance; + } + + + /** + * 扫描设备验证并获取巡检项目信息 + * + * @param dmsBillsInspectInstanceScan + * @return + */ + @Override + public DmsInspectInstanceDetailVo scanInspectInstanceDetail(DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) { + // 根据检查实例ID和设备编码查询检查实例详细信息 + DmsInspectInstanceDetailVo dmsInspectInstanceDetail = dmsInspectInstanceDetailMapper.selectDmsInspectInstanceDetailByUI(dmsBillsInspectInstanceScan.getInspectInstanceId(), + dmsBillsInspectInstanceScan.getDeviceCode()); + // 如果查询结果为空,抛出异常提示无此设备的检查工单 + if (dmsInspectInstanceDetail == null) { + throw new ServiceException("无此设备的检查工单"); + } + // 获取设备ID + Long deviceId = dmsInspectInstanceDetail.getMachineId(); + // 创建查询检查实例详细项目的参数对象 + DmsInspectInstanceDetailProject queryInspectInstanceDetailProject = new DmsInspectInstanceDetailProject(); + // 设置设备ID + queryInspectInstanceDetailProject.setDeviceId(deviceId); + // 根据标准ID查询项目ID + Long projectId = dmsInspectInstanceDetailPrjectMapper.selectProjectByStandardId(dmsInspectInstanceDetail.getInspectStandard()); + // 设置检查项目ID + queryInspectInstanceDetailProject.setInspectProjectId(projectId); + // 设置检查实例详情ID + queryInspectInstanceDetailProject.setInstanceDetailId(dmsInspectInstanceDetail.getInstanceDetailId()); + // 查询检查实例详细项目列表 + List dmsInspectInstanceDetailProjects = dmsInspectInstanceDetailPrjectMapper.selectDmsInspectInstanceDetailProjectJoinList(queryInspectInstanceDetailProject); + // 将查询结果设置到检查实例详情对象中 + dmsInspectInstanceDetail.setDmsInspectInstanceDetailProjectList(dmsInspectInstanceDetailProjects); + + // 更新检查实例的开始时间 + DmsBillsInspectInstanceBo dmsBillsInspectInstance = new DmsBillsInspectInstanceBo(); + // 设置检查实例ID + dmsBillsInspectInstance.setInspectInstanceId(dmsBillsInspectInstanceScan.getInspectInstanceId()); + // 设置实际开始时间为当前时间 + dmsBillsInspectInstance.setRealBeginTime(new Date()); +// dmsBillsInspectInstance.setInspectStatus("2"); + + // FIXME: 梳理流程,完善更新方法 +// int i = dmsBillsInspectInstanceMapper.updateDmsBillsInspectInstance(dmsBillsInspectInstance); + // 使用BO更新检查实例信息 + this.updateByBo(dmsBillsInspectInstance); + + // 返回检查实例详情对象 + return dmsInspectInstanceDetail; + + } + } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceActivityServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceActivityServiceImpl.java index 2a392b4..a4443e4 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceActivityServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsBillsLubeInstanceActivityServiceImpl.java @@ -10,9 +10,12 @@ 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.DmsBillsLubeInstance; import org.dromara.dms.domain.DmsBillsLubeInstanceActivity; import org.dromara.dms.domain.bo.DmsBillsLubeInstanceActivityBo; +import org.dromara.dms.domain.bo.DmsBillsLubeInstanceBo; import org.dromara.dms.domain.vo.DmsBillsLubeInstanceActivityVo; +import org.dromara.dms.domain.vo.DmsBillsLubeInstanceVo; import org.dromara.dms.mapper.DmsBillsLubeInstanceActivityMapper; import org.dromara.dms.mapper.DmsBillsLubeInstanceMapper; import org.dromara.dms.service.IDmsBillsLubeInstanceActivityService; @@ -21,10 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 润滑工单实例节点Service业务层处理 @@ -127,101 +127,16 @@ public class DmsBillsLubeInstanceActivityServiceImpl implements IDmsBillsLubeIns add.setHandleUserId(userId); add.setHandleBy(username); - -/* fixme:京源的工作流程 */ - // 如果当前步骤不是第一步 - if (add.getProcessStepOrder() != 1) { - // 如果是最后一步,执行结束流程 -/* if (add.getProcessStepOrder() == add.getWfLength()) { - // 设置结束信息 - add.setEndTime(DateUtils.getNowDate()); - add.setHandleUserId(userId); - add.setHandleBy(username); - add.setHandleTime(DateUtils.getNowDate()); - - // 查询该润滑实例的所有相关活动 - MPJLambdaWrapper wrapper = JoinWrappers.lambda(DmsBillsLubeInstanceActivity.class) - .selectAll(DmsBillsLubeInstanceActivity.class) - .eq(DmsBillsLubeInstanceActivity::getLubeInstanceId, add.getLubeInstanceId()); - - List activities = baseMapper.selectJoinList(DmsBillsLubeInstanceActivityVo.class, wrapper); - - // 插入新的润滑工单实例活动记录 - boolean flag = baseMapper.insert(add) > 0; - - // 更新所有相关活动的处理状态为"0" - for (DmsBillsLubeInstanceActivityVo activity : activities) { - DmsBillsLubeInstanceActivityBo updateBo = new DmsBillsLubeInstanceActivityBo(); - updateBo.setInstanceActivityId(activity.getInstanceActivityId()); - updateBo.setProcessHandleStatus("0"); - this.updateByBo(updateBo); - } - - // 更新润滑工单实例的状态和实际结束时间 - MPJLambdaWrapper instanceWrapper = JoinWrappers.lambda(DmsBillsLubeInstance.class) - .selectAll(DmsBillsLubeInstance.class) - .eq(DmsBillsLubeInstance::getLubeInstanceId, add.getLubeInstanceId()); - - DmsBillsLubeInstanceVo instance = dmsBillsLubeInstanceMapper.selectJoinOne(DmsBillsLubeInstanceVo.class, instanceWrapper); - - DmsBillsLubeInstanceBo updateInstance = new DmsBillsLubeInstanceBo(); - updateInstance.setLubeInstanceId(instance.getLubeInstanceId()); - updateInstance.setLubeStatus("2"); // 完成状态 - updateInstance.setRealEndTime(DateUtils.getNowDate()); - - dmsBillsLubeInstanceMapper.updateById(MapstructUtils.convert(updateInstance, DmsBillsLubeInstance.class)); - - // 创建润滑记录相关代码暂时注释 - DmsRecordLube dmsRecordLube = new DmsRecordLube(); - dmsRecordLube.setPlanLubeId(instance.getPlanLubeId()); - dmsRecordLube.setBillsLubeCode(instance.getBillsLubeCode()); - dmsRecordLube.setLubeGroup(add.getLubeGroup()); - dmsRecordLube.setLubeLevel(add.getLubeLevel()); - dmsRecordLube.setLubeSupervisor(add.getLubeSupervisor()); - dmsRecordLube.setLubeStatus(instance.getLubeStatus()); - dmsRecordLube.setPlanBeginTime(instance.getPlanBeginTime()); - dmsRecordLube.setRealBeginTime(instance.getRealBeginTime()); - dmsRecordLube.setPlanEndTime(instance.getPlanEndTime()); - dmsRecordLube.setRealEndTime(instance.getRealEndTime()); - - if (flag) { - bo.setInstanceActivityId(add.getInstanceActivityId()); - } - return flag; - } - // 中间步骤的处理逻辑 - else { - // 如果是第二步,更新润滑工单实例的实际开始时间 - if (add.getProcessStepOrder() == 2) { - DmsBillsLubeInstanceBo updateInstance = new DmsBillsLubeInstanceBo(); - updateInstance.setLubeInstanceId(add.getLubeInstanceId()); - updateInstance.setRealBeginTime(DateUtils.getNowDate()); - - dmsBillsLubeInstanceMapper.updateById(MapstructUtils.convert(updateInstance, DmsBillsLubeInstance.class)); - } - - // 查询前一个步骤的活动 - MPJLambdaWrapper prevWrapper = JoinWrappers.lambda(DmsBillsLubeInstanceActivity.class) - .selectAll(DmsBillsLubeInstanceActivity.class) - .eq(DmsBillsLubeInstanceActivity::getLubeInstanceId, add.getLubeInstanceId()) - .eq(DmsBillsLubeInstanceActivity::getProcessStepOrder, add.getProcessStepOrder() - 1); - - List prevActivities = baseMapper.selectJoinList(DmsBillsLubeInstanceActivityVo.class, prevWrapper); - - if (!prevActivities.isEmpty()) { - // 更新前一个步骤的活动状态和时间信息 - DmsBillsLubeInstanceActivityBo updatePrev = new DmsBillsLubeInstanceActivityBo(); - updatePrev.setInstanceActivityId(prevActivities.get(0).getInstanceActivityId()); - updatePrev.setProcessHandleStatus("3"); - updatePrev.setEndTime(DateUtils.getNowDate()); - updatePrev.setHandleTime(DateUtils.getNowDate()); - updatePrev.setHandleBy(username); - updatePrev.setHandleUserId(userId); - - this.updateByBo(updatePrev); - } - }*/ + //更新润滑工单的状态 + DmsBillsLubeInstanceVo dmsBillsLubeInstanceVo = dmsBillsLubeInstanceMapper.selectVoById(add.getLubeInstanceId()); + if(add.getProcessStepOrder()==2L){//如果是第二步就更新为润滑中 + dmsBillsLubeInstanceVo.setLubeStatus("2"); + }else if (add.getProcessStepOrder()==3L){//如果是第三步就更新为润滑结束 + dmsBillsLubeInstanceVo.setLubeStatus("3"); + dmsBillsLubeInstanceVo.setRealEndTime(new Date()); } + dmsBillsLubeInstanceMapper.updateById(MapstructUtils.convert(dmsBillsLubeInstanceVo, DmsBillsLubeInstance.class)); + // 插入新的润滑工单实例活动记录 boolean flag = baseMapper.insert(add) > 0; 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 503af17..21310d4 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 @@ -4,6 +4,7 @@ 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.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; @@ -24,6 +25,10 @@ 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; @@ -51,7 +56,8 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer private final DmsPlanLubeDetailMapper dmsPlanLubeDetailMapper; - + @DubboReference + private final RemoteWorkflowService remoteWorkflowService; /** * 查询润滑工单 @@ -319,8 +325,24 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer @Override @Transactional(rollbackFor = Exception.class) public Boolean startLube(DmsBillsLubeDetailBo bo) { + Long lubeInstanceId = bo.getLubeInstanceId(); // 根据润滑实例ID查询润滑实例信息 - DmsBillsLubeInstanceVo dmsBillsLubeInstance = this.queryById(bo.getLubeInstanceId()); + 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); // 获取润滑状态,如果为空则设置为待润滑状态 String lubeStatus = StringUtils.isEmpty(dmsBillsLubeInstance.getLubeStatus()) ? @@ -375,6 +397,12 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer // 根据润滑实例ID查询润滑实例信息 DmsBillsLubeInstanceVo dmsBillsLubeInstance = this.queryById(lubeInstanceId); + //fIXME:需测试能否完成工作流 + Long taskId = dmsBillsLubeInstance.getWfDefinitionId(); + RemoteCompleteTask completeTask = new RemoteCompleteTask(); + completeTask.setTaskId(taskId); + boolean taskFlag = remoteWorkflowService.completeTask(completeTask); + // 获取润滑状态,如果为空则设置为待润滑状态 String lubeStatus = StringUtils.isEmpty(dmsBillsLubeInstance.getLubeStatus()) ? DmsConstants.DMS_BILLS_LUBE_INSTANCE_STATUS_TO_LUBE : dmsBillsLubeInstance.getLubeStatus(); @@ -422,9 +450,10 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer bo.setEndTime(currentDate); //bo.setUpdateBy(userId); bo.setMaintStatus(String.valueOf(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE)); - dmsBillsLubeDetailMapper.updateById(MapstructUtils.convert(bo, DmsBillsLubeDetail.class)); + int i = dmsBillsLubeDetailMapper.updateById(MapstructUtils.convert(bo, DmsBillsLubeDetail.class)); - return 1; + + return i; } @@ -445,6 +474,8 @@ public class DmsBillsLubeInstanceServiceImpl implements IDmsBillsLubeInstanceSer throw new ServiceException("记录不存在"); } entity.setWfDefinitionId(wfDefinitionId); + entity.setLubeStatus("1");//待润滑 + entity.setRealBeginTime(new Date()); return baseMapper.updateById(entity) > 0; } 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 d6d9e96..efd07d7 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 @@ -296,13 +296,9 @@ 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); - baseMapper.updateById(dmsBillsMaintInstance); - dmsBillsMaintDetail.setBeginTime(currentDate); - dmsBillsMaintDetail.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_MAINTING); - dmsBillsMaintDetailMapper.updateById(dmsBillsMaintDetail); } @@ -331,24 +327,34 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS @Override @Transactional(rollbackFor = Exception.class) public int completeMaint(DmsBillsMaintDetail dmsBillsMaintDetail) { + // 获取保养工单明细中的项目列表 List dmsBillsMaintDetailProjects = dmsBillsMaintDetail.getDmsBillsMaintDetailProjectList(); + // 获取保养实例ID Long maintInstanceId = dmsBillsMaintDetail.getMaintInstanceId(); + // 根据保养实例ID查询保养实例信息 DmsBillsMaintInstance dmsBillsMaintInstance = baseMapper. selectDmsBillsMaintInstanceByMaintInstanceId(maintInstanceId); + // 获取保养状态,如果为空则设置为待保养状态 Long maintStatus = dmsBillsMaintInstance.getMaintStatus() == null ? DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_TO_MAINT : dmsBillsMaintInstance.getMaintStatus(); + // 如果保养状态为已完成,抛出异常提示已经保养完成 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("请先执行开始保养"); } + // 获取当前日期时间 Date currentDate = new Date(); + // 创建查询保养明细的对象 DmsBillsMaintDetailBo queryMaintDetail = new DmsBillsMaintDetailBo(); + // 设置查询条件为保养实例ID queryMaintDetail.setMaintInstanceId(maintInstanceId); + // 查询保养明细列表 List maintDetails = dmsBillsMaintDetailService.queryList(queryMaintDetail); /**获取未完成的保养明细,并且需要排除当前提交完成的保养明细*/ @@ -360,26 +366,36 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS /**如果已经没有未完成的,则需要将工单修改成已完成,并更新结束时间*/ if (inCompleteMaintDetails == null || inCompleteMaintDetails.isEmpty()) { + // 设置保养状态为已完成 dmsBillsMaintInstance.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE); + // 设置实际结束时间为当前时间 dmsBillsMaintInstance.setRealEndTime(currentDate); + // 更新保养实例信息 baseMapper.updateById(dmsBillsMaintInstance); } //更新保养工单明细项目信息 for (DmsBillsMaintDetailProjectVo dmsBillsMaintDetailProject : dmsBillsMaintDetailProjects) { + // 设置项目状态为已完成 dmsBillsMaintDetailProject.setMaintProjectStatus(DmsConstants.DMS_MAINT_PROJECT_STATUS_COMPLETE); + // 转换项目对象类型 DmsBillsMaintDetailProject dmsBillsMaintInstanceProject = MapstructUtils.convert(dmsBillsMaintDetailProject, DmsBillsMaintDetailProject.class); + // 更新项目信息 dmsBillsMaintInstanceProjectMapper.updateById(dmsBillsMaintInstanceProject); } + // 设置保养明细的结束时间为当前时间 dmsBillsMaintDetail.setEndTime(currentDate); + // 设置保养明细的更新时间为当前时间 dmsBillsMaintDetail.setUpdateTime(currentDate); + // 设置保养明细的状态为已完成 dmsBillsMaintDetail.setMaintStatus(DmsConstants.DMS_BILLS_MAINT_INSTANCE_STATUS_COMPLETE); + // 更新保养明细信息 dmsBillsMaintDetailMapper.updateById(dmsBillsMaintDetail); - + // 返回结果1表示成功 return 1; } @@ -400,6 +416,8 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS throw new ServiceException("记录不存在"); } entity.setWfDefinitionId(wfDefinitionId); + entity.setMaintStatus(1L); + entity.setRealBeginTime(new Date()); return baseMapper.updateById(entity) > 0; } diff --git a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsMaintInstanceActivityServiceImpl.java b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsMaintInstanceActivityServiceImpl.java index 304e8af..307827a 100644 --- a/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsMaintInstanceActivityServiceImpl.java +++ b/ruoyi-modules/hwmom-dms/src/main/java/org/dromara/dms/service/impl/DmsMaintInstanceActivityServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.dms.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,13 +10,19 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.dms.domain.DmsBillsMaintInstance; +import org.dromara.dms.domain.bo.DmsBillsMaintInstanceBo; +import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo; +import org.dromara.dms.mapper.DmsBillsMaintInstanceMapper; import org.springframework.stereotype.Service; import org.dromara.dms.domain.bo.DmsMaintInstanceActivityBo; import org.dromara.dms.domain.vo.DmsMaintInstanceActivityVo; import org.dromara.dms.domain.DmsMaintInstanceActivity; import org.dromara.dms.mapper.DmsMaintInstanceActivityMapper; import org.dromara.dms.service.IDmsMaintInstanceActivityService; +import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Collection; @@ -32,6 +39,8 @@ public class DmsMaintInstanceActivityServiceImpl implements IDmsMaintInstanceAct private final DmsMaintInstanceActivityMapper baseMapper; + private final DmsBillsMaintInstanceMapper dmsBillsMaintInstanceMapper; + /** * 查询保养工单实例节点;弃用 * @@ -101,9 +110,21 @@ public class DmsMaintInstanceActivityServiceImpl implements IDmsMaintInstanceAct * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public DmsMaintInstanceActivityVo insertByBo(DmsMaintInstanceActivityBo bo) { DmsMaintInstanceActivity add = MapstructUtils.convert(bo, DmsMaintInstanceActivity.class); validEntityBeforeSave(add); + + DmsBillsMaintInstanceVo dmsBillsMaintInstanceVo = dmsBillsMaintInstanceMapper.selectVoById(bo.getMaintInstanceId()); + if (add.getProcessStepOrder() == 2L){ + dmsBillsMaintInstanceVo.setMaintStatus(2L); + }else if(add.getProcessStepOrder()== 3L){ + dmsBillsMaintInstanceVo.setMaintStatus(3L); + dmsBillsMaintInstanceVo.setRealEndTime(new Date()); + } + DmsBillsMaintInstance updateInstance = MapstructUtils.convert(dmsBillsMaintInstanceVo,DmsBillsMaintInstance.class); + dmsBillsMaintInstanceMapper.updateById(updateInstance); + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setInstanceActivityId(add.getInstanceActivityId()); 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 eda8e49..d66f250 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 @@ -195,6 +195,7 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService { if (add.getMaintLevel().equals(3l)){ cron = "0 0 "+add.getHour()+" "+day+" "+ month+" ? "+year; } + bo.setCronExpression(cron);//cron表达式 String planMaintCode = Seq.getId(Seq.planMaintSeqType, Seq.planMaintCode); // String cron = "* * "+dmsPlanMaint.getHour()+" ? * "+week; /* SysJob job = new SysJob(); 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 d152c64..b78a5d7 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 @@ -4,4 +4,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + 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 4a5648e..20e158f 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 @@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -225,4 +225,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml index 742fd18..042e4df 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsBillsInspectInstanceMapper.xml @@ -4,10 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - + @@ -30,7 +30,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select a.inspect_instance_id, a.plan_inspect_id, - a.wf_process_id, a.inspect_type, a.bills_inspect_code, a.plan_begin_time, @@ -38,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.real_begin_time, a.real_end_time, a.inspect_status, - + a.wf_definition_id, b.remark, b.create_by, a.create_time, @@ -61,4 +60,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where a.inspect_type = 1 + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsFaultInstanceActivityMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsFaultInstanceActivityMapper.xml index 3cca499..f09cf01 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsFaultInstanceActivityMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsFaultInstanceActivityMapper.xml @@ -55,4 +55,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + delete FROM dms_instance_file where target_id =#{activityId} + + + + insert into dms_fault_compents_parts(fault_id,part_name,part_specifications,amount) + values + + (#{item.faultId},#{item.partName},#{item.partSpecifications},#{item.amount}) + + + 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 56ecc0d..2df854f 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 @@ -57,5 +57,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.inspect_standard_id = #{inspectStandard} + + diff --git a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInstanceFileMapper.xml b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInstanceFileMapper.xml index ed8f062..2cbab3d 100644 --- a/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInstanceFileMapper.xml +++ b/ruoyi-modules/hwmom-dms/src/main/resources/mapper/dms/DmsInstanceFileMapper.xml @@ -4,4 +4,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + insert into dms_instance_file( instance_file_id, target_type, target_id, file_path) values + + ( #{item.instanceFileId}, #{item.targetType}, #{item.targetId}, #{item.filePath}) + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdShiftChangeServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdShiftChangeServiceImpl.java index 0bcc209..3b9d750 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdShiftChangeServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdShiftChangeServiceImpl.java @@ -93,7 +93,6 @@ public class ProdShiftChangeServiceImpl implements IProdShiftChangeService { .leftJoin(ProdBaseMachineInfo.class,ProdBaseMachineInfo::getMachineId,ProdShiftChange::getMachineId) - .eq(bo.getShiftChangeId() != null, ProdShiftChange::getShiftChangeId, bo.getShiftChangeId()) .eq(bo.getShiftChangeTime() != null, ProdShiftChange::getShiftChangeTime, bo.getShiftChangeTime()) .eq(bo.getMachineId() != null, ProdShiftChange::getMachineId, bo.getMachineId())