add mold record
parent
d7745a285c
commit
1e18240afc
@ -0,0 +1,104 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecord;
|
||||
|
||||
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.moldrecord.vo.MoldRecordPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.MoldRecordRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.MoldRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordSubjectDetailDO;
|
||||
import cn.iocoder.yudao.module.mes.service.moldrecord.MoldRecordService;
|
||||
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/mold-record")
|
||||
@Validated
|
||||
public class MoldRecordController {
|
||||
|
||||
@Resource
|
||||
private MoldRecordService moldRecordService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建模具维保")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:create')")
|
||||
public CommonResult<Long> createMoldRecord(@Valid @RequestBody MoldRecordSaveReqVO createReqVO) {
|
||||
return success(moldRecordService.createMoldRecord(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新模具维保")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:update')")
|
||||
public CommonResult<Boolean> updateMoldRecord(@Valid @RequestBody MoldRecordSaveReqVO updateReqVO) {
|
||||
moldRecordService.updateMoldRecord(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除模具维保")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:delete')")
|
||||
public CommonResult<Boolean> deleteMoldRecord(@RequestParam("id") Long id) {
|
||||
moldRecordService.deleteMoldRecord(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得模具维保")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:query')")
|
||||
public CommonResult<MoldRecordRespVO> getMoldRecord(@RequestParam("id") Long id) {
|
||||
MoldRecordDO moldRecord = moldRecordService.getMoldRecord(id);
|
||||
return success(BeanUtils.toBean(moldRecord, MoldRecordRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得模具维保分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:query')")
|
||||
public CommonResult<PageResult<MoldRecordRespVO>> getMoldRecordPage(@Valid MoldRecordPageReqVO pageReqVO) {
|
||||
PageResult<MoldRecordDO> pageResult = moldRecordService.getMoldRecordPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, MoldRecordRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出模具维保 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportMoldRecordExcel(@Valid MoldRecordPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<MoldRecordDO> list = moldRecordService.getMoldRecordPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "模具维保.xls", "数据", MoldRecordRespVO.class,
|
||||
BeanUtils.toBean(list, MoldRecordRespVO.class));
|
||||
}
|
||||
|
||||
// ==================== 子表(模具维保明细) ====================
|
||||
|
||||
@GetMapping("/mold-record-subject-detail/list-by-record-id")
|
||||
@Operation(summary = "获得模具维保明细列表")
|
||||
@Parameter(name = "recordId", description = "维保记录id")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record:query')")
|
||||
public CommonResult<List<MoldRecordSubjectDetailDO>> getMoldRecordSubjectDetailListByRecordId(@RequestParam("recordId") Long recordId) {
|
||||
return success(moldRecordService.getMoldRecordSubjectDetailListByRecordId(recordId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
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 MoldRecordPageReqVO extends PageParam {
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@Schema(description = "单号")
|
||||
private String code;
|
||||
@Schema(description = "流程ID")
|
||||
private String flowCode;
|
||||
|
||||
@Schema(description = "模具型号ID", example = "17427")
|
||||
private Long brandId;
|
||||
|
||||
@Schema(description = "模具ID", example = "21232")
|
||||
private Long moldId;
|
||||
|
||||
@Schema(description = "前模具ID", example = "23487")
|
||||
private Long oldMoldId;
|
||||
|
||||
@Schema(description = "机台ID", example = "1825")
|
||||
private Long machineId;
|
||||
|
||||
@Schema(description = "负责人ID", example = "27306")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "单据类型", example = "2")
|
||||
private String recordType;
|
||||
|
||||
@Schema(description = "状态", example = "2")
|
||||
private String recordStatus;
|
||||
|
||||
@Schema(description = "备注", example = "你猜")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] endTime;
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 模具维保 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class MoldRecordRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30464")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
@Schema(description = "单号")
|
||||
@ExcelProperty("单号")
|
||||
private String code;
|
||||
@Schema(description = "流程ID")
|
||||
@ExcelProperty("流程ID")
|
||||
private String flowCode;
|
||||
|
||||
@Schema(description = "模具型号ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "17427")
|
||||
@ExcelProperty("模具型号ID")
|
||||
private Long brandId;
|
||||
|
||||
@Schema(description = "模具ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21232")
|
||||
@ExcelProperty("模具ID")
|
||||
private Long moldId;
|
||||
|
||||
@Schema(description = "前模具ID", example = "23487")
|
||||
@ExcelProperty("前模具ID")
|
||||
private Long oldMoldId;
|
||||
|
||||
@Schema(description = "机台ID", example = "1825")
|
||||
@ExcelProperty("机台ID")
|
||||
private Long machineId;
|
||||
|
||||
@Schema(description = "负责人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27306")
|
||||
@ExcelProperty("负责人ID")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "单据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty(value = "单据类型", converter = DictConvert.class)
|
||||
@DictFormat("mes_mold_record_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
private String recordType;
|
||||
|
||||
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
||||
@DictFormat("mes_mold_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||
private String recordStatus;
|
||||
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
@Schema(description = "开始时间")
|
||||
@ExcelProperty("开始时间")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
@ExcelProperty("结束时间")
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo;
|
||||
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordSubjectDetailDO;
|
||||
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 MoldRecordSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30464")
|
||||
private Long id;
|
||||
@Schema(description = "单号")
|
||||
private String code;
|
||||
@Schema(description = "流程ID")
|
||||
private String flowCode;
|
||||
|
||||
@Schema(description = "模具型号ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "17427")
|
||||
@NotNull(message = "模具型号ID不能为空")
|
||||
private Long brandId;
|
||||
|
||||
@Schema(description = "模具ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21232")
|
||||
@NotNull(message = "模具ID不能为空")
|
||||
private Long moldId;
|
||||
|
||||
@Schema(description = "前模具ID", example = "23487")
|
||||
private Long oldMoldId;
|
||||
|
||||
@Schema(description = "机台ID", example = "1825")
|
||||
private Long machineId;
|
||||
|
||||
@Schema(description = "负责人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27306")
|
||||
@NotNull(message = "负责人ID不能为空")
|
||||
private Long userId;
|
||||
|
||||
@Schema(description = "单据类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotEmpty(message = "单据类型不能为空")
|
||||
private String recordType;
|
||||
|
||||
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotEmpty(message = "状态不能为空")
|
||||
private String recordStatus;
|
||||
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
|
||||
@NotEmpty(message = "备注不能为空")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "模具维保明细列表")
|
||||
private List<MoldRecordSubjectDetailDO> moldRecordSubjectDetails;
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endTime;
|
||||
}
|
||||
@ -0,0 +1,93 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject;
|
||||
|
||||
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.moldrecordsubject.vo.MoldRecordSubjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectRespVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecordsubject.MoldRecordSubjectDO;
|
||||
import cn.iocoder.yudao.module.mes.service.moldrecordsubject.MoldRecordSubjectService;
|
||||
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/mold-record-subject")
|
||||
@Validated
|
||||
public class MoldRecordSubjectController {
|
||||
|
||||
@Resource
|
||||
private MoldRecordSubjectService moldRecordSubjectService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建维保项目")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:create')")
|
||||
public CommonResult<Long> createMoldRecordSubject(@Valid @RequestBody MoldRecordSubjectSaveReqVO createReqVO) {
|
||||
return success(moldRecordSubjectService.createMoldRecordSubject(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新维保项目")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:update')")
|
||||
public CommonResult<Boolean> updateMoldRecordSubject(@Valid @RequestBody MoldRecordSubjectSaveReqVO updateReqVO) {
|
||||
moldRecordSubjectService.updateMoldRecordSubject(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除维保项目")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:delete')")
|
||||
public CommonResult<Boolean> deleteMoldRecordSubject(@RequestParam("id") Long id) {
|
||||
moldRecordSubjectService.deleteMoldRecordSubject(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得维保项目")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:query')")
|
||||
public CommonResult<MoldRecordSubjectRespVO> getMoldRecordSubject(@RequestParam("id") Long id) {
|
||||
MoldRecordSubjectDO moldRecordSubject = moldRecordSubjectService.getMoldRecordSubject(id);
|
||||
return success(BeanUtils.toBean(moldRecordSubject, MoldRecordSubjectRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得维保项目分页")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:query')")
|
||||
public CommonResult<PageResult<MoldRecordSubjectRespVO>> getMoldRecordSubjectPage(@Valid MoldRecordSubjectPageReqVO pageReqVO) {
|
||||
PageResult<MoldRecordSubjectDO> pageResult = moldRecordSubjectService.getMoldRecordSubjectPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, MoldRecordSubjectRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出维保项目 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('mes:mold-record-subject:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void exportMoldRecordSubjectExcel(@Valid MoldRecordSubjectPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<MoldRecordSubjectDO> list = moldRecordSubjectService.getMoldRecordSubjectPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "维保项目.xls", "数据", MoldRecordSubjectRespVO.class,
|
||||
BeanUtils.toBean(list, MoldRecordSubjectRespVO.class));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.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 MoldRecordSubjectPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "项目")
|
||||
private String subject;
|
||||
|
||||
@Schema(description = "预期")
|
||||
private String expect;
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.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.*;
|
||||
|
||||
@Schema(description = "管理后台 - 维保项目 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class MoldRecordSubjectRespVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32394")
|
||||
@ExcelProperty("ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("项目")
|
||||
private String subject;
|
||||
|
||||
@Schema(description = "预期")
|
||||
@ExcelProperty("预期")
|
||||
private String expect;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
@ExcelProperty("创建者")
|
||||
private String creator;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
@Schema(description = "管理后台 - 维保项目新增/修改 Request VO")
|
||||
@Data
|
||||
public class MoldRecordSubjectSaveReqVO {
|
||||
|
||||
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32394")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "项目", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "项目不能为空")
|
||||
private String subject;
|
||||
|
||||
@Schema(description = "预期")
|
||||
private String expect;
|
||||
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord;
|
||||
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.sun.xml.bind.v2.TODO;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 模具维保 DO
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@TableName("mes_mold_record")
|
||||
@KeySequence("mes_mold_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MoldRecordDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 流程ID
|
||||
*/
|
||||
private String flowCode;
|
||||
/**
|
||||
* 单号
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 模具型号ID
|
||||
*/
|
||||
private Long brandId;
|
||||
/**
|
||||
* 模具ID
|
||||
*/
|
||||
private Long moldId;
|
||||
/**
|
||||
* 前模具ID
|
||||
*/
|
||||
private Long oldMoldId;
|
||||
/**
|
||||
* 机台ID
|
||||
*/
|
||||
private Long machineId;
|
||||
/**
|
||||
* 负责人ID
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 单据类型
|
||||
*
|
||||
* 枚举 {@link TODO mes_mold_record_type 对应的类}
|
||||
*/
|
||||
private String recordType;
|
||||
/**
|
||||
* 状态
|
||||
*
|
||||
* 枚举 {@link TODO mes_mold_record_status 对应的类}
|
||||
*/
|
||||
private String recordStatus;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private LocalDateTime startTime;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,53 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord;
|
||||
|
||||
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_mold_record_subject_detail")
|
||||
@KeySequence("mes_mold_record_subject_detail_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MoldRecordSubjectDetailDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private String subject;
|
||||
/**
|
||||
* 预期
|
||||
*/
|
||||
private String expect;
|
||||
/**
|
||||
* 结果
|
||||
*/
|
||||
private String result;
|
||||
/**
|
||||
* 明细状态
|
||||
*
|
||||
* 枚举 {@link TODO mes_pass_or_nopass 对应的类}
|
||||
*/
|
||||
private String detailStatus;
|
||||
/**
|
||||
* 维保记录id
|
||||
*/
|
||||
private Long recordId;
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.dataobject.moldrecordsubject;
|
||||
|
||||
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_mold_record_subject")
|
||||
@KeySequence("mes_mold_record_subject_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class MoldRecordSubjectDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 项目
|
||||
*/
|
||||
private String subject;
|
||||
/**
|
||||
* 预期
|
||||
*/
|
||||
private String expect;
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.mysql.moldrecord;
|
||||
|
||||
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.moldrecord.MoldRecordDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.*;
|
||||
|
||||
/**
|
||||
* 模具维保 Mapper
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Mapper
|
||||
public interface MoldRecordMapper extends BaseMapperX<MoldRecordDO> {
|
||||
|
||||
default PageResult<MoldRecordDO> selectPage(MoldRecordPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MoldRecordDO>()
|
||||
.eqIfPresent(MoldRecordDO::getFlowCode, reqVO.getFlowCode())
|
||||
.eqIfPresent(MoldRecordDO::getBrandId, reqVO.getBrandId())
|
||||
.eqIfPresent(MoldRecordDO::getMoldId, reqVO.getMoldId())
|
||||
.eqIfPresent(MoldRecordDO::getOldMoldId, reqVO.getOldMoldId())
|
||||
.eqIfPresent(MoldRecordDO::getMachineId, reqVO.getMachineId())
|
||||
.eqIfPresent(MoldRecordDO::getUserId, reqVO.getUserId())
|
||||
.eqIfPresent(MoldRecordDO::getRecordType, reqVO.getRecordType())
|
||||
.eqIfPresent(MoldRecordDO::getRecordStatus, reqVO.getRecordStatus())
|
||||
.eqIfPresent(MoldRecordDO::getRemark, reqVO.getRemark())
|
||||
.betweenIfPresent(MoldRecordDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(MoldRecordDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.mysql.moldrecord;
|
||||
|
||||
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.moldrecord.MoldRecordSubjectDetailDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 模具维保明细 Mapper
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Mapper
|
||||
public interface MoldRecordSubjectDetailMapper extends BaseMapperX<MoldRecordSubjectDetailDO> {
|
||||
|
||||
default List<MoldRecordSubjectDetailDO> selectListByRecordId(Long recordId) {
|
||||
return selectList(MoldRecordSubjectDetailDO::getRecordId, recordId);
|
||||
}
|
||||
|
||||
default int deleteByRecordId(Long recordId) {
|
||||
return delete(MoldRecordSubjectDetailDO::getRecordId, recordId);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.iocoder.yudao.module.mes.dal.mysql.moldrecordsubject;
|
||||
|
||||
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.moldrecordsubject.MoldRecordSubjectDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.*;
|
||||
|
||||
/**
|
||||
* 维保项目 Mapper
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Mapper
|
||||
public interface MoldRecordSubjectMapper extends BaseMapperX<MoldRecordSubjectDO> {
|
||||
|
||||
default PageResult<MoldRecordSubjectDO> selectPage(MoldRecordSubjectPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<MoldRecordSubjectDO>()
|
||||
.eqIfPresent(MoldRecordSubjectDO::getSubject, reqVO.getSubject())
|
||||
.eqIfPresent(MoldRecordSubjectDO::getExpect, reqVO.getExpect())
|
||||
.orderByDesc(MoldRecordSubjectDO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package cn.iocoder.yudao.module.mes.service.moldrecord;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.MoldRecordPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.MoldRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordSubjectDetailDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 模具维保 Service 接口
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
public interface MoldRecordService {
|
||||
|
||||
/**
|
||||
* 创建模具维保
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMoldRecord(@Valid MoldRecordSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新模具维保
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMoldRecord(@Valid MoldRecordSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除模具维保
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMoldRecord(Long id);
|
||||
|
||||
/**
|
||||
* 获得模具维保
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 模具维保
|
||||
*/
|
||||
MoldRecordDO getMoldRecord(Long id);
|
||||
|
||||
/**
|
||||
* 获得模具维保分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 模具维保分页
|
||||
*/
|
||||
PageResult<MoldRecordDO> getMoldRecordPage(MoldRecordPageReqVO pageReqVO);
|
||||
|
||||
// ==================== 子表(模具维保明细) ====================
|
||||
|
||||
/**
|
||||
* 获得模具维保明细列表
|
||||
*
|
||||
* @param recordId 维保记录id
|
||||
* @return 模具维保明细列表
|
||||
*/
|
||||
List<MoldRecordSubjectDetailDO> getMoldRecordSubjectDetailListByRecordId(Long recordId);
|
||||
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.iocoder.yudao.module.mes.service.moldrecordsubject;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecordsubject.MoldRecordSubjectDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
/**
|
||||
* 维保项目 Service 接口
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
public interface MoldRecordSubjectService {
|
||||
|
||||
/**
|
||||
* 创建维保项目
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createMoldRecordSubject(@Valid MoldRecordSubjectSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新维保项目
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateMoldRecordSubject(@Valid MoldRecordSubjectSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除维保项目
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteMoldRecordSubject(Long id);
|
||||
|
||||
/**
|
||||
* 获得维保项目
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 维保项目
|
||||
*/
|
||||
MoldRecordSubjectDO getMoldRecordSubject(Long id);
|
||||
|
||||
/**
|
||||
* 获得维保项目分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 维保项目分页
|
||||
*/
|
||||
PageResult<MoldRecordSubjectDO> getMoldRecordSubjectPage(MoldRecordSubjectPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package cn.iocoder.yudao.module.mes.service.moldrecordsubject;
|
||||
|
||||
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.moldrecordsubject.vo.MoldRecordSubjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecordsubject.MoldRecordSubjectDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.moldrecordsubject.MoldRecordSubjectMapper;
|
||||
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.MOLD_RECORD_SUBJECT_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 维保项目 Service 实现类
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class MoldRecordSubjectServiceImpl implements MoldRecordSubjectService {
|
||||
|
||||
@Resource
|
||||
private MoldRecordSubjectMapper moldRecordSubjectMapper;
|
||||
|
||||
@Override
|
||||
public Long createMoldRecordSubject(MoldRecordSubjectSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
MoldRecordSubjectDO moldRecordSubject = BeanUtils.toBean(createReqVO, MoldRecordSubjectDO.class);
|
||||
moldRecordSubjectMapper.insert(moldRecordSubject);
|
||||
// 返回
|
||||
return moldRecordSubject.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateMoldRecordSubject(MoldRecordSubjectSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateMoldRecordSubjectExists(updateReqVO.getId());
|
||||
// 更新
|
||||
MoldRecordSubjectDO updateObj = BeanUtils.toBean(updateReqVO, MoldRecordSubjectDO.class);
|
||||
moldRecordSubjectMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteMoldRecordSubject(Long id) {
|
||||
// 校验存在
|
||||
validateMoldRecordSubjectExists(id);
|
||||
// 删除
|
||||
moldRecordSubjectMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateMoldRecordSubjectExists(Long id) {
|
||||
if (moldRecordSubjectMapper.selectById(id) == null) {
|
||||
throw exception(MOLD_RECORD_SUBJECT_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MoldRecordSubjectDO getMoldRecordSubject(Long id) {
|
||||
return moldRecordSubjectMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MoldRecordSubjectDO> getMoldRecordSubjectPage(MoldRecordSubjectPageReqVO pageReqVO) {
|
||||
return moldRecordSubjectMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,159 @@
|
||||
package cn.iocoder.yudao.module.mes.service.moldrecord;
|
||||
|
||||
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.moldrecord.vo.MoldRecordPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecord.vo.MoldRecordSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecord.MoldRecordDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.moldrecord.MoldRecordMapper;
|
||||
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.MOLD_RECORD_NOT_EXISTS;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MoldRecordServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Import(MoldRecordServiceImpl.class)
|
||||
public class MoldRecordServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MoldRecordServiceImpl moldRecordService;
|
||||
|
||||
@Resource
|
||||
private MoldRecordMapper moldRecordMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMoldRecord_success() {
|
||||
// 准备参数
|
||||
MoldRecordSaveReqVO createReqVO = randomPojo(MoldRecordSaveReqVO.class).setId(null);
|
||||
|
||||
// 调用
|
||||
Long moldRecordId = moldRecordService.createMoldRecord(createReqVO);
|
||||
// 断言
|
||||
assertNotNull(moldRecordId);
|
||||
// 校验记录的属性是否正确
|
||||
MoldRecordDO moldRecord = moldRecordMapper.selectById(moldRecordId);
|
||||
assertPojoEquals(createReqVO, moldRecord, "id");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMoldRecord_success() {
|
||||
// mock 数据
|
||||
MoldRecordDO dbMoldRecord = randomPojo(MoldRecordDO.class);
|
||||
moldRecordMapper.insert(dbMoldRecord);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MoldRecordSaveReqVO updateReqVO = randomPojo(MoldRecordSaveReqVO.class, o -> {
|
||||
o.setId(dbMoldRecord.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
moldRecordService.updateMoldRecord(updateReqVO);
|
||||
// 校验是否更新正确
|
||||
MoldRecordDO moldRecord = moldRecordMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(updateReqVO, moldRecord);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMoldRecord_notExists() {
|
||||
// 准备参数
|
||||
MoldRecordSaveReqVO updateReqVO = randomPojo(MoldRecordSaveReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> moldRecordService.updateMoldRecord(updateReqVO), MOLD_RECORD_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMoldRecord_success() {
|
||||
// mock 数据
|
||||
MoldRecordDO dbMoldRecord = randomPojo(MoldRecordDO.class);
|
||||
moldRecordMapper.insert(dbMoldRecord);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMoldRecord.getId();
|
||||
|
||||
// 调用
|
||||
moldRecordService.deleteMoldRecord(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(moldRecordMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMoldRecord_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> moldRecordService.deleteMoldRecord(id), MOLD_RECORD_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMoldRecordPage() {
|
||||
// mock 数据
|
||||
MoldRecordDO dbMoldRecord = randomPojo(MoldRecordDO.class, o -> { // 等会查询到
|
||||
o.setFlowCode(null);
|
||||
o.setBrandId(null);
|
||||
o.setMoldId(null);
|
||||
o.setOldMoldId(null);
|
||||
o.setMachineId(null);
|
||||
o.setUserId(null);
|
||||
o.setRecordType(null);
|
||||
o.setRecordStatus(null);
|
||||
o.setRemark(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
moldRecordMapper.insert(dbMoldRecord);
|
||||
// 测试 flowCode 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setFlowCode(null)));
|
||||
// 测试 brandId 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setBrandId(null)));
|
||||
// 测试 moldId 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setMoldId(null)));
|
||||
// 测试 oldMoldId 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setOldMoldId(null)));
|
||||
// 测试 machineId 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setMachineId(null)));
|
||||
// 测试 userId 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setUserId(null)));
|
||||
// 测试 recordType 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setRecordType(null)));
|
||||
// 测试 recordStatus 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setRecordStatus(null)));
|
||||
// 测试 remark 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setRemark(null)));
|
||||
// 测试 createTime 不匹配
|
||||
moldRecordMapper.insert(cloneIgnoreId(dbMoldRecord, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
MoldRecordPageReqVO reqVO = new MoldRecordPageReqVO();
|
||||
reqVO.setFlowCode(null);
|
||||
reqVO.setBrandId(null);
|
||||
reqVO.setMoldId(null);
|
||||
reqVO.setOldMoldId(null);
|
||||
reqVO.setMachineId(null);
|
||||
reqVO.setUserId(null);
|
||||
reqVO.setRecordType(null);
|
||||
reqVO.setRecordStatus(null);
|
||||
reqVO.setRemark(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<MoldRecordDO> pageResult = moldRecordService.getMoldRecordPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMoldRecord, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
package cn.iocoder.yudao.module.mes.service.moldrecordsubject;
|
||||
|
||||
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.moldrecordsubject.vo.MoldRecordSubjectPageReqVO;
|
||||
import cn.iocoder.yudao.module.mes.controller.admin.moldrecordsubject.vo.MoldRecordSubjectSaveReqVO;
|
||||
import cn.iocoder.yudao.module.mes.dal.dataobject.moldrecordsubject.MoldRecordSubjectDO;
|
||||
import cn.iocoder.yudao.module.mes.dal.mysql.moldrecordsubject.MoldRecordSubjectMapper;
|
||||
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.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.MOLD_RECORD_SUBJECT_NOT_EXISTS;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* {@link MoldRecordSubjectServiceImpl} 的单元测试类
|
||||
*
|
||||
* @author 内蒙必硕
|
||||
*/
|
||||
@Import(MoldRecordSubjectServiceImpl.class)
|
||||
public class MoldRecordSubjectServiceImplTest extends BaseDbUnitTest {
|
||||
|
||||
@Resource
|
||||
private MoldRecordSubjectServiceImpl moldRecordSubjectService;
|
||||
|
||||
@Resource
|
||||
private MoldRecordSubjectMapper moldRecordSubjectMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateMoldRecordSubject_success() {
|
||||
// 准备参数
|
||||
MoldRecordSubjectSaveReqVO createReqVO = randomPojo(MoldRecordSubjectSaveReqVO.class).setId(null);
|
||||
|
||||
// 调用
|
||||
Long moldRecordSubjectId = moldRecordSubjectService.createMoldRecordSubject(createReqVO);
|
||||
// 断言
|
||||
assertNotNull(moldRecordSubjectId);
|
||||
// 校验记录的属性是否正确
|
||||
MoldRecordSubjectDO moldRecordSubject = moldRecordSubjectMapper.selectById(moldRecordSubjectId);
|
||||
assertPojoEquals(createReqVO, moldRecordSubject, "id");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMoldRecordSubject_success() {
|
||||
// mock 数据
|
||||
MoldRecordSubjectDO dbMoldRecordSubject = randomPojo(MoldRecordSubjectDO.class);
|
||||
moldRecordSubjectMapper.insert(dbMoldRecordSubject);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
MoldRecordSubjectSaveReqVO updateReqVO = randomPojo(MoldRecordSubjectSaveReqVO.class, o -> {
|
||||
o.setId(dbMoldRecordSubject.getId()); // 设置更新的 ID
|
||||
});
|
||||
|
||||
// 调用
|
||||
moldRecordSubjectService.updateMoldRecordSubject(updateReqVO);
|
||||
// 校验是否更新正确
|
||||
MoldRecordSubjectDO moldRecordSubject = moldRecordSubjectMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||
assertPojoEquals(updateReqVO, moldRecordSubject);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateMoldRecordSubject_notExists() {
|
||||
// 准备参数
|
||||
MoldRecordSubjectSaveReqVO updateReqVO = randomPojo(MoldRecordSubjectSaveReqVO.class);
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> moldRecordSubjectService.updateMoldRecordSubject(updateReqVO), MOLD_RECORD_SUBJECT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMoldRecordSubject_success() {
|
||||
// mock 数据
|
||||
MoldRecordSubjectDO dbMoldRecordSubject = randomPojo(MoldRecordSubjectDO.class);
|
||||
moldRecordSubjectMapper.insert(dbMoldRecordSubject);// @Sql: 先插入出一条存在的数据
|
||||
// 准备参数
|
||||
Long id = dbMoldRecordSubject.getId();
|
||||
|
||||
// 调用
|
||||
moldRecordSubjectService.deleteMoldRecordSubject(id);
|
||||
// 校验数据不存在了
|
||||
assertNull(moldRecordSubjectMapper.selectById(id));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteMoldRecordSubject_notExists() {
|
||||
// 准备参数
|
||||
Long id = randomLongId();
|
||||
|
||||
// 调用, 并断言异常
|
||||
assertServiceException(() -> moldRecordSubjectService.deleteMoldRecordSubject(id), MOLD_RECORD_SUBJECT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetMoldRecordSubjectPage() {
|
||||
// mock 数据
|
||||
MoldRecordSubjectDO dbMoldRecordSubject = randomPojo(MoldRecordSubjectDO.class, o -> { // 等会查询到
|
||||
o.setSubject(null);
|
||||
o.setExpect(null);
|
||||
});
|
||||
moldRecordSubjectMapper.insert(dbMoldRecordSubject);
|
||||
// 测试 subject 不匹配
|
||||
moldRecordSubjectMapper.insert(cloneIgnoreId(dbMoldRecordSubject, o -> o.setSubject(null)));
|
||||
// 测试 expect 不匹配
|
||||
moldRecordSubjectMapper.insert(cloneIgnoreId(dbMoldRecordSubject, o -> o.setExpect(null)));
|
||||
// 准备参数
|
||||
MoldRecordSubjectPageReqVO reqVO = new MoldRecordSubjectPageReqVO();
|
||||
reqVO.setSubject(null);
|
||||
reqVO.setExpect(null);
|
||||
|
||||
// 调用
|
||||
PageResult<MoldRecordSubjectDO> pageResult = moldRecordSubjectService.getMoldRecordSubjectPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbMoldRecordSubject, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue