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();
}
}
}