| @@ -10,6 +10,7 @@ class Api::Pm::IssuesController < Api::Pm::BaseController | |||||
| @total_issues_count = @object_result[:total_issues_count] | @total_issues_count = @object_result[:total_issues_count] | ||||
| @opened_issues_count = @object_result[:opened_issues_count] | @opened_issues_count = @object_result[:opened_issues_count] | ||||
| @closed_issues_count = @object_result[:closed_issues_count] | @closed_issues_count = @object_result[:closed_issues_count] | ||||
| @complete_issues_count = @object_result[:complete_issues_count] | |||||
| if params[:only_name].present? | if params[:only_name].present? | ||||
| @issues = kaminary_select_paginate( | @issues = kaminary_select_paginate( | ||||
| @object_result[:data].select(:id, :subject, :project_issues_index, :updated_on, :created_on)) | @object_result[:data].select(:id, :subject, :project_issues_index, :updated_on, :created_on)) | ||||
| @@ -20,11 +20,15 @@ class Api::Pm::SprintIssuesController < Api::Pm::BaseController | |||||
| @issues_hour_count = @issues.group(:pm_sprint_id).sum(:time_scale) | @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) | @issues_hour_type_count = @issues.group(:pm_sprint_id, :status_id).sum(:time_scale) | ||||
| pm_sprint_ids.map(&:to_i).map do |sprint_id| | 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] = { | data[sprint_id] = { | ||||
| count_total: @issues_count[sprint_id] || 0, | 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, | requirement: @issues_pm_type_count[[sprint_id, 1]] || 0, | ||||
| task: @issues_pm_type_count[[sprint_id, 2]] || 0, | task: @issues_pm_type_count[[sprint_id, 2]] || 0, | ||||
| bug: @issues_pm_type_count[[sprint_id, 3]] || 0 | bug: @issues_pm_type_count[[sprint_id, 3]] || 0 | ||||
| @@ -5,7 +5,7 @@ class Api::V1::Issues::ListService < ApplicationService | |||||
| attr_reader :begin_date, :end_date | attr_reader :begin_date, :end_date | ||||
| attr_reader :milestone_id, :assigner_id, :status_id, :sort_by, :sort_direction, :current_user | 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_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 :category, inclusion: { in: %w[all opened closed], message: '请输入正确的Category'} | ||||
| validates :participant_category, inclusion: { in: %w[all aboutme authoredme assignedme atme], message: '请输入正确的ParticipantCategory'} | validates :participant_category, inclusion: { in: %w[all aboutme authoredme assignedme atme], message: '请输入正确的ParticipantCategory'} | ||||
| @@ -41,7 +41,13 @@ class Api::V1::Issues::ListService < ApplicationService | |||||
| # begin | # begin | ||||
| issue_query_data | 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 | # rescue | ||||
| # raise Error, "服务器错误,请联系系统管理员!" | # raise Error, "服务器错误,请联系系统管理员!" | ||||
| # end | # end | ||||
| @@ -108,6 +114,7 @@ class Api::V1::Issues::ListService < ApplicationService | |||||
| @total_issues_count = issues.distinct.size | @total_issues_count = issues.distinct.size | ||||
| @closed_issues_count = issues.closed.distinct.size | @closed_issues_count = issues.closed.distinct.size | ||||
| @opened_issues_count = issues.opened.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 | case category | ||||
| when 'closed' | when 'closed' | ||||
| @@ -1,6 +1,7 @@ | |||||
| json.total_issues_count @total_issues_count | json.total_issues_count @total_issues_count | ||||
| json.opened_count @opened_issues_count | json.opened_count @opened_issues_count | ||||
| json.closed_count @closed_issues_count | json.closed_count @closed_issues_count | ||||
| json.complete_count @complete_issues_count | |||||
| json.total_count @issues.total_count | json.total_count @issues.total_count | ||||
| json.has_created_issues @project.present? ? @project.issues.size > 0 : 0 | json.has_created_issues @project.present? ? @project.issues.size > 0 : 0 | ||||
| json.issues @issues.each do |issue| | json.issues @issues.each do |issue| | ||||