更改:统计工作项容量以及预估工时

This commit is contained in:
yystopf 2023-12-01 09:19:08 +08:00
parent fe4f56dd36
commit 93514e8a73
4 changed files with 18 additions and 5 deletions

View File

@ -10,6 +10,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController
@total_issues_count = @object_result[:total_issues_count]
@opened_issues_count = @object_result[:opened_issues_count]
@closed_issues_count = @object_result[:closed_issues_count]
@complete_issues_count = @object_result[:complete_issues_count]
if params[:only_name].present?
@issues = kaminary_select_paginate(
@object_result[:data].select(:id, :subject, :project_issues_index, :updated_on, :created_on))

View File

@ -20,11 +20,15 @@ class Api::Pm::SprintIssuesController < Api::Pm::BaseController
@issues_hour_count = @issues.group(:pm_sprint_id).sum(:time_scale)
@issues_hour_type_count = @issues.group(:pm_sprint_id, :status_id).sum(:time_scale)
pm_sprint_ids.map(&:to_i).map do |sprint_id|
# count_closed 工作项已完成/已关闭数量,需排除已修复的缺陷数量
count_closed = @issues_type_count[[sprint_id, 5]].to_i + @issues_type_count[[sprint_id, 3]].to_i - @issues.where(pm_issue_type: 3, status_id: 3).size
# hour_closed 已完成/已关闭 预估工时之和,需排除已修复的缺陷预估工时
hour_closed = @issues_hour_type_count[[sprint_id, 5]].to_f + @issues_hour_type_count[[sprint_id, 3]].to_f - @issues.where(pm_issue_type: 3, status_id: 3).sum(:time_scale).to_f
data[sprint_id] = {
count_total: @issues_count[sprint_id] || 0,
count_closed: @issues_type_count[[sprint_id, 5]] || 0,
hour_total: @issues_hour_count[sprint_id] || 0,
hour_closed: @issues_hour_type_count[[sprint_id, 5]] || 0,
count_closed: count_closed || 0,
hour_total: @issues_hour_count[sprint_id].to_f || 0,
hour_closed: hour_closed || 0,
requirement: @issues_pm_type_count[[sprint_id, 1]] || 0,
task: @issues_pm_type_count[[sprint_id, 2]] || 0,
bug: @issues_pm_type_count[[sprint_id, 3]] || 0

View File

@ -5,7 +5,7 @@ class Api::V1::Issues::ListService < ApplicationService
attr_reader :begin_date, :end_date
attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user
attr_reader :pm_project_id, :pm_sprint_id, :root_id, :pm_issue_type, :status_ids
attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count
attr_accessor :queried_issues, :total_issues_count, :closed_issues_count, :opened_issues_count, :complete_issues_count
validates :category, inclusion: { in: %w[all opened closed], message: '请输入正确的Category'}
validates :participant_category, inclusion: { in: %w[all aboutme authoredme assignedme atme], message: '请输入正确的ParticipantCategory'}
@ -41,7 +41,13 @@ class Api::V1::Issues::ListService < ApplicationService
# begin
issue_query_data
{data: queried_issues, total_issues_count: @total_issues_count, closed_issues_count: @closed_issues_count, opened_issues_count: @opened_issues_count}
{
data: queried_issues,
total_issues_count: @total_issues_count,
closed_issues_count: @closed_issues_count,
opened_issues_count: @opened_issues_count,
complete_issues_count: @complete_issues_count
}
# rescue
# raise Error, "服务器错误,请联系系统管理员!"
# end
@ -108,6 +114,7 @@ class Api::V1::Issues::ListService < ApplicationService
@total_issues_count = issues.distinct.size
@closed_issues_count = issues.closed.distinct.size
@opened_issues_count = issues.opened.distinct.size
@complete_issues_count = issues.closed.distinct.size + issues.where(status_id: 3).distinct.size - issues.where(pm_issue_type: 3, status_id: 3).size
case category
when 'closed'

View File

@ -1,6 +1,7 @@
json.total_issues_count @total_issues_count
json.opened_count @opened_issues_count
json.closed_count @closed_issues_count
json.complete_count @complete_issues_count
json.total_count @issues.total_count
json.has_created_issues @project.present? ? @project.issues.size > 0 : 0
json.issues @issues.each do |issue|