add record

plp
chenyuan 2 years ago
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,4 +1,3 @@
CREATE TABLE `mes_approve`
(
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
@ -9,16 +8,20 @@ CREATE TABLE `mes_approve`
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci NOT NULL COMMENT '用户名称',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint DEFAULT NULL COMMENT '租户id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='签名记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='签名记录表';
CREATE TABLE `mes_record_template`
(
@ -40,15 +43,19 @@ CREATE TABLE `mes_record_template`
`record_type` tinyint NOT NULL COMMENT '记录类型(工序类型)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='生产记录表模板';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='记录表模板';
CREATE TABLE `mes_record_dajiang`
@ -67,15 +74,19 @@ CREATE TABLE `mes_record_dajiang`
`jiang_weight` decimal(24, 6) DEFAULT NULL COMMENT '产浆量T',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='打浆记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='打浆记录表';
CREATE TABLE `mes_record_suijiang`
@ -97,15 +108,19 @@ CREATE TABLE `mes_record_suijiang`
`density` 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 '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='碎浆记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='碎浆记录表';
CREATE TABLE `mes_record_chengxing`
(
@ -122,15 +137,19 @@ CREATE TABLE `mes_record_chengxing`
`product_weight` decimal(24, 6) DEFAULT NULL COMMENT '湿重(g)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='成型记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='成型记录表';
CREATE TABLE `mes_record_ganzao`
(
@ -146,15 +165,19 @@ CREATE TABLE `mes_record_ganzao`
`product_weight` decimal(24, 6) DEFAULT NULL COMMENT '产品重量(g)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='干燥记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='干燥记录表';
@ -175,15 +198,19 @@ CREATE TABLE `mes_record_jiashi`
`product_weight` decimal(24, 6) DEFAULT NULL COMMENT '单重(g)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='加湿记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='加湿记录表';
CREATE TABLE `mes_record_reya`
(
@ -203,15 +230,19 @@ CREATE TABLE `mes_record_reya`
`product_weight` decimal(24, 6) DEFAULT NULL COMMENT '单重(g)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='热压记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='热压记录表';
CREATE TABLE `mes_record_qiebian`
(
@ -230,15 +261,19 @@ CREATE TABLE `mes_record_qiebian`
`cut_time` int NOT NULL COMMENT '切边时间(S)',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='切边记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='切边记录表';
CREATE TABLE `mes_record_pinjian`
(
@ -256,15 +291,19 @@ CREATE TABLE `mes_record_pinjian`
`unqualified_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '废品原因',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='检验记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='检验记录表';
CREATE TABLE `mes_record_dabao`
(
@ -278,12 +317,28 @@ CREATE TABLE `mes_record_dabao`
`package_item_specification` varchar(56) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '包装材料规格',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '备注',
`is_enable` bit(1) NOT NULL DEFAULT b'1' COMMENT '是否启用',
`is_enable` bit(1) NOT NULL DEFAULT 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 '是否删除',
`deleted` bit(1) NOT NULL DEFAULT 0 COMMENT '是否删除',
`tenant_id` bigint NOT NULL DEFAULT '0' COMMENT '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='打包记录表';
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_unicode_ci
ROW_FORMAT = DYNAMIC COMMENT ='打包记录表';
-- 菜单 SQL
INSERT INTO system_menu(name, permission, type, sort, parent_id,
path, icon, component, status, component_name)
VALUES ('成型记录', '', 2, 0, 2800,
'record-template', '', 'mes/record/index', 0, 'RecordTemplate');
-- 菜单 SQL
INSERT INTO system_menu(name, permission, type, sort, parent_id,
path, icon, component, status, component_name)
VALUES ('碎浆记录', '', 2, 0, 2800,
'record-suijiang', '', 'mes/record/SuijiangIndex', 0, 'RecordSuijiang');

@ -21,5 +21,7 @@ public interface ErrorCodeConstants {
ErrorCode PLAN_NOT_EXISTS = new ErrorCode(5_003, "生产计划不存在");
ErrorCode ITEM_REQUISITION_NOT_EXISTS = new ErrorCode(5_004, "生产领料不存在");
ErrorCode RECORD_TEMPLATE_NOT_EXISTS = new ErrorCode(5_006, "记录表不存在");
ErrorCode RECORD_CHENGXING_NOT_EXISTS = new ErrorCode(5_0061, "成型记录不存在");
ErrorCode RECORD_SUIJIANG_NOT_EXISTS = new ErrorCode(5_0062, "碎浆记录不存在");
}

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

@ -1,4 +0,0 @@
/**
* TODO
*/
package cn.iocoder.yudao.module.mes.dal.dataobject.ajreport;

@ -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,99 @@
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.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_record_template")
@KeySequence("mes_record_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RecordTemplateDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String name;
/**
* id
*/
private Long organizationId;
/**
* id
*/
private Long machineId;
/**
* id
*/
private Long workTeamId;
/**
*
*/
private LocalDateTime startTime;
/**
*
*/
private LocalDateTime endTime;
/**
* id
*/
private Long groupManagerApproveId1;
/**
* id
*/
private Long groupManagerApproveId2;
/**
* id
*/
private Long productionManagerApproveId1;
/**
* id
*/
private Long productionManagerApproveId2;
/**
*
*/
private String processInstanceId;
/**
*
*
* {@link TODO mes_record_status }
*/
private Integer status;
/**
*
*
* {@link TODO mes_org_type }
*/
private String recordType;
/**
*
*/
private String remark;
/**
*
*
* {@link TODO infra_boolean_string }
*/
private Boolean isEnable;
}

@ -1,4 +0,0 @@
/**
* TODO
*/
package cn.iocoder.yudao.module.mes.dal.mysql.ajreport;

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

@ -1,4 +0,0 @@
/**
* TODO
*/
package cn.iocoder.yudao.module.mes.service.ajreport;

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

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

@ -15,3 +15,35 @@ DELETE FROM "mes_plan";
DELETE FROM "mes_item_requisition_detail";
DELETE FROM "mes_item_requisition";
-- 将该删表 SQL 语句,添加到 yudao-module-mes-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "mes_record_template";
-- 将该删表 SQL 语句,添加到 yudao-module-mes-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "mes_record_chengxing";
-- 将该删表 SQL 语句,添加到 yudao-module-mes-biz 模块的 test/resources/sql/clean.sql 文件里
DELETE FROM "mes_record_suijiang";

@ -58,7 +58,8 @@ CREATE TABLE IF NOT EXISTS "mes_organization"
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '工厂组织表';
CREATE TABLE IF NOT EXISTS "mes_task" (
CREATE TABLE IF NOT EXISTS "mes_task"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"code" varchar NOT NULL,
"order_date" varchar,
@ -75,7 +76,8 @@ CREATE TABLE IF NOT EXISTS "mes_task" (
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '生产任务单';
CREATE TABLE IF NOT EXISTS "mes_task_detail" (
CREATE TABLE IF NOT EXISTS "mes_task_detail"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"product_id" bigint NOT NULL,
"unit_id" bigint NOT NULL,
@ -94,7 +96,8 @@ CREATE TABLE IF NOT EXISTS "mes_task_detail" (
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '生产任务单明细';
CREATE TABLE IF NOT EXISTS "mes_plan" (
CREATE TABLE IF NOT EXISTS "mes_plan"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"code" varchar,
"product_id" bigint NOT NULL,
@ -118,7 +121,8 @@ CREATE TABLE IF NOT EXISTS "mes_plan" (
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '生产计划';
CREATE TABLE IF NOT EXISTS "mes_item_requisition_detail" (
CREATE TABLE IF NOT EXISTS "mes_item_requisition_detail"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"product_id" bigint NOT NULL,
"unit_id" bigint NOT NULL,
@ -135,7 +139,8 @@ CREATE TABLE IF NOT EXISTS "mes_item_requisition_detail" (
PRIMARY KEY ("id")
) COMMENT '领料明细';
CREATE TABLE IF NOT EXISTS "mes_item_requisition" (
CREATE TABLE IF NOT EXISTS "mes_item_requisition"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"code" varchar NOT NULL,
"requisition_date" varchar,
@ -153,3 +158,76 @@ CREATE TABLE IF NOT EXISTS "mes_item_requisition" (
"tenant_id" bigint,
PRIMARY KEY ("id")
) COMMENT '生产领料';
CREATE TABLE IF NOT EXISTS "mes_record_template"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"name" varchar NOT NULL,
"organization_id" bigint NOT NULL,
"machine_id" bigint,
"work_team_id" bigint,
"start_time" varchar NOT NULL,
"end_time" varchar NOT NULL,
"group_manager_approve_id1" bigint,
"group_manager_approve_id2" bigint,
"production_manager_approve_id1" bigint,
"production_manager_approve_id2" bigint,
"process_instance_id" varchar,
"status" int NOT NULL,
"record_type" varchar NOT NULL,
"remark" varchar,
"is_enable" bit,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint ,
PRIMARY KEY ("id")
) COMMENT '记录表模板';
CREATE TABLE IF NOT EXISTS "mes_record_chengxing"
(
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"record_id" bigint NOT NULL,
"start_time" varchar,
"end_time" varchar,
"xijiang" int NOT NULL,
"tuoshui" int NOT NULL,
"ximu" int NOT NULL,
"product_id" bigint NOT NULL,
"appearance" varchar NOT NULL,
"product_weight" varchar NOT NULL,
"remark" varchar,
"is_enable" bit,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint ,
PRIMARY KEY ("id")
) COMMENT '成型记录表';
CREATE TABLE IF NOT EXISTS "mes_record_suijiang" (
"id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
"record_id" bigint NOT NULL,
"start_time" varchar NOT NULL,
"end_time" varchar NOT NULL,
"suijiang_time" varchar NOT NULL,
"suijiang_cost_time" varchar,
"ratio_id" bigint,
"ratio" varchar,
"water_usage" varchar,
"density_out" varchar,
"add_item_usage" varchar,
"slag_yield" varchar,
"density" varchar,
"remark" varchar,
"is_enable" bit NOT NULL,
"creator" varchar DEFAULT '',
"create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updater" varchar DEFAULT '',
"update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
"deleted" bit NOT NULL DEFAULT FALSE,
"tenant_id" bigint NOT NULL,
PRIMARY KEY ("id")
) COMMENT '碎浆记录表';

@ -64,7 +64,7 @@ spring:
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: 47.106.185.127 # 地址
host: localhost # 地址
port: 6379 # 端口
database: 0 # 数据库索引
#password: bkcaydy8ydhZZnS2 # 密码,建议生产环境开启

Loading…
Cancel
Save