邀请发送 (菜单暂隐藏, 待确认参数见 发送邀请-待确认参数.md): - 后端: BizInvite / BizInviteRecipient + Controller/Service/Mapper/XML - 邮件: InviteMailSender (spring-boot-starter-mail SMTP) + application*.yml 邮件配置 - 上传进度: UploadProgressRegistry + UploadProgressController - 前端: InviteList / InviteNew / InviteDetail / InviteView + api/business/invite.js - 原型: proto/html/components/invite-detail / new-invitation / send-invitation 登录/账号: - 首次设密: /getInfo 返回 isPasswordEmpty, SysProfileController 密码为空时跳过旧密码校验, ForcePasswordDialog 强制弹窗 - 姓名单一可信源 resolveDisplayName: doctor→biz_expert.name, sponsor/executor→biz_person.name, 其余回退 nick_name - OA compliance 门禁改为按手机号查 ecology 视图 (不再限定 manager/leader) 其它: - OSS zip 在线查看 (列清单+取单文件, 公开只读) + SecurityConfig permitAll - doctor 项目详情 ProjectDetail.vue - 数据库/测试/设计文档 (md) 入库
51 KiB
数据库设计文档(biz 业务表)
数据源:测试库
guoju0808(mmos.uvwcloud.com:3306) 范围:仅biz_*业务表,共 31 张 说明:本文档字段以数据库实际结构(INFORMATION_SCHEMA)为准,注释缺失处结合 Java Domain 代码补全。
一、设计约定
| 约定项 | 说明 |
|---|---|
| 表命名 | 业务表统一 biz_ 前缀,与系统表 sys_ 区分 |
| 主键 | 大表用 bigint 雪花 ID(intent_id/meeting_id/project_id…),字典类小表用 bigint 自增 |
| 公共字段 | create_by / create_time / update_by / update_time(继承 RuoYi BaseEntity) |
| 软删除 | 两种并存:is_deleted tinyint(0否/1是)或 del_flag char(1)(0正常/1删除) |
| 外键 | 无物理外键,全部逻辑关联(*_id 列),并冗余 project_no/project_name 等便于展示 |
| 快照机制 | 参会人、凭证等存人员/银行卡快照列,与源数据(专家/人员)解耦 |
| 金额 | 统一 decimal 保留 2 位;项目级 15,2,材料/发票 10,2 |
| 审核枚举 | audit_status:0未提交 / 1待审核 / 2通过 / 3拒绝(专家);BizAuditStatusEnum:1待审核 / 2通过 / 3拒绝(策划方案) |
| 单位类型 | org_type:sponsor赞助方 / execution执行方;unit_type:execution执行 / sponsor支持 |
二、表总览(按域分组)
| 域 | 表 | 说明 |
|---|---|---|
| 组织与人员 | biz_org |
机构主体表。赞助方(sponsor)与执行方(execution)统一建模,一个登录账号(user_id)在同一 org_type 下只对应一个机构(uk_org_user_type);是项目/会议/分配等所有「企业归属」字段的指向源。 |
biz_person |
支持方/执行方员工档案,与 sys_user 登录账号一一关联(user_id 唯一)。角色由 unit_type(execution/sponsor)推导;项目创建人姓名经本表 user_id 关联取 name。 | |
biz_expert |
医生/专家实名档案,含银行、执业/职称证书与审核信息。audit_status(0未提交/1待审/2通过/3拒绝)作为登录业务校验门槛;参会人、劳务电子签的人员信息以本表为源做快照。 | |
biz_department |
科室字典,专家/人员「科室」下拉选项来源。 | |
biz_doctor_title |
医生职称字典,专家「职称」下拉选项来源。 | |
| 项目 | biz_project |
项目核心表。金额三列(available/paid_labor/paid_meeting)查询时实时算,done/todo_sessions 实时聚合自会议;is_published 区分保存/发布公示;sponsor_org_id 记支持方归属、lead_user_id 记项目负责人。 |
biz_project_assign |
项目对执行单位的场次/金额分配,uk_project_unit 保证一项目一执行单位唯一。 | |
biz_project_executor_assign |
执行方内部把项目二次分配给具体执行人(staff_user_id),镜像赞助方分配结构。 | |
biz_project_sponsor_assign |
赞助方给项目分配监察员(monitor_user_id),SUB 赞助方靠 monitor_user_id 反查可见项目。 | |
biz_project_plan |
策划方案投稿/审核表。方向关联 biz_special_plan,审核通过后经 project_no 关联到正式项目。 | |
biz_special_plan |
专项计划,是策划方案「项目方向」的选项来源。 | |
biz_project_rating |
项目履约评分,合规/执行方/赞助方三方四维评分,uk_rating 保证同一评分人对同一项目唯一。 | |
| 公示与意向 | biz_publicity |
项目公示/公告,announce_type 区分邀请函/支持函/通知/议程,按 project_id 关联项目。 |
biz_publicity_support_intent |
公示页「支持意向」匿名按钮表,允许 user_id=NULL 不强绑登录,与登录视角强绑表解耦。 | |
biz_publicity_execution_intent |
公示页「执行意向」匿名按钮表,结构同 support_intent。 | |
biz_execution_intent |
登录视角执行意向(强绑 user_id),参会人新增/导入时建幽灵占位记录(del_flag 软删)。 | |
| 会议 | biz_meeting |
会议核心表。承载阶段流转(current_stage)、材料审核(stage + compliance_approved)、费用汇总(labor_fee/meeting_fee/total_fee)三套状态机;execution_unit_id 记执行方归属。 |
biz_meeting_attendee |
参会人快照,含银行/费用/签字/协议信息,uk_meeting_user 保证一人一会唯一。 | |
biz_meeting_material |
材料/凭证/发票统一单表,material_type + sub_type 分类,发票金额由 biz_meeting_invoice 回写。 | |
biz_meeting_invoice |
发票 OCR 识别记录,1:1 跟随 material,识别金额回写 material.amount。 | |
biz_meeting_executor |
会议执行人员分配(执行方 org 维度)。 | |
biz_meeting_supervisor |
会议监察员分配(支持方 org 维度)。 | |
biz_meeting_audit_log |
审核流水日志,记录每次审核操作及各角色当时展示状态快照。 | |
biz_meeting_settlement |
结算明细,按费用项拆分小计,settlement_type 区分会务/劳务。 | |
biz_invitation |
项目邀请函(模板/二维码/分享 URL)。 | |
biz_labor_voucher |
劳务电子签,记录专家劳务费凭证与审核状态。 | |
biz_labor_protocol_template |
劳务协议模板配置,生成参会人劳务协议的 HTML 模板源。 | |
| 内容与消息 | biz_article |
平台协议/隐私政策文章(type: agreement/privacy),富文本正文。 |
biz_resource |
资料库,分类存储项目模板/会议材料/合规文档等文件。 | |
biz_message |
个人站内通知,SSE 推送落库,biz_type/biz_id 关联业务。 | |
biz_support_letter |
项目支持函,记录支持次数。 |
三、组织与人员域
3.1 biz_org — 支持单位表
机构主体,按 org_type 区分赞助方/执行方。一个登录账号(user_id)在一个类型下对应一个机构(uk_org_user_type)。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| org_id | bigint | NO | 主键 | |
| org_name | varchar(200) | NO | 机构名称 | |
| org_type | varchar(20) | NO | sponsor | sponsor赞助方 / execution执行方 |
| business_nature | varchar(20) | YES | 企业性质:私营/国营/中外合资/外资/其他 | |
| address | varchar(500) | YES | 单位地址 | |
| tax_no | varchar(50) | YES | 税号/统一社会信用代码 | |
| contact_name | varchar(50) | YES | 联系人 | |
| contact_phone | varchar(20) | YES | 联系电话 | |
| intent_count | int | YES | 0 | 意向项目数 |
| status | varchar(20) | YES | 0 | 合作状态:合作中/待签约/已停用 |
| user_id | bigint | YES | 主账号 sys_user.user_id(注册时自动关联,一用户一类型一公司) | |
| del_flag | char(1) | NO | 0 | 删除标志 0正常 1删除 |
| is_synced | tinyint(1) | NO | 0 | 同步来源标记 0注册 1供应商同步 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(org_id)、uk_org_user_type(user_id,org_type)、idx_org_type_name(org_type,org_name)、idx_org_type_status(org_type,status)、idx_org_user_type_name(user_id,org_type,org_name)
关联:biz_person.org_id、biz_project.sponsor_org_id、biz_meeting.execution_unit_id、biz_meeting_executor.executor_org_id、biz_meeting_supervisor.sponsor_org_id、biz_project_executor_assign.executor_org_id 均指向 org_id。
3.2 biz_person — 人员表
执行方/支持方员工,与 sys_user 登录账号关联,角色由 unit_type 推导。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| person_id | bigint | NO | 0 | 主键(雪花 ID) |
| user_id | bigint | YES | 关联系统用户 ID(UNI) | |
| name | varchar(50) | NO | 姓名 | |
| phone | varchar(20) | NO | 手机号(UNI) | |
| org_id | bigint | YES | 所属公司 ID(FK biz_org.org_id) | |
| department | varchar(100) | YES | 部门 | |
| position | varchar(50) | YES | 职务 | |
| unit_type | varchar(20) | YES | execution | 所属单位类型:execution执行 / sponsor支持 |
| is_synced | tinyint(1) | NO | 0 | 是否供应商同步用户(1=是) |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(person_id)、uk_person_phone(phone)、uk_person_user_id(user_id)、idx_person_org_id(org_id)、idx_person_org_role(org_id)、idx_person_unit_type(unit_type)
关联:biz_project.create_user_id JOIN 本表 user_id 取姓名。
3.3 biz_expert — 专家表
医生/专家,含实名、银行、证书及审核信息,audit_status 控制登录业务校验。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| expert_id | bigint | NO | 专家 ID | |
| user_id | bigint | YES | 关联系统用户 ID | |
| name | varchar(50) | NO | 姓名 | |
| phone | varchar(20) | NO | 手机号(UNI) | |
| work_unit | varchar(200) | YES | 工作单位 | |
| department | varchar(100) | YES | 科室 | |
| title | varchar(50) | YES | 职称:主任医师/副主任医师/主治医师/住院医师 | |
| region | varchar(50) | YES | 地区 | |
| id_card | varchar(50) | YES | 证件号码 | |
| id_card_attachments | varchar(1000) | YES | 身份证正反面 URL(CSV) | |
| bank_card | varchar(50) | YES | 银行卡号 | |
| bank_name | varchar(100) | YES | 银行名称 | |
| bank_branch | varchar(100) | YES | 开户行(支行) | |
| bank_region | varchar(100) | YES | 开户行省/市(/ 分隔) | |
| bank_address | varchar(200) | YES | 开户行地址 | |
| practice_cert_url | varchar(500) | YES | 执业证书 URL | |
| title_cert_url | varchar(500) | YES | 职称证明 URL | |
| audit_status | varchar(20) | YES | 1 | 审核状态:0未提交 1待审核 2通过 3拒绝 |
| audit_opinion | varchar(500) | YES | 审核意见 | |
| audit_by | varchar(64) | YES | 审核人 | |
| audit_time | datetime | YES | 审核时间 | |
| status | char(1) | YES | Y | 状态 Y正常 N禁用 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(expert_id)、uk_expert_phone(phone)、idx_expert_audit(audit_status)
3.4 biz_department — 科室字典
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| dept_id | bigint | NO | 主键 | |
| name | varchar(64) | NO | 名称 | |
| sort | int | YES | 0 | 排序 |
| status | char(1) | YES | Y | Y=启用 N=停用 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(dept_id)
3.5 biz_doctor_title — 医生职称字典
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| title_id | bigint | NO | 主键 | |
| name | varchar(64) | NO | 名称 | |
| sort | int | YES | 0 | 排序 |
| status | char(1) | YES | 0 | 状态 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(title_id)
四、项目域
4.1 biz_project — 项目表
项目核心表。金额三列(已支付/可用)为查询时实时算,done_sessions/todo_sessions 实时聚合自会议。is_published 区分保存/发布公示。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| project_id | bigint | NO | 项目 ID | |
| project_no | varchar(50) | NO | 项目编号(如 ZH-2026-658,UNI) | |
| project_name | varchar(200) | NO | 项目名称 | |
| project_form | varchar(20) | YES | 项目形式:线上/线下/线上+线下/其他 | |
| total_sessions | int | YES | 0 | 总场次/总期数 |
| done_sessions | int | YES | 0 | 已执行(实时聚合) |
| todo_sessions | int | YES | 0 | 未执行(实时聚合) |
| total_amount | decimal(15,2) | YES | 0.00 | 总金额 |
| available_amount | decimal(15,2) | YES | 0.00 | 可用金额 |
| paid_labor_amount | decimal(15,2) | YES | 0.00 | 已支付劳务费 |
| paid_meeting_amount | decimal(15,2) | YES | 0.00 | 已支付会务费 |
| manage_fee | decimal(15,2) | YES | 0.00 | 管理费及税金 |
| role_labor | text | YES | 角色劳务 JSON:[{role, customName, amount}] |
|
| is_finished | char(1) | YES | N | 是否结题 N否 Y是 |
| is_settled | char(1) | YES | N | 是否结算 N否 Y是 |
| is_published | char(1) | NO | N | 是否已发布公示 N否 Y是 |
| publish_time | datetime | YES | 发布时间 | |
| manager_score | decimal(3,1) | YES | 合规管理员评均分 | |
| lead_user_id | bigint | YES | 项目负责人 user_id(role_type=manager) | |
| is_bid_project | char(1) | YES | N | 是否招标项目 Y/N |
| start_time | datetime | YES | 项目开始时间 | |
| end_time | datetime | YES | 项目结束时间 | |
| submit_deadline_days | int | YES | 0 | 提交材料截止天数 |
| support_contract_url | varchar(500) | YES | 支持合同文件 URL | |
| execute_contract_url | varchar(500) | YES | 执行合同文件 URL | |
| invitation_url | varchar(500) | YES | 邀请函文件 URL | |
| support_letter_url | varchar(500) | YES | 支持函文件 URL | |
| publish_url | varchar(500) | YES | 已发布公告 URL | |
| schedule_url | varchar(500) | YES | 日程文件 URL | |
| create_user_id | bigint | YES | 创建人 user_id(JOIN biz_person 取 name) | |
| sponsor_score | decimal(3,1) | YES | 支持方评均分 | |
| sponsor_org_id | bigint | YES | 支持方企业 org_id | |
| open_deadline | date | YES | 开通截止时间 | |
| open_status | char(1) | NO | N | 开通状态 Y/N |
| is_deleted | tinyint | NO | 0 | 软删除 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(project_id)、uk_project_no(project_no)、idx_project_form(project_form)、idx_is_finished(is_finished)、idx_is_settled(is_settled)、idx_start_end_time(start_time,end_time)
关联:一项目多会议(biz_meeting.project_id)、多公示(biz_publicity.project_id)、多分配(biz_project_assign / biz_project_sponsor_assign / biz_project_executor_assign)、多评分(biz_project_rating.project_id)。
4.2 biz_project_assign — 项目-执行单位分配表
项目对执行单位的分场/金额分配。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| assign_id | bigint | NO | 分配 ID | |
| project_id | bigint | NO | 项目 ID | |
| execution_unit_id | bigint | NO | 执行单位 ID | |
| sessions | int | YES | 0 | 分配场数 |
| amount | decimal(15,2) | YES | 0.00 | 总金额 |
| remark | varchar(500) | YES | 备注 | |
| status | char(1) | YES | 0 | 状态 0正常 1已撤销 |
| is_deleted | tinyint | NO | 0 | 软删除 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(assign_id)、uk_project_unit(project_id,execution_unit_id)、idx_assign_project(project_id)、idx_assign_unit(execution_unit_id)、idx_assign_exec_user_project(project_id)
4.3 biz_project_executor_assign — 项目-执行方-执行人分配
执行方内部把项目分配给具体执行人(staff)。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| project_id | bigint | NO | 项目 ID | |
| staff_user_id | bigint | YES | 执行人 user_id(被分配) | |
| assign_desc | varchar(500) | YES | 分配说明 | |
| assign_points | varchar(500) | YES | 分配要点 | |
| executor_org_id | bigint | YES | 执行方企业 org_id | |
| is_deleted | tinyint | YES | 0 | 软删标记 0否 1是 |
| create_by / create_time | 公共字段 |
索引:PRIMARY(id)、idx_project_id(project_id)
4.4 biz_project_sponsor_assign — 项目-赞助方-监察员分配记录
赞助方给项目分配监察员。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| project_id | bigint | NO | biz_project.project_id | |
| monitor_user_id | bigint | NO | sys_user.user_id(分配给的监察员) | |
| sponsor_org_id | bigint | YES | 支持方企业 org_id | |
| assign_desc | text | YES | 分配说明 | |
| assign_points | text | YES | 监察要点 | |
| is_deleted | tinyint | NO | 0 | 软删除 |
| create_by / create_time | 公共字段 |
索引:PRIMARY(id)、idx_monitor_user_id(monitor_user_id)
4.5 biz_project_plan — 项目策划方案表
策划方案投稿/审核。方向关联 biz_special_plan,审核通过后可关联项目。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| plan_id | bigint | NO | 策划方案 ID | |
| plan_name | varchar(200) | NO | 策划方案名称 | |
| plan_direction | varchar(500) | YES | 项目方向 | |
| plan_direction_id | bigint | YES | 项目方向-专项计划 ID | |
| plan_category | varchar(50) | YES | 项目类别:会议项目/科研项目/学术项目/指南/对外交流/共识 | |
| project_form | varchar(20) | YES | 项目形式 | |
| design_file_url | varchar(500) | YES | 设计文件 URL | |
| subject_direction | varchar(100) | YES | 学科方向 | |
| status | varchar(20) | YES | 1 | BizAuditStatusEnum:1待审核 2通过 3拒绝 |
| is_settled | char(1) | YES | N | 是否结算 N否 Y是 |
| project_no | varchar(50) | YES | 关联项目编号 | |
| remark | varchar(500) | YES | 备注 | |
| audit_opinion | varchar(500) | YES | 审核意见 | |
| audit_by | varchar(64) | YES | 审核人 | |
| audit_time | datetime | YES | 审核时间 | |
| submit_time | datetime | YES | 提交时间 | |
| submitter_id | bigint | YES | 投稿人用户 ID(医生侧投稿归属,经理/admin 录入为 NULL) | |
| is_deleted | tinyint | NO | 0 | 软删除 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(plan_id)、idx_plan_project_no(project_no)、idx_plan_status(status)、idx_plan_submitter(submitter_id)
4.6 biz_special_plan — 专项计划表
策划方案“项目方向”选项来源。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 专项计划 ID | |
| title | varchar(200) | NO | 专项计划名称 | |
| content_type | varchar(20) | NO | rich | 内容类型 rich=富文本 file=上传文件 |
| content | mediumtext | YES | 富文本内容 | |
| file_url | varchar(500) | YES | 上传文件 URL(PDF/PNG) | |
| sort_order | int | YES | 0 | 排序,从小到大 |
| status | char(1) | YES | 0 | 状态 0启用 1停用 |
| remark | varchar(500) | YES | 备注 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(id)、idx_special_plan_status(status,sort_order)、idx_special_plan_create_time(create_time)
4.7 biz_project_rating — 项目评分表
合规/执行方/赞助方对项目的四维评分,uk_rating 保证同一评分人对同一项目唯一。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| rating_id | bigint | NO | 主键(雪花 ID) | |
| project_id | bigint | NO | 项目 ID | |
| project_no | varchar(50) | YES | 项目编号 | |
| project_name | varchar(200) | YES | 项目名称 | |
| rater_id | bigint | YES | 评分人 ID | |
| rater_name | varchar(50) | YES | 评分人姓名 | |
| rater_role | varchar(20) | YES | 评分人角色 compliance/executor/sponsor | |
| quality_score | int | YES | 0 | 履约质量 1-5 |
| response_score | int | YES | 0 | 时效响应 1-5 |
| cooperation_score | int | YES | 0 | 配合度 1-5 |
| compliance_score | int | YES | 0 | 合规安全 1-5 |
| remark | varchar(500) | YES | 评价备注 | |
| rating_time | datetime | YES | 评分时间 | |
| is_deleted | tinyint | NO | 0 | 软删除 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(rating_id)、uk_rating(project_id,rater_id,rater_role)、idx_pr_project(project_id)、idx_pr_rater(rater_id)、idx_pr_rating_time(rating_time)
五、公示与意向域
5.1 biz_publicity — 项目公示/公告
项目公示内容(邀请函/支持函/通知/议程)。announce_type 区分类型。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| project_id | bigint | NO | 项目 ID | |
| project_no | varchar(50) | YES | 项目编号(冗余) | |
| project_name | varchar(200) | YES | 项目名称(冗余) | |
| announce_type | varchar(20) | YES | 公告类型:invitation/support/notice/agenda | |
| title | varchar(200) | YES | 公告标题 | |
| file_url | varchar(500) | YES | 公告文件 URL | |
| publish_time | datetime | YES | 发布时间 | |
| remark | varchar(500) | YES | 备注 | |
| status | char(1) | YES | 1 | 状态(0保存 1发布) |
| rating_time | datetime | YES | 发布时间 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(id)、idx_pub_project(project_id)、idx_pub_project_no(project_no)、idx_pub_announce_type(announce_type)、idx_pub_title(title)、idx_pub_create_time(create_time)
5.2 / 5.3 biz_publicity_support_intent / biz_publicity_execution_intent — 公示页意向(匿名)
公示页两个匿名意向按钮,独立建表,允许 user_id=NULL(不强制登录)。两表结构一致。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| intent_id | bigint | NO | 意向 ID | |
| project_id | bigint | YES | 项目 ID | |
| project_no | varchar(64) | YES | 项目编号(冗余) | |
| project_name | varchar(255) | YES | 项目名称(冗余) | |
| user_id | bigint | YES | 用户 ID(按 phone 关联) | |
| name | varchar(50) | YES | 姓名 | |
| phone | varchar(20) | YES | 手机号 | |
| work_unit | varchar(200) | YES | 工作单位 | |
| department | varchar(100) | YES | 部门 | |
| position | varchar(100) | YES | 职务 | |
| source | varchar(32) | YES | publicity | 来源 publicity=公示页 |
| intent_status | varchar(32) | YES | 待审核 | 状态:待审核/已通过/已拒绝 |
| remark | varchar(500) | YES | 备注 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(intent_id)、idx_project_phone(project_id,phone,source)、idx_user_id(user_id)
5.4 biz_execution_intent — 执行意向表
登录视角的执行意向(强绑用户),用 del_flag 软删(参会人新增/导入时建幽灵占位记录)。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| intent_id | bigint | NO | 0 | 主键(雪花 ID) |
| user_id | bigint | YES | 用户 ID(sys_user.user_id) | |
| project_no | varchar(50) | YES | 意向项目编号 | |
| project_name | varchar(200) | YES | 意向项目名称 | |
| name | varchar(50) | NO | 姓名 | |
| work_unit | varchar(200) | YES | 工作单位名称 | |
| department | varchar(100) | YES | 部门 | |
| position | varchar(50) | YES | 职务 | |
| phone | varchar(20) | NO | 手机号 | |
| onboard_status | varchar(20) | YES | 未入库 | 是否入库:已入库/未入库 |
| del_flag | char(1) | NO | 0 | 删除标记 0正常 1删除 |
| create_time / create_by / update_by / update_time | 公共字段 |
索引:PRIMARY(intent_id)、idx_user_id(user_id)、idx_ei_phone(phone)、idx_ei_project(project_no)、idx_ei_create_time(create_time)
注:跨表比较
project_no需显式COLLATE utf8mb4_unicode_ci(与biz_project.project_nocollation 不一致)。
六、会议域
6.1 biz_meeting — 会议表
会议核心表,含阶段流转、材料审核、费用汇总等状态机。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| meeting_id | bigint | NO | 会议 ID | |
| business_id | varchar(50) | NO | 业务会议 ID(UNI,如 5643145673) | |
| project_id | bigint | YES | 所属项目 ID | |
| execution_unit_id | bigint | YES | 执行方归属(biz_org.org_id) | |
| project_no | varchar(50) | YES | 项目编号 | |
| project_name | varchar(200) | YES | 项目名称 | |
| meeting_name | varchar(200) | YES | 会议名称 | |
| period_no | int | YES | 1 | 期数 |
| total_periods | int | YES | 1 | 总期数 |
| project_form | varchar(20) | YES | 项目形式 | |
| start_time | datetime | YES | 会议开始时间 | |
| end_time | datetime | YES | 会议结束时间 | |
| address | varchar(500) | YES | 会议地址 | |
| current_stage | varchar(20) | YES | 0 | 当前阶段:未执行/待监管/监管通过/待整改/待结算/已结算/已结题 |
| supervision_opinion | varchar(500) | YES | 监察意见 | |
| supervision_by | varchar(64) | YES | 监察人 | |
| supervision_time | datetime | YES | 监察时间 | |
| invitation_url | varchar(500) | YES | 邀请函 URL | |
| schedule_url | varchar(500) | YES | 日程海报 URL | |
| poster_url | varchar(500) | YES | 生成的海报 URL | |
| labor_signed | char(1) | YES | N | 签署劳务 N未签 Y已签 |
| is_executed | tinyint | NO | 0 | 是否已执行 |
| execute_time | datetime | YES | 执行时间 | |
| material_audit_stage | varchar(32) | YES | NOT_SUBMITTED | 材料审核阶段 |
| material_audit_time | datetime | YES | 材料最近审核时间 | |
| material_compliance_approved | tinyint | NO | 0 | 材料合规是否已通过(区分 SUBMITTED 内部层级) |
| labor_audit_stage | varchar(32) | YES | NOT_SUBMITTED | 劳务材料审核阶段 |
| service_audit_stage | varchar(32) | YES | NOT_SUBMITTED | 会务材料审核阶段 |
| labor_compliance_approved | tinyint | NO | 0 | 劳务材料合规(一级)是否通过 |
| service_compliance_approved | tinyint | NO | 0 | 会务材料合规(一级)是否通过 |
| submit_deadline | datetime | YES | 提交截止时间 | |
| is_settled | tinyint | NO | 0 | 是否结算 0否 1是 |
| settle_time | datetime | YES | 结算时间 | |
| is_finished | tinyint | NO | 0 | 是否完结 0否 1是 |
| finish_time | datetime | YES | 完结时间 | |
| is_frozen | tinyint | NO | 0 | 是否冻结 0否 1是 |
| freeze_time | datetime | YES | 冻结时间 | |
| labor_fee | decimal(15,2) | NO | 0.00 | 劳务费用(应发金额合计) |
| meeting_fee | decimal(15,2) | NO | 0.00 | 会务费用(总发票覆盖 SUB) |
| total_fee | decimal(15,2) | NO | 0.00 | 总费用 = 劳务 + 会务 |
| fee_calc_status | tinyint | NO | 0 | 费用汇总状态 0未汇总 1已汇总 |
| remark | varchar(500) | YES | 备注 | |
| is_deleted | tinyint | YES | 0 | 软删除 0否 1是 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(meeting_id)、uk_business_id(business_id)、idx_meeting_project(project_id)、idx_meeting_stage(current_stage)
关联:biz_meeting_attendee / biz_meeting_material / biz_meeting_audit_log / biz_meeting_settlement / biz_labor_voucher 均以 meeting_id 关联。
6.2 biz_meeting_attendee — 会议参会人
参会人(专家)快照,含银行/费用/签字/协议信息。uk_meeting_user 保证一人一会唯一。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| meeting_id | bigint | NO | 会议 ID(FK biz_meeting.meeting_id) | |
| user_id | bigint | NO | 参会人 user_id(FK sys_user.user_id) | |
| name | varchar(50) | YES | 姓名(快照) | |
| phone | varchar(20) | YES | 手机号(快照) | |
| work_unit | varchar(200) | YES | 工作单位(快照) | |
| department | varchar(100) | YES | 科室(快照) | |
| title | varchar(50) | YES | 医务职称(快照) | |
| id_card | varchar(50) | YES | 身份证号(快照) | |
| bank_card | varchar(30) | YES | 银行卡号(快照) | |
| bank_name | varchar(100) | YES | 银行名称(快照) | |
| bank_branch | varchar(100) | YES | 开户银行支行(快照) | |
| bank_region | varchar(100) | YES | 开户行省/市(/ 分隔) | |
| bank_address | varchar(200) | YES | 开户地址(快照) | |
| account_name | varchar(100) | YES | 账户名称/持卡人姓名(快照) | |
| id_card_attachments | varchar(1000) | YES | 身份证正反面 URL(逗号分隔) | |
| labor_form | varchar(500) | YES | 劳务形式(checkboxOther,逗号分隔) | |
| fee_pre_tax | decimal(15,2) | YES | 税前费用 | |
| tax | decimal(15,2) | YES | 税费 | |
| fee | decimal(15,2) | YES | 税后费用(实际支付) | |
| vat_and_surcharge | decimal(15,2) | YES | 增值税及附加成本 | |
| summary | varchar(500) | YES | 摘要 | |
| on_site_photos | text | YES | 现场照片 | |
| signed_at | datetime | YES | 签字时间 | |
| signed_ip | varchar(64) | YES | 签字 IP | |
| handsign | longtext | YES | 手写签名 Base64 | |
| labor_protocol | varchar(500) | YES | 劳务协议 URL(OSS) | |
| labor_protocol_masked | varchar(500) | YES | 脱敏版协议 URL(身份证/银行卡用 * 替换) | |
| is_esigned | tinyint(1) | NO | 0 | 是否已电子签 |
| is_invited | tinyint(1) | NO | 0 | 是否已邀请参会 0否 1是 |
| invitation_url | varchar(512) | YES | 盖章后个性化邀请函 URL | |
| is_deleted | tinyint | YES | 0 | 软删除标记 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(id)、uk_meeting_user(meeting_id,user_id)、idx_user_id(user_id)
6.3 biz_meeting_material — 会议材料(单表)
材料/凭证/发票统一单表,靠 material_type + sub_type 分类。发票金额通过 biz_meeting_invoice 回写。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 记录 ID | |
| meeting_id | bigint | NO | 会议 ID | |
| material_type | varchar(32) | NO | SERVICE=会务材料 LABOR=劳务材料 SERVICE_VOUCHER=会务凭证 LABOR_VOUCHER=劳务凭证 | |
| sub_type | varchar(32) | NO | M_MATERIAL/M_HOTEL/M_TRAFFIC_BIG/M_TRAFFIC_SMALL/M_EXECUTION/M_DESIGN/M_OTHER/M_SETTLEMENT/M_INVOICE/L_DETAIL/L_AGREEMENT/SV_PAYMENT/LV_PAYMENT | |
| file_name | varchar(255) | YES | 文件名称 | |
| oss_url | varchar(500) | NO | OSS URL | |
| amount | decimal(15,2) | YES | 0.00 | 金额(发票专用,其他类型=0) |
| creator_id | bigint | YES | 提交人 user_id | |
| fee_status | tinyint | NO | 1 | 该材料发票金额是否已计算 0未计算 1已计算 |
| extra_oss_url | varchar(500) | YES | 脱敏版 URL(签到表高斯模糊) | |
| masked_json | text | YES | 电子签到表解析后脱敏 JSON(表头+行,sponsor 预览用) | |
| is_deleted | tinyint | YES | 0 | 软删除标记 |
| create_time | datetime | YES | 创建时间 |
索引:PRIMARY(id)、uk_meeting_type_sub(meeting_id,material_type,sub_type)、idx_meeting_subtype(meeting_id,sub_type)
6.4 biz_meeting_invoice — 会议发票识别记录
1:1 跟随 material(仅 is_invoice=1 时插入),OCR 识别结果回写 material.amount。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 记录 ID | |
| meeting_id | bigint | NO | 会议 ID | |
| material_id | bigint | NO | FK → biz_meeting_material.id | |
| oss_url | varchar(500) | NO | OSS URL | |
| invoice_type | varchar(16) | YES | SUB | MAIN=主发票 SUB=子发票 |
| amount | decimal(15,2) | YES | 0.00 | 价税合计(OCR 识别,同时回写 material) |
| creator_id | bigint | YES | 提交人 user_id | |
| recognize_status | varchar(16) | NO | RECOGNIZED | UNRECOGNIZED/RECOGNIZED/FAILED |
| error_msg | varchar(500) | YES | 识别失败原因 | |
| source_filename | varchar(255) | YES | 原始文件名(zip 解压时记录) | |
| invoice_no | varchar(32) | YES | 发票号码 | |
| invoice_date | varchar(16) | YES | 开票日期 | |
| create_time / update_time | 公共字段 |
索引:PRIMARY(id)、idx_material(material_id)、idx_meeting(meeting_id)、idx_rec_status(recognize_status,create_time)
6.5 biz_meeting_executor — 会议-执行人员(1:N)
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 记录 ID | |
| meeting_id | bigint | NO | 会议 ID(UNI) | |
| assigned_by | bigint | YES | 分配人 user_id | |
| executor_org_id | bigint | YES | 执行方企业 org_id | |
| is_deleted | tinyint | YES | 0 | 软删除标记 |
| create_time | datetime | YES | 创建时间 |
索引:PRIMARY(id)、uk_meeting_user(meeting_id)
6.6 biz_meeting_supervisor — 会议-监察员(1:N)
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 记录 ID | |
| meeting_id | bigint | NO | 会议 ID(UNI) | |
| assigned_by | bigint | YES | 分配人 user_id | |
| sponsor_org_id | bigint | YES | 支持方企业 org_id | |
| is_deleted | tinyint | YES | 0 | 软删除标记 |
| create_time | datetime | YES | 创建时间 |
索引:PRIMARY(id)、uk_meeting_user(meeting_id)
6.7 biz_meeting_audit_log — 会议审核流程日志
记录每次审核操作及各角色当时展示状态(快照)。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 记录 ID | |
| meeting_id | bigint | NO | 会议 ID | |
| auditor | varchar(64) | YES | 审核人(username 或人工填入) | |
| opinion | varchar(2000) | YES | 审核意见 | |
| current_stage | varchar(32) | YES | 当前阶段(INIT / …) | |
| audit_type | varchar(16) | YES | MATERIAL/VOUCHER | |
| audit_result | varchar(16) | YES | APPROVED/REJECTED | |
| material_type | varchar(16) | YES | 材料类型 LABOR/SERVICE;NULL=会议级操作 | |
| executor_stage | varchar(32) | YES | 执行方当时展示状态 | |
| sponsor_stage | varchar(32) | YES | 支持方当时展示状态 | |
| manager_stage | varchar(32) | YES | 合规当时展示状态 | |
| admin_stage | varchar(32) | YES | 管理员当时展示状态 | |
| audit_time | datetime | YES | 审核时间 | |
| is_deleted | tinyint | YES | 0 | 软删除标记 |
| create_time | datetime | YES | 创建时间 |
索引:PRIMARY(id)、idx_meeting(meeting_id)、idx_meeting_stage(meeting_id,current_stage)
6.8 biz_meeting_settlement — 会议结算明细
按费用项拆分的小计,区分会务/劳务两类。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| meeting_id | bigint | YES | 会议 ID | |
| project_no | varchar(50) | YES | 项目编号 | |
| project_name | varchar(200) | YES | 项目名称 | |
| exec_unit | varchar(200) | YES | 执行单位 | |
| fee_type | varchar(50) | NO | 费用项:场地租赁/设备租赁/餐饮服务/资料印刷/其他杂费/专家劳务费/评审费/差旅费/材料费/其他费用 | |
| unit_price | decimal(15,2) | YES | 0.00 | 单价 |
| qty | int | YES | 0 | 数量 |
| subtotal | decimal(15,2) | YES | 0.00 | 小计 |
| remark | varchar(500) | YES | 备注 | |
| audit_status | varchar(20) | YES | 0 | 审核状态:已审核/待审核 |
| settlement_type | varchar(20) | YES | meeting | meeting会务 / labor劳务 |
索引:PRIMARY(id)、idx_st_meeting(meeting_id)、idx_st_type(settlement_type)
6.9 biz_invitation — 邀请函表
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| invite_id | bigint | NO | 0 | 主键(雪花 ID) |
| project_id | bigint | YES | 项目 ID | |
| project_no | varchar(50) | YES | 项目编号 | |
| title | varchar(200) | YES | 标题 | |
| template_url | varchar(500) | YES | 邀请函模板 URL | |
| qr_code_url | varchar(500) | YES | 二维码 URL | |
| share_url | varchar(500) | YES | 分享 URL | |
| publish_time | datetime | YES | 发布时间 | |
| remark | varchar(500) | YES | 备注 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(invite_id)、idx_iv_project(project_id)、idx_iv_project_no(project_no)
6.10 biz_labor_voucher — 劳务电子签表
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| voucher_id | bigint | NO | 0 | 主键(雪花 ID) |
| voucher_no | varchar(50) | NO | 凭证编号(如 LV-2026-001,UNI) | |
| meeting_id | bigint | YES | 会议 ID | |
| meeting_name | varchar(200) | YES | 会议名称 | |
| expert_name | varchar(50) | YES | 专家姓名 | |
| id_card | varchar(50) | YES | 身份证号 | |
| bank_account | varchar(50) | YES | 银行账号 | |
| amount | decimal(15,2) | YES | 0.00 | 金额 |
| submit_date | datetime | YES | 提交日期 | |
| audit_status | varchar(20) | YES | 0 | 审核状态:待审核/已审核/已驳回 |
| audit_opinion | varchar(500) | YES | 审核意见 | |
| audit_by | varchar(64) | YES | 审核人 | |
| audit_time | datetime | YES | 审核时间 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(voucher_id)、uk_voucher_no(voucher_no)、idx_lv_meeting(meeting_id)、idx_lv_audit_status(audit_status)
6.11 biz_labor_protocol_template — 劳务协议模板配置
协议模板 HTML(含占位符),用于生成参会人劳务协议。
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 主键 | |
| template_name | varchar(100) | NO | 模板名(前端下拉显示) | |
| template_content | longtext | NO | 模板 HTML(含占位符 {name} {phone} 等) | |
| default_flag | char(1) | YES | N | 默认标记 Y=默认 N=非默认 |
| sort_order | int | YES | 0 | 排序(前端下拉顺序) |
| status | char(1) | YES | Y | 状态 Y=启用 N=禁用 |
| remark | varchar(500) | YES | 备注 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(id)、idx_default_flag(default_flag)、idx_status(status)
七、内容与消息域
7.1 biz_article — 平台协议/隐私政策文章
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| id | bigint | NO | 文章 ID | |
| title | varchar(200) | NO | 标题 | |
| type | varchar(20) | NO | agreement=用户协议 privacy=隐私政策 | |
| content | mediumtext | NO | 正文(HTML/富文本) | |
| status | char(1) | YES | Y | 状态 Y启用 N停用 |
| remark | varchar(500) | YES | 备注 | |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(id)、idx_article_create_time(create_time)、idx_biz_article_type(type,status)
7.2 biz_resource — 资料库表
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| resource_id | bigint | NO | 0 | 主键(雪花 ID) |
| name | varchar(200) | NO | 资料名称 | |
| category | varchar(50) | YES | 分类:项目模板/会议材料/合规文档/专家库/培训资料/表单模板 | |
| file_size | varchar(20) | YES | 文件大小 | |
| file_url | varchar(500) | YES | 文件 URL | |
| uploader_id | bigint | YES | 上传人 ID | |
| uploader_name | varchar(50) | YES | 上传人 | |
| upload_time | datetime | YES | 上传时间 | |
| status | varchar(20) | YES | 0 | 状态:已发布/草稿 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(resource_id)、idx_res_name(name)、idx_res_category(category)、idx_res_status(status)
7.3 biz_message — 个人通知消息表
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| msg_id | bigint | NO | 消息 ID | |
| receiver_user_id | bigint | NO | 接收人 user_id | |
| msg_type | char(1) | YES | 1 | 类型 1通知 2待办 3系统 |
| title | varchar(200) | NO | 标题 | |
| content | text | YES | 消息内容 | |
| biz_type | varchar(50) | YES | 业务类型 auth/project/meeting/agreement | |
| biz_id | bigint | YES | 关联业务 ID | |
| is_read | char(1) | YES | 0 | 已读 0否 1是 |
| read_time | datetime | YES | 已读时间 | |
| create_by | varchar(64) | YES | 发送人 | |
| create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(msg_id)、idx_receiver_time(receiver_user_id,create_time)、idx_receiver_unread(receiver_user_id,is_read)
7.4 biz_support_letter — 支持函表
| 列 | 类型 | 空 | 默认 | 说明 |
|---|---|---|---|---|
| letter_id | bigint | NO | 0 | 主键(雪花 ID) |
| project_id | bigint | YES | 项目 ID | |
| project_no | varchar(50) | YES | 项目编号 | |
| title | varchar(200) | YES | 标题 | |
| file_url | varchar(500) | YES | 支持函图片 URL | |
| publish_time | datetime | YES | 发布时间 | |
| support_count | int | YES | 0 | 支持次数 |
| create_by / create_time / update_by / update_time | 公共字段 |
索引:PRIMARY(letter_id)、idx_sl_project(project_id)、idx_sl_project_no(project_no)
八、核心关系速览(逻辑外键)
biz_org (org_id) ──┬──< biz_person (org_id)
├──< biz_project.sponsor_org_id
├──< biz_meeting.execution_unit_id
├──< biz_meeting_executor.executor_org_id
├──< biz_meeting_supervisor.sponsor_org_id
├──< biz_project_executor_assign.executor_org_id
└──< biz_project_assign.execution_unit_id
biz_project (project_id) ──┬──< biz_meeting (project_id)
├──< biz_project_assign (project_id)
├──< biz_project_sponsor_assign (project_id)
├──< biz_project_executor_assign (project_id)
├──< biz_project_rating (project_id)
├──< biz_publicity (project_id)
├──< biz_publicity_support_intent (project_id)
├──< biz_publicity_execution_intent (project_id)
├──< biz_invitation (project_id)
└──< biz_support_letter (project_id)
biz_special_plan (id) ──< biz_project_plan.plan_direction_id
biz_meeting (meeting_id) ──┬──< biz_meeting_attendee (meeting_id)
├──< biz_meeting_material (meeting_id)
├──< biz_meeting_audit_log (meeting_id)
├──< biz_meeting_settlement (meeting_id)
├──< biz_labor_voucher (meeting_id)
├──< biz_meeting_executor (meeting_id)
└──< biz_meeting_supervisor (meeting_id)
biz_meeting_material (id) ──< biz_meeting_invoice.material_id
九、ER 图(Mermaid)
说明:以下用 Mermaid
erDiagram(乌鸦脚)表示。图中只列出主键 / 唯一键 / 外键及少数关键列,user_id均逻辑指向sys_user.user_id(系统表,非本档范围)。||一,o{零或多,o|零或一。
9.1 组织与人员域
erDiagram
SYS_USER ||--o| BIZ_PERSON : "user_id 唯一关联"
SYS_USER ||--o| BIZ_EXPERT : "user_id 关联"
SYS_USER ||--o{ BIZ_ORG : "主账号 user_id"
BIZ_ORG ||--o{ BIZ_PERSON : "org_id 归属"
SYS_USER {
bigint user_id PK
varchar user_name
varchar role_type
}
BIZ_ORG {
bigint org_id PK
varchar org_name
varchar org_type
bigint user_id
}
BIZ_PERSON {
bigint person_id PK
bigint user_id UK
varchar name
varchar phone UK
bigint org_id FK
varchar unit_type
}
BIZ_EXPERT {
bigint expert_id PK
bigint user_id
varchar name
varchar phone UK
varchar audit_status
}
BIZ_DEPARTMENT {
bigint dept_id PK
varchar name
}
BIZ_DOCTOR_TITLE {
bigint title_id PK
varchar name
}
9.2 项目域
erDiagram
BIZ_ORG ||--o{ BIZ_PROJECT : "sponsor_org_id 支持方"
BIZ_PROJECT ||--o{ BIZ_PROJECT_ASSIGN : "project_id"
BIZ_PROJECT ||--o{ BIZ_PROJECT_EXECUTOR_ASSIGN : "project_id"
BIZ_PROJECT ||--o{ BIZ_PROJECT_SPONSOR_ASSIGN : "project_id"
BIZ_PROJECT ||--o{ BIZ_PROJECT_RATING : "project_id"
BIZ_ORG ||--o{ BIZ_PROJECT_ASSIGN : "execution_unit_id"
BIZ_ORG ||--o{ BIZ_PROJECT_EXECUTOR_ASSIGN : "executor_org_id"
BIZ_ORG ||--o{ BIZ_PROJECT_SPONSOR_ASSIGN : "sponsor_org_id"
BIZ_SPECIAL_PLAN ||--o{ BIZ_PROJECT_PLAN : "plan_direction_id"
BIZ_PROJECT ||--o{ BIZ_PROJECT_PLAN : "project_no 关联"
BIZ_PROJECT {
bigint project_id PK
varchar project_no UK
varchar project_name
bigint sponsor_org_id FK
bigint lead_user_id
}
BIZ_ORG {
bigint org_id PK
varchar org_name
varchar org_type
}
BIZ_PROJECT_ASSIGN {
bigint assign_id PK
bigint project_id FK
bigint execution_unit_id FK
}
BIZ_PROJECT_EXECUTOR_ASSIGN {
bigint id PK
bigint project_id FK
bigint staff_user_id
bigint executor_org_id FK
}
BIZ_PROJECT_SPONSOR_ASSIGN {
bigint id PK
bigint project_id FK
bigint monitor_user_id
bigint sponsor_org_id FK
}
BIZ_PROJECT_RATING {
bigint rating_id PK
bigint project_id FK
bigint rater_id
varchar rater_role
}
BIZ_SPECIAL_PLAN {
bigint id PK
varchar title
}
BIZ_PROJECT_PLAN {
bigint plan_id PK
varchar plan_name
bigint plan_direction_id FK
varchar project_no FK
bigint submitter_id
}
9.3 公示与意向域
erDiagram
BIZ_PROJECT ||--o{ BIZ_PUBLICITY : "project_id"
BIZ_PROJECT ||--o{ BIZ_PUBLICITY_SUPPORT_INTENT : "project_id"
BIZ_PROJECT ||--o{ BIZ_PUBLICITY_EXECUTION_INTENT : "project_id"
BIZ_PROJECT ||--o{ BIZ_EXECUTION_INTENT : "project_no 关联"
BIZ_PROJECT {
bigint project_id PK
varchar project_no UK
varchar project_name
}
BIZ_PUBLICITY {
bigint id PK
bigint project_id FK
varchar announce_type
}
BIZ_PUBLICITY_SUPPORT_INTENT {
bigint intent_id PK
bigint project_id FK
bigint user_id
varchar phone
}
BIZ_PUBLICITY_EXECUTION_INTENT {
bigint intent_id PK
bigint project_id FK
bigint user_id
varchar phone
}
BIZ_EXECUTION_INTENT {
bigint intent_id PK
bigint user_id
varchar project_no FK
varchar phone
}
9.4 会议域
erDiagram
BIZ_PROJECT ||--o{ BIZ_MEETING : "project_id"
BIZ_PROJECT ||--o{ BIZ_INVITATION : "project_id"
BIZ_MEETING ||--o{ BIZ_MEETING_ATTENDEE : "meeting_id"
BIZ_MEETING ||--o{ BIZ_MEETING_MATERIAL : "meeting_id"
BIZ_MEETING_MATERIAL ||--o| BIZ_MEETING_INVOICE : "material_id"
BIZ_MEETING ||--o{ BIZ_MEETING_AUDIT_LOG : "meeting_id"
BIZ_MEETING ||--o{ BIZ_MEETING_SETTLEMENT : "meeting_id"
BIZ_MEETING ||--o{ BIZ_LABOR_VOUCHER : "meeting_id"
BIZ_MEETING ||--o{ BIZ_MEETING_EXECUTOR : "meeting_id"
BIZ_MEETING ||--o{ BIZ_MEETING_SUPERVISOR : "meeting_id"
BIZ_PROJECT {
bigint project_id PK
varchar project_no UK
varchar project_name
}
BIZ_MEETING {
bigint meeting_id PK
varchar business_id UK
bigint project_id FK
bigint execution_unit_id
varchar current_stage
}
BIZ_MEETING_ATTENDEE {
bigint id PK
bigint meeting_id FK
bigint user_id
}
BIZ_MEETING_MATERIAL {
bigint id PK
bigint meeting_id FK
varchar material_type
varchar sub_type
}
BIZ_MEETING_INVOICE {
bigint id PK
bigint meeting_id FK
bigint material_id FK
}
BIZ_MEETING_AUDIT_LOG {
bigint id PK
bigint meeting_id FK
varchar audit_type
}
BIZ_MEETING_SETTLEMENT {
bigint id PK
bigint meeting_id FK
varchar settlement_type
}
BIZ_LABOR_VOUCHER {
bigint voucher_id PK
varchar voucher_no UK
bigint meeting_id FK
}
BIZ_MEETING_EXECUTOR {
bigint id PK
bigint meeting_id UK
bigint executor_org_id
}
BIZ_MEETING_SUPERVISOR {
bigint id PK
bigint meeting_id UK
bigint sponsor_org_id
}
BIZ_INVITATION {
bigint invite_id PK
bigint project_id FK
varchar project_no
}
9.5 内容与消息域
erDiagram
BIZ_PROJECT ||--o{ BIZ_SUPPORT_LETTER : "project_id"
BIZ_PROJECT {
bigint project_id PK
varchar project_no UK
}
BIZ_SUPPORT_LETTER {
bigint letter_id PK
bigint project_id FK
varchar project_no
}
BIZ_ARTICLE {
bigint id PK
varchar title
varchar type
}
BIZ_RESOURCE {
bigint resource_id PK
varchar name
varchar category
}
BIZ_MESSAGE {
bigint msg_id PK
bigint receiver_user_id
varchar biz_type
bigint biz_id
}
十、待优化内容(记录待办,暂不改库表)
以下为当前结构中的不一致与技术债,仅记录备后续统一。落实时需先评估历史数据与前端兼容,本次不改动数据库与表。
10.1 布尔/开关标记约定不统一
同一类「是/否、开/关」语义,三种写法并存:
char(1)存Y/N:biz_project.is_settled/open_status/is_bid_project/is_finished/is_published、biz_department.status、biz_article.status、biz_meeting.labor_signed、biz_expert.status、biz_labor_protocol_template.status/default_flagtinyint存0/1:biz_meeting.is_deleted/is_settled/is_finished/is_frozen/fee_calc_status、biz_meeting_attendee.is_invited/is_esigned
典型冲突:is_settled 在 biz_project 是 char(1) N/Y,在 biz_meeting 是 tinyint 0/1。建议统一为一种写法,并约定开关字段前缀 is_ / has_。
10.2 软删除字段不统一
del_flag char(1):biz_org、biz_execution_intentis_deleted tinyint:biz_project、biz_meeting及其子表、biz_project_assign、biz_project_rating、biz_project_plan等- 无软删:
biz_expert、biz_person、字典表、biz_invitation、biz_labor_voucher、biz_message、biz_resource、biz_special_plan、biz_support_letter、biz_publicity、biz_meeting_settlement等(靠status或物理删)
建议统一软删字段名/类型,并在 BaseEntity 层抽象,减少 MyBatis-Plus LogicDelete 对两套字段的重复配置。
10.3 审核状态枚举不统一
- 数字码:
biz_expert.audit_status(0未提交/1待审/2通过/3拒绝)、biz_project_plan.status(1待审/2通过/3拒绝) - 中文字符串:
biz_labor_voucher.audit_status(待审核/已审核/已驳回)、biz_meeting_settlement.audit_status(已审核/待审核)、biz_publicity_*_intent.intent_status(待审核/已通过/已拒绝)
建议统一为英文/数字枚举码,中文存库不利于国际化与条件查询。
10.4 冗余/语义冲突列
biz_publicity.rating_time与publish_time语义重复(均为「发布时间」)biz_meeting_settlement.project_name列注释写作「会议名称」(疑为复制错误)
建议核对后清理冗余列或订正注释。
10.5 主键默认值 0
雪花 ID 主键部分带 DEFAULT 0:biz_execution_intent.intent_id、biz_invitation.invite_id、biz_labor_voucher.voucher_id、biz_resource.resource_id、biz_support_letter.letter_id、biz_person.person_id。雪花 ID 由应用生成,默认 0 无意义,建议去掉默认值并置 NOT NULL。
10.6 通用 status 命名语义过载
status 在不同表含义各异(合作状态/审核状态/启用状态/发布状态等),建议语义化命名(如 coop_status、audit_status、publish_status),提升可读性与查询条件可维护性。