From 76ac1f1c40553d89bc39eb56886c1bdc2bc8bb01 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Sat, 10 Jan 2026 19:16:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E5=8D=95=E9=A1=B5=E9=9D=A2=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/iot/job/DeviceJob.java | 44 ++++++------ .../deviceledger/vo/DeviceLedgerRespVO.java | 8 +++ .../admin/dvrepair/DvRepairController.java | 19 +++++- .../admin/dvrepair/vo/DvRepairRespVO.java | 14 +++- .../repairtems/RepairTemsController.java | 19 +++++- .../repairtems/enums/DeviceTypeEnum.java | 67 +++++++++++++++++++ .../repairtems/vo/RepairTemsPageReqVO.java | 2 + .../admin/repairtems/vo/RepairTemsRespVO.java | 19 +++--- .../repairtems/vo/RepairTemsSaveReqVO.java | 2 +- .../deviceledger/DeviceLedgerDO.java | 7 ++ .../deviceledger/DeviceLedgerServiceImpl.java | 36 +++++++++- .../service/dvrepair/DvRepairServiceImpl.java | 2 +- .../service/repairtems/RepairTemsService.java | 4 ++ .../repairtems/RepairTemsServiceImpl.java | 41 ++++++++++++ .../mapper/repairtems/RepairTemsMapper.xml | 31 ++++++--- 15 files changed, 264 insertions(+), 51 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/enums/DeviceTypeEnum.java diff --git a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/job/DeviceJob.java b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/job/DeviceJob.java index e22f93d815..897ae10dd5 100644 --- a/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/job/DeviceJob.java +++ b/yudao-module-iot/yudao-module-iot-biz/src/main/java/cn/iocoder/yudao/module/iot/job/DeviceJob.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -43,28 +44,29 @@ public class DeviceJob implements JobHandler { // 解析JSON字符串获取deviceId JSONObject jsonParam = JSON.parseObject(param); - Long deviceId = jsonParam.getLong("deviceId"); - log.info("定时任务执行,接收到的参数 param: {}", param); - if (deviceId == null){ - throw exception(DEVICE_DOES_NOT_EXIST); - } + System.out.println(jsonParam + new Date().toString()); +// Long deviceId = jsonParam.getLong("deviceId"); +// log.info("定时任务执行,接收到的参数 param: {}", param); +// if (deviceId == null){ +// throw exception(DEVICE_DOES_NOT_EXIST); +// } - // 设置租户上下文 - TenantContextHolder.setTenantId(1L); - - LambdaQueryWrapper deviceModelAttributeLambdaQueryWrapper = new LambdaQueryWrapper<>(); - deviceModelAttributeLambdaQueryWrapper.eq(DeviceContactModelDO::getDeviceId,deviceId); - List deviceContactModelDOS = deviceContactModelMapper.selectList(deviceModelAttributeLambdaQueryWrapper); - - if (deviceContactModelDOS != null && deviceContactModelDOS.size() > 0){ - for (DeviceContactModelDO deviceContactModelDO : deviceContactModelDOS) { - Object addressValue = OpcUtils.readValue(deviceContactModelDO.getAddress() != null ? deviceContactModelDO.getAddress() : ""); - deviceContactModelDO.setAddressValue(addressValue); - } - - } - String json = JSON.toJSONString(deviceContactModelDOS); - tDengineService.insertDeviceData(deviceId,json); +// // 设置租户上下文 +// TenantContextHolder.setTenantId(1L); +// +// LambdaQueryWrapper deviceModelAttributeLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// deviceModelAttributeLambdaQueryWrapper.eq(DeviceContactModelDO::getDeviceId,deviceId); +// List deviceContactModelDOS = deviceContactModelMapper.selectList(deviceModelAttributeLambdaQueryWrapper); +// +// if (deviceContactModelDOS != null && deviceContactModelDOS.size() > 0){ +// for (DeviceContactModelDO deviceContactModelDO : deviceContactModelDOS) { +// Object addressValue = OpcUtils.readValue(deviceContactModelDO.getAddress() != null ? deviceContactModelDO.getAddress() : ""); +// deviceContactModelDO.setAddressValue(addressValue); +// } +// +// } +// String json = JSON.toJSONString(deviceContactModelDOS); +// tDengineService.insertDeviceData(deviceId,json); return ""; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerRespVO.java index 26c28508d3..58d1db4b13 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerRespVO.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.baomidou.mybatisplus.annotation.TableField; @@ -10,6 +12,7 @@ import lombok.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import com.alibaba.excel.annotation.*; import org.springframework.format.annotation.DateTimeFormat; @@ -112,6 +115,11 @@ public class DeviceLedgerRespVO extends BaseDO { @Schema(description = "保养结果列表") private List maintainList; + @Schema(description = "维修列表") + private Map> repairList; + ; + @Schema(description = "关键件列表") + private List componentList; @Schema(description = "附件地址") @ExcelProperty("附件地址") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java index 0a2cc1445c..244d0cbd35 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java @@ -100,9 +100,24 @@ public class DvRepairController { HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = dvRepairService.getDvRepairPage(pageReqVO).getList(); + List dvRepairRespVOList = BeanUtils.toBean(list, DvRepairRespVO.class); + for (DvRepairRespVO dvSubjectRespVO : dvRepairRespVOList) { + if (dvSubjectRespVO.getAcceptedBy() !=null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getAcceptedBy())); + dvSubjectRespVO.setAcceptedBy("(" + user.getUsername() + ")" + user.getNickname()); + } + if (dvSubjectRespVO.getConfirmBy() !=null) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(dvSubjectRespVO.getConfirmBy())); + dvSubjectRespVO.setConfirmBy("(" + user.getUsername() + ")" + user.getNickname()); + } + if (dvSubjectRespVO.getStatus() !=null) { + dvSubjectRespVO.setStatusName(dvSubjectRespVO.getStatus() != null ? + (dvSubjectRespVO.getStatus() == 0 ? "待完成" : "已完成") : null); + } + + } // 导出 Excel - ExcelUtils.write(response, "设备维修记录.xls", "数据", DvRepairRespVO.class, - BeanUtils.toBean(list, DvRepairRespVO.class)); + ExcelUtils.write(response, "设备维修记录.xls", "数据", DvRepairRespVO.class,dvRepairRespVOList); } // ==================== 子表(设备维修记录行) ==================== diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java index ebaa9fbf7f..d3151fabf8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairRespVO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.enums.MoldRecordStatusEnum; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -55,14 +56,17 @@ public class DvRepairRespVO { @Schema(description = "报修日期") @ExcelProperty("报修日期") + @ColumnWidth(20) private LocalDateTime requireDate; @Schema(description = "完成日期") @ExcelProperty("完成日期") + @ColumnWidth(20) private LocalDateTime finishDate; @Schema(description = "验收日期") @ExcelProperty("验收日期") + @ColumnWidth(20) private LocalDateTime confirmDate; @Schema(description = "维修结果") @@ -78,9 +82,14 @@ public class DvRepairRespVO { private String confirmBy; @Schema(description = "单据状态", example = "1") - @ExcelProperty(value = "单据状态 0-待完成 1-已完成", converter = DictConvert.class) + @ExcelProperty(value = "单据状态 0-待完成 1-已完成") @DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 - private MoldRecordStatusEnum status; + private Integer status; + + @Schema(description = "单据状态", example = "1") + @ExcelProperty(value = "单据状态 0-待完成 1-已完成") + @DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 + private String statusName; @Schema(description = "备注", example = "你猜") @ExcelProperty("备注") @@ -88,6 +97,7 @@ public class DvRepairRespVO { @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("创建时间") + @ColumnWidth(20) private LocalDateTime createTime; @Schema(description = "设备类型 1-设备 2-关键件", example = "你猜") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java index 5ac489ea42..f1f29328e0 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.mes.controller.admin.repairtems; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -108,13 +110,24 @@ public class RepairTemsController { @GetMapping("/getDeviceOrComponentList") @Operation(summary = "获得设备/关键件列表") - @Parameter(name = "deviceType", description = "deviceType 1-设备 2-关键件", required = true, example = "1024") +// @Parameter(name = "deviceType", description = "deviceType 1-设备 2-关键件", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") public CommonResult> getDeviceOrComponentList( @Parameter(name = "deviceId", description = "设备Id", required = true, example = "123") @RequestParam("deviceId") Long deviceId, - @Parameter(name = "componentId", description = "关键件Id", required = true, example = "123") - @RequestParam("componentId") Long componentId) { + @Parameter(name = "componentId", description = "关键件Id", required = false, example = "123") + @RequestParam(value = "componentId",required = false) Long componentId) { return success(repairTemsService.getDeviceOrComponentList(deviceId,componentId)); } + + + @GetMapping("/getComponentList") + @Operation(summary = "获得设备关键件") + @Parameter(name = "deviceId", description = "deviceId设备Id", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") + public CommonResult> getComponentList(@RequestParam("deviceId") Long deviceId) { + return success( repairTemsService.getComponentList(deviceId)); + } + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/enums/DeviceTypeEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/enums/DeviceTypeEnum.java new file mode 100644 index 0000000000..d392bd7a33 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/enums/DeviceTypeEnum.java @@ -0,0 +1,67 @@ +package cn.iocoder.yudao.module.mes.controller.admin.repairtems.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * 设备类型枚举 + */ +@Getter +@AllArgsConstructor +@Schema(description = "设备类型枚举") +public enum DeviceTypeEnum { + + DEVICE(1, "设备"), + CRITICAL_COMPONENT(2, "关键件"); + + @Schema(description = "类型", example = "1") + private final Integer type; + + @Schema(description = "描述", example = "设备") + private final String description; + + /** + * 根据类型获取枚举 + */ + public static DeviceTypeEnum getByType(Integer type) { + if (type == null) { + return null; + } + for (DeviceTypeEnum deviceType : DeviceTypeEnum.values()) { + if (deviceType.getType().equals(type)) { + return deviceType; + } + } + return null; + } + + /** + * 根据类型获取描述 + */ + public static String getDescriptionByType(Integer type) { + DeviceTypeEnum deviceType = getByType(type); + return deviceType != null ? deviceType.getDescription() : "未知"; + } + + /** + * 判断类型是否有效 + */ + public static boolean isValid(Integer type) { + return getByType(type) != null; + } + + /** + * 获取所有类型列表 + */ + public static Map getAllTypes() { + Map map = new LinkedHashMap<>(); + for (DeviceTypeEnum deviceType : values()) { + map.put(deviceType.getType(), deviceType.getDescription()); + } + return map; + } +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsPageReqVO.java index ce916eac08..ccfc093a73 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsPageReqVO.java @@ -50,4 +50,6 @@ public class RepairTemsPageReqVO extends PageParam { @Schema(description = "项目内容") private String projectContent; + @Schema(description = "id集合导出用") + private String ids; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsRespVO.java index c7d9ffde33..c352adf92e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsRespVO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -25,27 +26,30 @@ public class RepairTemsRespVO { private String subjectName; @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") - @ExcelProperty("设备类型") private Integer deviceType; + @Schema(description = "设备类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("项目名称") + private String deviceTypeName; + @Schema(description = "设备id", example = "11632") - @ExcelProperty("设备id") +// @ExcelProperty("设备id") private Long deviceId; @Schema(description = "关键件id", example = "29557") - @ExcelProperty("关键件id") +// @ExcelProperty("关键件id") private Long componentId; @Schema(description = "检验方式") - @ExcelProperty("检验方式") +// @ExcelProperty("检验方式") private String inspectionMethod; @Schema(description = "值类型", example = "1") - @ExcelProperty("值类型") +// @ExcelProperty("值类型") private String valueType; @Schema(description = "判定基准") - @ExcelProperty("判定基准") +// @ExcelProperty("判定基准") private String judgmentCriteria; @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) @@ -60,14 +64,13 @@ public class RepairTemsRespVO { @ExcelProperty("设备名称") private String deviceName; - @Schema(description = "关键件名称") @ExcelProperty("关键件名称") private String componentName; @Schema(description = "创建人名称") @ExcelProperty("创建人名称") - private String creatroName; + private String creatorName; @Schema(description = "项目内容") @ExcelProperty("项目内容") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java index 683c2a2b1c..53b2c563f9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java @@ -23,7 +23,7 @@ public class RepairTemsSaveReqVO { @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "设备类型不能为空") - private Boolean deviceType; + private Integer deviceType; @Schema(description = "设备id", example = "11632") private Long deviceId; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/deviceledger/DeviceLedgerDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/deviceledger/DeviceLedgerDO.java index df09e8fac0..a81547a2d5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/deviceledger/DeviceLedgerDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/deviceledger/DeviceLedgerDO.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; import lombok.*; @@ -126,4 +127,10 @@ public class DeviceLedgerDO extends BaseDO { @TableField(exist = false) private Map> repairList; + /** + * 关键件列表 + */ + @TableField(exist = false) + private List componentList; + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java index fe3820339a..2b67b06a8e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/deviceledger/DeviceLedgerServiceImpl.java @@ -2,14 +2,17 @@ package cn.iocoder.yudao.module.mes.service.deviceledger; import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums.PlanTypeEnum; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; +import cn.iocoder.yudao.module.mes.dal.mysql.criticalcomponent.CriticalComponentMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper; import cn.iocoder.yudao.module.mes.dal.mysql.ticketresults.TicketResultsMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -17,6 +20,8 @@ import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import java.util.*; +import java.util.stream.Collectors; + import cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -50,6 +55,8 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { @Resource private DvRepairMapper dvRepairMapperRepair; + @Resource + private CriticalComponentMapper criticalComponentMapper; @Override public Long createDeviceLedger(DeviceLedgerSaveReqVO createReqVO) { @@ -116,17 +123,20 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(id); Map> dvRepairDOMap=new HashMap<>(); + + //点检列表 List inspectionList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.INSPECTION.getCode()); if(CollectionUtils.isNotEmpty(inspectionList)){ deviceLedgerDO.setInspectionList(inspectionList); } + //保养列表 List maintainList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.MAINTENANCE.getCode()); if(CollectionUtils.isNotEmpty(maintainList)){ deviceLedgerDO.setMaintainList(maintainList); } - + //维修列表 List dvRepairDOS = dvRepairMapperRepair.selectList( Wrappers.lambdaQuery() .eq(DvRepairDO::getDeviceId, id)); @@ -135,7 +145,9 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { List dvRepairLineDOS = dvRepairLineMapper.selectList(Wrappers.lambdaQuery() .eq(DvRepairLineDO::getRepairId, dvRepairDO.getId()) .orderByDesc(DvRepairLineDO::getCreateTime)); - dvRepairDOMap.put(dvRepairDO.getRepairName(),dvRepairLineDOS); + if (!dvRepairLineDOS.isEmpty()) { + dvRepairDOMap.put(dvRepairDO.getRepairName(), dvRepairLineDOS); + } } if(CollectionUtils.isNotEmpty(dvRepairDOMap)){ @@ -143,6 +155,26 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { } + //关键件列表 + List componentList = new ArrayList<>(); + if (StringUtils.isNotBlank(deviceLedgerDO.getComponentId())) { + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(deviceLedgerDO.getComponentId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + for (Long componentId : idList) { + CriticalComponentDO criticalComponentDO = criticalComponentMapper.selectById(componentId); + if(criticalComponentDO!=null){ + componentList.add(criticalComponentDO); + } + } + deviceLedgerDO.setComponentList(componentList); + } + + + + return deviceLedgerDO; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java index 3426e8c813..c678fbff3d 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java @@ -67,7 +67,7 @@ public class DvRepairServiceImpl implements DvRepairService { //编码重复判断 Long count = dvRepairMapper.selectCount(new LambdaQueryWrapper() .eq(DvRepairDO::getRepairCode, updateReqVO.getRepairCode()) - .ne(DvRepairDO::getId, updateReqVO.getRepairCode()) + .ne(DvRepairDO::getId, updateReqVO.getId()) ); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsService.java index 6f627d0753..fad2c6f757 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsService.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.mes.service.repairtems; import java.util.*; import javax.validation.*; import cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.repairtems.RepairTemsDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -55,4 +57,6 @@ public interface RepairTemsService { List getDeviceOrComponent(Integer deviceType); List getDeviceOrComponentList(Long deviceId, Long componentId); + + List getComponentList(Long deviceId); } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java index 2fdc4a1b7a..96e4d7c8ba 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java @@ -2,9 +2,14 @@ package cn.iocoder.yudao.module.mes.service.repairtems; import cn.iocoder.yudao.module.iot.controller.admin.device.vo.LineDeviceRespVO; import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO; +import cn.iocoder.yudao.module.mes.dal.mysql.criticalcomponent.CriticalComponentMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -12,6 +17,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; + import cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.repairtems.RepairTemsDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -36,6 +43,12 @@ public class RepairTemsServiceImpl implements RepairTemsService { @Resource private RepairTemsMapper repairTemsMapper; + + @Resource + private DeviceLedgerMapper deviceLedgerMapper; + @Resource + private CriticalComponentMapper criticalComponentMapper; + @Override public Long createRepairTems(RepairTemsSaveReqVO createReqVO) { //编码重复判断 @@ -115,4 +128,32 @@ public class RepairTemsServiceImpl implements RepairTemsService { return repairTemsMapper.getRepairTemsList(new RepairTemsPageReqVO().setDeviceId(deviceId).setComponentId(componentId)); } + @Override + public List getComponentList(Long deviceId) { + + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(deviceId); + if(deviceLedgerDO == null ){ + throw exception(DEVICE_LEDGER_NOT_EXISTS); + } + + if (StringUtils.isBlank(deviceLedgerDO.getComponentId())){ + return new ArrayList<>(); + } + + List criticalComponentDOS= new ArrayList<>(); + List idList = Arrays.stream(deviceLedgerDO.getComponentId().split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + + for (Long id : idList) { + CriticalComponentDO criticalComponentDO = criticalComponentMapper.selectById(id); + if (criticalComponentDO !=null){ + criticalComponentDOS.add(criticalComponentDO); + } + } + + return criticalComponentDOS; + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/repairtems/RepairTemsMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/repairtems/RepairTemsMapper.xml index 7ba8d04376..1143c7ba64 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/repairtems/RepairTemsMapper.xml +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/repairtems/RepairTemsMapper.xml @@ -18,6 +18,11 @@ mrt.subject_code, mrt.subject_name, mrt.device_type, + CASE + WHEN mrt.device_type = 1 THEN '设备' + WHEN mrt.device_type = 2 THEN '关键件' + ELSE '未知' + END AS deviceTypeName, mrt.device_id, mrt.component_id, mrt.inspection_method, @@ -30,15 +35,16 @@ mrt.update_time, mrt.deleted, mrt.tenant_id, - mds.subject_name as deviceName, + mrt.project_content, + mdl.device_name as deviceName, mcc.name as componentName, CONCAT('(', su.username, ')', su.nickname) as creatorName FROM besure.mes_repair_tems mrt - left join besure.mes_dv_subject mds on mds.id = mrt.device_id + left join besure.mes_device_ledger mdl on mdl.id = mrt.device_id left join besure.mes_critical_component mcc on mcc.id = mrt.component_id left join besure.system_users su on su.id = mrt.creator - WHERE mrt.deleted = 0 - order by mrt.create_time desc + WHERE 1=1 + AND mrt.deleted = 0 AND mrt.subject_code = #{pageReqVO.subjectCode} @@ -70,12 +76,13 @@ AND mrt.project_content LIKE CONCAT('%', #{pageReqVO.projectContent}, '%') + + + AND FIND_IN_SET(mrt.id, #{pageReqVO.ids}) + - ORDER BY mrt.create_time DESC - - \ No newline at end of file