| 
					
				 | 
			
			
				@@ -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 酒店预定 保留 
			 |