Files
zkxw/docs/中科兴皖需求V0.3.md
T
zlwuandCursor 06db3bc966 feat(permission): replace OA roles with post-bound roles and assignee posts
Unify effective roles via post-role bindings, remove dedicated OA role UI, and update OA assignee resolution plus related SQL/docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-04 17:41:04 +08:00

449 lines
41 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1、客户口述的需求
- 公司介绍:中科兴皖,是一家做细胞医疗服务的。 主要业务是存储产妇脐带血,干细胞治疗等
- 公司分为六大部分:市场营销部门(下设 采集部、临床部、中试服务部、支持中心、客服部) 、技术研发部、生产部、质量安全部、财务部、综合部
- 公司主营业务:细胞存储、细胞培养及医疗应用
## 1.1、细胞存储
- 业务流程:
采集专员创建细胞存储协议单,细胞存储协议单创建后会触发两个流程:一个签订协议缴费流程 ,一个是采集、运输、检测、入库的流程
- 签订协议缴费流程:采集专员在现场跟客户线下签订协议,将签订的协议拍照上传到系统,用户缴费的截图上传到系统。由市场支持专员审核后,标注为已缴费
- 采集、运输、签收、检测、入库的流程:采集专员在现场采集到细胞样本后,通过快递或其他方式将样本送到站点、站点签收,如果这时候发现样本不合理,此样本作废。流程终止。如果样本正常签收 。 签收成功后会触发两个流程:样本检测、样本制备。 样本检测如果不正常,样本作废。 样本制备如果制备异常,制备终止。如果样本检测正常、样本制备正常,最后由质检专员点击,表示该细胞样本入库成功,开始存储了。这中间只要涉及到不成功,都需要给用户退款(退款流程由市场支持专员发起,财务人员完成)
- 如果中间客户提出毁约,细胞存储协议单也会被作废掉。给用户退款(退款流程由市场支持专员发起,财务人员完成)
## 1.2、科研捐赠
- 科研捐赠采集协议单管理跟细胞存储采集协议单唯一的差别,就是不用缴费。
- 科研捐赠独立建设一套表模型进行业务数据维护,不跟细胞存储采集单共享。但是基础的样本类型管理、采集协议号管理、客户管理、样本编码管理、采集地区及医院管理,这些基础数据是共享的
【后续补充,暂不开发】
## 1.3、中试服务
中试服务是渠道商来购买细胞产品,然后提供需要细胞产品服务的人员进行产品的输注。费用是从渠道商账户上扣除
## 1.4、临床应用
临床应用跟中试服务操作思路一致,有这些区别
- 临床应用会从用户收费、中试服务是从渠道商扣费
- 临床应用需要创建一个临床应用单位信息表:核心字段 单位名称、科室/部门、联系人、联系电话
- 临床应用有个知情同意书签署的附件上传
- 临床应用不需要体检
- 临床应用的交付方式是(shsm - 送货上门、kdfh - 快递发货),交付附件、备注、交接温度、送货人姓名、联系电话、出发时间、预计到达时间、交通方式( dc - 打车 、gsc - 公司车 、 qt - 其他)、交通费用(元) 、发货人、发运时间、快递公司、快递单号、快递费用、预计到达时间 。如果交付方式是shsm - 送货上门 ,则需要填写 送货人姓名、联系电话、出发时间、预计到达时间、交通方式( dc - 打车 、gsc - 公司车 、 qt - 其他)、交通费用(元) 。 如果交付方式是 kdfh - 快递发货 , 则需要填写 发货人、发运时间、快递公司、快递单号、快递费用、预计到达时间
【后续补充,暂不开发】
# 2、系统功能菜单
- 系统管理
- 租户管理[2.1.1、租户管理]
- 字典管理[2.1.2、字典管理]
- 组织管理[2.1.3、组织管理]
- 用户管理[2.1.4、用户管理]
- 角色管理[2.1.5、角色管理]
- 菜单管理[2.1.6、菜单管理]
- 站点管理[2.1.7、站点管理]
- 职位管理[2.1.8、职位管理]
- 物品单位管理[2.1.9、物品单位管理]
- 快递公司管理[2.1.10、快递公司管理]
- 细胞存储管理
- 采集协议单[2.2.6、采集协议单]
- 采集协议单审核[2.2.7、采集协议单审核]
- 采集协议单收款确认(财务确认)[2.2.8、采集协议单收款确认(财务确认)]
- 采集协议单退费确认(财务确认)[2.2.9、采集协议单退费确认(财务确认)]
- 分期缴费用户预警模块[2.2.10、分期缴费用户预警模块]
- 科研捐赠(暂时不开发,后续在完善)
- 中试服务管理
- 细胞产品类型管理[2.3.1、细胞产品类型管理]
- 细胞产品规格管理[2.3.2、细胞产品规格管理]
- 细胞产品价格体系管理[2.3.3、细胞产品价格体系管理]
- 细胞产品项目价格管理[2.3.4、细胞产品项目价格管理]
- 渠道信息管理[2.3.5、渠道信息管理]
- 体检机构及体检项目及价格维护模块[2.3.6、体检机构及体检项目及价格维护模块]
- 渠道服务购买订单管理[2.3.7、渠道服务购买订单管理]
- 渠道服务购买订单管理(财务确认)[2.3.8、渠道服务购买订单管理(财务确认)]
- 中试服务单管理[2.3.9、中试服务单管理]
- 临床应用(暂时不开发,后续在完善)
- 运营支撑
- 洁净室管理[2.4.1、洁净室管理]
- 库位管理[2.4.2、库位管理]
- 展馆预约[2.4.3、展馆预约]
- 物料管理(暂时不开发,后续在完善)
- 财务管理(暂时不开发,后续在完善)
- 生产管理
- 耗材管理[2.5.1、耗材管理]
- 耗材包管理[2.5.2、耗材包管理]
- 试剂管理[2.5.3、试剂管理]
- SOP文档[2.5.4、SOP文档]
- 工艺工序分类[2.5.5、工艺工序分类]
- 工艺产出物类型[2.3.6、工艺产出物类型]
- 工艺库管理[2.3.7、工艺库管理]
- 工艺路线配置[2.3.8、工艺路线配置]
- 细胞存储协议单
- 中试服务单
- 生产工单
- 质检管理
- (暂时不开发,后续在完善)
- 基础信息管理
- 客户管理[2.2.1、客户管理]
- 细胞样本类型管理[2.2.2、细胞样本类型管理]
- 采集地区及医院管理[2.2.3、采集地区及医院管理]
- 采集协议号管理[2.2.4、采集协议号管理]
- 样本编码管理[2.2.5、样本编码管理]
## 2.5、生产管理
### 2.5.1、耗材管理
- 此模块用于生产耗材管理,支持耗材的新增、修改、删除等功能
- 生产耗材表核心字段:耗材编码、耗材名称、规格型号、标准用量、描述
### 2.5.2、耗材包管理
- 此模块将生产耗材组合成一个耗材包,方便日常数据录入
- 耗材包主表:编号、名称、使用场景、类型(bzhcb - 标准耗材包、 zdyhcb - 自定义耗材包),状态 (1 - 启用 、 0 - 停用)、备注
- 耗材包耗材明细表:耗材包id、耗材编码、耗材名称、耗材规格型号、标准用量、备注
### 2.5.3、试剂管理
- 此模块用于生产试剂信息的管理
- 试剂信息表的核心字段:试剂编码、试剂名称、规格、标准用量、单位[下拉数据从 2.1.9、物品单位管理 获取]、描述
### 2.5.4、SOP文档
- 此模块用于管理SOP文档管理
- SOP文档表核心字段:SOP编号、SOP文档名称、版本号、SOP文档附件
### 2.5.5、工艺工序分类
- 此模块用于工艺工序分类管理
- 工艺工序分类表核心字段:分类编码、分类名称
### 2.3.6、工艺产出物类型
- 此模块用于工艺产出物类型管理
- 工艺产出物类型表核心字段:类型编码、类型名称
### 2.3.7、工艺库管理
- 此模块用于定义细胞生产过程中的每个工艺的信息,包括预计使用的试剂、预计使用的耗材、预计产出物等关联信息。工艺信息理解就是一个预设的情况,等后续真正生产时候,有这些预制的值可以起到指导作用,同时也方便用户录入信息
- 生产工艺主表 核心字段:工序代码、工序分类[下拉数据来自于 2.5.5、工艺工序分类]、工序名称、描述、预计使用设备名称、预估耗时、关联的SOP文[从 2.5.4、SOP文档 关联选择, 支持多个附件]
- 生产工艺试剂关联表 核心字段: 试剂编码、试剂名称、规格、标准用量、单位、是否关键物料 。 (通过关联2.5.3、试剂管理 下拉后,将试剂编码、试剂名称、规格、标准用量、单位都带过来,但是用户可以自己改 标准用量)
- 生产工艺耗材关联表:核心字段:耗材编码、耗材名称、耗材规格型号、标准用量、是否必需(1 - 必须 , 0 - 可选)、备注, 可以通过从2.5.2、耗材包管理 关联一次性将耗材批量带过来,然后修改。 也可以从2.5.1、耗材管理 待过来
- 生产工艺产出关联表:核心字段:产出类型(下拉数据来源于 2.3.6、工艺产出物类型)、产出物名称、产出物条码。 产出物条码只有在真实生产时候才会有数据
### 2.3.8、工艺路线配置
- 此模块用于将多个生产工艺组织成一个工艺路线图,方便实验室人员在进行细胞生产过程中,快速勾选一个工艺路线图,调整后就可以将生产过程记录下来了
- 工艺路线图主表 核心字段:路线编码、产品类型(下拉数据来自于 2.3.1、细胞产品类型管理)、路线名称、备注
- 工艺路线图工艺明细表:工序代码、工序分类[下拉数据来自于 2.5.5、工艺工序分类]、工序名称、描述、预计使用设备名称、预估耗时、关联的SOP文[从 2.5.4、SOP文档 关联选择, 支持多个附件]、排序号
- 工艺路线图工艺明细表试剂关联表 核心字段: 试剂编码、试剂名称、规格、标准用量、单位、是否关键物料 。 (通过关联2.5.3、试剂管理 下拉后,将试剂编码、试剂名称、规格、标准用量、单位都带过来,但是用户可以自己改 标准用量)
- 工艺路线图工艺明细表耗材关联表:核心字段:耗材编码、耗材名称、耗材规格型号、标准用量、是否必需(1 - 必须 , 0 - 可选)、备注, 可以通过从2.5.2、耗材包管理 关联一次性将耗材批量带过来,然后修改。 也可以从2.5.1、耗材管理 待过来
- 工艺路线图工艺明细表产出关联表:核心字段:产出类型(下拉数据来源于 2.3.6、工艺产出物类型)、产出物名称、产出物条码。 产出物条码只有在真实生产时候才会有数据
- 工艺路线配置这个界面,是可以做成拖拉配置的。界面分三部分、左边是内置的生产工艺的卡片、中间是生产工艺排版的界面,右侧是每个工艺对应的内容(工艺信息、试剂关联信息、耗材关联信息、产出物信息等)
## 2.4、运营支撑
### 2.4.1、洁净室管理
- 此模块用于洁净室信息录入 和 人员出入数据录入就行了
- 两个表:洁净室信息表、 洁净室人员进出表
- 洁净室信息表 核心字段:编号、名称、等级(A级、B级、C级、D级)、状态(正常、异常)、面积(m²)
- 洁净室人员进出表 核心字段:人员、部门、进入时间、目的、离开时间、体温
### 2.4.2、库位管理
- 此模块用于细胞存储设施的管理,比如一个液氮罐,可以分很多层、每一层也可以放多个盒子、每个盒子又可以有很多的小方格子
- 可以考虑要用树形结构来设计存储设施的存储结果
- 两个表:细胞存储设施表、 细胞存储设施储存位置表(只有叶子节点才是真正的存储细胞的位置)
### 2.4.3、展馆预约
- 此模块用于录入展馆预约的信息
- 展馆预约表核心字段:预约编号、来访单位、联系人、到访日期、人数、接待人员、备注
### 2.4.4、物料管理
- (暂时不开发,后续在完善)
## 2.3、中试服务
- 表模型层级关系
- 细胞产品类型表
- 细胞产品规格表
- 细胞产品价格体系表
- 细胞产品项目价格体系表
- 渠道信息表:渠道名称、统一社会信用代码、渠道类型(yy - 医院、hzjg - 合作机构 、 zs - 诊所、 zfjg - 政府机构 、qt - 其他 )、联系人姓名、联系电话、联系邮箱、渠道协议附件、备注
- 渠道开票信息子表:一个渠道可能会有多个开票信息。核心字段:单位名称、税号、单位地址、电话、开户银行、银行账号
- 渠道邮寄地址信息子表:一个渠道可能会有多个邮寄地址。 核心字段:邮寄地址、邮寄联系人、邮寄联系电话
- 渠道协议信息子表:协议类型( kyxy - 科研协议、 zsxy - 中试协议 、 lcxy - 临床协议), 业务类型 (如果 协议类型 为 科研协议 , 业务类型 就是 kyyy - 科研应用 , 如果协议类型 为 中试协议, 业务类型 就是 中试应用 , 如果 协议类型 为 临床协议, 业务类型为 临床应用)、结算方式( yj - 月结、 jj - 季结 、 nj - 年结 、dcjs - 单次结算)、授信额度(元)、生效日期(YYYYMMDD)、到期日期(YYYYMMDD)、协议状态(生效中、已作废)
- 渠道协议信息子表-细胞产品价格表,核心字段:项目名称、项目编码、细胞类型编码[2.3.1、细胞产品类型管理]、细胞类型名称[2.3.1、细胞产品类型管理]、规格[2.3.2、细胞产品规格管理]、原价(元)、协议价(元)
- 体检机构表
- 体检机构项目价格明细表
- 体检机构开票信息表
- 渠道购买服务订单表
- 渠道服务购买订单-购买产品明细表
- 渠道服务购买订单-财务确认表
- 渠道中试服务申请单
- 患者信息表:支持从[客户管理]中选择。核心字段:姓名、性别、年龄、身份证号、联系电话、紧急联系人、紧急联系人电话、临床诊断、诊断附件、是否需要体检(1 - 需要, 0 - 不需要)(客户信息可以从客户信息表customer选择,然后将信息带出到母亲信息中。 如果客户信息表customer 没有这块的数据, 在保存采集协议单的时候,会新增或者修改客户信息表customer中的客户信息数据)
- 中试申请单输注方案明细表:一个中式申请单会存在多个细胞输注方案,核心字段包括细胞类型、规格、总疗程数、疗程间隔、输注途径、输注开始日期、备注
- 中试申请单输注计划明细表,一个细胞类型输注方案会产生多个输注计划,核心字段包括细胞类型、规格、输注时间、状态(待生产、已生产、已交付、已取消)、附件、备注
- 中试申请单输注计划应用确认子表:一个输注计划就有一个应用确认信息,核心字段包括:确认人、确认时间、确认描述
- 中试申请单输注计划交付信息子表:一个输注计划就有一个交付信息,核心字段包括:交付编号(自动生成)、备注
- 中试申请单输注计划交付信息子表的物料清单表:一个交付信息会有多个物料清单:核心字段包括:物料名称、数量、单位
- 中试申请单输注计划交付信息子表的交付方式表:一个交付信息会有一个交付方式:交付方式( qdzt - 渠道自提 、 kdfh - 快递发货)、交付附件、发运时间、交接温度、备注 、自提人员、联系电话、发货人、快递公司、快递单号、快递费用、预计到达时间。 如果 交付方式 为 qdzt - 渠道自提,则需要填写 交付附件、发运时间、交接温度、备注 、自提人员、联系电话 。 如果交付方式为kdfh - 快递发货,则需要填写 交付附件、发运时间、交接温度、备注 、发货人、快递公司、快递单号、快递费用、预计到达时间。
- 中试申请单体检信息表,核心字段:中试申请单id 、体检机构、预约时间、预约的费用、实际体检时间、实际体检费用、费用是否结算、体检状态(待体检、已体检)、费用状态(未结算、已结算)、体检备注、体检报告附件
- 中试申请单体检预约项目明细表:核心字段:项目名称、项目费用(元)、备注
- 中试申请单体检实际项目明细表:核心字段:项目名称、项目费用(元)、备注
### 2.3.9、中试服务单管理
- 基于渠道的服务购买订单,渠道就可以提交中试申请单了,每个中试申请单必须跟一个渠道服务购买订单表关联。
- 中试申请单这个表,核心字段:id、渠道服务购买订单id 、备注
- 这个模块用于中试服务单的管理,支持新增、修改、删除
### 2.3.7、渠道服务购买订单管理
- 渠道服务购买订单表,核心字段:渠道id、渠道名称、科室/部门、订单类型( yfk - 预付款 、gmcp - 购买产品) 、预付金额(订单类型为yfk - 预付款 就是预付金额)、 购买总金额(订单类型为gmcp - 购买产品 , 就是所有购买的产品总金额)、状态(生效中、 已作废)、备注信息
- 渠道服务购买订单-购买产品明细表, 当订单类型 为 gmcp - 购买产品。 这里存储购买产品明细,核心字段:项目编码、项目名称、细胞类型、规格、协议单价、购买数量、购买金额、备注
- 这个模块用于创建渠道服务购买订单信息的管理,新增、修改、删除
### 2.3.8、渠道服务购买订单管理(财务确认)
- 渠道服务购买订单-财务确认表,核心字段:确认时间、确认描述、确认附件、备注
- 这个模块用于财务可以看见渠道服务购买订单信息,看看是否财务到账,进行财务确认工作
### 2.3.6、体检机构及体检项目及价格维护模块
- 体检机构表,核心字段:体检机构名称、体检机构地址、联系人、联系人电话、状态(1 - 正常、 0 - 停用)
- 体检机构开票信息表,核心字段:单位名称、税号、单位地址、电话、开户银行、银行账号
- 体检机构项目及价格表,核心字段:项目名称、项目费用(元)
- 此模块用于管理体检信息及体检项目、价格表
### 2.3.5、渠道信息管理
这个模块可以对渠道信息进行管理。分为基础信息、开票信息、邮寄地址信息、协议信息(点击生效按钮,协议生效。 点击作废按钮,协议作废)
### 2.3.1、细胞产品类型管理
这个模块用于管理细胞产品类型,核心字段:细胞产品类型编码、细胞产品类型名称
### 2.3.2、细胞产品规格管理
这个模块用于管理细胞产品规格,核心字段:细胞产品规格编码、细胞产品规格名称
### 2.3.3、细胞产品价格体系管理
这个模块用于管理细胞产品价格体系,核心字段:项目名称、项目编码、细胞类型编码[2.3.1、细胞产品类型管理]、细胞类型名称[2.3.1、细胞产品类型管理]、规格[2.3.2、细胞产品规格管理]、单价(元)
### 2.3.4、细胞产品项目价格管理
- 细胞产品项目价格体系管理,就是将多个细胞产品组合在一起,方便后续跟渠道签协议时候使用
- 细胞产品项目价格体系表,核心字段: 体系名称、体系编码、状态(1 - 正常、 0 - 停用)
- 细胞产品项目价格体系-细胞价格表,从【细胞产品价格体系表】选择之后,然后调整下价格就行了。核心字段:项目名称、项目编码、细胞类型编码[2.3.1、细胞产品类型管理]、细胞类型名称[2.3.1、细胞产品类型管理]、规格[2.3.2、细胞产品规格管理]、单价(元)
## 2.2、细胞存储管理
- 表模型层级关系
- 客户信息表: customer
- 客户随访表:核心字段客户id、随访时间、随访描述
- 细胞样本类型表
- 采集地区医院表
- 采集协议号表
- 样本编码表
- 采集协议单表:(id、采集协议号[采集协议号管理]、状态(dsx - 待生效 、 sxz - 生效中、 ygq - 已过期 、 yzf - 已作废、 zky - 转科研)、 协议附件、登记日期(YYYYMMDD)、备注信息、协议生效时间、协议生效描述、协议过期时间、协议过期描述、协议作废时间、协议作废描述、协议转科研时间、协议转科研描述 。 采集协议单状态当前有4个状态、创建协议单时候状态默认 dsx - 待生效 , 后续提供四个按钮 协议生效、协议过期、协议作废、协议转科研 ,来改变协议状态)
- 采集信息表 : (采集协议单id、采集地区[2.2.3、采集地区及医院管理]、采集医院[2.2.3、采集地区及医院管理]、采集医护、销售人员[2.1.4、用户管理][默认当前登录人]、样本采集时间(YYYYMMDD hh:mm:ss)、母血采集时间(YYYYMMDD hh:mm:ss))
- 样本信息表 :(1对多的关系,1个采集协议单会有多个样本信息)(采集协议单id、样本类型[2.2.2、细胞样本类型管理]、样本编码[样本编码管理]、采集量、单位[2.1.9、物品单位管理]、价格、存储年限(年)、样本状态(ycj - 已采集、 jcz - 检测中、 yrk - 已入库、yzf - 已作废)、入库日期(YYYYMMDD)、检测开始日期、作废日期、存储到期日期(YYYYMMDD)(= 入库日期 + 存储年限(年))、备注。 样本状态:创建样本信息时候,默认状态就是 ycj -已采集 。 提供三个按钮 样本检测、样本入库、样本作废,分别来修改样本的状态。 样本检测 按钮点击后,样本状态会变成jcz - 检测中,检测开始日期为当天。样本入库 按钮点击时候,会记录入库日期为当天,样本状态变成 yrk - 已入库。 样本作废 按钮点击后,样本状态就变成了 yzf - 已作废,作废日期 为当天)
- 运输信息表 : (一个样本对应一个运输信息,在界面操作时候也支持勾选所有样本录入一份的信息,那就代表这些样本都是同样的快递信息)(采集协议单中样本运输信息表核心字段:采集协议单id、样本id、运输类型(kdys - 快递运输 、 ryxd - 人员携带 )、快递公司[2.1.10、快递公司管理]、快递单号、目的站点[2.1.7、站点管理]、快递费用(元)、预计到达时间(YYYYMMDD hh:mm:ss)、携带人员姓名、携带人员联系电话。 如果运输类型是 kdys - 快递运输 ,则填写 快递公司、快递单号、目的站点、快递费用(元)、预计到达时间。 如果运输类型是ryxd - 人员携带,则填写 携带人员姓名、携带人员联系电话、目的站点、预计到达时间)
- 缴费信息表: (采集协议单中缴费信息主表核心字段: 采集协议单id、缴费方式(dj - 趸交 、 fq - 分期)、合同金额、分期期数、每期间隔(月)、趸交截止时间(YYYYMMDD)、分期开始时间(YYYYMMDD, 缴费方式为fq - 分期,这个字段要填,填写完成后,分期期数、每期间隔(月),就会自动在子表中生成数据 ))(缴费方式中趸交就是一次性缴费的意思)
- 缴费信息子表: (采集协议单中缴费信息子表核心字段:缴费信息主表id、转账方式(wxzz - 微信转账、 zzbzz - 支付宝转账 、 yhkzz - 银行卡转账 、 xj - 现金) 、转账金额、转账时间 、转账附件 、财务确认附件、缴费状态(待缴费、缴费确认中、已缴费、退费确认中、已退费) 分期期数(如果是趸交,这个期数就为空)、分期应缴费时间(YYYYMMDD 缴费方式为分期时候,才有这个值)、备注。 如果为缴费方式为 dj - 趸交, 则只有一条记录。如果为缴费方式 为 fq - 分期,则有分期数一样数目的记录)
- 客户信息表: (这里是采集协议单中客户信息表,跟客户信息表 customer 不一样)(客户信息表核心字段:采集协议单id、客户id,母亲姓名、母亲联系电话、母亲身份证号、母亲出生年月(YYYYMM)、母亲民族、母亲家庭住址、父亲姓名、父亲电话、父亲身份证号、新生儿分娩时间、新生儿性别(1 - 男 、0 - 女)、分娩方式(sc - 顺产、 pgc - 剖宫产)、胎次(生育第几胎的意思,生育第一胎就是1 , 生育第二胎就是2,以此类推) 、 新生儿体重(克)、新生儿评分(1分钟)、新生儿评分(5分钟)、采集专员[用户管理,默认当前登录用户的id])
- 审核信息表: (采集协议单有一条审核记录表,核心字段: 采集协议单id、审核人、审核备注、审核状态(shtg - 审核通过、 shth - 审核退回))
- 新生儿满月待办表: (生效中的采集协议单中已满月的新生儿信息, 这个满月待办表中,核心字段:采集单协议id、满月待办状态(1 - 已办保险 、 0 - 未办保险)、办理日期、办理备注、保险附件)
- 储存证表: (生效中的,并且样本已经入库的采集协议单, 储存证表中,核心字段:制作状态(1 - 已制作 , 0 - 未制作) 储存证图片、制作日期,备注)
- 操作日志表: (采集协议单操作日志表:记录针对采集协议单的操作日志信息,需要我们针对协议单的所有操作都要有个编码、名称。方便记录操作日志)
### 2.2.6、采集协议单
- 这个界面展示采集专员自己创建的所有的协议单。这个界面支持协议单的创建、修改、删除
- 采集协议单新增弹窗中,要填写客户信息(客户信息可以从客户信息表customer选择,然后将信息带出到母亲信息中。 如果客户信息表customer 没有这块的数据, 在保存采集协议单的时候,会新增或者修改客户信息表customer中的客户信息数据)、采集信息、样本信息、运输信息、缴费信息、协议单信息 、备注
### 2.2.7、采集协议单审核
- 这个界面可以看到所有的采集协议单,这个界面也支持协议单的创建、修改、删除
- 增加一个审核按钮,审核弹窗中,可以填写审核备注、审核状态
- 增加一个缴费确认发起按钮,点击后,缴费状态变成缴费确认中
- 增加一个退费确认发起按钮,点击后,缴费状态变成退费确认中
- 增加四个按钮:协议生效、协议过期、协议作废、协议转科研
- 增加一个按钮:弹窗中可以查看、新增、编辑、删除客户随访信息
### 2.2.8、采集协议单收款确认(财务确认)
- 财务人员可以看见所有的采集协议单的所有的缴费部分的内容,可以对状态为缴费确认中的缴费信息单进行缴费确认,上传确认附件
### 2.2.9、采集协议单退费确认(财务确认)
- 财务人员可以看见所有的采集协议单的所有的缴费部分的内容,可以对状态为退费确认中的缴费信息单进行退费确认,上传确认附件
### 2.2.10、分期缴费用户预警模块
- 这个模块将分期缴费中最近7天缴费到期的数据展示出来。
### 2.2.5、样本编码管理
- 此模块用于样本编码维护管理、核心字段:样本编码(32位)、是否下发(1 - 是 、 0 -否)
### 2.2.4、采集协议号管理
- 此模块用于采集协议号表维护管理,核心字段:采集协议号(32位)、是否下发(1 - 是 、 0 -否)
### 2.2.3、采集地区及医院管理
- 此模块用于采集地区和地区内医院的信息。
- 采集地区医院表,核心字段:地区名称、医院名称集(医院名称逗号分隔存储)
- 这个模块展示采集地区信息,支持采集地区的新增、修改、删除、地区医院的配置。点击【地区医院配置】的按钮弹出弹窗,弹窗中可以进行医院信息的新增、修改、删除
- 采集地区跟医院之间是1对多的关系
### 2.2.2、细胞样本类型管理
- 此模块用于维护样本类型表,核心字段包括: 样本类型编码、样本类型名称、样本存储年份、样本存储价格(元)
- 目前样本类型有三种:wcqzxgxb - 围产期造血干细胞、qdjczgxb - 脐带间充质干细胞、 tpyqngxb - 胎盘亚全能干细胞
- 这个模块提供细胞样本类型信息管理功能,包括新增、修改、删除等功能
### 2.2.1、客户管理
- 每个客户都有个客户标签字段,这个字段存储着客户所有的标签,标签名称之间用逗号分隔。目前客户标签采取手动写标签名称,没有标准的客户标签
- 客户信息表customer包括:客户姓名、客户性别(0 - 男 1 - 女 2 - 未知)、身份证号、年龄、联系电话、客户标签(多个标签之间用逗号分隔)。
- 客户信息表中,客户姓名必须填写,但不要求唯一,因为存在重名的场景。如果身份证一样的,那就不要重复创建用户了,提醒用户已创建
- 这个模块提供一个客户信息展示、新增、修改、删除的功能
## 2.1、系统管理
### 2.1.1、租户管理
- 此模块给超级系统管理员superadmin 使用
- 租户信息包括:id,租户编号(用户自由编排),租户名称、联系人姓名、联系电话
- 目前系统就一个租户: 中科兴皖,租户编号 zkxw
- 这个模块提供租户的列表展示,提供租户的增加、删除、修改功能
### 2.1.2、字典管理
- 字典管理用于给中科兴皖一体化门户系统中,所有的字典项进行统一管理
- 字典数据表 TABLE `sys_dict_data` 核心字段:
```sql
`dict_label` varchar(100) DEFAULT '' COMMENT '字典标签',
`dict_value` varchar(100) DEFAULT '' COMMENT '字典键值',
`dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
```
- 字典类型表 TABLE `sys_dict_type` 核心字段:
```sql
`dict_name` varchar(100) DEFAULT '' COMMENT '字典名称',
`dict_type` varchar(100) DEFAULT '' COMMENT '字典类型',
```
- 界面中展示字典类型信息,支持字典类型的新增、修改、删除、字典数据配置的功能。点击【字典数据配置】按钮,弹出弹窗,弹窗中支持字典类型的字典数据的展示、新增、修改、删除的功能
- 下面是系统初始化阶段有哪些字典类型及字典数据
- 组织类别的类型编码: zzlbbm , 字典数据 gs - 公司 、 fgs - 分公司、 bm - 部门
- 站点类型的类型编码: zdlx , 字典数据 zxjd - 中心基地
- 站点业务范围的类型编码:zdywfw, 字典数据 ybcj - 样本采集、 ybzb - 样本制备 、zljc - 质量检测 、 xbcc - 细胞存储
- 部门状态的类型编码:bmzt , 字典数据 0 - 停用 , 1 - 正常
### 2.1.3、组织管理
- 要支持多级组织
- 组织信息表sys_dept,核心字段包括:组织id、组织名称、父组织id、组织类别编码(数据见字典表,字典类型的编码:zzlbbm)、部门状态( 字典类型的编码:bmzt , 0 - 停用 , 1 - 正常)、部门负责人、部门负责人联系电话、排序号
- 当前中科兴皖的组织:市场营销部门(下设 采集部、临床部、中试服务部、支持中心、客服部) 、技术研发部、生产部、质量安全部、财务部、综合部
- 界面以树形表单展示组织信息,支持组织的新增、修改、删除、新增子组织等功能
### 2.1.4、用户管理
- 支持对组织下的用户进行管理
- 用户表:sys_user,核心字段
```sql
`dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
`user_no` varchar(30) NOT NULL COMMENT '用户账号',
`nick_name` varchar(30) NOT NULL COMMENT '用户名',
`email` varchar(50) DEFAULT '' COMMENT '用户邮箱',
`phone_no` varchar(11) DEFAULT '' COMMENT '手机号码',
`sex` char(1) DEFAULT '0' COMMENT '用户性别(0 - 男 1 - 女 2 - 未知)',
`avatar` bigint(20) DEFAULT NULL COMMENT '头像地址(minio上图片的完整访问地址)',
`password` varchar(100) DEFAULT '' COMMENT '密码',
`status` char(1) DEFAULT '0' COMMENT '帐号状态(1- 正常, 0 -停用)',
```
- 界面分左右两部分、左侧用树形结构展示组织信息。点击组织信息[2.1.3、组织管理],右侧列表中就会展示出来当前组织下的用户。在右侧区域支持组织下用户的新增、修改、删除、停用等操作
### 2.1.5、角色管理
- 支持系统角色信息的维护管理。
- 角色表 sys_role
- ```sql
`role_name` varchar(30) NOT NULL COMMENT '角色名称',
`data_scope` char(1) DEFAULT '1' COMMENT '数据权限范围(1:全部数据权限 2:本部门数据权限 3:本部门及以下数据权限 4:仅本人数据权限 5:自定义数据权限 )',
`status` char(1) NOT NULL COMMENT '角色状态(1 正常 0 停用)',
```
- 在这个模块可以给角色授予用户
- 在这个模块可以给角色授予菜单权限
- 角色菜单关联表 sys_role_menu
``` sql
`role_id` VARCHAR(64) NOT NULL COMMENT '角色ID',
`menu_id` VARCHAR(64) NOT NULL COMMENT '菜单ID',
```
- 在这个模块可以给角色授予数据权限,通过角色表的data_scope,但是涉及到了自定义数据权限。
- 自定义数据权限表 sys_role_data_scope_detail
- ```sql
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
-- 核心字段:定义“范围”的类型和值
`scope_type` varchar(20) NOT NULL COMMENT '范围类型:dept(部门), user(用户)',
`scope_value` varchar(100) NOT NULL COMMENT '范围值:部门ID/用户ID',
```
- **特别注意:一个用户可能会存在多个角色。所以菜单权限和数据权限是要用这个用户所有角色的权限之和**
- 界面展示角色信息列表,支持角色的新增、修改、删除、角色菜单配置、角色数据权限配置。
- 【角色菜单配置】按钮点击弹出弹窗,弹窗中列表树形结构方式展示菜单信息[2.1.6、菜单管理],树形结构节点前面有个多选框,支持勾选。勾选子菜单默认会将父菜单一起勾选上
- 【角色数据权限配置】按钮点击弹出弹窗,弹窗中支持用户下拉框方式选择数据权限范围(1:全部数据权限 2:本部门数据权限 3:本部门及以下数据权限 4:仅本人数据权限 5:自定义数据权限 ),当用户选择了自定义数据权限。弹窗下方区域左侧支持勾选组织[2.1.3、组织管理](勾选子组织不会将父组织勾选上)、右侧支持勾选用户[2.1.4、用户管理]
#### 2.1.5.1、角色表 sys_role、角色菜单关联表 sys_role_menu、自定义数据权限表 sys_role_data_scope_detail的层级关系
- 角色表 sys_role
- 角色菜单关联表 sys_role_menu
- 自定义数据权限表 sys_role_data_scope_detail
### 2.1.6、菜单管理
- 在这个模块可以对web端和小程序端的菜单进行维护管理
- 系统菜单支持多级菜单模式
- 系统菜单表 sys_menu, 核心字段
```sql
`menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
`parent_id` bigint(20) DEFAULT '0' COMMENT '父菜单ID',
`is_frame` int(1) DEFAULT '1' COMMENT '是否为外链(1 是 0 否)',
`visible` char(1) DEFAULT '0' COMMENT '显示状态(1 显示 0 隐藏)',
`status` char(1) DEFAULT '0' COMMENT '菜单状态(1 正常 0 停用)',
```
- 系统默认有两个数据,分别是 1 - web端菜单, 2 - 移动端菜单,这两个菜单数据的parent_id = 0 。其他菜单数据都在这两个节点下创建。
- 界面以树形结构展示菜单数据,支持菜单数据的新增、修改、删除、新增子菜单。
### 2.1.7、站点管理
- 此模块用于维护管理公司站点信息。
- 目前就一个站点:中科兴皖
- 站点信息包括:站点名称、站点编码(自定义编写)、所属租户、站点类型(字典类型编码 zdlx )、状态(1 正常 0 停用)、详细地址、联系人、联系电话、业务范围(字典编码的类型编码为:zdywfw)
- 这里设置了站点,为了后续细胞存储、细胞生产、质量检测都可以选择站点,目前这个功能不做,默认所有的都在一个站点:中科兴皖
### 2.1.8、职位管理
- 这个模块用于职位信息的维护管理,支持职位绑定用户,一个职位可以绑定多个用户,一个用户可以绑定多个职位
- 职位可关联角色:一个职位可绑定多个角色;用户通过职位继承这些角色的**菜单权限**与**数据权限**
- **特别注意:用户最终权限 = 用户直接绑定角色 ∪ 经启用职位继承的角色**(与 §2.1.5 多角色并集语义一致;停用职位或停用角色不参与并集)
- 职位表 sys_post,核心字段包括: 职位名称、职位编码、排序号、状态(1 正常 0 停用)
- 职位与用户关联表 sys_user_post, 核心字段: 用户id、职位id
- 职位与角色关联表 sys_post_role, 核心字段: 职位id、角色id
- 职位表和关联表的关系
- 职位表
- 职位与用户关联表
- 职位与角色关联表
- 界面中展示职位信息,支持职位信息的新增、修改、删除、职位用户配置、职位角色配置。点击【职位用户配置】按钮,弹出弹窗,弹窗中展示用户信息[2.1.4、用户管理],支持勾选多个用户;点击【角色配置】按钮,弹出弹窗支持勾选多个角色[2.1.5、角色管理]。用户管理支持为用户多选职位。
### 2.1.9、物品单位管理
- 记录物品单位的表,核心字段: 单位编码、单位名称 (例如:单位编码 g 、 单位名称 克)
### 2.1.10、快递公司管理
- 维护快递公司信息表,核心字段:快递公司编码、快递公司名称
### 2.1.11、流程管理
流程管理分为两部分:1、流程配置与启用 2、流程办理中心
- 本次我们后端采用python语言实现一套全新的工作流系统。 实现目标类似钉钉宜搭工作流(低代码平台那种简易工作流)的配置,
- 图形化配置审批流程。流程配置节点和连接线,节点包括但不限于开始节点、结束节点、审批人节点(支持配置用户、支持配置角色等)、条件分支(支持多分支)等节点 。节点之间用连接线进行连接。
- 工作流还要支持流程变量:就是申请人的部门id等信息塞入到系统流程变量,也支持发起工作流时候动态塞入流程变量
- 审批人节点要支持配置一个用户、支持配置多个用户、支持配置一个角色、支持配置多个角色、同时还要支持通过sql模式找到审批人(通过sql模式结合流程变量,就可以实现当前申请人部门的主管审批这样的场景)。
- 审批人节点还支持配置一个人审批通过就算通过,还是所有配置审批人都审核通过了才算通过
- 条件分支支持两个条件、也支持多个条件(例如,金额小于等于100,金额大于100,小于300, 金额大于等于300)走不同的分支。这里金额就是一个动态的流程变量
- 流程配置支持版本号、因为有的流程通过老版本的流程发起的,还需要继续按照老版本运行。后续新增的都是按照新版本号流程
- 工作流配置好了,下一步就是业务工单发起工作流,工作流的待办中心、已办中心。
- 流程管理模块预计的功能模块
- 流程配置管理
- 待办中心
- 已办中心
# 3、技术要求
- mysql 5.7 数据库
- 所有表都有的公共字段
- `id` VARCHAR(64) NOT NULL COMMENT '主键ID', 采用UUID
- `tenant_no` VARCHAR(64) NOT NULL DEFAULT 'zkxw' COMMENT '租户编号'
- `order_num` int NULL COMMENT '排序号'
- `remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
- `create_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人id',
- `create_dept_id` VARCHAR(64) NOT NULL COMMENT '创建人部门ID',
- `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_by` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '更新人id',
- `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `del_flag` tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标记:0 - 正常 1 - 已删除',
- 创建表模型时候,业务字段放在id后面、其他的字段如tenant_no、order_num、remark、create_by、create_dept_id、create_time、update_by、update_time、del_flag放在业务字段后面
- 所有数据都不可以直接删除,都必须要用虚拟删除(0/1, 0 表示 未删除, 1 表示 已删除)
- 系统中附件都是支持多个附件的、用一个字段存储。存储方式:多个附件的minio地址用逗号分隔
- API接口返回数据在没有特殊排序要求的,都是按照order_num正序排列、创建时间倒序排列
- 后端用python语言
- 后端API查询接口都需要带上tenant_no = 当前登录人的tenant_no进行查询。后端API查询接口都需要带上当前登录人的数据权限之和进行查询
- 后端API操作类接口,需要表信息中的tenant_no 修改为 当前登录人的tenant_no
- 前端用 https://github.com/Daymychen/art-design-pro 这个开源的框架,然后使用pnpm clean:dev 进行精简,在精简版本上开发
- 小程序端使用hbuilderx创建一个空的UNI-app工程,然后在这个工程上使用vue3、vant-ui来开发业务功能
# 4、术语库
- 趸交 - 一次性缴费