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 28998b31b3..28b6294db1 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 @@ -85,7 +85,7 @@ public interface ErrorCodeConstants { ErrorCode ZJ_PRODUCT_NOT_EXISTS = new ErrorCode(5_0093, "检验参数不存在"); - //======================================设备台账相关 1002000000================================================= + //======================================设备管理相关 1002000000================================================= ErrorCode DEVICE_TYPE_NOT_EXISTS = new ErrorCode(1002000000, "设备类型不存在"); ErrorCode DEVICE_TYPE_PARENT_NOT_EXISTS = new ErrorCode(1002000001, "父级设备类型不存在"); ErrorCode DEVICE_TYPE_PARENT_IS_SELF = new ErrorCode(1002000002, "不能设置自己为父级"); @@ -102,5 +102,6 @@ public interface ErrorCodeConstants { 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不存在"); - + ErrorCode CRITICAL_COMPONENT_NOT_EXISTS = new ErrorCode(1002000015, "设备关键件不存在"); + ErrorCode REPAIR_TEMS_NOT_EXISTS = new ErrorCode(1002000016, "维修项目不存在"); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/CriticalComponentController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/CriticalComponentController.java new file mode 100644 index 0000000000..d1c60c45da --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/CriticalComponentController.java @@ -0,0 +1,101 @@ +package cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +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; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.service.criticalcomponent.CriticalComponentService; + +@Tag(name = "管理后台 - 设备关键件") +@RestController +@RequestMapping("/mes/critical-component") +@Validated +public class CriticalComponentController { + + @Resource + private CriticalComponentService criticalComponentService; + + @PostMapping("/create") + @Operation(summary = "创建设备关键件") + @PreAuthorize("@ss.hasPermission('mes:critical-component:create')") + public CommonResult createCriticalComponent(@Valid @RequestBody CriticalComponentSaveReqVO createReqVO) { + return success(criticalComponentService.createCriticalComponent(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新设备关键件") + @PreAuthorize("@ss.hasPermission('mes:critical-component:update')") + public CommonResult updateCriticalComponent(@Valid @RequestBody CriticalComponentSaveReqVO updateReqVO) { + criticalComponentService.updateCriticalComponent(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除设备关键件") + @Parameter(name = "ids", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:critical-component:delete')") + public CommonResult deleteCriticalComponent(@RequestParam("ids") String ids) { + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + criticalComponentService.deleteCriticalComponent(idList); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得设备关键件") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:critical-component:query')") + public CommonResult getCriticalComponent(@RequestParam("id") Long id) { + CriticalComponentDO criticalComponent = criticalComponentService.getCriticalComponent(id); + return success(BeanUtils.toBean(criticalComponent, CriticalComponentRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得设备关键件分页") + @PreAuthorize("@ss.hasPermission('mes:critical-component:query')") + public CommonResult> getCriticalComponentPage(@Valid CriticalComponentPageReqVO pageReqVO) { + PageResult pageResult = criticalComponentService.getCriticalComponentPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, CriticalComponentRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出设备关键件 Excel") + @PreAuthorize("@ss.hasPermission('mes:critical-component:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportCriticalComponentExcel(@Valid CriticalComponentPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = criticalComponentService.getCriticalComponentPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "设备关键件.xls", "数据", CriticalComponentRespVO.class, + BeanUtils.toBean(list, CriticalComponentRespVO.class)); + } + +} \ 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/criticalcomponent/vo/CriticalComponentPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentPageReqVO.java new file mode 100644 index 0000000000..0d8911fb59 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentPageReqVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 设备关键件分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class CriticalComponentPageReqVO extends PageParam { + + @Schema(description = "编码(唯一标识)") + private String code; + + @Schema(description = "名称", example = "张三") + private String name; + + @Schema(description = "描述", example = "你说的对") + private String description; + + @Schema(description = "备注", example = "你说的对") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @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/criticalcomponent/vo/CriticalComponentRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentRespVO.java new file mode 100644 index 0000000000..f91e81a0ea --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentRespVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 设备关键件 Response VO") +@Data +@ExcelIgnoreUnannotated +public class CriticalComponentRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14503") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "编码(唯一标识)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("编码(唯一标识)") + private String code; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("名称") + private String name; + + @Schema(description = "描述", example = "你说的对") + @ExcelProperty("描述") + private String description; + + @Schema(description = "备注", example = "你说的对") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + 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/controller/admin/criticalcomponent/vo/CriticalComponentSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentSaveReqVO.java new file mode 100644 index 0000000000..4c26e5b794 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/criticalcomponent/vo/CriticalComponentSaveReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 设备关键件新增/修改 Request VO") +@Data +public class CriticalComponentSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14503") + private Long id; + + @Schema(description = "编码(唯一标识)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "编码(唯一标识)不能为空") + private String code; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "名称不能为空") + private String name; + + @Schema(description = "描述", example = "你说的对") + private String description; + + @Schema(description = "备注", example = "你说的对") + private String remark; + +} \ 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/deviceledger/vo/DeviceLedgerPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageReqVO.java index 28bcda2a3e..e819b2a729 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerPageReqVO.java @@ -77,4 +77,7 @@ public class DeviceLedgerPageReqVO extends PageParam { @Schema(description = "id集合导出用") private String ids; + @Schema(description = "关键件id") + private String 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/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 9ab10ec951..26c28508d3 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,12 +1,16 @@ 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.ticketresults.TicketResultsDO; import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; + import com.alibaba.excel.annotation.*; import org.springframework.format.annotation.DateTimeFormat; @@ -103,6 +107,16 @@ public class DeviceLedgerRespVO extends BaseDO { @ExcelProperty("创建人名字") private String creatorName; + @Schema(description = "点检结果列表") + private List inspectionList; + + @Schema(description = "保养结果列表") + private List maintainList; + @Schema(description = "附件地址") + @ExcelProperty("附件地址") + private String fileUrl; + @Schema(description = "关键件id") + private String 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/deviceledger/vo/DeviceLedgerSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerSaveReqVO.java index dd1f4f4326..18c2f09339 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/deviceledger/vo/DeviceLedgerSaveReqVO.java @@ -64,4 +64,9 @@ public class DeviceLedgerSaveReqVO { @Schema(description = "排序") private Integer sort; + @Schema(description = "附件下载") + private String fileUrl; + + @Schema(description = "关键件,ids集合") + private String 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/DvRepairController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/DvRepairController.java index baba71adfe..0a2cc1445c 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 @@ -10,8 +10,10 @@ import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqV 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.dal.dataobject.dvrepair.DvRepairDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import cn.iocoder.yudao.module.mes.service.dvrepair.DvRepairService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -23,7 +25,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -37,6 +41,9 @@ public class DvRepairController { @Resource private DvRepairService dvRepairService; + @Resource + private AdminUserApi adminUserApi; + @PostMapping("/create") @Operation(summary = "创建设备维修记录") @PreAuthorize("@ss.hasPermission('mes:dv-repair:create')") @@ -54,10 +61,16 @@ public class DvRepairController { @DeleteMapping("/delete") @Operation(summary = "删除设备维修记录") - @Parameter(name = "id", description = "编号", required = true) + @Parameter(name = "ids", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:dv-repair:delete')") - public CommonResult deleteDvRepair(@RequestParam("id") Long id) { - dvRepairService.deleteDvRepair(id); + public CommonResult deleteDvRepair(@RequestParam("ids") String ids) { + + // 将逗号分隔的字符串转换为Long类型的List + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + dvRepairService.deleteDvRepair(idList); return success(true); } @@ -75,7 +88,8 @@ public class DvRepairController { @PreAuthorize("@ss.hasPermission('mes:dv-repair:query')") public CommonResult> getDvRepairPage(@Valid DvRepairPageReqVO pageReqVO) { PageResult pageResult = dvRepairService.getDvRepairPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, DvRepairRespVO.class)); + PageResult dvRepairRespVOPageResult = BeanUtils.toBean(pageResult, DvRepairRespVO.class); + return success(buildCreatorName(dvRepairRespVOPageResult)); } @GetMapping("/export-excel") @@ -101,4 +115,20 @@ public class DvRepairController { return success(dvRepairService.getDvRepairLineListByRepairId(repairId)); } + + private PageResult buildCreatorName(PageResult dvSubjectRespVOPageResult) { + for (DvRepairRespVO dvSubjectRespVO : dvSubjectRespVOPageResult.getList()) { + 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()); + } + } + + return dvSubjectRespVOPageResult; + } + } \ 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/enums/MoldRecordStatusEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java new file mode 100644 index 0000000000..94e888d03f --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/enums/MoldRecordStatusEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.enums; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 单据状态枚举 + */ +@Getter +@AllArgsConstructor +public enum MoldRecordStatusEnum { + + PENDING(0, "待完成"), + COMPLETED(1, "已完成"), + // 可以根据需要添加其他状态 + CANCELED(2, "已取消"); + + @JsonValue + private final Integer code; + private final String name; + + @JsonCreator + public static MoldRecordStatusEnum getByCode(Integer code) { + if (code == null) { + return null; + } + for (MoldRecordStatusEnum status : MoldRecordStatusEnum.values()) { + if (status.getCode().equals(code)) { + return status; + } + } + return null; + } +} \ 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/DvRepairPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java index e687112f11..4d059ddf63 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dvrepair/vo/DvRepairPageReqVO.java @@ -60,14 +60,17 @@ public class DvRepairPageReqVO extends PageParam { @Schema(description = "验收人员") private String confirmBy; - @Schema(description = "单据状态", example = "1") - private String status; + @Schema(description = "单据状态0-待完成 1-已完成", example = "1") + private Integer status; - @Schema(description = "备注", example = "你猜") + @Schema(description = "备注") private String remark; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + + @Schema(description = "ids集合导出用") + 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/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 12cdc901da..ebaa9fbf7f 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,5 +1,6 @@ package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; +import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.enums.MoldRecordStatusEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -16,7 +17,7 @@ import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; public class DvRepairRespVO { @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809") - @ExcelProperty("ID") +// @ExcelProperty("ID") private Long id; @Schema(description = "维修单编号", requiredMode = Schema.RequiredMode.REQUIRED) @@ -28,7 +29,7 @@ public class DvRepairRespVO { private String repairName; @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6979") - @ExcelProperty("设备ID") +// @ExcelProperty("设备ID") private Long machineryId; @Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED) @@ -48,7 +49,7 @@ public class DvRepairRespVO { private String machinerySpec; @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622") - @ExcelProperty(value = "设备类型", converter = DictConvert.class) +// @ExcelProperty(value = "设备类型", converter = DictConvert.class) @DictFormat("mes_machine_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Long machineryTypeId; @@ -77,9 +78,9 @@ public class DvRepairRespVO { private String confirmBy; @Schema(description = "单据状态", example = "1") - @ExcelProperty(value = "单据状态", converter = DictConvert.class) + @ExcelProperty(value = "单据状态 0-待完成 1-已完成", converter = DictConvert.class) @DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 - private String status; + private MoldRecordStatusEnum status; @Schema(description = "备注", example = "你猜") @ExcelProperty("备注") @@ -89,4 +90,14 @@ public class DvRepairRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "设备类型 1-设备 2-关键件", example = "你猜") + private Integer deviceType; + + @Schema(description = "设备Id", example = "你猜") + private Long deviceId; + + @Schema(description = "关键件Id", example = "你猜") + 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/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 ed17d8e760..99d840ad66 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 @@ -1,6 +1,6 @@ package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo; -import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -24,15 +24,15 @@ public class DvRepairSaveReqVO { private String repairName; @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6979") - @NotNull(message = "设备ID不能为空") +// @NotNull(message = "设备ID不能为空") private Long machineryId; @Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "设备编码不能为空") +// @NotEmpty(message = "设备编码不能为空") private String machineryCode; @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") - @NotEmpty(message = "设备名称不能为空") +// @NotEmpty(message = "设备名称不能为空") private String machineryName; @Schema(description = "品牌") @@ -41,8 +41,8 @@ public class DvRepairSaveReqVO { @Schema(description = "规格型号") private String machinerySpec; - @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622") - @NotNull(message = "设备类型不能为空") + @Schema(description = "设备类型-待用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622") +// @NotNull(message = "设备类型不能为空") private Long machineryTypeId; @Schema(description = "报修日期") @@ -72,4 +72,13 @@ public class DvRepairSaveReqVO { @Schema(description = "设备维修记录行列表") private List dvRepairLines; + @Schema(description = "设备类型 1-设备 2-关键件") + private Integer deviceType; + + @Schema(description = "设备Id") + private Long deviceId; + + @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/repairtems/RepairTemsController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java new file mode 100644 index 0000000000..5ac489ea42 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/RepairTemsController.java @@ -0,0 +1,120 @@ +package cn.iocoder.yudao.module.mes.controller.admin.repairtems; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +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; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.repairtems.RepairTemsDO; +import cn.iocoder.yudao.module.mes.service.repairtems.RepairTemsService; + +@Tag(name = "管理后台 - 维修项目") +@RestController +@RequestMapping("/mes/repair-tems") +@Validated +public class RepairTemsController { + + @Resource + private RepairTemsService repairTemsService; + + @PostMapping("/create") + @Operation(summary = "创建维修项目") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:create')") + public CommonResult createRepairTems(@Valid @RequestBody RepairTemsSaveReqVO createReqVO) { + return success(repairTemsService.createRepairTems(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新维修项目") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:update')") + public CommonResult updateRepairTems(@Valid @RequestBody RepairTemsSaveReqVO updateReqVO) { + repairTemsService.updateRepairTems(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除维修项目") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('mes:repair-tems:delete')") + public CommonResult deleteRepairTems(@RequestParam("ids") String ids) { + List idList = Arrays.stream(ids.split(",")) + .map(String::trim) // 去除可能存在的空格 + .map(Long::valueOf) + .collect(Collectors.toList()); + repairTemsService.deleteRepairTems(idList); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得维修项目") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") + public CommonResult getRepairTems(@RequestParam("id") Long id) { + RepairTemsDO repairTems = repairTemsService.getRepairTems(id); + return success(BeanUtils.toBean(repairTems, RepairTemsRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得维修项目分页") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") + public CommonResult> getRepairTemsPage(@Valid RepairTemsPageReqVO pageReqVO) { + PageResult pageResult = repairTemsService.getRepairTemsPage(pageReqVO); + return success(pageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出维修项目 Excel") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportRepairTemsExcel(@Valid RepairTemsPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = repairTemsService.getRepairTemsPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "维修项目.xls", "数据", RepairTemsRespVO.class,list); + } + + + + @GetMapping("/getDeviceOrComponent") + @Operation(summary = "获得设备/关键件") + @Parameter(name = "deviceType", description = "deviceType 1-设备 2-关键件", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('mes:repair-tems:query')") + public CommonResult> getDeviceOrComponent(@RequestParam("deviceType") Integer deviceType) { + return success( repairTemsService.getDeviceOrComponent(deviceType)); + } + + @GetMapping("/getDeviceOrComponentList") + @Operation(summary = "获得设备/关键件列表") + @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) { + return success(repairTemsService.getDeviceOrComponentList(deviceId,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/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 new file mode 100644 index 0000000000..ce916eac08 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsPageReqVO.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 维修项目分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class RepairTemsPageReqVO extends PageParam { + + @Schema(description = "项目编码") + private String subjectCode; + + @Schema(description = "项目名称", example = "芋艿") + private String subjectName; + + @Schema(description = "设备类型", example = "1") + private Integer deviceType; + + @Schema(description = "设备id", example = "11632") + private Long deviceId; + + @Schema(description = "关键件id", example = "29557") + private Long componentId; + + @Schema(description = "检验方式") + private String inspectionMethod; + + @Schema(description = "值类型", example = "1") + private String valueType; + + @Schema(description = "判定基准") + private String judgmentCriteria; + + @Schema(description = "是否启用") + private Boolean isEnable; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "项目内容") + private String projectContent; + +} \ 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 new file mode 100644 index 0000000000..c7d9ffde33 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsRespVO.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 维修项目 Response VO") +@Data +@ExcelIgnoreUnannotated +public class RepairTemsRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15428") +// @ExcelProperty("ID") + private Long id; + + @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("项目编码") + private String subjectCode; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("项目名称") + private String subjectName; + + @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("设备类型") + private Integer deviceType; + + @Schema(description = "设备id", example = "11632") + @ExcelProperty("设备id") + private Long deviceId; + + @Schema(description = "关键件id", example = "29557") + @ExcelProperty("关键件id") + private Long componentId; + + @Schema(description = "检验方式") + @ExcelProperty("检验方式") + private String inspectionMethod; + + @Schema(description = "值类型", example = "1") + @ExcelProperty("值类型") + private String valueType; + + @Schema(description = "判定基准") + @ExcelProperty("判定基准") + private String judgmentCriteria; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否启用") + private Boolean isEnable; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "设备名称") + @ExcelProperty("设备名称") + private String deviceName; + + + @Schema(description = "关键件名称") + @ExcelProperty("关键件名称") + private String componentName; + + @Schema(description = "创建人名称") + @ExcelProperty("创建人名称") + private String creatroName; + + @Schema(description = "项目内容") + @ExcelProperty("项目内容") + private String projectContent; + +} \ 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/RepairTemsSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java new file mode 100644 index 0000000000..683c2a2b1c --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/repairtems/vo/RepairTemsSaveReqVO.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 维修项目新增/修改 Request VO") +@Data +public class RepairTemsSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15428") + private Long id; + + @Schema(description = "项目编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "项目编码不能为空") + private String subjectCode; + + @Schema(description = "项目名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "项目名称不能为空") + private String subjectName; + + @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "设备类型不能为空") + private Boolean deviceType; + + @Schema(description = "设备id", example = "11632") + private Long deviceId; + + @Schema(description = "关键件id", example = "29557") + private Long componentId; + + @Schema(description = "检验方式") + private String inspectionMethod; + + @Schema(description = "值类型", example = "1") + private String valueType; + + @Schema(description = "判定基准") + private String judgmentCriteria; + + @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "是否启用不能为空") + private Boolean isEnable; + + @Schema(description = "设备名称") + @ExcelProperty("设备名称") + private String deviceName; + + @Schema(description = "关键件名称") + @ExcelProperty("关键件名称") + private String componentName; + + @Schema(description = "创建人名称") + @ExcelProperty("创建人名称") + private String creatroName; + + @Schema(description = "项目内容") + @ExcelProperty("项目内容") + private String projectContent; +} \ 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/taskmanagement/TaskManagementController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java index be934909af..3181e4e5b8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/TaskManagementController.java @@ -1,5 +1,8 @@ package cn.iocoder.yudao.module.mes.controller.admin.taskmanagement; +import cn.iocoder.yudao.module.mes.controller.admin.planmaintenance.vo.PlanMaintenanceRespVO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -38,6 +41,9 @@ public class TaskManagementController { @Resource private TaskManagementService taskManagementService; + @Resource + private AdminUserApi adminUserApi; + @PostMapping("/create") @Operation(summary = "创建任务管理") @@ -82,7 +88,10 @@ public class TaskManagementController { @PreAuthorize("@ss.hasPermission('mes:task-management:query')") public CommonResult> getTaskManagementPage(@Valid TaskManagementPageReqVO pageReqVO) { PageResult pageResult = taskManagementService.getTaskManagementPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, TaskManagementRespVO.class)); + + PageResult taskManagementRespVOPageResult = BeanUtils.toBean(pageResult, TaskManagementRespVO.class); + buildPageCreatorName(taskManagementRespVOPageResult); + return success(taskManagementRespVOPageResult); } @GetMapping("/export-excel") @@ -93,9 +102,14 @@ public class TaskManagementController { HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = taskManagementService.getTaskManagementPage(pageReqVO).getList(); + List taskManagementRespVOList = BeanUtils.toBean(list, TaskManagementRespVO.class); + + for (TaskManagementRespVO planMaintenanceRespVO : taskManagementRespVOList) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator())); + planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + } // 导出 Excel - ExcelUtils.write(response, "设备类型.xls", "数据", TaskManagementRespVO.class, - BeanUtils.toBean(list, TaskManagementRespVO.class)); + ExcelUtils.write(response, "设备类型.xls", "数据", TaskManagementRespVO.class,taskManagementRespVOList); } @@ -107,4 +121,16 @@ public class TaskManagementController { return success(true); } + + private PageResult buildPageCreatorName(PageResult planMaintenanceRespVOPageResult) { + for (TaskManagementRespVO planMaintenanceRespVO : planMaintenanceRespVOPageResult.getList()) { + AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(planMaintenanceRespVO.getCreator())); + planMaintenanceRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + + } + + + return planMaintenanceRespVOPageResult; + } + } \ 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/taskmanagement/vo/TaskManagementRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementRespVO.java index 90c8f2208f..2b5247742e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementRespVO.java @@ -1,7 +1,15 @@ package cn.iocoder.yudao.module.mes.controller.admin.taskmanagement.vo; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +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 io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.time.LocalDate; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -10,7 +18,7 @@ import com.alibaba.excel.annotation.*; @Schema(description = "管理后台 - 设备类型 Response VO") @Data @ExcelIgnoreUnannotated -public class TaskManagementRespVO { +public class TaskManagementRespVO extends BaseDO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26348") @ExcelProperty("id") @@ -34,11 +42,13 @@ public class TaskManagementRespVO { @Schema(description = "起止开始日期") @ExcelProperty("起止开始日期") - private LocalDateTime startDate; + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate startDate; @Schema(description = "起止结束日期") @ExcelProperty("起止结束日期") - private LocalDateTime endDate; + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate endDate; @Schema(description = "cron表达式") @ExcelProperty("cron表达式") @@ -56,4 +66,12 @@ public class TaskManagementRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "创建人名字") + @ExcelProperty("创建人名字") + private String creatorName; + + @Schema(description = "项目表单名称") + @ExcelProperty("项目表单名称") + private String projectFormName; + } \ 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/taskmanagement/vo/TaskManagementSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementSaveReqVO.java index f7bd8d3999..2f977cae03 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/taskmanagement/vo/TaskManagementSaveReqVO.java @@ -1,5 +1,10 @@ package cn.iocoder.yudao.module.mes.controller.admin.taskmanagement.vo; +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 io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -28,10 +33,12 @@ public class TaskManagementSaveReqVO { private Long projectForm; @Schema(description = "起止开始日期") - private LocalDateTime startDate; + @JsonFormat(pattern = "yyyy-MM-dd") + private String startDate; @Schema(description = "起止结束日期") - private LocalDateTime endDate; + @JsonFormat(pattern = "yyyy-MM-dd") + private String endDate; @Schema(description = "cron表达式") private String cronExpression; 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 1312d8c71e..b2e90bbc86 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 @@ -117,6 +117,10 @@ public class TicketManagementController { for (TicketManagementRespVO ticketManagementRespVO : ticketManagementRespVOPageResult.getList()) { AdminUserRespDTO user = adminUserApi.getUser(Long.valueOf(ticketManagementRespVO.getCreator())); ticketManagementRespVO.setCreatorName( "(" + user.getUsername()+ ")" + user.getNickname()); + if (ticketManagementRespVO.getOperator()!=null){ + AdminUserRespDTO operator = adminUserApi.getUser(Long.valueOf(ticketManagementRespVO.getOperator())); + ticketManagementRespVO.setOperatorName("(" + operator.getUsername()+ ")" + operator.getNickname()); + } } return ticketManagementRespVOPageResult; } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/enums/PlanTypeEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/enums/PlanTypeEnum.java new file mode 100644 index 0000000000..4f65d9c178 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/enums/PlanTypeEnum.java @@ -0,0 +1,87 @@ +package cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums; + +import lombok.Getter; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 计划类型枚举 + * 1-点检 2-保养 + */ +@Getter +public enum PlanTypeEnum { + + INSPECTION(1, "点检"), + MAINTENANCE(2, "保养"); + + private final Integer code; + private final String description; + + PlanTypeEnum(Integer code, String description) { + this.code = code; + this.description = description; + } + + /** + * 根据code获取枚举 + */ + public static PlanTypeEnum getByCode(Integer code) { + if (code == null) { + return null; + } + for (PlanTypeEnum type : values()) { + if (type.getCode().equals(code)) { + return type; + } + } + return null; + } + + /** + * 根据code获取描述 + */ + public static String getDescriptionByCode(Integer code) { + PlanTypeEnum type = getByCode(code); + return type != null ? type.getDescription() : "未知"; + } + + /** + * 检查code是否有效 + */ + public static boolean isValidCode(Integer code) { + return getByCode(code) != null; + } + + /** + * 获取所有code列表 + */ + public static List getAllCodes() { + return Arrays.stream(values()) + .map(PlanTypeEnum::getCode) + .collect(Collectors.toList()); + } + + /** + * 获取所有描述列表 + */ + public static List getAllDescriptions() { + return Arrays.stream(values()) + .map(PlanTypeEnum::getDescription) + .collect(Collectors.toList()); + } + + /** + * 获取code和描述的映射 + */ + public static Map getCodeDescriptionMap() { + Map map = new LinkedHashMap<>(); + for (PlanTypeEnum type : values()) { + map.put(type.getCode(), type.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/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 322c61ef8c..5e9b94bacc 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 @@ -21,7 +21,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ public class TicketManagementPageReqVO extends PageParam { @Schema(description = "项目ID", example = "21368") - private String subjectId; + private Long taskId; @Schema(description = "方案ID", example = "20459") private Long planId; @@ -32,7 +32,7 @@ public class TicketManagementPageReqVO extends PageParam { @Schema(description = "设备名称", example = "张三") private String deviceName; - @Schema(description = "类型", example = "2") + @Schema(description = "类型(1-点检 2-保养)", example = "2") private String planType; @Schema(description = "计划配置名称", example = "赵六") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementRespVO.java index 5072e6d06b..bd7b557541 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketmanagement/vo/TicketManagementRespVO.java @@ -23,11 +23,11 @@ public class TicketManagementRespVO extends BaseDO { @ExcelProperty("id") private Long id; - @Schema(description = "项目ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21368") + @Schema(description = "任务Id", example = "21368") // @ExcelProperty("项目ID") - private Long subjectId; + private Long taskId; - @Schema(description = "方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20459") + @Schema(description = "方案ID", example = "20459") // @ExcelProperty("方案ID") private Long planId; @@ -82,7 +82,11 @@ public class TicketManagementRespVO extends BaseDO { @ExcelProperty("创建人名字") private String creatorName; - + @Schema(description = "作业人") + private String operator; + @Schema(description = "作业人名称") + @ExcelProperty("作业人名称") + private String operatorName; } \ 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/TicketResultsRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketresults/vo/TicketResultsRespVO.java index 1f5312ef22..b3c88ab1a4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketresults/vo/TicketResultsRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/ticketresults/vo/TicketResultsRespVO.java @@ -51,4 +51,6 @@ public class TicketResultsRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "设备Id") + private 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/dal/dataobject/criticalcomponent/CriticalComponentDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/criticalcomponent/CriticalComponentDO.java new file mode 100644 index 0000000000..18b80d4d1e --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/criticalcomponent/CriticalComponentDO.java @@ -0,0 +1,47 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 设备关键件 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_critical_component") +@KeySequence("mes_critical_component_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CriticalComponentDO extends BaseDO { + + /** + * 主键ID + */ + @TableId + private Long id; + /** + * 编码(唯一标识) + */ + private String code; + /** + * 名称 + */ + private String name; + /** + * 描述 + */ + private String description; + /** + * 备注 + */ + private String remark; + +} \ 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/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 19c71062c4..df09e8fac0 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,12 +1,11 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; import lombok.*; import java.time.*; import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -99,4 +98,32 @@ public class DeviceLedgerDO extends BaseDO { */ private Integer sort; + /** + * 附件地址 + */ + private String fileUrl; + + /** + * 关键件id + */ + private String componentId; + + /** + * 点检列表 + */ + @TableField(exist = false) + private List inspectionList; + + /** + * 保养列表 + */ + @TableField(exist = false) + private List maintainList; + + /** + * 维修列表 + */ + @TableField(exist = false) + private Map> repairList; + } \ 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 5a71704b8e..421e41dd30 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 @@ -89,14 +89,29 @@ public class DvRepairDO extends BaseDO { */ private String confirmBy; /** - * 单据状态 + * 单据状态0-待完成 1-已完成 * * 枚举 {@link TODO mes_mold_record_status 对应的类} */ - private String status; + private Integer status; /** * 备注 */ private String remark; + /** + * 设备类型 1-设备 2-关键件 + */ + private Integer deviceType; + + /** + * 设备Id + */ + private Long deviceId; + + /** + * 关键件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/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 8c11b576cc..08c894b210 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 @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline; +package cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair; import lombok.*; import java.util.*; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/repairtems/RepairTemsDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/repairtems/RepairTemsDO.java new file mode 100644 index 0000000000..ef4943a216 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/repairtems/RepairTemsDO.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.mes.dal.dataobject.repairtems; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 维修项目 DO + * + * @author 内蒙必硕 + */ +@TableName("mes_repair_tems") +@KeySequence("mes_repair_tems_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RepairTemsDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 项目编码 + */ + private String subjectCode; + /** + * 项目名称 + */ + private String subjectName; + /** + * 设备类型 + */ + private Integer deviceType; + /** + * 设备id + */ + private Long deviceId; + /** + * 关键件id + */ + private Long componentId; + /** + * 检验方式 + */ + private String inspectionMethod; + /** + * 值类型 + */ + private String valueType; + /** + * 判定基准 + */ + private String judgmentCriteria; + /** + * 是否启用 + */ + private Boolean isEnable; + /** + * 项目内容 + */ + private String projectContent; + + +} \ 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/taskmanagement/TaskManagementDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/taskmanagement/TaskManagementDO.java index 1a683a5bbf..9876c8dcb9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/taskmanagement/TaskManagementDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/taskmanagement/TaskManagementDO.java @@ -1,11 +1,17 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.taskmanagement; +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.*; + +import java.time.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -48,11 +54,16 @@ public class TaskManagementDO extends BaseDO { /** * 起止开始日期 */ - private LocalDateTime startDate; + @JsonFormat(pattern = "yyyy-MM-dd") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDate startDate; /** * 起止结束日期 */ - private LocalDateTime endDate; + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDate endDate; /** * cron表达式 */ @@ -66,4 +77,8 @@ public class TaskManagementDO extends BaseDO { */ private Boolean enabled; + @TableField(exist = false) + private String projectFormName; + + } \ 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/ticketmanagement/TicketManagementDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketmanagement/TicketManagementDO.java index add03ab761..b61a304338 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketmanagement/TicketManagementDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/ticketmanagement/TicketManagementDO.java @@ -35,9 +35,9 @@ public class TicketManagementDO extends BaseDO { @TableId private Long id; /** - * 项目ID + * 任务ID */ - private Long subjectId; + private Long taskId; /** * 方案ID */ @@ -51,7 +51,7 @@ public class TicketManagementDO extends BaseDO { */ private String deviceName; /** - * 类型 + * 类型(1-点检 2-保养) */ private int planType; /** @@ -66,7 +66,10 @@ public class TicketManagementDO extends BaseDO { * 作业结果 0-待完成 1-通过 2-不通过 */ private int jobResult; - + /** + * 作业人 + */ + private String operator; /** * 作业开始时间 */ 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 5782f1064a..5d204c4c97 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 @@ -60,5 +60,9 @@ public class TicketResultsDO extends BaseDO { * 检验人 */ private Long managementId; + /** + * 设备id + */ + private 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/dal/mysql/criticalcomponent/CriticalComponentMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/criticalcomponent/CriticalComponentMapper.java new file mode 100644 index 0000000000..2a36b61013 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/criticalcomponent/CriticalComponentMapper.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.criticalcomponent; + +import java.util.*; +import java.util.stream.Collectors; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.deviceledger.DeviceLedgerDO; +import com.alibaba.excel.util.StringUtils; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo.*; + +/** + * 设备关键件 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface CriticalComponentMapper extends BaseMapperX { + + default PageResult selectPage(CriticalComponentPageReqVO reqVO) { + + LambdaQueryWrapperX criticalComponentDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + criticalComponentDOLambdaQueryWrapperX + .eqIfPresent(CriticalComponentDO::getCode, reqVO.getCode()) + .likeIfPresent(CriticalComponentDO::getName, reqVO.getName()) + .eqIfPresent(CriticalComponentDO::getDescription, reqVO.getDescription()) + .eqIfPresent(CriticalComponentDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(CriticalComponentDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(CriticalComponentDO::getCreateTime); + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + criticalComponentDOLambdaQueryWrapperX.in(CriticalComponentDO::getId, idList); + } + + return selectPage(reqVO, criticalComponentDOLambdaQueryWrapperX); + } + +} \ 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/dvrepair/DvRepairLineMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairLineMapper.java index 45f4fd8839..01551e3196 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairLineMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairLineMapper.java @@ -1,4 +1,4 @@ -package cn.iocoder.yudao.module.mes.dal.mysql.dvrepairline; +package cn.iocoder.yudao.module.mes.dal.mysql.dvrepair; import java.util.*; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import org.apache.ibatis.annotations.Mapper; /** diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java index 1701a88ba6..84b672138a 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/dvrepair/DvRepairMapper.java @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.mes.dal.mysql.dvrepair; import java.util.*; +import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO; +import com.alibaba.excel.util.StringUtils; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.*; @@ -18,7 +21,10 @@ import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.*; public interface DvRepairMapper extends BaseMapperX { default PageResult selectPage(DvRepairPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() + + + LambdaQueryWrapperX dvRepairDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + dvRepairDOLambdaQueryWrapperX .eqIfPresent(DvRepairDO::getRepairCode, reqVO.getRepairCode()) .likeIfPresent(DvRepairDO::getRepairName, reqVO.getRepairName()) .eqIfPresent(DvRepairDO::getMachineryId, reqVO.getMachineryId()) @@ -36,7 +42,18 @@ public interface DvRepairMapper extends BaseMapperX { .eqIfPresent(DvRepairDO::getStatus, reqVO.getStatus()) .eqIfPresent(DvRepairDO::getRemark, reqVO.getRemark()) .betweenIfPresent(DvRepairDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(DvRepairDO::getId)); + .orderByDesc(DvRepairDO::getCreateTime); + + // 单独处理 ids 条件 + if (StringUtils.isNotBlank(reqVO.getIds())) { + List idList = Arrays.stream(reqVO.getIds().split(",")) + .map(String::trim) + .map(Long::valueOf) + .collect(Collectors.toList()); + dvRepairDOLambdaQueryWrapperX.in(DvRepairDO::getId, idList); + } + + return selectPage(reqVO,dvRepairDOLambdaQueryWrapperX ); } } \ 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/repairtems/RepairTemsMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/repairtems/RepairTemsMapper.java new file mode 100644 index 0000000000..d3e3f09543 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/repairtems/RepairTemsMapper.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.mes.dal.mysql.repairtems; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.mes.dal.dataobject.repairtems.RepairTemsDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.mes.controller.admin.repairtems.vo.*; +import org.apache.ibatis.annotations.Param; + +/** + * 维修项目 Mapper + * + * @author 内蒙必硕 + */ +@Mapper +public interface RepairTemsMapper extends BaseMapperX { + + default PageResult selectPage(RepairTemsPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(RepairTemsDO::getSubjectCode, reqVO.getSubjectCode()) + .likeIfPresent(RepairTemsDO::getSubjectName, reqVO.getSubjectName()) + .eqIfPresent(RepairTemsDO::getDeviceType, reqVO.getDeviceType()) + .eqIfPresent(RepairTemsDO::getDeviceId, reqVO.getDeviceId()) + .eqIfPresent(RepairTemsDO::getComponentId, reqVO.getComponentId()) + .eqIfPresent(RepairTemsDO::getInspectionMethod, reqVO.getInspectionMethod()) + .eqIfPresent(RepairTemsDO::getValueType, reqVO.getValueType()) + .eqIfPresent(RepairTemsDO::getJudgmentCriteria, reqVO.getJudgmentCriteria()) + .eqIfPresent(RepairTemsDO::getIsEnable, reqVO.getIsEnable()) + .betweenIfPresent(RepairTemsDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(RepairTemsDO::getId)); + } + + IPage getRepairTemsPage(Page page, @Param("pageReqVO") RepairTemsPageReqVO pageReqVO); + + List getRepairTemsList( @Param("pageReqVO") RepairTemsPageReqVO pageReqVO); + +} \ 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/ticketmanagement/TicketManagementMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java index ceb55385ea..57785a8c07 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/ticketmanagement/TicketManagementMapper.java @@ -25,7 +25,7 @@ public interface TicketManagementMapper extends BaseMapperX LambdaQueryWrapperX ticketManagementDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>(); ticketManagementDOLambdaQueryWrapperX - .eqIfPresent(TicketManagementDO::getSubjectId, reqVO.getSubjectId()) + .eqIfPresent(TicketManagementDO::getTaskId, reqVO.getTaskId()) .eqIfPresent(TicketManagementDO::getPlanId, reqVO.getPlanId()) .eqIfPresent(TicketManagementDO::getPlanNo, reqVO.getPlanNo()) .likeIfPresent(TicketManagementDO::getDeviceName, reqVO.getDeviceName()) 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 0723f76e02..3e0e84c175 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 @@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketresults.TicketResultsDO; import org.apache.ibatis.annotations.Mapper; import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.vo.*; +import org.apache.ibatis.annotations.Param; /** * 工单检验结果 Mapper @@ -31,4 +32,5 @@ public interface TicketResultsMapper extends BaseMapperX { .orderByDesc(TicketResultsDO::getId)); } + List findByDeviceIdAndPlanType(@Param("deviceId") Long deviceId,@Param("planType") Integer planType); } \ 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/criticalcomponent/CriticalComponentService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/criticalcomponent/CriticalComponentService.java new file mode 100644 index 0000000000..d7a058be43 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/criticalcomponent/CriticalComponentService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.mes.service.criticalcomponent; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 设备关键件 Service 接口 + * + * @author 内蒙必硕 + */ +public interface CriticalComponentService { + + /** + * 创建设备关键件 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createCriticalComponent(@Valid CriticalComponentSaveReqVO createReqVO); + + /** + * 更新设备关键件 + * + * @param updateReqVO 更新信息 + */ + void updateCriticalComponent(@Valid CriticalComponentSaveReqVO updateReqVO); + + /** + * 删除设备关键件 + * + * @param id 编号 + */ + void deleteCriticalComponent(List idList); + + /** + * 获得设备关键件 + * + * @param id 编号 + * @return 设备关键件 + */ + CriticalComponentDO getCriticalComponent(Long id); + + /** + * 获得设备关键件分页 + * + * @param pageReqVO 分页查询 + * @return 设备关键件分页 + */ + PageResult getCriticalComponentPage(CriticalComponentPageReqVO pageReqVO); + +} \ 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/criticalcomponent/CriticalComponentServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/criticalcomponent/CriticalComponentServiceImpl.java new file mode 100644 index 0000000000..6ba5377764 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/criticalcomponent/CriticalComponentServiceImpl.java @@ -0,0 +1,77 @@ +package cn.iocoder.yudao.module.mes.service.criticalcomponent; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.mes.controller.admin.criticalcomponent.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.criticalcomponent.CriticalComponentDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.criticalcomponent.CriticalComponentMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 设备关键件 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class CriticalComponentServiceImpl implements CriticalComponentService { + + @Resource + private CriticalComponentMapper criticalComponentMapper; + + @Override + public Long createCriticalComponent(CriticalComponentSaveReqVO createReqVO) { + // 插入 + CriticalComponentDO criticalComponent = BeanUtils.toBean(createReqVO, CriticalComponentDO.class); + criticalComponentMapper.insert(criticalComponent); + // 返回 + return criticalComponent.getId(); + } + + @Override + public void updateCriticalComponent(CriticalComponentSaveReqVO updateReqVO) { + // 校验存在 + validateCriticalComponentExists(updateReqVO.getId()); + // 更新 + CriticalComponentDO updateObj = BeanUtils.toBean(updateReqVO, CriticalComponentDO.class); + criticalComponentMapper.updateById(updateObj); + } + + @Override + public void deleteCriticalComponent(List idList) { + for (Long id : idList) { + // 校验存在 + validateCriticalComponentExists(id); + } + + // 删除 + criticalComponentMapper.deleteByIds(idList); + } + + private void validateCriticalComponentExists(Long id) { + if (criticalComponentMapper.selectById(id) == null) { + throw exception(CRITICAL_COMPONENT_NOT_EXISTS); + } + } + + @Override + public CriticalComponentDO getCriticalComponent(Long id) { + return criticalComponentMapper.selectById(id); + } + + @Override + public PageResult getCriticalComponentPage(CriticalComponentPageReqVO pageReqVO) { + return criticalComponentMapper.selectPage(pageReqVO); + } + +} \ 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 886467a941..be344cc3dd 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 @@ -1,6 +1,15 @@ package cn.iocoder.yudao.module.mes.service.deviceledger; +import cn.iocoder.yudao.module.mes.controller.admin.ticketmanagement.enums.PlanTypeEnum; +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.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.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -28,6 +37,17 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { @Resource private DeviceLedgerMapper deviceLedgerMapper; + @Resource + @Lazy + private TicketResultsMapper ticketResultsMapper; + + @Resource + private DvRepairLineMapper dvRepairLineMapper; + + @Resource + private DvRepairMapper dvRepairMapperRepair; + + @Override public Long createDeviceLedger(DeviceLedgerSaveReqVO createReqVO) { @@ -77,7 +97,38 @@ public class DeviceLedgerServiceImpl implements DeviceLedgerService { @Override public DeviceLedgerDO getDeviceLedger(Long id) { - return deviceLedgerMapper.selectById(id); + + 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)); + + for (DvRepairDO dvRepairDO : dvRepairDOS) { + List dvRepairLineDOS = dvRepairLineMapper.selectList(Wrappers.lambdaQuery() + .eq(DvRepairLineDO::getRepairId, dvRepairDO.getId()) + .orderByDesc(DvRepairLineDO::getCreateTime)); + dvRepairDOMap.put(dvRepairDO.getRepairName(),dvRepairLineDOS); + } + + if(CollectionUtils.isNotEmpty(dvRepairDOMap)){ + deviceLedgerDO.setRepairList(dvRepairDOMap); + } + + + return deviceLedgerDO; } @Override 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 4615761389..3e6547842c 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 @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.dal.dataobject.dvrepair.DvRepairDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import javax.validation.Valid; import java.util.List; @@ -36,7 +36,7 @@ public interface DvRepairService { * * @param id 编号 */ - void deleteDvRepair(Long id); + void deleteDvRepair(List idList); /** * 获得设备维修记录 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 def03327a5..c548378300 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 @@ -5,9 +5,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 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.dal.dataobject.dvrepair.DvRepairDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; +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.dvrepairline.DvRepairLineMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -60,14 +60,16 @@ public class DvRepairServiceImpl implements DvRepairService { @Override @Transactional(rollbackFor = Exception.class) - public void deleteDvRepair(Long id) { - // 校验存在 - validateDvRepairExists(id); - // 删除 - dvRepairMapper.deleteById(id); + public void deleteDvRepair(List idList) { + for (Long id : idList) { + // 校验存在 + validateDvRepairExists(id); + // 删除 + dvRepairMapper.deleteById(id); + // 删除子表 + deleteDvRepairLineByRepairId(id); + } - // 删除子表 - deleteDvRepairLineByRepairId(id); } private void validateDvRepairExists(Long id) { 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 new file mode 100644 index 0000000000..6f627d0753 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsService.java @@ -0,0 +1,58 @@ +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.repairtems.RepairTemsDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * 维修项目 Service 接口 + * + * @author 内蒙必硕 + */ +public interface RepairTemsService { + + /** + * 创建维修项目 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createRepairTems(@Valid RepairTemsSaveReqVO createReqVO); + + /** + * 更新维修项目 + * + * @param updateReqVO 更新信息 + */ + void updateRepairTems(@Valid RepairTemsSaveReqVO updateReqVO); + + /** + * 删除维修项目 + * + * @param id 编号 + */ + void deleteRepairTems( List idList); + + /** + * 获得维修项目 + * + * @param id 编号 + * @return 维修项目 + */ + RepairTemsDO getRepairTems(Long id); + + /** + * 获得维修项目分页 + * + * @param pageReqVO 分页查询 + * @return 维修项目分页 + */ + PageResult getRepairTemsPage(RepairTemsPageReqVO pageReqVO); + + List getDeviceOrComponent(Integer deviceType); + + List getDeviceOrComponentList(Long deviceId, 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/service/repairtems/RepairTemsServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java new file mode 100644 index 0000000000..fd35c90324 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/repairtems/RepairTemsServiceImpl.java @@ -0,0 +1,93 @@ +package cn.iocoder.yudao.module.mes.service.repairtems; + +import cn.iocoder.yudao.module.iot.controller.admin.device.vo.LineDeviceRespVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +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; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.mes.dal.mysql.repairtems.RepairTemsMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; + +/** + * 维修项目 Service 实现类 + * + * @author 内蒙必硕 + */ +@Service +@Validated +public class RepairTemsServiceImpl implements RepairTemsService { + + @Resource + private RepairTemsMapper repairTemsMapper; + + @Override + public Long createRepairTems(RepairTemsSaveReqVO createReqVO) { + // 插入 + RepairTemsDO repairTems = BeanUtils.toBean(createReqVO, RepairTemsDO.class); + repairTemsMapper.insert(repairTems); + // 返回 + return repairTems.getId(); + } + + @Override + public void updateRepairTems(RepairTemsSaveReqVO updateReqVO) { + // 校验存在 + validateRepairTemsExists(updateReqVO.getId()); + // 更新 + RepairTemsDO updateObj = BeanUtils.toBean(updateReqVO, RepairTemsDO.class); + repairTemsMapper.updateById(updateObj); + } + + @Override + public void deleteRepairTems( List idList) { + for (Long id : idList) { + // 校验存在 + validateRepairTemsExists(id); + } + + // 删除 + repairTemsMapper.deleteByIds(idList); + } + + private void validateRepairTemsExists(Long id) { + if (repairTemsMapper.selectById(id) == null) { + throw exception(REPAIR_TEMS_NOT_EXISTS); + } + } + + @Override + public RepairTemsDO getRepairTems(Long id) { + return repairTemsMapper.selectById(id); + } + + @Override + public PageResult getRepairTemsPage(RepairTemsPageReqVO pageReqVO) { + Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + IPage repairTemsDOIPage = repairTemsMapper.getRepairTemsPage(page,pageReqVO); + PageResult repairTemsDOPageResult = new PageResult<>(repairTemsDOIPage.getRecords(), repairTemsDOIPage.getTotal()); + return repairTemsDOPageResult; + } + + @Override + public List getDeviceOrComponent(Integer deviceType) { + return repairTemsMapper.getRepairTemsList(new RepairTemsPageReqVO().setDeviceType(deviceType)); + } + + @Override + public List getDeviceOrComponentList(Long deviceId, Long componentId) { + return repairTemsMapper.getRepairTemsList(new RepairTemsPageReqVO().setDeviceId(deviceId).setComponentId(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/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 ef2fa03431..996f2f5bd5 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 @@ -105,7 +105,15 @@ public class TaskManagementServiceImpl implements TaskManagementService { @Override public PageResult getTaskManagementPage(TaskManagementPageReqVO pageReqVO) { - return taskManagementMapper.selectPage(pageReqVO); + + PageResult taskManagementDOPageResult = taskManagementMapper.selectPage(pageReqVO); + for (TaskManagementDO taskManagementDO : taskManagementDOPageResult.getList()) { + PlanMaintenanceDO planMaintenanceDO = planMaintenanceMapper.selectById(taskManagementDO.getProjectForm()); + taskManagementDO.setProjectFormName(planMaintenanceDO.getPlanName()); + } + + + return taskManagementDOPageResult; } @Override @@ -130,12 +138,13 @@ public class TaskManagementServiceImpl implements TaskManagementService { for (Long deviceId : idList) { TicketManagementDO ticketManagementDO = new TicketManagementDO(); DeviceLedgerDO deviceLedgerDO = deviceLedgerMapper.selectById(deviceId); + ticketManagementDO.setTaskId(taskManagementDO.getId()); ticketManagementDO.setPlanNo(generatePrefixedOrderNo()); ticketManagementDO.setPlanId(taskManagementDO.getProjectForm()); ticketManagementDO.setDeviceName(deviceLedgerDO.getDeviceName()); ticketManagementDO.setPlanType(taskManagementDO.getTaskType()); ticketManagementDO.setConfigName(taskManagementDO.getName()); - ticketManagementDO.setTaskEndTime(taskManagementDO.getEndDate()); + ticketManagementDO.setTaskEndTime(taskManagementDO.getEndDate().atStartOfDay()); ticketManagementMapper.insert(ticketManagementDO); List dvSubjectDOList = new ArrayList<>(); @@ -148,6 +157,7 @@ public class TaskManagementServiceImpl implements TaskManagementService { ticketResultsDO.setInspectionMethod(dvSubjectDO.getInspectionMethod()); ticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria()); ticketResultsDO.setManagementId(ticketManagementDO.getId()); + ticketResultsDO.setDeviceId(deviceId); ticketResultsMapper.insert(ticketResultsDO); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketresults/TicketResultsServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketresults/TicketResultsServiceImpl.java index 0f75ce78f7..9e29a65b43 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketresults/TicketResultsServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/ticketresults/TicketResultsServiceImpl.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.mes.service.ticketresults; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.mes.controller.admin.ticketresults.enums.JobResultEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.ticketmanagement.TicketManagementDO; import cn.iocoder.yudao.module.mes.dal.mysql.ticketmanagement.TicketManagementMapper; @@ -108,6 +110,8 @@ public class TicketResultsServiceImpl implements TicketResultsService { //4. 判断是否全部已检验 handleInspectionResult(updateReqVOList); + + } /** @@ -155,14 +159,21 @@ public class TicketResultsServiceImpl implements TicketResultsService { if (ticketManagementDO == null ){ throw exception(TICKET_MANAGEMENT_NOT_EXISTS); } + ticketManagementDO.setTaskTime(LocalDateTime.now()); + //设置为已完成 + ticketManagementDO.setJobStatus(1); // 检查是否有不通过的 boolean hasFail = updateReqVOList.stream() .anyMatch(vo -> vo.getInspectionResult() != null && vo.getInspectionResult().equals(JobResultEnum.FAIL.getCode())); if (hasFail) { ticketManagementDO.setJobResult(JobResultEnum.FAIL.getCode()); + } else { ticketManagementDO.setJobResult(JobResultEnum.PASS.getCode()); } + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + ticketManagementDO.setOperator(String.valueOf(loginUser.getId())); + ticketManagementMapper.updateById(ticketManagementDO); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/criticalcomponent/CriticalComponentMapper.xml b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/criticalcomponent/CriticalComponentMapper.xml new file mode 100644 index 0000000000..ce6df3eafe --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/criticalcomponent/CriticalComponentMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ 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 new file mode 100644 index 0000000000..7ba8d04376 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/repairtems/RepairTemsMapper.xml @@ -0,0 +1,144 @@ + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000000..166bdfc478 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/resources/mapper/ticketresults/TicketResultsMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImplTest.java b/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImplTest.java index 1d84086f2c..40f8655137 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImplTest.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/test/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImplTest.java @@ -12,6 +12,8 @@ import org.springframework.context.annotation.Import; import javax.annotation.Resource; +import java.util.Collections; + import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime; import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.cloneIgnoreId; import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; @@ -84,7 +86,7 @@ public class DvRepairServiceImplTest extends BaseDbUnitTest { Long id = dbDvRepair.getId(); // 调用 - dvRepairService.deleteDvRepair(id); + dvRepairService.deleteDvRepair(Collections.singletonList(id)); // 校验数据不存在了 assertNull(dvRepairMapper.selectById(id)); } @@ -95,7 +97,7 @@ public class DvRepairServiceImplTest extends BaseDbUnitTest { Long id = randomLongId(); // 调用, 并断言异常 - assertServiceException(() -> dvRepairService.deleteDvRepair(id), DV_REPAIR_NOT_EXISTS); + assertServiceException(() -> dvRepairService.deleteDvRepair(Collections.singletonList(id)), DV_REPAIR_NOT_EXISTS); } @Test diff --git a/yudao-server/src/main/resources/application-dev.yaml b/yudao-server/src/main/resources/application-dev.yaml index 653abe9b50..5ce1e071f9 100644 --- a/yudao-server/src/main/resources/application-dev.yaml +++ b/yudao-server/src/main/resources/application-dev.yaml @@ -56,7 +56,7 @@ spring: tdengine: name: tdengine - url: jdbc:TAOS-RS://192.168.5.5:6042/besure?charset=UTF-8&locale=en_US.UTF-8 + url: jdbc:TAOS-RS://ngsk.tech:16042/besure?charset=UTF-8&locale=en_US.UTF-8 username: root password: taosdata driver-class-name: com.taosdata.jdbc.rs.RestfulDriver