|  | @@ -1,8 +1,12 @@
 | 
	
		
			
				|  |  |  using Aspose.Cells;
 | 
	
		
			
				|  |  |  using Aspose.Words;
 | 
	
		
			
				|  |  | +using Aspose.Words.Drawing;
 | 
	
		
			
				|  |  |  using EyeSoft.Extensions;
 | 
	
		
			
				|  |  | +using EyeSoft.Runtime.InteropServices;
 | 
	
		
			
				|  |  |  using FluentValidation;
 | 
	
		
			
				|  |  |  using Microsoft.EntityFrameworkCore.Query.Internal;
 | 
	
		
			
				|  |  | +using NPOI.HPSF;
 | 
	
		
			
				|  |  | +using NPOI.SS.Formula.PTG;
 | 
	
		
			
				|  |  |  using OASystem.API.OAMethodLib;
 | 
	
		
			
				|  |  |  using OASystem.API.OAMethodLib.File;
 | 
	
		
			
				|  |  |  using OASystem.API.OAMethodLib.QiYeWeChatAPI.AppNotice;
 | 
	
	
		
			
				|  | @@ -4623,7 +4627,7 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |                  foreach (var airArr in groupByid)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      var groupAirCount = 0; //团组航段数量
 | 
	
		
			
				|  |  | -                    var infos = new ArrayList();
 | 
	
		
			
				|  |  | +                    var infos = new List<string>();
 | 
	
		
			
				|  |  |                      foreach (var air in airArr)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          var airCount = 0; // 单条航段数量
 | 
	
	
		
			
				|  | @@ -4759,7 +4763,7 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  foreach (var group in groupByid)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    var infos = new ArrayList();
 | 
	
		
			
				|  |  | +                    var infos = new List<string>();
 | 
	
		
			
				|  |  |                      var totalPrice = 0.00M;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      foreach (var item in group)
 | 
	
	
		
			
				|  | @@ -4816,11 +4820,15 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  |                      var price = LvArr.Find(x => x.Id == groupinfo.OpRoyaltyLv)?.Name.ObjToInt() ?? 0;
 | 
	
		
			
				|  |  |                      string temp = $"本团等级为{teamLv.Find(x => x.Id == groupinfo.TeamLevSId)?.Name} 提成金额为{price} {(string.IsNullOrWhiteSpace(groupinfo.OpRoyaltyRemark) ? "" : "提成说明:" + groupinfo.OpRoyaltyRemark )}";
 | 
	
		
			
				|  |  | +                    if (price == 0)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        temp = $"本团等级为{teamLv.Find(x => x.Id == groupinfo.TeamLevSId)?.Name} op提成选项未选择!" ;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                      resultArr.Add(new ComputeRoyaltiesView
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          TeamName = groupinfo.TeamName,
 | 
	
		
			
				|  |  |                          Id = groupinfo.Id,
 | 
	
		
			
				|  |  | -                        chiArr = new ArrayList (){ temp },
 | 
	
		
			
				|  |  | +                        chiArr = new List<string>() { temp },
 | 
	
		
			
				|  |  |                          teamLvStr = teamLv.Find(x => x.Id == groupinfo.TeamLevSId)?.Name,
 | 
	
		
			
				|  |  |                          VisitDate = groupinfo.VisitDate,
 | 
	
		
			
				|  |  |                          temp = temp,
 | 
	
	
		
			
				|  | @@ -4876,7 +4884,7 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |                      bool isBasics = operUserMax == userId;
 | 
	
		
			
				|  |  |                      var money = 0;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    var infos = new ArrayList();
 | 
	
		
			
				|  |  | +                    var infos = new List<string>();
 | 
	
		
			
				|  |  |                      foreach (var item in group)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          if (item.CreateUserId != user.Id)
 | 
	
	
		
			
				|  | @@ -4961,7 +4969,7 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |                      var groupinfo = listVisa.First(x => x.Id == visaArr.Key);
 | 
	
		
			
				|  |  |                      var singlePrice = existsCountry.Where(x => groupinfo.VisitCountry.Contains(x)).Count() > 0 ? 50 : 30;
 | 
	
		
			
				|  |  |                      int count = 0, money = 0;
 | 
	
		
			
				|  |  | -                    var arr = new ArrayList();
 | 
	
		
			
				|  |  | +                    var arr = new List<string>();
 | 
	
		
			
				|  |  |                      foreach (var visa in visaArr)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          if (visa.VisaPrice > 0)
 | 
	
	
		
			
				|  | @@ -5044,23 +5052,65 @@ Group by PriceType ", dto.diId);
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  var apiArr = (parseApiResult.Data?.GetType().GetProperty("resultArr")?.GetValue(parseApiResult.Data)) as List<ComputeRoyaltiesView>;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                var user = _sqlSugar.Queryable<Sys_Users>().First(x => x.Id == dto.UserId);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  if (apiArr != null && apiArr.Count > 0)
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | +                    Dictionary<string, string> dic = new Dictionary<string, string>();
 | 
	
		
			
				|  |  | +                    //dic.Add("Name", "人员:" + user.CnName);
 | 
	
		
			
				|  |  | +                    dic.Add("startTime", dto.StartDate);
 | 
	
		
			
				|  |  | +                    dic.Add("endTime", dto.EndDate);
 | 
	
		
			
				|  |  | +                    dic.Add("operName", user.CnName);
 | 
	
		
			
				|  |  | +                    dic.Add("timeNow", DateTime.Now.ToString("yyyy年MM月dd日"));
 | 
	
		
			
				|  |  | +                    //dic.Add("DowntimeNow", DateTime.Now.ToString("yyyy年MM月dd日"));
 | 
	
		
			
				|  |  | +                    dic.Add("totalPrice",( "总金额:" +  parseApiResult.Data?.GetType().GetProperty("totalPrice")?.GetValue(parseApiResult.Data).ObjToDecimal().ToString() ?? "0") +" 元");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    ArrayList ToTableArr = new ArrayList();
 | 
	
		
			
				|  |  | +                    int No = 1;
 | 
	
		
			
				|  |  |                      //打开excel模板
 | 
	
		
			
				|  |  |                      foreach (var item in apiArr)
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  |                          //载入数据
 | 
	
		
			
				|  |  | +                        ToTableArr.Add(new
 | 
	
		
			
				|  |  | +                        {
 | 
	
		
			
				|  |  | +                            No,
 | 
	
		
			
				|  |  | +                            item.TeamName,
 | 
	
		
			
				|  |  | +                            item.VisitDate,
 | 
	
		
			
				|  |  | +                            item.teamLvStr,
 | 
	
		
			
				|  |  | +                            item.temp,
 | 
	
		
			
				|  |  | +                            infos =  string.Join("\r\n",item.chiArr),
 | 
	
		
			
				|  |  | +                            price = item.price + "元",
 | 
	
		
			
				|  |  | +                        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        No++;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    DataTable TbData =CommonFun.ToDataTableArray(ToTableArr);
 | 
	
		
			
				|  |  | +                    TbData.TableName = "TbData";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    WorkbookDesigner designer = new WorkbookDesigner();
 | 
	
		
			
				|  |  | +                    designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/提成结算template.xlsx");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    foreach (var key in dic.Keys)
 | 
	
		
			
				|  |  | +                    {
 | 
	
		
			
				|  |  | +                        designer.SetDataSource(key, dic[key]);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +                    //数据源 
 | 
	
		
			
				|  |  | +                    designer.SetDataSource(TbData);
 | 
	
		
			
				|  |  | +                    designer.Process();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                    designer.Workbook.Save(AppSettingsHelper.Get("ExcelBasePath") + "RoyaltyExcel/" + user.CnName + "_提成结算.xlsx" );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                      jw = JsonView(true, "success!", new
 | 
	
		
			
				|  |  |                      {
 | 
	
		
			
				|  |  | -                        Url = "",
 | 
	
		
			
				|  |  | +                        Url = AppSettingsHelper.Get("ExcelBaseUrl") + AppSettingsHelper.Get("ExcelFtpPath")+ "RoyaltyExcel/" + user.CnName + "_提成结算.xlsx",
 | 
	
		
			
				|  |  |                      });
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              else
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                jw.Msg = "获取提成信息error";
 | 
	
		
			
				|  |  | +                jw.Msg = "获取提成信息error " + jw.Msg;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              return Ok(jw);
 |