初始代码

This commit is contained in:
hhh
2026-04-02 10:38:23 +08:00
parent d8b4140f50
commit aed67ce1fd
1937 changed files with 447678 additions and 1 deletions

View File

@@ -0,0 +1,146 @@
-- ============================================================
-- 报工单页面类别与字段控制
-- 版本v2.0.003 日期2026-03-05 作者:周启威
-- ============================================================
-- ============================================================
-- 1. 创建类别配置表
-- ============================================================
CREATE TABLE `pro_report_category_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类别编码A/B/C/D/E为系统类别F/G/H...为自定义类别)',
`category_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '类别名称(可自定义修改)',
`default_category_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '默认类别名称(系统初始名称,用于重置)',
`category_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'SYSTEM' COMMENT '类别类型SYSTEM=系统类别/CUSTOM=自定义类别)',
`is_enabled` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'Y' COMMENT '是否启用Y=启用/N=停用)',
`sort_order` int DEFAULT NULL COMMENT '排序号',
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_category_code` (`category_code`),
KEY `idx_category_type` (`category_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='报工单类别配置表';
-- ============================================================
-- 2. 创建字段配置表
-- ============================================================
CREATE TABLE `pro_report_field_config` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '所属类别编码A/B/C/D/E',
`field_code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字段编码(系统字段=实体类字段名,自定义字段=custom_field_xxx不可修改',
`field_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '字段显示名称(可自定义修改)',
`default_field_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '默认字段名称(系统初始名称,用于重置)',
`field_type` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'SYSTEM' COMMENT '字段类型SYSTEM=系统字段/CUSTOM=自定义字段)',
`data_type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'STRING' COMMENT '数据类型STRING=文本/NUMBER=数字/DATE=日期/DATETIME=日期时间/BOOLEAN=布尔/SELECT=下拉选择)',
`control_type` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'INPUT' COMMENT '控件类型INPUT=文本框/NUMBER=数字框/DATE=日期选择/DATETIME=日期时间选择/SELECT=下拉框/TEXTAREA=文本域/SWITCH=开关)',
`options` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '下拉选项JSON格式仅当control_type=SELECT时有效',
`is_enabled` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'Y' COMMENT '是否启用Y=启用/N=停用)',
`is_required` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N' COMMENT '是否必填Y=必填/N=非必填)',
`sort_order` int DEFAULT NULL COMMENT '排序号',
`remark` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_category_field` (`category_code`,`field_code`),
KEY `idx_category_code` (`category_code`),
KEY `idx_field_type` (`field_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='报工单字段配置表';
-- ============================================================
-- 3. 报工单表增加自定义字段JSON列
-- ============================================================
ALTER TABLE `pro_report` ADD COLUMN `custom_fields` json DEFAULT NULL COMMENT '自定义字段值JSON格式';
-- ============================================================
-- 4. 初始化类别配置数据(系统类别)
-- ============================================================
INSERT INTO `pro_report_category_config` (`category_code`, `category_name`, `default_category_name`, `category_type`, `is_enabled`, `sort_order`, `create_by`, `create_time`) VALUES
('A', '基础信息', '基础信息', 'SYSTEM', 'Y', 1, 'admin', NOW()),
('B', '数量信息', '数量信息', 'SYSTEM', 'Y', 2, 'admin', NOW()),
('C', '时间节拍', '时间节拍', 'SYSTEM', 'Y', 3, 'admin', NOW()),
('D', '成本效益', '成本效益', 'SYSTEM', 'Y', 4, 'admin', NOW()),
('E', '异常记录', '异常记录', 'SYSTEM', 'Y', 5, 'admin', NOW());
-- ============================================================
-- 5. 初始化字段配置数据
-- ============================================================
-- A. 基础信息字段
INSERT INTO `pro_report_field_config` (`category_code`, `field_code`, `field_name`, `default_field_name`, `field_type`, `data_type`, `control_type`, `is_enabled`, `is_required`, `sort_order`, `create_by`, `create_time`) VALUES
('A', 'reportUserId', '报工人', '报工人', 'SYSTEM', 'NUMBER', 'SELECT', 'Y', 'Y', 1, 'admin', NOW()),
('A', 'reportTime', '报工时间', '报工时间', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'Y', 2, 'admin', NOW()),
('A', 'reportType', '报工类型', '报工类型', 'SYSTEM', 'STRING', 'SELECT', 'Y', 'N', 3, 'admin', NOW()),
('A', 'shiftName', '班次', '班次', 'SYSTEM', 'STRING', 'SELECT', 'Y', 'N', 4, 'admin', NOW()),
('A', 'teamName', '班组', '班组', 'SYSTEM', 'STRING', 'SELECT', 'Y', 'N', 5, 'admin', NOW()),
('A', 'executionStandard', '执行标准', '执行标准', 'SYSTEM', 'STRING', 'INPUT', 'Y', 'N', 6, 'admin', NOW()),
('A', 'workshopId', '车间', '车间', 'SYSTEM', 'NUMBER', 'SELECT', 'Y', 'Y', 7, 'admin', NOW()),
('A', 'stationId', '工位', '工位', 'SYSTEM', 'NUMBER', 'SELECT', 'Y', 'Y', 8, 'admin', NOW());
-- B. 数量信息字段
INSERT INTO `pro_report_field_config` (`category_code`, `field_code`, `field_name`, `default_field_name`, `field_type`, `data_type`, `control_type`, `is_enabled`, `is_required`, `sort_order`, `create_by`, `create_time`) VALUES
('B', 'planCount', '计划数', '计划数', 'SYSTEM', 'NUMBER', 'INPUT', 'Y', 'N', 1, 'admin', NOW()),
('B', 'reportQuantity', '报工数量', '报工数量', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'Y', 2, 'admin', NOW()),
('B', 'qualifiedQuantity', '合格数量', '合格数量', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'Y', 3, 'admin', NOW()),
('B', 'unqualifiedQuantity', '不合格数量', '不合格数量', 'SYSTEM', 'NUMBER', 'INPUT', 'Y', 'N', 4, 'admin', NOW()),
('B', 'yieldRate', '良品率', '良品率', 'SYSTEM', 'NUMBER', 'INPUT', 'Y', 'N', 5, 'admin', NOW());
-- C. 时间节拍字段
INSERT INTO `pro_report_field_config` (`category_code`, `field_code`, `field_name`, `default_field_name`, `field_type`, `data_type`, `control_type`, `is_enabled`, `is_required`, `sort_order`, `create_by`, `create_time`) VALUES
('C', 'planStartTime', '计划开始时间', '计划开始时间', 'SYSTEM', 'DATETIME', 'INPUT', 'Y', 'N', 1, 'admin', NOW()),
('C', 'planEndTime', '计划完工时间', '计划完工时间', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'N', 2, 'admin', NOW()),
('C', 'actualStartTime', '实际开始时间', '实际开始时间', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'N', 3, 'admin', NOW()),
('C', 'actualEndTime', '实际完工时间', '实际完工时间', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'N', 4, 'admin', NOW()),
('C', 'reportPeriodStart', '报工周期开始', '报工周期开始', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'N', 5, 'admin', NOW()),
('C', 'reportPeriodEnd', '报工周期结束', '报工周期结束', 'SYSTEM', 'DATETIME', 'DATETIME', 'Y', 'N', 6, 'admin', NOW()),
('C', 'theoreticalCycleTime', '理论节拍', '理论节拍', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 7, 'admin', NOW()),
('C', 'downtimeMinutes', '停机时间', '停机时间', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 8, 'admin', NOW()),
('C', 'downtimeReason', '停机原因', '停机原因', 'SYSTEM', 'STRING', 'INPUT', 'Y', 'N', 9, 'admin', NOW());
-- D. 成本效益字段
INSERT INTO `pro_report_field_config` (`category_code`, `field_code`, `field_name`, `default_field_name`, `field_type`, `data_type`, `control_type`, `is_enabled`, `is_required`, `sort_order`, `create_by`, `create_time`) VALUES
('D', 'performanceWages', '绩效工资', '绩效工资', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 1, 'admin', NOW()),
('D', 'energyConsumption', '能耗', '能耗', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 2, 'admin', NOW()),
('D', 'materialConsumption', '工耗', '工耗', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 3, 'admin', NOW()),
('D', 'otherCosts', '其他成本', '其他成本', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 4, 'admin', NOW()),
('D', 'valueAdded', '增值', '增值', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 5, 'admin', NOW()),
('D', 'stationOee', '工位OEE', '工位OEE', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 6, 'admin', NOW()),
('D', 'currentBenefit', '本次效益', '本次效益', 'SYSTEM', 'NUMBER', 'INPUT', 'Y', 'N', 7, 'admin', NOW()),
('D', 'isSettle', '是否结算工资', '是否结算工资', 'SYSTEM', 'STRING', 'SELECT', 'Y', 'N', 8, 'admin', NOW()),
('D', 'wages', '结算工资', '结算工资', 'SYSTEM', 'NUMBER', 'NUMBER', 'Y', 'N', 9, 'admin', NOW());
-- E. 异常记录字段
INSERT INTO `pro_report_field_config` (`category_code`, `field_code`, `field_name`, `default_field_name`, `field_type`, `data_type`, `control_type`, `is_enabled`, `is_required`, `sort_order`, `create_by`, `create_time`) VALUES
('E', 'stationException', '工位异常情况', '工位异常情况', 'SYSTEM', 'STRING', 'TEXTAREA', 'Y', 'N', 1, 'admin', NOW()),
('E', 'rectificationSuggestion', '整改建议', '整改建议', 'SYSTEM', 'STRING', 'TEXTAREA', 'Y', 'N', 2, 'admin', NOW()),
('E', 'remark', '备注', '备注', 'SYSTEM', 'STRING', 'TEXTAREA', 'Y', 'N', 3, 'admin', NOW());
-- ============================================================
-- 6. 说明
-- ============================================================
-- 1. 类别配置表存储系统类别和自定义类别:
-- - category_type: SYSTEM=系统类别A/B/C/D/E不可删除CUSTOM=自定义类别F/G/H...,可删除)
-- - category_code: 系统类别固定为A/B/C/D/E自定义类别按字母顺序生成F/G/H...
-- - category_name: 可自定义修改的显示名称
-- - default_category_name: 系统默认名称,用于重置
-- 2. 字段配置表存储每个类别下字段的配置信息:
-- - field_type: SYSTEM=系统字段对应实体类字段CUSTOM=自定义字段存储在JSON中
-- - field_code: 系统字段使用实体类字段名,自定义字段使用 custom_field_xxx
-- - field_name: 可自定义修改的显示名称
-- - default_field_name: 系统默认名称,用于重置
-- - data_type: 数据类型STRING/NUMBER/DATE/DATETIME/BOOLEAN/SELECT
-- - control_type: 控件类型INPUT/NUMBER/DATE/DATETIME/SELECT/TEXTAREA/SWITCH
-- - options: 下拉选项JSON格式仅SELECT类型有效
-- - category_code: 所属类别编码,自定义字段可修改(移动到其他类别)
-- 3. 自定义字段的值存储在 pro_report.custom_fieldsJSON类型
-- 4. 停用的类别在报工单表单中完全隐藏
-- 5. 停用的字段在报工单表单中完全隐藏
-- 6. 必填字段根据配置动态添加校验规则
-- 7. 配置仅影响新增/编辑时的表单显示,不影响已保存的报工单数据
-- 8. 新增自定义字段时可以选择放入任一类别中(包括自定义类别)
-- 9. 删除自定义类别前需确认该类别下没有字段
-- 10. 配置功能通过报工单页面的"表单配置"按钮打开弹窗进行设置,无需单独的配置菜单