|
|
@@ -28,6 +28,7 @@ using OASystem.Domain.Dtos.CRM;
|
|
|
using OASystem.Domain.Dtos.FileDto;
|
|
|
using OASystem.Domain.Dtos.Financial;
|
|
|
using OASystem.Domain.Dtos.Groups;
|
|
|
+using OASystem.Domain.Dtos.PersonnelModule;
|
|
|
using OASystem.Domain.Dtos.System;
|
|
|
using OASystem.Domain.Entities.Customer;
|
|
|
using OASystem.Domain.Entities.Financial;
|
|
|
@@ -40,6 +41,7 @@ using OASystem.Domain.ViewModels.SmallFun;
|
|
|
using OASystem.Infrastructure.Repositories.CRM;
|
|
|
using OASystem.Infrastructure.Repositories.Financial;
|
|
|
using OASystem.Infrastructure.Repositories.Groups;
|
|
|
+using OASystem.Infrastructure.Tools;
|
|
|
using Quartz.Logging;
|
|
|
using Quartz.Util;
|
|
|
using SQLitePCL;
|
|
|
@@ -52,6 +54,7 @@ using System.Globalization;
|
|
|
using System.IO;
|
|
|
using System.IO.Compression;
|
|
|
using System.Linq.Expressions;
|
|
|
+using System.Security.Cryptography.Xml;
|
|
|
using System.Text.Json;
|
|
|
using System.Text.RegularExpressions;
|
|
|
using System.Threading.Tasks;
|
|
|
@@ -4183,9 +4186,461 @@ FROM
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
#region 文件下载
|
|
|
+ /// <summary>
|
|
|
+ /// 团组&签证 New
|
|
|
+ /// 签证文申请表下载
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="groupId">
|
|
|
+ /// <param name="fileTypeId">
|
|
|
+ /// </param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> VisaFileDownload(int groupId, int fileTypeId)
|
|
|
+ {
|
|
|
+ if(!_visaTypeInit.TryGetValue(fileTypeId, out _))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "请选择正确的文件类型!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //访问路径
|
|
|
+ var serverPath = $"http://132.232.92.186:24/Word/VisaClientData/Downloads/";
|
|
|
+
|
|
|
+ //模板存储位置
|
|
|
+ var tempPath = $"D:/FTP/File/OA2023/Office/Word/VisaClientData/Template/";
|
|
|
+
|
|
|
+ //服务器存储文件位置
|
|
|
+ var fileServerPath = $"D:/FTP/File/OA2023/Office/Word/VisaClientData/Downloads/";
|
|
|
+ if (!Directory.Exists(fileServerPath)) Directory.CreateDirectory(fileServerPath);
|
|
|
+
|
|
|
+ //文件生成路径
|
|
|
+ string url = string.Empty;
|
|
|
+
|
|
|
+ //基础数据
|
|
|
+ //团组客户名单
|
|
|
+ var groupClients = await _sqlSugar.Queryable<Grp_TourClientList>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.DiId == groupId)
|
|
|
+ .Select(x => x.ClientId)
|
|
|
+ .ToListAsync();
|
|
|
+ if (groupClients.Count < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "该团组下暂无团组名单!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ var groupInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(x => x.IsDel == 0 && x.Id == groupId).First();
|
|
|
+
|
|
|
+ //团组客户详细信息
|
|
|
+ var groupCustInfos = _sqlSugar.Queryable<Crm_DeleClient>().Where(x => x.IsDel == 0 && groupClients.Contains(x.Id)).ToList();
|
|
|
+
|
|
|
+ //家庭成员资料
|
|
|
+ var familyInfos = _sqlSugar.Queryable<Crm_VisaCustomerFamily>().Where(x => x.IsDel == 0 && groupClients.Contains(x.DcId)).ToList();
|
|
|
+
|
|
|
+ //公司资料
|
|
|
+ var companyInfos = _sqlSugar.Queryable<Crm_VisaCustomerCompany>().Where(x => x.IsDel == 0 && groupClients.Contains(x.DcId)).ToList();
|
|
|
+
|
|
|
+ //学校资料
|
|
|
+ var schoolInfos = _sqlSugar.Queryable<Crm_VisaCustomerSchool>().Where(x => x.IsDel == 0 && groupClients.Contains(x.DcId)).ToList();
|
|
|
+
|
|
|
+ /* 证件类型
|
|
|
+ *
|
|
|
+ * 773 身份证
|
|
|
+ * 774 护照
|
|
|
+ * 775 学生证
|
|
|
+ * 776 军人证
|
|
|
+ * 777 回乡证
|
|
|
+ * 778 台胞证
|
|
|
+ * 779 港澳通行证
|
|
|
+ * 780 国际海员证
|
|
|
+ * 781 外国人永久居留证
|
|
|
+ * 782 旅行证
|
|
|
+ * 783 台湾通行证
|
|
|
+ * 784 港澳台居住证
|
|
|
+ * 785 其他
|
|
|
+ */
|
|
|
+ //证件资料
|
|
|
+ var certInfos = _sqlSugar.Queryable<Crm_CustomerCert>().Where(x => x.IsDel == 0 && groupClients.Contains(x.DcId)).ToList();
|
|
|
+
|
|
|
+ //利用字典创建书签与书签的值的键值对,第一个string为键,第二个string为值
|
|
|
+ Dictionary<string, string> dics = new();
|
|
|
+ var applyDate = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ var custInfo = groupCustInfos.FirstOrDefault();
|
|
|
+ var idInfo = certInfos.FirstOrDefault(x => x.DcId == custInfo.Id && x.PassportType == 773);
|
|
|
+ var passportInfo = certInfos.FirstOrDefault(x => x.DcId == custInfo.Id && x.PassportType == 774);
|
|
|
+ var clinetInfo = companyInfos.FirstOrDefault(x => x.DcId == custInfo.Id && x.Id == custInfo.CrmCompanyId);
|
|
|
+ var currSchoolInfos = schoolInfos.Where(x => x.DcId == custInfo.Id).ToList();
|
|
|
+ var currFamilyInfos = familyInfos.Where(x => x.DcId == custInfo.Id).ToList();
|
|
|
+ var currCompanyInfos = companyInfos.Where(x => x.DcId == custInfo.Id).ToList();
|
|
|
+
|
|
|
+ var visaTypeName = string.Empty;
|
|
|
+ var currTempPath = string.Empty;
|
|
|
+
|
|
|
+ switch (fileTypeId)
|
|
|
+ {
|
|
|
+ case 1: // 美国
|
|
|
+ visaTypeName = $"美国签证申请表";
|
|
|
+ currTempPath = $"{tempPath}/{visaTypeName}.doc";
|
|
|
+
|
|
|
+ #region 美国签证模板书签值处理
|
|
|
+ dics.Add("LastNameEn", custInfo.LastName.ToString());//名拼音
|
|
|
+ dics.Add("FirstNameEn", custInfo.FirstName.ToString());//姓拼音
|
|
|
+ dics.Add("LastName", custInfo.LastName.ToString());//名
|
|
|
+ dics.Add("FirstName", custInfo.FirstName.ToString());//姓
|
|
|
+ dics.Add("OldNameEn", custInfo.OldName.ToString());//曾用姓名拼音
|
|
|
+ dics.Add("OldName", custInfo.FirstName.ToString());//曾用姓名
|
|
|
+ dics.Add("Marriage", custInfo.Marriage.ToString());//婚姻状况
|
|
|
+ dics.Add("Phone", custInfo.Phone.ToString());//家庭电话
|
|
|
+ dics.Add("BirthCity", custInfo.BirthCity.ToString());//出生城市
|
|
|
+ dics.Add("BirthProvince", custInfo.BirthProvince.ToString());//出生省份
|
|
|
+
|
|
|
+ string m_idCard = idInfo.CertNo;
|
|
|
+ string m_year = m_idCard.Substring(6, 4);
|
|
|
+ string m_month = m_idCard.Substring(10, 2);
|
|
|
+ string m_day = m_idCard.Substring(12, 2);
|
|
|
+ string m_birthday = m_year + "." + m_month + "." + m_day;
|
|
|
+
|
|
|
+ dics.Add("BirthDay", m_birthday);//出生日期
|
|
|
+ dics.Add("Tel", custInfo.Tel.ToString());//移动电话
|
|
|
+ dics.Add("Email", custInfo.Email.ToString());//电子信箱
|
|
|
+ dics.Add("IdCard", m_idCard);//身份证号码
|
|
|
+ dics.Add("Address", custInfo.Address.ToString());//现居家庭地址
|
|
|
+ dics.Add("PostCodes", custInfo.PostCodes.ToString());//邮编
|
|
|
+ dics.Add("Client", clinetInfo.Company.ToString());//单位名称
|
|
|
+ dics.Add("ClientAddress", clinetInfo.CompanyAddress.ToString());//单位地址
|
|
|
+ dics.Add("ClientPostCodes", custInfo.PostCodes.ToString());//单位邮编
|
|
|
+ dics.Add("Job", custInfo.Job.ToString());//职务
|
|
|
+ dics.Add("WorkDate", custInfo.WorkDate.ToString());//入职时间
|
|
|
+ dics.Add("Wage", custInfo.Wage.ToString());//月薪
|
|
|
+ dics.Add("ClientPhone", custInfo.ClientPhone.ToString());//单位电话
|
|
|
+ dics.Add("ClientFax", custInfo.ClientFax.ToString());//单位传真
|
|
|
+ dics.Add("ClientEmail", custInfo.ClientEmail.ToString());//单位邮箱
|
|
|
+ dics.Add("ClientLeader", custInfo.ClientLeader.ToString());//单位主管姓名
|
|
|
+ dics.Add("ClientLeaderJob", custInfo.ClientLeaderJob.ToString());//单位主管职务
|
|
|
+ dics.Add("WorkState", custInfo.WorkState.ToString());//工作内容简单介绍
|
|
|
+ dics.Add("IsGetSchengen", custInfo.IsGetSchengen.ToString());//是否有获批的申根签证
|
|
|
+ dics.Add("StartTime", custInfo.StartTime.ToString());//申根签证有效期开始
|
|
|
+ dics.Add("EndTime", custInfo.EndTime.ToString());//申根签证有效期结束
|
|
|
+ dics.Add("IsFinger", custInfo.IsFinger.ToString());//申根签证是否有指纹记录
|
|
|
+ dics.Add("FingerDate", custInfo.FingerDate.ToString());//申根签指纹采集时间
|
|
|
+ dics.Add("TableOpName", custInfo.TableOpName.ToString());//填表经办人
|
|
|
+ dics.Add("TableOpTel", custInfo.TableOpTel.ToString());//填表经办人联系电话
|
|
|
+ dics.Add("TableDate", custInfo.TableDate.ToString());//填表日期
|
|
|
+ dics.Add("Party", custInfo.Party.ToString());//所属党派或宗教
|
|
|
+ dics.Add("Nationality", custInfo.Nationality.ToString());//国籍
|
|
|
+ dics.Add("Sex", custInfo.Sex.ToString());//性别
|
|
|
+ dics.Add("WeddingDate", custInfo.WeddingDate.ToString());//结婚日期
|
|
|
+ dics.Add("DivorceDate", custInfo.DivorceDate.ToString());//离婚日期
|
|
|
+ dics.Add("MateName", custInfo.MateName.ToString());//配偶姓名
|
|
|
+ dics.Add("MateBirthDay", custInfo.MateBirthDay.ToString());//配偶出生日期
|
|
|
+ dics.Add("MateBirthCity", custInfo.MateBirthCity.ToString());//配偶出生城市
|
|
|
+ dics.Add("MateBirthCountry", custInfo.MateBirthCountry.ToString());//配偶出生省份
|
|
|
+ dics.Add("MateAddress", custInfo.MateAddress.ToString());//配偶住址
|
|
|
+ dics.Add("MateClient", custInfo.MateClient.ToString());//配偶工作单位名称
|
|
|
+ dics.Add("MateClientAddress", custInfo.MateClientAddress.ToString());//配偶工作单位地址
|
|
|
+ dics.Add("MateJob", custInfo.MateJob.ToString());//配偶职务
|
|
|
+ dics.Add("VisitCountry", custInfo.VisitCountry.ToString());//因公出访的国家
|
|
|
+ dics.Add("Paper", custInfo.Paper.ToString());//发表的期刊、论文
|
|
|
+ dics.Add("Papent", custInfo.Papent.ToString());//专利
|
|
|
+ dics.Add("PhD", custInfo.PhD.ToString());//博士论文
|
|
|
+ dics.Add("IsVisitUC", custInfo.IsVisitUC.ToString());//是否因公去过美国/加拿大
|
|
|
+ dics.Add("USADate", custInfo.USADate.ToString());//美国抵达日期
|
|
|
+ dics.Add("USADays", custInfo.USADays.ToString());//美国停留天数
|
|
|
+ dics.Add("CanDate", custInfo.CanDate.ToString());//加拿大抵达日期
|
|
|
+ dics.Add("CanDays", custInfo.CanDays.ToString());//加拿大停留天数
|
|
|
+ dics.Add("IsUSAVia", custInfo.IsUSAVia.ToString());//是否获得过因公美国签证
|
|
|
+ dics.Add("GetUSAVisaDate", custInfo.GetUSAVisaDate.ToString());//因公美国签证时间
|
|
|
+ dics.Add("GetUPPlace", custInfo.GetUPPlace.ToString());//因公美国签证地点
|
|
|
+ dics.Add("USAVisaCate", custInfo.USAVisaCate.ToString());//因公美国签证种类
|
|
|
+ dics.Add("USAVisaCode", custInfo.USAVisaCode.ToString());//因公美国签证编码
|
|
|
+ dics.Add("USAFinger", custInfo.USAFinger.ToString());//是否在使馆留过十指的指纹
|
|
|
+ dics.Add("IsRejected", custInfo.IsRejected.ToString());//是否被拒
|
|
|
+ dics.Add("RejectedDate", custInfo.RejectedDate.ToString());//被拒时间
|
|
|
+ dics.Add("RejectedPlace", custInfo.RejectedPlace.ToString());//被拒地点
|
|
|
+ dics.Add("RejectedVisa", custInfo.RejectedVisa.ToString());//被拒签证种类
|
|
|
+ dics.Add("IsRevoke", custInfo.IsRevoke.ToString());//美国签证是否被吊销
|
|
|
+ dics.Add("IsLose", custInfo.IsLose.ToString());//护照是否丢失
|
|
|
+ dics.Add("LoseDate", custInfo.LoseDate.ToString());//丢失的护照时间
|
|
|
+ dics.Add("LoseCode", custInfo.LoseCode.ToString());//丢失的护照号码
|
|
|
+ dics.Add("IsUSAVisa", custInfo.IsUSAVisa.ToString());//丢失的护照是否有美国签证
|
|
|
+ dics.Add("MateUSA", custInfo.MateUSA.ToString());//夫/妻是否已在美国
|
|
|
+ dics.Add("MateIden", custInfo.MateIden.ToString());//夫/妻身份
|
|
|
+ dics.Add("WHUSA", custInfo.WHUSA.ToString());//未婚夫/妻是否已在美国
|
|
|
+ dics.Add("WHIden", custInfo.WHIden.ToString());//未婚夫/妻身份
|
|
|
+ dics.Add("ParentUSA", custInfo.ParentUSA.ToString());//父/母是否已在美国
|
|
|
+ dics.Add("ParentIden", custInfo.ParentIden.ToString());//父/母身份
|
|
|
+ dics.Add("ChildUSA", custInfo.ChildUSA.ToString());//儿子/女儿是否已在美国
|
|
|
+ dics.Add("ChildIden", custInfo.ChildIden.ToString());//儿子/女儿身份
|
|
|
+ dics.Add("BroUSA", custInfo.BroUSA.ToString());//兄弟/姐妹是否已在美国
|
|
|
+ dics.Add("BroIden", custInfo.BroIden.ToString());//兄弟/姐妹身份
|
|
|
+ dics.Add("Social", custInfo.Social.ToString());//所属/捐助/工作过的职业协会、社会团体和慈善机构
|
|
|
+ dics.Add("IsArmy", custInfo.IsArmy.ToString());//是否参军
|
|
|
+ dics.Add("ArmyState", custInfo.ArmyState.ToString());//参军详情
|
|
|
+ dics.Add("ApplyDate", applyDate);//申请日期
|
|
|
+
|
|
|
+ //公司信息书签
|
|
|
+ if (currCompanyInfos.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < currCompanyInfos.Count; i++)
|
|
|
+ {
|
|
|
+ var compnayInfo = currCompanyInfos[i];
|
|
|
+ if (!string.IsNullOrEmpty(compnayInfo.Company))
|
|
|
+ {
|
|
|
+ dics.Add("Company", compnayInfo.Company);//公司名称
|
|
|
+ dics.Add("CompanyAddress", compnayInfo.CompanyAddress);//公司地址
|
|
|
+ dics.Add("CompanyPhone", compnayInfo.Phone);//公司电话
|
|
|
+ dics.Add("CompanyJob", compnayInfo.Job);//职务
|
|
|
+ dics.Add("CompanyLeaderName", compnayInfo.LeaderName);//主管名字
|
|
|
+ dics.Add("CompanyWorkStart", compnayInfo.WorkStart.ToString("yyyy-MM-dd"));//雇佣起始年月日
|
|
|
+ dics.Add("CompanyWorkEnd", compnayInfo.WorkEnd.ToString("yyyy-MM-dd"));//雇佣结束年月日
|
|
|
+ dics.Add("CompanyWorkState", compnayInfo.WorkState);//工作职责及内容简述
|
|
|
+ }
|
|
|
+ else break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //学校信息书签
|
|
|
+ if (currSchoolInfos.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < currSchoolInfos.Count; i++)
|
|
|
+ {
|
|
|
+ var schoolInfo = currSchoolInfos[i];
|
|
|
+ if (!string.IsNullOrEmpty(schoolInfo.School))
|
|
|
+ {
|
|
|
+ dics.Add("School", schoolInfo.School);//学校名称和学历
|
|
|
+ dics.Add("SchoolAddress", schoolInfo.Address);//学校地址
|
|
|
+ dics.Add("SchoolTeacher", schoolInfo.Teacher);//指导老师
|
|
|
+ dics.Add("SchoolSubject", schoolInfo.Subject);//所学课程或专业名称
|
|
|
+ dics.Add("SchoolStudyStart", schoolInfo.StudyStart.ToString("yyyy-MM-dd"));//就读起始日
|
|
|
+ dics.Add("SchoolStudyEnd", schoolInfo.StudyEnd.ToString("yyyy-MM-dd"));//就读结束日
|
|
|
+ }
|
|
|
+ else break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //家人信息书签
|
|
|
+ if (currFamilyInfos.Count > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < currFamilyInfos.Count; i++)
|
|
|
+ {
|
|
|
+ var familyInfo = currFamilyInfos[i];
|
|
|
+ if (!string.IsNullOrEmpty(familyInfo.Appellation))
|
|
|
+ {
|
|
|
+ dics.Add("FamilyAppellation", familyInfo.Appellation);//家庭成员称谓
|
|
|
+ dics.Add("FamilyName", familyInfo.Name);//家庭成员姓名
|
|
|
+ dics.Add("FamilyBirthDay", familyInfo.BirthDay.ToString("yyyy-MM-dd"));//家庭成员出生日期
|
|
|
+ dics.Add("FamilyBirthPlace", familyInfo.BirthPlace);// 家庭成员出生地
|
|
|
+ dics.Add("FamilyPolitics", familyInfo.Politics);//家庭成员政治面貌
|
|
|
+ dics.Add("FamilyClient", familyInfo.Client);//家庭成员工作单位
|
|
|
+ dics.Add("FamilyAddress", familyInfo.Address);// 家庭地址
|
|
|
+ dics.Add("IsEu", familyInfo.IsEu == 0 ? "No" : "Yes");// 欧盟公民
|
|
|
+ dics.Add("FamilyNameSnd", familyInfo.NameSnd);//拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员姓名
|
|
|
+ dics.Add("FamilyBirthDaySnd", familyInfo.BirthDaySnd.ToString("yyyy-MM-dd"));//拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员生日
|
|
|
+ dics.Add("FamilyNationality", familyInfo.Nationality);//拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员国籍
|
|
|
+ dics.Add("FamilyIDCard", familyInfo.IDCard);//拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员旅行证件编号或身份证号码
|
|
|
+ dics.Add("FamilyReletionship", familyInfo.Reletionship);//拥有欧盟、欧洲经济区或瑞士公民身份的家庭成员与申请人的关系
|
|
|
+ dics.Add("IsUSA", familyInfo.IsUSA == 1 ? "是" : "否");// 家庭成员是否在美国
|
|
|
+ }
|
|
|
+ else break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ break;
|
|
|
+ case 2: // 日本
|
|
|
+ visaTypeName = $"日本签证申请表";
|
|
|
+ currTempPath = $"{tempPath}/{visaTypeName}.doc";
|
|
|
+
|
|
|
+ #region 日本签证模板书签
|
|
|
+ dics.Add("LastNameEn", CommonFun.ConvertToPinyin(custInfo.LastName.Trim()).ToLower());//姓
|
|
|
+ dics.Add("FirstNameEn", CommonFun.ConvertToPinyin(custInfo.FirstName.Trim()).ToLower());//名
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(custInfo.OldName.Trim())) dics.Add("OldNameEn", custInfo.OldName);//名
|
|
|
+ else dics.Add("OldNameEn", "无");//名
|
|
|
+
|
|
|
+ dics.Add("LastName", custInfo.LastName.ToString());//姓
|
|
|
+ dics.Add("FirstName", custInfo.FirstName.ToString());//名
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(custInfo.OldName.Trim())) dics.Add("OldName", custInfo.OldName);//名
|
|
|
+ else dics.Add("OldName", "无");//名
|
|
|
+
|
|
|
+ string idCard = idInfo.CertNo.Trim();
|
|
|
+ string birthday = string.Empty;
|
|
|
+ if (!string.IsNullOrEmpty(idCard))
|
|
|
+ {
|
|
|
+ string year = idCard.Substring(6, 4);
|
|
|
+ string month = idCard.Substring(10, 2);
|
|
|
+ string day = idCard.Substring(12, 2);
|
|
|
+ birthday = year + "/" + month + "/" + day;
|
|
|
+ }
|
|
|
+
|
|
|
+ dics.Add("BirthDay", birthday);//出生日期
|
|
|
+ dics.Add("BirthProvince", custInfo.BirthProvince);//出生省
|
|
|
+ dics.Add("BirthCity", custInfo.BirthCity);//出生城市
|
|
|
+ dics.Add("Nationality", "中国");//国籍
|
|
|
+ dics.Add("Address", custInfo.Address);//现居家庭地址
|
|
|
+ dics.Add("IdCard", idCard);//身份证号码
|
|
|
+ dics.Add("OldNationality", "无"); //默认没有
|
|
|
+ dics.Add("Tel11", custInfo.Phone); //座机
|
|
|
+
|
|
|
+ //护照
|
|
|
+ if (passportInfo != null)
|
|
|
+ {
|
|
|
+ dics.Add("PassprotNo", passportInfo.CertNo); // 护照編號
|
|
|
+ dics.Add("PassprotIssuePlase", passportInfo.Area); // 护照签发地
|
|
|
+ dics.Add("PassprotStartTime", passportInfo.IssueDt?.ToString("yyyy/MM/dd") ?? ""); //护照开始时间
|
|
|
+ dics.Add("PassprotEndTime", passportInfo.ExpiryDt?.ToString("yyyy/MM/dd") ?? ""); // 护照过期时间
|
|
|
+ }
|
|
|
|
|
|
+ //得到签证国家下的城市
|
|
|
+ string RB_City = "";
|
|
|
+ string RB_County = "";
|
|
|
+ //ResidenceTime1 机票三字码信息
|
|
|
+
|
|
|
+ var atbc = GeneralMethod.GetTableByBlackCode(groupId);
|
|
|
+
|
|
|
+ if (atbc != null)
|
|
|
+ {
|
|
|
+ string R_startTime = ""; //开始停留时间
|
|
|
+ string R_endTime = ""; //离开时间
|
|
|
+ string R_Three = ""; //航司
|
|
|
+ string R_ThreeCode = ""; //入境口岸
|
|
|
+
|
|
|
+ for (int i = 0; i < atbc.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ if (i == 0) //得到抵达日期
|
|
|
+ {
|
|
|
+ R_Three = atbc.Rows[i]["Fliagtcode"].ToString();
|
|
|
+ R_startTime = atbc.Rows[i]["Day"].ToString();
|
|
|
+ R_ThreeCode = atbc.Rows[i]["Three"].ToString();
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (i == 1)
|
|
|
+ R_endTime = atbc.Rows[i]["Day"].ToString();
|
|
|
+ }
|
|
|
+ dics.Add("ResidenceTime1", R_startTime);
|
|
|
+ dics.Add("ResidenceTime2", R_endTime);
|
|
|
+ dics.Add("EntryTime", R_startTime);
|
|
|
+ if (!string.IsNullOrEmpty(R_Three))
|
|
|
+ {
|
|
|
+ //查询航司名称
|
|
|
+ var ac = _sqlSugar.Queryable<Res_AirCompany>().Where(x => x.ShortCode.equals(R_Three.Substring(0, 2))).First();
|
|
|
+ if (ac != null)
|
|
|
+ {
|
|
|
+ dics.Add("AirName", ac.EnName + " " + R_Three); //入境口岸
|
|
|
+ }
|
|
|
+
|
|
|
+ var tc = _sqlSugar.Queryable<Res_ThreeCode>().Where(x => x.Three.equals(R_Three.Substring(0, 2))).First();
|
|
|
+ if (tc != null)
|
|
|
+ {
|
|
|
+ RB_County = tc.Country;
|
|
|
+ RB_City = tc.City;
|
|
|
+ dics.Add("PortOfEntry", tc.City); //入境口岸
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //团组信息
|
|
|
+ if (groupInfo != null)
|
|
|
+ {
|
|
|
+ dics.Add("Destination", groupInfo.VisitPurpose); //出访目的 Destination2
|
|
|
+ //DickeyValue.Add("Destination2", dgi.VisitCountry); //出访目的地
|
|
|
+ }
|
|
|
+ //得到当前国家下的城市酒店信息
|
|
|
+ var hotelInfo = _sqlSugar.Queryable<Grp_HotelReservations>().Where(x => x.DiId == groupId && x.City.contains(RB_City)).First();
|
|
|
+ //酒店住址
|
|
|
+ if (hotelInfo != null)
|
|
|
+ {
|
|
|
+ dics.Add("HotalName", hotelInfo.HotelName); //酒店名称
|
|
|
+ dics.Add("HotalAddress", hotelInfo.HotelAddress); //酒店地址
|
|
|
+ dics.Add("HotalTel", hotelInfo.HotelTel); //酒店电话
|
|
|
+ }
|
|
|
+
|
|
|
+ dics.Add("Tel", custInfo.Tel.ToString());//移动电话
|
|
|
+ dics.Add("Client", companyInfos.FirstOrDefault()?.Company ?? "");//单位名称
|
|
|
+ dics.Add("ClientPhone", companyInfos.FirstOrDefault()?.Phone ?? "");//单位电话
|
|
|
+ dics.Add("ClientAddress", companyInfos.FirstOrDefault()?.CompanyAddress ?? "");//单位地址
|
|
|
+ dics.Add("Job", custInfo.Job.ToString());//职务
|
|
|
+ dics.Add("MateJob", custInfo.MateJob.ToString());//配偶职务
|
|
|
+
|
|
|
+ //InvitingPartyInfo RB_IP = new InvitingPartyInfoService().GetAddSelect(int.Parse(ddlTeamNames.SelectedValue), RB_County, RB_City);
|
|
|
+
|
|
|
+ var oa = _sqlSugar.Queryable<Res_OfficialActivities>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.DiId == groupId)
|
|
|
+ .Where(x => x.Country.Contains(RB_County))
|
|
|
+ .Where(x => x.Area.Contains(RB_City))
|
|
|
+ .First();
|
|
|
+
|
|
|
+ //邀请 接待单位
|
|
|
+ if (oa != null)
|
|
|
+ {
|
|
|
+ dics.Add("OA12", oa.Contact); //接待单位联系人
|
|
|
+ dics.Add("OAJob", oa.Job); //接待联系人职务
|
|
|
+ dics.Add("OATel", oa.Tel); //接待单位电话
|
|
|
+ dics.Add("OAAddress", oa.Address); //接待单位地址
|
|
|
+ dics.Add("ApplicantGuanxi", "邀请方");//和申请人关系
|
|
|
+ dics.Add("OACountry", "日本"); //邀请方国家
|
|
|
+ dics.Add("OADan", "同上"); // 同上
|
|
|
+ dics.Add("OAJob1", "同上"); //接待联系人职务
|
|
|
+ dics.Add("OATel1", "同上"); // 同上
|
|
|
+ dics.Add("OAAddress1", "同上"); // 同上
|
|
|
+ dics.Add("ApplicantGuanxi1", "同上"); // 同上
|
|
|
+ dics.Add("OACountry1", "同上"); //邀请方国家
|
|
|
+ }
|
|
|
+
|
|
|
+ dics.Add("NowTime", DateTime.Now.ToString("yyyy/MM/dd")); //获取当前系统时间
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ break;
|
|
|
+ case 3: // 韩国
|
|
|
+
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ Document doc = new Document(tempPath);
|
|
|
+ Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
|
|
|
+
|
|
|
+ string strTemp = "";
|
|
|
+
|
|
|
+ //循环键值对
|
|
|
+ foreach (var key in dics.Keys)
|
|
|
+ {
|
|
|
+ //将光标移入书签的位置
|
|
|
+ builder.MoveToBookmark(key);
|
|
|
+
|
|
|
+ //判断书签值是否为空
|
|
|
+ if (!string.IsNullOrEmpty(dics[key]))
|
|
|
+ {
|
|
|
+ strTemp = dics[key];
|
|
|
+ }
|
|
|
+ else strTemp = "";
|
|
|
+
|
|
|
+ //填充书签
|
|
|
+ builder.Write(strTemp.Replace("\\N", "\n"));
|
|
|
+ }
|
|
|
+
|
|
|
+ var custName = custInfo.LastName + custInfo.FirstName;
|
|
|
+ string fileName = $"{custName}_{visaTypeName}.doc";
|
|
|
+
|
|
|
+ doc.Save(HttpUtility.UrlEncode(fileServerPath + currTempPath, Encoding.UTF8), Aspose.Words.SaveFormat.Doc);
|
|
|
+
|
|
|
+ url = $"{serverPath}{fileName}";
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, $"{currTempPath}模板不存在!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(url))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, url));
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(false, "操作失败!"));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
#endregion
|