禅道首页自定义新增【本月工时】统计字段

使用禅道开源版本的小伙伴注意了!你是不是一个月过去了,还不了解自己的工时是否填完?是否还在一天天的计算你的工时?翻到这篇文章,你就有福了。那么接下来看看到底该如何设置才能看到自己本月的工时总计吧!

1.修改zh-cn.php页面

进入/opt/zbox/app/zentao/module/block/lang/下,在zh-cn.php文件71行后新增以下代码:

$lang->block->effort              = '本月工时数';

在这里插入图片描述

322行添加

$lang->block->default['full']['my']['8']['params']['effortCount']   = '20';

在这里插入图片描述

2.修改contribute.html.php页面

进入/opt/zbox/app/zentao/module/block/view/下,在contribute.html.php文件61行后新增以下代码:

  /**
   * create by gaojianqiong.
   */
    <div class="col-xs-4 tile">
      <div class="tile-title"><?php echo $lang->block->effort;?></div>
      <div class="tile-amount"><?php echo empty($data['effort']) ? 0 : html::a($this->createLink('my', 'work', 'mode=task'), (int)$data['effort']);?></div>
    </div>

在这里插入图片描述

修改后效果:
在这里插入图片描述

3.修改config.php页面

进入/opt/zbox/app/zentao/module/block/下,在config.php文件69行后新增以下代码:

$config->block->modules['execution']->moreLinkList->effort = 'my|effort|type=%s';

41行添加

,effort

在这里插入图片描述

91行添加

$config->block->modules['effort']                                = new stdclass();
$config->block->modules['effort']->moreLinkList                  = new stdclass();
$config->block->modules['effort']->moreLinkList->effort          = 'my|effort|type=%s';

在这里插入图片描述

4.修改model.php页面

进入/opt/zbox/app/zentao/module/user/下,在model.php文件2888行后新增以下代码:

    /**
     * create by gaojianqiong.
     */
        $today = date("Y-m");
        $personalData['effort'] = $this->dao->select('SUBSTR(e.date,1,7) as month,u.realname,p.name,sum(e.consumed) as hours')->from(TABLE_EFFORT)->alias('e')
            ->leftjoin(TABLE_USER)->alias('u')->on("e.account=u.account")
            ->leftjoin(TABLE_TASK)->alias('t')->on("t.id=e.objectID")
            ->leftjoin(TABLE_PROJECT)->alias('p')->on("p.id=t.execution")
            ->where('e.deleted')->eq('0')
            ->andWhere('t.deleted')->eq('0')
            ->andWhere('p.deleted')->eq('0')
            ->andWhere('e.account')->eq($account)
            ->andWhere("e.date>='$today-01' and e.date<='$today-31'")
            ->fetch('hours');

在这里插入图片描述

修改后效果
在这里插入图片描述

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 禅道统计工时的SQL语句主要涉及以下几个方面: 1. 统计个人工时: SELECT user_name, SUM(develop_hours) AS total_hours FROM worklog WHERE create_date BETWEEN '起始日期' AND '截止日期' GROUP BY user_name; 上述SQL语句将根据起始日期和截止日期统计工作记录表中每个用户的开发工时总和,并按用户名进行分组。 2. 统计项目工时: SELECT project_name, SUM(develop_hours) AS total_hours FROM worklog WHERE create_date BETWEEN '起始日期' AND '截止日期' GROUP BY project_name; 以上SQL语句将根据起始日期和截止日期统计工作记录表中每个项目的开发工时总和,并按项目名称进行分组。 3. 统计任务工时: SELECT task_name, SUM(develop_hours) AS total_hours FROM worklog WHERE create_date BETWEEN '起始日期' AND '截止日期' GROUP BY task_name; 上述SQL语句将根据起始日期和截止日期统计工作记录表中每个任务的开发工时总和,并按任务名称进行分组。 禅道中可以通过内置的导出功能将统计结果导出为Excel文件。导出后,可以使用Excel工具对工时报表进行进一步的处理和分析,例如计算平均工时、最长工时、最短工时等。还可以使用Excel的图表功能绘制工时统计图,更直观地展示工时分布情况。 综上所述,禅道统计工时可以通过SQL语句进行查询并导出为Excel报表,借助Excel工具可以进行更加高级的数据处理和可视化分析。 ### 回答2: 禅道统计工时可以通过以下SQL语句来实现: ``` SELECT u.user_name AS 用户名, SUM(o.hours) AS 工时总数 FROM zt_user AS u LEFT JOIN zt_task AS t ON u.id = t.finished_by LEFT JOIN zt_work AS w ON t.id = w.task LEFT JOIN zt_owned AS o ON t.id = o.task GROUP BY u.user_name ``` 以上SQL语句中,通过多个表的连接操作,结合SUM函数和GROUP BY语句,可以获得每个用户的工时总数。 而要将工时数据导出到excel工具中生成工时报表,则可以按照以下步骤进行操作: 1. 在查询结果页面中,选择"导出"选项。 2. 选择导出格式为Excel,并点击确认。 3. 下载并保存导出的Excel文件。 4. 打开Excel工具,打开保存的Excel文件。 5. 对数据进行格式化和排版,创建合适的表格和图表,以展示工时统计结果。 6. 根据需求,可以对工时报表进行进一步编辑和美化,添加标题、图例等。 7. 最后,保存并分享工时报表。 通过以上操作,可以将禅道统计工时数据导出到Excel工具中生成工时报表,并根据需要进行进一步编辑和美化,以便更好地展示工时统计结果。 ### 回答3: 禅道是一款项目管理软件,可以用于统计工时。要使用SQL语句来统计工时,需要先了解禅道数据库的结构和关系,并根据需求来编写相应的查询语句。 以下是一个示例的SQL语句,用于统计指定时间范围内的工时信息: ``` SELECT user_realname, SUM(work_hours) AS total_hours FROM zt_taskestimate WHERE date BETWEEN '2022-01-01' AND '2022-01-31' GROUP BY user_realname; ``` 这个SQL语句查询了`zt_taskestimate`表中指定时间范围内的工时信息,并按用户名称进行了分组,最后计算了每个用户的总工时。 另外,如果你需要将工时报表导出为Excel文件,可以使用Excel工具来完成导出操作。以下是一个示例的Python代码,使用`pandas`库将查询结果导出为Excel文件: ```python import pandas as pd # 假设查询结果保存在名为result的DataFrame中 result = pd.DataFrame({ '名称': ['张三', '李四', '王五'], '总工时': [30, 25, 35] }) # 导出为Excel文件 result.to_excel('工时报表.xlsx', index=False) ``` 以上代码使用了`pandas`库来操作DataFrame对象,并使用`to_excel`方法将数据导出为Excel文件。你可以根据实际情况进行相应的修改和调整。 希望以上回答对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值