create table oa_progress ( progress_id bigint auto_increment comment '主键ID' primary key, project_id bigint default 0 not null comment '所属项目ID(可根据实际需要)', type tinyint default 1 not null comment '进度类型:1-项目进度;2-付款进度(可根据实际约定)', progress_name varchar(200) default '' not null comment '进度名称', parent_id bigint default 0 not null comment '父进度ID,0或NULL表示没有父节点', create_by varchar(40) default '' not null comment '创建者', create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', update_by varchar(40) default '' not null comment '更新者', update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', del_flag tinyint default 0 not null comment '删除标志:0-正常;1-删除', sort int default 0 not null comment '排序字段(如需)', remark varchar(500) default '' not null comment '备注(如需)', status int default 0 null comment '状态位', amount int default 0 null comment '设备数量', time_remark varchar(200) null comment '时间(备注)', contact_phone varchar(20) null comment '联系人电话' ) comment '项目进度主表' collate = utf8mb4_general_ci row_format = DYNAMIC; create index idx_parent_id on oa_progress (parent_id); create index idx_project_id on oa_progress (project_id); create index idx_type on oa_progress (type); create table oa_progress_detail ( detail_id bigint auto_increment comment '主键ID' primary key, progress_id bigint not null comment '关联的进度ID,关联 project_progress.id', detail_name varchar(50) null comment '子进度名称', plan_start_date date null comment '计划开始日期(项目进度)', plan_end_date date null comment '计划结束日期(项目进度)', actual_start_date date null comment '实际开始日期(项目进度)', actual_end_date date null comment '实际结束日期(项目进度)', complete_percent decimal(5, 2) default 0.00 not null comment '完成百分比(项目进度)', plan_pay_date date null comment '计划付款日期(付款进度)', pay_amount decimal(18, 2) default 0.00 not null comment '应付金额(付款进度)', paid_amount decimal(18, 2) default 0.00 not null comment '已付金额(付款进度)', detail_status int default 0 null comment '子进度状态', create_by varchar(40) default '' not null comment '创建者', create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', update_by varchar(40) default '' not null comment '更新者', update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', del_flag tinyint default 0 not null comment '删除标志:0-正常;1-删除', remark varchar(500) default '' not null comment '备注(如需)', department varchar(30) null comment '负责部门' ) comment '项目进度/付款进度扩展表' collate = utf8mb4_general_ci row_format = DYNAMIC; create index idx_progress_id on oa_progress_detail (progress_id); create table oa_project_schedule ( schedule_id bigint auto_increment comment '项目进度主键' primary key, project_id bigint not null comment '项目ID', template_id bigint null comment '引用的进度模板ID', current_step int default 0 null comment '当前进行到的步骤序号', start_time datetime default CURRENT_TIMESTAMP null comment '进度开始时间', end_time datetime null comment '进度完成时间', status int default 1 null comment '状态(1进行中 2已完成 0暂停)', steward varchar(64) null comment '进度负责人', create_by varchar(64) null, create_time datetime default CURRENT_TIMESTAMP null, update_by varchar(64) null, update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP, del_flag char default '0' null, remark varchar(255) null ) comment '项目进度主表' row_format = DYNAMIC; create index fk_project_schedule_tpl on oa_project_schedule (template_id); create index idx_project on oa_project_schedule (project_id); create table oa_project_schedule_delay ( delay_id bigint auto_increment comment '延期记录主键' primary key, track_id bigint not null comment '关联的进度步骤跟踪记录主键(关联oa_project_schedule_step.track_id)', apply_user_name varchar(40) null comment '申请人姓名', apply_time datetime default CURRENT_TIMESTAMP not null comment '申请提交时间', apply_reason text not null comment '延期申请原因', original_end_time datetime not null comment '原计划结束时间', expect_end_time datetime not null comment '申请延期后的预计结束时间', approve_user_name varchar(40) null comment '审批人姓名', approve_time datetime null comment '审批完成时间', approve_result tinyint null comment '审批结果:0-待审批 1-审批通过 2-审批驳回', approve_remark varchar(500) default '' null comment '审批备注/驳回原因', delay_status tinyint default 0 not null comment '延期记录状态:0-待审批 1-审批通过 2-审批驳回 3-已撤销', create_by varchar(40) default '' not null comment '创建者', create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', update_by varchar(40) default '' not null comment '更新者', update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', del_flag tinyint default 0 not null comment '删除标志:0-正常;1-删除', remark varchar(500) default '' not null comment '备注(如需)' ) comment '项目进度步骤延期记录表' row_format = DYNAMIC; create index idx_delay_apply_user on oa_project_schedule_delay (apply_user_name); create index idx_delay_approve_user on oa_project_schedule_delay (approve_user_name); create index idx_delay_status on oa_project_schedule_delay (delay_status); create index idx_delay_track_id on oa_project_schedule_delay (track_id); create table oa_project_schedule_step ( track_id bigint auto_increment comment '跟踪记录主键' primary key, accessory varchar(500) null comment '文件列表', schedule_id bigint not null comment '所属项目进度ID', step_order int not null comment '步骤序号', step_name varchar(64) null comment '步骤名称(冗余存储模板名称)', plan_start datetime null comment '计划开始', plan_end datetime null comment '计划完成', actual_start datetime null, actual_end datetime null, status int default 0 null comment '0进行中 1完成 2暂停', create_by varchar(64) null, create_time datetime default CURRENT_TIMESTAMP null, update_by varchar(64) null, update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP, del_flag char default '0' null, header varchar(40) null comment '进度负责人', use_flag int default 1 null comment '使用标志 1为使用', batch_id int null comment '批次号', tab_node varchar(64) null comment 'tab节点', first_level_node varchar(64) null comment '一级节点(阶段节点)', second_level_node varchar(64) null comment '二级节点(关键节点)', start_time datetime null comment '开始时间', original_end_time datetime null comment '原定结束时间', end_time datetime null comment '结束时间', node_header varchar(40) null comment '节点负责人', related_docs varchar(1000) null comment '相关资料', related_images varchar(1000) null comment '相关图片', supplier_id bigint null comment '供应商ID(关联oa_supplier表主键)', requirement_file text null comment '需求文件(多文件用逗号分隔)', other json null comment '其他扩展信息(JSON格式存储)', specification text null comment '规范说明', sort_num int default 0 not null comment '排序字段(前端维护,数值越大排序越靠前)' ) comment '项目进度步骤跟踪表' row_format = DYNAMIC; create table sys_oa_task ( task_id bigint not null comment 'ID' primary key, project_id bigint null comment '项目ID', track_id bigint null comment '关联项目进度步骤ID', create_user_id bigint null comment '创建者id', worker_id bigint null comment '被分配者', task_title varchar(126) charset utf8mb4 default '' null comment '任务主题', task_type varchar(20) charset utf8mb4 default '0' null comment '工作类型(1接待,2沟通 3方案策划等)', task_grade char charset utf8mb4 default '0' null comment '优先级(0一般 1中 2高)', collaborator varchar(64) charset utf8mb4 default '' null comment '协作人员', begin_time datetime null comment '开始时间', finish_time datetime null comment '结束时间', origin_finish_time datetime null comment '最初结束时间', postponements int default 0 null comment '推迟次数', completed_time datetime null comment '结束时间', temp_time datetime null comment '上次结束时间', content text charset utf8mb4 null comment '详细描述', state int default 0 null comment '任务状态 15申请延期 0进行中 1完成等待评分 2完成', accessory text charset utf8mb4 null comment '附件', files varchar(1024) charset utf8mb4 null comment '工人文件列表', rank_number int default 10 null comment '任务完成评分', remark varchar(256) charset utf8mb4 default '' null comment '备注', create_by varchar(32) charset utf8mb4 default '' null comment '创建者', create_time datetime null comment '创建时间', update_by varchar(32) charset utf8mb4 default '' null comment '更新者', update_time datetime null comment '更新时间', del_flag tinyint default 0 null comment '删除标志', task_rank int default 0 not null comment '是否置顶,1为置顶,0为不置顶', own_rank int default 0 null comment '我的任务置顶', status int default 0 null comment '任务类型0单任务1报工', time_gap int default 0 null comment '事件间隔' ) comment '任务管理表' collate = utf8mb4_general_ci row_format = DYNAMIC; create table sys_oa_project ( project_id bigint not null comment 'ID' primary key, project_name varchar(126) default '' null comment '项目名称', project_num varchar(64) default '' null comment '项目编号', project_code varchar(30) null comment '项目代号', project_type char null comment '项目类型(1中标,2其他)', address varchar(126) default '' null comment '项目地址', funds decimal(24, 2) null comment '项目总款', functionary varchar(32) default '' null comment '项目负责人', begin_time datetime null comment '开始日期', finish_time datetime null comment '结束日期', original_finish_time datetime null comment '初始结束时间(项目原始计划结束时间)', delivery varchar(64) null comment '交货期', guarantee varchar(64) null comment '质保期', introduction varchar(256) default '' null comment '项目介绍', project_grade char default '0' null comment '优先级(0一般 1中 2高)', project_status char default '0' null comment '状态(0进行中 1完结)', product_status tinyint default 0 null comment '生产结项 (0:未结项,1已结项)', contract_id bigint null comment '关联合同ID', invoice_name varchar(64) collate utf8mb4_general_ci null comment '开票单位名称', invoice_number varchar(32) collate utf8mb4_general_ci null comment '纳税人识别号', invoice_address varchar(128) collate utf8mb4_general_ci null comment '开票地址电话', invoice_bank varchar(128) collate utf8mb4_general_ci null comment '开户行及账号', accessory text null comment '附件', bail json null comment '履约保证金', closure_files text null comment '结项文件', signing_company tinyint null comment '签约公司(1、昆山德睿福成套设备有限公司 2、昆山福安德工程技术成套设备有限公司 3、山东福安德信息科技有限公司 4、山东首达特科技工程有限公司 5、西安擎锋智创科技有限公司 6、德讯(济宁)软件开发有限公司)', remark varchar(256) null comment '备注', create_by varchar(32) default '' null comment '创建者', create_time datetime null comment '创建时间', update_by varchar(32) default '' null comment '更新者', update_time datetime null comment '更新时间', is_postpone int default 0 null comment '是否延期', postpone_reason varchar(1024) null comment '延期原因', postpone_time datetime null comment '延期至日期', postpone_count int default 0 not null comment '延期次数(项目累计延期次数,默认0)', color varchar(20) null comment '代表颜色', trade_type int default 0 null comment '交易类型', pre_pay double default 0 null comment '预付款', customer_id bigint null comment '关联客户id', is_top tinyint default 0 not null comment '是否置顶(0:不置顶,1:置顶)' ) comment '项目管理表' row_format = DYNAMIC;