|
@@ -45,6 +45,8 @@ using StackExchange.Redis;
|
|
|
using Org.BouncyCastle.Utilities;
|
|
|
using Aspose.Words.Drawing;
|
|
|
using Aspose.Cells.Charts;
|
|
|
+using static NPOI.HSSF.Util.HSSFColor;
|
|
|
+using Quartz.Util;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -4067,6 +4069,11 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 导出团组成本
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
[HttpPost]
|
|
|
public async Task<IActionResult> ExportGroupCostExcelFile(GroupCostExportExcelFile dto)
|
|
|
{
|
|
@@ -5037,6 +5044,138 @@ namespace OASystem.API.Controllers
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 导出客户报表
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> ExportClientWordFile(ExportClientWordFileDto dto)
|
|
|
+ {
|
|
|
+ var jw = JsonView(false);
|
|
|
+
|
|
|
+ if (dto.Diid == 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请传递团组id"));
|
|
|
+ }
|
|
|
+
|
|
|
+ var deleInfo = await _groupRepository.PostGroupInfo(new GroupInfoDto { Id = dto.Diid, PortType = 1 });
|
|
|
+ if (deleInfo.Code != 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "团组信息查询失败!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ var di = deleInfo.Data as DelegationInfoWebView;
|
|
|
+ if (di == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "团组信息查询失败!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //文件名
|
|
|
+ //string strFileName = di.TeamName + "-团组-客户报价.doc";
|
|
|
+ //获取模板
|
|
|
+ string tmppath = (AppSettingsHelper.Get("WordBasePath") + "Template/团组-客户报价.doc");
|
|
|
+ //载入模板
|
|
|
+ Document doc = new Document(tmppath);
|
|
|
+ Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
|
|
|
+
|
|
|
+ Dictionary<string, string> DickeyValue = new Dictionary<string, string>();
|
|
|
+
|
|
|
+ DickeyValue.Add("DickeyValue", di.TeamName); //团组名
|
|
|
+
|
|
|
+ var ParameterList = _GroupCostParameterRepository.GetGroupCostParameterListByDiid(dto.Diid);
|
|
|
+
|
|
|
+ var AParameter = ParameterList.Find(x => x.CostType == "A");
|
|
|
+ var BParameter = ParameterList.Find(x => x.CostType == "B");
|
|
|
+
|
|
|
+ if (AParameter == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "系数不存在!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ string CarGuides, TzNumber, CarGuides1, Meal, SubsidizedMeals, NightRepair, AttractionsTickets, MiscellaneousFees, ATip, TzHotelDesc, Offcial, PettyCash, Visa, TrainTicket, TicketPrice
|
|
|
+ , TzAirDesc, TzZCost;
|
|
|
+ CarGuides = TzNumber = CarGuides1 = Meal = SubsidizedMeals = NightRepair = AttractionsTickets = MiscellaneousFees = ATip = TzHotelDesc = Offcial = PettyCash = Visa = TrainTicket = TicketPrice
|
|
|
+ = TzAirDesc = TzZCost = string.Empty;
|
|
|
+
|
|
|
+ TzNumber = AParameter.CostTypenumber.ToString();
|
|
|
+ CarGuides = "RMB " + (AParameter.DJCB * AParameter.DJXS).ToString("#0.00");
|
|
|
+ CarGuides1 = dto.CarGuides1;
|
|
|
+ Meal = dto.Meal;
|
|
|
+ SubsidizedMeals = dto.SubsidizedMeals;
|
|
|
+ NightRepair = dto.NightRepair;
|
|
|
+ AttractionsTickets = dto.AttractionsTickets;
|
|
|
+ MiscellaneousFees = dto.MiscellaneousFees;
|
|
|
+ ATip = dto.ATip;
|
|
|
+ TzHotelDesc = "";
|
|
|
+ Offcial = "RMB " + (AParameter.GWCB * AParameter.GWXS).ToString("#0.00");
|
|
|
+ PettyCash = "RMB " + (AParameter.LYJCB * AParameter.LYJXS ).ToString("#0.00");
|
|
|
+ Visa = "RMB " + (AParameter.VisaCB * AParameter.VisaXS + AParameter.HSCB * AParameter.HSXS + AParameter.BXCB * AParameter.BXXS).ToString("#0.00");
|
|
|
+ TrainTicket = "RMB " + (AParameter.HCPCB * AParameter.HCPXS).ToString("#0.00");
|
|
|
+ TicketPrice = "RMB " + (AParameter.CPCB * AParameter.CPXS).ToString("#0.00");
|
|
|
+ TzAirDesc = "";
|
|
|
+ TzZCost = dto.TzZCost;
|
|
|
+
|
|
|
+
|
|
|
+ if (dto.costType == "B")
|
|
|
+ {
|
|
|
+ if (BParameter == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "B段系数不存在!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ CarGuides = CarGuides.Insert(0,"A段 ") + " B段 RMB" + (BParameter.DJCB * BParameter.DJXS ).ToString("#0.00");
|
|
|
+ Offcial = Offcial.Insert(0, "A段 ") + " B段 RMB " + (BParameter.GWCB * BParameter.GWXS ).ToString("#0.00");
|
|
|
+ PettyCash = PettyCash.Insert(0, "A段 ") + " B段 RMB " + (BParameter.LYJCB * BParameter.LYJXS ).ToString("#0.00");
|
|
|
+ Visa = Visa.Insert(0, "A段 ") + " B段 RMB " + (BParameter.VisaCB * BParameter.VisaXS + BParameter.HSCB * BParameter.HSXS + BParameter.BXCB * BParameter.BXXS).ToString("#0.00");
|
|
|
+ TrainTicket = TrainTicket.Insert(0, "A段 ") + " B段 RMB " + (BParameter.HCPCB * BParameter.HCPXS ).ToString("#0.00");
|
|
|
+ TicketPrice = TicketPrice.Insert(0, "A段 ") + " B段 RMB " + (BParameter.CPCB * BParameter.CPXS ).ToString("#0.00");
|
|
|
+ }
|
|
|
+
|
|
|
+ Visa = Visa.Insert(0, "签证及保险(含核酸检测): ");
|
|
|
+
|
|
|
+ DickeyValue.Add("TzNumber", TzNumber); //团组人数
|
|
|
+ DickeyValue.Add("CarGuides", CarGuides); //地接单人报价
|
|
|
+ DickeyValue.Add("CarGuides1", CarGuides1); // 地接 - 车导费
|
|
|
+ DickeyValue.Add("Meal", Meal); // 地接 - 餐费
|
|
|
+ DickeyValue.Add("SubsidizedMeals", SubsidizedMeals);// 地接 - 餐补
|
|
|
+ DickeyValue.Add("NightRepair", NightRepair); // 地接 - 宿补
|
|
|
+ DickeyValue.Add("AttractionsTickets", AttractionsTickets); // 地接 - 景点
|
|
|
+ DickeyValue.Add("MiscellaneousFees", MiscellaneousFees); // 地接 - 杂费
|
|
|
+ DickeyValue.Add("ATip", ATip); // 地接 - 小费
|
|
|
+
|
|
|
+ DickeyValue.Add("TzHotelDesc", TzHotelDesc); //酒店
|
|
|
+ DickeyValue.Add("Offcial", Offcial); // 公务单人报价
|
|
|
+ DickeyValue.Add("PettyCash", PettyCash); // 零用金单人报价
|
|
|
+ DickeyValue.Add("Visa", Visa); // 签证单人报价
|
|
|
+ DickeyValue.Add("TrainTicket", TrainTicket); //火车票
|
|
|
+ DickeyValue.Add("TicketPrice", TicketPrice); //船票
|
|
|
+ DickeyValue.Add("TzAirDesc", TzAirDesc); //机票
|
|
|
+ DickeyValue.Add("TzZCost", TzZCost);
|
|
|
+
|
|
|
+ foreach (var key in DickeyValue.Keys)
|
|
|
+ {
|
|
|
+ if (doc.Range.Bookmarks[key] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks[key];
|
|
|
+ mark.Text = DickeyValue[key];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ byte[] bytes = null;
|
|
|
+ string strFileName = di.TeamName + "-客户报价.doc";
|
|
|
+ using (MemoryStream stream = new MemoryStream())
|
|
|
+ {
|
|
|
+ doc.Save(stream, Aspose.Words.SaveFormat.Doc);
|
|
|
+ bytes = stream.ToArray();
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "", new
|
|
|
+ {
|
|
|
+ Data = bytes,
|
|
|
+ strFileName,
|
|
|
+ }));
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 酒店预定 保留
|