You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb.DJYMQ/DS7Service.cs

3140 lines
136 KiB
C#

using DSWeb.Common.DB;
using DSWeb.Common.Extentions;
using DSWeb.Common.Helper;
using FluentFTP.Helpers;
using JobReqWebData;
using log4net;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Quartz.Impl;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.Entity.Migrations;
using System.Data.SqlClient;
using System.Linq;
using System.Net.NetworkInformation;
using System.Security.Policy;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Topshelf;
namespace DSWeb.Service.Output.DS7
{
public class DS7Service : ServiceControl
{
private const string ExchangeName = "output";
private static ILog logger = LogManager.GetLogger("DS7Service");
//private const string QueuePrefixCangDan = "djy.output.cangdan.ds7.";
//private const string QueuePrefixBaoguan = "djy.output.baoguan.ds7.";
//private const string QueuePrefixBG = "djy.output.baoguan.bg.ds7.";
private const string QueuePrefix_DingCang = "djy.output.dingcang.ds6.";
/// <summary>
/// 在大简云的公司ID
/// </summary>
private static string CompanyId = ConfigurationManager.AppSettings["CompanyId"].ToLower();
//private static string Corpid = ConfigurationManager.AppSettings["Corpid"];
//private static string DS7ConnStr = ConfigurationManager.ConnectionStrings["DongShengDB"].ConnectionString;
private static string DS6ConnStr = ConfigurationManager.ConnectionStrings["DS6DB"].ConnectionString;
private string RecMqUri = ConfigurationManager.AppSettings["ReceiveMQUri"];
//private string FeeInputUserId = ConfigurationManager.AppSettings["FeeInputUserId"];
private static string UserNameStr = ConfigurationManager.AppSettings["UserNameStr"];
private IConnection mqConn;
//费用相关配置
//private static string FeePayName = ConfigurationManager.AppSettings["FeePayName"];
//private static string FeePayCustomer = ConfigurationManager.AppSettings["FeePayCustomer"];
//private static string FeePayCustomerType = ConfigurationManager.AppSettings["FeePayCustomerType"];
//private static decimal FeePayPrice = Convert.ToDecimal(ConfigurationManager.AppSettings["FeePayPrice"]);
//private static string FeePayMyshippingName = ConfigurationManager.AppSettings["FeePayMyshippingName"];
//private static string FeePayMyshippingCustomer = ConfigurationManager.AppSettings["FeePayMyshippingCustomer"];
//private static decimal FeePayMyshippingPrice = Convert.ToDecimal(ConfigurationManager.AppSettings["FeePayMyshippingPrice"]);
//private static string FeeShouName = ConfigurationManager.AppSettings["FeeShouName"];
private CommonDataContext dS7Data = new CommonDataContext();
public List<string> usernamelist=new List<string>();
public bool Start(HostControl hostControl)
{
// 开始具体的业务逻辑
logger.Debug("开始运行");
dS7Data.Database.Log = (x => { logger.Debug(x); });
if (!string.IsNullOrWhiteSpace(UserNameStr)) {
usernamelist = UserNameStr.Split(',').ToList() ;
}
try
{
ConnectionFactory factory = new ConnectionFactory();
factory.Uri = new Uri(RecMqUri);
mqConn = factory.CreateConnection();
IModel modelDingCang = mqConn.CreateModel();
modelDingCang.ExchangeDeclare(ExchangeName, ExchangeType.Direct);
modelDingCang.QueueDeclare($"{QueuePrefix_DingCang}{CompanyId}", false, false, false, null);
var consumerDingCang = new EventingBasicConsumer(modelDingCang);
consumerDingCang.Received += (ch, ea) =>
{
var body = ea.Body;
var strBody = Encoding.UTF8.GetString(body.ToArray());
logger.Debug($"收到大简云订舱输出数据:{strBody}");
try
{
//导出到东胜6
DingCangToDS6(JArray.Parse(strBody));
}
catch (Exception ex)
{
var excep = ex;
while (excep != null)
{
logger.Error(excep.Message);
logger.Error(excep.StackTrace);
excep = excep.InnerException;
}
}
};
//第二个参数控制【是否消费掉队列里的数据】
modelDingCang.BasicConsume($"{QueuePrefix_DingCang}{CompanyId}", true, consumerDingCang);
}
catch (Exception e) {
logger.Error(e.Message);
}
return true;
}
public bool Stop(HostControl hostControl)
{
// 结束
logger.Debug("停止运行");
//StdSchedulerFactory.GetDefaultScheduler().Shutdown();
mqConn.Close();
return true;
}
#region 舱单数据解析实体类
public class Ctnlist
{
/// <summary>
///
/// </summary>
public string ctn_id { get; set; }
/// <summary>
///
/// </summary>
public string MFNO { get; set; }
/// <summary>
///
/// </summary>
public string CTNCODE { get; set; }
/// <summary>
///
/// </summary>
public int? SIZE { get; set; }
/// <summary>
///
/// </summary>
public string CTN { get; set; }
/// <summary>
///
/// </summary>
public int? CTNNUM { get; set; }
/// <summary>
///
/// </summary>
public int? TEU { get; set; }
/// <summary>
///
/// </summary>
public string CTNALL { get; set; }
/// <summary>
///
/// </summary>
public string CNTRNO { get; set; }
/// <summary>
///
/// </summary>
public string SEALNO { get; set; }
/// <summary>
///
/// </summary>
public int? PKGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? KGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? CBM { get; set; }
/// <summary>
///
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
///
/// </summary>
public string DESCRIPTION { get; set; }
/// <summary>
///
/// </summary>
public string MARKS { get; set; }
/// <summary>
///
/// </summary>
public string PO { get; set; }
/// <summary>
///
/// </summary>
public string SKU { get; set; }
/// <summary>
///
/// </summary>
public string SKUDESCRIP { get; set; }
/// <summary>
///
/// </summary>
public string DUNNO { get; set; }
/// <summary>
///
/// </summary>
public string HTS { get; set; }
/// <summary>
///
/// </summary>
public string CTOFORIGIN { get; set; }
/// <summary>
///
/// </summary>
public decimal? GOODVALUE { get; set; }
/// <summary>
///
/// </summary>
public string CTNOWNER { get; set; }
/// <summary>
///
/// </summary>
public string ShiFengRen { get; set; }
/// <summary>
///
/// </summary>
public string LeiXingFa { get; set; }
/// <summary>
///
/// </summary>
public string LeiXingShou { get; set; }
/// <summary>
///
/// </summary>
public string LeiXingTong { get; set; }
/// <summary>
///
/// </summary>
public int ZhongKongBiaoShi { get; set; }
/// <summary>
///
/// </summary>
public string ChengZhongZhongLiang { get; set; }
/// <summary>
///
/// </summary>
public string ChengZhongFangShi { get; set; }
/// <summary>
///
/// </summary>
public string ChengZhongShiJian { get; set; }
/// <summary>
///
/// </summary>
public decimal? PIZHONG { get; set; }
/// <summary>
///
/// </summary>
public string APICTNID { get; set; }
/// <summary>
///
/// </summary>
public DateTime? VGMCLOSETIME { get; set; }
}
public class OpSeaeEdi
{
/// <summary>
///
/// </summary>
public string MBLNO { get; set; }
/// <summary>
///
/// </summary>
public string HBLNO { get; set; }
/// <summary>
///
/// </summary>
public string CARRIERID { get; set; }
/// <summary>
///
/// </summary>
public string CARRIER { get; set; }
/// <summary>
///
/// </summary>
public string WeiTuoFaSongFang { get; set; }
/// <summary>
///
/// </summary>
public string DESTINATION { get; set; }
/// <summary>
///
/// </summary>
public string DESTINATIONID { get; set; }
/// <summary>
///
/// </summary>
public string PORTDISCHARGE { get; set; }
/// <summary>
///
/// </summary>
public string PORTDISCHARGEID { get; set; }
/// <summary>
///
/// </summary>
public DateTime? ETD { get; set; }
/// <summary>
///
/// </summary>
public string CompId { get; set; }
/// <summary>
/// 东方海外物流(中国)有限公司青岛分公司
/// </summary>
public string CompName { get; set; }
/// <summary>
///
/// </summary>
public string MFNO { get; set; }
/// <summary>
///
/// </summary>
public string BSNO { get; set; }
/// <summary>
///
/// </summary>
public string MASTERNO { get; set; }
/// <summary>
///
/// </summary>
public string SHIPPERNAME { get; set; }
/// <summary>
///
/// </summary>
public string SHIPPERADDR1 { get; set; }
/// <summary>
///
/// </summary>
public string SHIPPERCOUNTRY { get; set; }
/// <summary>
///
/// </summary>
public string SHIPPERTEL { get; set; }
/// <summary>
///
/// </summary>
public string CONSIGNEENAME { get; set; }
/// <summary>
///
/// </summary>
public string CONSIGNEEADDR1 { get; set; }
/// <summary>
///
/// </summary>
public string CONSIGNEECOUNTRY { get; set; }
public string CONSIGNEETEL { get; set; }
public string NOTIFYPARTYNAME { get; set; }
public string NOTIFYPARTYADDR1 { get; set; }
/// <summary>
///
/// </summary>
public string NOTIFYPARTYCOUNTRY { get; set; }
/// <summary>
///
/// </summary>
public string NOTIFYPARTYTEL { get; set; }
/// <summary>
///
/// </summary>
public string SHIPPER { get; set; }
/// <summary>
///
/// </summary>
public string CONSIGNEE { get; set; }
/// <summary>
///
/// </summary>
public string NOTIFYPARTY { get; set; }
/// <summary>
///
/// </summary>
public string VESSEL { get; set; }
/// <summary>
///
/// </summary>
public string VOYNO { get; set; }
/// <summary>
///
/// </summary>
public string PORTLOADID { get; set; }
/// <summary>
///
/// </summary>
public string PORTLOAD { get; set; }
/// <summary>
///
/// </summary>
public string PLACEDELIVERYID { get; set; }
/// <summary>
///
/// </summary>
public string PLACEDELIVERY { get; set; }
/// <summary>
///
/// </summary>
public string SERVICE { get; set; }
/// <summary>
///
/// </summary>
public string MARKS { get; set; }
/// <summary>
///
/// </summary>
public string DESCRIPTION { get; set; }
/// <summary>
///
/// </summary>
public int? PKGS { get; set; }
/// <summary>
///
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? KGS { get; set; }
/// <summary>
///
/// </summary>
public decimal? CBM { get; set; }
/// <summary>
///
/// </summary>
public string CARGOID { get; set; }
/// <summary>
///
/// </summary>
public string DCLASS { get; set; }
/// <summary>
///
/// </summary>
public string DUNNO { get; set; }
/// <summary>
///
/// </summary>
public string REEFERF { get; set; }
/// <summary>
///
/// </summary>
public string TEMPID { get; set; }
/// <summary>
///
/// </summary>
public string TEMPSET { get; set; }
/// <summary>
///
/// </summary>
public string TEMPMAX { get; set; }
/// <summary>
///
/// </summary>
public string TEMPMIN { get; set; }
/// <summary>
///
/// </summary>
public string FREIGHTAGMNO { get; set; }
/// <summary>
///
/// </summary>
public string HUMIDITY { get; set; }
/// <summary>
///
/// </summary>
public string SHIPIMO { get; set; }
/// <summary>
///
/// </summary>
public DateTime? ETA { get; set; }
/// <summary>
///
/// </summary>
public string BLFRT { get; set; }
/// <summary>
///
/// </summary>
public DateTime? SENDTIME { get; set; }
/// <summary>
///
/// </summary>
public string YARD { get; set; }
/// <summary>
/// 外代
/// </summary>
public string FORWARDER { get; set; }
/// <summary>
///
/// </summary>
public List<Ctnlist> ctnlist { get; set; }
}
#endregion
/// <summary>
/// 舱单数据生成到OPOther版本的舱单业务中 经汉专用
/// </summary>
/// <param name="jarr"></param>
//public void CangdanDataToDS7_OPOther(JArray jarr)
//{
// try
// {
// var opUser = dS7Data.User.AsNoTracking().First(u => u.GID == FeeInputUserId);
// foreach (var item in jarr)
// {
// var obj = item as JObject;
// var itemstr = item.ToString();
// var _edi = JsonConvert.DeserializeObject<OpSeaeEdi>(itemstr);
// var MBLNO = obj.GetValue("MBLNO").ToString();
// var HBLNO = obj.GetValue("HBLNO").ToString();
// var CARRIERID = obj.GetValue("CARRIERID").ToString();
// var CARRIER = obj.GetValue("CARRIER").ToString();
// var WeiTuoFaSongFang = obj.GetValue("WeiTuoFaSongFang").ToString();
// var DESTINATION = obj.GetValue("DESTINATION").ToString();
// var DESTINATIONID = obj.GetValue("DESTINATIONID").ToString();
// var PORTDISCHARGE = obj.GetValue("PORTDISCHARGE").ToString();
// var PORTDISCHARGEID = obj.GetValue("PORTDISCHARGEID").ToString();
// var strETD = obj.GetValue("ETD").ToString();
// var ETD = Convert.ToDateTime(strETD);
// var CompId = obj.GetValue("CompId").ToString();
// var ORDERNO = obj.GetValue("ORDERNO").ToString();
// var 对账约号 = obj.GetValue("REMARKS").ToString();
// //看op_other当中有没有该业务主单 如无则增加
// var 主单mfno = "topother" + _edi.MFNO;
// if (!string.IsNullOrWhiteSpace(_edi.BSNO)) 主单mfno = "topother" + _edi.BSNO;
// op_other_md op_other = dS7Data.op_other.FirstOrDefault(x => x.BSNO == 主单mfno);
// var BSNO = "";
// var CUSTNOHEAD = "";
// var CUSTOMERNAME = "";
// var SOURCEOP = "";
// var 费用标准结算对象 = "";
// var 船代 = "";
// var custEdi = dS7Data.CodeCustEdi.AsNoTracking().FirstOrDefault(x => x.EDINAME == "DJY_OUTPUT" && x.EDICODE == WeiTuoFaSongFang);
// if (custEdi != null)
// {
// 费用标准结算对象 = custEdi.CUST;
// }
// var 船代Edi= dS7Data.CodeCustEdi.AsNoTracking().FirstOrDefault(x => x.EDINAME == "DJY_OUTPUT" && x.EDICODE == _edi.FORWARDER);
// if (船代Edi != null) {
// 船代 = 船代Edi.CUST;
// }
// //如果大简云业务中的【订舱编号】空着,则用大简云舱单界面的【委托发送方】 寻找EDI代码设置中的EDICODE =【委托发送方】 EDINAME = 大简云的客户 填入【委托单位】字段的内容
// //如果大简云业务中的【订舱编号】不为空, 录入的是"市场部/海运部,MKT1(英文逗号分割)"
// //根据【订舱编号】录入的"市场部/海运部"对应到东胜系统里的【委托单位】通过EDI代码设置中的EDICODE = 市场部 / 海运部 EDINAME = 大简云选择填入【委托单位】字段的内容
// //订舱编号里逗号后面的“MKT1”放到源操作SOURCEOP上
// //导入舱单时产生的舱单费
// //1 单价从cust_fee_templatedetail当中的舱单费选取
// //选取标准为根据大简云舱单界面的【委托发送方】寻找EDI代码设置中的EDICODE =【委托发送方】 EDINAME = 大简云的客户 用这个客户名称查询cust_fee_templatedetail当中的舱单费
// //2费用的结算对象 为这票业务在东胜系统中的委托单位
// if (string.IsNullOrWhiteSpace(ORDERNO))
// {
// //var custEdi = dS7Data.CodeCustEdi.AsNoTracking().FirstOrDefault(x => x.EDINAME == "DJY_OUTPUT" && x.EDICODE == WeiTuoFaSongFang);
// //if (custEdi != null)
// //{
// // CUSTOMERNAME = custEdi.CUST;
// //}
// CUSTOMERNAME = 费用标准结算对象;
// }
// else {
// ORDERNO=ORDERNO.Replace("", ",");
// var orderinfo = ORDERNO.Split(',').ToList();
// if (orderinfo.Count == 0) {
// orderinfo.Add("");
// orderinfo.Add("");
// }
// if (orderinfo.Count == 1)
// {
// orderinfo.Add("");
// }
// var cust = orderinfo[0];
// var custEdi2 = dS7Data.CodeCustEdi.AsNoTracking().FirstOrDefault(x => x.EDINAME == "DJY_OUTPUT" && x.EDICODE == cust);
// if (custEdi2 != null)
// {
// CUSTOMERNAME = custEdi2.CUST;
// }
// SOURCEOP = orderinfo[1];
// }
// var 委托单位 = dS7Data.info_client.FirstOrDefault(x => x.SHORTNAME == CUSTOMERNAME);
// if (op_other == null || op_other.BSNO == null || op_other.BSNO == "")
// {
// logger.Debug($"未找到委托数据:{MBLNO}");
// BSNO = 主单mfno;
// //件数 毛重 净重 尺码 sum
// var PKGS = 0;
// var KGS = 0M;
// var CBM = 0M;
// foreach (var ja in jarr)
// {
// var _edi2= JsonConvert.DeserializeObject<OpSeaeEdi>(ja.ToString());
// PKGS += _edi2.PKGS==null?0:(int)_edi2.PKGS;
// KGS += _edi2.KGS == null ? 0M : (decimal)_edi2.KGS;
// CBM += _edi2.CBM == null ? 0M : (decimal)_edi2.CBM;
// }
// var newrec = new op_other_md
// {
// BSNO = BSNO,
// OPLB = "op_other",
// OPLBNAME = "舱单申报",
// BSSTATUS = false,
// FEESTATUS = false,
// MBLNO = MBLNO,
// HBLNO = "",
// CUSTOMERNAME = 委托单位.SHORTNAME,
// //CUSTOMERNAME2 = WeiTuoFaSongFang,//20230313-大简云舱单界面的【委托发送方】录入东胜系统的实际客户,
// //CARRIER
// BSDATE = DateTime.Today,
// ACCDATE = DateTime.Now.ToString("yyyy-MM"),
// BSSOURCE = 委托单位.BSSOURCE,
// OP = opUser.SHOWNAME,
// CUSTSERVICE = opUser.SHOWNAME,
// SALE = opUser.SHOWNAME,
// CORPID = Corpid,
// ETD = ETD,//业务日期
// //SR2023011000005
// PORTLOAD = _edi.PORTLOAD,//装货港
// PORTDISCHARGE = _edi.PORTDISCHARGE,//卸货港
// PKGS = PKGS,
// KGS = KGS,
// NETWEIGHT = 0,
// CBM = CBM,
// //SOURCEOP = SOURCEOP,
// //SHIPAGENT = 船代
// };
// //,DUIYUEHAO = 对账约号
// //20230317 对账约号存于opLogic
// var cdc = new CommonDataContext();
// var dic = new Dictionary<string, string>
// {
// { "DUIYUEHAO",对账约号 }
// };
// SaveLogicInfo(BSNO, "舱单业务", dic);
// var billnoset = dS7Data.SysBillNoSet.AsNoTracking().FirstOrDefault(x => x.COMPANYID == Corpid && x.OPLBNAME == "舱单申报" && x.RULEBLNO == "委托编号");
// if (billnoset != null)
// newrec.CUSTNO = GetBillNo(billnoset, newrec.ETD.ToString(), newrec.ACCDATE, opname: opUser.SHOWNAME, corpid: Corpid);
// else
// {
// logger.Debug($"SysBillNoSet数据未找到无法生成编号{MBLNO}");
// }
// dS7Data.op_other.Add(newrec);
// dS7Data.SaveChanges();
// op_other= dS7Data.op_other.FirstOrDefault(x => x.BSNO == 主单mfno);
// }
// else
// {
// logger.Debug($"委托数据已存在:{MBLNO}");
// BSNO = op_other.BSNO;
// CUSTNOHEAD = op_other.CUSTNO;
// }
// //看op_seae_edi当中有没有该业务 如无则增加
// var ediList = dS7Data.op_seae_edi.Where(x => x.BSNO == BSNO).ToList();
// if (!ediList.Exists(x => x.MBLNO == MBLNO && x.HBLNO == HBLNO))
// {
// var newedi = new op_seae_edi_md {
// MFNO = _edi.MFNO,
// BSNO = 主单mfno,
// MASTERNO = 主单mfno,
// CUSTNO = CUSTNOHEAD + (ediList.Count + 1).ToString(),
// MBLNO =_edi.MBLNO,
// HBLNO = _edi.HBLNO,
// CARRIERID = _edi.CARRIERID,
// CARRIER = _edi.CARRIER,
// //WeiTuoFaSongFang = _edi.WeiTuoFaSongFang,
// DESTINATION = _edi.DESTINATION,
// DESTINATIONID = _edi.DESTINATIONID,
// PORTDISCHARGE = _edi.PORTDISCHARGE,
// PORTDISCHARGEID = _edi.PORTDISCHARGEID,
// ETD = _edi.ETD,
// SHIPPERNAME = _edi.SHIPPERNAME,
// SHIPPERADDR1 = _edi.SHIPPERADDR1,
// SHIPPERCOUNTRY = _edi.SHIPPERCOUNTRY,
// SHIPPERTEL = _edi.SHIPPERTEL,
// CONSIGNEENAME = _edi.CONSIGNEENAME,
// CONSIGNEEADDR1 = _edi.CONSIGNEEADDR1,
// CONSIGNEECOUNTRY = _edi.CONSIGNEECOUNTRY,
// CONSIGNEETEL = _edi.CONSIGNEETEL,
// NOTIFYPARTYNAME = _edi.NOTIFYPARTYNAME,
// NOTIFYPARTYADDR1 = _edi.NOTIFYPARTYADDR1,
// NOTIFYPARTYCOUNTRY = _edi.NOTIFYPARTYCOUNTRY,
// NOTIFYPARTYTEL = _edi.NOTIFYPARTYTEL,
// SHIPPER = _edi.SHIPPER,
// CONSIGNEE = _edi.CONSIGNEE,
// NOTIFYPARTY = _edi.NOTIFYPARTY,
// VESSEL = _edi.VESSEL,
// VOYNO = _edi.VOYNO,
// PORTLOADID = _edi.PORTLOADID,
// PORTLOAD = _edi.PORTLOAD,
// PLACEDELIVERYID = _edi.PLACEDELIVERYID,
// PLACEDELIVERY = _edi.PLACEDELIVERY,
// SERVICE = _edi.SERVICE,
// MARKS = _edi.MARKS,
// DESCRIPTION = _edi.DESCRIPTION,
// PKGS = _edi.PKGS,
// KINDPKGS = _edi.KINDPKGS,
// KGS = _edi.KGS,
// CBM = _edi.CBM,
// CARGOID = _edi.CARGOID,
// DCLASS = _edi.DCLASS,
// DUNNO = _edi.DUNNO,
// REEFERF = _edi.REEFERF,
// TEMPID = _edi.TEMPID,
// TEMPSET = _edi.TEMPSET,
// TEMPMAX = _edi.TEMPMAX,
// TEMPMIN = _edi.TEMPMIN,
// FREIGHTAGMNO = _edi.FREIGHTAGMNO,
// HUMIDITY = _edi.HUMIDITY,
// SHIPIMO = _edi.SHIPIMO,
// ETA = _edi.ETA,
// BLFRT = _edi.BLFRT,
// SENDTIME = _edi.SENDTIME,
// YARD = _edi.YARD,
// FORWARDER = _edi.FORWARDER,
// CORPID= Corpid
// };
// dS7Data.op_seae_edi.Add(newedi);
// if (_edi.ctnlist != null && _edi.ctnlist.Count > 0) {
// foreach (var ctn in _edi.ctnlist) {
// var newctn = new op_seae_edi_ctn_md
// {
// ctn_id = Guid.NewGuid().ToString(),//ctn.ctn_id,
// MFNO = _edi.MFNO,
// CTNCODE = ctn.CTNCODE,
// CNTRNO= ctn.CNTRNO,
// SEALNO = ctn.SEALNO,
// SIZE = ctn.SIZE.ToString(),
// CTN = ctn.CTN,
// CTNNUM = ctn.CTNNUM,
// TEU = ctn.TEU,
// CTNALL = ctn.CTNALL,
// PKGS = ctn.PKGS,
// KGS = ctn.KGS,
// CBM = ctn.CBM,
// KINDPKGS = ctn.KINDPKGS,
// DESCRIPTION = ctn.DESCRIPTION,
// MARKS = ctn.MARKS,
// PO = ctn.PO,
// SKU = ctn.SKU,
// SKUDESCRIP = ctn.SKUDESCRIP,
// DUNNO = ctn.DUNNO,
// HTS = ctn.HTS,
// CTOFORIGIN = ctn.CTOFORIGIN,
// GOODVALUE = ctn.GOODVALUE,
// CTNOWNER = ctn.CTNOWNER
// };
// dS7Data.op_seae_edi_ctn.Add(newctn);
// }
// }
// dS7Data.SaveChanges();
// }
// //只要有对应的往来单位=委托发送方 主分单都产生相应的应收
// info_client_md infoClient = null;
// if (!string.IsNullOrEmpty(CUSTOMERNAME))
// {
// infoClient = dS7Data.info_client.AsNoTracking().FirstOrDefault(x => x.SHORTNAME == CUSTOMERNAME);
// if (infoClient != null)
// {
// op_other.SALE = infoClient.SALE; //揽货人赋值
// //查询配置,生成应收
// var fee = dS7Data.CustFeeTemplateDetail.AsNoTracking().FirstOrDefault(x => x.CUSTOMERNAME == 费用标准结算对象 && x.FEENAME == FeeShouName);
// if (fee == null) {
// fee = dS7Data.CustFeeTemplateDetail.AsNoTracking().FirstOrDefault(x => x.CUSTOMERNAME == 委托单位.SHORTNAME && x.FEENAME == FeeShouName);
// }
// if (fee != null )
// {
// var feeShou = new ch_fee_md();
// feeShou.GID = Guid.NewGuid().ToString().Replace("-", "");
// feeShou.BSNO = op_other.BSNO;
// feeShou.FEETYPE = 1;
// feeShou.FEENAME = FeeShouName;
// feeShou.CUSTOMERTYPE = "其他";
// feeShou.CUSTOMERNAME = infoClient.SHORTNAME;
// feeShou.UNIT = fee.UNIT;
// feeShou.UNITPRICE = fee.UNITPRICE;
// feeShou.QUANTITY = 1;
// feeShou.AMOUNT = fee.UNITPRICE;
// feeShou.EXCHANGERATE = 1;
// feeShou.CURRENCY = "RMB";
// feeShou.ENTEROPERATOR = FeeInputUserId;
// feeShou.ENTERDATE = DateTime.Now;
// feeShou.MODIFIEDUSER = FeeInputUserId;
// feeShou.MODIFIEDTIME = DateTime.Now;
// feeShou.LOCALCURR = feeShou.CURRENCY;
// feeShou.FEEDESCRIPTION = feeShou.FEENAME;
// feeShou.FEESTATUS = 0;//费用插入时状态为提交审核2021-12-8要求插入时状态改为录入状态12021-12-9要求状态为审核通过状态0
// //2021-12-8下列字段不能为空写入默认值
// feeShou.SETTLEMENT = 0;
// feeShou.ORDERAMOUNT = 0;
// feeShou.ORDERINVOICE = 0;
// feeShou.ORDERINVSETTLEMENT = 0;
// feeShou.ORDERSETTLEMENT = 0;
// feeShou.INVOICE = 0;
// feeShou.TAXRATE = 0;
// feeShou.ISADVANCEDPAY = false;
// feeShou.ISINVOICE = false;
// feeShou.ISCRMORDERFEE = false;
// feeShou.TAXUNITPRICE = fee.UNITPRICE;//2021-12-29于菲同样赋值单价和金额
// feeShou.NOTAXAMOUNT = fee.UNITPRICE;//2021-12-29于菲同样赋值单价和金额
// //2021-12-9要求下列字段不能为空填写0或false
// feeShou.COMMISSIONRATE = 0;
// feeShou.AUDITSTATUS = 0;
// feeShou.LINENUM = 0;
// feeShou.ISDEBIT = false;
// feeShou.ISOPEN = false;
// feeShou.ACCTAXRATE = 0;
// feeShou.ISVOU = false;
// feeShou.TAX = 0;
// feeShou.PREAMOUNT = 0;
// feeShou.ISACC = false;
// feeShou.CUSTDUI = false;
// feeShou.BXGID = HBLNO;
// //2021-12-23分单号写入备注
// //if (!string.IsNullOrEmpty(HBLNO))
// //{
// // feeShou.REMARK += $" {HBLNO} ";
// //}
// dS7Data.ch_fee.Add(feeShou);
// }
// }
// }
// if (FeePayCustomerType == "船代") {
// //20230327 改为:
// //如应付对象类型为船代 则结算对象改为该业务的船代公司
// FeePayCustomer = 船代;
// }
// var 分单号 = HBLNO;
// if (string.IsNullOrWhiteSpace(HBLNO)) {
// 分单号 = MBLNO;
// }
// //应付
// if (string.IsNullOrEmpty(HBLNO) && FeePayPrice>0) //主单才插入船代费用
// {
// var feeFu = new ch_fee_md();
// feeFu.GID = Guid.NewGuid().ToString().Replace("-", "");
// feeFu.BSNO = op_other.BSNO;
// feeFu.FEETYPE = 2;
// feeFu.FEENAME = FeePayName;
// feeFu.CUSTOMERTYPE = FeePayCustomerType;
// feeFu.CUSTOMERNAME = FeePayCustomer;
// feeFu.UNIT = "票";
// feeFu.UNITPRICE = FeePayPrice;
// feeFu.QUANTITY = 1;
// feeFu.AMOUNT = FeePayPrice;
// feeFu.EXCHANGERATE = 1;
// feeFu.CURRENCY = "RMB";
// feeFu.ENTEROPERATOR = FeeInputUserId;
// feeFu.ENTERDATE = DateTime.Now;
// feeFu.MODIFIEDUSER = FeeInputUserId;
// feeFu.MODIFIEDTIME = DateTime.Now;
// feeFu.LOCALCURR = feeFu.CURRENCY;
// feeFu.FEEDESCRIPTION = feeFu.FEENAME;
// feeFu.FEESTATUS = 0;//费用插入时状态为提交审核2021-12-8要求插入时状态改为录入状态12021-12-9要求状态为审核通过状态0
// //2021-12-8下列字段不能为空写入默认值
// feeFu.SETTLEMENT = 0;
// feeFu.ORDERAMOUNT = 0;
// feeFu.ORDERINVOICE = 0;
// feeFu.ORDERINVSETTLEMENT = 0;
// feeFu.ORDERSETTLEMENT = 0;
// feeFu.INVOICE = 0;
// feeFu.TAXRATE = 0;
// feeFu.ISADVANCEDPAY = false;
// feeFu.ISINVOICE = false;
// feeFu.ISCRMORDERFEE = false;
// feeFu.TAXUNITPRICE = FeePayPrice;
// feeFu.NOTAXAMOUNT = 0;
// //2021-12-9要求下列字段不能为空填写0或false
// feeFu.COMMISSIONRATE = 0;
// feeFu.AUDITSTATUS = 0;
// feeFu.LINENUM = 0;
// feeFu.ISDEBIT = false;
// feeFu.ISOPEN = false;
// feeFu.ACCTAXRATE = 0;
// feeFu.ISVOU = false;
// feeFu.TAX = 0;
// feeFu.PREAMOUNT = 0;
// feeFu.ISACC = false;
// feeFu.CUSTDUI = false;
// feeFu.BXGID = 分单号;
// dS7Data.ch_fee.Add(feeFu);
// dS7Data.SaveChanges();
// }
// if (FeePayMyshippingPrice > 0) {
// //不管主单分单都要付费给大简云
// var feeFuDJY = new ch_fee_md();
// feeFuDJY.GID = Guid.NewGuid().ToString().Replace("-", "");
// feeFuDJY.BSNO = op_other.BSNO;
// feeFuDJY.FEETYPE = 2;
// feeFuDJY.FEENAME = FeePayMyshippingName;
// feeFuDJY.CUSTOMERTYPE = "其他";
// feeFuDJY.CUSTOMERNAME = FeePayMyshippingCustomer;
// feeFuDJY.UNIT = "票";
// feeFuDJY.UNITPRICE = FeePayMyshippingPrice;
// feeFuDJY.QUANTITY = 1;
// feeFuDJY.AMOUNT = FeePayMyshippingPrice;
// feeFuDJY.EXCHANGERATE = 1;
// feeFuDJY.CURRENCY = "RMB";
// feeFuDJY.ENTEROPERATOR = FeeInputUserId;
// feeFuDJY.ENTERDATE = DateTime.Now;
// feeFuDJY.MODIFIEDUSER = FeeInputUserId;
// feeFuDJY.MODIFIEDTIME = DateTime.Now;
// feeFuDJY.LOCALCURR = feeFuDJY.CURRENCY;
// feeFuDJY.FEEDESCRIPTION = feeFuDJY.FEENAME;
// feeFuDJY.FEESTATUS = 0;//费用插入时状态为提交审核2021-12-8要求插入时状态改为录入状态12021-12-9要求状态为审核通过状态0
// //2021-12-8下列字段不能为空写入默认值
// feeFuDJY.SETTLEMENT = 0;
// feeFuDJY.ORDERAMOUNT = 0;
// feeFuDJY.ORDERINVOICE = 0;
// feeFuDJY.ORDERINVSETTLEMENT = 0;
// feeFuDJY.ORDERSETTLEMENT = 0;
// feeFuDJY.INVOICE = 0;
// feeFuDJY.TAXRATE = 0;
// feeFuDJY.ISADVANCEDPAY = false;
// feeFuDJY.ISINVOICE = false;
// feeFuDJY.ISCRMORDERFEE = false;
// feeFuDJY.TAXUNITPRICE = FeePayMyshippingPrice;
// feeFuDJY.NOTAXAMOUNT = 0;
// //2021-12-9要求下列字段不能为空填写0或false
// feeFuDJY.COMMISSIONRATE = 0;
// feeFuDJY.AUDITSTATUS = 0;
// feeFuDJY.LINENUM = 0;
// feeFuDJY.ISDEBIT = false;
// feeFuDJY.ISOPEN = false;
// feeFuDJY.ACCTAXRATE = 0;
// feeFuDJY.ISVOU = false;
// feeFuDJY.TAX = 0;
// feeFuDJY.PREAMOUNT = 0;
// feeFuDJY.ISACC = false;
// feeFuDJY.CUSTDUI = false;
// feeFuDJY.BXGID = 分单号;
// dS7Data.ch_fee.Add(feeFuDJY);
// //dS7Data.Database.Log = (x => { logger.Debug(x); });
// dS7Data.SaveChanges();
// }
// }
// }
// catch (Exception e) {
// logger.Error($"导入舱单出错:{e}");
// }
//}
/// <summary>
/// 生成编号从东胜7移植并修改
/// </summary>
/// <param name="billType"></param>
/// <param name="bsdate"></param>
/// <param name="accdate"></param>
/// <param name="dbname"></param>
/// <param name="opname"></param>
/// <param name="corpid"></param>
/// <param name="bshead"></param>
/// <returns></returns>
private string GetBillNo(SysBillNoSet billType, string bsdate, string accdate, string dbname = "", string opname = "", string corpid = "", string bshead = "")
{
var orgCode = "";
var UserCode = "";
UserCode = GetUserCode(opname, dbname);
orgCode = GetCorpCode(corpid, dbname);
//List<SqlParameter> paramArray = new List<SqlParameter>();
//paramArray.Add(new SqlParameter("@ps_BillType", billType.BILLTYPE));
//paramArray.Add(new SqlParameter("@ps_OrgCode", orgCode));
//paramArray.Add(new SqlParameter("@ps_EmpCode", UserCode));
//paramArray.Add(new SqlParameter("@ps_bshead", bshead));
//if (billType.RULEDATETYPE == "业务日期")
// paramArray.Add(new SqlParameter("@ps_Date", bsdate));
//else if (billType.RULEDATETYPE == "会计期间" && accdate.Length == 7)
// paramArray.Add(new SqlParameter("@ps_Date", accdate + "-01"));
//else
// paramArray.Add(new SqlParameter("@ps_Date", accdate + ""));
//paramArray.Add(new SqlParameter("@ps_BillNo", 20));
//SqlParameter sqlParaOut = new SqlParameter("@ps_RefBillNo", SqlDbType.VarChar, 50);
//sqlParaOut.Direction = ParameterDirection.Output;
//paramArray.Add(sqlParaOut);
//dS7Data.Database.ExecuteSqlCommand("EXEC [sSysGetBillNo_new] @ps_BillType,@ps_OrgCode,@ps_EmpCode,@ps_bshead,@ps_Date,@ps_BillNo,@ps_RefBillNo output", paramArray.ToArray());
//ExecStoredProcedure("sSysGetBillNo_new", paramArray.ToArray());
var bsDate = string.Empty;
if (!string.IsNullOrWhiteSpace(bsdate))
bsdate = Convert.ToDateTime(bsdate).ToString("yyyy-MM-dd");
if (billType.RULEDATETYPE == "业务日期")
bsDate = bsdate;
else if (billType.RULEDATETYPE == "会计期间" && accdate.Length == 7)
bsDate = accdate + "-01";
else
bsDate = accdate;
var cmd = $@"DECLARE @ps_BillNo varchar(20)
EXEC [sSysGetBillNo_new]
@ps_BillType = N'{billType.BILLTYPE}',
@ps_OrgCode = N'{orgCode}',
@ps_EmpCode = N'{UserCode}',
@ps_Date = N'{bsDate}',
@ps_bshead = N'{bshead}',
@ps_BillNo = @ps_BillNo OUTPUT,
@ps_RefBillNo = N''
SELECT @ps_BillNo as N'billno'";
return dS7Data.Database.SqlQuery<string>(cmd).First();
}
/// <summary>
/// 获取用户code参考东胜7修改
/// </summary>
/// <param name="username"></param>
/// <param name="dbname"></param>
/// <returns></returns>
private string GetUserCode(string username, string dbname = "")
{
//string EDICODE = "";
//var strSql = new StringBuilder();
//strSql.Append("select CODENAME from [user] where SHOWNAME='" + username + "'");
//Database db = string.IsNullOrWhiteSpace(dbname) ? DatabaseFactory.CreateDatabase() : DatabaseFactory.CreateDatabase(dbname);
//using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
//{
// while (reader.Read())
// {
// EDICODE = Convert.ToString(reader["CODENAME"]);
// }
// reader.Close();
//}
//return EDICODE;
return dS7Data.Database.SqlQuery<string>("select CODENAME from [user] where SHOWNAME='" + username + "'").FirstOrDefault();
}
/// <summary>
/// 获取公司code参考东胜7修改
/// </summary>
/// <param name="Corpid"></param>
/// <param name="dbname"></param>
/// <returns></returns>
private string GetCorpCode(string Corpid, string dbname = "")
{
//string EDICODE = "";
//var strSql = new StringBuilder();
//strSql.Append("select CODENAME from [company] where GID='" + Corpid + "'");
//Database db = string.IsNullOrWhiteSpace(dbname) ? DatabaseFactory.CreateDatabase() : DatabaseFactory.CreateDatabase(dbname);
//using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
//{
// while (reader.Read())
// {
// EDICODE = Convert.ToString(reader["CODENAME"]);
// }
// reader.Close();
//}
//return EDICODE;
return dS7Data.Database.SqlQuery<string>("select CODENAME from [company] where GID='" + Corpid + "'").FirstOrDefault();
}
public static int ExecStoredProcedure(string procName, params SqlParameter[] parameters)
{
int rtn = 0;
using (SqlConnection conn = new SqlConnection(DS6ConnStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
SqlTransaction st = conn.BeginTransaction();
cmd.Transaction = st;
try
{
cmd.CommandText = procName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddRange(parameters);
var rr = cmd.ExecuteScalar();
st.Commit();
return rtn;
}
catch (SqlException sqlex)
{
st.Rollback();
throw sqlex;
}
}
}
}
/// <summary>
/// 调用DS6的委托编号存储过程
///
/// </summary>
/// <param name="Code">SE加会计期间年月 共8位</param>
/// <returns></returns>
public static string DS6GetBSNO(string Code)
{
//string strConnection = "user id=sa;password=sa;initial catalog=MyTest;Server=YHB;Connect Timeout=30";
using (SqlConnection conn = new SqlConnection(DS6ConnStr))
{
conn.Open();
using (SqlCommand sqlComm = conn.CreateCommand())
{
//设置要调用的存储过程的名称
sqlComm.CommandText = "p_no_get";
//指定SqlCommand对象传给数据库的是存储过程的名称而不是sql语句
sqlComm.CommandType = CommandType.StoredProcedure;
SqlParameter username = sqlComm.Parameters.Add(new SqlParameter("@Code", SqlDbType.VarChar, 20));
//指明"@username"是输入参数
username.Direction = ParameterDirection.Input;
//为“@username”参数赋值
username.Value = Code;
SqlParameter Num = sqlComm.Parameters.Add(new SqlParameter("@Num", SqlDbType.VarChar, 20));
//指定"@password"为输出参数
Num.Direction = ParameterDirection.Output;
//执行
sqlComm.ExecuteNonQuery();
//得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
string num = Convert.ToString(sqlComm.Parameters["@Num"].Value);
return num;
//MessageBox.Show(passwrod);
}
}
return "";
}
#region 大简云通过消息队列发布的订舱数据保存至DS6 用于合川家业务从大简云发布的消息队列中解析至DS6数据库
public void DingCangToDS6(JArray jarr)
{
try
{
DS6DataContext DS6Data = new DS6DataContext();
foreach (var item in jarr)
{
var obj = item as JObject;
var itemstr = item.ToString();
var head = JsonConvert.DeserializeObject<DingCangHead>(itemstr);
//判断业务是否存在。判断依据为head.
//如果不存在 则新增
//如存在则删除原有箱信息。ETD ATD 使用原有数据而不用大简云发布的信息覆盖
var currentBillList = DS6Data.t_op_seae.Where(x => x.DJYID == head.Id).ToList();
if (currentBillList != null && currentBillList.Count > 0)
{
//更新当前业务
var updrec = currentBillList[0];
var headid = updrec.;
var newhead = head.GetOpseae();
//过滤权限
var cando = (newhead., "776");
if (!cando)
{
logger.Debug($"录入人无权限:{newhead.录入人}");
continue;
}
//newhead.ETD = updrec.ETD;
//newhead.开船日期= updrec.开船日期;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
newhead. = updrec.;
DS6Data.t_op_seae.AddOrUpdate(newhead);
var ctnlist = DS6Data.t_op_ctn.Where(x => x. == headid).ToList();
DS6Data.t_op_ctn.RemoveRange(ctnlist);
var newctnList = head.GetCtnList(newhead);
DS6Data.t_op_ctn.AddRange(newctnList);
var amslist = DS6Data.t_op_ams.Where(x => x. == headid).ToList();
DS6Data.t_op_ams.RemoveRange(amslist);
var newamslist = head.GetAmsList(newhead);
DS6Data.t_op_ams.AddRange(newamslist);
var old_assistantList = DS6Data.t_op_seae_assistant.Where(x => x. == headid).ToList();
var assistantUpdList = new List<t_op_seae_assistant_md>();
var assistantAddList = new List<t_op_seae_assistant_md>();
var assistantDelList = new List<t_op_seae_assistant_md>();
//DS6Data.t_op_seae_assistant.RemoveRange(amslist);
var newassistantList = head.GetAssistantList(newhead);
foreach (var newassis in newassistantList) {
var needinsert = true;
if (old_assistantList != null && old_assistantList.Count > 0)
{
foreach (var oldassis in old_assistantList)
{
//if (newassis.BSNO == oldassis.BSNO)
//{
// var updassis = newassis;
// updassis.AS_ID = oldassis.AS_ID;
// assistantUpdList.Add(updassis);
// needinsert = false;
//}
//else
//{
assistantAddList.Add(newassis);
assistantDelList.Add(oldassis);
//}
}
}
//if (needinsert) assistantAddList.Add(newassis);
}
if (assistantDelList.Count > 0)
DS6Data.t_op_seae_assistant.RemoveRange(assistantDelList);
//if (assistantUpdList.Count > 0) {
// foreach(var upd in assistantUpdList)
// DS6Data.t_op_seae_assistant.AddOrUpdate(upd);
//}
if (assistantAddList.Count > 0)
DS6Data.t_op_seae_assistant.AddRange(assistantAddList);
logger.Debug($"更新数据:{newhead}");
DS6Data.SaveChanges();
}
else {
//新增业务
var newhead = head.GetOpseae();
//过滤权限
var cando = (newhead., "776");
if (!cando) continue;
var = DS6Data.t_op_seae.Max(m => m.);
var new = (int.Parse() + 1).ToString().PadLeft(10,' ');
newhead. = new;
newhead. = new;
newhead. = new;
newhead. = new;
newhead. = new;
newhead. = new;
newhead. = new;
var Code = "SE" + ((DateTime)(newhead.)).Year.ToString()+ ((DateTime)(newhead.)).Month.ToString().PadLeft(2, '0');
newhead. = DS6GetBSNO(Code);
DS6Data.t_op_seae.Add(newhead);
DS6Data.SaveChanges();
newhead = DS6Data.t_op_seae.First(x => x. == newhead.);
var headid = newhead.;
var ctnlist = DS6Data.t_op_ctn.Where(x => x. == headid).ToList();
DS6Data.t_op_ctn.RemoveRange(ctnlist);
var newctnList = head.GetCtnList(newhead);
DS6Data.t_op_ctn.AddRange(newctnList);
var amslist = DS6Data.t_op_ams.Where(x => x. == headid).ToList();
DS6Data.t_op_ams.RemoveRange(amslist);
var newamslist = head.GetAmsList(newhead);
DS6Data.t_op_ams.AddRange(newamslist);
var old_assistantList = DS6Data.t_op_seae_assistant.Where(x => x. == headid).ToList();
var assistantUpdList = new List<t_op_seae_assistant_md>();
var assistantAddList = new List<t_op_seae_assistant_md>();
var assistantDelList = new List<t_op_seae_assistant_md>();
//DS6Data.t_op_seae_assistant.RemoveRange(amslist);
var newassistantList = head.GetAssistantList(newhead);
foreach (var newassis in newassistantList)
{
var needinsert = true;
if (old_assistantList != null && old_assistantList.Count > 0)
{
foreach (var oldassis in old_assistantList)
{
if (newassis.BSNO == oldassis.BSNO)
{
var updassis = newassis;
updassis.AS_ID = oldassis.AS_ID;
assistantUpdList.Add(updassis);
needinsert = false;
}
else
{
assistantDelList.Add(oldassis);
}
}
}
if (needinsert) assistantAddList.Add(newassis);
}
if (assistantDelList.Count > 0)
DS6Data.t_op_seae_assistant.RemoveRange(assistantDelList);
if (assistantUpdList.Count > 0)
{
foreach (var upd in assistantUpdList)
DS6Data.t_op_seae_assistant.AddOrUpdate(upd);
}
if (assistantAddList.Count > 0)
DS6Data.t_op_seae_assistant.AddRange(assistantAddList);
logger.Debug($"添加数据:{newhead}");
DS6Data.SaveChanges();
}
}
}
catch (Exception e)
{
logger.Error($"导入订舱信息出错:{e}");
}
}
public bool (string username, string ) {
//SELECT [人员] FROM[dbo].[t_sys_code_emp] where 权限代码 = '776' and 是否可操作 = 1
/*
var ds6 = new DS6DataContext();
var _userinfo = ds6.t_sys_code_emp.Where(x => x. == username && x. == "776" && x. == true).ToList();
if (_userinfo != null && _userinfo.Count > 0)
{
return true;
}
else {
return false;
}*/
//测试期逻辑 判断是否在配置文件字段中存在
if (usernamelist.IndexOf(username) >= 0) {
return true;
}
else
{
return false;
}
}
#endregion
#region 大简云订舱数据解析类
public class DingCangHead {
public long Id { get; set; }
public string bsno { get; set; } //"string",
public string bsstatus { get; set; } //"string",
public string bsstatusname { get; set; } //"string",
public DateTime? bsdate { get; set; } //"2023-03-30T03:12:51.033Z",
public string mblno { get; set; } //"string",
public string hblno { get; set; } //"string",
public string bookingno { get; set; } //"string",
public string contractno { get; set; } //"string",
public string servicecontractno { get; set; } //"string",
public string shipperid { get; set; } //"string",
public string consigneeid { get; set; } //"string",
public string notifypartyid { get; set; } //"string",
public string shipper { get; set; } //"string",
public string consignee { get; set; } //"string",
public string notifyparty { get; set; } //"string",
public string notifypartY2 { get; set; } //"string",
public string yardid { get; set; } //"string",
public string yard { get; set; } //"string",
public string vesselid { get; set; } //"string",
public string vessel { get; set; } //"string",
public string voyno { get; set; } //"string",
public string voynoinner { get; set; } //"string",
public DateTime? etd { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? atd { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closingdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closedocdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closevgmdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? eta { get; set; } //"2023-03-30T03:12:51.033Z",
public string placereceiptid { get; set; } //"string",
public string placereceipt { get; set; } //"string",
public string portloadid { get; set; } //"string",
public string portload { get; set; } //"string",
public string portdischargeid { get; set; } //"string",
public string portdischarge { get; set; } //"string",
public string placedeliveryid { get; set; } //"string",
public string placedelivery { get; set; } //"string",
public string destinationid { get; set; } //"string",
public string destination { get; set; } //"string",
public string nobill { get; set; } //"string",
public string copynobill { get; set; } //"string",
public string issuetype { get; set; } //"string",
public DateTime? issuedate { get; set; } //"2023-03-30T03:12:51.033Z",
public string issueplaceid { get; set; } //"string",
public string issueplace { get; set; } //"string",
public string blfrt { get; set; } //"string",
public string prepardat { get; set; } //"string",
public string payableat { get; set; } //"string",
public string service { get; set; } //"string",
public string marks { get; set; } //"string",
public string hscode { get; set; } //"string",
public string description { get; set; } //"string",
public int? pkgs { get; set; } = 0;
public string kindpkgs { get; set; } //"string",
public decimal? kgs { get; set; } = 0;
public decimal? cbm { get; set; } = 0;
public string totalno { get; set; } //"string",
public string cntrtotal { get; set; } //"string",
public string carrierid { get; set; } //"string",
public string carrier { get; set; } //"string",
public string cargoid { get; set; } //"string",
public string dclass { get; set; } //"string",
public string dunno { get; set; } //"string",
public string dpage { get; set; } //"string",
public string dlabel { get; set; } //"string",
public string linkman { get; set; } //"string",
public string tempid { get; set; } //"string",
public string tempset { get; set; } //"string",
public string reeferf { get; set; } //"string",
public string humidity { get; set; } //"string",
public string tempmin { get; set; } //"string",
public string tempmax { get; set; } //"string",
public bool? iscontainersoc { get; set; } //true,
public string soremark { get; set; } //"string",
public string siremark { get; set; } //"string",
public string yardremark { get; set; } //"string",
public string compid { get; set; } //"string",
public string compname { get; set; } //"string",
public string shippername { get; set; } //"string",
public string shipperaddR1 { get; set; } //"string",
public string shipperaddR2 { get; set; } //"string",
public string shipperaddR3 { get; set; } //"string",
public string shippercity { get; set; } //"string",
public string shipperprovince { get; set; } //"string",
public string shipperpostcode { get; set; } //"string",
public string shippercountry { get; set; } //"string",
public string shipperattn { get; set; } //"string",
public string shippertel { get; set; } //"string",
public string consigneename { get; set; } //"string",
public string consigneeaddR1 { get; set; } //"string",
public string consigneeaddR2 { get; set; } //"string",
public string consigneeaddR3 { get; set; } //"string",
public string consigneecity { get; set; } //"string",
public string consigneeprovince { get; set; } //"string",
public string consigneepostcode { get; set; } //"string",
public string consigneercountry { get; set; } //"string",
public string consigneeattn { get; set; } //"string",
public string consigneetel { get; set; } //"string",
public string notifypartyname { get; set; } //"string",
public string notifypartyaddR1 { get; set; } //"string",
public string notifypartyaddR2 { get; set; } //"string",
public string notifypartyaddR3 { get; set; } //"string",
public string notifypartycity { get; set; } //"string",
public string notifypartyprovince { get; set; } //"string",
public string notifypartypostcode { get; set; } //"string",
public string notifypartycountry { get; set; } //"string",
public string notifypartyattn { get; set; } //"string",
public string notifypartytel { get; set; } //"string",
public string pono { get; set; } //"string",
public string opid { get; set; } //"string",
public string docid { get; set; } //"string",
public string op { get; set; } //"string",
public string doc { get; set; } //"string",
public string saleid { get; set; } //"string",
public string sale { get; set; } //"string",
public string custserviceid { get; set; } //"string",
public string custservice { get; set; } //"string",
public string customername { get; set; } //"string",
public string forwarder { get; set; } //"string",
public string shipagency { get; set; } //"string",
public string customser { get; set; } //"string",
public string trucker { get; set; } //"string",
public string agentid { get; set; } //"string",
public long? customerid { get; set; } //= 0;
public string forwarderid { get; set; } //"string",
public string shipagencyid { get; set; } //"string",
public string customserid { get; set; } //"string",
public string truckerid { get; set; } //"string",
public string agentname { get; set; } //"string",
public string weituo { get; set; } //"string",
public string consigneedooraddr { get; set; } //"string",
public string shipperdooraddr { get; set; } //"string",
public string scaccode { get; set; } //"string",
public string itncode { get; set; } //"string",
public string prepardatid { get; set; } //"string",
public string payableatid { get; set; } //"string",
public string custno { get; set; } //"string",
public string transportid { get; set; } //"string",
public string transport { get; set; } //"string",
public string thirdpayaddr { get; set; } //"string",
public string yardcontract { get; set; } //"string",
public string yardcontracttel { get; set; } //"string",
public string yardcontractemail { get; set; } //"string",
public bool? feeself { get; set; } //true,
public string lanecode { get; set; } //"string",
public string lanename { get; set; } //"string",
public string freightpayer { get; set; } //"string",
public string goodscode { get; set; } //"string",
public string goodsname { get; set; } //"string",
public string pkgstotal { get; set; } //"string",
public string kgstotal { get; set; } //"string",
public string cbmtotal { get; set; } //"string",
public string routeid { get; set; } //"string",
public string route { get; set; } //"string",
public string warehouse { get; set; } //"string",
public string warehouseID { get; set; } //"string",
public string epCode { get; set; } //"string",
public string lineName { get; set; } //"string",
public string dzRemark { get; set; } //"string",
public string czRemark { get; set; } //"string",
public string createdUserName { get; set; } //"string",
public List<DingCangCtn> ctnInputs { get; set; }
public DingCangbookingEDIExt bookingEDIExt { get; set; }
public List<DingCangTDXX> childrens { get; set; }
public List<DingCanggoodsStatus> goodsStatus { get; set; }
class item {
public t_code_ctn_md { get; set; }
public int { get; set; } = 0;
public item(t_code_ctn_md _, int _) {
= _;
= _;
}
}
class {
public List<item> { get; set; }
public t_code_ctn_de_md { get; set; }
public () {
var ds6 = new DS6DataContext();
= new List<item>();
= ds6.t_code_ctn_de.FirstOrDefault(x => 1 == 1);
}
public void Add(item newitem) {
if (.Exists(x => x. == newitem.))
{
.First(x => x. == newitem.). += newitem.;
}
else {
.Add(newitem);
}
}
public string get() {
var result = "";
foreach (var item in ) {
if(result!="") result+= " ";
result += item.. + "*" + item..ToString();
}
return result;
}
public string get()
{
var result = "SAY: ";
foreach (var item in )
{
if (result != "SAY: ") result += " AND ";
result += NumberToEnglishString(item.).ToUpper()+ " (" +item.. + "*" + item..ToString()+")";
}
result += " CONTAINER ONLY. ";
return result;
}
#region 箱型对应
public int get1() {
if (string.IsNullOrWhiteSpace(.1)) return 0;
foreach (var item in ) {
if (item.. == .1) return item.;
}
return 0;
}
public int get2()
{
if (string.IsNullOrWhiteSpace(.2)) return 0;
foreach (var item in )
{
if (item.. == .2) return item.;
}
return 0;
}
public int get3()
{
if (string.IsNullOrWhiteSpace(.3)) return 0;
foreach (var item in )
{
if (item.. == .3) return item.;
}
return 0;
}
public int get4()
{
if (string.IsNullOrWhiteSpace(.4)) return 0;
foreach (var item in )
{
if (item.. == .4) return item.;
}
return 0;
}
public int get5()
{
if (string.IsNullOrWhiteSpace(.5)) return 0;
foreach (var item in )
{
if (item.. == .5) return item.;
}
return 0;
}
public int get6()
{
if (string.IsNullOrWhiteSpace(.6)) return 0;
foreach (var item in )
{
if (item.. == .6) return item.;
}
return 0;
}
public int get7()
{
if (string.IsNullOrWhiteSpace(.7)) return 0;
foreach (var item in )
{
if (item.. == .7) return item.;
}
return 0;
}
public int get8()
{
if (string.IsNullOrWhiteSpace(.8)) return 0;
foreach (var item in )
{
if (item.. == .8) return item.;
}
return 0;
}
public int get9()
{
if (string.IsNullOrWhiteSpace(.9)) return 0;
foreach (var item in )
{
if (item.. == .9) return item.;
}
return 0;
}
public int get10()
{
if (string.IsNullOrWhiteSpace(.10)) return 0;
foreach (var item in )
{
if (item.. == .10) return item.;
}
return 0;
}
#endregion
public int getTeu() {
var result = 0;
foreach (var item in ) {
if (item.. == "20")
{
result += 1 * item.;
}
else
{
result += 2 * item.;
}
}
return result;
}
}
//记录品名
public t_op_seae_md GetOpseae() {
DateTime dateTime = new DateTime(((DateTime)etd).Year, 1, 1);
TimeSpan ts1 = ((DateTime)etd).Subtract(dateTime).Duration();
var days = ts1.Days;
var weeks=(int)( Math.Ceiling(days / 7.0));
//20230410 根据箱信息重新计算 集装箱 和 箱数大写
var d6 = new DS6DataContext();
var = new ();
foreach (var ctn in ctnInputs) {
var infoList = d6.t_code_ctn.Where(x => (x. + x.) == ctn.ctnall).ToList();
var info = new t_code_ctn_md();
if (infoList != null && infoList.Count > 0)
{
info = infoList[0];
}
else
{
continue;
}
.Add(new item ( info, ctn.ctnnum==null?1:(int)ctn.ctnnum ));
}
var = .get();
var = .get();
//处理货名
//HS编码 = hscode,
//货物名称 = bookingEDIExt.goodsName,
//货物描述 = description,
var = "";
var = d6.t_code_goods.Where(x => x. == goodscode).ToList();
if ( == null || .Count == 0)
{
var newrec = new t_code_goods_md();
newrec. = SetLength(goodscode, 10);
newrec. = SetLength(goodsname, 100);
= newrec.;
newrec. = SetLength(description, 600);
newrec. = SetLength(hscode, 10);
d6.t_code_goods.Add(newrec);
d6.SaveChanges();
}
else {
= [0].;
}
var _etd = new DateTime();
var _eta = new DateTime();
if (etd != null) _etd = new DateTime(((DateTime)etd).Year,((DateTime)etd).Month,((DateTime)etd).Day);
if (eta != null) _eta = new DateTime(((DateTime)etd).Year, ((DateTime)etd).Month, ((DateTime)etd).Day);
var result = new t_op_seae_md {
= bsno,
= "接受委托",
= "录入状态",
= etd,
= "整票",
= weeks,
= bsdate,
= mblno,
= mblno,
= hblno,
= custno,
= contractno,
= (shipper),
= (consignee),
= (notifyparty),
= yard,
= vessel,
= voynoinner,
= SetDayZero(etd),
ETD= SetDayZero(etd),
ETA= SetDayZero(eta),
= SetDayZero(closingdate),
= portloadid,
= portload,
= portdischargeid,
= portdischarge,
= placedeliveryid,
= placedelivery,
= destinationid,
= destination,
= nobill,
= copynobill,
= issuetype,
= issuedate,
= issueplace,
= blfrt,
= prepardat,
= payableat,
= service,
= marks,
= service,
HS = hscode,
= ,
= (description),
= pkgs,
= kindpkgs,
= kgs,
= cbm,
= totalno,
= ,
= ,
= carrier,
= cargoid,
= dclass,
= dunno,
= tempset,
= reeferf,
= tempmin,
= tempmax,
= iscontainersoc,
EDI = soremark,
//全称= compname,
= pono,
= pono,
= custservice,
= op,
= doc,
= sale,
线 = route,
= customername,
= customser,
= trucker,
= agentname,
= lanename,
线 = lineName,
= shipagency,
= forwarder,
= (dzRemark),
= (czRemark),
= createdUserName,
= (bookingEDIExt == null) ? "" : (bookingEDIExt.orderRemark),
DJYID = Id,
= false,
= false,
VGM = false,
= false,
= false,
TEU = .getTeu(),
1 = .get1(),
2 = .get2(),
3 = .get3(),
4 = .get4(),
5 = .get5(),
6 = .get6(),
7 = .get7(),
8 = .get8(),
9 = .get9(),
10 = .get10(),
= (bookingEDIExt.exRemark1),
= (bookingEDIExt.exRemark2),
= (bookingEDIExt.exRemark3),
= (bookingEDIExt.exRemark4),
};
foreach (var status in goodsStatus) {
if (status.statusName == "通知到港")
{
if(status.finishTime!=null)
result. = true;
}
if (status.statusName == "是否提货")
{
if (status.finishTime != null)
result. = true;
}
if (status.statusName == "提交VGM")
{
if (status.finishTime != null)
result.VGM = true;
}
if (status.statusName == "提交舱单")
{
if (status.finishTime != null)
result. = true;
}
if (status.statusName == "装载放行")
{
if (status.finishTime != null)
result. = true;
}
}
#region 设定字符串长度 超长的截断
var lengthDic = new Dictionary<string, int>
{
{"主提单号",20},
{"分提单号",20},
{"运费协议号",20},
{"委托编号",20},
{"装运方式",8},
{"委托单位",20},
{"发货人",20},
{"收货人",20},
{"通知人",20},
{"发货人代码",1000},
{"收货人代码",1000},
{"通知人代码",1000},
{"代理",20},
{"代理内容",1000},
{"场站",20},
{"船名",60},
{"航次",20},
{"起运港",60},
{"装货港",60},
{"装港代码",10},
{"卸货港",100},
{"卸货代码",10},
{"二程港口",60},
{"二程船名",60},
{"二程航次",20},
{"目的地",30},
{"交货地点",100},
{"交货代码",10},
{"提单份数",10},
{"签单方式",10},
{"签单地点",30},
{"付费方式",60},
{"预付地点",100},
{"到付地点",100},
{"运输条款",10},
{"唛头",800},
{"箱号封号",2000},
{"件数包装",600},
{"货物描述",1000},
{"货物名称",100},
{"货物重量",600},
{"货物尺码",600},
{"包装",60},
{"件数大写",100},
{"箱数大写",100},
{"集装箱",200},
{"录入人",12},
{"操作员",10},
{"揽货人",10},
{"客服员",10},
{"航线",30},
{"船公司",20},
{"货代公司",20},
{"备注",800},
{"报关行",20},
{"承运车队",20},
{"分单列表",600},
{"计费标准",1000},
{"报关员",10},
{"报关单号",20},
{"核销单号",50},
{"手册号",20},
{"经营单位",60},
{"单位代码",20},
{"合同号",20},
{"报关备注",600},
{"危险品分类",5},
{"危险品编号",20},
{"冷藏通风量",12},
{"温度单位",1},
{"设置温度",16},
{"最低温度",5},
{"最高温度",5},
{"货物标识",1},
{"发票号",20},
{"商品编码",400},
{"销售部门",30},
{"操作部门",30},
{"业务来源",8},
{"英文船期",12},
{"三程港口",60},
{"三程船名",60},
{"三程航次",20},
{"辅助字段一",600},
{"辅助字段二",600},
{"辅助字段三",600},
{"辅助字段四",600},
{"主提单标准",30},
{"分提单标准",30},
{"委托标准",30},
{"财务凭证",30},
{"附加条款",600},
{"备案号",20},
{"运抵国",60},
{"境内货源地",60},
{"批准文号",20},
{"成交方式",20},
{"单价",100},
{"总价",100},
{"商品名称",400},
{"数量单位",400},
{"报检单号",20},
{"实验内容",100},
{"报关操作",10},
{"报检操作",10},
{"币制",100},
{"单证信息",100},
{"核销标准",20},
{"报关标准",20},
{"报检标准",20},
{"目的地代码",10},
{"包装代码",10},
{"发货人编号",10},
{"运输方式",10},
{"HS编码",30},
{"船代",20},
{"单证员",10},
};
foreach (var item in lengthDic) {
try
{
var value = result.GetType().GetProperty(item.Key).GetValue(result).ToString();
var newvalue = SetLength(value, item.Value);
result.GetType().GetProperty(item.Key).SetValue(result, newvalue);
}
catch (Exception e) {
continue;
}
}
#endregion
return result;
}
public List<t_op_ctn_md> GetCtnList(t_op_seae_md head) {
var result = new List<t_op_ctn_md> ();
foreach (var ctn in ctnInputs) {
var d6 = new DS6DataContext();
var infoList = d6.t_code_ctn.Where(x => (x. + x.) == ctn.ctnall).ToList();
var info = new t_code_ctn_md();
if (infoList != null && infoList.Count > 0) {
info = infoList[0];
}
else {
continue;
}
var newctn = new t_op_ctn_md
{
= SetLength(info., 4),
= SetLength(info., 2),
= SetLength(info., 10),
= SetLength(head., 12),
= SetLength(ctn.ctnall, 20),
= ctn.ctnnum,
= SetLength(ctn.cntrno, 30),
= SetLength(ctn.sealno, 30),
= ctn.pkgs,
= SetLength(ctn.kindpkgs, 60),
= ctn.kgs,
= ctn.cbm,
= ctn.tareweight,
TEU = (info. == "20" ? 1* ctn.ctnnum : 2* ctn.ctnnum),
=ctn.weighkgs
};
result.Add (newctn);
}
return result;
}
public List<t_op_ams_md> GetAmsList(t_op_seae_md head)
{
var result = new List<t_op_ams_md>();
//foreach (var item in bookingEDIExt)
//{
var item = bookingEDIExt;
var newrec = new t_op_ams_md
{
= head.,
= SetLength(item.shipperEdiCode,10),
= SetLength(item.consigneeEdiCode,10),
= SetLength(item.salerCode,10),
= SetLength(item.ediAttn,30),
= SetLength(item.ediAttnTel,50),
HSCODE = SetLength(item.ckhi,100),
NCM = (SetLength(item.cncm,600)),
西 = (SetLength(item.wncm,300)),
= head.ETD,
HBL = SetLength(item.masterBolIndicator, 1)
};
result.Add (newrec);
//}
return result;
}
public List<t_op_seae_assistant_md> GetAssistantList(t_op_seae_md head)
{
var result = new List<t_op_seae_assistant_md>();
var d6 = new DS6DataContext();
var = "";
foreach (var item in childrens)
{
var = d6.t_code_goods.Where(x => x. == goodscode).ToList();
if ( == null || .Count == 0)
{
var newcodegoods = new t_code_goods_md();
newcodegoods. = SetLength(goodscode, 10);
newcodegoods. = SetLength(goodsname, 100);
= newcodegoods.;
newcodegoods. = SetLength(description, 600);
newcodegoods. = SetLength(hscode, 10);
d6.t_code_goods.Add(newcodegoods);
d6.SaveChanges();
}
else
{
= [0].;
}
var newrec = new t_op_seae_assistant_md
{
= head.,
= head.,
BSNO= item.bsno,
= item.bsdate,
= item.mblno,
= item.hblno,
//订舱序列号 = item.bookingno,
= (item.shipper),
= (item.consignee),
= (item.notifyparty),
= item.nobill,
=item.issuetype,
= item.issuedate,
=item.issueplace,
=item.blfrt,
=item.prepardat,
=item.payableat,
=item.service,
=item.marks,
=item.hscode,
= ,
= (item.description),
=item.pkgs,
=item.kindpkgs,
=item.kgs,
= item.cbm,
=item.totalno,
= item.cntrtotal,
= item.carrier,
= item.cargoid,
=item.dclass,
= item.dunno,
=item.tempset,
=item.reeferf,
=item.tempmin,
=item.tempmax,
=item.iscontainersoc,
=item.pono,
=item.op,
= item.sale,
=item.custservice,
//预付地点= item.prepardatid,
//到付地点= item.payableatid,
};
var lengthDic = new Dictionary<string, int>
{
{"主提单号",20},
{"分提单号",20},
{"发货人代码",1000},
{"收货人代码",1000},
{"通知人代码",1000},
{"提单份数",10},
{"签单方式",10},
{"签单地点",30},
{"付费方式",60},
{"预付地点",100},
{"到付地点",100},
{"运输条款",10},
{"唛头",800},
{"运输方式",10},
{"HS编码",30},
{"货物描述",1000},
{"货物描述",1000},
{"包装",60},
{"件数大写",100},
{"集装箱",200},
{"船公司",20},
{"货物标识",1},
{"危险品分类",5},
{"危险品编号",20},
{"设置温度",16},
{"冷藏通风量",12},
{"最低温度",5},
{"最高温度",5},
{"委托编号",20},
{"操作员",10},
{"揽货人",10},
{"客服员",10},
};
foreach (var _item in lengthDic)
{
try
{
var value = result.GetType().GetProperty(_item.Key).GetValue(result).ToString();
var newvalue = SetLength(value, _item.Value);
result.GetType().GetProperty(_item.Key).SetValue(result, newvalue);
}
catch (Exception e)
{
continue;
}
}
result.Add(newrec);
}
return result;
}
}
public class DingCangCtn {
public long? id { get; set; }
public long? billid { get; set; }
public string ctncode { get; set; } //"string",
public string ctnall { get; set; } //"string",
public int? ctnnum { get; set; } = 0;
public int? teu { get; set; } = 0;
public string cntrno { get; set; } //"string",
public string sealno { get; set; } //"string",
public int? pkgs { get; set; } = 0;
public string kindpkgs { get; set; } //"string",
public decimal? kgs { get; set; } = 0M;
public decimal? cbm { get; set; } = 0M;
public decimal? tareweight { get; set; } = 0M;
public string ctnstatus { get; set; } //"string",
public string weightype { get; set; } //"string",
public decimal? weighkgs { get; set; } = 0M;
public string weighattn { get; set; } //"string",
public string vgmconncom { get; set; } //"string",
public string weightel { get; set; } //"string",
public string weighdate { get; set; } //"string",
public string vgmaddr { get; set; } //"string",
public string vgmemail { get; set; } //"string",
public string remark { get; set; } //"string",
public List<DingCangCtnDetail> ctnDetailInputs { get; set; }
}
public class DingCangCtnDetail
{
public long? id { get; set; }
public string ctnid { get; set; }
public decimal? pkgs { get; set; } = 0M;
public string kindpkgs { get; set; } //"string",
public decimal? kgs { get; set; } = 0M;
public decimal? cbm { get; set; } = 0M;
public string hscode { get; set; } //"string",
public string marks { get; set; } //"string",
public string description { get; set; } //"string",
public string remark { get; set; }
}
public class DingCangbookingEDIExt {
public string weiTuoFang { get; set; } //"string",
public string sendCode { get; set; } //"string",
public string receiveCode { get; set; } //"string",
public string notifyCdoe { get; set; } //"string",
public string salerCode { get; set; } //"string",
public string masterBolIndicator { get; set; } //"string",
public string emanifestHbl { get; set; } //"string",
public string consigneeEdiCode { get; set; } //"string",
public string shipperEdiCode { get; set; } //"string",
public string ediAttn { get; set; } //"string",
public string ediAttnTel { get; set; } //"string",
public string ediAttnMail { get; set; } //"string",
public string amsConsignee { get; set; } //"string",
public string amsNotifyParty { get; set; } //"string",
public string opEName { get; set; } //"string",
public string opTel { get; set; } //"string",
public string opEmail { get; set; } //"string",
public string acihbl { get; set; } //"string",
public string s0CC0C { get; set; } //"string",
public string goodsName { get; set; } //"string",
public string masterBolIndicatorName { get; set; } //"string",
public string salerCodeName { get; set; } //"string",
public string ckhi { get; set; } //"string",
public string cncm { get; set; } //"string",
public string wncm { get; set; } //"string",
public string orderRemark { get; set; } //"string",
public string exRemark1 { get; set; } //"string",
public string exRemark2 { get; set; } //"string",
public string exRemark3 { get; set; } //"string",
public string exRemark4 { get; set; } //"string",
public decimal? kingTareweight { get; set; } = 0M;
}
/// <summary>
/// 提单信息
/// </summary>
public class DingCangTDXX {
public string bsno { get; set; } //"string",
public string bsstatus { get; set; } //"string",
public string bsstatusname { get; set; } //"string",
public DateTime? bsdate { get; set; } //"2023-03-30T03:12:51.033Z",
public string mblno { get; set; } //"string",
public string hblno { get; set; } //"string",
public string bookingno { get; set; } //"string",
public string contractno { get; set; } //"string",
public string servicecontractno { get; set; } //"string",
public string shipperid { get; set; } //"string",
public string consigneeid { get; set; } //"string",
public string notifypartyid { get; set; } //"string",
public string shipper { get; set; } //"string",
public string consignee { get; set; } //"string",
public string notifyparty { get; set; } //"string",
public string notifypartY2 { get; set; } //"string",
public string yardid { get; set; } //"string",
public string yard { get; set; } //"string",
public string vesselid { get; set; } //"string",
public string vessel { get; set; } //"string",
public string voyno { get; set; } //"string",
public string voynoinner { get; set; } //"string",
public DateTime? etd { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? atd { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closingdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closedocdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? closevgmdate { get; set; } //"2023-03-30T03:12:51.033Z",
public DateTime? eta { get; set; } //"2023-03-30T03:12:51.033Z",
public string placereceiptid { get; set; } //"string",
public string placereceipt { get; set; } //"string",
public string portloadid { get; set; } //"string",
public string portload { get; set; } //"string",
public string portdischargeid { get; set; } //"string",
public string portdischarge { get; set; } //"string",
public string placedeliveryid { get; set; } //"string",
public string placedelivery { get; set; } //"string",
public string destinationid { get; set; } //"string",
public string destination { get; set; } //"string",
public string nobill { get; set; } //"string",
public string copynobill { get; set; } //"string",
public string issuetype { get; set; } //"string",
public DateTime? issuedate { get; set; } //"2023-03-30T03:12:51.033Z",
public string issueplaceid { get; set; } //"string",
public string issueplace { get; set; } //"string",
public string blfrt { get; set; } //"string",
public string prepardat { get; set; } //"string",
public string payableat { get; set; } //"string",
public string service { get; set; } //"string",
public string marks { get; set; } //"string",
public string hscode { get; set; } //"string",
public string description { get; set; } //"string",
public int? pkgs { get; set; } = 0;
public string kindpkgs { get; set; } //"string",
public decimal? kgs { get; set; } = 0;
public decimal? cbm { get; set; } = 0;
public string totalno { get; set; } //"string",
public string cntrtotal { get; set; } //"string",
public string carrierid { get; set; } //"string",
public string carrier { get; set; } //"string",
public string cargoid { get; set; } //"string",
public string dclass { get; set; } //"string",
public string dunno { get; set; } //"string",
public string dpage { get; set; } //"string",
public string dlabel { get; set; } //"string",
public string linkman { get; set; } //"string",
public string tempid { get; set; } //"string",
public string tempset { get; set; } //"string",
public string reeferf { get; set; } //"string",
public string humidity { get; set; } //"string",
public string tempmin { get; set; } //"string",
public string tempmax { get; set; } //"string",
public bool? iscontainersoc { get; set; } //true,
public string soremark { get; set; } //"string",
public string siremark { get; set; } //"string",
public string yardremark { get; set; } //"string",
public string compid { get; set; } //"string",
public string compname { get; set; } //"string",
public string shippername { get; set; } //"string",
public string shipperaddR1 { get; set; } //"string",
public string shipperaddR2 { get; set; } //"string",
public string shipperaddR3 { get; set; } //"string",
public string shippercity { get; set; } //"string",
public string shipperprovince { get; set; } //"string",
public string shipperpostcode { get; set; } //"string",
public string shippercountry { get; set; } //"string",
public string shipperattn { get; set; } //"string",
public string shippertel { get; set; } //"string",
public string consigneename { get; set; } //"string",
public string consigneeaddR1 { get; set; } //"string",
public string consigneeaddR2 { get; set; } //"string",
public string consigneeaddR3 { get; set; } //"string",
public string consigneecity { get; set; } //"string",
public string consigneeprovince { get; set; } //"string",
public string consigneepostcode { get; set; } //"string",
public string consigneercountry { get; set; } //"string",
public string consigneeattn { get; set; } //"string",
public string consigneetel { get; set; } //"string",
public string notifypartyname { get; set; } //"string",
public string notifypartyaddR1 { get; set; } //"string",
public string notifypartyaddR2 { get; set; } //"string",
public string notifypartyaddR3 { get; set; } //"string",
public string notifypartycity { get; set; } //"string",
public string notifypartyprovince { get; set; } //"string",
public string notifypartypostcode { get; set; } //"string",
public string notifypartycountry { get; set; } //"string",
public string notifypartyattn { get; set; } //"string",
public string notifypartytel { get; set; } //"string",
public string pono { get; set; } //"string",
public string opid { get; set; } //"string",
public string docid { get; set; } //"string",
public string op { get; set; } //"string",
public string doc { get; set; } //"string",
public string saleid { get; set; } //"string",
public string sale { get; set; } //"string",
public string custserviceid { get; set; } //"string",
public string custservice { get; set; } //"string",
public string customername { get; set; } //"string",
public string forwarder { get; set; } //"string",
public string shipagency { get; set; } //"string",
public string customser { get; set; } //"string",
public string trucker { get; set; } //"string",
public string agentid { get; set; } //"string",
public long? customerid { get; set; } //= 0;
public string forwarderid { get; set; } //"string",
public string shipagencyid { get; set; } //"string",
public string customserid { get; set; } //"string",
public string truckerid { get; set; } //"string",
public string agentname { get; set; } //"string",
public string weituo { get; set; } //"string",
public string consigneedooraddr { get; set; } //"string",
public string shipperdooraddr { get; set; } //"string",
public string scaccode { get; set; } //"string",
public string itncode { get; set; } //"string",
public string prepardatid { get; set; } //"string",
public string payableatid { get; set; } //"string",
public string custno { get; set; } //"string",
public string transportid { get; set; } //"string",
public string transport { get; set; } //"string",
public string thirdpayaddr { get; set; } //"string",
public string yardcontract { get; set; } //"string",
public string yardcontracttel { get; set; } //"string",
public string yardcontractemail { get; set; } //"string",
public bool? feeself { get; set; } //true,
public string lanecode { get; set; } //"string",
public string lanename { get; set; } //"string",
public string freightpayer { get; set; } //"string",
public string goodscode { get; set; } //"string",
public string goodsname { get; set; } //"string",
public string pkgstotal { get; set; } //"string",
public string kgstotal { get; set; } //"string",
public string cbmtotal { get; set; } //"string",
public string routeid { get; set; } //"string",
public string route { get; set; } //"string",
public string warehouse { get; set; } //"string",
public string warehouseID { get; set; } //"string",
public string epCode { get; set; } //"string",
public string lineName { get; set; } //"string",
public List<DingCangCtn> ctnInputs { get; set; }
public DingCangbookingEDIExt bookingEDIExt { get; set; }
}
public class DingCanggoodsStatus
{
public string statusName { get; set; } //"string",
public DateTime? finishTime { get; set; }//2023-03-30T03:12:51.034Z",
public string remark { get; set; } //"string",
public string extData { get; set; }//"string",
}
#endregion
static string NumberToEnglishString(int number)
{
if (number < 0) //暂不考虑负数
{
return "";
}
if (number < 20) //0到19
{
switch (number)
{
case 0:
return "zero";
case 1:
return "one";
case 2:
return "two";
case 3:
return "three";
case 4:
return "four";
case 5:
return "five";
case 6:
return "sex";
case 7:
return "seven";
case 8:
return "eight";
case 9:
return "nine";
case 10:
return "ten";
case 11:
return "eleven";
case 12:
return "twelve";
case 13:
return "thirteen";
case 14:
return "fourteen";
case 15:
return "fifteen";
case 16:
return "sixteen";
case 17:
return "seventeen";
case 18:
return "eighteen";
case 19:
return "nineteen";
default:
return "";
}
}
if (number < 100) //20到99
{
if (number % 10 == 0) //20,30,40,...90的输出
{
switch (number)
{
case 20:
return "twenty";
case 30:
return "thirty";
case 40:
return "forty";
case 50:
return "fifty";
case 60:
return "sixty";
case 70:
return "seventy";
case 80:
return "eighty";
case 90:
return "ninety";
default:
return "";
}
}
else //21.22,.99 思路26=20+6
{
return string.Format("{0} {1}", NumberToEnglishString(10 * (number / 10)),
NumberToEnglishString(number % 10));
}
}
if (number < 1000) //100到999 百级
{
if (number % 100 == 0)
{
return string.Format("{0} hundred", NumberToEnglishString(number / 100));
}
else
{
return string.Format("{0} hundred and {1}", NumberToEnglishString(number / 100),
NumberToEnglishString(number % 100));
}
}
if (number < 1000000) //1000到999999 千级
{
if (number % 1000 == 0)
{
return string.Format("{0} thousand", NumberToEnglishString(number / 1000));
}
else
{
return string.Format("{0} thousand and {1}", NumberToEnglishString(number / 1000),
NumberToEnglishString(number % 1000));
}
}
if (number < 1000000000) //1000 000到999 999 999 百万级
{
if (number % 1000 == 0)
{
return string.Format("{0} million", NumberToEnglishString(number / 1000000));
}
else
{
return string.Format("{0} million and {1}", NumberToEnglishString(number / 1000000),
NumberToEnglishString(number % 1000000));
}
}
if (number <= int.MaxValue) //十亿 级
{
if (number % 1000000000 == 0)
{
return string.Format("{0} billion", NumberToEnglishString(number / 1000000000));
}
else
{
return string.Format("{0} billion and {1}", NumberToEnglishString(number / 1000000000),
NumberToEnglishString(number % 1000000000));
}
}
return "";
}
public static string SetLength(string oldstr, int length)
{
var str = string.IsNullOrWhiteSpace(oldstr) ? "" : (oldstr.Length > length) ? SubString2( oldstr,0, length) : oldstr;
return str;
}
public static DateTime? SetDayZero(DateTime? dt)
{
var result = new DateTime?();
result = null;
if (dt != null) result = new DateTime(((DateTime)dt).Year, ((DateTime)dt).Month, ((DateTime)dt).Day);
return result;
}
public static string (string str) {
if (string.IsNullOrWhiteSpace(str)) return "";
var myStr = Regex.Replace(str, "(?<!\r)\n", "\r\n");
return myStr;
}
public static int len(string str)
{
System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding();
byte[] b = n.GetBytes(str);
int length = 0; // l 为字符串的实际长度
for (int i = 0; i <= b.Length - 1; i++)
{
if (b[i] == 63) //判断是否为汉字或全脚符号
{
length++;
}
length++;
}
return length;
}
public static string SubString2(string str, int startIndex, int length)
{
byte[] b = System.Text.Encoding.Default.GetBytes(str);
return System.Text.Encoding.Default.GetString(b, startIndex, length);
}
#region 逻辑信息子表操作
#region 将一个dictionary转化为用;;和::隔开的文本
public static string DicToStr(Dictionary<string, string> dic)
{
var result = "";
foreach (var item in dic)
{
result += item.Key + "::" + item.Value + ";;";
}
return result;
}
#endregion
#region 将一个用;;和::隔开的文本转化为dictionary
public static Dictionary<string, string> StrToDic(string dicstr)
{
var result = new Dictionary<string, string>();
var list = Regex.Split(dicstr, ";;").ToList();
foreach (var item in list)
{
var itemarray = Regex.Split(item, "::");
if (itemarray.Length < 2) continue;
result.Add(itemarray[0], itemarray[1] == null ? "" : itemarray[1]);
}
return result;
}
#endregion
public static Dictionary<string, string> GetLogicInfo(string BSNO, string PROPNAME)
{
CommonDataContext cdc = new CommonDataContext();
var result = new Dictionary<string, string>();
var infoList = cdc.OP_LOGICINFO.Where(x => x.BSNO == BSNO && x.PROPNAME == PROPNAME).ToList();
if (infoList != null && infoList.Count > 0)
{
result = StrToDic(infoList[0].PROPVALUE);
}
return result;
}
public static void SaveLogicInfo(string BSNO, string PROPNAME, Dictionary<string, string> InfoDic)
{
CommonDataContext cdc = new CommonDataContext();
var result = new Dictionary<string, string>();
var infoList = cdc.OP_LOGICINFO.Where(x => x.BSNO == BSNO && x.PROPNAME == PROPNAME).ToList();
if (infoList != null && infoList.Count > 0)
{
infoList[0].PROPVALUE = DicToStr(InfoDic);
cdc.OP_LOGICINFO.AddOrUpdate(infoList[0]);
cdc.SaveChanges();
}
else
{
var newinfo = new OP_LOGICINFO_md();
newinfo.GID = Guid.NewGuid();
newinfo.BSNO = BSNO;
newinfo.PROPNAME = PROPNAME;
newinfo.PROPVALUE = DicToStr(InfoDic);
cdc.OP_LOGICINFO.Add(newinfo);
cdc.SaveChanges();
}
}
#endregion
}
/// <summary>
/// 汉字转拼音类
/// </summary>
public class Hz2Py
{
private static int[] pyValue = new int[]
{
-20319,-20317,-20304,-20295,-20292,-20283,-20265,-20257,-20242,-20230,-20051,-20036,
-20032,-20026,-20002,-19990,-19986,-19982,-19976,-19805,-19784,-19775,-19774,-19763,
-19756,-19751,-19746,-19741,-19739,-19728,-19725,-19715,-19540,-19531,-19525,-19515,
-19500,-19484,-19479,-19467,-19289,-19288,-19281,-19275,-19270,-19263,-19261,-19249,
-19243,-19242,-19238,-19235,-19227,-19224,-19218,-19212,-19038,-19023,-19018,-19006,
-19003,-18996,-18977,-18961,-18952,-18783,-18774,-18773,-18763,-18756,-18741,-18735,
-18731,-18722,-18710,-18697,-18696,-18526,-18518,-18501,-18490,-18478,-18463,-18448,
-18447,-18446,-18239,-18237,-18231,-18220,-18211,-18201,-18184,-18183, -18181,-18012,
-17997,-17988,-17970,-17964,-17961,-17950,-17947,-17931,-17928,-17922,-17759,-17752,
-17733,-17730,-17721,-17703,-17701,-17697,-17692,-17683,-17676,-17496,-17487,-17482,
-17468,-17454,-17433,-17427,-17417,-17202,-17185,-16983,-16970,-16942,-16915,-16733,
-16708,-16706,-16689,-16664,-16657,-16647,-16474,-16470,-16465,-16459,-16452,-16448,
-16433,-16429,-16427,-16423,-16419,-16412,-16407,-16403,-16401,-16393,-16220,-16216,
-16212,-16205,-16202,-16187,-16180,-16171,-16169,-16158,-16155,-15959,-15958,-15944,
-15933,-15920,-15915,-15903,-15889,-15878,-15707,-15701,-15681,-15667,-15661,-15659,
-15652,-15640,-15631,-15625,-15454,-15448,-15436,-15435,-15419,-15416,-15408,-15394,
-15385,-15377,-15375,-15369,-15363,-15362,-15183,-15180,-15165,-15158,-15153,-15150,
-15149,-15144,-15143,-15141,-15140,-15139,-15128,-15121,-15119,-15117,-15110,-15109,
-14941,-14937,-14933,-14930,-14929,-14928,-14926,-14922,-14921,-14914,-14908,-14902,
-14894,-14889,-14882,-14873,-14871,-14857,-14678,-14674,-14670,-14668,-14663,-14654,
-14645,-14630,-14594,-14429,-14407,-14399,-14384,-14379,-14368,-14355,-14353,-14345,
-14170,-14159,-14151,-14149,-14145,-14140,-14137,-14135,-14125,-14123,-14122,-14112,
-14109,-14099,-14097,-14094,-14092,-14090,-14087,-14083,-13917,-13914,-13910,-13907,
-13906,-13905,-13896,-13894,-13878,-13870,-13859,-13847,-13831,-13658,-13611,-13601,
-13406,-13404,-13400,-13398,-13395,-13391,-13387,-13383,-13367,-13359,-13356,-13343,
-13340,-13329,-13326,-13318,-13147,-13138,-13120,-13107,-13096,-13095,-13091,-13076,
-13068,-13063,-13060,-12888,-12875,-12871,-12860,-12858,-12852,-12849,-12838,-12831,
-12829,-12812,-12802,-12607,-12597,-12594,-12585,-12556,-12359,-12346,-12320,-12300,
-12120,-12099,-12089,-12074,-12067,-12058,-12039,-11867,-11861,-11847,-11831,-11798,
-11781,-11604,-11589,-11536,-11358,-11340,-11339,-11324,-11303,-11097,-11077,-11067,
-11055,-11052,-11045,-11041,-11038,-11024,-11020,-11019,-11018,-11014,-10838,-10832,
-10815,-10800,-10790,-10780,-10764,-10587,-10544,-10533,-10519,-10331,-10329,-10328,
-10322,-10315,-10309,-10307,-10296,-10281,-10274,-10270,-10262,-10260,-10256,-10254
};
private static string[] pyName = new string[]
{
"A","Ai","An","Ang","Ao","Ba","Bai","Ban","Bang","Bao","Bei","Ben",
"Beng","Bi","Bian","Biao","Bie","Bin","Bing","Bo","Bu","Ba","Cai","Can",
"Cang","Cao","Ce","Ceng","Cha","Chai","Chan","Chang","Chao","Che","Chen","Cheng",
"Chi","Chong","Chou","Chu","Chuai","Chuan","Chuang","Chui","Chun","Chuo","Ci","Cong",
"Cou","Cu","Cuan","Cui","Cun","Cuo","Da","Dai","Dan","Dang","Dao","De",
"Deng","Di","Dian","Diao","Die","Ding","Diu","Dong","Dou","Du","Duan","Dui",
"Dun","Duo","E","En","Er","Fa","Fan","Fang","Fei","Fen","Feng","Fo",
"Fou","Fu","Ga","Gai","Gan","Gang","Gao","Ge","Gei","Gen","Geng","Gong",
"Gou","Gu","Gua","Guai","Guan","Guang","Gui","Gun","Guo","Ha","Hai","Han",
"Hang","Hao","He","Hei","Hen","Heng","Hong","Hou","Hu","Hua","Huai","Huan",
"Huang","Hui","Hun","Huo","Ji","Jia","Jian","Jiang","Jiao","Jie","Jin","Jing",
"Jiong","Jiu","Ju","Juan","Jue","Jun","Ka","Kai","Kan","Kang","Kao","Ke",
"Ken","Keng","Kong","Kou","Ku","Kua","Kuai","Kuan","Kuang","Kui","Kun","Kuo",
"La","Lai","Lan","Lang","Lao","Le","Lei","Leng","Li","Lia","Lian","Liang",
"Liao","Lie","Lin","Ling","Liu","Long","Lou","Lu","Lv","Luan","Lue","Lun",
"Luo","Ma","Mai","Man","Mang","Mao","Me","Mei","Men","Meng","Mi","Mian",
"Miao","Mie","Min","Ming","Miu","Mo","Mou","Mu","Na","Nai","Nan","Nang",
"Nao","Ne","Nei","Nen","Neng","Ni","Nian","Niang","Niao","Nie","Nin","Ning",
"Niu","Nong","Nu","Nv","Nuan","Nue","Nuo","O","Ou","Pa","Pai","Pan",
"Pang","Pao","Pei","Pen","Peng","Pi","Pian","Piao","Pie","Pin","Ping","Po",
"Pu","Qi","Qia","Qian","Qiang","Qiao","Qie","Qin","Qing","Qiong","Qiu","Qu",
"Quan","Que","Qun","Ran","Rang","Rao","Re","Ren","Reng","Ri","Rong","Rou",
"Ru","Ruan","Rui","Run","Ruo","Sa","Sai","San","Sang","Sao","Se","Sen",
"Seng","Sha","Shai","Shan","Shang","Shao","She","Shen","Sheng","Shi","Shou","Shu",
"Shua","Shuai","Shuan","Shuang","Shui","Shun","Shuo","Si","Song","Sou","Su","Suan",
"Sui","Sun","Suo","Ta","Tai","Tan","Tang","Tao","Te","Teng","Ti","Tian",
"Tiao","Tie","Ting","Tong","Tou","Tu","Tuan","Tui","Tun","Tuo","Wa","Wai",
"Wan","Wang","Wei","Wen","Weng","Wo","Wu","Xi","Xia","Xian","Xiang","Xiao",
"Xie","Xin","Xing","Xiong","Xiu","Xu","Xuan","Xue","Xun","Ya","Yan","Yang",
"Yao","Ye","Yi","Yin","Ying","Yo","Yong","You","Yu","Yuan","Yue","Yun",
"Za", "Zai","Zan","Zang","Zao","Ze","Zei","Zen","Zeng","Zha","Zhai","Zhan",
"Zhang","Zhao","Zhe","Zhen","Zheng","Zhi","Zhong","Zhou","Zhu","Zhua","Zhuai","Zhuan",
"Zhuang","Zhui","Zhun","Zhuo","Zi","Zong","Zou","Zu","Zuan","Zui","Zun","Zuo"
};
/// <summary>
/// 把汉字转换成拼音(全拼)
/// </summary>
/// <param name="hzString">汉字字符串</param>
/// <returns>转换后的拼音(全拼)字符串</returns>
public static string Convert(string hzString)
{
// 匹配中文字符
Regex regex = new Regex("^[\u4e00-\u9fa5]$");
byte[] array = new byte[2];
string pyString = "";
int chrAsc = 0;
int i1 = 0;
int i2 = 0;
char[] noWChar = hzString.ToCharArray();
for (int j = 0; j < noWChar.Length; j++)
{
// 中文字符
if (regex.IsMatch(noWChar[j].ToString()))
{
array = System.Text.Encoding.Default.GetBytes(noWChar[j].ToString());
i1 = (short)(array[0]);
i2 = (short)(array[1]);
chrAsc = i1 * 256 + i2 - 65536;
if (chrAsc > 0 && chrAsc < 160)
{
pyString += noWChar[j];
}
else
{
// 修正部分文字
if (chrAsc == -9254) // 修正“圳”字
pyString += "Zhen";
else
{
for (int i = (pyValue.Length - 1); i >= 0; i--)
{
if (pyValue[i] <= chrAsc)
{
pyString += pyName[i];
break;
}
}
}
}
}
// 非中文字符
else
{
pyString += noWChar[j].ToString();
}
}
return pyString;
}
}
//private static string GetCharSpellCode(string CnChar)
//{
// long iCnChar;
// byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);
// //如果是字母,则直接返回
// if (ZW.Length == 1)
// {
// return CnChar.ToUpper();
// }
// else
// {
// // get the array of byte from the single char
// int i1 = (short)(ZW[0]);
// int i2 = (short)(ZW[1]);
// iCnChar = i1 * 256 + i2;
// }
// #region table of the constant list
// //expresstion
// //table of the constant list
// // 'A'; //45217..45252
// // 'B'; //45253..45760
// // 'C'; //45761..46317
// // 'D'; //46318..46825
// // 'E'; //46826..47009
// // 'F'; //47010..47296
// // 'G'; //47297..47613
// // 'H'; //47614..48118
// // 'J'; //48119..49061
// // 'K'; //49062..49323
// // 'L'; //49324..49895
// // 'M'; //49896..50370
// // 'N'; //50371..50613
// // 'O'; //50614..50621
// // 'P'; //50622..50905
// // 'Q'; //50906..51386
// // 'R'; //51387..51445
// // 'S'; //51446..52217
// // 'T'; //52218..52697
// //没有U,V
// // 'W'; //52698..52979
// // 'X'; //52980..53640
// // 'Y'; //53689..54480
// // 'Z'; //54481..55289
// #endregion
// // iCnChar match the constant
// if ((iCnChar >= 45217) && (iCnChar <= 45252))
// {
// return "A";
// }
// else if ((iCnChar >= 45253) && (iCnChar <= 45760))
// {
// return "B";
// }
// else if ((iCnChar >= 45761) && (iCnChar <= 46317))
// {
// return "C";
// }
// else if ((iCnChar >= 46318) && (iCnChar <= 46825))
// {
// return "D";
// }
// else if ((iCnChar >= 46826) && (iCnChar <= 47009))
// {
// return "E";
// }
// else if ((iCnChar >= 47010) && (iCnChar <= 47296))
// {
// return "F";
// }
// else if ((iCnChar >= 47297) && (iCnChar <= 47613))
// {
// return "G";
// }
// else if ((iCnChar >= 47614) && (iCnChar <= 48118))
// {
// return "H";
// }
// else if ((iCnChar >= 48119) && (iCnChar <= 49061))
// {
// return "J";
// }
// else if ((iCnChar >= 49062) && (iCnChar <= 49323))
// {
// return "K";
// }
// else if ((iCnChar >= 49324) && (iCnChar <= 49895))
// {
// return "L";
// }
// else if ((iCnChar >= 49896) && (iCnChar <= 50370))
// {
// return "M";
// }
// else if ((iCnChar >= 50371) && (iCnChar <= 50613))
// {
// return "N";
// }
// else if ((iCnChar >= 50614) && (iCnChar <= 50621))
// {
// return "O";
// }
// else if ((iCnChar >= 50622) && (iCnChar <= 50905))
// {
// return "P";
// }
// else if ((iCnChar >= 50906) && (iCnChar <= .51386))
// {
// return "Q";
// }
// else if ((iCnChar >= 51387) && (iCnChar <= 51445))
// {
// return "R";
// }
// else if ((iCnChar >= 51446) && (iCnChar <= 52217))
// {
// return "S";
// }
// else if ((iCnChar >= 52218) && (iCnChar <= 52697))
// {
// return "T";
// }
// else if ((iCnChar >= 52698) && (iCnChar <= 52979))
// {
// return "W";
// }
// else if ((iCnChar >= 52980) && (iCnChar <= 53640))
// {
// return "X";
// }
// else if ((iCnChar >= 53689) && (iCnChar <= 54480))
// {
// return "Y";
// }
// else if ((iCnChar >= 54481) && (iCnChar <= 55289))
// {
// return "Z";
// }
// else return ("?");
//}
}