|
|
@@ -4,6 +4,7 @@ using OASystem.API.OAMethodLib;
|
|
|
using OASystem.Domain.Dtos.Resource;
|
|
|
using OASystem.Domain.Entities.Groups;
|
|
|
using OASystem.Domain.ViewModels.Groups;
|
|
|
+using OASystem.Domain.ViewModels.QiYeWeChat;
|
|
|
using OASystem.Infrastructure.Repositories.Groups;
|
|
|
using Org.BouncyCastle.Utilities;
|
|
|
using Quartz.Util;
|
|
|
@@ -649,7 +650,7 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
#region 酒店资料数据
|
|
|
/// <summary>
|
|
|
- /// 酒店信息查询
|
|
|
+ /// 酒店信息查询 Page
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
@@ -657,28 +658,98 @@ namespace OASystem.API.Controllers
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
public async Task<IActionResult> QueryHotelData(QueryHotelDataDto dto)
|
|
|
{
|
|
|
- try
|
|
|
- {
|
|
|
+ string sqlWhere = string.Empty;
|
|
|
+ if (!string.IsNullOrWhiteSpace(dto.Name))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And hd.Name like '%{0}%'", dto.Name);
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(dto.City) && dto.City != "全部")
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And hd.City like '%{0}%'", dto.City);
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(dto.Contact))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And hd.Contact like '%{0}%'", dto.Contact);
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrWhiteSpace(dto.ContactPhone))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And hd.ContactPhone like '%{0}%'", dto.ContactPhone);
|
|
|
+ }
|
|
|
+ sqlWhere += string.Format(@" And hd.IsDel={0}", 0);
|
|
|
+ if (!string.IsNullOrEmpty(sqlWhere.Trim()))
|
|
|
+ {
|
|
|
+ Regex r = new Regex("And");
|
|
|
+ sqlWhere = r.Replace(sqlWhere, "Where", 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ string sql = string.Format(@"SELECT
|
|
|
+ *
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ ROW_NUMBER() OVER (
|
|
|
+ ORDER BY
|
|
|
+ hd.CreateTime DESC
|
|
|
+ ) AS Row_Number,
|
|
|
+ hd.Id,
|
|
|
+ hd.City,
|
|
|
+ hd.[Name],
|
|
|
+ hd.Tel,
|
|
|
+ hd.Fax,
|
|
|
+ hd.Contact,
|
|
|
+ hd.ContactPhone,
|
|
|
+ u.CnName AS CreateUserName,
|
|
|
+ hd.CreateTime
|
|
|
+ FROM
|
|
|
+ Res_HotelData hd
|
|
|
+ WITH
|
|
|
+ (NoLock)
|
|
|
+ LEFT JOIN Sys_Users u
|
|
|
+ WITH
|
|
|
+ (NoLock) ON hd.CreateUserId = u.Id {0}
|
|
|
+ ) Temp
|
|
|
+ ", sqlWhere);
|
|
|
|
|
|
- Result hotelData = await _hotelDataRep.QueryHotelData(dto);
|
|
|
- if (hotelData.Code == 0)
|
|
|
- {
|
|
|
- return Ok(JsonView(true, "查询成功", hotelData.Data));
|
|
|
- }
|
|
|
- else
|
|
|
+ if (dto.PortType == 1)
|
|
|
+ {
|
|
|
+ List<HotelDataItemView> HotelDataData = await _sqlSugar.SqlQueryable<HotelDataItemView>(sql).ToListAsync();
|
|
|
+ if (HotelDataData.Count == 0)
|
|
|
{
|
|
|
- return Ok(JsonView(false, hotelData.Msg));
|
|
|
+ return Ok(JsonView(false, "暂无数据"));
|
|
|
}
|
|
|
-
|
|
|
+ return Ok(JsonView(true, "操作成功", HotelDataData));
|
|
|
}
|
|
|
- catch (Exception ex)
|
|
|
+ else if (dto.PortType == 2 || dto.PortType == 3)
|
|
|
{
|
|
|
- return Ok(JsonView(false, "程序错误!"));
|
|
|
- throw;
|
|
|
+ RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
|
|
|
+ var data = await _sqlSugar.SqlQueryable<HotelDataItemView>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total); //ToPageAsync
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "操作成功", data, total));
|
|
|
}
|
|
|
+ else return Ok(JsonView(false, "请传入PortType参数!1:Web,2:Android,3:IOS"));
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 酒店资料
|
|
|
+ /// 详情
|
|
|
+ /// add time:2024-05-14 11:57:10
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> QueryHotelDataInfo(QueryHotelDataInfoDto dto)
|
|
|
+ {
|
|
|
+ var _view = await _hotelDataRep._Info(dto.PortType,dto.Id);
|
|
|
+ if (_view.Code == 0 )
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, _view.Msg,_view.Data));
|
|
|
+ }
|
|
|
|
|
|
+ return Ok(JsonView(false, _view.Msg));
|
|
|
}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 酒店资料下拉框数据
|
|
|
/// </summary>
|
|
|
@@ -722,36 +793,15 @@ namespace OASystem.API.Controllers
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
public async Task<IActionResult> OperationHotelData(OperationHotelDto dto)
|
|
|
{
|
|
|
- try
|
|
|
- {
|
|
|
- if (dto.City == "")
|
|
|
- {
|
|
|
- return Ok(JsonView(false, "请检查酒店所在城市是否填写!"));
|
|
|
- }
|
|
|
- if (dto.Name == "")
|
|
|
- {
|
|
|
- return Ok(JsonView(false, "请检查酒店名称是否填写!"));
|
|
|
- }
|
|
|
- if (dto.Address == "")
|
|
|
- {
|
|
|
- return Ok(JsonView(false, "请检查酒店地址是否填写正确!"));
|
|
|
- }
|
|
|
- if (dto.Tel == "")
|
|
|
- {
|
|
|
- return Ok(JsonView(false, "请检查酒店联系方式是否填写正确!"));
|
|
|
- }
|
|
|
+ if (string.IsNullOrEmpty(dto.City)) return Ok(JsonView(false, "请检查酒店所在城市是否填写!"));
|
|
|
+ if (string.IsNullOrEmpty(dto.Name)) return Ok(JsonView(false, "请检查酒店名称是否填写!"));
|
|
|
+ if (string.IsNullOrEmpty(dto.Address)) return Ok(JsonView(false, "请检查酒店地址是否填写正确!"));
|
|
|
+ if (string.IsNullOrEmpty(dto.Tel)) return Ok(JsonView(false, "请检查酒店联系方式是否填写正确!"));
|
|
|
+
|
|
|
+ Result result = await _hotelDataRep.OperationHotelData(dto);
|
|
|
+ if (result.Code != 0) return Ok(JsonView(false, result.Msg));
|
|
|
+ return Ok(JsonView(true, result.Msg));
|
|
|
|
|
|
- Result result = await _hotelDataRep.OperationHotelData(dto);
|
|
|
- if (result.Code != 0)
|
|
|
- {
|
|
|
- return Ok(JsonView(false, result.Msg));
|
|
|
- }
|
|
|
- return Ok(JsonView(true, result.Msg));
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- return Ok(JsonView(false, ex.Message));
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -1750,6 +1800,26 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 公务出访
|
|
|
+ /// 请示范例提示
|
|
|
+ /// Add Time:2024-05-13 13:56:44
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostOfficialActivitiesReqReqSampleTips(PostOfficialActivitiesReqReqSampleTipsDto dto)
|
|
|
+ {
|
|
|
+ var res = await _officialActivitiesRep.PostReqReqSampleTips(dto.country, dto.area,dto.client);
|
|
|
+ if (res.Code == 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, "操作成功!", res.Data));
|
|
|
+ }
|
|
|
+ return Ok(JsonView(false, res.Msg));
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 公务出访 (省外办,市外办) File Downlaod
|
|
|
/// </summary>
|
|
|
@@ -1792,7 +1862,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
|
|
|
//××(组团单位):接团客户信息团组
|
|
|
- dic.Add("GroupClient", groupInfo.ClientUnit);
|
|
|
+ dic.Add("GroupClient", $"{groupInfo.ClientUnit}\r\n");
|
|
|
|
|
|
//关于××(职务、姓名)等×人赴××(国家或地区)进行×××(出访目的)的请示
|
|
|
string guestName = "";
|
|
|
@@ -1811,7 +1881,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
//应×××(邀请方名称+邀请人职务和姓名)的邀请,我单位拟派×××(职务、姓名)等×人(人数)于×××年×××月×××日赴×××(国家或地区)进行×××(出访目的)。现请示如下。
|
|
|
string visitDateStr = @$"{groupInfo.VisitDate.Year}年{groupInfo.VisitDate.Month}月{groupInfo.VisitDate.Day}日";
|
|
|
string obInfoStr = "";
|
|
|
- string obBackgroundStr = "";//出访背景
|
|
|
+ string obBackgroundStr = "×××";//出访背景
|
|
|
foreach (var ob in obDatas)
|
|
|
{
|
|
|
obInfoStr += @$"{ob.Client}{ob.Job}{ob.Contact}、";
|
|
|
@@ -1827,6 +1897,7 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
dic.Add("AskSubTitle", askSubTitle);
|
|
|
|
|
|
//出访背景
|
|
|
+ obBackgroundStr = "×××";//出访背景
|
|
|
dic.Add("OBSetting", obBackgroundStr);
|
|
|
|
|
|
//出访目的
|
|
|
@@ -1837,31 +1908,35 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
//1.拜访×××(机构名称)×××(姓名、职务)洽谈(或调研、推动等)×××(项目或机构名称等)。(例:拜会×××经济与发展司司长×××,商讨“×××活动”相关筹备工作。)
|
|
|
//2.拜访×××(机构名称)×××(姓名、职务)洽谈(或调研、推动等)×××(项目或机构名称等)。(例:拜会×××经济与发展司司长×××,商讨“×××活动”相关筹备工作。)
|
|
|
|
|
|
- string taskStr = "";
|
|
|
- List<string> countrys = groupInfo.VisitCountry.Split("、").ToList();
|
|
|
- int countryIndex = 1;
|
|
|
- foreach (var item in countrys)
|
|
|
- {
|
|
|
- string taskTitle = $"({GetToUpperNumber(countryIndex)}){item}\r\n";
|
|
|
+ string taskStr = "××××"; ;
|
|
|
+ //List<string> countrys = groupInfo.VisitCountry.Split("、").ToList();
|
|
|
+ //int countryIndex = 1;
|
|
|
+ //foreach (var item in countrys)
|
|
|
+ //{
|
|
|
+ // string taskTitle = $"({GetToUpperNumber(countryIndex)}){item}\r\n";
|
|
|
|
|
|
- string taskContent = "";
|
|
|
- var countryObDatas = obDatas.Where(it => it.Client.Contains(item)).ToList();
|
|
|
- int obIndex = 1;
|
|
|
- foreach (var obInfo in countryObDatas)
|
|
|
- {
|
|
|
- taskContent += $"{obIndex}. 拜访{obInfo.Client}({obInfo.Contact}、{obInfo.Job})洽谈“{groupInfo.VisitPurpose}”相关工作。\r\n";
|
|
|
- }
|
|
|
+ // string taskContent = "";
|
|
|
+ // var countryObDatas = obDatas.Where(it => it.Client.Contains(item)).ToList();
|
|
|
+ // int obIndex = 1;
|
|
|
+ // foreach (var obInfo in countryObDatas)
|
|
|
+ // {
|
|
|
+ // taskContent += $"{obIndex}. 拜访{obInfo.Client}({obInfo.Contact}、{obInfo.Job})洽谈“{groupInfo.VisitPurpose}”相关工作。\r\n";
|
|
|
+ // }
|
|
|
|
|
|
- taskStr += $"{taskTitle}{taskContent}";
|
|
|
+ // taskStr += $"{taskTitle}{taskContent}";
|
|
|
+
|
|
|
+ // countryIndex++;
|
|
|
+ //}
|
|
|
|
|
|
- countryIndex++;
|
|
|
- }
|
|
|
//出访任务
|
|
|
dic.Add("TaskContent", taskStr);
|
|
|
|
|
|
//出访时间
|
|
|
//代表团拟于××年×月×日—×月×日出访,在外停留×天。其中,××国家(或地区)×天,××国家(或地区)×天。
|
|
|
string visitCountryStr = $"[OP行程单读取]";
|
|
|
+ visitCountryStr = GeneralMethod.GetCountryStandingTime(groupInfo.Id); //计算国家出访天数
|
|
|
+
|
|
|
+
|
|
|
string visitTimeQuantumStr = $"代表团拟于{groupInfo.VisitStartDate.Year}年{groupInfo.VisitStartDate.Month}月{groupInfo.VisitStartDate.Day}日—{groupInfo.VisitEndDate.Month}月{groupInfo.VisitEndDate.Day}日出访,在外停留{groupInfo.VisitDays}天。其中,{visitCountryStr}。";
|
|
|
//出访时间
|
|
|
dic.Add("TimeQuantum", visitTimeQuantumStr);
|
|
|
@@ -1871,8 +1946,22 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
string lineStr = GeneralMethod.GetGroupCityLine(groupInfo.Id, "—");
|
|
|
dic.Add("Line", lineStr);
|
|
|
|
|
|
- //TripInfo
|
|
|
- dic.Add("Line", lineStr);
|
|
|
+ //scheduling //行程安排
|
|
|
+ string schedulingStr = $"[OP行程单暂未生成]";
|
|
|
+
|
|
|
+ var tripInfo = _sqlSugar.Queryable<Grp_TravelList>().Where(it => it.IsDel == 0 && it.Diid == groupInfo.Id).OrderBy(it => it.Days).ToList();
|
|
|
+
|
|
|
+ if (tripInfo.Count > 0 )
|
|
|
+ {
|
|
|
+ schedulingStr = "";
|
|
|
+
|
|
|
+ foreach (var item in tripInfo)
|
|
|
+ {
|
|
|
+ schedulingStr += $"{item.Date}({item.WeekDay})\r\n{item.Trip}\r\n";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ dic.Add("Scheduling", schedulingStr);
|
|
|
|
|
|
#region 填充word模板书签内容
|
|
|
foreach (var key in dic.Keys)
|
|
|
@@ -1913,10 +2002,15 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
string birthDayStr = string.Empty;
|
|
|
if (!string.IsNullOrEmpty(birthDay))
|
|
|
{
|
|
|
- birthDayStr = Convert.ToDateTime(birthDay).ToString("yyyy-MM-dd");
|
|
|
+ birthDayStr = Convert.ToDateTime(birthDay).ToString("yyyy.MM");
|
|
|
}
|
|
|
builder.Write(birthDayStr);
|
|
|
+ }
|
|
|
|
|
|
+ //删除多余行
|
|
|
+ while (tableOne.Rows.Count > guestInfos.Count + 1)
|
|
|
+ {
|
|
|
+ tableOne.Rows.RemoveAt(guestInfos.Count + 1);
|
|
|
}
|
|
|
|
|
|
var fileDir = AppSettingsHelper.Get("WordBasePath");
|
|
|
@@ -1929,7 +2023,154 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
}
|
|
|
else if (dto.FileType == 2)
|
|
|
{
|
|
|
+ //载入模板
|
|
|
+ string tempPath = AppSettingsHelper.Get("WordBasePath") + "Template/市外办出访请示 - 模板.docx";
|
|
|
+ var doc = new Document(tempPath);
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+
|
|
|
+ //键值对存放数据
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
|
|
|
+ //××(组团单位):接团客户信息团组
|
|
|
+ dic.Add("GroupClient", $"{groupInfo.ClientUnit}");
|
|
|
+
|
|
|
+ dic.Add("GroupClient1", $"{groupInfo.ClientUnit}");
|
|
|
+ //关于××(职务、姓名)等×人赴××(国家或地区)进行×××(出访目的)的请示
|
|
|
+ string guestName = "";
|
|
|
+ string guestJob = "";
|
|
|
+ string guestInfoStr = "";
|
|
|
+ var guestFirstInfo = guestInfos.FirstOrDefault();
|
|
|
+ if (guestFirstInfo != null)
|
|
|
+ {
|
|
|
+ guestName = guestFirstInfo.LastName + guestFirstInfo.FirstName;
|
|
|
+ guestJob = guestFirstInfo.Job;
|
|
|
+ guestInfoStr = $@"{guestJob}、{guestName}";
|
|
|
+ }
|
|
|
+ string reqTitle = $@"关于{guestInfoStr}等{guestInfos.Count}人赴{groupInfo.VisitCountry}进行{groupInfo.VisitPurpose}的请示";
|
|
|
+ dic.Add("ReqTitle", reqTitle);
|
|
|
+
|
|
|
+ //应×××(邀请方名称+邀请人职务和姓名)的邀请,我单位拟派×××(职务、姓名)等×人(人数)于×××年×××月×××日赴×××(国家或地区)进行×××(出访目的)。
|
|
|
+ string visitDateStr = @$"{groupInfo.VisitDate.Year}年{groupInfo.VisitDate.Month}月{groupInfo.VisitDate.Day}日";
|
|
|
+ string obInfoStr = "";
|
|
|
+ string obBackgroundStr = "×××";//出访背景
|
|
|
+ foreach (var ob in obDatas)
|
|
|
+ {
|
|
|
+ obInfoStr += @$"{ob.Client}{ob.Job}{ob.Contact}、";
|
|
|
+
|
|
|
+ //obBackgroundStr += $"{ob.Client}\r\n \t {ob.Setting}\r\n";
|
|
|
+
|
|
|
+ }
|
|
|
+ if (obInfoStr.Length > 0)
|
|
|
+ {
|
|
|
+ obInfoStr = obInfoStr.Substring(0, obInfoStr.Length - 1);
|
|
|
+ }
|
|
|
+ string reqSubTitle = $@"应{obInfoStr}的邀请,我单位拟派{guestInfoStr}等{guestInfos.Count}人于{visitDateStr}赴{groupInfo.VisitCountry}进行{groupInfo.VisitPurpose}。";
|
|
|
+ dic.Add("ReqSubTitle", reqSubTitle);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 出访任务
|
|
|
+ * (一)××(国家或地区)
|
|
|
+ * 1.拜访×××(机构名称)×××(姓名、职务)洽谈(或调研、推动等)×××(项目或机构名称等)。(例:拜会×××经济与发展司司长×××,商讨“×××活动”相关筹备工作。)背景:拟拜访机构的优势、拟洽谈项目的前期进展情况等。(例:背景:由×××总领馆联合×××市政府共同举办的“×××活动”将于今年6月在×××举行。)
|
|
|
+ * 2.拜访×××(机构名称)×××(姓名、职务)洽谈(或调研等)×××(项目或机构名称等)。(例:拜会友城×××市市长×××,巩固和发展两市传统友谊,商谈两市未来互动交流合作项目。)背景:拟拜访机构的优势、拟洽谈项目的前期进展情况等。(例:背景:×××年×月,×××市与×××市正式缔结友好城市关系。在此框架下,两市开展了一系列友好互访和商务交流。并于×××年×月共同举办了“×××活动”。)
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ string taskStr = "××××"; ;
|
|
|
+ //List<string> countrys = groupInfo.VisitCountry.Split("、").ToList();
|
|
|
+ //int countryIndex = 1;
|
|
|
+ //foreach (var item in countrys)
|
|
|
+ //{
|
|
|
+ // string taskTitle = $"({GetToUpperNumber(countryIndex)}){item}\r\n";
|
|
|
+
|
|
|
+ // string taskContent = "";
|
|
|
+ // var countryObDatas = obDatas.Where(it => it.Client.Contains(item)).ToList();
|
|
|
+ // int obIndex = 1;
|
|
|
+ // foreach (var obInfo in countryObDatas)
|
|
|
+ // {
|
|
|
+ // taskContent += $"{obIndex}. 拜访{obInfo.Client}({obInfo.Contact}、{obInfo.Job})洽谈“{groupInfo.VisitPurpose}”相关工作。\r\n";
|
|
|
+ // }
|
|
|
+
|
|
|
+ // taskStr += $"{taskTitle}{taskContent}";
|
|
|
+
|
|
|
+ // countryIndex++;
|
|
|
+ //}
|
|
|
+
|
|
|
+ //出访任务
|
|
|
+ dic.Add("TaskContent", taskStr);
|
|
|
+
|
|
|
+ //出访目的
|
|
|
+ dic.Add("VisitPurpose", groupInfo.VisitPurpose);
|
|
|
+
|
|
|
+ //出访信息
|
|
|
+ //代表团拟于××年×月×日—×月×日出访,在外停留×天。其中,××国家(或地区)×天,××国家(或地区)×天。出访路线:成都—××(出境城市名称)—××(转机不出机场)—××(公务所在城市)……—××(入境城市名称)—成都。(例:成都—法兰克福<转机不出机场>—巴黎—巴塞罗那—阿姆斯特丹<转机不出机场>-成都)出访费用:由××承担(注明由外方或上级机关承担,还是由派员单位在年度安排的预算经费中列支)。
|
|
|
+
|
|
|
+ string tripInfoStr = "";
|
|
|
+ string visitCountryStr = $"[OP行程单读取]";
|
|
|
+ visitCountryStr = GeneralMethod.GetCountryStandingTime(groupInfo.Id); //计算国家出访天数
|
|
|
+ string lineStr = GeneralMethod.GetGroupCityLine(groupInfo.Id, "—"); //出访路线
|
|
|
+ tripInfoStr = $"代表团拟于{groupInfo.VisitStartDate.Year}年{groupInfo.VisitStartDate.Month}月{groupInfo.VisitStartDate.Day}日—{groupInfo.VisitEndDate.Month}月{groupInfo.VisitEndDate.Day}日出访,在外停留{groupInfo.VisitDays}天。其中,{visitCountryStr}。出访路线:{lineStr}出访费用:由××承担(注明由外方或上级机关承担,还是由派员单位在年度安排的预算经费中列支)";
|
|
|
+
|
|
|
+
|
|
|
+ dic.Add("TripInfo", tripInfoStr);
|
|
|
+
|
|
|
+
|
|
|
+ #region 填充word模板书签内容
|
|
|
+ foreach (var key in dic.Keys)
|
|
|
+ {
|
|
|
+ builder.MoveToBookmark(key);
|
|
|
+ builder.Write(dic[key]);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ //获取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 < guestInfos.Count; i++)
|
|
|
+ {
|
|
|
+ var guestInfo = guestInfos[i];
|
|
|
+ builder.MoveToCell(0, i + 1, 0, 0);
|
|
|
+ builder.Write(guestInfo.LastName + guestInfo.FirstName);
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 1, 0);
|
|
|
+ int sex = guestInfo.Sex;
|
|
|
+ string sexStr = string.Empty;
|
|
|
+ if (sex == 0) sexStr = "男";
|
|
|
+ else if (sex == 1) sexStr = "女";
|
|
|
+ else sexStr = "未设置";
|
|
|
+ builder.Write(sexStr);
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 2, 0);
|
|
|
+ builder.Write(guestInfo.CompanyFullName + guestInfo.Job);
|
|
|
+
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 3, 0);
|
|
|
+ string birthDay = "";
|
|
|
+ string birthDayStr = string.Empty;
|
|
|
+ if (!string.IsNullOrEmpty(birthDay))
|
|
|
+ {
|
|
|
+ birthDayStr = Convert.ToDateTime(birthDay).ToString("yyyy.MM");
|
|
|
+ }
|
|
|
+ builder.Write(birthDayStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除多余行
|
|
|
+ while (tableOne.Rows.Count > guestInfos.Count + 1)
|
|
|
+ {
|
|
|
+ tableOne.Rows.RemoveAt(guestInfos.Count + 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ var fileDir = AppSettingsHelper.Get("WordBasePath");
|
|
|
+ string fileName = $"{groupInfo.TeamName}市外办出访请示.docx";
|
|
|
+ string filePath = fileDir + $@"OfficialActivities/{fileName}";
|
|
|
+ doc.Save(filePath);
|
|
|
+
|
|
|
+ string Url = $@"{AppSettingsHelper.Get("WordBaseUrl")}Office/Word/OfficialActivities/{fileName}";
|
|
|
+ return Ok(JsonView(true, "操作成功!", Url));
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1951,7 +2192,6 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
else if (num == 9) numStr = "九";
|
|
|
else if (num == 10) numStr = "十";
|
|
|
|
|
|
-
|
|
|
return numStr;
|
|
|
}
|
|
|
|