diff --git a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index df66aca89d..35b7012521 100644 --- a/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -103,6 +103,9 @@ public interface ErrorCodeConstants { ErrorCode DV_REPAIR_NOT_EXISTS = new ErrorCode(5_0087, "设备维修记录不存在"); ErrorCode DV_REPAIR_CODE_EXISTS = new ErrorCode(5_0087, "设备维修记录编码已存在"); + ErrorCode DV_REPAIR_LINE_NOT_EXISTS = new ErrorCode(5_0088, "设备维修子表记录不存在"); + ErrorCode DV_REPAIR_LINE_ID_NOT_EXISTS = new ErrorCode(5_0088, "设备维修子表记录Id为空"); + ErrorCode ZJ_TYPE_NOT_EXISTS = new ErrorCode(5_009, "检验类型不存在"); ErrorCode ZJ_ITEM_NOT_EXISTS = new ErrorCode(5_0091, "检验项目不存在"); @@ -130,6 +133,7 @@ public interface ErrorCodeConstants { ErrorCode DEVICE_LEDGER_EXISTS = new ErrorCode(1002000010, "设备台账编码已存在"); ErrorCode SUBJECT_EXISTS = new ErrorCode(1002000010, "项目编码已存在"); ErrorCode TASK_MANAGEMENT_NOT_EXISTS = new ErrorCode(1002000011, "设备类型不存在"); + ErrorCode TASK_CORN_NOT_EXISTS = new ErrorCode(1002000011, "设备corn表达式为空"); ErrorCode TICKET_MANAGEMENT_NOT_EXISTS = new ErrorCode(1002000012, "工单管理不存在"); ErrorCode TICKET_RESULTS_NOT_EXISTS = new ErrorCode(1002000013, "工单检验结果不存在"); ErrorCode TICKET_RESULTS_ID_NOT_NULL = new ErrorCode(1002000014, "工单检验结果Id不存在"); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java index f672949cf4..0b42ac7976 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/DeviceLedgerController.java @@ -123,4 +123,20 @@ public class DeviceLedgerController { + @GetMapping("/exportInspectionHistory") + @Operation(summary = "根据设备Id导出点检履历") + @PreAuthorize("@ss.hasPermission('mes:device-ledger:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportInspectionHistory(@Valid DeviceLedgerPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + List list = deviceLedgerService.getDeviceLedgerPage(pageReqVO).getList(); + List deviceLedgerRespVOS = BeanUtils.toBean(list, DeviceLedgerRespVO.class); + + ResumeNameUtils.fillUserInfoForExport(deviceLedgerRespVOS); + + // 导出 Excel + ExcelUtils.write(response, "设备台账.xls", "数据", DeviceLedgerRespVO.class,deviceLedgerRespVOS); + } + + } \ 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/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 bec45badf0..2dca11db76 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 @@ -6,9 +6,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; -import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO; -import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairRespVO; -import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.*; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.TicketResultsSaveReqVO; 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.service.dvrepair.DvRepairService; @@ -114,6 +113,10 @@ public class DvRepairController { dvSubjectRespVO.setStatusName(dvSubjectRespVO.getStatus() != null ? (dvSubjectRespVO.getStatus() == 0 ? "待完成" : "已完成") : null); } + if (dvSubjectRespVO.getRepairStatus() !=null) { + dvSubjectRespVO.setRepairStatusName(dvSubjectRespVO.getRepairStatus() != null ? + (dvSubjectRespVO.getRepairStatus() == 1 ? "通过" : "不通过") : null); + } } // 导出 Excel @@ -131,6 +134,32 @@ public class DvRepairController { } + @PostMapping("/updateRepairLine") + @Operation(summary = "更新设备维修子表") + @PreAuthorize("@ss.hasPermission('mes:dv-repair:update')") + public CommonResult updateRepairLine(@Valid @RequestBody DvRepairLineSaveReqVO updateReqVO) { + dvRepairService.updateRepairLine(updateReqVO); + return success(true); + } + + @PutMapping("/updateDvRepairStatus") + @Operation(summary = "更新设备维修子记录状态") + @PreAuthorize("@ss.hasPermission('mes:dv-repair:update')") + public CommonResult updateDvRepairStatus(@Valid @RequestBody DvRepirUpdateReqVO updateReqVO) { + dvRepairService.updateDvRepairStatus(updateReqVO); + return success(true); + } + + + @PutMapping("/batchUpdate") + @Operation(summary = "批量更新维修检验结果") + @PreAuthorize("@ss.hasPermission('mes:ticket-results:update')") + public CommonResult batchUpdateTicketResults( + @Valid @RequestBody List updateReqVOList) { + dvRepairService.batchUpdateTicketResults(updateReqVOList); + return success(true); + } + private PageResult buildCreatorName(PageResult dvSubjectRespVOPageResult) { for (DvRepairRespVO dvSubjectRespVO : dvSubjectRespVOPageResult.getList()) { if (dvSubjectRespVO.getAcceptedBy() !=null) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairLineSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairLineSaveReqVO.java new file mode 100644 index 0000000000..cf8923c733 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairLineSaveReqVO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Schema(description = "管理后台 - 设备维修记录子表/修改 Request VO") +@Data +public class DvRepairLineSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809") + private Long id; + + @Schema(description = "维修单ID", requiredMode = Schema.RequiredMode.REQUIRED) + private Long repairId; + + @Schema(description = "项目ID") + private Long subjectId; + + @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "6979") + private String subjectCode; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String subjectName; + + @Schema(description = "项目类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + private String subjectType; + + @Schema(description = "项目内容") + private String subjectContent; + + @Schema(description = "标准") + private String subjectStandard; + + @Schema(description = "故障描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622") + private String malfunction; + + @Schema(description = "故障描述资源") + private String malfunctionUrl; + + @Schema(description = "维修情况") + private String repairDes; + + @Schema(description = "备注") + private String remark; + @Schema(description = "维修结果 0-待维修 1-通过 2-不通过") + private Integer result; +} 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 d3151fabf8..a2621748a1 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 @@ -109,5 +109,10 @@ public class DvRepairRespVO { @Schema(description = "关键件Id", example = "你猜") private Long componentId; + @Schema(description = "维修状态 0-待完成 1-通过 2-不通过") + private Integer repairStatus; + @Schema(description = "维修状态") + @ExcelProperty("维修状态") + private String repairStatusName; } \ 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/dvrepair/vo/DvRepairSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java index 99d840ad66..32c43ac33a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairSaveReqVO.java @@ -81,4 +81,6 @@ public class DvRepairSaveReqVO { @Schema(description = "关键件Id") private Long componentId; + + } \ 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/dvrepair/vo/DvRepirUpdateReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepirUpdateReqVO.java new file mode 100644 index 0000000000..66401a7947 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepirUpdateReqVO.java @@ -0,0 +1,44 @@ +package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.List; + + +@Schema(description = "管理后台 - 设备维修更新子记录 Req VO") +@Data +public class DvRepirUpdateReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809") + @NotNull + private Long id; + + @Schema(description = "报修日期") + @NotNull(message = "报修日期不能为空") + private LocalDateTime requireDate; + + @Schema(description = "完成日期") + @NotNull(message = "完成日期不能为空") + private LocalDateTime finishDate; + + @Schema(description = "验收日期") + @NotNull(message = "验收日期不能为空") + private LocalDateTime confirmDate; + + @Schema(description = "维修结果") + @NotBlank(message = "维修结果不能为空") + private String repairResult; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "子列表") + @NotNull(message = "子列表不能为空") + private List updateReqVOList; + +} diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java index f4600fe462..2bddf02aa5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/TicketManagementController.java @@ -1,8 +1,18 @@ package cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement; import cn.iocoder.yudao.module.mes.controller.admin.deviceledger.vo.DeviceLedgerRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.moldsubject.vo.MoldSubjectRespVO; +import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums.InspectionResultEnum; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.TicketInspectionExportVO; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.TicketResultsPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.TicketResultsRespVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; +import cn.iocoder.yudao.module.system.api.dict.DictDataApi; +import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -14,8 +24,12 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.io.IOException; +import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -43,6 +57,9 @@ public class TicketManagementController { @Resource private AdminUserApi adminUserApi; + @Resource + private DictDataApi dictDataApi; + @PostMapping("/create") @Operation(summary = "创建工单管理") @@ -126,4 +143,147 @@ public class TicketManagementController { } return ticketManagementRespVOPageResult; } + + + @GetMapping("/getInspectionByDeviceId") + @Operation(summary = "根据设备Id获得点检历史记录") + @Parameter(name = "deviceId", description = "设备Id", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:ticket-management:query')") + public CommonResult< List> getInspectionByDeviceId(@RequestParam("deviceId") Long deviceId, + @RequestParam(name = "startTime",required = false) String startTime, + @RequestParam(name = "endTime",required = false) String endTime) { + List ticketResultsDOList = ticketManagementService.getInspectionByDeviceId(deviceId,startTime,endTime,""); + return success(ticketResultsDOList); + } + + @GetMapping("/exportExcelInspection") + @Operation(summary = "导出点检历史记录 Excel") + @PreAuthorize("@ss.hasPermission('mes:ticket-results:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportTicketResultsExcel(@RequestParam("deviceId") Long deviceId, + @RequestParam(name = "ids",required = false) String ids, + @RequestParam(name = "startTime",required = false) String startTime, + @RequestParam(name = "endTime",required = false) String endTime, + HttpServletResponse response) throws IOException { + + // 查询数据 + List results = ticketManagementService.getInspectionByDeviceId(deviceId, startTime, endTime, ids); + + // 转换为VO并处理数据 + List exportVos = results.stream() + .map(this::convertToExportVO) + .collect(Collectors.toList()); + // 设置响应头 + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode("点检记录.xls", "UTF-8")); + response.setHeader("Content-Encoding", "identity"); + // 导出Excel + String fileName = String.format("点检记录_%s.xls", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); + ExcelUtils.write(response, fileName, "点检记录", TicketInspectionExportVO.class, exportVos); + } + + + + + + @GetMapping("/getMaintenanceByDeviceId") + @Operation(summary = "根据设备Id获得保养历史记录") + @Parameter(name = "deviceId", description = "设备Id", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:ticket-management:query')") + public CommonResult> getMaintenanceByDeviceId(@RequestParam("deviceId") Long deviceId, + @RequestParam(name = "startTime",required = false) String startTime, + @RequestParam(name = "endTime",required = false) String endTime) { + List ticketResultsDOList = ticketManagementService.getMaintenanceByDeviceId(deviceId,startTime,endTime,""); + return success(ticketResultsDOList); + } + + + @GetMapping("/exportExcelMaintenance") + @Operation(summary = "导出保养历史记录 Excel") + @PreAuthorize("@ss.hasPermission('mes:ticket-results:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportExcelMaintenance(@RequestParam("deviceId") Long deviceId, + @RequestParam(name = "ids",required = false) String ids, + @RequestParam(name = "startTime",required = false) String startTime, + @RequestParam(name = "endTime",required = false) String endTime, + HttpServletResponse response) throws IOException { + + // 查询数据 + List results = ticketManagementService.getMaintenanceByDeviceId(deviceId, startTime, endTime, ids); + + // 转换为VO并处理数据 + List exportVos = results.stream() + .map(this::convertToExportVO) + .collect(Collectors.toList()); + // 设置响应头 + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode("保养记录.xls", "UTF-8")); + response.setHeader("Content-Encoding", "identity"); + // 导出Excel + String fileName = String.format("保养记录_%s.xls", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); + ExcelUtils.write(response, fileName, "保养记录", TicketInspectionExportVO.class, exportVos); + } + + + /** + * 获取字典数据 + */ + private Map> getDictData() { + Map> dictData = new HashMap<>(); + + try { + // 获取检验方式字典 + Map inspectionMethodDict = new HashMap<>(); + List inspectionMethods = dictDataApi.getDictDataList("Inspection_method"); + for (DictDataRespDTO dict : inspectionMethods) { + inspectionMethodDict.put(dict.getValue(), dict.getLabel()); + } + dictData.put("Inspection_method", inspectionMethodDict); + + } catch (Exception e) { + throw new RuntimeException("获取字典数据异常:" + e); + } + + return dictData; + } + + /** + * 数据转换 + */ + private TicketInspectionExportVO convertToExportVO(TicketResultsDO record) { + TicketInspectionExportVO vo = BeanUtils.toBean(record, TicketInspectionExportVO.class); + + // 转换检验结果 + if (record.getInspectionResult() != null) { + vo.setResult(record.getInspectionResult().equals(InspectionResultEnum.OK.getCode()) ? InspectionResultEnum.OK.getLabel() : + record.getInspectionResult().equals(InspectionResultEnum.NG.getCode()) ? InspectionResultEnum.NG.getLabel() : String.valueOf(record.getInspectionResult())); + } + + // 处理操作人信息 + if (StringUtils.isNotBlank(record.getOperator())) { + try { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(record.getOperator())); + if (user != null) { + vo.setOperator("(" + user.getUsername() + ")" + user.getNickname()); + } + } catch (Exception e) { + // 转换失败保持原值 + } + } + + // 处理检验方式字典 + if (StringUtils.isNotBlank(record.getInspectionMethod())) { + Map> dictData = getDictData(); + String methodLabel = dictData.getOrDefault("Inspection_method", Collections.emptyMap()) + .get(record.getInspectionMethod()); + if (StringUtils.isNotBlank(methodLabel)) { + vo.setInspectionMethod(methodLabel); + } + } + + return vo; + } + } \ 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/ticketmanagement/enums/InspectionResultEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/enums/InspectionResultEnum.java new file mode 100644 index 0000000000..edb7e3e61c --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/enums/InspectionResultEnum.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums; + +import lombok.Getter; + +@Getter +public enum InspectionResultEnum { + OK(1, "OK"), + NG(2, "NG"); + + private final Integer code; + private final String label; + + InspectionResultEnum(Integer code, String label) { + this.code = code; + this.label = label; + } + + public static String getLabelByCode(Integer code) { + for (InspectionResultEnum value : values()) { + if (value.code.equals(code)) { + return value.getLabel(); + } + } + return String.valueOf(code); + } + + +} \ 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/ticketmanagement/vo/TicketManagementPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageReqVO.java index 5e9b94bacc..bcb207a710 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementPageReqVO.java @@ -48,19 +48,13 @@ public class TicketManagementPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; - @Schema(description = "id集合导出用") private String ids; - - /** - * 作业开始时间 - */ + @Schema(description = "作业开始时间") private String taskTime; - /** - * 作业结束时间 - */ + @Schema(description = "作业结束时间") private String taskEndTime; } \ 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/ticketresults/vo/TicketInspectionExportVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketresults/vo/TicketInspectionExportVO.java new file mode 100644 index 0000000000..d790ed61de --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketresults/vo/TicketInspectionExportVO.java @@ -0,0 +1,63 @@ +package cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Date; + +@Data +@ExcelIgnoreUnannotated +public class TicketInspectionExportVO { + +// @ExcelProperty("设备编号") +// private String deviceCode; +// +// @ExcelProperty("设备名称") +// private String deviceName; + + @ExcelProperty("检验项名称") + private String inspectionItemName; + + @ExcelProperty("检验方式") + private String inspectionMethod; + + @ExcelProperty("判定基准") + private String judgmentCriteria; + + @ExcelProperty("点检时间") + @ColumnWidth(20) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime taskTime; + + @ExcelProperty("作业结果") + private String result; + + @ExcelProperty("备注") + private String remark; + + private Integer inspectionResult; + + @ExcelProperty("作业人") + private String operator; + + @ExcelProperty("创建时间") + @ColumnWidth(20) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime createTime; + + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java index 421e41dd30..f8c91bd4f5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairDO.java @@ -114,4 +114,10 @@ public class DvRepairDO extends BaseDO { */ private Long componentId; + /** + * 维修结果 0-待维修 1-通过 2-不通过 + */ + private Integer repairStatus; + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairLineDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairLineDO.java index 08c894b210..e9fb1679d1 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairLineDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/dvrepair/DvRepairLineDO.java @@ -72,4 +72,9 @@ public class DvRepairLineDO extends BaseDO { */ private String remark; + /** + * + */ + private Integer result; + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketresults/TicketResultsDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketresults/TicketResultsDO.java index 5d204c4c97..298de190dd 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketresults/TicketResultsDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketresults/TicketResultsDO.java @@ -65,4 +65,14 @@ public class TicketResultsDO extends BaseDO { */ private Long deviceId; + /** + * 作业时间 + */ + @TableField(exist = false) + private LocalDateTime taskTime; + + @TableField(exist = false) + private String operator; + + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketresults/TicketResultsMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketresults/TicketResultsMapper.java index 3e0e84c175..dd922f39eb 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketresults/TicketResultsMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketresults/TicketResultsMapper.java @@ -32,5 +32,7 @@ public interface TicketResultsMapper extends BaseMapperX { .orderByDesc(TicketResultsDO::getId)); } - List findByDeviceIdAndPlanType(@Param("deviceId") Long deviceId,@Param("planType") Integer planType); + List findByDeviceIdAndPlanType(@Param("deviceId") Long deviceId,@Param("planType") Integer planType, + @Param("startTime") String startTime,@Param("endTime") String endTime, + @Param("ids") 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/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 78b424b206..4a3a9717a2 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 @@ -138,13 +138,13 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { //点检列表 - List inspectionList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.INSPECTION.getCode()); + List inspectionList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.INSPECTION.getCode(),"","",""); if(CollectionUtils.isNotEmpty(inspectionList)){ deviceLedgerDO.setInspectionList(inspectionList); } //保养列表 - List maintainList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.MAINTENANCE.getCode()); + List maintainList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.MAINTENANCE.getCode(),"","",""); if(CollectionUtils.isNotEmpty(maintainList)){ deviceLedgerDO.setMaintainList(maintainList); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java index 3e6547842c..d1e34871d1 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairService.java @@ -1,8 +1,10 @@ package cn.iocoder.yudao.module.mes.service.dvrepair; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairLineSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepirUpdateReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; @@ -64,4 +66,9 @@ public interface DvRepairService { */ List getDvRepairLineListByRepairId(Long repairId); + void updateRepairLine(@Valid DvRepairLineSaveReqVO updateReqVO); + + void batchUpdateTicketResults(@Valid List updateReqVOList); + + void updateDvRepairStatus(@Valid DvRepirUpdateReqVO updateReqVO); } \ 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/dvrepair/DvRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java index c678fbff3d..571436fa4e 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 @@ -2,21 +2,34 @@ package cn.iocoder.yudao.module.mes.service.dvrepair; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.iot.dal.dataobject.devicemodel.DeviceModelDO; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairLineSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepirUpdateReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.enums.JobResultEnum; +import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.TicketResultsSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.devicetype.DeviceTypeDO; 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.ticketmanagement.TicketManagementDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.DEVICE_MODEL_CODE_EXISTS; @@ -81,6 +94,8 @@ public class DvRepairServiceImpl implements DvRepairService { // 更新子表 updateDvRepairLineList(updateReqVO.getId(), updateReqVO.getDvRepairLines()); + + } @Override @@ -120,6 +135,124 @@ public class DvRepairServiceImpl implements DvRepairService { return dvRepairLineMapper.selectListByRepairId(repairId); } + @Override + public void updateRepairLine(DvRepairLineSaveReqVO updateReqVO) { + + // 校验存在 + validateDvRepairLineExists(updateReqVO.getId()); + // 更新 + DvRepairLineDO updateObj = BeanUtils.toBean(updateReqVO, DvRepairLineDO.class); + dvRepairLineMapper.updateById(updateObj); + + + + } + + @Override + public void batchUpdateTicketResults(List updateReqVOList) { + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + // 1. 数据验证 + validateBatchUpdateData(updateReqVOList); + + // 2. 批量更新 + List updateList = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + + for (DvRepairLineSaveReqVO vo : updateReqVOList) { + // 转换为DO + DvRepairLineDO updateDO = BeanUtils.toBean(vo, DvRepairLineDO.class); + updateDO.setUpdateTime(now); + updateList.add(updateDO); + } + + // 3. 执行批量更新 + dvRepairLineMapper.updateBatch(updateList); + + //4. 判断是否全部已检验 + handleInspectionResult(updateReqVOList); + } + + @Override + public void updateDvRepairStatus(DvRepirUpdateReqVO updateReqVO) { + + DvRepairDO dvRepairDO = dvRepairMapper.selectById(updateReqVO.getId()); + if ( dvRepairDO == null) { + throw exception(DV_REPAIR_NOT_EXISTS); + } + dvRepairDO.setRequireDate(updateReqVO.getRequireDate()); + dvRepairDO.setFinishDate(updateReqVO.getFinishDate()); + dvRepairDO.setConfirmDate(updateReqVO.getConfirmDate()); + dvRepairDO.setRepairResult(updateReqVO.getRepairResult()); + dvRepairMapper.updateById(dvRepairDO); + batchUpdateTicketResults(updateReqVO.getUpdateReqVOList()); + + } + + private void handleInspectionResult(List updateReqVOList) { + + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + // 检查是否有未填写的 + boolean hasPending = updateReqVOList.stream() + .anyMatch(vo -> vo.getResult() == null || vo.getResult().equals(JobResultEnum.PENDING.getCode())); + + if (hasPending) { + return; + } + DvRepairDO dvRepairDO = dvRepairMapper.selectById(updateReqVOList.get(0).getRepairId()); + if (dvRepairDO == null ){ + throw exception(DV_REPAIR_NOT_EXISTS); + } + //设置为已完成 + dvRepairDO.setStatus(JobResultEnum.PASS.getCode()); + // 检查是否有不通过的 + boolean hasFail = updateReqVOList.stream() + .anyMatch(vo -> vo.getResult() != null && vo.getResult().equals(JobResultEnum.FAIL.getCode())); + if (hasFail) { + dvRepairDO.setRepairStatus(JobResultEnum.FAIL.getCode()); + + } else { + dvRepairDO.setRepairStatus(JobResultEnum.PASS.getCode()); + } + dvRepairMapper.updateById(dvRepairDO); + + } + + private void validateBatchUpdateData(List updateReqVOList) { + + + if (CollectionUtils.isEmpty(updateReqVOList)) { + return; + } + + Set idSet = new HashSet<>(); + + for (int i = 0; i < updateReqVOList.size(); i++) { + DvRepairLineSaveReqVO vo = updateReqVOList.get(i); + + // 验证ID不能为空 + if (vo.getId() == null) { + throw exception(DV_REPAIR_LINE_ID_NOT_EXISTS); + } + + idSet.add(vo.getId()); + + // 调用单个验证逻辑 + validateDvRepairLineExists(vo.getId()); + } + } + + private void validateDvRepairLineExists(Long id) { + if (dvRepairLineMapper.selectById(id) == null) { + throw exception(DV_REPAIR_LINE_NOT_EXISTS); + } + } + private void createDvRepairLineList(Long repairId, List list) { list.forEach(o -> o.setRepairId(repairId)); dvRepairLineMapper.insertBatch(list); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java index 3277c8183d..e39cc002bc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/taskmanagement/TaskManagementServiceImpl.java @@ -177,6 +177,9 @@ public class TaskManagementServiceImpl implements TaskManagementService { if (task == null) { throw exception(TASK_MANAGEMENT_NOT_EXISTS); } + if (StringUtils.isBlank(task.getCronExpression())) { + throw exception(TASK_CORN_NOT_EXISTS); + } // 2. 如果状态没有变化,直接返回 if (Objects.equals(task.getEnabled(), updateEnabledReqVO.getEnabled())) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java index 1e8202fee3..5a8cf5fa70 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementService.java @@ -6,6 +6,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketmanagement.TicketManagementDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; +import org.springframework.web.bind.annotation.RequestParam; /** * 项目方案关联 Service 接口 @@ -53,4 +55,8 @@ public interface TicketManagementService { PageResult getTicketManagementPage(TicketManagementPageReqVO pageReqVO); void batchUpdateJobStatus(@Valid TicketManagementBatchUpdateReqVO reqVO); + + List getInspectionByDeviceId(Long id,String startTime,String endTime,String ids); + + List getMaintenanceByDeviceId(Long id,String startTime,String endTime,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/service/ticketmanagement/TicketManagementServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java index 8038f0cdce..30c3f36368 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketmanagement/TicketManagementServiceImpl.java @@ -1,6 +1,14 @@ package cn.iocoder.yudao.module.mes.service.ticketmanagement; +import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums.PlanTypeEnum; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; +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.deviceledger.DeviceLedgerMapper; +import cn.iocoder.yudao.module.mes.dal.mysql.ticketresults.TicketResultsMapper; import com.alibaba.excel.util.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -31,6 +39,12 @@ public class TicketManagementServiceImpl implements TicketManagementService { @Resource private TicketManagementMapper ticketManagementMapper; + @Resource + @Lazy + private DeviceLedgerMapper deviceLedgerMapper; + @Resource + @Lazy + private TicketResultsMapper ticketResultsMapper; @Override public Long createTicketManagement(TicketManagementSaveReqVO createReqVO) { @@ -87,6 +101,31 @@ public class TicketManagementServiceImpl implements TicketManagementService { ticketManagementMapper.batchUpdateJobStatus(idList, reqVO.getJobStatus()); } + @Override + public List getInspectionByDeviceId(Long id,String startTime,String endTime,String ids) { + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(id); + //点检列表 + List inspectionList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.INSPECTION.getCode(),startTime,endTime,ids); + if(CollectionUtils.isNotEmpty(inspectionList)){ + deviceLedgerDO.setInspectionList(inspectionList); + } + + return inspectionList; + } + + @Override + public List getMaintenanceByDeviceId(Long id,String startTime,String endTime,String ids) { + DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(id); + + //点检列表 + List inspectionList = ticketResultsMapper.findByDeviceIdAndPlanType(id, PlanTypeEnum.MAINTENANCE.getCode(),startTime,endTime,ids); + if(CollectionUtils.isNotEmpty(inspectionList)){ + deviceLedgerDO.setInspectionList(inspectionList); + } + + return inspectionList; + } + /** * 解析逗号分隔的ID字符串 */ diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/ticketresults/TicketResultsMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/ticketresults/TicketResultsMapper.xml index 166bdfc478..c20d0d9647 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/ticketresults/TicketResultsMapper.xml +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/ticketresults/TicketResultsMapper.xml @@ -12,19 +12,32 @@ \ No newline at end of file