V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vitozyf
V2EX  ›  问与答

一个周报表的设计问题请教

  •  1
     
  •   vitozyf · 2020-10-22 09:14:16 +08:00 · 842 次点击
    这是一个创建于 1498 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务上需要不同的人填写不同的日报、周报、月报,最后汇总在一个统计表中。

    日报、月报的查询逻辑很简单,日报按 yyyy-MM-dd 日期查询,月报按月份查询,但是周报就有点问题了。

    主要是周报不是按年度的第几周来查,而是要业务上的 yyyy-MM-dd 至 yyyy-MM-dd 的格式,并且并不是按照严格的周一到周五,还有节假日,还有可能不想统计本周的最后一天,总之没有确定的算法算这个范围。

    现在问题来了,日报、月报一进页面可以按当天日期、当月月份查显示的数据,如果本次的数据没有,那么直接填写提交就是本次的数据。周报进来的时候要按什么查询呢?如果提交按照 yyyy-MM-dd 至 yyyy-MM-dd 的格式,那怎么保证不同的填报人选的这个范围一定是一样的?如果不一样也不好汇总统计,就算一样,那么初始进来查询的时候也不知道应该用什么默认范围查。

    大概是这么个意思不知道表达清楚没,求解怎么设计这个

    6 条回复    2020-10-22 13:59:22 +08:00
    justest123
        1
    justest123  
       2020-10-22 10:03:06 +08:00
    最简单也是最笨的一个做法:

    根据业务(好像你的意思是只把工作日计算在内)把每年的 52 周包含的日期持久化(一年也就 52 条记录),涉及到法定节假日、公司内部的统一调休补班安排,可以实时做适配,每年公布第二年节假日的时候,添加第二年的 52 条记录就行了

    进入页面查询的时候用当日日期查出是属于哪一周,页面上显示这一周你配置的起止日期就行了
    Felldeadbird
        2
    Felldeadbird  
       2020-10-22 10:39:04 +08:00
    周报肯定是按照 起止结束日来定啊。

    例如,周一到周日,为一个周报。 用户输入 2020-09-01 到 2020-09-30 。 你就按照规则,判断每天的日期属于哪一周。
    9-1,由于是星期二,你需要补上 8 月 31 日的数据,不然 9-1 到 9-6 少了一天的报表内容。

    具体还是看上头对于周报的定义,是否需要补上完整一周的数据。
    vitozyf
        3
    vitozyf  
    OP
       2020-10-22 11:41:22 +08:00
    @justest123 考虑了这个,就是觉得有点麻烦,得手动维护这数据
    vitozyf
        4
    vitozyf  
    OP
       2020-10-22 11:43:17 +08:00
    @Felldeadbird 问题就在于不是严格按照周一到周天的时间点,有时候不一定统计某一天
    justest123
        5
    justest123  
       2020-10-22 11:45:04 +08:00
    @vitozyf 就是因为没有所谓的“算法”来自动维护,所以只能手动了。。以前项目中有个类似的问题,同事就是这么处理的,主要是这份数据量也不大,也不会经常变动
    Felldeadbird
        6
    Felldeadbird  
       2020-10-22 13:59:22 +08:00
    @vitozyf 不是按照周一到周日,那么按照起止周 来统计。例如,1 号的那周,不给他补上 8 月 31 日的数据。只统计 1-6 号的数据。。。
    所以,你们公司的周报难道 不是按 七天来算吗?。。。七天时间计算,可以统计 7 个工作日为一周。7 个自然日为一周……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:33 · PVG 22:33 · LAX 06:33 · JFK 09:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.