一种介于待办和通知的需求有没有好的思路?

2022-06-16 10:32:04 +08:00
 shyrock

公司的 erp 软件,每个不同的角色有自己的不同的待办事项。 根据其人所属项目、所属部门、所属角色需要推送不同的待办通知给他。

目前的实现有两个思路,一是点击后根据这个人的各项属性查询数据,并过滤出需要他处理的事项。这个的问题是性能太低,点了之后要查一分钟才能看到所有待办。 二是后台监控内容变更,当满足某人的条件时,推送一条消息给他。客户端只需要列出该人的所有待办消息即可,性能很高。缺点是在其他终端处理了事项时没有办法消除所有终端的通知,需要人工点击完成待办。

这两种方案似乎是优劣互补的,但是我没有好得思路能结合到一起。 不知各位大佬有没有更好的思路?

3559 次点击
所在节点    程序员
55 条回复
shyrock
2022-06-16 14:26:58 +08:00
@kop1989smurf #40 这个接近于我说的第二个方案。处理完待办后怎么-1 呢?
kop1989smurf
2022-06-16 14:35:33 +08:00
@shyrock #41 完成待办后肯定你这个人有某个子单,然后根据子单上的单头号,给剩下的其他子单置状态即可。
wolfie
2022-06-16 14:49:21 +08:00
@shyrock
查询速度慢,还是设计的问题。

待办任务表结构(参考 Activiti ):待办任务、待办任务_角色关联、待办任务_用户关联。
wolfie
2022-06-16 14:50:44 +08:00
@shyrock
建议把涉及的表结构列出来,大家好评估优化。
buliugu
2022-06-16 15:10:33 +08:00
有点像 flowable 的待签事务,待签事务在 flowable 中需要手动签收后转入待办再处理(相当于签收)。这个查询是基于组和用户来实现的,查询前先查出用户所有的组然后再去查询这些组对应的待签事务
shyrock
2022-06-16 15:23:29 +08:00
@wolfie #43 谢谢你的热心回复。不过现在其实没有已经建好的待办表。实际的表格例如 [项目表] :项目内容字段、商务评审人、财务评审人、风控评审人、技术评审人 1 、技术评审人 2 、技术评审人 3 、项目进度、项目毛利。
要求是项目如果毛利低于 30%需要加入风控评审和技术评审人 3 ;如果项目涉及到定制开发,需要技术评审人 2 和技术评审人三;商务评审人只评审他自己的项目以及他下属的项目。

这样的要求涉及到其他类似的几十个单据表格。
shyrock
2022-06-16 15:24:51 +08:00
@buliugu #45 差不多,我也是通过用户所属的角色组来查询的,但是每种事务有独特的查询规则。签收这个操作没看出来能改善哪方面。。。
carrie96
2022-06-16 15:56:25 +08:00
待办的放待办 ,通知加个已读未读标签不就可以了
shyrock
2022-06-16 15:58:54 +08:00
@carrie96 #48 不是已读就 OK ,需要的是已经处理了才 OK 。
carrie96
2022-06-16 16:07:34 +08:00
@shyrock 通知不就是抄送 审批完成之类的吗 需要处理的话就是待办了
shyrock
2022-06-16 16:45:08 +08:00
@carrie96 #50 本质是待办,我只是在想是不是能借用通知来实现。
wolfie
2022-06-16 17:20:46 +08:00
@shyrock
不想弄待办,但要新增 『通知功能』,类似待办。

> 缺点是在其他终端处理了事项时没有办法消除所有终端的通知

这个通知加一个 随机批次号,完成任务后删除相同批次通知。
yeqown
2022-06-16 17:26:54 +08:00
@shyrock 那就更应该考虑解耦的方案了,毕竟都有几十个单据表格了,再有新增也不奇怪,侵入业务的方式不可持续。在变更事件发生时去 创建 /更新 “待办”(或者这里更像一个工作流?),创建时再根据业务资源(不同的策略)筛选出参与人并绑定。

这样的话,“待办” 就独立了,再去做待办的各种接口也比较方便。
PopRain
2022-06-16 20:30:14 +08:00
没有仔细看,个人觉得: “抢单”就是和业务逻辑有关系了,这种单独设计;其它通知类的都分配给每个具体的人,每个人只查询自己的
buliugu
2022-06-19 00:38:57 +08:00
@shyrock 签收是确定处理人并减少代签的数量

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/859954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX