Переглянути джерело

Merge branch 'develop' of http://132.232.92.186:3000/XinXiBu/OA2023 into develop

yuanrf 22 годин тому
батько
коміт
41a5a0731b

+ 456 - 1
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -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 companyInfo‌‌s = _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

+ 6 - 5
OASystem/OASystem.Domain/Entities/Customer/Crm_DeleClient.cs

@@ -121,11 +121,6 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
         public string HighestEducation { get; set; }
-        /// <summary>
-        /// 邮编
-        /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string PostCodes { get; set; }
 
         /// <summary>
         /// 客户公司Id
@@ -133,6 +128,12 @@ namespace OASystem.Domain.Entities.Customer
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int CrmCompanyId { get; set; }
 
+        /// <summary>
+        /// 邮编
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string PostCodes { get; set; }
+
         /// <summary>
         /// 职位
         /// </summary>