初学JavaSE与JavaEE应用
JavaSE情景一在企业开发中需要在原有项目中添加一个非常简单的需求点。比如此刻现在要将一个项目任务表中把一个项目的总工时计算出来在前端列表中展示。一个项目有预立项Id和正式立项Id这两个字段不全为 0。其下有多个多级任务预立项阶段任务 和 正式立项阶段任务每个任务用rw_time字段记录所花费时间。用一个is_leaf字段标注此任务是不是单元任务。用一个新表保存计算出来的totalTime便于后期维护。对于“计算后更新或插入”的操作交给一个后台接口让服务器每天定时跑一遍就好。但问题是批量查出来的总工时数据和原本的项目列表并不在同一个地方存储。我们在业务层需要自己把它们匹配。说到匹配最直接的想法就是用 Map —— 通过键值对来匹配。那 key 用什么呢前面提到过每个项目都有“预立项 ID”和“正式立项 ID”。我们在设计存储总工时表时就可以把这两个 ID 联合起来作为一个唯一的业务键。这个联合键既能用来做批量 upsert存在就更新不存在就插入也能用来做匹配。具体做法是把查出来的总工时列表遍历一遍对每一条数据把它的预立项 ID 和正式立项 ID 拼成一个字符串作为 key整条对象或者总工时数值作为 value放进一个 Map 里。然后再去遍历原有的项目 DTO 列表。对每个 DTO同样用它的那两个 ID 拼接成 key从刚才那个 Map 里把总工时取出来set 到 DTO 里。这样前端拿到项目列表时每个项目都得到总工时直接渲染就行了。