diff --git a/MySQL/08_mdm_db.sql b/MySQL/08_mdm_db.sql index 7c2a10c..f0feae2 100644 --- a/MySQL/08_mdm_db.sql +++ b/MySQL/08_mdm_db.sql @@ -304,4 +304,38 @@ CREATE TABLE `mdm_work_type` ( PRIMARY KEY (`work_type_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '工种基础信息表' ROW_FORMAT = Dynamic; + + +-- ---------------------------- +-- Table structure for base_project_structure_t +-- ---------------------------- +DROP TABLE IF EXISTS `base_project_structure_t`; +CREATE TABLE `base_project_structure_t` ( + `project_structure_id` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '项目结构ID', + `project_structure_code` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '项目结构编码', + `project_structure_name` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '项目结构名称', + `parent_project_structure_id` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '上级项目结构ID;表示一级项目', + `org_id` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '归属组织', + `project_type` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '项目类型表(关联表:GBS_PROJECT_TYPE_T)', + `project_structure_level` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '项目结构层级【更改为数字类型】', + `project_start_date` datetime NULL DEFAULT NULL COMMENT '项目启动时间', + `project_state_id` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '项目状态。关联字典:GBS_STATEFLOW_STATE_DIR', + `workflow_state` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '工作流状态', + `tree_index` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '树检索码', + `seq_num` int NULL DEFAULT NULL COMMENT '顺序号', + `tree_full_path` varchar(180) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '树全路径以/分隔,从根节点到自己', + `delete_flag` char(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '有效状态。Y=启用、N=禁用', + `remark` varchar(200) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_by` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_date` datetime NULL DEFAULT NULL COMMENT '创建日期', + `update_by` varchar(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '最后一次修改人', + `update_date` datetime NULL DEFAULT NULL COMMENT '最后一次修改日期', + `attribute1` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '扩展字段1', + `attribute2` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '扩展字段2', + `attribute3` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '扩展字段3', + `attribute4` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '扩展字段4', + `attribute5` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL COMMENT '扩展字段5', + PRIMARY KEY (`project_structure_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci COMMENT = '项目结构' ROW_FORMAT = Dynamic; + SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/MySQL/09_cm_db.sql b/MySQL/09_cm_db.sql new file mode 100644 index 0000000..991fb22 --- /dev/null +++ b/MySQL/09_cm_db.sql @@ -0,0 +1,67 @@ +-- ---------------------------- +-- Table structure for cm_contract_template +-- 合同模板表 +-- ---------------------------- +CREATE TABLE cm_contract_template ( + id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '模板ID', + template_code VARCHAR(50) NOT NULL UNIQUE COMMENT '模板编码', + template_name VARCHAR(200) NOT NULL COMMENT '模板名称', + template_type VARCHAR(20) NOT NULL COMMENT '模板类型: SALE-销售, PURCHASE-采购, LEASE-租赁, SERVICE-服务, PROJECT-项目', + contract_category VARCHAR(20) NOT NULL COMMENT '合同分类: INCOME-收入, EXPENSE-支出', + business_domain VARCHAR(50) COMMENT '业务领域', + version VARCHAR(20) NOT NULL COMMENT '版本号', + status VARCHAR(20) NOT NULL DEFAULT 'DRAFT' COMMENT '状态: DRAFT-草稿, ACTIVE-生效, INACTIVE-失效', + + -- 模板配置 + description TEXT COMMENT '模板描述', + component_config JSON COMMENT '组件配置', + field_config JSON COMMENT '字段配置', + validation_rules JSON COMMENT '验证规则', + + -- 版本控制 + base_template_id BIGINT COMMENT '基于哪个模板创建', + effective_date DATE COMMENT '生效日期', + expiration_date DATE COMMENT '失效日期', + + -- 系统字段 + created_by BIGINT NOT NULL COMMENT '创建人', + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_by BIGINT COMMENT '更新人', + updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + is_deleted TINYINT(1) DEFAULT 0 COMMENT '删除标志', + + INDEX idx_template_type (template_type), + INDEX idx_status (status), + INDEX idx_business_domain (business_domain) +) COMMENT='合同模板表'; + +CREATE TABLE template_component ( + id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '关系ID', + template_id BIGINT NOT NULL COMMENT '模板ID', + component_code VARCHAR(50) NOT NULL COMMENT '组件编码', + component_type VARCHAR(50) NOT NULL COMMENT '组件类型: BASIC-基础信息, PARTY-合同主体, SUBJECT-标的物, BILLING-计费, TERMS-商务条款, RECEIVABLE-应收明细, DOCUMENT-文档', + display_order INT NOT NULL DEFAULT 0 COMMENT '显示顺序', + is_required TINYINT(1) DEFAULT 1 COMMENT '是否必填', + is_visible TINYINT(1) DEFAULT 1 COMMENT '是否可见', + is_editable TINYINT(1) DEFAULT 1 COMMENT '是否可编辑', + + -- 组件配置 + component_config JSON COMMENT '组件配置', + data_rules JSON COMMENT '数据规则', + ui_config JSON COMMENT 'UI配置', + + -- 关联关系 + parent_component_code VARCHAR(50) COMMENT '父组件编码', + dependency_rules JSON COMMENT '依赖规则', + + -- 系统字段 + created_by BIGINT NOT NULL COMMENT '创建人', + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_by BIGINT COMMENT '更新人', + updated_at TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + + INDEX idx_template_id (template_id), + INDEX idx_component_code (component_code), + UNIQUE KEY uk_template_component (template_id, component_code), + FOREIGN KEY (template_id) REFERENCES contract_template(id) ON DELETE CASCADE +) COMMENT='模板组件关系表'; \ No newline at end of file diff --git a/MySQL/09_cm_init.sql b/MySQL/09_cm_init.sql new file mode 100644 index 0000000..59a8ef4 --- /dev/null +++ b/MySQL/09_cm_init.sql @@ -0,0 +1,17 @@ +----------------------------- 一级字典分类 ----------------------------- +-- ---------------------------- +-- 字典类型:合同管理(cm)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('cm', '-1', '合同管理', 'cm', 0, 0, NULL, 1, 0, '2026-02-27 11:58:17', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); + + +----------------------------- 二级字典分类 ----------------------------- +-- ---------------------------- +-- 字典类型:合同分类(contractCategory)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('contractCategory', 'cm', '合同分类', 'contractCategory', 0, 0, '合同分类', 1, 0, '2026-03-23 15:50:49', 'admin', '2026-04-24 10:01:11', 'admin', NULL, NULL, NULL, '0'); + +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('contractCategory_RJFW', 'contractCategory', '软件服务合同', '1001', 'RJFW', NULL, NULL, 1, 'contractCategory', 0, '2026-03-23 15:51:15', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('contractCategory_JSZC', 'contractCategory', '技术支持合同', '1002', 'JSZC', NULL, NULL, 1, 'contractCategory', 1, '2026-03-23 15:51:32', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('contractCategory_YWPX', 'contractCategory', '业务培训合同', '1003', 'YWPX', NULL, NULL, 1, 'contractCategory', 3, '2026-03-23 15:51:48', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('contractCategory_JZGC', 'contractCategory', '建筑工程合同', '1005', 'JZGC', NULL, NULL, 1, 'contractCategory', 4, '2026-03-23 15:52:08', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); diff --git a/MySQL/10_bc_db.sql b/MySQL/10_bc_db.sql new file mode 100644 index 0000000..e69de29 diff --git a/MySQL/10_bc_init.sql b/MySQL/10_bc_init.sql new file mode 100644 index 0000000..81c34b6 --- /dev/null +++ b/MySQL/10_bc_init.sql @@ -0,0 +1,37 @@ +----------------------------- 一级字典分类 ----------------------------- +-- ---------------------------- +-- 字典类型:合同管理(cm)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('bc', '-1', '基础配置', 'bc', 0, 0, NULL, 1, 0, '2026-02-27 11:58:17', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); + + +----------------------------- 二级字典分类 ----------------------------- +-- ---------------------------- +-- 字典类型:项目阶段(projectPhase)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectPhase', 'bc', '项目阶段', 'projectPhase', 0, 0, '项目阶段', 1, 0, '2026-03-23 15:50:49', 'admin', '2026-04-24 10:01:11', 'admin', NULL, NULL, NULL, '0'); + +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectPhase_LXJD', 'projectPhase', '立项阶段', 'LXJD', 'LXJD', NULL, NULL, 1, 'projectPhase', 10, '2026-03-23 15:51:15', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectPhase_KYJD', 'projectPhase', '可研阶段', 'KYJD', 'KYJD', NULL, NULL, 1, 'projectPhase', 20, '2026-03-23 15:51:32', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectPhase_SSJD', 'projectPhase', '实施阶段', 'SSJD', 'SSJD', NULL, NULL, 1, 'projectPhase', 30, '2026-03-23 15:51:48', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- 字典类型:项目预算阶段(projectBudgetPhase)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectBudgetPhase', 'bc', '项目预算阶段', 'projectBudgetPhase', 0, 0, '项目预算阶段', 1, 0, '2026-03-23 15:50:49', 'admin', '2026-04-24 10:01:11', 'admin', NULL, NULL, NULL, '0'); + +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectBudgetPhase_rom', 'projectBudgetPhase', '匡算', 'rom', 'KS', NULL, NULL, 1, 'projectBudgetPhase', 10, '2026-03-23 15:51:15', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectBudgetPhase_pre', 'projectBudgetPhase', '估算', 'pre', 'GS', NULL, NULL, 1, 'projectBudgetPhase', 20, '2026-03-23 15:51:32', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectBudgetPhase_estimate', 'projectBudgetPhase', '概算', 'estimate', 'GS', NULL, NULL, 1, 'projectBudgetPhase', 30, '2026-03-23 15:51:48', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_simple_spelling`, `f_is_default`, `f_description`, `f_enabled_mark`, `f_dictionary_type_id`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('projectBudgetPhase_budget', 'projectBudgetPhase', '预算', 'budget', 'YS', NULL, NULL, 1, 'projectBudgetPhase', 40, '2026-03-23 15:51:48', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); + +-- ---------------------------- +-- 字典类型:成本维度(costDimension)和字典数据 +-- ---------------------------- +INSERT INTO `base_dictionary_type` (`f_id`, `f_parent_id`, `f_full_name`, `f_en_code`, `f_is_tree`, `f_type`, `f_description`, `f_enabled_mark`, `f_sort_code`, `f_creator_time`, `f_creator_user_id`, `f_last_modify_time`, `f_last_modify_user_id`, `f_delete_time`, `f_delete_user_id`, `f_delete_mark`, `f_tenant_id`) VALUES ('costDimension', 'bc', '成本维度', 'costDimension', 1, 0, '成本维度', 1, 0, '2026-03-23 15:50:49', 'admin', '2026-04-24 10:01:11', 'admin', NULL, NULL, NULL, '0'); + +INSERT INTO `base_dictionary_data` VALUES ('costDimension_RL', '0', '人力', '10', 'RL', NULL, NULL, 1, 'costDimension', 10, '2026-05-14 16:04:01', 'admin', '2026-05-14 16:05:36', 'admin', NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` VALUES ('costDimension_WL', '0', '物料', '20', 'WL', NULL, NULL, 1, 'costDimension', 20, '2026-05-14 16:05:54', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` VALUES ('costDimension_SB', '0', '设备', '30', 'SB', NULL, NULL, 1, 'costDimension', 30, '2026-05-14 16:06:15', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` VALUES ('costDimension_FW', '0', '服务', '40', 'FW', NULL, NULL, 1, 'costDimension', 40, '2026-05-14 16:06:39', 'admin', NULL, NULL, NULL, NULL, NULL, '0'); +INSERT INTO `base_dictionary_data` VALUES ('costDimension_JJ', '0', '间接', '50', 'JJ', NULL, NULL, 1, 'costDimension', 50, '2026-05-14 16:06:52', 'admin', NULL, NULL, NULL, NULL, NULL, '0');