|
|
@@ -9,6 +9,7 @@ using iTextSharp.text.pdf;
|
|
|
using iTextSharp.xmp.impl.xpath;
|
|
|
using Microsoft.AspNetCore.Routing.Template;
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
+using NetUV.Core.Requests;
|
|
|
using NPOI.OpenXmlFormats.Wordprocessing;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using NPOI.SS.UserModel;
|
|
|
@@ -53,6 +54,7 @@ using System.Diagnostics;
|
|
|
using System.Globalization;
|
|
|
using System.IO.Compression;
|
|
|
using System.Linq.Expressions;
|
|
|
+using System.Runtime.ConstrainedExecution;
|
|
|
using System.Text.Json;
|
|
|
using System.Web;
|
|
|
using static OASystem.API.OAMethodLib.JWTHelper;
|
|
|
@@ -3525,13 +3527,13 @@ FROM
|
|
|
个人信息:
|
|
|
- 姓名:请提取文档中的“姓名”。
|
|
|
- 拼音名:请提取文档中的“拼音名”或“英文名”。
|
|
|
-- 曾用名:请提取文档中的“曾用名”或“别名”。
|
|
|
-- 性别:请提取文档中的“性别”。
|
|
|
-- 出生日期:请提取文档中的“出生日期”。
|
|
|
-- 出生地省:请提取文档中的“出生地省”或“出生地省份”。
|
|
|
-- 出生地市:请提取文档中的“出生地市”或“出生地城市”。
|
|
|
-- 国籍:请提取文档中的“国籍”或“现国籍”。
|
|
|
-- 身份证号码:请提取文档中的“身份证号码”。
|
|
|
+- 曾用名:请提取文档中的“曾用名”或“别名”,去除“曾用名”“别名”等字段名称字样,仅保留实际姓名内容。
|
|
|
+- 性别:请提取文档中的“性别”。当前信息未提取到且身份证效验通过可提取第17位奇偶性判断性别(奇男偶女)。
|
|
|
+- 出生日期:请提取文档中的“出生日期”。当前信息未提取到且身份证效验通过可提取第7-14位作为出生日期(格式YYYY-MM-DD)。
|
|
|
+- 出生地省:请提取文档中的“出生地省”或“出生地省份”。当前信息未提取到且身份证效验通过可提取第1-2位对应省级行政区划代码用于出生地省回填。
|
|
|
+- 出生地市:请提取文档中的“出生地市”或“出生地城市”。当前信息未提取到且身份证效验通过可提取第3-4位对应地级行政区划代码用于出生地市回填。
|
|
|
+- 国籍:请提取文档中的“国籍”或“现国籍”。当前信息未提取到且身份证效验通过可提取信息回填。
|
|
|
+- 身份证号码:请提取文档中的“身份证号码”。效验规则:身份证号码必须为18位,前17位为数字、第18位为数字或X,且需通过ISO 7064:1983 MOD 11-2校验算法验证;
|
|
|
- 婚姻状况:请提取文档中的“婚姻状况”。
|
|
|
- 离婚原因:请提取文档中的“离婚原因”。
|
|
|
|
|
|
@@ -3562,7 +3564,7 @@ FROM
|
|
|
- 工作单位地址:请提取文档中的“工作单位地址”或“单位地址”。
|
|
|
- 工作单位电话:请提取文档中的“工作单位电话”或“单位电话”。
|
|
|
- 职位:请提取文档中的“职位”或“目前职位”。
|
|
|
-- 月薪:请提取文档中的“月薪”或“月收入”。
|
|
|
+- 月薪:请提取文档中的“月薪”或“月收入”或“年薪”(如果是年薪自动除以12得到月薪)。
|
|
|
|
|
|
教育经历:
|
|
|
- 教育经历:请提取文档中所有教育经历,以列表形式返回,每个条目包含以下信息:
|
|
|
@@ -3645,7 +3647,7 @@ FROM
|
|
|
|
|
|
把表格里的每个可填字段转换成“标题:值”的键值对,值用原文,不翻译。
|
|
|
注:日期格式:YYYY-MM-DD、值为空时空字符串
|
|
|
-只返回json结果,不需要其他内容,json内容去掉换行。");
|
|
|
+只返回json结构体,不需要其他内容,json内容去掉换行。");
|
|
|
var messages = new List<SeedMessages>
|
|
|
{
|
|
|
new() { Role = KimiRole.system, Content = "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长识别文件为Json格式的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。" },
|
|
|
@@ -3751,7 +3753,7 @@ FROM
|
|
|
{ }
|
|
|
|
|
|
if (TryGetNonEmptyStringProperty(userInfo, "身份证号码", out string idNo))
|
|
|
- certs.Add(new() { PassportType = 74, CertNo = idNo, Country = nationality });
|
|
|
+ certs.Add(new() { SdId = 773, CertNo = idNo, Country = nationality });
|
|
|
|
|
|
if (TryGetNonEmptyStringProperty(userInfo, "婚姻状况", out string marital_status))
|
|
|
info.Marriage = marital_status switch
|
|
|
@@ -3813,7 +3815,6 @@ FROM
|
|
|
familys.Add(familyInfo1);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if (root.TryGetProperty("工作信息", out JsonElement workInfo))
|
|
|
@@ -3867,28 +3868,31 @@ FROM
|
|
|
{
|
|
|
if (eduInfo.TryGetProperty("教育经历", out JsonElement educations))
|
|
|
{
|
|
|
- foreach (JsonElement edu in educations.EnumerateArray())
|
|
|
+ if (educations.ValueKind == JsonValueKind.Array)
|
|
|
{
|
|
|
- var schoolInfo = new Crm_VisaCustomerSchool();
|
|
|
- if (TryGetNonEmptyStringProperty(edu, "学校名称", out string school_name))
|
|
|
- schoolInfo.School = school_name;
|
|
|
+ foreach (JsonElement edu in educations.EnumerateArray())
|
|
|
+ {
|
|
|
+ var schoolInfo = new Crm_VisaCustomerSchool();
|
|
|
+ if (TryGetNonEmptyStringProperty(edu, "学校名称", out string school_name))
|
|
|
+ schoolInfo.School = school_name;
|
|
|
|
|
|
- if (TryGetNonEmptyStringProperty(edu, "学校地址", out string school_address))
|
|
|
- schoolInfo.Address = school_address;
|
|
|
+ if (TryGetNonEmptyStringProperty(edu, "学校地址", out string school_address))
|
|
|
+ schoolInfo.Address = school_address;
|
|
|
|
|
|
- if (TryGetNonEmptyStringProperty(edu, "专业", out string degree))
|
|
|
- schoolInfo.Subject = degree;
|
|
|
+ if (TryGetNonEmptyStringProperty(edu, "专业", out string degree))
|
|
|
+ schoolInfo.Subject = degree;
|
|
|
|
|
|
- if (TryGetNonEmptyStringProperty(edu, "学位", out string major))
|
|
|
- schoolInfo.Education = major;
|
|
|
+ if (TryGetNonEmptyStringProperty(edu, "学位", out string major))
|
|
|
+ schoolInfo.Education = major;
|
|
|
|
|
|
- if (TryGetNonEmptyDateTimeProperty(edu, "入学时间", out DateTime? enrollment_date))
|
|
|
- schoolInfo.StudyStart = enrollment_date;
|
|
|
+ if (TryGetNonEmptyDateTimeProperty(edu, "入学时间", out DateTime? enrollment_date))
|
|
|
+ schoolInfo.StudyStart = enrollment_date;
|
|
|
|
|
|
- if (TryGetNonEmptyDateTimeProperty(edu, "毕业时间", out DateTime? graduation_date))
|
|
|
- schoolInfo.StudyEnd = graduation_date;
|
|
|
+ if (TryGetNonEmptyDateTimeProperty(edu, "毕业时间", out DateTime? graduation_date))
|
|
|
+ schoolInfo.StudyEnd = graduation_date;
|
|
|
|
|
|
- schools.Add(schoolInfo);
|
|
|
+ schools.Add(schoolInfo);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -4032,14 +4036,19 @@ FROM
|
|
|
_ => 0
|
|
|
};
|
|
|
|
|
|
- if (TryGetNonEmptyDateTimeProperty(otherInfo, "因公护照有效期", out DateTime? GetUSAVisaDate))
|
|
|
- info.GetUSAVisaDate = GetUSAVisaDate;
|
|
|
+ if (info.IsUSAVia == 1)
|
|
|
+ {
|
|
|
+ if (TryGetNonEmptyDateTimeProperty(otherInfo, "因公护照有效期", out DateTime? GetUSAVisaDate))
|
|
|
+ info.GetUSAVisaDate = GetUSAVisaDate;
|
|
|
+
|
|
|
+ if (TryGetNonEmptyStringProperty(otherInfo, "因公护照类型", out string USAVisaCate))
|
|
|
+ info.USAVisaCate = USAVisaCate;
|
|
|
|
|
|
- if (TryGetNonEmptyStringProperty(otherInfo, "因公护照类型", out string USAVisaCate))
|
|
|
- info.USAVisaCate = USAVisaCate;
|
|
|
+ if (TryGetNonEmptyStringProperty(otherInfo, "因公护照号码", out string USAVisaCode))
|
|
|
+ info.USAVisaCode = USAVisaCode;
|
|
|
|
|
|
- if (TryGetNonEmptyStringProperty(otherInfo, "因公护照号码", out string USAVisaCode))
|
|
|
- info.USAVisaCode = USAVisaCode;
|
|
|
+ certs.Add(new() { SdId = 774, PassportType = 1012, CertNo = info.USAVisaCode });
|
|
|
+ }
|
|
|
|
|
|
if (otherInfo.TryGetProperty("亲属、朋友及联系人信息", out JsonElement personInfos1))
|
|
|
{
|
|
|
@@ -4138,9 +4147,10 @@ FROM
|
|
|
info.Phone.Equals(x.Phone))
|
|
|
.FirstOrDefault();
|
|
|
|
|
|
- var compnayInfos = await _sqlSugar.Queryable<Crm_CustomerCompany>()
|
|
|
- .Where(x => x.IsDel == 0)
|
|
|
- .ToListAsync();
|
|
|
+ var compnayInfos = await _sqlSugar
|
|
|
+ .Queryable<Crm_CustomerCompany>()
|
|
|
+ .Where(x => x.IsDel == 0)
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
foreach (var company1 in compnayInfos)
|
|
|
{
|
|
|
@@ -4159,6 +4169,23 @@ FROM
|
|
|
return Ok(JsonView(false, "公司信息添加失败!"));
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 存在信息为空则更新公司地址信息
|
|
|
+ if (string.IsNullOrEmpty(compnayInfo.Address))
|
|
|
+ {
|
|
|
+ compnayInfo.Address = company.Address;
|
|
|
+
|
|
|
+ var companyUpd = await _sqlSugar.Updateable(compnayInfo)
|
|
|
+ .UpdateColumns(x => x.Address)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ if (companyUpd < 1)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "公司地址信息更新失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if (infoVaild == null) //添加
|
|
|
{
|
|
|
@@ -4173,11 +4200,28 @@ FROM
|
|
|
return Ok(JsonView(false, "信息添加失败!"));
|
|
|
}
|
|
|
|
|
|
+ if (certs.Any())
|
|
|
+ {
|
|
|
+ foreach (var cert in certs)
|
|
|
+ {
|
|
|
+ cert.CertNo = AesEncryptionHelper.Encrypt(cert.CertNo);
|
|
|
+ cert.DcId = insertId;
|
|
|
+ cert.CreateUserId = 4;
|
|
|
+ }
|
|
|
+ var cretInsert = await _sqlSugar.Insertable(certs).ExecuteCommandAsync();
|
|
|
+ if (cretInsert < 1)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "证件信息添加失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (familys.Any())
|
|
|
{
|
|
|
foreach (var family in familys)
|
|
|
{
|
|
|
family.DcId = insertId;
|
|
|
+ family.CreateUserId = 4;
|
|
|
}
|
|
|
var familyInsert = await _sqlSugar.Insertable(familys).ExecuteCommandAsync();
|
|
|
if (familyInsert < 1)
|
|
|
@@ -4192,6 +4236,7 @@ FROM
|
|
|
foreach (var school in schools)
|
|
|
{
|
|
|
school.DcId = insertId;
|
|
|
+ school.CreateUserId = 4;
|
|
|
}
|
|
|
var schoolInsert = await _sqlSugar.Insertable(schools).ExecuteCommandAsync();
|
|
|
if (schoolInsert < 1)
|
|
|
@@ -4206,6 +4251,7 @@ FROM
|
|
|
foreach (var work in works)
|
|
|
{
|
|
|
work.DcId = insertId;
|
|
|
+ work.CreateUserId = 4;
|
|
|
}
|
|
|
var workInsert = await _sqlSugar.Insertable(works).ExecuteCommandAsync();
|
|
|
if (workInsert < 1)
|
|
|
@@ -4239,6 +4285,9 @@ FROM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 单独处理 婚姻字段 0 未设置 重新设置值
|
|
|
+ if (updInfo.Marriage == 0) updInfo.Marriage = info.Marriage;
|
|
|
+
|
|
|
EncryptionProcessor.EncryptProperties(updInfo);
|
|
|
|
|
|
var upd = await _sqlSugar.Updateable(updInfo).ExecuteCommandAsync();
|
|
|
@@ -4250,10 +4299,33 @@ FROM
|
|
|
|
|
|
int parentId = updInfo.Id;
|
|
|
|
|
|
+ if (certs.Any())
|
|
|
+ {
|
|
|
+ await _sqlSugar.Updateable<Crm_CustomerCert>()
|
|
|
+ .SetColumns(x => x.IsDel == 1)
|
|
|
+ .SetColumns(x => x.DeleteUserId == 4)
|
|
|
+ .SetColumns(x => x.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
|
|
|
+ .Where(x => x.DcId == parentId)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+
|
|
|
+ foreach (var cert in certs)
|
|
|
+ {
|
|
|
+ cert.CertNo = AesEncryptionHelper.Encrypt(cert.CertNo);
|
|
|
+ cert.DcId = parentId;
|
|
|
+ cert.CreateUserId = 4;
|
|
|
+ }
|
|
|
+ var cretInsert = await _sqlSugar.Insertable(certs).ExecuteCommandAsync();
|
|
|
+ if (cretInsert < 1)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "证件信息添加失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (familys.Any())
|
|
|
{
|
|
|
await _sqlSugar.Updateable<Crm_VisaCustomerFamily>()
|
|
|
- .SetColumns(x => x.IsDel == 0)
|
|
|
+ .SetColumns(x => x.IsDel == 1)
|
|
|
.SetColumns(x => x.DeleteUserId == 4)
|
|
|
.SetColumns(x => x.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
|
|
|
.Where(x => x.DcId == parentId)
|
|
|
@@ -4262,6 +4334,7 @@ FROM
|
|
|
foreach (var family in familys)
|
|
|
{
|
|
|
family.DcId = parentId;
|
|
|
+ family.CreateUserId = 4;
|
|
|
}
|
|
|
var familyInsert = await _sqlSugar.Insertable(familys).ExecuteCommandAsync();
|
|
|
if (familyInsert < 1)
|
|
|
@@ -4274,7 +4347,7 @@ FROM
|
|
|
if (schools.Any())
|
|
|
{
|
|
|
await _sqlSugar.Updateable<Crm_VisaCustomerSchool>()
|
|
|
- .SetColumns(x => x.IsDel == 0)
|
|
|
+ .SetColumns(x => x.IsDel == 1)
|
|
|
.SetColumns(x => x.DeleteUserId == 4)
|
|
|
.SetColumns(x => x.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
|
|
|
.Where(x => x.DcId == parentId)
|
|
|
@@ -4283,6 +4356,7 @@ FROM
|
|
|
foreach (var school in schools)
|
|
|
{
|
|
|
school.DcId = parentId;
|
|
|
+ school.CreateUserId = 4;
|
|
|
}
|
|
|
var schoolInsert = await _sqlSugar.Insertable(schools).ExecuteCommandAsync();
|
|
|
if (schoolInsert < 1)
|
|
|
@@ -4295,7 +4369,7 @@ FROM
|
|
|
if (works.Any())
|
|
|
{
|
|
|
await _sqlSugar.Updateable<Crm_VisaCustomerCompany>()
|
|
|
- .SetColumns(x => x.IsDel == 0)
|
|
|
+ .SetColumns(x => x.IsDel == 1)
|
|
|
.SetColumns(x => x.DeleteUserId == 4)
|
|
|
.SetColumns(x => x.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
|
|
|
.Where(x => x.DcId == parentId)
|
|
|
@@ -4304,6 +4378,7 @@ FROM
|
|
|
foreach (var work in works)
|
|
|
{
|
|
|
work.DcId = parentId;
|
|
|
+ work.CreateUserId = 4;
|
|
|
}
|
|
|
var workInsert = await _sqlSugar.Insertable(works).ExecuteCommandAsync();
|
|
|
if (workInsert < 1)
|
|
|
@@ -4718,6 +4793,7 @@ FROM
|
|
|
/// </summary>
|
|
|
private readonly static Dictionary<int, string> _visaTypeInit = new()
|
|
|
{
|
|
|
+ { 8, "西班牙" },
|
|
|
{ 1, "美国" },
|
|
|
{ 2, "日本" },
|
|
|
{ 3, "韩国" },
|
|
|
@@ -4725,7 +4801,6 @@ FROM
|
|
|
{ 5, "波兰" },
|
|
|
//{ 6, "加拿大" },
|
|
|
{ 7, "克罗地亚" },
|
|
|
- { 8, "西班牙" },
|
|
|
};
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -8086,7 +8161,7 @@ FROM
|
|
|
SetFieldValue(formFields, "member_first_entry", pdfData.GetSafeString("member_first_entry")); // 首入申根国标签
|
|
|
|
|
|
// 申请入境次数
|
|
|
- string request_entry = pdfData.GetSafeString("member_first_entry");
|
|
|
+ string request_entry = pdfData.GetSafeString("request_entry");
|
|
|
switch (request_entry)
|
|
|
{
|
|
|
case "1":
|
|
|
@@ -8182,6 +8257,9 @@ FROM
|
|
|
}
|
|
|
finally
|
|
|
{
|
|
|
+ // 展平表单
|
|
|
+ stamper.FormFlattening = true;
|
|
|
+
|
|
|
// 按正确顺序关闭资源
|
|
|
stamper?.Close();
|
|
|
reader?.Close();
|
|
|
@@ -9067,7 +9145,7 @@ FROM
|
|
|
SetFieldValue(formFields, "marital_widower", "Off"); // 婚姻状况 - 丧偶
|
|
|
SetFieldValue(formFields, "marital_other", "Off"); // 婚姻状况 - 其他
|
|
|
SetFieldValue(formFields, "marital_other_specify", ""); // 婚姻状况 - 其他(请具体说明)
|
|
|
- var maritalStatus = pdfData.GetSafeString("marital_status");
|
|
|
+ var maritalStatus = pdfData.GetSafeString("marriage");
|
|
|
//设置婚姻状况
|
|
|
switch (maritalStatus)
|
|
|
{
|
|
|
@@ -9241,7 +9319,7 @@ FROM
|
|
|
SetFieldValue(formFields, "member_first_entry", pdfData.GetSafeString("member_first_entry")); // 首入申根国标签
|
|
|
|
|
|
// 申请入境次数
|
|
|
- string request_entry = pdfData.GetSafeString("member_first_entry");
|
|
|
+ string request_entry = pdfData.GetSafeString("request_entry");
|
|
|
switch (request_entry)
|
|
|
{
|
|
|
case "1":
|
|
|
@@ -9321,8 +9399,8 @@ FROM
|
|
|
SetFieldValue(formFields, "cost_covered_sponsor_accomodation", "Off"); // 提供住宿
|
|
|
SetFieldValue(formFields, "cost_covered_sponsor_during_stay", "Off"); // 旅行期间的所有费用均由主办方承担
|
|
|
SetFieldValue(formFields, "cost_covered_sponsor_transport", "Off"); // 预先支付的交通费用
|
|
|
- SetFieldValue(formFields, "cost_covered_sponsor_other", "Off"); // 其他
|
|
|
- SetFieldValue(formFields, "cost_covered_sponsor_other_specify", ""); // 其他(请具体说明
|
|
|
+ SetFieldValue(formFields, "cost_covered_sponsor_other", "Yes"); // 其他
|
|
|
+ SetFieldValue(formFields, "cost_covered_sponsor_other_specify", pdfData.GetSafeString("cost_covered_sponsor_other_specify")); // 其他(请具体说明
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
@@ -9370,6 +9448,7 @@ FROM
|
|
|
string clientTel = clientInfo?.Phone ?? "";
|
|
|
string clientFax = "";
|
|
|
string name = $"{custInfo?.LastName ?? ""}{custInfo?.FirstName ?? ""}";
|
|
|
+
|
|
|
int sexId = custInfo?.Sex ?? -1;
|
|
|
string sex = sexId switch
|
|
|
{
|
|
|
@@ -9556,6 +9635,7 @@ FROM
|
|
|
wordDic.Add("clientAddress", clientAddress);
|
|
|
wordDic.Add("clientTel", clientTel);
|
|
|
wordDic.Add("clientFax", clientFax);
|
|
|
+ wordDic.Add("fillingDate", DateTime.Now.ToString("dd/MM/yyyy"));
|
|
|
wordDic.Add("name", name);
|
|
|
wordDic.Add("sex", sex);
|
|
|
wordDic.Add("birthday", birthday);
|
|
|
@@ -9581,8 +9661,9 @@ FROM
|
|
|
{
|
|
|
return (false, $"找不到指定的派遣函模板: {templatePath}", string.Empty);
|
|
|
}
|
|
|
- Document doc = new Document(templatePath);
|
|
|
- DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+
|
|
|
+ Document doc = new(templatePath);
|
|
|
+ DocumentBuilder builder = new(doc);
|
|
|
|
|
|
// 填充值
|
|
|
FillBookmark(doc, builder, "clientNameCN", clientName); // 单位名称(中文)
|
|
|
@@ -9593,7 +9674,42 @@ FROM
|
|
|
FillBookmark(doc, builder, "clientFax", wordDic.GetSafeString("clientFax")); // 单位传真
|
|
|
FillBookmark(doc, builder, "fillingDate", wordDic.GetSafeString("fillingDate")); // 填写日期
|
|
|
FillBookmark(doc, builder, "name", wordDic.GetSafeString("name")); // 姓名
|
|
|
- FillBookmark(doc, builder, "sex", wordDic.GetSafeString("sex")); // 性别
|
|
|
+ FillBookmark(doc, builder, "sex", wordDic.GetSafeString("sex")); // 性别
|
|
|
+
|
|
|
+ #region 多出性别处理
|
|
|
+
|
|
|
+ string sex1 = "-", sex2 = "-", sex3 = "-", sex4 = "-", sex5 = "-", sex6 = "-", sex7 = "-";
|
|
|
+ if (sex.Equals("男"))
|
|
|
+ {
|
|
|
+ sex1 = "Mr.";
|
|
|
+ sex2 = "His";
|
|
|
+ sex3 = "He";
|
|
|
+ sex4 = "Mr.";
|
|
|
+ sex5 = "He";
|
|
|
+ sex6 = "His";
|
|
|
+ sex7 = "He";
|
|
|
+ }
|
|
|
+ else if (sex.Equals("女"))
|
|
|
+ {
|
|
|
+ sex1 = "Ms.";
|
|
|
+ sex2 = "Her";
|
|
|
+ sex3 = "She";
|
|
|
+ sex4 = "Ms.";
|
|
|
+ sex5 = "She";
|
|
|
+ sex6 = "Her";
|
|
|
+ sex7 = "She";
|
|
|
+ }
|
|
|
+
|
|
|
+ FillBookmark(doc, builder, "sex1", sex1); // 1. Mr./Ms
|
|
|
+ FillBookmark(doc, builder, "sex2", sex2); // 2. His/Her
|
|
|
+ FillBookmark(doc, builder, "sex3", sex3); // 3. He/She
|
|
|
+ FillBookmark(doc, builder, "sex4", sex4); // 4. Mr./Ms.
|
|
|
+ FillBookmark(doc, builder, "sex5", sex5); // 5. He/She
|
|
|
+ FillBookmark(doc, builder, "sex6", sex6); // 6. His/Her
|
|
|
+ FillBookmark(doc, builder, "sex7", sex7); // 7. He/She
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
FillBookmark(doc, builder, "birthday", wordDic.GetSafeString("birthday")); // 出生日期
|
|
|
FillBookmark(doc, builder, "passportNo", wordDic.GetSafeString("passportNo")); // 护照号码
|
|
|
FillBookmark(doc, builder, "clientName", wordDic.GetSafeString("clientName")); // 单位名称
|
|
|
@@ -9604,7 +9720,8 @@ FROM
|
|
|
FillBookmark(doc, builder, "durationOfStay", wordDic.GetSafeString("durationOfStay")); // 在外停留天数
|
|
|
FillBookmark(doc, builder, "entryDate", wordDic.GetSafeString("entryDate")); // 入境国外时间
|
|
|
FillBookmark(doc, builder, "exitDate", wordDic.GetSafeString("exitDate")); // 出境国外时间
|
|
|
- FillBookmark(doc, builder, "visitPurpose", wordDic.GetSafeString("visitPurpose")); // 出访目的
|
|
|
+ string visitDateDetails = $"{wordDic.GetSafeString("visitPurpose")}. from {groupInfo.VisitStartDate.ToString("dd-MM-yyyy")} to {groupInfo.VisitEndDate.ToString("dd-MM-yyyy")}";
|
|
|
+ FillBookmark(doc, builder, "visitPurpose", visitDateDetails); // 出访目的
|
|
|
FillBookmark(doc, builder, "nameEnd", wordDic.GetSafeString("name")); // 姓名 END
|
|
|
FillBookmark(doc, builder, "visitCountryEnd", wordDic.GetSafeString("destinationCountry")); // 出访国家 END
|
|
|
FillBookmark(doc, builder, "clientNameEnd", wordDic.GetSafeString("clientName")); // 详细费用承担方单位名称 END
|
|
|
@@ -9665,7 +9782,7 @@ FROM
|
|
|
|
|
|
#region 出生日期(日-月-年)
|
|
|
string birthday = string.Empty;
|
|
|
- string idCard = idInfo?.CertNo?.Trim() ?? "";
|
|
|
+ string idCard = AesEncryptionHelper.Decrypt(idInfo?.CertNo?.Trim() ?? "");
|
|
|
|
|
|
// 1. 优先从身份证中提取 (需为18位身份证)
|
|
|
if (!string.IsNullOrEmpty(idCard) && idCard.Length >= 14)
|
|
|
@@ -10064,7 +10181,22 @@ FROM
|
|
|
{
|
|
|
if (formFields.Fields.ContainsKey(fieldName) && !string.IsNullOrEmpty(value))
|
|
|
{
|
|
|
- formFields.SetField(fieldName, value);
|
|
|
+ // 设置宋体(支持中文)
|
|
|
+ //BaseFont bf = BaseFont.CreateFont("C:\\Windows\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
|
|
|
+ //formFields.SetFieldProperty(fieldName, "textfont", bf, null);
|
|
|
+
|
|
|
+ //// 设置字号:8
|
|
|
+ //formFields.SetFieldProperty(fieldName, "textsize", 8f, null);
|
|
|
+
|
|
|
+ // 设置字体颜色:黑色
|
|
|
+ formFields.SetFieldProperty(fieldName, "textcolor", iTextSharp.text.BaseColor.BLACK, null);
|
|
|
+
|
|
|
+ // 填充值(显示值、实际值、保存外观)
|
|
|
+ formFields.SetField(fieldName, value, value, true);
|
|
|
+
|
|
|
+ // 设置打印标志
|
|
|
+ formFields.SetFieldProperty(fieldName, "setflags", PdfFormField.FLAGS_PRINT, null);
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|