业务上需要不同的人填写不同的日报、周报、月报,最后汇总在一个统计表中。
日报、月报的查询逻辑很简单,日报按 yyyy-MM-dd 日期查询,月报按月份查询,但是周报就有点问题了。
主要是周报不是按年度的第几周来查,而是要业务上的 yyyy-MM-dd 至 yyyy-MM-dd 的格式,并且并不是按照严格的周一到周五,还有节假日,还有可能不想统计本周的最后一天,总之没有确定的算法算这个范围。
现在问题来了,日报、月报一进页面可以按当天日期、当月月份查显示的数据,如果本次的数据没有,那么直接填写提交就是本次的数据。周报进来的时候要按什么查询呢?如果提交按照 yyyy-MM-dd 至 yyyy-MM-dd 的格式,那怎么保证不同的填报人选的这个范围一定是一样的?如果不一样也不好汇总统计,就算一样,那么初始进来查询的时候也不知道应该用什么默认范围查。
大概是这么个意思不知道表达清楚没,求解怎么设计这个
1
justest123 2020-10-22 10:03:06 +08:00
最简单也是最笨的一个做法:
根据业务(好像你的意思是只把工作日计算在内)把每年的 52 周包含的日期持久化(一年也就 52 条记录),涉及到法定节假日、公司内部的统一调休补班安排,可以实时做适配,每年公布第二年节假日的时候,添加第二年的 52 条记录就行了 进入页面查询的时候用当日日期查出是属于哪一周,页面上显示这一周你配置的起止日期就行了 |
2
Felldeadbird 2020-10-22 10:39:04 +08:00
周报肯定是按照 起止结束日来定啊。
例如,周一到周日,为一个周报。 用户输入 2020-09-01 到 2020-09-30 。 你就按照规则,判断每天的日期属于哪一周。 9-1,由于是星期二,你需要补上 8 月 31 日的数据,不然 9-1 到 9-6 少了一天的报表内容。 具体还是看上头对于周报的定义,是否需要补上完整一周的数据。 |
3
vitozyf OP @justest123 考虑了这个,就是觉得有点麻烦,得手动维护这数据
|
4
vitozyf OP @Felldeadbird 问题就在于不是严格按照周一到周天的时间点,有时候不一定统计某一天
|
5
justest123 2020-10-22 11:45:04 +08:00
@vitozyf 就是因为没有所谓的“算法”来自动维护,所以只能手动了。。以前项目中有个类似的问题,同事就是这么处理的,主要是这份数据量也不大,也不会经常变动
|
6
Felldeadbird 2020-10-22 13:59:22 +08:00
@vitozyf 不是按照周一到周日,那么按照起止周 来统计。例如,1 号的那周,不给他补上 8 月 31 日的数据。只统计 1-6 号的数据。。。
所以,你们公司的周报难道 不是按 七天来算吗?。。。七天时间计算,可以统计 7 个工作日为一周。7 个自然日为一周…… |