add 维保
parent
8bf81f1416
commit
101a3084a0
@ -0,0 +1,115 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvcheck;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckRespVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheck.DvCheckDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheckdevice.DvCheckDeviceDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvchecksubject.DvCheckSubjectDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.service.dvcheck.DvCheckService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 维保计划")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/dv-check")
|
||||||
|
@Validated
|
||||||
|
public class DvCheckController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvCheckService dvCheckService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建维保计划")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:create')")
|
||||||
|
public CommonResult<Long> createDvCheck(@Valid @RequestBody DvCheckSaveReqVO createReqVO) {
|
||||||
|
return success(dvCheckService.createDvCheck(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新维保计划")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:update')")
|
||||||
|
public CommonResult<Boolean> updateDvCheck(@Valid @RequestBody DvCheckSaveReqVO updateReqVO) {
|
||||||
|
dvCheckService.updateDvCheck(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除维保计划")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:delete')")
|
||||||
|
public CommonResult<Boolean> deleteDvCheck(@RequestParam("id") Long id) {
|
||||||
|
dvCheckService.deleteDvCheck(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得维保计划")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:query')")
|
||||||
|
public CommonResult<DvCheckRespVO> getDvCheck(@RequestParam("id") Long id) {
|
||||||
|
DvCheckDO dvCheck = dvCheckService.getDvCheck(id);
|
||||||
|
return success(BeanUtils.toBean(dvCheck, DvCheckRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得维保计划分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:query')")
|
||||||
|
public CommonResult<PageResult<DvCheckRespVO>> getDvCheckPage(@Valid DvCheckPageReqVO pageReqVO) {
|
||||||
|
PageResult<DvCheckDO> pageResult = dvCheckService.getDvCheckPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, DvCheckRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出维保计划 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportDvCheckExcel(@Valid DvCheckPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<DvCheckDO> list = dvCheckService.getDvCheckPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "维保计划.xls", "数据", DvCheckRespVO.class,
|
||||||
|
BeanUtils.toBean(list, DvCheckRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 子表(维保计划设备) ====================
|
||||||
|
|
||||||
|
@GetMapping("/dv-check-device/list-by-plan-id")
|
||||||
|
@Operation(summary = "获得维保计划设备列表")
|
||||||
|
@Parameter(name = "planId", description = "计划ID")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:query')")
|
||||||
|
public CommonResult<List<DvCheckDeviceDO>> getDvCheckDeviceListByPlanId(@RequestParam("planId") Long planId) {
|
||||||
|
return success(dvCheckService.getDvCheckDeviceListByPlanId(planId));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 子表(维保计划项目) ====================
|
||||||
|
|
||||||
|
@GetMapping("/dv-check-subject/list-by-plan-id")
|
||||||
|
@Operation(summary = "获得维保计划项目列表")
|
||||||
|
@Parameter(name = "planId", description = "计划ID")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-check:query')")
|
||||||
|
public CommonResult<List<DvCheckSubjectDO>> getDvCheckSubjectListByPlanId(@RequestParam("planId") Long planId) {
|
||||||
|
return success(dvCheckService.getDvCheckSubjectListByPlanId(planId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
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 DvCheckPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "计划编码")
|
||||||
|
private String planCode;
|
||||||
|
|
||||||
|
@Schema(description = "计划名称", example = "张三")
|
||||||
|
private String planName;
|
||||||
|
|
||||||
|
@Schema(description = "计划类型", example = "2")
|
||||||
|
private String planType;
|
||||||
|
|
||||||
|
@Schema(description = "开始日期")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] startDate;
|
||||||
|
|
||||||
|
@Schema(description = "结束日期")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] endDate;
|
||||||
|
|
||||||
|
@Schema(description = "状态", example = "1")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
@Schema(description = "频率单位")
|
||||||
|
private String cycleUnit;
|
||||||
|
|
||||||
|
@Schema(description = "频率", example = "16646")
|
||||||
|
private BigDecimal cycleCount;
|
||||||
|
|
||||||
|
@Schema(description = "维保等级")
|
||||||
|
private String planLevel;
|
||||||
|
|
||||||
|
@Schema(description = "上次执行时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] lastTime;
|
||||||
|
|
||||||
|
@Schema(description = "计算公式")
|
||||||
|
private String formulaCode;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 维保计划 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class DvCheckRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4576")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("计划编码")
|
||||||
|
private String planCode;
|
||||||
|
|
||||||
|
@Schema(description = "计划名称", example = "张三")
|
||||||
|
@ExcelProperty("计划名称")
|
||||||
|
private String planName;
|
||||||
|
|
||||||
|
@Schema(description = "计划类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@ExcelProperty("计划类型")
|
||||||
|
private String planType;
|
||||||
|
|
||||||
|
@Schema(description = "开始日期")
|
||||||
|
@ExcelProperty("开始日期")
|
||||||
|
private LocalDateTime startDate;
|
||||||
|
|
||||||
|
@Schema(description = "结束日期")
|
||||||
|
@ExcelProperty("结束日期")
|
||||||
|
private LocalDateTime endDate;
|
||||||
|
|
||||||
|
@Schema(description = "状态", example = "1")
|
||||||
|
@ExcelProperty("状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
|
||||||
|
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@Schema(description = "频率单位")
|
||||||
|
@ExcelProperty(value = "频率单位", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_maintain_time_unit") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String cycleUnit;
|
||||||
|
|
||||||
|
@Schema(description = "频率", example = "16646")
|
||||||
|
@ExcelProperty("频率")
|
||||||
|
private BigDecimal cycleCount;
|
||||||
|
|
||||||
|
@Schema(description = "维保等级")
|
||||||
|
@ExcelProperty(value = "维保等级", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_mantain_level") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String planLevel;
|
||||||
|
|
||||||
|
@Schema(description = "上次执行时间")
|
||||||
|
@ExcelProperty("上次执行时间")
|
||||||
|
private LocalDateTime lastTime;
|
||||||
|
|
||||||
|
@Schema(description = "计算公式")
|
||||||
|
@ExcelProperty("计算公式")
|
||||||
|
private String formulaCode;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheckdevice.DvCheckDeviceDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvchecksubject.DvCheckSubjectDO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 维保计划新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class DvCheckSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4576")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "计划编码不能为空")
|
||||||
|
private String planCode;
|
||||||
|
|
||||||
|
@Schema(description = "计划名称", example = "张三")
|
||||||
|
private String planName;
|
||||||
|
|
||||||
|
@Schema(description = "计划类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@NotEmpty(message = "计划类型不能为空")
|
||||||
|
private String planType;
|
||||||
|
|
||||||
|
@Schema(description = "开始日期")
|
||||||
|
private LocalDateTime startDate;
|
||||||
|
|
||||||
|
@Schema(description = "结束日期")
|
||||||
|
private LocalDateTime endDate;
|
||||||
|
|
||||||
|
@Schema(description = "状态", example = "1")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "是否启用不能为空")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "频率单位")
|
||||||
|
private String cycleUnit;
|
||||||
|
|
||||||
|
@Schema(description = "频率", example = "16646")
|
||||||
|
private BigDecimal cycleCount;
|
||||||
|
|
||||||
|
@Schema(description = "维保等级")
|
||||||
|
private String planLevel;
|
||||||
|
|
||||||
|
@Schema(description = "上次执行时间")
|
||||||
|
private LocalDateTime lastTime;
|
||||||
|
|
||||||
|
@Schema(description = "计算公式")
|
||||||
|
private String formulaCode;
|
||||||
|
|
||||||
|
@Schema(description = "维保计划设备列表")
|
||||||
|
private List<DvCheckDeviceDO> dvCheckDevices;
|
||||||
|
|
||||||
|
@Schema(description = "维保计划项目列表")
|
||||||
|
private List<DvCheckSubjectDO> dvCheckSubjects;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,104 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairRespVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.service.dvrepair.DvRepairService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 设备维修记录")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/dv-repair")
|
||||||
|
@Validated
|
||||||
|
public class DvRepairController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvRepairService dvRepairService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建设备维修记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:create')")
|
||||||
|
public CommonResult<Long> createDvRepair(@Valid @RequestBody DvRepairSaveReqVO createReqVO) {
|
||||||
|
return success(dvRepairService.createDvRepair(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新设备维修记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:update')")
|
||||||
|
public CommonResult<Boolean> updateDvRepair(@Valid @RequestBody DvRepairSaveReqVO updateReqVO) {
|
||||||
|
dvRepairService.updateDvRepair(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除设备维修记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:delete')")
|
||||||
|
public CommonResult<Boolean> deleteDvRepair(@RequestParam("id") Long id) {
|
||||||
|
dvRepairService.deleteDvRepair(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得设备维修记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:query')")
|
||||||
|
public CommonResult<DvRepairRespVO> getDvRepair(@RequestParam("id") Long id) {
|
||||||
|
DvRepairDO dvRepair = dvRepairService.getDvRepair(id);
|
||||||
|
return success(BeanUtils.toBean(dvRepair, DvRepairRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得设备维修记录分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:query')")
|
||||||
|
public CommonResult<PageResult<DvRepairRespVO>> getDvRepairPage(@Valid DvRepairPageReqVO pageReqVO) {
|
||||||
|
PageResult<DvRepairDO> pageResult = dvRepairService.getDvRepairPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, DvRepairRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出设备维修记录 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportDvRepairExcel(@Valid DvRepairPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<DvRepairDO> list = dvRepairService.getDvRepairPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "设备维修记录.xls", "数据", DvRepairRespVO.class,
|
||||||
|
BeanUtils.toBean(list, DvRepairRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 子表(设备维修记录行) ====================
|
||||||
|
|
||||||
|
@GetMapping("/dv-repair-line/list-by-repair-id")
|
||||||
|
@Operation(summary = "获得设备维修记录行列表")
|
||||||
|
@Parameter(name = "repairId", description = "维修单ID")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-repair:query')")
|
||||||
|
public CommonResult<List<DvRepairLineDO>> getDvRepairLineListByRepairId(@RequestParam("repairId") Long repairId) {
|
||||||
|
return success(dvRepairService.getDvRepairLineListByRepairId(repairId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,73 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.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 DvRepairPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "维修单编号")
|
||||||
|
private String repairCode;
|
||||||
|
|
||||||
|
@Schema(description = "维修单名称", example = "王五")
|
||||||
|
private String repairName;
|
||||||
|
|
||||||
|
@Schema(description = "设备ID", example = "6979")
|
||||||
|
private Long machineryId;
|
||||||
|
|
||||||
|
@Schema(description = "设备编码")
|
||||||
|
private String machineryCode;
|
||||||
|
|
||||||
|
@Schema(description = "设备名称", example = "张三")
|
||||||
|
private String machineryName;
|
||||||
|
|
||||||
|
@Schema(description = "品牌")
|
||||||
|
private String machineryBrand;
|
||||||
|
|
||||||
|
@Schema(description = "规格型号")
|
||||||
|
private String machinerySpec;
|
||||||
|
|
||||||
|
@Schema(description = "设备类型", example = "1622")
|
||||||
|
private Long machineryTypeId;
|
||||||
|
|
||||||
|
@Schema(description = "报修日期")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] requireDate;
|
||||||
|
|
||||||
|
@Schema(description = "完成日期")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] finishDate;
|
||||||
|
|
||||||
|
@Schema(description = "验收日期")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] confirmDate;
|
||||||
|
|
||||||
|
@Schema(description = "维修结果")
|
||||||
|
private String repairResult;
|
||||||
|
|
||||||
|
@Schema(description = "维修人员")
|
||||||
|
private String acceptedBy;
|
||||||
|
|
||||||
|
@Schema(description = "验收人员")
|
||||||
|
private String confirmBy;
|
||||||
|
|
||||||
|
@Schema(description = "单据状态", example = "1")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 设备维修记录 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class DvRepairRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809")
|
||||||
|
@ExcelProperty("ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "维修单编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("维修单编号")
|
||||||
|
private String repairCode;
|
||||||
|
|
||||||
|
@Schema(description = "维修单名称", example = "王五")
|
||||||
|
@ExcelProperty("维修单名称")
|
||||||
|
private String repairName;
|
||||||
|
|
||||||
|
@Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6979")
|
||||||
|
@ExcelProperty("设备ID")
|
||||||
|
private Long machineryId;
|
||||||
|
|
||||||
|
@Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("设备编码")
|
||||||
|
private String machineryCode;
|
||||||
|
|
||||||
|
@Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||||
|
@ExcelProperty("设备名称")
|
||||||
|
private String machineryName;
|
||||||
|
|
||||||
|
@Schema(description = "品牌")
|
||||||
|
@ExcelProperty("品牌")
|
||||||
|
private String machineryBrand;
|
||||||
|
|
||||||
|
@Schema(description = "规格型号")
|
||||||
|
@ExcelProperty("规格型号")
|
||||||
|
private String machinerySpec;
|
||||||
|
|
||||||
|
@Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622")
|
||||||
|
@ExcelProperty(value = "设备类型", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_machine_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Long machineryTypeId;
|
||||||
|
|
||||||
|
@Schema(description = "报修日期")
|
||||||
|
@ExcelProperty("报修日期")
|
||||||
|
private LocalDateTime requireDate;
|
||||||
|
|
||||||
|
@Schema(description = "完成日期")
|
||||||
|
@ExcelProperty("完成日期")
|
||||||
|
private LocalDateTime finishDate;
|
||||||
|
|
||||||
|
@Schema(description = "验收日期")
|
||||||
|
@ExcelProperty("验收日期")
|
||||||
|
private LocalDateTime confirmDate;
|
||||||
|
|
||||||
|
@Schema(description = "维修结果")
|
||||||
|
@ExcelProperty("维修结果")
|
||||||
|
private String repairResult;
|
||||||
|
|
||||||
|
@Schema(description = "维修人员")
|
||||||
|
@ExcelProperty("维修人员")
|
||||||
|
private String acceptedBy;
|
||||||
|
|
||||||
|
@Schema(description = "验收人员")
|
||||||
|
@ExcelProperty("验收人员")
|
||||||
|
private String confirmBy;
|
||||||
|
|
||||||
|
@Schema(description = "单据状态", example = "1")
|
||||||
|
@ExcelProperty(value = "单据状态", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,75 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 设备维修记录新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class DvRepairSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27809")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "维修单编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "维修单编号不能为空")
|
||||||
|
private String repairCode;
|
||||||
|
|
||||||
|
@Schema(description = "维修单名称", example = "王五")
|
||||||
|
private String repairName;
|
||||||
|
|
||||||
|
@Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "6979")
|
||||||
|
@NotNull(message = "设备ID不能为空")
|
||||||
|
private Long machineryId;
|
||||||
|
|
||||||
|
@Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "设备编码不能为空")
|
||||||
|
private String machineryCode;
|
||||||
|
|
||||||
|
@Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||||
|
@NotEmpty(message = "设备名称不能为空")
|
||||||
|
private String machineryName;
|
||||||
|
|
||||||
|
@Schema(description = "品牌")
|
||||||
|
private String machineryBrand;
|
||||||
|
|
||||||
|
@Schema(description = "规格型号")
|
||||||
|
private String machinerySpec;
|
||||||
|
|
||||||
|
@Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1622")
|
||||||
|
@NotNull(message = "设备类型不能为空")
|
||||||
|
private Long machineryTypeId;
|
||||||
|
|
||||||
|
@Schema(description = "报修日期")
|
||||||
|
private LocalDateTime requireDate;
|
||||||
|
|
||||||
|
@Schema(description = "完成日期")
|
||||||
|
private LocalDateTime finishDate;
|
||||||
|
|
||||||
|
@Schema(description = "验收日期")
|
||||||
|
private LocalDateTime confirmDate;
|
||||||
|
|
||||||
|
@Schema(description = "维修结果")
|
||||||
|
private String repairResult;
|
||||||
|
|
||||||
|
@Schema(description = "维修人员")
|
||||||
|
private String acceptedBy;
|
||||||
|
|
||||||
|
@Schema(description = "验收人员")
|
||||||
|
private String confirmBy;
|
||||||
|
|
||||||
|
@Schema(description = "单据状态", example = "1")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你猜")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "设备维修记录行列表")
|
||||||
|
private List<DvRepairLineDO> dvRepairLines;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvsubject;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectRespVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.service.dvsubject.DvSubjectService;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 维保项目")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/dv-subject")
|
||||||
|
@Validated
|
||||||
|
public class DvSubjectController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvSubjectService dvSubjectService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建维保项目")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:create')")
|
||||||
|
public CommonResult<Long> createDvSubject(@Valid @RequestBody DvSubjectSaveReqVO createReqVO) {
|
||||||
|
return success(dvSubjectService.createDvSubject(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新维保项目")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:update')")
|
||||||
|
public CommonResult<Boolean> updateDvSubject(@Valid @RequestBody DvSubjectSaveReqVO updateReqVO) {
|
||||||
|
dvSubjectService.updateDvSubject(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除维保项目")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:delete')")
|
||||||
|
public CommonResult<Boolean> deleteDvSubject(@RequestParam("id") Long id) {
|
||||||
|
dvSubjectService.deleteDvSubject(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得维保项目")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:query')")
|
||||||
|
public CommonResult<DvSubjectRespVO> getDvSubject(@RequestParam("id") Long id) {
|
||||||
|
DvSubjectDO dvSubject = dvSubjectService.getDvSubject(id);
|
||||||
|
return success(BeanUtils.toBean(dvSubject, DvSubjectRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得维保项目分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:query')")
|
||||||
|
public CommonResult<PageResult<DvSubjectRespVO>> getDvSubjectPage(@Valid DvSubjectPageReqVO pageReqVO) {
|
||||||
|
PageResult<DvSubjectDO> pageResult = dvSubjectService.getDvSubjectPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, DvSubjectRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出维保项目 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:dv-subject:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportDvSubjectExcel(@Valid DvSubjectPageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<DvSubjectDO> list = dvSubjectService.getDvSubjectPage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "维保项目.xls", "数据", DvSubjectRespVO.class,
|
||||||
|
BeanUtils.toBean(list, DvSubjectRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvsubject.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 DvSubjectPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "项目编码")
|
||||||
|
private String subjectCode;
|
||||||
|
|
||||||
|
@Schema(description = "项目名称", example = "李四")
|
||||||
|
private String subjectName;
|
||||||
|
|
||||||
|
@Schema(description = "项目类型", example = "2")
|
||||||
|
private String subjectType;
|
||||||
|
|
||||||
|
@Schema(description = "项目内容")
|
||||||
|
private String subjectContent;
|
||||||
|
|
||||||
|
@Schema(description = "标准")
|
||||||
|
private String subjectStandard;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.alibaba.excel.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 维保项目 Response VO")
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
public class DvSubjectRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679")
|
||||||
|
@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 = "项目类型", example = "2")
|
||||||
|
@ExcelProperty("项目类型")
|
||||||
|
private String subjectType;
|
||||||
|
|
||||||
|
@Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("项目内容")
|
||||||
|
private String subjectContent;
|
||||||
|
|
||||||
|
@Schema(description = "标准")
|
||||||
|
@ExcelProperty("标准")
|
||||||
|
private String subjectStandard;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty(value = "是否启用", converter = DictConvert.class)
|
||||||
|
@DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 维保项目新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class DvSubjectSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24679")
|
||||||
|
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 = "项目类型", example = "2")
|
||||||
|
private String subjectType;
|
||||||
|
|
||||||
|
@Schema(description = "项目内容", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "项目内容不能为空")
|
||||||
|
private String subjectContent;
|
||||||
|
|
||||||
|
@Schema(description = "标准")
|
||||||
|
private String subjectStandard;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "是否启用不能为空")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvcheck;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保计划 DO
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@TableName("mes_dv_check")
|
||||||
|
@KeySequence("mes_dv_check_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvCheckDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 计划编码
|
||||||
|
*/
|
||||||
|
private String planCode;
|
||||||
|
/**
|
||||||
|
* 计划名称
|
||||||
|
*/
|
||||||
|
private String planName;
|
||||||
|
/**
|
||||||
|
* 计划类型
|
||||||
|
*/
|
||||||
|
private String planType;
|
||||||
|
/**
|
||||||
|
* 开始日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime startDate;
|
||||||
|
/**
|
||||||
|
* 结束日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime endDate;
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
/**
|
||||||
|
* 频率单位
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO mes_maintain_time_unit 对应的类}
|
||||||
|
*/
|
||||||
|
private String cycleUnit;
|
||||||
|
/**
|
||||||
|
* 频率
|
||||||
|
*/
|
||||||
|
private BigDecimal cycleCount;
|
||||||
|
/**
|
||||||
|
* 维保等级
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO mes_mantain_level 对应的类}
|
||||||
|
*/
|
||||||
|
private String planLevel;
|
||||||
|
/**
|
||||||
|
* 上次执行时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime lastTime;
|
||||||
|
/**
|
||||||
|
* 计算公式
|
||||||
|
*/
|
||||||
|
private String formulaCode;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvcheckdevice;
|
||||||
|
|
||||||
|
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_dv_check_device")
|
||||||
|
@KeySequence("mes_dv_check_device_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvCheckDeviceDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 计划ID
|
||||||
|
*/
|
||||||
|
private Long planId;
|
||||||
|
/**
|
||||||
|
* 设备ID
|
||||||
|
*/
|
||||||
|
private Long machineryId;
|
||||||
|
/**
|
||||||
|
* 设备编码
|
||||||
|
*/
|
||||||
|
private String machineryCode;
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String machineryName;
|
||||||
|
/**
|
||||||
|
* 品牌
|
||||||
|
*/
|
||||||
|
private String machineryBrand;
|
||||||
|
/**
|
||||||
|
* 规格型号
|
||||||
|
*/
|
||||||
|
private String machinerySpec;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,63 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvchecksubject;
|
||||||
|
|
||||||
|
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_dv_check_subject")
|
||||||
|
@KeySequence("mes_dv_check_subject_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvCheckSubjectDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 计划ID
|
||||||
|
*/
|
||||||
|
private Long planId;
|
||||||
|
/**
|
||||||
|
* 设备ID
|
||||||
|
*/
|
||||||
|
private Long subjectId;
|
||||||
|
/**
|
||||||
|
* 项目编码
|
||||||
|
*/
|
||||||
|
private String subjectCode;
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
private String subjectName;
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
private String subjectType;
|
||||||
|
/**
|
||||||
|
* 项目内容
|
||||||
|
*/
|
||||||
|
private String subjectContent;
|
||||||
|
/**
|
||||||
|
* 标准
|
||||||
|
*/
|
||||||
|
private String subjectStandard;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,102 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备维修记录 DO
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@TableName("mes_dv_repair")
|
||||||
|
@KeySequence("mes_dv_repair_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvRepairDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 维修单编号
|
||||||
|
*/
|
||||||
|
private String repairCode;
|
||||||
|
/**
|
||||||
|
* 维修单名称
|
||||||
|
*/
|
||||||
|
private String repairName;
|
||||||
|
/**
|
||||||
|
* 设备ID
|
||||||
|
*/
|
||||||
|
private Long machineryId;
|
||||||
|
/**
|
||||||
|
* 设备编码
|
||||||
|
*/
|
||||||
|
private String machineryCode;
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String machineryName;
|
||||||
|
/**
|
||||||
|
* 品牌
|
||||||
|
*/
|
||||||
|
private String machineryBrand;
|
||||||
|
/**
|
||||||
|
* 规格型号
|
||||||
|
*/
|
||||||
|
private String machinerySpec;
|
||||||
|
/**
|
||||||
|
* 设备类型
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO mes_machine_type 对应的类}
|
||||||
|
*/
|
||||||
|
private Long machineryTypeId;
|
||||||
|
/**
|
||||||
|
* 报修日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime requireDate;
|
||||||
|
/**
|
||||||
|
* 完成日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime finishDate;
|
||||||
|
/**
|
||||||
|
* 验收日期
|
||||||
|
*/
|
||||||
|
private LocalDateTime confirmDate;
|
||||||
|
/**
|
||||||
|
* 维修结果
|
||||||
|
*/
|
||||||
|
private String repairResult;
|
||||||
|
/**
|
||||||
|
* 维修人员
|
||||||
|
*/
|
||||||
|
private String acceptedBy;
|
||||||
|
/**
|
||||||
|
* 验收人员
|
||||||
|
*/
|
||||||
|
private String confirmBy;
|
||||||
|
/**
|
||||||
|
* 单据状态
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO mes_mold_record_status 对应的类}
|
||||||
|
*/
|
||||||
|
private String status;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,75 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline;
|
||||||
|
|
||||||
|
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_dv_repair_line")
|
||||||
|
@KeySequence("mes_dv_repair_line_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvRepairLineDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 维修单ID
|
||||||
|
*/
|
||||||
|
private Long repairId;
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
private Long subjectId;
|
||||||
|
/**
|
||||||
|
* 项目编码
|
||||||
|
*/
|
||||||
|
private String subjectCode;
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
private String subjectName;
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
private String subjectType;
|
||||||
|
/**
|
||||||
|
* 项目内容
|
||||||
|
*/
|
||||||
|
private String subjectContent;
|
||||||
|
/**
|
||||||
|
* 标准
|
||||||
|
*/
|
||||||
|
private String subjectStandard;
|
||||||
|
/**
|
||||||
|
* 故障描述
|
||||||
|
*/
|
||||||
|
private String malfunction;
|
||||||
|
/**
|
||||||
|
* 故障描述资源
|
||||||
|
*/
|
||||||
|
private String malfunctionUrl;
|
||||||
|
/**
|
||||||
|
* 维修情况
|
||||||
|
*/
|
||||||
|
private String repairDes;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject;
|
||||||
|
|
||||||
|
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_dv_subject")
|
||||||
|
@KeySequence("mes_dv_subject_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DvSubjectDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 项目编码
|
||||||
|
*/
|
||||||
|
private String subjectCode;
|
||||||
|
/**
|
||||||
|
* 项目名称
|
||||||
|
*/
|
||||||
|
private String subjectName;
|
||||||
|
/**
|
||||||
|
* 项目类型
|
||||||
|
*/
|
||||||
|
private String subjectType;
|
||||||
|
/**
|
||||||
|
* 项目内容
|
||||||
|
*/
|
||||||
|
private String subjectContent;
|
||||||
|
/**
|
||||||
|
* 标准
|
||||||
|
*/
|
||||||
|
private String subjectStandard;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvcheckdevice;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
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.dvcheckdevice.DvCheckDeviceDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保计划设备 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvCheckDeviceMapper extends BaseMapperX<DvCheckDeviceDO> {
|
||||||
|
|
||||||
|
default List<DvCheckDeviceDO> selectListByPlanId(Long planId) {
|
||||||
|
return selectList(DvCheckDeviceDO::getPlanId, planId);
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByPlanId(Long planId) {
|
||||||
|
return delete(DvCheckDeviceDO::getPlanId, planId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvcheck;
|
||||||
|
|
||||||
|
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.dvcheck.DvCheckDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保计划 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvCheckMapper extends BaseMapperX<DvCheckDO> {
|
||||||
|
|
||||||
|
default PageResult<DvCheckDO> selectPage(DvCheckPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<DvCheckDO>()
|
||||||
|
.eqIfPresent(DvCheckDO::getPlanCode, reqVO.getPlanCode())
|
||||||
|
.likeIfPresent(DvCheckDO::getPlanName, reqVO.getPlanName())
|
||||||
|
.eqIfPresent(DvCheckDO::getPlanType, reqVO.getPlanType())
|
||||||
|
.betweenIfPresent(DvCheckDO::getStartDate, reqVO.getStartDate())
|
||||||
|
.betweenIfPresent(DvCheckDO::getEndDate, reqVO.getEndDate())
|
||||||
|
.eqIfPresent(DvCheckDO::getStatus, reqVO.getStatus())
|
||||||
|
.eqIfPresent(DvCheckDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(DvCheckDO::getIsEnable, reqVO.getIsEnable())
|
||||||
|
.betweenIfPresent(DvCheckDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.eqIfPresent(DvCheckDO::getCycleUnit, reqVO.getCycleUnit())
|
||||||
|
.eqIfPresent(DvCheckDO::getCycleCount, reqVO.getCycleCount())
|
||||||
|
.eqIfPresent(DvCheckDO::getPlanLevel, reqVO.getPlanLevel())
|
||||||
|
.betweenIfPresent(DvCheckDO::getLastTime, reqVO.getLastTime())
|
||||||
|
.eqIfPresent(DvCheckDO::getFormulaCode, reqVO.getFormulaCode())
|
||||||
|
.orderByDesc(DvCheckDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvchecksubject;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
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.dvchecksubject.DvCheckSubjectDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保计划项目 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvCheckSubjectMapper extends BaseMapperX<DvCheckSubjectDO> {
|
||||||
|
|
||||||
|
default List<DvCheckSubjectDO> selectListByPlanId(Long planId) {
|
||||||
|
return selectList(DvCheckSubjectDO::getPlanId, planId);
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByPlanId(Long planId) {
|
||||||
|
return delete(DvCheckSubjectDO::getPlanId, planId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvrepairline;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
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 org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备维修记录行 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvRepairLineMapper extends BaseMapperX<DvRepairLineDO> {
|
||||||
|
|
||||||
|
default List<DvRepairLineDO> selectListByRepairId(Long repairId) {
|
||||||
|
return selectList(DvRepairLineDO::getRepairId, repairId);
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByRepairId(Long repairId) {
|
||||||
|
return delete(DvRepairLineDO::getRepairId, repairId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvrepair;
|
||||||
|
|
||||||
|
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.dvrepair.DvRepairDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备维修记录 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvRepairMapper extends BaseMapperX<DvRepairDO> {
|
||||||
|
|
||||||
|
default PageResult<DvRepairDO> selectPage(DvRepairPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<DvRepairDO>()
|
||||||
|
.eqIfPresent(DvRepairDO::getRepairCode, reqVO.getRepairCode())
|
||||||
|
.likeIfPresent(DvRepairDO::getRepairName, reqVO.getRepairName())
|
||||||
|
.eqIfPresent(DvRepairDO::getMachineryId, reqVO.getMachineryId())
|
||||||
|
.eqIfPresent(DvRepairDO::getMachineryCode, reqVO.getMachineryCode())
|
||||||
|
.likeIfPresent(DvRepairDO::getMachineryName, reqVO.getMachineryName())
|
||||||
|
.eqIfPresent(DvRepairDO::getMachineryBrand, reqVO.getMachineryBrand())
|
||||||
|
.eqIfPresent(DvRepairDO::getMachinerySpec, reqVO.getMachinerySpec())
|
||||||
|
.eqIfPresent(DvRepairDO::getMachineryTypeId, reqVO.getMachineryTypeId())
|
||||||
|
.betweenIfPresent(DvRepairDO::getRequireDate, reqVO.getRequireDate())
|
||||||
|
.betweenIfPresent(DvRepairDO::getFinishDate, reqVO.getFinishDate())
|
||||||
|
.betweenIfPresent(DvRepairDO::getConfirmDate, reqVO.getConfirmDate())
|
||||||
|
.eqIfPresent(DvRepairDO::getRepairResult, reqVO.getRepairResult())
|
||||||
|
.eqIfPresent(DvRepairDO::getAcceptedBy, reqVO.getAcceptedBy())
|
||||||
|
.eqIfPresent(DvRepairDO::getConfirmBy, reqVO.getConfirmBy())
|
||||||
|
.eqIfPresent(DvRepairDO::getStatus, reqVO.getStatus())
|
||||||
|
.eqIfPresent(DvRepairDO::getRemark, reqVO.getRemark())
|
||||||
|
.betweenIfPresent(DvRepairDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(DvRepairDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.dvsubject;
|
||||||
|
|
||||||
|
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.dvsubject.DvSubjectDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保项目 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface DvSubjectMapper extends BaseMapperX<DvSubjectDO> {
|
||||||
|
|
||||||
|
default PageResult<DvSubjectDO> selectPage(DvSubjectPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<DvSubjectDO>()
|
||||||
|
.eqIfPresent(DvSubjectDO::getSubjectCode, reqVO.getSubjectCode())
|
||||||
|
.likeIfPresent(DvSubjectDO::getSubjectName, reqVO.getSubjectName())
|
||||||
|
.eqIfPresent(DvSubjectDO::getSubjectType, reqVO.getSubjectType())
|
||||||
|
.eqIfPresent(DvSubjectDO::getSubjectContent, reqVO.getSubjectContent())
|
||||||
|
.eqIfPresent(DvSubjectDO::getSubjectStandard, reqVO.getSubjectStandard())
|
||||||
|
.eqIfPresent(DvSubjectDO::getIsEnable, reqVO.getIsEnable())
|
||||||
|
.betweenIfPresent(DvSubjectDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(DvSubjectDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvcheck;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheck.DvCheckDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheckdevice.DvCheckDeviceDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvchecksubject.DvCheckSubjectDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保计划 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface DvCheckService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建维保计划
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createDvCheck(@Valid DvCheckSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新维保计划
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateDvCheck(@Valid DvCheckSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除维保计划
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteDvCheck(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保计划
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 维保计划
|
||||||
|
*/
|
||||||
|
DvCheckDO getDvCheck(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保计划分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 维保计划分页
|
||||||
|
*/
|
||||||
|
PageResult<DvCheckDO> getDvCheckPage(DvCheckPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
// ==================== 子表(维保计划设备) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保计划设备列表
|
||||||
|
*
|
||||||
|
* @param planId 计划ID
|
||||||
|
* @return 维保计划设备列表
|
||||||
|
*/
|
||||||
|
List<DvCheckDeviceDO> getDvCheckDeviceListByPlanId(Long planId);
|
||||||
|
|
||||||
|
// ==================== 子表(维保计划项目) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保计划项目列表
|
||||||
|
*
|
||||||
|
* @param planId 计划ID
|
||||||
|
* @return 维保计划项目列表
|
||||||
|
*/
|
||||||
|
List<DvCheckSubjectDO> getDvCheckSubjectListByPlanId(Long planId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvrepair;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.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 javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备维修记录 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface DvRepairService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建设备维修记录
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createDvRepair(@Valid DvRepairSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新设备维修记录
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateDvRepair(@Valid DvRepairSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除设备维修记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteDvRepair(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得设备维修记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 设备维修记录
|
||||||
|
*/
|
||||||
|
DvRepairDO getDvRepair(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得设备维修记录分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 设备维修记录分页
|
||||||
|
*/
|
||||||
|
PageResult<DvRepairDO> getDvRepairPage(DvRepairPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
// ==================== 子表(设备维修记录行) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得设备维修记录行列表
|
||||||
|
*
|
||||||
|
* @param repairId 维修单ID
|
||||||
|
* @return 设备维修记录行列表
|
||||||
|
*/
|
||||||
|
List<DvRepairLineDO> getDvRepairLineListByRepairId(Long repairId);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,55 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvsubject;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保项目 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface DvSubjectService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建维保项目
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createDvSubject(@Valid DvSubjectSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新维保项目
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateDvSubject(@Valid DvSubjectSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除维保项目
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteDvSubject(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保项目
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 维保项目
|
||||||
|
*/
|
||||||
|
DvSubjectDO getDvSubject(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得维保项目分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 维保项目分页
|
||||||
|
*/
|
||||||
|
PageResult<DvSubjectDO> getDvSubjectPage(DvSubjectPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,71 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvsubject;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_SUBJECT_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 维保项目 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class DvSubjectServiceImpl implements DvSubjectService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvSubjectMapper dvSubjectMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createDvSubject(DvSubjectSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
DvSubjectDO dvSubject = BeanUtils.toBean(createReqVO, DvSubjectDO.class);
|
||||||
|
dvSubjectMapper.insert(dvSubject);
|
||||||
|
// 返回
|
||||||
|
return dvSubject.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateDvSubject(DvSubjectSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateDvSubjectExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
DvSubjectDO updateObj = BeanUtils.toBean(updateReqVO, DvSubjectDO.class);
|
||||||
|
dvSubjectMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteDvSubject(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateDvSubjectExists(id);
|
||||||
|
// 删除
|
||||||
|
dvSubjectMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateDvSubjectExists(Long id) {
|
||||||
|
if (dvSubjectMapper.selectById(id) == null) {
|
||||||
|
throw exception(DV_SUBJECT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DvSubjectDO getDvSubject(Long id) {
|
||||||
|
return dvSubjectMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<DvSubjectDO> getDvSubjectPage(DvSubjectPageReqVO pageReqVO) {
|
||||||
|
return dvSubjectMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,175 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvcheck;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvcheck.vo.DvCheckSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvcheck.DvCheckDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.dvcheck.DvCheckMapper;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
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;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_CHECK_NOT_EXISTS;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link DvCheckServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(DvCheckServiceImpl.class)
|
||||||
|
public class DvCheckServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvCheckServiceImpl dvCheckService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvCheckMapper dvCheckMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateDvCheck_success() {
|
||||||
|
// 准备参数
|
||||||
|
DvCheckSaveReqVO createReqVO = randomPojo(DvCheckSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long dvCheckId = dvCheckService.createDvCheck(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(dvCheckId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
DvCheckDO dvCheck = dvCheckMapper.selectById(dvCheckId);
|
||||||
|
assertPojoEquals(createReqVO, dvCheck, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvCheck_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvCheckDO dbDvCheck = randomPojo(DvCheckDO.class);
|
||||||
|
dvCheckMapper.insert(dbDvCheck);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
DvCheckSaveReqVO updateReqVO = randomPojo(DvCheckSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbDvCheck.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvCheckService.updateDvCheck(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
DvCheckDO dvCheck = dvCheckMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, dvCheck);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvCheck_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
DvCheckSaveReqVO updateReqVO = randomPojo(DvCheckSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvCheckService.updateDvCheck(updateReqVO), DV_CHECK_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvCheck_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvCheckDO dbDvCheck = randomPojo(DvCheckDO.class);
|
||||||
|
dvCheckMapper.insert(dbDvCheck);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbDvCheck.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvCheckService.deleteDvCheck(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(dvCheckMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvCheck_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvCheckService.deleteDvCheck(id), DV_CHECK_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetDvCheckPage() {
|
||||||
|
// mock 数据
|
||||||
|
DvCheckDO dbDvCheck = randomPojo(DvCheckDO.class, o -> { // 等会查询到
|
||||||
|
o.setPlanCode(null);
|
||||||
|
o.setPlanName(null);
|
||||||
|
o.setPlanType(null);
|
||||||
|
o.setStartDate(null);
|
||||||
|
o.setEndDate(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
o.setCycleUnit(null);
|
||||||
|
o.setCycleCount(null);
|
||||||
|
o.setPlanLevel(null);
|
||||||
|
o.setLastTime(null);
|
||||||
|
o.setFormulaCode(null);
|
||||||
|
});
|
||||||
|
dvCheckMapper.insert(dbDvCheck);
|
||||||
|
// 测试 planCode 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setPlanCode(null)));
|
||||||
|
// 测试 planName 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setPlanName(null)));
|
||||||
|
// 测试 planType 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setPlanType(null)));
|
||||||
|
// 测试 startDate 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setStartDate(null)));
|
||||||
|
// 测试 endDate 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setEndDate(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setStatus(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setRemark(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setCreateTime(null)));
|
||||||
|
// 测试 cycleUnit 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setCycleUnit(null)));
|
||||||
|
// 测试 cycleCount 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setCycleCount(null)));
|
||||||
|
// 测试 planLevel 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setPlanLevel(null)));
|
||||||
|
// 测试 lastTime 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setLastTime(null)));
|
||||||
|
// 测试 formulaCode 不匹配
|
||||||
|
dvCheckMapper.insert(cloneIgnoreId(dbDvCheck, o -> o.setFormulaCode(null)));
|
||||||
|
// 准备参数
|
||||||
|
DvCheckPageReqVO reqVO = new DvCheckPageReqVO();
|
||||||
|
reqVO.setPlanCode(null);
|
||||||
|
reqVO.setPlanName(null);
|
||||||
|
reqVO.setPlanType(null);
|
||||||
|
reqVO.setStartDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setEndDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setCycleUnit(null);
|
||||||
|
reqVO.setCycleCount(null);
|
||||||
|
reqVO.setPlanLevel(null);
|
||||||
|
reqVO.setLastTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setFormulaCode(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<DvCheckDO> pageResult = dvCheckService.getDvCheckPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbDvCheck, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,187 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvrepair;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
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.mysql.dvrepair.DvRepairMapper;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
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;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_REPAIR_NOT_EXISTS;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link DvRepairServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(DvRepairServiceImpl.class)
|
||||||
|
public class DvRepairServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvRepairServiceImpl dvRepairService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvRepairMapper dvRepairMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateDvRepair_success() {
|
||||||
|
// 准备参数
|
||||||
|
DvRepairSaveReqVO createReqVO = randomPojo(DvRepairSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long dvRepairId = dvRepairService.createDvRepair(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(dvRepairId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
DvRepairDO dvRepair = dvRepairMapper.selectById(dvRepairId);
|
||||||
|
assertPojoEquals(createReqVO, dvRepair, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvRepair_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvRepairDO dbDvRepair = randomPojo(DvRepairDO.class);
|
||||||
|
dvRepairMapper.insert(dbDvRepair);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
DvRepairSaveReqVO updateReqVO = randomPojo(DvRepairSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbDvRepair.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvRepairService.updateDvRepair(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
DvRepairDO dvRepair = dvRepairMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, dvRepair);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvRepair_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
DvRepairSaveReqVO updateReqVO = randomPojo(DvRepairSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvRepairService.updateDvRepair(updateReqVO), DV_REPAIR_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvRepair_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvRepairDO dbDvRepair = randomPojo(DvRepairDO.class);
|
||||||
|
dvRepairMapper.insert(dbDvRepair);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbDvRepair.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvRepairService.deleteDvRepair(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(dvRepairMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvRepair_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvRepairService.deleteDvRepair(id), DV_REPAIR_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetDvRepairPage() {
|
||||||
|
// mock 数据
|
||||||
|
DvRepairDO dbDvRepair = randomPojo(DvRepairDO.class, o -> { // 等会查询到
|
||||||
|
o.setRepairCode(null);
|
||||||
|
o.setRepairName(null);
|
||||||
|
o.setMachineryId(null);
|
||||||
|
o.setMachineryCode(null);
|
||||||
|
o.setMachineryName(null);
|
||||||
|
o.setMachineryBrand(null);
|
||||||
|
o.setMachinerySpec(null);
|
||||||
|
o.setMachineryTypeId(null);
|
||||||
|
o.setRequireDate(null);
|
||||||
|
o.setFinishDate(null);
|
||||||
|
o.setConfirmDate(null);
|
||||||
|
o.setRepairResult(null);
|
||||||
|
o.setAcceptedBy(null);
|
||||||
|
o.setConfirmBy(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
dvRepairMapper.insert(dbDvRepair);
|
||||||
|
// 测试 repairCode 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setRepairCode(null)));
|
||||||
|
// 测试 repairName 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setRepairName(null)));
|
||||||
|
// 测试 machineryId 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachineryId(null)));
|
||||||
|
// 测试 machineryCode 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachineryCode(null)));
|
||||||
|
// 测试 machineryName 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachineryName(null)));
|
||||||
|
// 测试 machineryBrand 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachineryBrand(null)));
|
||||||
|
// 测试 machinerySpec 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachinerySpec(null)));
|
||||||
|
// 测试 machineryTypeId 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setMachineryTypeId(null)));
|
||||||
|
// 测试 requireDate 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setRequireDate(null)));
|
||||||
|
// 测试 finishDate 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setFinishDate(null)));
|
||||||
|
// 测试 confirmDate 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setConfirmDate(null)));
|
||||||
|
// 测试 repairResult 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setRepairResult(null)));
|
||||||
|
// 测试 acceptedBy 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setAcceptedBy(null)));
|
||||||
|
// 测试 confirmBy 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setConfirmBy(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setStatus(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setRemark(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
dvRepairMapper.insert(cloneIgnoreId(dbDvRepair, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
DvRepairPageReqVO reqVO = new DvRepairPageReqVO();
|
||||||
|
reqVO.setRepairCode(null);
|
||||||
|
reqVO.setRepairName(null);
|
||||||
|
reqVO.setMachineryId(null);
|
||||||
|
reqVO.setMachineryCode(null);
|
||||||
|
reqVO.setMachineryName(null);
|
||||||
|
reqVO.setMachineryBrand(null);
|
||||||
|
reqVO.setMachinerySpec(null);
|
||||||
|
reqVO.setMachineryTypeId(null);
|
||||||
|
reqVO.setRequireDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setFinishDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setConfirmDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setRepairResult(null);
|
||||||
|
reqVO.setAcceptedBy(null);
|
||||||
|
reqVO.setConfirmBy(null);
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<DvRepairDO> pageResult = dvRepairService.getDvRepairPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbDvRepair, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,147 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.dvsubject;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.dvsubject.vo.DvSubjectSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.dvsubject.DvSubjectDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
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;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_SUBJECT_NOT_EXISTS;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link DvSubjectServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(DvSubjectServiceImpl.class)
|
||||||
|
public class DvSubjectServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvSubjectServiceImpl dvSubjectService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DvSubjectMapper dvSubjectMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateDvSubject_success() {
|
||||||
|
// 准备参数
|
||||||
|
DvSubjectSaveReqVO createReqVO = randomPojo(DvSubjectSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long dvSubjectId = dvSubjectService.createDvSubject(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(dvSubjectId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
DvSubjectDO dvSubject = dvSubjectMapper.selectById(dvSubjectId);
|
||||||
|
assertPojoEquals(createReqVO, dvSubject, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvSubject_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvSubjectDO dbDvSubject = randomPojo(DvSubjectDO.class);
|
||||||
|
dvSubjectMapper.insert(dbDvSubject);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
DvSubjectSaveReqVO updateReqVO = randomPojo(DvSubjectSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbDvSubject.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvSubjectService.updateDvSubject(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
DvSubjectDO dvSubject = dvSubjectMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, dvSubject);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateDvSubject_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
DvSubjectSaveReqVO updateReqVO = randomPojo(DvSubjectSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvSubjectService.updateDvSubject(updateReqVO), DV_SUBJECT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvSubject_success() {
|
||||||
|
// mock 数据
|
||||||
|
DvSubjectDO dbDvSubject = randomPojo(DvSubjectDO.class);
|
||||||
|
dvSubjectMapper.insert(dbDvSubject);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbDvSubject.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
dvSubjectService.deleteDvSubject(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(dvSubjectMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteDvSubject_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> dvSubjectService.deleteDvSubject(id), DV_SUBJECT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetDvSubjectPage() {
|
||||||
|
// mock 数据
|
||||||
|
DvSubjectDO dbDvSubject = randomPojo(DvSubjectDO.class, o -> { // 等会查询到
|
||||||
|
o.setSubjectCode(null);
|
||||||
|
o.setSubjectName(null);
|
||||||
|
o.setSubjectType(null);
|
||||||
|
o.setSubjectContent(null);
|
||||||
|
o.setSubjectStandard(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
dvSubjectMapper.insert(dbDvSubject);
|
||||||
|
// 测试 subjectCode 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setSubjectCode(null)));
|
||||||
|
// 测试 subjectName 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setSubjectName(null)));
|
||||||
|
// 测试 subjectType 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setSubjectType(null)));
|
||||||
|
// 测试 subjectContent 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setSubjectContent(null)));
|
||||||
|
// 测试 subjectStandard 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setSubjectStandard(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
dvSubjectMapper.insert(cloneIgnoreId(dbDvSubject, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
DvSubjectPageReqVO reqVO = new DvSubjectPageReqVO();
|
||||||
|
reqVO.setSubjectCode(null);
|
||||||
|
reqVO.setSubjectName(null);
|
||||||
|
reqVO.setSubjectType(null);
|
||||||
|
reqVO.setSubjectContent(null);
|
||||||
|
reqVO.setSubjectStandard(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<DvSubjectDO> pageResult = dvSubjectService.getDvSubjectPage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbDvSubject, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue