using OASystem.Domain.Entities.Resource; using System; using System.Text.Json.Serialization; namespace OASystem.Domain.ViewModels.Resource { public class CountryFeeCostView : Res_CountryFeeCost { /// /// 距今更新天数 /// public int DaysSinceUpdate { get { var now = DateTime.Now; if (!string.IsNullOrWhiteSpace(LastUpdateTime) && DateTime.TryParse(LastUpdateTime, out var lastTime)) { return (now - lastTime).Days; } return (now - CreateTime).Days; } } } /// /// 省份签证费用详情 /// public class VisaFeeStandardDetails { public int Id { get; set; } /// /// 签证费用表Id(Res_VisaFeeStandard) /// public int ParentId { get; set; } /// /// 签证费用归属省份Id(Sys_Cities) /// public int ProvinceId { get; set; } /// /// 省份名称 /// public string ProvinceName { get; set; } /// /// 送签地址 /// public string VisaAddress { get; set; } /// /// 是否落地签 /// public bool IsVisaOnArrival { get; set; } = false; /// /// 是否电子签 /// public bool IsElectronicSign { get; set; } = false; /// /// 签证时间(工作日) /// public string VisaTime { get; set; } /// /// 是否免签(大公务) /// public bool IsVisaExemptionLarge { get; set; } = false; /// /// 签证费用(大公务) /// public decimal LargeVisaPrice { get; set; } /// /// 代办费(大公务) /// public decimal LargeAgencyFee { get; set; } = 0.00m; /// /// 是否免签(小公务) /// public bool IsVisaExemptionSmall { get; set; } = false; /// /// 签证费用(小公务) /// public decimal SmallVisaPrice { get; set; } = 0.00m; /// /// 代办费(小公务) /// public decimal SmallAgencyFee { get; set; } = 0.00m; /// /// 外办费用(普通) /// public decimal NormExtFee { get; set; } = 0.00m; /// /// 外办费用(加急) /// public decimal UrgExtFee { get; set; } = 0.00m; /// /// 签证是否加急 /// public bool IsUrgent { get; set; } = false; /// /// 加急时间(工作日) /// public string UrgentTime { get; set; } /// /// 加急费用 /// public decimal UrgentPrice { get; set; } /// /// 加急费用描述 /// public string UrgentPriceDesc { get; set; } /// /// 备注 /// public string Remark { get; set; } public VisaFeeStandardDetails() { } /// /// 按照指定的省份排序 /// /// 数据源 /// 省份排序集合 /// public static List SortByProvinces(List people, List specifiedOrder) { return people .OrderBy(person => specifiedOrder.IndexOf(person.ProvinceName)) .ThenBy(person => person.ProvinceId) // 对未指定的省份按Id顺序排序 .ToList(); } } /// /// 签证info /// public class VisaFeeStandardInfo { /// /// Id /// public int Id { get; set; } /// /// 洲名 /// public string Continent { get; set; } /// /// 国家名 /// public string Country { get; set; } /// /// 签证费用类型 0 因公 1 因私 /// public int FeeType { get; set; } = 0; } /// /// 签证info View /// public class VisaFeeStandardInfoView : VisaFeeStandardInfo { /// /// 省份签证费用集合 /// public List VisaFees { get; set; } } public class VisaFeeStandardListView : VisaFeeStandardInfo { /// /// 省份签证费用集合 /// [JsonIgnore] public List VisaFees { get; set; } /// /// 四川签证费用描述 /// public string SiChuanVisaFeeLabel { get { return GetVisaFeeLabel(122); } } /// /// 重庆签证费用描述 /// public string ChongQingVisaFeeLabel { get { return GetVisaFeeLabel(103); } } /// /// 贵州签证费用描述 /// public string GuiZhouVisaFeeLabel { get { return GetVisaFeeLabel(108); } } /// /// 云南签证费用描述 /// public string YunNanVisaFeeLabel { get { return GetVisaFeeLabel(132); } } /// /// 最后更新人 /// public string LastUpdateUserName { get; set; } /// /// 最后更新时间 /// public DateTime LastUpdateTime { get; set; } /// /// 距今更新天数 /// public int DaysSinceUpdate { get { return (DateTime.Now - LastUpdateTime).Days; } } /// /// 获取城市签证描述 /// /// /// private string GetVisaFeeLabel(int provinceId) { var label = new StringBuilder(); var info = VisaFees.FirstOrDefault(x => x.ProvinceId == provinceId); if (info != null) { if (FeeType == 0) //因公 { label.AppendLine($"送签地址: {info.VisaAddress}"); var isVisaOnArrival = info.IsVisaOnArrival ? "是" : "否"; label.AppendLine($"是否落地签:{isVisaOnArrival}"); var isElectronicSign = info.IsElectronicSign ? "是" : "否"; label.AppendLine($"是否电子签:{isElectronicSign}"); label.AppendLine($"签证时间(工作日):{info.VisaTime}"); var isVisaExemptionLarge = info.IsVisaExemptionLarge ? "是" : "否"; label.AppendLine($"公务护照免签:{isVisaExemptionLarge}"); label.AppendLine($"公务护照签证费:{info.LargeVisaPrice:#0.00}"); label.AppendLine($"公务护照签证代办费:{info.LargeAgencyFee:#0.00}"); var isVisaExemptionSmall = info.IsVisaExemptionSmall ? "是" : "否"; label.AppendLine($"公务普通护照免签:{isVisaExemptionSmall}"); label.AppendLine($"公务普通护照签证费:{info.SmallVisaPrice:#0.00}"); label.AppendLine($"公务普通护照代办费:{info.SmallAgencyFee:#0.00}"); if (provinceId == 103) { label.AppendLine($"重庆外办出入境证明费用(普通):{info.NormExtFee:#0.00}"); label.AppendLine($"重庆外办出入境证明费用(加急):{info.UrgExtFee:#0.00}"); } var isUrgent = info.IsUrgent ? "是" : "否"; label.AppendLine($"签证是否加急:{isVisaExemptionSmall}"); label.AppendLine($"加急时间(工作日):{info.UrgentTime}"); label.AppendLine($"加急费用:{info.UrgentPrice:#0.00}"); label.AppendLine($"加急费用描述 :{info.UrgentPriceDesc}"); label.AppendLine($"备注 :{info.Remark}"); } else if (FeeType == 1) //因私 { var isVisaExemptionSmall = info.IsVisaExemptionSmall ? "是" : "否"; label.AppendLine($"普通护照免签:{isVisaExemptionSmall}"); label.AppendLine($"签证费:{info.SmallVisaPrice:#0.00}"); label.AppendLine($"送签地点:{info.VisaAddress}"); label.AppendLine($"办理时间(工作日):{info.VisaTime}"); } } return label.ToString(); } } }