项目进度控制

This commit is contained in:
2025-05-08 20:42:58 +08:00
parent a1e2b71141
commit ca3724ff32
42 changed files with 2487 additions and 1 deletions

View File

@@ -0,0 +1,76 @@
-- 进度模板主表
CREATE TABLE `oa_schedule_template` (
`template_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '模板主键',
`template_name` VARCHAR(64) NOT NULL COMMENT '模板名称',
`status` INT DEFAULT 1 COMMENT '状态(1启用 0停用)',
`create_by` VARCHAR(64) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` VARCHAR(64) DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`del_flag` CHAR(1) DEFAULT '0' COMMENT '删除标识(0正常 1删除)',
`remark` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='进度模板主表';
-- 模板步骤明细
CREATE TABLE `oa_schedule_template_step` (
`step_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '步骤主键',
`template_id` BIGINT NOT NULL COMMENT '所属模板ID',
`step_order` INT NOT NULL COMMENT '步骤顺序(从1开始)',
`step_name` VARCHAR(64) NOT NULL COMMENT '步骤名称',
`expected_days` INT DEFAULT NULL COMMENT '预期耗时(天)',
`create_by` VARCHAR(64) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` VARCHAR(64) DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`del_flag` CHAR(1) DEFAULT '0',
PRIMARY KEY (`step_id`),
UNIQUE KEY `uniq_template_order` (`template_id`,`step_order`),
CONSTRAINT `fk_tpl_step_template` FOREIGN KEY (`template_id`)
REFERENCES `oa_schedule_template` (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='进度模板步骤表';
--------------------------------------------------------------------
-- 项目进度主表
CREATE TABLE `oa_project_schedule` (
`schedule_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目进度主键',
`project_id` BIGINT NOT NULL COMMENT '项目ID',
`template_id` BIGINT NOT NULL COMMENT '引用的进度模板ID',
`current_step` INT DEFAULT 0 COMMENT '当前进行到的步骤序号',
`start_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '进度开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '进度完成时间',
`status` INT DEFAULT 1 COMMENT '状态(1进行中 2已完成 0暂停)',
`create_by` VARCHAR(64) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` VARCHAR(64) DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`del_flag` CHAR(1) DEFAULT '0',
`remark` VARCHAR(255) DEFAULT NULL,
PRIMARY KEY (`schedule_id`),
KEY `idx_project` (`project_id`),
CONSTRAINT `fk_project_schedule_tpl` FOREIGN KEY (`template_id`)
REFERENCES `oa_schedule_template` (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目进度主表';
-- 项目进度步骤跟踪表
CREATE TABLE `oa_project_schedule_step` (
`track_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '跟踪记录主键',
`schedule_id` BIGINT NOT NULL COMMENT '所属项目进度ID',
`step_order` INT NOT NULL COMMENT '步骤序号',
`step_name` VARCHAR(64) NOT NULL COMMENT '步骤名称(冗余存储模板名称)',
`plan_start` DATETIME DEFAULT NULL COMMENT '计划开始',
`plan_end` DATETIME DEFAULT NULL COMMENT '计划完成',
`actual_start` DATETIME DEFAULT NULL,
`actual_end` DATETIME DEFAULT NULL,
`status` INT DEFAULT 0 COMMENT '0未开始 1进行中 2完成 3暂停',
`create_by` VARCHAR(64) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_by` VARCHAR(64) DEFAULT NULL,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`del_flag` CHAR(1) DEFAULT '0',
PRIMARY KEY (`track_id`),
UNIQUE KEY `uniq_schedule_order` (`schedule_id`,`step_order`),
CONSTRAINT `fk_project_step_main` FOREIGN KEY (`schedule_id`)
REFERENCES `oa_project_schedule` (`schedule_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目进度步骤跟踪表';
``