add record
parent
1494636e95
commit
9b20d1690c
@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
CREATE TABLE `mes_item_requisition`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||||
|
|
||||||
|
`code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci NOT NULL COMMENT '编码',
|
||||||
|
`requisition_date` date COMMENT '下料时间',
|
||||||
|
`delivery_date` date COMMENT '创建时间',
|
||||||
|
`status` tinyint DEFAULT '0' COMMENT '状态',
|
||||||
|
`process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '流程实例的编号',
|
||||||
|
`plan_id` bigint NOT NULL COMMENT '计划ID',
|
||||||
|
|
||||||
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
|
||||||
|
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
|
||||||
|
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
|
||||||
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='领料单';
|
||||||
|
|
||||||
|
CREATE TABLE `mes_item_requisition_detail`
|
||||||
|
(
|
||||||
|
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||||
|
`product_id` bigint NOT NULL COMMENT '产品ID',
|
||||||
|
`unit_id` bigint NOT NULL COMMENT '单位ID',
|
||||||
|
`item_requisition_id` bigint NOT NULL COMMENT '领料单ID',
|
||||||
|
`number` decimal(24, 6) DEFAULT NULL COMMENT '数量',
|
||||||
|
|
||||||
|
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
|
||||||
|
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
|
||||||
|
`creator` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '创建者',
|
||||||
|
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||||
|
`updater` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '更新者',
|
||||||
|
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||||
|
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||||||
|
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
|
||||||
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='领料单明细';
|
||||||
|
|
||||||
|
|
||||||
@ -1 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.mes.controller.admin.ajreport;
|
|
||||||
@ -0,0 +1,182 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.record;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordSuijiangDO;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
||||||
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordChengxingDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.service.record.RecordTemplateService;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 记录表")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/mes/record-template")
|
||||||
|
@Validated
|
||||||
|
public class RecordTemplateController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateService recordTemplateService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建记录表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:create')")
|
||||||
|
public CommonResult<Long> createRecordTemplate(@Valid @RequestBody RecordTemplateSaveReqVO createReqVO) {
|
||||||
|
return success(recordTemplateService.createRecordTemplate(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新记录表")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:update')")
|
||||||
|
public CommonResult<Boolean> updateRecordTemplate(@Valid @RequestBody RecordTemplateSaveReqVO updateReqVO) {
|
||||||
|
recordTemplateService.updateRecordTemplate(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除记录表")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:delete')")
|
||||||
|
public CommonResult<Boolean> deleteRecordTemplate(@RequestParam("id") Long id) {
|
||||||
|
recordTemplateService.deleteRecordTemplate(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得记录表")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<RecordTemplateRespVO> getRecordTemplate(@RequestParam("id") Long id) {
|
||||||
|
RecordTemplateDO recordTemplate = recordTemplateService.getRecordTemplate(id);
|
||||||
|
return success(BeanUtils.toBean(recordTemplate, RecordTemplateRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得记录表分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<PageResult<RecordTemplateRespVO>> getRecordTemplatePage(@Valid RecordTemplatePageReqVO pageReqVO) {
|
||||||
|
PageResult<RecordTemplateDO> pageResult = recordTemplateService.getRecordTemplatePage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, RecordTemplateRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出记录表 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:export')")
|
||||||
|
@ApiAccessLog(operateType = EXPORT)
|
||||||
|
public void exportRecordTemplateExcel(@Valid RecordTemplatePageReqVO pageReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||||
|
List<RecordTemplateDO> list = recordTemplateService.getRecordTemplatePage(pageReqVO).getList();
|
||||||
|
// 导出 Excel
|
||||||
|
ExcelUtils.write(response, "记录表.xls", "数据", RecordTemplateRespVO.class,
|
||||||
|
BeanUtils.toBean(list, RecordTemplateRespVO.class));
|
||||||
|
}
|
||||||
|
// ==================== 子表(碎浆记录) ====================
|
||||||
|
|
||||||
|
@GetMapping("/record-suijiang/page")
|
||||||
|
@Operation(summary = "获得碎浆记录分页")
|
||||||
|
@Parameter(name = "recordId", description = "组织id")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<PageResult<RecordSuijiangDO>> getRecordSuijiangPage(PageParam pageReqVO,
|
||||||
|
@RequestParam("recordId") Long recordId) {
|
||||||
|
return success(recordTemplateService.getRecordSuijiangPage(pageReqVO, recordId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/record-suijiang/create")
|
||||||
|
@Operation(summary = "创建碎浆记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:create')")
|
||||||
|
public CommonResult<Long> createRecordSuijiang(@Valid @RequestBody RecordSuijiangDO recordSuijiang) {
|
||||||
|
return success(recordTemplateService.createRecordSuijiang(recordSuijiang));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/record-suijiang/update")
|
||||||
|
@Operation(summary = "更新碎浆记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:update')")
|
||||||
|
public CommonResult<Boolean> updateRecordSuijiang(@Valid @RequestBody RecordSuijiangDO recordSuijiang) {
|
||||||
|
recordTemplateService.updateRecordSuijiang(recordSuijiang);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/record-suijiang/delete")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@Operation(summary = "删除碎浆记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:delete')")
|
||||||
|
public CommonResult<Boolean> deleteRecordSuijiang(@RequestParam("id") Long id) {
|
||||||
|
recordTemplateService.deleteRecordSuijiang(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/record-suijiang/get")
|
||||||
|
@Operation(summary = "获得碎浆记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<RecordSuijiangDO> getRecordSuijiang(@RequestParam("id") Long id) {
|
||||||
|
return success(recordTemplateService.getRecordSuijiang(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ==================== 子表(成型记录) ====================
|
||||||
|
|
||||||
|
@GetMapping("/record-chengxing/page")
|
||||||
|
@Operation(summary = "获得成型记录分页")
|
||||||
|
@Parameter(name = "recordId", description = "记录id")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<PageResult<RecordChengxingDO>> getRecordChengxingPage(PageParam pageReqVO,
|
||||||
|
@RequestParam("recordId") Long recordId) {
|
||||||
|
return success(recordTemplateService.getRecordChengxingPage(pageReqVO, recordId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/record-chengxing/create")
|
||||||
|
@Operation(summary = "创建成型记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:create')")
|
||||||
|
public CommonResult<Long> createRecordChengxing(@Valid @RequestBody RecordChengxingDO recordChengxing) {
|
||||||
|
return success(recordTemplateService.createRecordChengxing(recordChengxing));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/record-chengxing/update")
|
||||||
|
@Operation(summary = "更新成型记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:update')")
|
||||||
|
public CommonResult<Boolean> updateRecordChengxing(@Valid @RequestBody RecordChengxingDO recordChengxing) {
|
||||||
|
recordTemplateService.updateRecordChengxing(recordChengxing);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/record-chengxing/delete")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@Operation(summary = "删除成型记录")
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:delete')")
|
||||||
|
public CommonResult<Boolean> deleteRecordChengxing(@RequestParam("id") Long id) {
|
||||||
|
recordTemplateService.deleteRecordChengxing(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/record-chengxing/get")
|
||||||
|
@Operation(summary = "获得成型记录")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('mes:record-template:query')")
|
||||||
|
public CommonResult<RecordChengxingDO> getRecordChengxing(@RequestParam("id") Long id) {
|
||||||
|
return success(recordTemplateService.getRecordChengxing(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.record.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 RecordTemplatePageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "名称", example = "芋艿")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "组织id", example = "4004")
|
||||||
|
private Long organizationId;
|
||||||
|
|
||||||
|
@Schema(description = "对应机台id", example = "30372")
|
||||||
|
private Long machineId;
|
||||||
|
|
||||||
|
@Schema(description = "班组id", example = "15655")
|
||||||
|
private Long workTeamId;
|
||||||
|
|
||||||
|
@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;
|
||||||
|
|
||||||
|
@Schema(description = "组长上午审批id")
|
||||||
|
private Long groupManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "组长下午审批id")
|
||||||
|
private Long groupManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "主管上午审批id")
|
||||||
|
private Long productionManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "主管下午审批id")
|
||||||
|
private Long productionManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例的编号", example = "16577")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态", example = "2")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@Schema(description = "记录类型(工序类型)", example = "1")
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
@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;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.record.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 RecordTemplateRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1950")
|
||||||
|
@ExcelProperty("组织id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||||
|
@ExcelProperty("名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4004")
|
||||||
|
@ExcelProperty("组织id")
|
||||||
|
private Long organizationId;
|
||||||
|
|
||||||
|
@Schema(description = "对应机台id", example = "30372")
|
||||||
|
@ExcelProperty("对应机台id")
|
||||||
|
private Long machineId;
|
||||||
|
|
||||||
|
@Schema(description = "班组id", example = "15655")
|
||||||
|
@ExcelProperty("班组id")
|
||||||
|
private Long workTeamId;
|
||||||
|
|
||||||
|
@Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("开始时间")
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
@Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@ExcelProperty("结束时间")
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@Schema(description = "组长上午审批id")
|
||||||
|
@ExcelProperty("组长上午审批id")
|
||||||
|
private Long groupManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "组长下午审批id")
|
||||||
|
@ExcelProperty("组长下午审批id")
|
||||||
|
private Long groupManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "主管上午审批id")
|
||||||
|
@ExcelProperty("主管上午审批id")
|
||||||
|
private Long productionManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "主管下午审批id")
|
||||||
|
@ExcelProperty("主管下午审批id")
|
||||||
|
private Long productionManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例的编号", example = "16577")
|
||||||
|
@ExcelProperty("流程实例的编号")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@ExcelProperty(value = "状态", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_record_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@Schema(description = "记录类型(工序类型)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
@ExcelProperty(value = "记录类型(工序类型)", converter = DictConvert.class)
|
||||||
|
@DictFormat("mes_org_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
@ExcelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
@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,68 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.controller.admin.record.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 记录表新增/修改 Request VO")
|
||||||
|
@Data
|
||||||
|
public class RecordTemplateSaveReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1950")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
|
||||||
|
@NotEmpty(message = "名称不能为空")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4004")
|
||||||
|
@NotNull(message = "组织id不能为空")
|
||||||
|
private Long organizationId;
|
||||||
|
|
||||||
|
@Schema(description = "对应机台id", example = "30372")
|
||||||
|
private Long machineId;
|
||||||
|
|
||||||
|
@Schema(description = "班组id", example = "15655")
|
||||||
|
private Long workTeamId;
|
||||||
|
|
||||||
|
@Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "开始时间不能为空")
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
|
||||||
|
@Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "结束时间不能为空")
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
@Schema(description = "组长上午审批id")
|
||||||
|
private Long groupManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "组长下午审批id")
|
||||||
|
private Long groupManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "主管上午审批id")
|
||||||
|
private Long productionManagerApproveId1;
|
||||||
|
|
||||||
|
@Schema(description = "主管下午审批id")
|
||||||
|
private Long productionManagerApproveId2;
|
||||||
|
|
||||||
|
@Schema(description = "流程实例的编号", example = "16577")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||||
|
@NotNull(message = "状态不能为空")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@Schema(description = "记录类型(工序类型)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
|
@NotEmpty(message = "记录类型(工序类型)不能为空")
|
||||||
|
private String recordType;
|
||||||
|
|
||||||
|
@Schema(description = "备注", example = "你说的对")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@Schema(description = "是否启用")
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.record;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
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_record_chengxing")
|
||||||
|
@KeySequence("mes_record_chengxing_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RecordChengxingDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 记录id
|
||||||
|
*/
|
||||||
|
private Long recordId;
|
||||||
|
/**
|
||||||
|
* 开机时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
/**
|
||||||
|
* 停机时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
/**
|
||||||
|
* 吸浆时间(S)
|
||||||
|
*/
|
||||||
|
private Integer xijiang;
|
||||||
|
/**
|
||||||
|
* 脱水时间(S)
|
||||||
|
*/
|
||||||
|
private Integer tuoshui;
|
||||||
|
/**
|
||||||
|
* 洗模时间(S)
|
||||||
|
*/
|
||||||
|
private Integer ximu;
|
||||||
|
/**
|
||||||
|
* 产品id
|
||||||
|
*/
|
||||||
|
private Long productId;
|
||||||
|
/**
|
||||||
|
* 产品外观
|
||||||
|
*/
|
||||||
|
private String appearance;
|
||||||
|
/**
|
||||||
|
* 湿重(g)
|
||||||
|
*/
|
||||||
|
private BigDecimal productWeight;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*
|
||||||
|
* 枚举 {@link TODO infra_boolean_string 对应的类}
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,96 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.dataobject.record;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
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_record_suijiang")
|
||||||
|
@KeySequence("mes_record_suijiang_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RecordSuijiangDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 组织id
|
||||||
|
*/
|
||||||
|
private Long recordId;
|
||||||
|
/**
|
||||||
|
* 开机时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
/**
|
||||||
|
* 停机时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
/**
|
||||||
|
* 碎浆时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime suijiangTime;
|
||||||
|
/**
|
||||||
|
* 碎浆时间
|
||||||
|
*/
|
||||||
|
private BigDecimal suijiangCostTime;
|
||||||
|
/**
|
||||||
|
* 原料配比id
|
||||||
|
*/
|
||||||
|
private Long ratioId;
|
||||||
|
/**
|
||||||
|
* 原料配比
|
||||||
|
*/
|
||||||
|
private String ratio;
|
||||||
|
/**
|
||||||
|
* 用水量kg
|
||||||
|
*/
|
||||||
|
private BigDecimal waterUsage;
|
||||||
|
/**
|
||||||
|
* 放浆浓度%
|
||||||
|
*/
|
||||||
|
private BigDecimal densityOut;
|
||||||
|
/**
|
||||||
|
* 加药量kg
|
||||||
|
*/
|
||||||
|
private BigDecimal addItemUsage;
|
||||||
|
/**
|
||||||
|
* 出渣率%
|
||||||
|
*/
|
||||||
|
private BigDecimal slagYield;
|
||||||
|
/**
|
||||||
|
* 浓度%
|
||||||
|
*/
|
||||||
|
private BigDecimal density;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
/**
|
||||||
|
* 是否启用
|
||||||
|
*/
|
||||||
|
private Boolean isEnable;
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.record;
|
||||||
|
|
||||||
|
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.record.RecordChengxingDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 成型记录 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface RecordChengxingMapper extends BaseMapperX<RecordChengxingDO> {
|
||||||
|
|
||||||
|
default PageResult<RecordChengxingDO> selectPage(PageParam reqVO, Long recordId) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<RecordChengxingDO>()
|
||||||
|
.eq(RecordChengxingDO::getRecordId, recordId)
|
||||||
|
.orderByDesc(RecordChengxingDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByRecordId(Long recordId) {
|
||||||
|
return delete(RecordChengxingDO::getRecordId, recordId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.record;
|
||||||
|
|
||||||
|
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.record.RecordSuijiangDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 碎浆记录 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface RecordSuijiangMapper extends BaseMapperX<RecordSuijiangDO> {
|
||||||
|
|
||||||
|
default PageResult<RecordSuijiangDO> selectPage(PageParam reqVO, Long recordId) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<RecordSuijiangDO>()
|
||||||
|
.eq(RecordSuijiangDO::getRecordId, recordId)
|
||||||
|
.orderByDesc(RecordSuijiangDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default int deleteByRecordId(Long recordId) {
|
||||||
|
return delete(RecordSuijiangDO::getRecordId, recordId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,41 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.dal.mysql.record;
|
||||||
|
|
||||||
|
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.record.RecordTemplateDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录表 Mapper
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface RecordTemplateMapper extends BaseMapperX<RecordTemplateDO> {
|
||||||
|
|
||||||
|
default PageResult<RecordTemplateDO> selectPage(RecordTemplatePageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<RecordTemplateDO>()
|
||||||
|
.likeIfPresent(RecordTemplateDO::getName, reqVO.getName())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getOrganizationId, reqVO.getOrganizationId())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getMachineId, reqVO.getMachineId())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getWorkTeamId, reqVO.getWorkTeamId())
|
||||||
|
.betweenIfPresent(RecordTemplateDO::getStartTime, reqVO.getStartTime())
|
||||||
|
.betweenIfPresent(RecordTemplateDO::getEndTime, reqVO.getEndTime())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getGroupManagerApproveId1, reqVO.getGroupManagerApproveId1())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getGroupManagerApproveId2, reqVO.getGroupManagerApproveId2())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getProductionManagerApproveId1, reqVO.getProductionManagerApproveId1())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getProductionManagerApproveId2, reqVO.getProductionManagerApproveId2())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getProcessInstanceId, reqVO.getProcessInstanceId())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getStatus, reqVO.getStatus())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getRecordType, reqVO.getRecordType())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getRemark, reqVO.getRemark())
|
||||||
|
.eqIfPresent(RecordTemplateDO::getIsEnable, reqVO.getIsEnable())
|
||||||
|
.betweenIfPresent(RecordTemplateDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(RecordTemplateDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,139 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.record;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordSuijiangDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordChengxingDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录表 Service 接口
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
public interface RecordTemplateService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建记录表
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createRecordTemplate(@Valid RecordTemplateSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新记录表
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateRecordTemplate(@Valid RecordTemplateSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除记录表
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteRecordTemplate(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得记录表
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 记录表
|
||||||
|
*/
|
||||||
|
RecordTemplateDO getRecordTemplate(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得记录表分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 记录表分页
|
||||||
|
*/
|
||||||
|
PageResult<RecordTemplateDO> getRecordTemplatePage(RecordTemplatePageReqVO pageReqVO);
|
||||||
|
// ==================== 子表(碎浆记录) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得碎浆记录分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @param recordId 组织id
|
||||||
|
* @return 碎浆记录分页
|
||||||
|
*/
|
||||||
|
PageResult<RecordSuijiangDO> getRecordSuijiangPage(PageParam pageReqVO, Long recordId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建碎浆记录
|
||||||
|
*
|
||||||
|
* @param recordSuijiang 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createRecordSuijiang(@Valid RecordSuijiangDO recordSuijiang);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新碎浆记录
|
||||||
|
*
|
||||||
|
* @param recordSuijiang 更新信息
|
||||||
|
*/
|
||||||
|
void updateRecordSuijiang(@Valid RecordSuijiangDO recordSuijiang);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除碎浆记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteRecordSuijiang(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得碎浆记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 碎浆记录
|
||||||
|
*/
|
||||||
|
RecordSuijiangDO getRecordSuijiang(Long id);
|
||||||
|
|
||||||
|
// ==================== 子表(成型记录) ====================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得成型记录分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @param recordId 记录id
|
||||||
|
* @return 成型记录分页
|
||||||
|
*/
|
||||||
|
PageResult<RecordChengxingDO> getRecordChengxingPage(PageParam pageReqVO, Long recordId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建成型记录
|
||||||
|
*
|
||||||
|
* @param recordChengxing 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createRecordChengxing(@Valid RecordChengxingDO recordChengxing);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新成型记录
|
||||||
|
*
|
||||||
|
* @param recordChengxing 更新信息
|
||||||
|
*/
|
||||||
|
void updateRecordChengxing(@Valid RecordChengxingDO recordChengxing);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除成型记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteRecordChengxing(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得成型记录
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 成型记录
|
||||||
|
*/
|
||||||
|
RecordChengxingDO getRecordChengxing(Long id);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,172 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.record;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordSuijiangDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.record.RecordSuijiangMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordChengxingDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.record.RecordTemplateMapper;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.record.RecordChengxingMapper;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录表 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class RecordTemplateServiceImpl implements RecordTemplateService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateMapper recordTemplateMapper;
|
||||||
|
@Resource
|
||||||
|
private RecordChengxingMapper recordChengxingMapper;
|
||||||
|
@Resource
|
||||||
|
private RecordSuijiangMapper recordSuijiangMapper;
|
||||||
|
@Override
|
||||||
|
public Long createRecordTemplate(RecordTemplateSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
RecordTemplateDO recordTemplate = BeanUtils.toBean(createReqVO, RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.insert(recordTemplate);
|
||||||
|
// 返回
|
||||||
|
return recordTemplate.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateRecordTemplate(RecordTemplateSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordTemplateExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
RecordTemplateDO updateObj = BeanUtils.toBean(updateReqVO, RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void deleteRecordTemplate(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordTemplateExists(id);
|
||||||
|
// 删除
|
||||||
|
recordTemplateMapper.deleteById(id);
|
||||||
|
|
||||||
|
// 删除子表
|
||||||
|
deleteRecordChengxingByRecordId(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateRecordTemplateExists(Long id) {
|
||||||
|
if (recordTemplateMapper.selectById(id) == null) {
|
||||||
|
throw exception(RECORD_TEMPLATE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecordTemplateDO getRecordTemplate(Long id) {
|
||||||
|
return recordTemplateMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<RecordTemplateDO> getRecordTemplatePage(RecordTemplatePageReqVO pageReqVO) {
|
||||||
|
return recordTemplateMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
// ==================== 子表(碎浆记录) ====================
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<RecordSuijiangDO> getRecordSuijiangPage(PageParam pageReqVO, Long recordId) {
|
||||||
|
return recordSuijiangMapper.selectPage(pageReqVO, recordId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createRecordSuijiang(RecordSuijiangDO recordSuijiang) {
|
||||||
|
recordSuijiangMapper.insert(recordSuijiang);
|
||||||
|
return recordSuijiang.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateRecordSuijiang(RecordSuijiangDO recordSuijiang) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordSuijiangExists(recordSuijiang.getId());
|
||||||
|
// 更新
|
||||||
|
recordSuijiangMapper.updateById(recordSuijiang);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteRecordSuijiang(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordSuijiangExists(id);
|
||||||
|
// 删除
|
||||||
|
recordSuijiangMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecordSuijiangDO getRecordSuijiang(Long id) {
|
||||||
|
return recordSuijiangMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateRecordSuijiangExists(Long id) {
|
||||||
|
if (recordSuijiangMapper.selectById(id) == null) {
|
||||||
|
throw exception(RECORD_SUIJIANG_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRecordSuijiangByRecordId(Long recordId) {
|
||||||
|
recordSuijiangMapper.deleteByRecordId(recordId);
|
||||||
|
}
|
||||||
|
// ==================== 子表(成型记录) ====================
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<RecordChengxingDO> getRecordChengxingPage(PageParam pageReqVO, Long recordId) {
|
||||||
|
return recordChengxingMapper.selectPage(pageReqVO, recordId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createRecordChengxing(RecordChengxingDO recordChengxing) {
|
||||||
|
recordChengxingMapper.insert(recordChengxing);
|
||||||
|
return recordChengxing.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateRecordChengxing(RecordChengxingDO recordChengxing) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordChengxingExists(recordChengxing.getId());
|
||||||
|
// 更新
|
||||||
|
recordChengxingMapper.updateById(recordChengxing);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteRecordChengxing(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateRecordChengxingExists(id);
|
||||||
|
// 删除
|
||||||
|
recordChengxingMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecordChengxingDO getRecordChengxing(Long id) {
|
||||||
|
return recordChengxingMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateRecordChengxingExists(Long id) {
|
||||||
|
if (recordChengxingMapper.selectById(id) == null) {
|
||||||
|
throw exception(RECORD_CHENGXING_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void deleteRecordChengxingByRecordId(Long recordId) {
|
||||||
|
recordChengxingMapper.deleteByRecordId(recordId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,188 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.record;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.record.RecordTemplateMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.hutool.core.util.RandomUtil.*;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link RecordTemplateServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(RecordTemplateServiceImpl.class)
|
||||||
|
public class RecordSuijiangServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateServiceImpl recordTemplateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateMapper recordTemplateMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateRecordTemplate_success() {
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO createReqVO = randomPojo(RecordTemplateSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long recordTemplateId = recordTemplateService.createRecordTemplate(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(recordTemplateId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
RecordTemplateDO recordTemplate = recordTemplateMapper.selectById(recordTemplateId);
|
||||||
|
assertPojoEquals(createReqVO, recordTemplate, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateRecordTemplate_success() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO updateReqVO = randomPojo(RecordTemplateSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbRecordTemplate.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
recordTemplateService.updateRecordTemplate(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
RecordTemplateDO recordTemplate = recordTemplateMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, recordTemplate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateRecordTemplate_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO updateReqVO = randomPojo(RecordTemplateSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> recordTemplateService.updateRecordTemplate(updateReqVO), RECORD_TEMPLATE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteRecordTemplate_success() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbRecordTemplate.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
recordTemplateService.deleteRecordTemplate(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(recordTemplateMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteRecordTemplate_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> recordTemplateService.deleteRecordTemplate(id), RECORD_TEMPLATE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetRecordTemplatePage() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class, o -> { // 等会查询到
|
||||||
|
o.setName(null);
|
||||||
|
o.setOrganizationId(null);
|
||||||
|
o.setMachineId(null);
|
||||||
|
o.setWorkTeamId(null);
|
||||||
|
o.setStartTime(null);
|
||||||
|
o.setEndTime(null);
|
||||||
|
o.setGroupManagerApproveId1(null);
|
||||||
|
o.setGroupManagerApproveId2(null);
|
||||||
|
o.setProductionManagerApproveId1(null);
|
||||||
|
o.setProductionManagerApproveId2(null);
|
||||||
|
o.setProcessInstanceId(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setRecordType(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);
|
||||||
|
// 测试 name 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setName(null)));
|
||||||
|
// 测试 organizationId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setOrganizationId(null)));
|
||||||
|
// 测试 machineId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setMachineId(null)));
|
||||||
|
// 测试 workTeamId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setWorkTeamId(null)));
|
||||||
|
// 测试 startTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setStartTime(null)));
|
||||||
|
// 测试 endTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setEndTime(null)));
|
||||||
|
// 测试 groupManagerApproveId1 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setGroupManagerApproveId1(null)));
|
||||||
|
// 测试 groupManagerApproveId2 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setGroupManagerApproveId2(null)));
|
||||||
|
// 测试 productionManagerApproveId1 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProductionManagerApproveId1(null)));
|
||||||
|
// 测试 productionManagerApproveId2 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProductionManagerApproveId2(null)));
|
||||||
|
// 测试 processInstanceId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProcessInstanceId(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setStatus(null)));
|
||||||
|
// 测试 recordType 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setRecordType(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setRemark(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplatePageReqVO reqVO = new RecordTemplatePageReqVO();
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setOrganizationId(null);
|
||||||
|
reqVO.setMachineId(null);
|
||||||
|
reqVO.setWorkTeamId(null);
|
||||||
|
reqVO.setStartTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setEndTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setGroupManagerApproveId1(null);
|
||||||
|
reqVO.setGroupManagerApproveId2(null);
|
||||||
|
reqVO.setProductionManagerApproveId1(null);
|
||||||
|
reqVO.setProductionManagerApproveId2(null);
|
||||||
|
reqVO.setProcessInstanceId(null);
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setRecordType(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<RecordTemplateDO> pageResult = recordTemplateService.getRecordTemplatePage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbRecordTemplate, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,188 @@
|
|||||||
|
package cn.iocoder.yudao.module.mes.service.record;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.mes.controller.admin.record.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.dataobject.record.RecordTemplateDO;
|
||||||
|
import cn.iocoder.yudao.module.mes.dal.mysql.record.RecordTemplateMapper;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.hutool.core.util.RandomUtil.*;
|
||||||
|
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link RecordTemplateServiceImpl} 的单元测试类
|
||||||
|
*
|
||||||
|
* @author 内蒙必硕
|
||||||
|
*/
|
||||||
|
@Import(RecordTemplateServiceImpl.class)
|
||||||
|
public class RecordTemplateServiceImplTest extends BaseDbUnitTest {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateServiceImpl recordTemplateService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RecordTemplateMapper recordTemplateMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCreateRecordTemplate_success() {
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO createReqVO = randomPojo(RecordTemplateSaveReqVO.class).setId(null);
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
Long recordTemplateId = recordTemplateService.createRecordTemplate(createReqVO);
|
||||||
|
// 断言
|
||||||
|
assertNotNull(recordTemplateId);
|
||||||
|
// 校验记录的属性是否正确
|
||||||
|
RecordTemplateDO recordTemplate = recordTemplateMapper.selectById(recordTemplateId);
|
||||||
|
assertPojoEquals(createReqVO, recordTemplate, "id");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateRecordTemplate_success() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO updateReqVO = randomPojo(RecordTemplateSaveReqVO.class, o -> {
|
||||||
|
o.setId(dbRecordTemplate.getId()); // 设置更新的 ID
|
||||||
|
});
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
recordTemplateService.updateRecordTemplate(updateReqVO);
|
||||||
|
// 校验是否更新正确
|
||||||
|
RecordTemplateDO recordTemplate = recordTemplateMapper.selectById(updateReqVO.getId()); // 获取最新的
|
||||||
|
assertPojoEquals(updateReqVO, recordTemplate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUpdateRecordTemplate_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplateSaveReqVO updateReqVO = randomPojo(RecordTemplateSaveReqVO.class);
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> recordTemplateService.updateRecordTemplate(updateReqVO), RECORD_TEMPLATE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteRecordTemplate_success() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class);
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);// @Sql: 先插入出一条存在的数据
|
||||||
|
// 准备参数
|
||||||
|
Long id = dbRecordTemplate.getId();
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
recordTemplateService.deleteRecordTemplate(id);
|
||||||
|
// 校验数据不存在了
|
||||||
|
assertNull(recordTemplateMapper.selectById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDeleteRecordTemplate_notExists() {
|
||||||
|
// 准备参数
|
||||||
|
Long id = randomLongId();
|
||||||
|
|
||||||
|
// 调用, 并断言异常
|
||||||
|
assertServiceException(() -> recordTemplateService.deleteRecordTemplate(id), RECORD_TEMPLATE_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||||
|
public void testGetRecordTemplatePage() {
|
||||||
|
// mock 数据
|
||||||
|
RecordTemplateDO dbRecordTemplate = randomPojo(RecordTemplateDO.class, o -> { // 等会查询到
|
||||||
|
o.setName(null);
|
||||||
|
o.setOrganizationId(null);
|
||||||
|
o.setMachineId(null);
|
||||||
|
o.setWorkTeamId(null);
|
||||||
|
o.setStartTime(null);
|
||||||
|
o.setEndTime(null);
|
||||||
|
o.setGroupManagerApproveId1(null);
|
||||||
|
o.setGroupManagerApproveId2(null);
|
||||||
|
o.setProductionManagerApproveId1(null);
|
||||||
|
o.setProductionManagerApproveId2(null);
|
||||||
|
o.setProcessInstanceId(null);
|
||||||
|
o.setStatus(null);
|
||||||
|
o.setRecordType(null);
|
||||||
|
o.setRemark(null);
|
||||||
|
o.setIsEnable(null);
|
||||||
|
o.setCreateTime(null);
|
||||||
|
});
|
||||||
|
recordTemplateMapper.insert(dbRecordTemplate);
|
||||||
|
// 测试 name 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setName(null)));
|
||||||
|
// 测试 organizationId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setOrganizationId(null)));
|
||||||
|
// 测试 machineId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setMachineId(null)));
|
||||||
|
// 测试 workTeamId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setWorkTeamId(null)));
|
||||||
|
// 测试 startTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setStartTime(null)));
|
||||||
|
// 测试 endTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setEndTime(null)));
|
||||||
|
// 测试 groupManagerApproveId1 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setGroupManagerApproveId1(null)));
|
||||||
|
// 测试 groupManagerApproveId2 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setGroupManagerApproveId2(null)));
|
||||||
|
// 测试 productionManagerApproveId1 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProductionManagerApproveId1(null)));
|
||||||
|
// 测试 productionManagerApproveId2 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProductionManagerApproveId2(null)));
|
||||||
|
// 测试 processInstanceId 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setProcessInstanceId(null)));
|
||||||
|
// 测试 status 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setStatus(null)));
|
||||||
|
// 测试 recordType 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setRecordType(null)));
|
||||||
|
// 测试 remark 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setRemark(null)));
|
||||||
|
// 测试 isEnable 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setIsEnable(null)));
|
||||||
|
// 测试 createTime 不匹配
|
||||||
|
recordTemplateMapper.insert(cloneIgnoreId(dbRecordTemplate, o -> o.setCreateTime(null)));
|
||||||
|
// 准备参数
|
||||||
|
RecordTemplatePageReqVO reqVO = new RecordTemplatePageReqVO();
|
||||||
|
reqVO.setName(null);
|
||||||
|
reqVO.setOrganizationId(null);
|
||||||
|
reqVO.setMachineId(null);
|
||||||
|
reqVO.setWorkTeamId(null);
|
||||||
|
reqVO.setStartTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setEndTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
reqVO.setGroupManagerApproveId1(null);
|
||||||
|
reqVO.setGroupManagerApproveId2(null);
|
||||||
|
reqVO.setProductionManagerApproveId1(null);
|
||||||
|
reqVO.setProductionManagerApproveId2(null);
|
||||||
|
reqVO.setProcessInstanceId(null);
|
||||||
|
reqVO.setStatus(null);
|
||||||
|
reqVO.setRecordType(null);
|
||||||
|
reqVO.setRemark(null);
|
||||||
|
reqVO.setIsEnable(null);
|
||||||
|
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||||
|
|
||||||
|
// 调用
|
||||||
|
PageResult<RecordTemplateDO> pageResult = recordTemplateService.getRecordTemplatePage(reqVO);
|
||||||
|
// 断言
|
||||||
|
assertEquals(1, pageResult.getTotal());
|
||||||
|
assertEquals(1, pageResult.getList().size());
|
||||||
|
assertPojoEquals(dbRecordTemplate, pageResult.getList().get(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue