From 845574f9e0bdae7fa549604fa1de9aace32c137e Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 15 Jul 2025 16:50:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E7=87=83=E5=B0=BD?= =?UTF-8?q?=E5=9B=BE=E6=95=B0=E6=8D=AE=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/pm/sprint_issues_controller.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/pm/sprint_issues_controller.rb b/app/controllers/api/pm/sprint_issues_controller.rb index 963d367d2..3c089c8ae 100644 --- a/app/controllers/api/pm/sprint_issues_controller.rb +++ b/app/controllers/api/pm/sprint_issues_controller.rb @@ -11,23 +11,18 @@ class Api::Pm::SprintIssuesController < Api::Pm::BaseController def burndown_charts return tip_exception '参数错误' if params[:pm_sprint_id].blank? || params[:start_time].blank? || params[:end_time].blank? @issues = Issue.where(pm_sprint_id: params[:pm_sprint_id]) - first_issue = @issues.order(created_on: :asc).first start_time = Date.parse params[:start_time] end_time = Date.parse params[:end_time] time_count = (end_time - start_time).to_i + 1 # 计算间隔时间 加上最后一天 data = [] curren_issues = @issues.group(:pm_issue_type, :status_id, :due_date).count total_count = @issues.count + cardinality = (total_count.zero? || time_count.zero?) ? 0 : total_count.to_f / time_count.to_f # cardinality = BigDecimal.new(total_count) / BigDecimal.new(time_count) - flag = false time_count.times do |x| e_time = start_time + x - if flag == false && first_issue.created_on.to_date == e_time - flag = true - end completed = curren_issues[[1, 2, e_time]].to_i + curren_issues[[1, 7, e_time]].to_i + curren_issues[[1, 8, e_time]].to_i + curren_issues[[2, 3, e_time]].to_i + curren_issues[[2, 5, e_time]].to_i + curren_issues[[2, 6, e_time]].to_i + curren_issues[[3, 3, e_time]].to_i + curren_issues[[3, 5, e_time]].to_i + curren_issues[[3, 6, e_time]].to_i - total_count = flag ? total_count - completed : 0 - cardinality = (total_count.zero? || time_count.zero?) ? 0 : total_count.to_f / time_count.to_f + total_count = total_count - completed data << { time: e_time, undone: total_count, completed: completed, base_number: (cardinality * (time_count - x - 1)).to_f.round(2) } end render_ok(data: data)