add 维保

plp
chenshuichuan 2 years ago
parent 8bf81f1416
commit 101a3084a0

@ -67,4 +67,7 @@ public interface ErrorCodeConstants {
ErrorCode MOLD_RECORD_SUBJECT_NOT_EXISTS = new ErrorCode(5_0086, "维保项目不存在"); ErrorCode MOLD_RECORD_SUBJECT_NOT_EXISTS = new ErrorCode(5_0086, "维保项目不存在");
ErrorCode MOLD_RECORD_NOT_EXISTS = new ErrorCode(5_0087, "模具维保不存在"); ErrorCode MOLD_RECORD_NOT_EXISTS = new ErrorCode(5_0087, "模具维保不存在");
ErrorCode DV_CHECK_NOT_EXISTS = new ErrorCode(5_0087, "维保计划不存在");
ErrorCode DV_SUBJECT_NOT_EXISTS = new ErrorCode(5_0087, "维保项目不存在");
ErrorCode DV_REPAIR_NOT_EXISTS = new ErrorCode(5_0087, "设备维修记录不存在");
} }

@ -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,140 @@
package cn.iocoder.yudao.module.mes.service.dvcheck;
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.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 cn.iocoder.yudao.module.mes.dal.mysql.dvcheck.DvCheckMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvcheckdevice.DvCheckDeviceMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvchecksubject.DvCheckSubjectMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_CHECK_NOT_EXISTS;
/**
* Service
*
* @author
*/
@Service
@Validated
public class DvCheckServiceImpl implements DvCheckService {
@Resource
private DvCheckMapper dvCheckMapper;
@Resource
private DvCheckDeviceMapper dvCheckDeviceMapper;
@Resource
private DvCheckSubjectMapper dvCheckSubjectMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createDvCheck(DvCheckSaveReqVO createReqVO) {
// 插入
DvCheckDO dvCheck = BeanUtils.toBean(createReqVO, DvCheckDO.class);
dvCheckMapper.insert(dvCheck);
// 插入子表
createDvCheckDeviceList(dvCheck.getId(), createReqVO.getDvCheckDevices());
createDvCheckSubjectList(dvCheck.getId(), createReqVO.getDvCheckSubjects());
// 返回
return dvCheck.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDvCheck(DvCheckSaveReqVO updateReqVO) {
// 校验存在
validateDvCheckExists(updateReqVO.getId());
// 更新
DvCheckDO updateObj = BeanUtils.toBean(updateReqVO, DvCheckDO.class);
dvCheckMapper.updateById(updateObj);
// 更新子表
updateDvCheckDeviceList(updateReqVO.getId(), updateReqVO.getDvCheckDevices());
updateDvCheckSubjectList(updateReqVO.getId(), updateReqVO.getDvCheckSubjects());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteDvCheck(Long id) {
// 校验存在
validateDvCheckExists(id);
// 删除
dvCheckMapper.deleteById(id);
// 删除子表
deleteDvCheckDeviceByPlanId(id);
deleteDvCheckSubjectByPlanId(id);
}
private void validateDvCheckExists(Long id) {
if (dvCheckMapper.selectById(id) == null) {
throw exception(DV_CHECK_NOT_EXISTS);
}
}
@Override
public DvCheckDO getDvCheck(Long id) {
return dvCheckMapper.selectById(id);
}
@Override
public PageResult<DvCheckDO> getDvCheckPage(DvCheckPageReqVO pageReqVO) {
return dvCheckMapper.selectPage(pageReqVO);
}
// ==================== 子表(维保计划设备) ====================
@Override
public List<DvCheckDeviceDO> getDvCheckDeviceListByPlanId(Long planId) {
return dvCheckDeviceMapper.selectListByPlanId(planId);
}
private void createDvCheckDeviceList(Long planId, List<DvCheckDeviceDO> list) {
list.forEach(o -> o.setPlanId(planId));
dvCheckDeviceMapper.insertBatch(list);
}
private void updateDvCheckDeviceList(Long planId, List<DvCheckDeviceDO> list) {
deleteDvCheckDeviceByPlanId(planId);
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下1id 冲突2updateTime 不更新
createDvCheckDeviceList(planId, list);
}
private void deleteDvCheckDeviceByPlanId(Long planId) {
dvCheckDeviceMapper.deleteByPlanId(planId);
}
// ==================== 子表(维保计划项目) ====================
@Override
public List<DvCheckSubjectDO> getDvCheckSubjectListByPlanId(Long planId) {
return dvCheckSubjectMapper.selectListByPlanId(planId);
}
private void createDvCheckSubjectList(Long planId, List<DvCheckSubjectDO> list) {
list.forEach(o -> o.setPlanId(planId));
dvCheckSubjectMapper.insertBatch(list);
}
private void updateDvCheckSubjectList(Long planId, List<DvCheckSubjectDO> list) {
deleteDvCheckSubjectByPlanId(planId);
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下1id 冲突2updateTime 不更新
createDvCheckSubjectList(planId, list);
}
private void deleteDvCheckSubjectByPlanId(Long planId) {
dvCheckSubjectMapper.deleteByPlanId(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,111 @@
package cn.iocoder.yudao.module.mes.service.dvrepair;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.dvrepair.vo.DvRepairSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepairline.DvRepairLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dvrepairline.DvRepairLineMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.DV_REPAIR_NOT_EXISTS;
/**
* Service
*
* @author
*/
@Service
@Validated
public class DvRepairServiceImpl implements DvRepairService {
@Resource
private DvRepairMapper dvRepairMapper;
@Resource
private DvRepairLineMapper dvRepairLineMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createDvRepair(DvRepairSaveReqVO createReqVO) {
// 插入
DvRepairDO dvRepair = BeanUtils.toBean(createReqVO, DvRepairDO.class);
dvRepairMapper.insert(dvRepair);
// 插入子表
createDvRepairLineList(dvRepair.getId(), createReqVO.getDvRepairLines());
// 返回
return dvRepair.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDvRepair(DvRepairSaveReqVO updateReqVO) {
// 校验存在
validateDvRepairExists(updateReqVO.getId());
// 更新
DvRepairDO updateObj = BeanUtils.toBean(updateReqVO, DvRepairDO.class);
dvRepairMapper.updateById(updateObj);
// 更新子表
updateDvRepairLineList(updateReqVO.getId(), updateReqVO.getDvRepairLines());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteDvRepair(Long id) {
// 校验存在
validateDvRepairExists(id);
// 删除
dvRepairMapper.deleteById(id);
// 删除子表
deleteDvRepairLineByRepairId(id);
}
private void validateDvRepairExists(Long id) {
if (dvRepairMapper.selectById(id) == null) {
throw exception(DV_REPAIR_NOT_EXISTS);
}
}
@Override
public DvRepairDO getDvRepair(Long id) {
return dvRepairMapper.selectById(id);
}
@Override
public PageResult<DvRepairDO> getDvRepairPage(DvRepairPageReqVO pageReqVO) {
return dvRepairMapper.selectPage(pageReqVO);
}
// ==================== 子表(设备维修记录行) ====================
@Override
public List<DvRepairLineDO> getDvRepairLineListByRepairId(Long repairId) {
return dvRepairLineMapper.selectListByRepairId(repairId);
}
private void createDvRepairLineList(Long repairId, List<DvRepairLineDO> list) {
list.forEach(o -> o.setRepairId(repairId));
dvRepairLineMapper.insertBatch(list);
}
private void updateDvRepairLineList(Long repairId, List<DvRepairLineDO> list) {
deleteDvRepairLineByRepairId(repairId);
list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下1id 冲突2updateTime 不更新
createDvRepairLineList(repairId, list);
}
private void deleteDvRepairLineByRepairId(Long repairId) {
dvRepairLineMapper.deleteByRepairId(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,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.dvcheck.DvCheckMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.dvsubject.DvSubjectMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

@ -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));
}
}

@ -48,10 +48,7 @@ DELETE FROM "mes_org_worker";
DELETE FROM "mes_produce_report_change_record"; DELETE FROM "mes_produce_report_change_record";
DELETE FROM "mes_work_report_plan"; DELETE FROM "mes_work_report_plan";
-- 将该删表 SQL 语句,添加到 yudao-module-mes-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "mes_energy_device_check_record"; DELETE FROM "mes_energy_device_check_record";
-- 将该删表 SQL 语句,添加到 yudao-module-mes-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "mes_energy_device"; DELETE FROM "mes_energy_device";
@ -59,7 +56,8 @@ DELETE FROM "mes_mold_record_subject";
DELETE FROM "mes_mold_record"; DELETE FROM "mes_mold_record";
DELETE FROM "mes_mold_record_subject_detail"; DELETE FROM "mes_mold_record_subject_detail";
DELETE FROM "mes_dv_subject";
DELETE FROM "mes_dv_check";
DELETE FROM "mes_dv_repair";

@ -614,3 +614,72 @@ CREATE TABLE IF NOT EXISTS "mes_mold_record_subject_detail"
"record_id" bigint, "record_id" bigint,
PRIMARY KEY ("id") PRIMARY KEY ("id")
) COMMENT '模具维保明细'; ) COMMENT '模具维保明细';
CREATE TABLE IF NOT EXISTS "mes_dv_subject"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"subject_code" varchar NOT NULL,
"subject_name" varchar NOT NULL,
"subject_type" varchar,
"subject_content" varchar NOT NULL,
"subject_standard" varchar,
"is_enable" bit NOT NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '点检项目表';
CREATE TABLE IF NOT EXISTS "mes_dv_repair"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"repair_code" varchar NOT NULL,
"repair_name" varchar,
"machinery_id" bigint NOT NULL,
"machinery_code" varchar NOT NULL,
"machinery_name" varchar NOT NULL,
"machinery_brand" varchar,
"machinery_spec" varchar,
"machinery_type_id" bigint NOT NULL,
"require_date" varchar,
"finish_date" varchar,
"confirm_date" varchar,
"repair_result" varchar,
"accepted_by" varchar,
"confirm_by" varchar,
"status" varchar,
"remark" varchar,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '设备维修记录表';
CREATE TABLE IF NOT EXISTS "mes_dv_check"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"plan_code" varchar NOT NULL,
"plan_name" varchar,
"plan_type" varchar NOT NULL,
"start_date" varchar,
"end_date" varchar,
"status" varchar,
"remark" varchar,
"is_enable" bit NOT NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint,
"cycle_unit" varchar,
"cycle_count" varchar,
"plan_level" varchar,
"last_time" varchar,
"formula_code" varchar,
PRIMARY KEY ("id")
) COMMENT '点检计划表';

@ -48,11 +48,11 @@ spring:
datasource: datasource:
master: master:
name: besure_neimeng name: besure_neimeng
url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 url: jdbc:mysql://47.106.185.127:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
# url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
username: besure_user1 username: besure_user1
password: zpW5:,LGHACh password: zpW5:,LGHACh
# username: sa # SQL Server 连接的示例 # username: sa # SQL Server 连接的示例111.67.199.122http://47.106.185.127/
# password: Yudao@2024 # SQL Server 连接的示例 # password: Yudao@2024 # SQL Server 连接的示例
# username: SYSDBA # DM 连接的示例 # username: SYSDBA # DM 连接的示例
# password: SYSDBA001 # DM 连接的示例 # password: SYSDBA001 # DM 连接的示例

Loading…
Cancel
Save