develop
parent
da3814d35f
commit
3861954fd8
|
|
@ -22,7 +22,9 @@ using Microsoft.AspNetCore.Server.IIS.Core;
|
|||
using New_College.Common.WebApiClients.HttpApis;
|
||||
using NPOI.SS.UserModel;
|
||||
using System.IO;
|
||||
using ClosedXML.Excel;
|
||||
using MiniExcelLibs;
|
||||
using OSS.Common.Extension;
|
||||
using System.Security.Cryptography;
|
||||
namespace New_College.Api.Controllers.Front
|
||||
{
|
||||
|
||||
|
|
@ -171,7 +173,7 @@ namespace New_College.Api.Controllers.Front
|
|||
MajorCode = c.MajorCode,
|
||||
// MajorGroup = c.MajorGroup,
|
||||
MajorRemark = c.Remark,
|
||||
planCount = int.Parse(c._23Count),
|
||||
planCount = c._plancount,
|
||||
PlanId = c.ID,
|
||||
AcademicYear = c.AcademicYear,
|
||||
Sort = s.OrderSort,
|
||||
|
|
@ -216,136 +218,85 @@ namespace New_College.Api.Controllers.Front
|
|||
|
||||
|
||||
[HttpPost("Export")]
|
||||
public async Task<IActionResult> Export([FromBody] int id = 0)
|
||||
public async Task<IActionResult> Export([FromBody] MinExcelAttrDto dto)
|
||||
{
|
||||
|
||||
if (id <= 0)
|
||||
if (dto.id <= 0)
|
||||
{
|
||||
throw new Exception("id为空");
|
||||
}
|
||||
//var view = new VolunteerTableDetailDtoView();
|
||||
//var query = await _VolunteerTableServices.QueryById(id);
|
||||
//var items = await _VolunteerTableDetailServices.Query(c => c.VolunteerTableId == id);
|
||||
//var PlanMajorIds = new List<int>();
|
||||
//foreach (var item in items)
|
||||
//{
|
||||
// var ids = item.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(c => int.Parse(c)).ToList();
|
||||
// PlanMajorIds.AddRange(ids);
|
||||
//}
|
||||
//var planmajordesc = await _TbSNeedDataInfoServices.Query(c => SqlFunc.ContainsArray(PlanMajorIds, c.ID));//
|
||||
//var location = planmajordesc.FirstOrDefault().Location;
|
||||
//var majorlist = planmajordesc.Select(c => c.MajorName).ToList();
|
||||
//var universityname = planmajordesc.Select(c => c.UniversityName).Distinct().ToList();
|
||||
//var planmajorcomplist = await _TbSNeedDataInfoServices.Query(c => c.Location == location && SqlFunc.ContainsArray(majorlist, c.MajorName) && SqlFunc.ContainsArray(universityname, c.UniversityName));//
|
||||
|
||||
//view.VolunteerTableName = query.VolunteerTableName;
|
||||
//view.SubjectClaim = query.SubjectClaim.Length > 2 ? "综合" : query.SubjectClaim;
|
||||
//view.CustomerId = query.CustomerId;
|
||||
//view.Score = query.Score;
|
||||
//view.Type = query.Type;
|
||||
//view.BatchName = query.BatchName;
|
||||
//view.CreateTime = query.CreateTime;
|
||||
//view.ModifyTime = query.ModifyTime;
|
||||
//var tableDetailItemsViews = new List<VolunteerTableDetailItemsView>();
|
||||
|
||||
//items.ForEach(s =>
|
||||
//{
|
||||
// var planids = s.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(ss => long.Parse(ss)).ToList();
|
||||
// var typeinfo = new List<VolteerItem>();
|
||||
// if (!string.IsNullOrWhiteSpace(s.VolunteerRemark))
|
||||
// {
|
||||
// typeinfo = s.VolunteerRemark.FromJson<List<VolteerItem>>();
|
||||
// }
|
||||
// var planstatus = planmajordesc.Any(e => e.UniversityName == s.UniversityName);
|
||||
// var firstmodels = planmajordesc.Where(e => e.UniversityName == s.UniversityName).FirstOrDefault();
|
||||
// var uitem = new VolunteerTableDetailItemsView()
|
||||
// {
|
||||
|
||||
// UniversityName = s.UniversityName,
|
||||
// UniversityCode = s.UniversityCode,
|
||||
// Sort = s.OrderSort,
|
||||
// UniversityId = s.UniversityId,
|
||||
// _211 = planstatus ? firstmodels.LnstitutionalLevel != null ? firstmodels.LnstitutionalLevel.Contains("211") ? "是" : "否" : "否" : "否",
|
||||
// _985 = planstatus ? firstmodels.LnstitutionalLevel != null ? firstmodels.LnstitutionalLevel.Contains("985") ? "是" : "否" : "否" : "否",
|
||||
// _SYL = planstatus ? firstmodels.LnstitutionalLevel != null ? firstmodels.LnstitutionalLevel.Contains("双一流") ? "是" : "否" : "否" : "否",
|
||||
// Ownership = planstatus ? firstmodels.Ownership != null ? firstmodels.Ownership.Contains("省") ? "省属" : firstmodels.Ownership.Contains("市") ? "市属" : firstmodels.Ownership : "" : "",
|
||||
|
||||
// AreaName = planstatus ? firstmodels.Province != null ? firstmodels.Province + "|" + (planstatus ? firstmodels.City : "") : "" : "",
|
||||
// Nature = planstatus ? firstmodels.Nature != null ? firstmodels.Nature : "" : "",
|
||||
// Rank = planstatus ? ((string.IsNullOrEmpty(firstmodels.UniversityRank) || firstmodels.UniversityRank == "0") ? "--" : firstmodels.UniversityRank) : "--",
|
||||
// planMajorItems = planmajordesc.Where(ww => planids.Contains(ww.ID)).Select(c => new VolunteerTablePlanMajorItem()
|
||||
// {
|
||||
|
||||
// fee = string.IsNullOrEmpty(c.Fee) ? "--" : c.Fee,
|
||||
// Major = c.MajorName,
|
||||
// MajorCode = c.MajorCode,
|
||||
// // MajorGroup = c.MajorGroup,
|
||||
// MajorRemark = c.Remark,
|
||||
// planCount = int.Parse(c._23Count),
|
||||
// PlanId = c.ID,
|
||||
// AcademicYear = c.AcademicYear,
|
||||
// Sort = s.OrderSort,
|
||||
// SubjectClam = c._23subject,
|
||||
// Percentage = typeinfo.Any() && typeinfo.Count() > 0 ? typeinfo.FirstOrDefault(d => d.planId == c.ID).tage : 0,
|
||||
// Type = typeinfo.Any() && typeinfo.Count() > 0 ? typeinfo.FirstOrDefault(d => d.planId == c.ID).type : 0,
|
||||
// PlanItems = new List<PlanItem>()
|
||||
// {
|
||||
// new PlanItem() {
|
||||
// PlanCount=c._23Count=="0"?"--":c._23Count,
|
||||
// RankLine=c._23ScoreLine=="0"?"--":c._23ScoreLine,
|
||||
// Scoreline=c._23Score == "0" ? "--" : c._23Score,
|
||||
// Year="2023"
|
||||
// },
|
||||
// new PlanItem() {
|
||||
// PlanCount=c._22Count=="0"?"--":c._22Count,
|
||||
// RankLine=c._22ScoreLine=="0"?"--":c._22ScoreLine,
|
||||
// Scoreline=c._22Score == "0" ? "--" : c._22Score,
|
||||
// Year="2022"
|
||||
// },
|
||||
// new PlanItem() {
|
||||
// PlanCount=c._21Count=="0"?"--":c._21Count,
|
||||
// RankLine=c._21ScoreLine=="0"?"--":c._21ScoreLine,
|
||||
// Scoreline=c._21Score == "0" ? "--" : c._21Score,
|
||||
// Year="2021"
|
||||
// } }
|
||||
// }).ToList()
|
||||
// };
|
||||
|
||||
// tableDetailItemsViews.Add(uitem);
|
||||
//});
|
||||
|
||||
// view.tableDetailItemsViews = tableDetailItemsViews;
|
||||
|
||||
using (var workbook = new XLWorkbook())
|
||||
var view = new VolunteerExcelAttrModel();
|
||||
var query = await _VolunteerTableServices.QueryById(dto.id);
|
||||
var items = await _VolunteerTableDetailServices.Query(c => c.VolunteerTableId == dto.id);
|
||||
var PlanMajorIds = new List<int>();
|
||||
foreach (var item in items)
|
||||
{
|
||||
var worksheet = workbook.Worksheets.Add("Sheet1");
|
||||
worksheet.Cell(1, 1).Value = "Column1";
|
||||
worksheet.Cell(1, 2).Value = "Column2";
|
||||
// 假设 YourDataModel 有两个属性 Property1 和 Property2
|
||||
int row = 2;
|
||||
//foreach (var item in data)
|
||||
//{
|
||||
// worksheet.Cell(row, 1).Value = item.Property1;
|
||||
// worksheet.Cell(row, 2).Value = item.Property2;
|
||||
// row++;
|
||||
//}
|
||||
for (int k = 0; k < 5; k++)
|
||||
var ids = item.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(c => int.Parse(c)).ToList();
|
||||
PlanMajorIds.AddRange(ids);
|
||||
}
|
||||
var planmajordesc = await _TbSNeedDataInfoServices.Query(c => SqlFunc.ContainsArray(PlanMajorIds, c.ID));//
|
||||
var location = planmajordesc.FirstOrDefault().Location;
|
||||
var majorlist = planmajordesc.Select(c => c.MajorName).ToList();
|
||||
var universityname = planmajordesc.Select(c => c.UniversityName).Distinct().ToList();
|
||||
var planmajorcomplist = await _TbSNeedDataInfoServices.Query(c => c.Location == location && SqlFunc.ContainsArray(majorlist, c.MajorName) && SqlFunc.ContainsArray(universityname, c.UniversityName));//
|
||||
view.VolunteerTableName = query.VolunteerTableName;
|
||||
view.SubjectClaim = query.SubjectClaim;
|
||||
view.Score = query.Score;
|
||||
view.Type = query.Type;
|
||||
var tableDetailItemsViews = new List<VolunteerItemsViewMinExcelAttr>();
|
||||
items.ForEach(s =>
|
||||
{
|
||||
worksheet.Cell(row, 1).Value = k;
|
||||
worksheet.Cell(row, 2).Value = k;
|
||||
row++;
|
||||
}
|
||||
|
||||
using (var stream = new MemoryStream())
|
||||
var planids = s.PlanMajorIds.Split(",", StringSplitOptions.RemoveEmptyEntries).Select(ss => long.Parse(ss)).ToList();
|
||||
var typeinfo = new List<VolteerItem>();
|
||||
if (!string.IsNullOrWhiteSpace(s.VolunteerRemark))
|
||||
{
|
||||
workbook.SaveAs(stream);
|
||||
stream.Position = 0;
|
||||
|
||||
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "export.xlsx");
|
||||
typeinfo = s.VolunteerRemark.FromJson<List<VolteerItem>>();
|
||||
}
|
||||
var planstatus = planmajordesc.Any(e => e.UniversityName == s.UniversityName);
|
||||
var firstmodels = planmajordesc.Where(e => e.UniversityName == s.UniversityName).FirstOrDefault();
|
||||
planmajordesc.Where(ww => planids.Contains(ww.ID)).ToList().ForEach(a =>
|
||||
{
|
||||
tableDetailItemsViews.Add(new VolunteerItemsViewMinExcelAttr()
|
||||
{
|
||||
UniversityName = s.UniversityName,
|
||||
UniversityCode = s.UniversityCode,
|
||||
AreaName = planstatus ? firstmodels.Province != null ? firstmodels.Province + "|" + (planstatus ? firstmodels.City : "") : "" : "",
|
||||
Nature = planstatus ? firstmodels.Nature != null ? firstmodels.Nature : "" : "",
|
||||
fee = string.IsNullOrEmpty(a.Fee) ? "--" : a.Fee,
|
||||
Major = a.MajorName,
|
||||
MajorCode = a.MajorCode,
|
||||
// MajorGroup = c.MajorGroup,
|
||||
// MajorRemark = a.Remark,
|
||||
planCount = a._plancount,
|
||||
AcademicYear = a.AcademicYear,
|
||||
Sort = s.OrderSort,
|
||||
MajorSubjectClam = a._23subject,
|
||||
_23PlanCount = a._23Count == "0" ? "--" : a._23Count,
|
||||
_22PlanCount = a._22Count == "0" ? "--" : a._22Count,
|
||||
_21PlanCount = a._21Count == "0" ? "--" : a._21Count,
|
||||
_21RankLine = a._21ScoreLine == "0" ? "--" : a._21ScoreLine,
|
||||
_21Scoreline = a._21Score == "0" ? "--" : a._21Score,
|
||||
_22RankLine = a._22ScoreLine == "0" ? "--" : a._22ScoreLine,
|
||||
_22Scoreline = a._22Score == "0" ? "--" : a._22Score,
|
||||
_23RankLine = a._23ScoreLine == "0" ? "--" : a._23ScoreLine,
|
||||
_23Scoreline = a._23Score == "0" ? "--" : a._23Score,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
// view.viewMinExcelAttrs = tableDetailItemsViews;
|
||||
//在内存中当开辟空间
|
||||
var memoryStream = new MemoryStream();
|
||||
//将数据写到内存当中
|
||||
memoryStream.SaveAs(tableDetailItemsViews, true, string.Format("模拟志愿表:_{0}_选科:{1}|_分数:{2}|_类型_{3}", view.VolunteerTableName, view.SubjectClaim, view.Score, view.Type));
|
||||
//从0的位置开始写入
|
||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
//返回文件流 //格式是Excel格式
|
||||
return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
||||
{
|
||||
FileDownloadName = string.Format("{0}.xlsx", DateTime.Now.ToString("yyyyMMddhhssfff_"))
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -51,13 +51,13 @@
|
|||
|
||||
<ItemGroup>
|
||||
|
||||
<PackageReference Include="ClosedXML" Version="0.102.2" />
|
||||
|
||||
<PackageReference Include="LinqKit" Version="1.1.17" />
|
||||
|
||||
<PackageReference Include="Microsoft.Graph.Core" Version="1.23.0" />
|
||||
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
|
||||
|
||||
<PackageReference Include="MiniExcel" Version="1.32.1" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.IO.Compression" Version="4.3.0" />
|
||||
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />
|
||||
|
|
|
|||
|
|
@ -64,6 +64,13 @@ namespace New_College.Model.Models
|
|||
/// </summary>
|
||||
[SugarColumn(ColumnName = "_24subject")]
|
||||
public string _24subject { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 最新招生人数
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "_plancount")]
|
||||
public int _plancount { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MiniExcel" Version="1.32.1" />
|
||||
<PackageReference Include="sqlSugarCore" Version="5.1.0" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
</ItemGroup>
|
||||
|
|
|
|||
|
|
@ -155,7 +155,6 @@ namespace New_College.Model.ViewModels
|
|||
|
||||
public string collegeCode { get; set; }
|
||||
|
||||
public int Rank { get; set; }
|
||||
/// <summary>
|
||||
/// 官网
|
||||
/// </summary>
|
||||
|
|
@ -239,8 +238,7 @@ namespace New_College.Model.ViewModels
|
|||
|
||||
|
||||
public string VrUrl { get; set; }
|
||||
|
||||
|
||||
public int Rank { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using New_College.Model.Models;
|
||||
using MiniExcelLibs.Attributes;
|
||||
using New_College.Model.Models;
|
||||
using SqlSugar;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
|
@ -106,12 +107,168 @@ namespace New_College.Model.ViewModels
|
|||
/// 公办|民办
|
||||
/// </summary>
|
||||
public string Nature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public List<VolunteerTablePlanMajorItem> planMajorItems { get; set; }
|
||||
}
|
||||
|
||||
public class MinExcelAttrDto
|
||||
{
|
||||
|
||||
public int id { get; set; }
|
||||
}
|
||||
|
||||
public class VolunteerItemsViewMinExcelAttr
|
||||
{
|
||||
[ExcelColumnName("排序")]
|
||||
public int Sort { get; set; }
|
||||
/// <summary>
|
||||
/// 院校名称
|
||||
/// </summary>
|
||||
[ExcelColumnName("院校名称")]
|
||||
public string UniversityName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 院校编码
|
||||
/// </summary>
|
||||
[ExcelColumnName("院校编码")]
|
||||
public string UniversityCode { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 学校所在地区
|
||||
/// </summary>
|
||||
[ExcelColumnName("学校所在地区")]
|
||||
public string AreaName { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 公办|民办
|
||||
/// </summary>
|
||||
[ExcelColumnName("学校类型")]
|
||||
public string Nature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 专业代码
|
||||
/// </summary>
|
||||
///
|
||||
[ExcelColumnName("专业代码")]
|
||||
public string MajorCode { get; set; }
|
||||
/// <summary>
|
||||
/// 专业组
|
||||
/// </summary>
|
||||
[ExcelColumnName("专业组")]
|
||||
public string MajorGroup { get; set; }
|
||||
/// <summary>
|
||||
/// 专业名称
|
||||
/// </summary>
|
||||
[ExcelColumnName("专业名称")]
|
||||
public string Major { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 专业备注
|
||||
///// </summary>
|
||||
//[ExcelColumnName("专业备注")]
|
||||
//public string MajorRemark { get; set; }
|
||||
|
||||
[ExcelColumnName("学制")]
|
||||
public string AcademicYear { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 专业选科
|
||||
/// </summary>
|
||||
[ExcelColumnName("专业选科")]
|
||||
public string MajorSubjectClam { get; set; }
|
||||
/// <summary>
|
||||
/// 计划数
|
||||
/// </summary>
|
||||
[ExcelColumnName("计划数量")]
|
||||
public int planCount { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 学费
|
||||
/// </summary>
|
||||
[ExcelColumnName("学费")]
|
||||
public string fee { get; set; }
|
||||
//public List<VolunteerTablePlanMajorItem> planMajorItems { get; set; }
|
||||
|
||||
[ExcelColumnName("23计划")]
|
||||
public string _23PlanCount { get; set; }
|
||||
/// <summary>
|
||||
/// 位次
|
||||
/// </summary>
|
||||
[ExcelColumnName("23最低位次")]
|
||||
public string _23RankLine { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 最低分
|
||||
///// </summary>
|
||||
[ExcelColumnName("23最低分")]
|
||||
public string _23Scoreline { get; set; }
|
||||
|
||||
[ExcelColumnName("22计划")]
|
||||
public string _22PlanCount { get; set; }
|
||||
/// <summary>
|
||||
/// 位次
|
||||
/// </summary>
|
||||
[ExcelColumnName("22最低位次")]
|
||||
public string _22RankLine { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 最低分
|
||||
///// </summary>
|
||||
[ExcelColumnName("22最低分")]
|
||||
public string _22Scoreline { get; set; }
|
||||
|
||||
[ExcelColumnName("21计划")]
|
||||
public string _21PlanCount { get; set; }
|
||||
/// <summary>
|
||||
/// 位次
|
||||
/// </summary>
|
||||
[ExcelColumnName("21最低位次")]
|
||||
public string _21RankLine { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 最低分
|
||||
///// </summary>
|
||||
[ExcelColumnName("21最低分")]
|
||||
public string _21Scoreline { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class VolunteerExcelAttrModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 志愿表名称
|
||||
/// </summary>
|
||||
///
|
||||
[ExcelColumnName("志愿表名称")]
|
||||
public string VolunteerTableName { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 志愿填报类型(智能填报|一键填报)
|
||||
/// </summary>
|
||||
[ExcelColumnName("填报类型")]
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选科科目
|
||||
/// </summary>
|
||||
[ExcelColumnName("选科科目")]
|
||||
public string SubjectClaim { get; set; }
|
||||
|
||||
[ExcelColumnName("分数")]
|
||||
public float Score { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class VolunteerTablePlanMajorItem
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue