新增:禅道数据导入任务脚本
This commit is contained in:
parent
7f6c6383bc
commit
4ca1e2e85a
|
@ -11,7 +11,7 @@ namespace :import_from_chandao do
|
|||
issue = Issue.new
|
||||
author = User.like(randd_field_hash['由谁创建']).take
|
||||
issue.author_id = author&.id
|
||||
assigner = User.like(randd_field_hash['指派给']).take
|
||||
assigner = randd_field_hash['指派给'].present? ? User.like(randd_field_hash['指派给']).take : nil
|
||||
if assigner.present?
|
||||
issue.assigners << assigner
|
||||
end
|
||||
|
@ -29,28 +29,77 @@ namespace :import_from_chandao do
|
|||
end
|
||||
end
|
||||
|
||||
# 执行示例 bundle exec rake "import_from_chandao:requirements[企业网站第二期.csv, 3]"
|
||||
# RAILS_ENV=production bundle exec rake "import_from_chandao:requirements[企业网站第二期.csv, 3]"
|
||||
task :requirements, [:name, :pm_project_id] => :environment do |t, args|
|
||||
# 执行示例 bundle exec rake "import_from_chandao:tasks[复杂智能软件项目-所有任务.csv, 365]"
|
||||
# RAILS_ENV=production bundle exec rake "import_from_chandao:tasks[复杂智能软件项目-所有任务.csv, 365]"
|
||||
task :tasks, [:name, :pm_project_id] => :environment do |t, args|
|
||||
def trans_status(str)
|
||||
h={
|
||||
"未开始" => 1,
|
||||
"进行中" => 2,
|
||||
"已完成" => 3,
|
||||
"已关闭" => 4
|
||||
}
|
||||
h[str]
|
||||
end
|
||||
|
||||
name = args.name
|
||||
CSV.foreach("#{Rails.root}/#{args.name}", headers: true) do | row |
|
||||
pm_project_id = args.pm_project_id
|
||||
CSV.foreach("#{Rails.root}/#{name}", headers: true) do | row |
|
||||
randd_field_hash = row.to_hash
|
||||
issue = Issue.new
|
||||
author = User.like(randd_field_hash['由谁创建']).take
|
||||
issue.author_id = author&.id
|
||||
assigner = User.like(randd_field_hash['指派给']).take
|
||||
assigner = randd_field_hash['指派给'].present? ? User.like(randd_field_hash['指派给']).take : nil
|
||||
if assigner.present?
|
||||
issue.assigners << assigner
|
||||
end
|
||||
issue.status_id = trans_status(randd_field_hash['任务状态'])
|
||||
issue.tracker_id = Tracker.first.id
|
||||
issue.priority_id = randd_field_hash['优先级'].to_i
|
||||
issue.subject = randd_field_hash['任务名称']
|
||||
issue.description = randd_field_hash['任务描述']
|
||||
issue.created_on = randd_field_hash['创建日期'].to_time
|
||||
issue.updated_on = randd_field_hash['最后修改日期'].to_time rescue randd_field_hash['创建日期'].to_time
|
||||
issue.time_scale = randd_field_hash['最初预计'].to_i
|
||||
issue.start_date = randd_field_hash['预计开始'].to_time rescue nil
|
||||
issue.due_date = randd_field_hash['截止日期'].to_time rescue nil
|
||||
issue.project_id = 0
|
||||
issue.pm_project_id = pm_project_id
|
||||
issue.pm_issue_type = 2
|
||||
issue.save!
|
||||
requirement_issue = Issue.find_by(project_issues_index: randd_field_hash['相关需求'].split('(#')[1].split(')')[0], pm_project_id: pm_project_id, pm_issue_type: 1) rescue nil
|
||||
if requirement_issue.present?
|
||||
requirement_issue.pm_links.find_or_create_by(be_linkable_type: 'Issue', be_linkable_id: issue.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# 执行示例 bundle exec rake "import_from_chandao:requirements[企业网站第二期.csv, 3]"
|
||||
# RAILS_ENV=production bundle exec rake "import_from_chandao:requirements[企业网站第二期.csv, 3]"
|
||||
task :requirements, [:name, :pm_project_id] => :environment do |t, args|
|
||||
name = args.name
|
||||
pm_project_id = args.pm_project_id
|
||||
CSV.foreach("#{Rails.root}/#{name}", headers: true) do | row |
|
||||
randd_field_hash = row.to_hash
|
||||
issue = Issue.new
|
||||
author = User.like(randd_field_hash['由谁创建']).take
|
||||
issue.author_id = author&.id
|
||||
assigner = randd_field_hash['指派给'].present? ? User.like(randd_field_hash['指派给']).take : nil
|
||||
if assigner.present?
|
||||
issue.assigners << assigner
|
||||
end
|
||||
issue.project_issues_index = randd_field_hash['编号'].to_i
|
||||
issue.status_id = IssueStatus.first.id
|
||||
issue.tracker_id = Tracker.first.id
|
||||
issue.priority_id = randd_field_hash['优先级'].to_i
|
||||
issue.subject = randd_field_hash['需求名称']
|
||||
issue.description = randd_field_hash['需求描述']
|
||||
issue.created_on = randd_field_hash['创建日期'].to_time
|
||||
issue.created_on = randd_field_hash['创建日期'].to_time
|
||||
issue.updated_on = randd_field_hash['最后修改日期'].to_time rescue randd_field_hash['创建日期'].to_time
|
||||
issue.time_scale = randd_field_hash['预计工时'].to_i
|
||||
issue.project_id = 0
|
||||
issue.pm_project_id = args.pm_project_id
|
||||
issue.pm_project_id = pm_project_id
|
||||
issue.pm_issue_type = 1
|
||||
issue.save!
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue