新增配合示方模块,包括主子表结构、控制器、服务及映射器的实现,支持增删改查功能,优化胶料代号生成逻辑及相关字段,增强数据验证和用户体验。

This commit is contained in:
geht
2026-05-21 18:49:20 +08:00
parent a10aae420a
commit 89407d1f1d
32 changed files with 5711 additions and 9 deletions

View File

@@ -0,0 +1,186 @@
-- 配合示方分类/STEP/称量方式/状态字典 + /子表 + 菜单 MES技术管理+ admin 授权
SET NAMES utf8mb4;
INSERT IGNORE INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
VALUES ('1995000000000000010', '配合示方分类', 'xslmes_formula_spec_category', 'MES配合示方分类', 0, 'admin', NOW(), 0, 1002);
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001001', '1995000000000000010', '标准', 'standard', 1, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001002', '1995000000000000010', '临时', 'temporary', 2, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001003', '1995000000000000010', '实验', 'trial', 3, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001004', '1995000000000000010', '消费', 'consumption', 4, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
VALUES ('1995000000000000011', '配合示方STEP', 'xslmes_formula_spec_step', 'MES配合示方STEP', 0, 'admin', NOW(), 0, 1002);
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001011', '1995000000000000011', 'A', 'A', 1, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001012', '1995000000000000011', 'B', 'B', 2, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001013', '1995000000000000011', 'Q', 'Q', 3, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
VALUES ('1995000000000000012', '配合示方称量方式', 'xslmes_formula_spec_weigh_mode', 'MES配合示方自动/人工称量', 0, 'admin', NOW(), 0, 1002);
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001021', '1995000000000000012', '自动称量1', 'auto1', 1, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001022', '1995000000000000012', '人工称量', 'manual', 2, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `type`, `tenant_id`)
VALUES ('1995000000000000013', '配合示方状态', 'xslmes_formula_spec_status', 'MES配合示方状态', 0, 'admin', NOW(), 0, 1002);
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001031', '1995000000000000013', '编制', 'compile', 1, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001032', '1995000000000000013', '校对', 'proofread', 2, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001033', '1995000000000000013', '审核', 'audit', 3, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001034', '1995000000000000013', '批准', 'approve', 4, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001035', '1995000000000000013', '正式发布', 'released', 5, 1, 'admin', NOW());
INSERT IGNORE INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `sort_order`, `status`, `create_by`, `create_time`)
VALUES ('1995000000000001036', '1995000000000000013', '作废', 'obsolete', 6, 1, 'admin', NOW());
CREATE TABLE IF NOT EXISTS `mes_xsl_formula_spec` (
`id` varchar(32) NOT NULL COMMENT '主键',
`category` varchar(32) DEFAULT 'standard' COMMENT '分类字典xslmes_formula_spec_categorystandard标准 temporary临时 trial实验 consumption消费',
`spec_code` varchar(100) DEFAULT NULL COMMENT '示方编号',
`rubber_code` varchar(100) DEFAULT NULL COMMENT '胶料代号',
`basic_formula` varchar(100) DEFAULT NULL COMMENT '基本配合',
`issue_date` date DEFAULT NULL COMMENT '发行日期',
`purpose` varchar(500) DEFAULT NULL COMMENT '用途',
`issue_number` varchar(100) DEFAULT NULL COMMENT '发行编号',
`mixing_stages` int DEFAULT NULL COMMENT '混合段数1-7',
`mixing_machine` varchar(200) DEFAULT NULL COMMENT '混合机器',
`issue_dept_id` varchar(32) DEFAULT NULL COMMENT '发行部门ID',
`issue_dept_name` varchar(200) DEFAULT NULL COMMENT '发行部门名称冗余',
`a_rubber_total_phr` decimal(18,4) DEFAULT NULL COMMENT 'A胶TOTAL PHR',
`total_phr` decimal(18,4) DEFAULT NULL COMMENT 'TOTAL PHR',
`issue_reason` text COMMENT '发行理由',
`natural_rubber` decimal(18,4) DEFAULT NULL COMMENT '天然橡胶',
`synthetic_rubber` decimal(18,4) DEFAULT NULL COMMENT '合成橡胶',
`total_amount` decimal(18,4) DEFAULT NULL COMMENT '合计',
`weight_unit_price` decimal(18,4) DEFAULT NULL COMMENT '重量单价',
`volume_unit_price` decimal(18,4) DEFAULT NULL COMMENT '体积单价',
`q_rubber_sg` decimal(18,6) DEFAULT NULL COMMENT 'Q胶比重',
`a_rubber_sg` decimal(18,6) DEFAULT NULL COMMENT 'A胶比重',
`has_manual_batch` int DEFAULT 0 COMMENT '是否有人工配料0否 1是',
`status` varchar(32) DEFAULT 'compile' COMMENT '状态字典xslmes_formula_spec_status',
`proofread_by` varchar(50) DEFAULT NULL COMMENT '校对人',
`proofread_time` datetime DEFAULT NULL COMMENT '校对时间',
`audit_by` varchar(50) DEFAULT NULL COMMENT '审核人',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`approve_by` varchar(50) DEFAULT NULL COMMENT '批准人',
`approve_time` datetime DEFAULT NULL COMMENT '批准时间',
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
`sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(50) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`del_flag` int NOT NULL DEFAULT 0 COMMENT '逻辑删除0正常 1已删除',
PRIMARY KEY (`id`),
KEY `idx_mxfs_spec_code` (`spec_code`),
KEY `idx_mxfs_rubber_code` (`rubber_code`),
KEY `idx_mxfs_issue_number` (`issue_number`),
KEY `idx_mxfs_category` (`category`),
KEY `idx_mxfs_status` (`status`),
KEY `idx_mxfs_issue_date` (`issue_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES配合示方';
CREATE TABLE IF NOT EXISTS `mes_xsl_formula_spec_line` (
`id` varchar(32) NOT NULL COMMENT '主键',
`formula_spec_id` varchar(32) NOT NULL COMMENT '配合示方主表ID',
`sort_no` int DEFAULT NULL COMMENT '行序号',
`phr` decimal(18,4) DEFAULT NULL COMMENT 'PHR',
`mixer_material_id` varchar(32) DEFAULT NULL COMMENT '密炼物料ID',
`mixer_material_code` varchar(100) DEFAULT NULL COMMENT '密炼物料编码冗余',
`mixer_material_name` varchar(200) DEFAULT NULL COMMENT '密炼物料名称冗余',
`material_desc` varchar(500) DEFAULT NULL COMMENT '物料描述',
`step` varchar(8) DEFAULT NULL COMMENT 'STEP字典xslmes_formula_spec_stepA/B/Q',
`weigh_mode` varchar(32) DEFAULT NULL COMMENT '称量方式字典xslmes_formula_spec_weigh_mode',
`weight_percent` decimal(18,4) DEFAULT NULL COMMENT '重量%',
`volume` decimal(18,6) DEFAULT NULL COMMENT '体积',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`stage1` decimal(18,4) DEFAULT NULL COMMENT '混合段1',
`stage2` decimal(18,4) DEFAULT NULL COMMENT '混合段2',
`stage3` decimal(18,4) DEFAULT NULL COMMENT '混合段3',
`stage4` decimal(18,4) DEFAULT NULL COMMENT '混合段4',
`stage5` decimal(18,4) DEFAULT NULL COMMENT '混合段5',
`stage6` decimal(18,4) DEFAULT NULL COMMENT '混合段6',
`stage7` decimal(18,4) DEFAULT NULL COMMENT '混合段7',
`tenant_id` int DEFAULT NULL COMMENT '租户ID',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(50) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `idx_mxfsl_formula_spec_id` (`formula_spec_id`),
KEY `idx_mxfsl_mixer_material_id` (`mixer_material_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='MES配合示方明细';
UPDATE `sys_permission`
SET `is_leaf` = 0, `update_time` = NOW()
WHERE `id` = '1900000000000000810' AND `is_leaf` = 1;
INSERT IGNORE INTO `sys_permission` (
`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`,
`menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`,
`hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`,
`del_flag`, `rule_flag`, `status`, `internal_or_external`
) VALUES (
'177925970995530', '1900000000000000810', '配合示方', '/xslmes/mesXslFormulaSpec',
'xslmes/mesXslFormulaSpec/MesXslFormulaSpecList', 1, 'MesXslFormulaSpecList', NULL,
1, NULL, '0', 1.00, 0, 'ant-design:experiment-outlined', 0, 1,
0, 0, 'MES配合示方', 'admin', NOW(), 'admin', NOW(),
0, 0, '1', 0
);
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995531', '177925970995530', '新增', 2, 'xslmes:mes_xsl_formula_spec:add', '1', 1.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995532', '177925970995530', '编辑', 2, 'xslmes:mes_xsl_formula_spec:edit', '1', 2.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995533', '177925970995530', '删除', 2, 'xslmes:mes_xsl_formula_spec:delete', '1', 3.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995534', '177925970995530', '批量删除', 2, 'xslmes:mes_xsl_formula_spec:deleteBatch', '1', 4.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995535', '177925970995530', '导出', 2, 'xslmes:mes_xsl_formula_spec:exportXls', '1', 5.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT IGNORE INTO `sys_permission` (`id`, `parent_id`, `name`, `menu_type`, `perms`, `perms_type`, `sort_no`, `is_route`, `is_leaf`, `hidden`, `status`, `del_flag`, `create_by`, `create_time`)
VALUES ('177925970995536', '177925970995530', '导入', 2, 'xslmes:mes_xsl_formula_spec:importExcel', '1', 6.00, 0, 1, 0, '1', 0, 'admin', NOW());
INSERT INTO `sys_role_permission` (`id`, `role_id`, `permission_id`, `data_rule_ids`, `operate_date`, `operate_ip`)
SELECT REPLACE(UUID(), '-', ''), r.id, p.id, NULL, NOW(), '127.0.0.1'
FROM `sys_role` r
CROSS JOIN `sys_permission` p
WHERE r.`role_code` = 'admin'
AND p.`id` IN (
'177925970995530', '177925970995531', '177925970995532',
'177925970995533', '177925970995534', '177925970995535', '177925970995536'
)
AND NOT EXISTS (
SELECT 1 FROM `sys_role_permission` rp
WHERE rp.`role_id` = r.id AND rp.`permission_id` = p.id
);

View File

@@ -0,0 +1,9 @@
-- 配合示方主表新增混合段1-7合计字段
ALTER TABLE `mes_xsl_formula_spec`
ADD COLUMN `stage1_total` decimal(18,4) DEFAULT NULL COMMENT '混合段1合计' AFTER `total_phr`,
ADD COLUMN `stage2_total` decimal(18,4) DEFAULT NULL COMMENT '混合段2合计' AFTER `stage1_total`,
ADD COLUMN `stage3_total` decimal(18,4) DEFAULT NULL COMMENT '混合段3合计' AFTER `stage2_total`,
ADD COLUMN `stage4_total` decimal(18,4) DEFAULT NULL COMMENT '混合段4合计' AFTER `stage3_total`,
ADD COLUMN `stage5_total` decimal(18,4) DEFAULT NULL COMMENT '混合段5合计' AFTER `stage4_total`,
ADD COLUMN `stage6_total` decimal(18,4) DEFAULT NULL COMMENT '混合段6合计' AFTER `stage5_total`,
ADD COLUMN `stage7_total` decimal(18,4) DEFAULT NULL COMMENT '混合段7合计' AFTER `stage6_total`;

View File

@@ -0,0 +1,15 @@
-- 配合示方分类字典标准示方 S / 临时示方 P / 试验示方 T / 消费示方 C
SET NAMES utf8mb4;
UPDATE `sys_dict_item` SET `item_text` = '标准示方', `item_value` = 'S' WHERE `id` = '1995000000000001001';
UPDATE `sys_dict_item` SET `item_text` = '临时示方', `item_value` = 'P' WHERE `id` = '1995000000000001002';
UPDATE `sys_dict_item` SET `item_text` = '试验示方', `item_value` = 'T' WHERE `id` = '1995000000000001003';
UPDATE `sys_dict_item` SET `item_text` = '消费示方', `item_value` = 'C' WHERE `id` = '1995000000000001004';
UPDATE `mes_xsl_formula_spec` SET `category` = 'S' WHERE `category` = 'standard';
UPDATE `mes_xsl_formula_spec` SET `category` = 'P' WHERE `category` = 'temporary';
UPDATE `mes_xsl_formula_spec` SET `category` = 'T' WHERE `category` = 'trial';
UPDATE `mes_xsl_formula_spec` SET `category` = 'C' WHERE `category` = 'consumption';
ALTER TABLE `mes_xsl_formula_spec`
MODIFY COLUMN `category` varchar(32) DEFAULT 'S' COMMENT '分类字典xslmes_formula_spec_categoryS标准示方 P临时示方 T试验示方 C消费示方';

View File

@@ -0,0 +1,7 @@
-- 配合示方关联胶料主数据支持胶料代号自动生成
SET NAMES utf8mb4;
ALTER TABLE `mes_xsl_formula_spec`
ADD COLUMN `rubber_material_id` varchar(32) DEFAULT NULL COMMENT '胶料ID关联mes_material.id' AFTER `rubber_code`;
CREATE INDEX `idx_mxfs_rubber_material_id` ON `mes_xsl_formula_spec` (`rubber_material_id`);

View File

@@ -0,0 +1,10 @@
-- 配合示方 STEP 字典删除字典值 B
SET NAMES utf8mb4;
-- 已有业务数据若使用 B清空以便重新选择
UPDATE `mes_xsl_formula_spec_line` SET `step` = NULL WHERE `step` = 'B';
DELETE FROM `sys_dict_item` WHERE `id` = '1995000000000001012';
ALTER TABLE `mes_xsl_formula_spec_line`
MODIFY COLUMN `step` varchar(8) DEFAULT NULL COMMENT 'STEP字典xslmes_formula_spec_stepA/Q';

View File

@@ -0,0 +1,20 @@
-- 配合示方含胶率物料小类配置天然橡胶 / 合成橡胶
DROP TABLE IF EXISTS `mes_xsl_formula_spec_setting`;
CREATE TABLE `mes_xsl_formula_spec_setting` (
`id` varchar(32) NOT NULL COMMENT '主键',
`natural_minor_category_ids` varchar(2000) DEFAULT NULL COMMENT '天然橡胶物料小类ID逗号分隔',
`synthetic_minor_category_ids` varchar(2000) DEFAULT NULL COMMENT '合成橡胶物料小类ID逗号分隔',
`create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配合示方模块配置';
INSERT INTO `mes_xsl_formula_spec_setting` (`id`, `natural_minor_category_ids`, `synthetic_minor_category_ids`, `create_time`)
SELECT
'1993000000000000991',
(SELECT `id` FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_TRJ' LIMIT 1),
(SELECT `id` FROM `sys_category` WHERE `code` = 'XSLMES_MATERIAL_RAW_AUX_HCJ' LIMIT 1),
NOW()
WHERE NOT EXISTS (SELECT 1 FROM `mes_xsl_formula_spec_setting` WHERE `id` = '1993000000000000991');