|
@@ -19,6 +19,9 @@ using Cell = Aspose.Words.Tables.Cell;
|
|
|
using Row = Aspose.Words.Tables.Row;
|
|
|
using System.Runtime.Intrinsics.Arm;
|
|
|
using Microsoft.AspNetCore.Mvc.Filters;
|
|
|
+using OASystem.Domain.Entities.Customer;
|
|
|
+using NPOI.SS.Formula.Functions;
|
|
|
+using OASystem.Domain.Dtos.CRM;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -1861,12 +1864,12 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- List<Grp_DelegationEnData> grp_DelegationEns = await _sqlSugar.Queryable<Grp_DelegationEnData>().Where(a => a.IsDel == 0 && a.Area==dto.Area && a.Job==dto.Job).ToListAsync();
|
|
|
- if (grp_DelegationEns.Count == 0)
|
|
|
+ Result groupData = await _delegationEnDataRep.QueryDelegationEnData(dto);
|
|
|
+ if (groupData.Code != 0)
|
|
|
{
|
|
|
- return Ok(JsonView(true, "暂无数据!", grp_DelegationEns));
|
|
|
+ return Ok(JsonView(false, groupData.Msg));
|
|
|
}
|
|
|
- return Ok(JsonView(true, "查询成功!", grp_DelegationEns));
|
|
|
+ return Ok(JsonView(true, groupData.Msg, groupData.Data));
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -1899,6 +1902,30 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
+ /// 团组英文资料Id查询数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> QueryDelegationEnDataById(QueryDelegationEnDataByIdDto dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Grp_DelegationEnData _DelegationEnData=await _sqlSugar.Queryable<Grp_DelegationEnData>().FirstAsync(it => it.Id==dto.Id && it.IsDel==0);
|
|
|
+ if (_DelegationEnData != null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, "查询成功!", _DelegationEnData));
|
|
|
+ }
|
|
|
+ return Ok(JsonView(true, "暂无数据!",_DelegationEnData));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "程序错误!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
/// 团组英文资料删除
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
@@ -1923,5 +1950,183 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
+
|
|
|
+ #region 导出邀请函
|
|
|
+ /// <summary>
|
|
|
+ /// 导出邀请函页面初始化
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> QueryinvitationLetter(DecreasePaymentsListDto dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ List<Grp_DelegationInfo> grp_Delegations = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(a => a.IsDel==0).OrderBy(a=>a.Id,OrderByType.Desc).ToListAsync();
|
|
|
+ List<Crm_DeleClient> crm_Deles = new List<Crm_DeleClient>();
|
|
|
+ if (dto.DiId==0)
|
|
|
+ {
|
|
|
+ crm_Deles = await _sqlSugar.Queryable<Crm_DeleClient>().Where(a => a.DiId==grp_Delegations[0].Id && a.IsDel==0).ToListAsync();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ crm_Deles = await _sqlSugar.Queryable<Crm_DeleClient>().Where(a => a.DiId==dto.DiId && a.IsDel==0).ToListAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "查询成功!",new
|
|
|
+ {
|
|
|
+ deleClient = crm_Deles,
|
|
|
+ delegations= grp_Delegations
|
|
|
+ }));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "程序错误!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 导出邀请函
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> invitationLetter(DecreasePaymentsListDto dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Dictionary<string, string> transDic = new Dictionary<string, string>();
|
|
|
+ List<Crm_DeleClient> crm_DeleClients = await _sqlSugar.Queryable<Crm_DeleClient>().Where(a => a.DiId==dto.DiId && a.IsDel==0).ToListAsync();
|
|
|
+ List<string> texts = new List<string>();
|
|
|
+ if (crm_DeleClients.Count!=0)
|
|
|
+ {
|
|
|
+
|
|
|
+ foreach (Crm_DeleClient item in crm_DeleClients)
|
|
|
+ {
|
|
|
+
|
|
|
+ if (!string.IsNullOrWhiteSpace(item.Pinyin))
|
|
|
+ {
|
|
|
+ transDic.Add(item.LastName+item.FirstName, item.Pinyin);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string name = item.LastName + item.FirstName;
|
|
|
+ texts.Add(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(item.Job) && !texts.Contains(item.Job))
|
|
|
+ {
|
|
|
+ if (!transDic.ContainsKey(item.Job))
|
|
|
+ {
|
|
|
+ texts.Add(item.Job);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.CrmCompanyId!=0)
|
|
|
+ {
|
|
|
+ Crm_CustomerCompany crm_Customer = await _sqlSugar.Queryable<Crm_CustomerCompany>().FirstAsync(a => a.Id==item.CrmCompanyId && a.IsDel==0);
|
|
|
+ if (!transDic.ContainsKey(crm_Customer.CompanyName))
|
|
|
+ {
|
|
|
+ texts.Add(crm_Customer.CompanyName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TranslateResult> transData = _airTicketResRep.ReTransBatch(texts, "en");
|
|
|
+ if (transData.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (TranslateResult item in transData)
|
|
|
+ {
|
|
|
+ if (!transDic.ContainsKey(item.Query))
|
|
|
+ {
|
|
|
+
|
|
|
+ transDic.Add(item.Query, item.Translation);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<guestList> list = new List<guestList>();
|
|
|
+ foreach (Crm_DeleClient dele in crm_DeleClients)
|
|
|
+ {
|
|
|
+ guestList guestList = new guestList();
|
|
|
+
|
|
|
+ if (!string.IsNullOrWhiteSpace(dele.Pinyin))
|
|
|
+ {
|
|
|
+ guestList.Name = dele.Pinyin;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string Name = transDic.Where(s => s.Key == dele.LastName + dele.FirstName).FirstOrDefault().Value;
|
|
|
+ guestList.Name = Name;
|
|
|
+ }
|
|
|
+ if (dele.Sex ==0)
|
|
|
+ {
|
|
|
+ guestList.Sex = "Male";
|
|
|
+ }
|
|
|
+ else if (dele.Sex == 1)
|
|
|
+ {
|
|
|
+ guestList.Sex = "Female";
|
|
|
+ }
|
|
|
+ guestList.DOB = dele.BirthDay.Replace('-', '.');
|
|
|
+ Crm_CustomerCompany crm_Customer = await _sqlSugar.Queryable<Crm_CustomerCompany>().FirstAsync(a => a.Id==dele.CrmCompanyId && a.IsDel==0);
|
|
|
+ string jobName = transDic.Where(s => s.Key == crm_Customer.CompanyName).FirstOrDefault().Value + " "+transDic.Where(s => s.Key == dele.Job).FirstOrDefault().Value;
|
|
|
+
|
|
|
+ guestList.Job = jobName;
|
|
|
+ list.Add(guestList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //载入模板
|
|
|
+ Document doc = new Document(AppSettingsHelper.Get("WordBasePath") + "Template/邀请函模板0210.docx");
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+
|
|
|
+ //获取word里所有表格
|
|
|
+ NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);
|
|
|
+
|
|
|
+ //获取所填表格的序数
|
|
|
+ Aspose.Words.Tables.Table tableOne = allTables[0] as Aspose.Words.Tables.Table;
|
|
|
+
|
|
|
+ var rowStart = tableOne.Rows[0]; //获取第1行
|
|
|
+
|
|
|
+ //循环赋值
|
|
|
+ for (int i = 0; i < list.Count; i++)
|
|
|
+ {
|
|
|
+ builder.MoveToCell(0, i + 1, 0, 0);
|
|
|
+ builder.Write(list[i].Name.ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 1, 0);
|
|
|
+ builder.Write(list[i].Sex.ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 2, 0);
|
|
|
+ builder.Write(list[i].DOB.ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 3, 0);
|
|
|
+ builder.Write(list[i].Job.ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //删除多余行
|
|
|
+ while (tableOne.Rows.Count > list.Count + 1)
|
|
|
+ {
|
|
|
+ tableOne.Rows.RemoveAt(list.Count + 1);
|
|
|
+ }
|
|
|
+ var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
|
|
|
+ string fileName = "邀请函"+DateTime.Now.ToString("yyyy-MM-dd")+".docx";
|
|
|
+ string filePath = fileDir + $@"商邀相关文件/{fileName}";
|
|
|
+ doc.Save(filePath);
|
|
|
+ string Url= AppSettingsHelper.Get("WordBaseUrl") + "Office/GrpFile/商邀相关文件"+fileName;
|
|
|
+ return Ok(JsonView(true, "成功!", Url));
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "失败,该团组没有客户名单!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "程序错误!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|
|
|
}
|