设计 - BISTU-CETC/order_system GitHub Wiki
工单流转逻辑
- 工单流转到下一个节点
- 新增审批记录。
- 更新工单状态(status,isExamined,flowNodeId)。
- 工单结束
- 新增审批记录。
- 更新工单状态(status,isExamined,flowNodeId)。
- 新增工单历史记录。
- 审批通过:如果工单已经到达最后一个节点,那么应该参照“工单结束”流程。否则,后端查询流程表获取下一个节点信息,用于更新工单的
flow_node_id字段 ,表示工单已经流入下一个节点。同时将上一个节点的审批信息全部记录到审批记录关系表中。节点转换的触发条件是:审批人员点击”通过”按钮。 - 工单结束:当审批”不通过”时,工单结束;当工单到达终点并且通过时,工单结束;当工单被撤回时,工单结束。一旦工单结束,工单将进入历史工单表。
- 审批顺利结束:工单到达最后一个节点,审批人员点击”通过”按钮。修改工单状态为“顺利通过”,为工单生成一条审批记录,并生成一条历史工单。
- 审批不通过:审批人员点击”不通过”按钮。修改工单状态为“不通过”,为工单生成一条审批记录,并生成一条历史工单。
- 工单撤回:工单发起者可以撤回工单,修改工单状态为“撤回”,为工单生成一条审批记录,并生成一条历史工单。撤回条件是:工单没有被任何人审批过。也就是工单的
is_examined字段为0。
- 状态评定:只要工单还在流程中的某个节点上,那么工单的状态就是在审核,即:“在审”;一旦工单脱离了流程,其状态就转换为结束,即:“顺利通过”或者“不通过”或者“撤回”。在审核状态的工单
flow_node_id字段都不为空,结束的工单全部存入历史工单表中。
人员通知逻辑
-
审批人员通知:新增待审批工单时,通知审批人员。当发生”节点转换”时,加入通知逻辑,调用微信接口完成通知。
-
工单发起者通知:当工单结束(顺利通过、不通过)时,加入通知逻辑,调用微信接口完成通知。
小程序页面(暂定)
-
登录:
- 打开小程序自动登录(访问后台接口)
- 完善用户信息
-
工单管理:
- 发起工单:由“工单管理”界面路由
- 我发起的工单:由“工单管理”界面路由
- 我发起的工单-工单详情界面:由“我发起的工单”界面路由
- 历史工单:由“工单管理”界面路由
- 历史工单-工单详情界面由“历史工单”界面路由
-
工单审批:
- 待审批工单
- 工单审批历史
工单顺利通过流程:
-
用户发起工单:用户点击“工单管理”,选择“创建工单”,填写工单相关信息,选择工单流程,提交工单。发送请求给接口
/workOrder/save,后端在工单表中新增工单记录,并根据工单流程自动在审批关系表中新增记录,表示工单已经流入第一个审批节点。 -
审批人员审批通过:审批人员点击“审批工单”,选择“待审批工单”,查看待审批工单信息,做出留言,选择“审批通过”。发送给后端接口
/workOrder/examination/approve,后端检测工单是否到达流程终点,如果是,就将工单从工单表中删除,并在历史工单中添加拷贝,如果工单还没到流程终点,则让工单流转到下一个节点:删除目前审批表中的关系,并根据工单流程中的下一个节点信息,在审批表中新增记录,表示工单已经流入下一个节点。同时将上一个节点的审批信息全部记录到审批记录关系表中。
用户查看工单逻辑:
-
用户查看已提交的工单:用户点击“工单管理”,选择“我发起的工单”。发送请求到后端接口
/workOrder/list,接口返回该用户指定页的工单信息,前端将信息展示。 -
用户查看历史工单:用户点击“工单管理”,选择“历史工单”。发送请求到后端接口
/workOrder/history,接口返回该用户指定页的历史工单信息。 -
用户查看已发出的工单详情:用户打开已发出工单列表后,点击任意点击一条工单,将展示已发出的工单详情页面。用户可以选择“查看审核流程”,进入审核流程界面,此界面可以以审核流程线型图的方式查看工单目前的具体位置;用户可以看到工单的基本信息:工单的发起人的姓名、学号以及工单的主要内容;用户可以点击“撤回工单”对工单进行撤回,撤回的工单进入历史工单表中。
-
用户查看历史工单详情:用户打开历史工单列表后,点击任意点击一条工单,将展示历史工单详情页面。用户可以查看工单的基本信息。如果工单是被撤回的并且未被审批过,那么工单可以被删除。
后台管理系统
研究生
- 老师研究生1对多
- 本科生想提权研究生需要提交工单(直接提交业务员,随机派单),要求附带真实姓名、研究生学号、导师姓名、研究生专业。
用户身份认证(待讨论:默认为本科生那老师怎么发工单啊?)
- 注册默认本科生
- 教师人为提权
登陆
微信扫码
用户模块
管理员权限
- 管理用户:是否启用、查询、改角色、改权限
新增root用户
- 该用户系统唯一,拥有所有权限,能够访问所有接口,角色不能被修改(在修改角色和权限接口增加代码控制)。
用户修改
- 停用用户账号(逻辑删除)
查询用户
- 查询用户分页数据,按照姓名,班级,专业
删除用户
暂时不做
增加用户
由自动注册代替,与后台管理无关
权限管理模块
- 更改用户角色
- 管理角色权限
待讨论
- 老师默认本科生如何提交工单
- 工单管理?
- 业务员角色改变后审批结点是否改变?所以业务员的角色改变是否需要单独考虑?
- 学院专业完善问题,如何验证?