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.

1878 lines
52 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using HcUtility.Core;
using Newtonsoft.Json;
using DSWeb.Areas.CommMng.DAL;
using System.Web.Mvc;
using System.IO;
using DSWeb.TruckMng.Helper;
using System.Collections.Generic;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using DSWeb.MvcShipping.DAL.MsChFeeDAL;
using HcUtility.Comm;
using System.Diagnostics.Contracts;
using DSWeb.Areas.MvcShipping.DB;
using DSWeb.MvcShipping.Models.MsOpSeae;
using DSWeb.Areas.MvcShipping.Models.Message.VGM;
using DSWeb.MvcShipping.DAL.MsOpSeaeEdiPortDAL;
using DSWeb.Common.DB;
namespace DSWeb.Areas.CommMng.Models
{
[JsonObject]
//用于解析要向表中保存的url地址的相关信息
public class FileUrlModel
{
#region
private string _TableName = string.Empty;
private string _KeyName = string.Empty;
private string _KeyValue = string.Empty;
private string _UrlName = string.Empty;
private string _UrlValue = string.Empty;
private string _ImgName = string.Empty;
private string _INDATABASE = string.Empty;
private string _FilePath = string.Empty;
private string ModelName = "";
private string ChildName = "";
private string ExName = "";//扩展名 在savefile时获取
#endregion
#region
public string TableName
{
get { return _TableName; }
set { _TableName = value; }
}
public string KeyName
{
get { return _KeyName; }
set { _KeyName = value; }
}
public string KeyValue
{
get { return _KeyValue; }
set { _KeyValue = value; }
}
public string UrlName
{
get { return _UrlName; }
set { _UrlName = value; }
}
public string UrlValue
{
get { return _UrlValue; }
set { _UrlValue = value; }
}
public string ImgName
{
get { return _ImgName; }
set { _ImgName = value; }
}
public string INDATABASE
{
get { return _INDATABASE; }
set { _INDATABASE = value; }
}
public bool needintoDatabase {
get {
if (_INDATABASE == "True" || _INDATABASE == "true") {
return true;
}return false;
}
}
public string FilePath
{
get { return _FilePath; }
set { _FilePath = value; }
}
public string Savefilename
{
get {
var _r = Savefilename_head;
_r += ExName;
return _r;
}
}
public string Savefilename_head
{
get
{
var _r = KeyValue;
if (!String.IsNullOrEmpty(ChildName))
{
_r += "_" + ChildName;
}
return _r;
}
}
#endregion
public static string _urlbase= "../../UploadFiles";
private string getSQL() {
var sql = String.Format("update {0} set {1}='{2}' where {3}='{4}'", TableName, UrlName, UrlValue, KeyName, KeyValue);
return sql;
}
public int DoUpdate() {
var _r = BasicDataRefDAL.ExecSql(getSQL());
return _r;
}
private string getInsert_info_files_SQL()
{
var sql = String.Format($"insert into info_files (GID,PID,FILENAME,FILEPATH) values ('{Guid.NewGuid().ToString()}','{KeyValue}','{Savefilename}','{getFileName()}')");
return sql;
}
public int DoInsert_info_files()
{
var _r = BasicDataRefDAL.ExecSql(getInsert_info_files_SQL());
return _r;
}
public FileUrlModel() {
}
public FileUrlModel(string ModelName)
{
var path = System.Web.HttpContext.Current.Server.MapPath(FileUrlModel._urlbase);
setModelValue(ModelName, path);
}
public FileUrlModel(string head,string ModelName,string ChildName="") {
var _Info = DSWeb.TruckMng.Helper.JsonConvert.Deserialize<FileUrlModel>(head);
var path = System.Web.HttpContext.Current.Server.MapPath(FileUrlModel._urlbase);
setModelValue(ModelName, path, ChildName);
//ChildName用于表示在某一模块下的多种类型文件 如info_client(往来单位)下添加电子章 或其他种类图片
this.SetValue(_Info);
}
private void setModelValue(string ModelName,string path, string ChildName = "") {
if (ModelName == "FactoryCargoname_TAGPIC")
{//进口贸易-厂号商品名称管理
TableName = "Import_Cargoname";
KeyName = "GID";
UrlName = "TAGPICURL";
FilePath = path + "\\" + ModelName;
this.ModelName = ModelName;
this.ChildName = ChildName;
}
if (ModelName == "InfoClient_Img")
{//往来单位-图片管理
//需要写入数据库
TableName = "Info_Client_IMG";
KeyName = "GID";
UrlName = "IMGURL";
ImgName = "IMG";
FilePath = path + "\\" + ModelName;
this.ModelName = ModelName;
this.ChildName = ChildName;
//INDATABASE = true;
}
if (ModelName == "SysUser_Head")
{
//系统用户 头像
TableName = "USER_BASEINFO";
KeyName = "USERID";
UrlName = "IMAGEURL";
FilePath = path + "\\" + ModelName;
this.ModelName = ModelName;
this.ChildName = ChildName;
//INDATABASE = true;
}
if (ModelName == "SysUser_Sign")
{
//系统用户 签名 需写入数据库
TableName = "USER_BASEINFO";
KeyName = "USERID";
UrlName = "SIGNATUREURL";
ImgName = "SIGNATUREPIC";
FilePath = path + "\\" + ModelName;
this.ModelName = ModelName;
this.ChildName = ChildName;
INDATABASE ="True";
}
if (ModelName == "Price_Quotation")
{
//系统用户 签名 需写入数据库
TableName = "Op_SeaPrice_Quotation";
KeyName = "BSNO";
UrlName = "PDFURL";
FilePath = path + "\\" + ModelName;
this.ModelName = ModelName;
this.ChildName = ChildName;
//INDATABASE = true;
}
}
public void SetValue(FileUrlModel info)
{
if (!string.IsNullOrEmpty(info.TableName))
{
TableName = info.TableName;
}
if (!string.IsNullOrEmpty(info.KeyName))
{
KeyName = info.KeyName;
}
if (!string.IsNullOrEmpty(info.UrlName))
{
UrlName = info.UrlName;
}
if (!string.IsNullOrEmpty(info.KeyValue))
{
KeyValue = info.KeyValue;
}
if (!string.IsNullOrEmpty(info.UrlValue))
{
UrlValue = info.UrlValue;
}
if (!string.IsNullOrEmpty(info.INDATABASE))
{
INDATABASE = info.INDATABASE;
}
}
private static string getexname(System.Web.HttpPostedFileBase file) {
return Path.GetExtension(file.FileName);
}
private string getFileName() {
var _r = FilePath + "\\" + Savefilename;
return _r;
}
/// <summary>
/// 保存方法 返回值为文件url
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public string SaveFile(System.Web.HttpPostedFileBase file,string savetype="")
{
//获得文件扩展名
ExName = getexname(file);
//首先 如没有目录则建立目录
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
string filename = getFileName();
//如存在同名文件则删除
string[] fileNames = Directory.GetFiles(FilePath);
foreach (string _file in fileNames)
{
if (_file.IndexOf(Savefilename_head, StringComparison.OrdinalIgnoreCase) >= 0) {
File.Delete(_file);
}
}
//if (File.Exists(filename))
//{
// File.Delete(filename);
//}
//保存文件
file.SaveAs(filename);
if (File.Exists(filename))
{
//向数据库写入url
UrlValue = _urlbase + "/" + ModelName + "/" + Savefilename;
if (savetype == "")
{//通常保存方法
DoUpdate();
//调取升级数据库内图片字段的方法
if (needintoDatabase)
{
BasicDataRefDAL.SaveFileIntoDB(this, UrlValue);
}
}
else {
if (savetype == "info_files") {
//文件信息写入info_files表内
DoInsert_info_files();
}
}
//返回是否存在此文件
return UrlValue;
}
else return "";
}
}
[JsonObject]
public class PrintSql
{
public string sql1 { get; set; }
public string sql2 { get; set; }
public string sql3 { get; set; }
public string sql4 { get; set; }
public string sql5 { get; set; }
public string sql6 { get; set; }
public string sql7 { get; set; }
public string sql8 { get; set; }
}
/// <summary>
/// 用于传递session等control层数据
/// </summary>
public class USERINFO
{
public string USERID { get; set; }
public string BLSTATUSSTR { get; set; }
public string ISENABLECUSTRANGE { get; set; }
public USERINFO()
{
}
public USERINFO(string USERID, string BLSTATUSSTR = "", string ISENABLECUSTRANGE = "")
{
this.USERID = USERID;
this.BLSTATUSSTR = BLSTATUSSTR;
this.ISENABLECUSTRANGE = ISENABLECUSTRANGE;
}
}
[JsonObject]
public class StoreModifyResultStatus
{
public string GID { get; set; }
public string STORENAME { get; set; }
public string TABLENAME { get; set; }
public string MODIFIEDTIME { get; set; }
}
[JsonObject]
public class StoreModifyStatusMb: ModelObjectBillHead
{
public static List<StoreModifyStatusMb> StoreModifyStatusList {
get {
return (List<StoreModifyStatusMb>)BasicDataRefDAL.GetStoreModifyStatusCache();
}
}
public static List<StoreModifyResultStatus> getstatus()
{
try
{
var result = new List<StoreModifyResultStatus>();
var StoreModifyStatusList = (List<StoreModifyStatusMb>) BasicDataRefDAL.GetStoreModifyStatusCache();
foreach (var item in StoreModifyStatusList)
{
var status = new StoreModifyResultStatus();
status.GID = item.GID;
status.STORENAME = item.STORENAME;
status.TABLENAME = item.TABLENAME;
//status.DISPLAYFIELD = item.GID;
//status.VALUEFIELD = item.GID;
//status.DISPLAYFIELD2 = item.GID;
//status.CONDITION = item.GID;
status.MODIFIEDTIME = item.MODIFIEDTIME;
result.Add(status);
}
return result;
}
catch (Exception e) {
//BasicDataRefDAL.ResetStoreModifyStatus();
return getstatus();
}
}
#region private Fields
private string _GID = string.Empty;
private string _STORENAME = string.Empty;
private string _TABLENAME = string.Empty;
private string _DISPLAYFIELD = string.Empty;
private string _VALUEFIELD = string.Empty;
private string _DISPLAYFIELD2 = "''";
private string _CONDITION = string.Empty;
private string _MODIFIEDTIME = string.Empty;
public List<PubStore> PubStoreList = new List<PubStore>();
/// <summary>
/// 刷新指定的store
/// 目前只有USERID="EVERYONE"的能调用到这个方法
/// </summary>
/// <param name="STORENAME"></param>
/// <param name="USERID"></param>
public static DBResult RefreshStore(string STORENAME, USERINFO USERINFO)
{
var sqlstr = "";
DBResult result = new DBResult();
//sqlstr = getSqlStr(STORENAME, USERINFO);
var evList = getDBStore(STORENAME, USERINFO);
//if (StoreModifyStatusList.Exists(x => x.STORENAME == STORENAME))
//{
// var _t = StoreModifyStatusList.Find(t => t.STORENAME == STORENAME);
// if (_t.PubStoreList.Exists(x => x.STOREUSERID == USERINFO.USERID))
// {
// _t.PubStoreList.Find(x => x.STOREUSERID == USERINFO.USERID).storelist = evList;
// result.setMessage(true, "");
// }
// else {
// var newpubstore = new PubStore();
// newpubstore.STOREUSERID = USERINFO.USERID;
// newpubstore.storelist = evList;
// _t.PubStoreList.Add(newpubstore);
// result.setMessage(true, "");
// }
//}
return result;
//if (evList.Count == 0)
//{
// return Json(new { success = false });
//}
//else
//{
// var blank = new GeneralModel();
// blank.GID = "";
// blank.GVALUE = "";
// blank.GVALUE2 = "";
// evList.Add(blank);
// return Json(new { success = true, data = evList.ToList() });
//}
return result;
}
/// <summary>
/// 从数据库取store内容
/// </summary>
/// <param name="STORENAME"></param>
/// <param name="USERINFO"></param>
/// <returns></returns>
private static List<PubStoremb> getDBStore(string STORENAME, USERINFO USERINFO)
{
var sqlstr = getSqlStr(STORENAME, USERINFO);
var evList = BasicDataRefDAL.getPubExtendStore(sqlstr);
return evList;
}
public static List<PubStoremb> getStore(string STORENAME, USERINFO USERINFO) {
//如果是那种区分userid的 就不写入内存 直接从数据库取值
/*
if (USERINFO.USERID != "EVERYONE")
{
return getDBStore(STORENAME, USERINFO);
}
var result = new List<PubStoremb>();
if (StoreModifyStatusList.Exists(x => x.STORENAME == STORENAME)) {
var _t = StoreModifyStatusList.Find(t => t.STORENAME == STORENAME);
if (_t.PubStoreList.Exists(x => x.STOREUSERID == USERINFO.USERID)) {
result = _t.PubStoreList.Find(x => x.STOREUSERID == USERINFO.USERID).storelist;
return result;
}
}
var _r = RefreshStore(STORENAME, USERINFO);
if (_r.Success) {
result = getStore(STORENAME, USERINFO);
}
return result;*/
//20200407 取消内存缓存的逻辑 改为完全从数据库读取
return getDBStore(STORENAME, USERINFO);
}
//public static void setList(List<StoreModifyStatusMb> currentlist) {
// StoreModifyStatusList.Clear();
// foreach (var sms in currentlist) {
// var newitem = new StoreModifyStatusMb();
// newitem.GID = sms.GID;
// newitem.STORENAME = sms.STORENAME;
// newitem.TABLENAME = sms.TABLENAME;
// newitem.DISPLAYFIELD = sms.DISPLAYFIELD;
// newitem.VALUEFIELD = sms.VALUEFIELD;
// newitem.DISPLAYFIELD2 = sms.DISPLAYFIELD2;
// newitem.CONDITION = sms.CONDITION;
// newitem.MODIFIEDTIME = sms.MODIFIEDTIME;
// StoreModifyStatusList.Add(newitem);
// }
//}
public static string getSql() {
return " select GID,STORENAME,TABLENAME,dbo.trimtime(MODIFIEDTIME) MODIFIEDTIME,DISPLAYFIELD,DISPLAYFIELD2,VALUEFIELD,CONDITION from t_sys_StoreModifyStatus ";
}
/// <summary>
/// 根据storename分配相应的现存查询方法
/// </summary>
/// <param name="STORENAME"></param>
/// <param name="USERINFO"></param>
/// <returns></returns>
public static string getSqlStr(string STORENAME, USERINFO USERINFO) {
string result = "";
var modcondition = "";
if (STORENAME == "INFOCLIENT_ISCONTROLLER" || STORENAME == "INFOCLIENT_INV" || STORENAME == "INFOCLIENT_ALL")
{
if (!string.IsNullOrWhiteSpace(USERINFO.BLSTATUSSTR))
{
modcondition = USERINFO.BLSTATUSSTR;
}
if (USERINFO.ISENABLECUSTRANGE == "1")
{
if (!string.IsNullOrWhiteSpace(modcondition)) modcondition += " and ";
modcondition += " (SHORTNAME in (SELECT SHORTNAME from info_client_range where USERID='" + USERINFO.USERID + "' ) or SHORTNAME not in (SELECT SHORTNAME from info_client_range )) ";
}
}
//if (StoreModifyStatusList.Exists(x => x.STORENAME == STORENAME))
//{
//var _t = StoreModifyStatusList.Find(t => t.STORENAME == STORENAME);
//if (!string.IsNullOrWhiteSpace(_t.VALUEFIELD))
//{//有VALUEFIELD的使用通用查询方法
// if (string.IsNullOrWhiteSpace(_t.DISPLAYFIELD2)) _t.DISPLAYFIELD2 = "''";
// result = "select " + _t.VALUEFIELD + " as GID," + _t.DISPLAYFIELD + " as GVALUE , " + _t.DISPLAYFIELD2 + " as GVALUE2 from " + _t.TABLENAME;
// var _condition = _t.CONDITION;
// if (!string.IsNullOrWhiteSpace(modcondition))
// {
// if (!string.IsNullOrWhiteSpace(_condition))
// {
// _condition += " and " + modcondition;
// }
// else
// {
// _condition = modcondition;
// }
// }
// if (!string.IsNullOrWhiteSpace(_condition))
// {
// result += " where " + _condition.Replace("[[USERID]]", "'" + USERINFO.USERID + "'");
// }
// result += " order by " + _t.DISPLAYFIELD;
//}
//else {
//没有valuefield的使用独立方法
if (STORENAME == "IMPORT_SELLER") {
//进口贸易 贸易商 isagent=1
result = BasicDataRefDAL.GetTrader_Getsqlstr(" isagent=1 ").ToString();
}
if (STORENAME == "IMPORT_BUYER")
{
//进口贸易 客户 isagentcn=1
result = BasicDataRefDAL.GetTrader_Getsqlstr(" isagentcn=1 ").ToString();
}
if (STORENAME == "HSCODE")
{
result = BasicDataRefDAL.GetCargoTax_Sqlstr("").ToString();
}
if (STORENAME == "CIQCODE")
{
result = BasicDataRefDAL.GetCargociqRefList_Sqlstr("").ToString();
}
//往来单位开票信息
if (STORENAME == "INFOCLIENT_INV")
{
result = BasicDataRefDAL.GetCustomInvRefList_SqlStr("", USERINFO.ISENABLECUSTRANGE, USERINFO.USERID).ToString();
}
//国内港口信息
if (STORENAME == "CODE_PORTLOAD")
{
result = BasicDataRefDAL.GetCodeLoadportList_Sqlstr("").ToString();
}
//国际港口信息
if (STORENAME == "CODE_PORTDISCHARGE")
{
result = BasicDataRefDAL.GetCodeDisportList_DisplayWithCNAME_Sqlstr("").ToString();
}
//场站信息
if (STORENAME == "OPSEAE_YARD")
{
result = BasicDataRefDAL.GetCustomInvRefList_SqlStr(" ISYARD=1 ").ToString();
}
if (STORENAME == "CODE_FEE")
{
result = MsChFeeDAL.GetFeeTypeRefList_Sqlstr("","").ToString();
}
if (STORENAME == "INFOCLIENT_ALL")
{
result = BasicDataRefDAL.GetCustomInvRefList_SqlStr("", USERINFO.ISENABLECUSTRANGE, USERINFO.USERID).ToString();
}
if (STORENAME == "INFOCLIENT_CARRIER")
{
result = BasicDataRefDAL.GetCustomInvRefList_SqlStr(" ISCARRIER=1 ", USERINFO.ISENABLECUSTRANGE, USERINFO.USERID).ToString();
}
if (STORENAME == "INFOCLIENT_ISCONTROLLER")
{
result = BasicDataRefDAL.GetCustomRefList_GetSqlStr(" ISCONTROLLER=1 ", USERINFO.ISENABLECUSTRANGE, USERINFO.USERID).ToString();
}
//}
//}
return result;
}
[ModelDB(MDBType = ModelDBOprationType.All, IsPrimary = true)]
public string GID
{
get { return _GID; }
set { _GID = value; }
}
/// <summary>
/// store的名字 如 INFOCLIENT_CARRIER 等,用于表示这个数据集的内容
/// </summary>
public string STORENAME
{
get { return _STORENAME.ToUpper(); }
set { _STORENAME = value; }
}
public string TABLENAME
{
get { return _TABLENAME.ToUpper(); }
set { _TABLENAME = value; }
}
[ModelDB]
public string MODIFIEDTIME
{
get { return _MODIFIEDTIME; }
set { _MODIFIEDTIME = value; }
}
public string DISPLAYFIELD
{
get { return _DISPLAYFIELD; }
set { _DISPLAYFIELD = value; }
}
public string VALUEFIELD
{
get { return _VALUEFIELD; }
set { _VALUEFIELD = value; }
}
public string DISPLAYFIELD2
{
get { return _DISPLAYFIELD2; }
set { _DISPLAYFIELD2 = value; }
}
public string CONDITION
{
get { return _CONDITION; }
set { _CONDITION = value; }
}
#endregion
public StoreModifyStatusMb()
{
// TableName = "tMsWlPcHead";
TableName = "t_sys_StoreModifyStatus";
}
public string getrangstr(string USERID) {
var result = "";
return result;
}
public override string GetBillNoFieldName()
{
return "GID";
}
public override string GetTimeMarkFieldName()
{
return "";
}
}
/// <summary>
///
/// </summary>
public class PubStore
{
public string STOREUSERID { get; set; }
public List<PubStoremb> storelist { get; set; }
}
[JsonObject]//通用store数据集
public class PubStoremb : ModelObjectBillHead
{
public override Dictionary<string, ModelDBOprationType> GetPKey()
{//用于给扩展的动态数据提供主键字段名
var d = new Dictionary<string, ModelDBOprationType>() { { "GID", ModelDBOprationType.All } };
return d;
}
public Dictionary<string, string> SaveDic = new Dictionary<string, string>();
public PubStoremb()
{
//TableName = "Op_INTERNALTRADE";
}
public override string GetBillNoFieldName()
{
return "GID";
}
public override string GetTimeMarkFieldName()
{
return "";
}
}
[JsonObject]//用于费用历史引入的v_op_bs数据集
public class VOPBSmb : ModelObjectBillHead
{
public override Dictionary<string, ModelDBOprationType> GetPKey()
{//用于给扩展的动态数据提供主键字段名
var d = new Dictionary<string, ModelDBOprationType>() { { "BSNO", ModelDBOprationType.All } };
return d;
}
public VOPBSmb()
{
//TableName = "Op_INTERNALTRADE";
}
public override string GetBillNoFieldName()
{
return "BSNO";
}
public override string GetTimeMarkFieldName()
{
return "";
}
}
#region 用于规则平台合规校验的
public class RulesEngineResult_DetailList
{
/// <summary>
///
/// </summary>
public bool isSuccess { get; set; }
/// <summary>
///
/// </summary>
public string resultCode { get; set; }
/// <summary>
/// [校验错误]CMA发货人、收货人、通知人必须显示公司名称和地址
/// </summary>
public string resultName { get; set; }
/// <summary>
///
/// </summary>
public string errorType { get; set; }
/// <summary>
///
/// </summary>
public string ruleName { get; set; }
/// <summary>
///
/// </summary>
public string wfName { get; set; }
}
public class RulesEngineResult_Extra
{
/// <summary>
///
/// </summary>
public bool isSuccess { get; set; }
/// <summary>
///
/// </summary>
public string requestId { get; set; }
/// <summary>
///
/// </summary>
public DateTime excuteDate { get; set; }
/// <summary>
///
/// </summary>
public List<RulesEngineResult_DetailList> detailList { get; set; }
}
public class RulesEngineResult_Root
{
/// <summary>
///
/// </summary>
public bool succ { get; set; }
/// <summary>
///
/// </summary>
public int status { get; set; }
/// <summary>
/// 校验完成
/// </summary>
public string msg { get; set; }
/// <summary>
///
/// </summary>
public int total { get; set; }
/// <summary>
///
/// </summary>
public string rows { get; set; }
/// <summary>
///
/// </summary>
public string summary { get; set; }
/// <summary>
///
/// </summary>
public RulesEngineResult_Extra extra { get; set; }
/// <summary>
///
/// </summary>
public string extra2 { get; set; }
}
public class Head
{
/// <summary>
///
/// </summary>
public string senderKey { get; set; }
/// <summary>
///
/// </summary>
public string gid { get; set; }
/// <summary>
///
/// </summary>
public string messageType { get; set; }
/// <summary>
///
/// </summary>
public string senderId { get; set; }
/// <summary>
/// 新海运订舱平台
/// </summary>
public string senderName { get; set; }
/// <summary>
///
/// </summary>
public string receiverId { get; set; }
/// <summary>
/// 大简云规则引擎
/// </summary>
public string receiverName { get; set; }
/// <summary>
///
/// </summary>
public string token { get; set; }
/// <summary>
///
/// </summary>
public string version { get; set; }
/// <summary>
///
/// </summary>
public DateTime requestDate { get; set; }
/// <summary>
///
/// </summary>
public string requestAction { get; set; }
}
public class CargoList
{
public decimal? pKGs { get; set; }
public string kindPKGs { get; set; }
public decimal? kGs { get; set; }
public decimal? cbm { get; set; }
public string hsCode { get; set; }
public string marks { get; set; }
public string description { get; set; }
public string remark { get; set; }
}
public class ContaList
{
/// <summary>
///
/// </summary>
public string contaType { get; set; }
/// <summary>
///
/// </summary>
public string contaTypeName { get; set; }
/// <summary>
///
/// </summary>
public string teu { get; set; }
/// <summary>
///
/// </summary>
public string contaNo { get; set; }
/// <summary>
///
/// </summary>
public string sealNo { get; set; }
/// <summary>
///
/// </summary>
public decimal? 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 decimal? tareWeight { get; set; }
/// <summary>
///
/// </summary>
public string contaStatus { get; set; }
/// <summary>
/// 总重
/// </summary>
public string weighType { get; set; }
/// <summary>
///
/// </summary>
public decimal? weighKGs { get; set; }
/// <summary>
///
/// </summary>
public string weighAttn { get; set; }
/// <summary>
///
/// </summary>
public string vgmConnCom { get; set; }
/// <summary>
///
/// </summary>
public string weighTel { get; set; }
/// <summary>
///
/// </summary>
public string weighDate { get; set; }
/// <summary>
///
/// </summary>
public string vgmAddr { get; set; }
/// <summary>
///
/// </summary>
public string vgmEmail { get; set; }
/// <summary>
///
/// </summary>
public string remark { get; set; }
/// <summary>
///
/// </summary>
public string contaCategory { get; set; }
/// <summary>
///
/// </summary>
public List<CargoList> cargoList { get; set; }
}
public class BusinessInfo
{
/// <summary>
///
/// </summary>
public string masterBlNo { get; set; }
/// <summary>
///
/// </summary>
public string houseBlNo { get; set; }
/// <summary>
///
/// </summary>
public string bookingNo { get; set; }
/// <summary>
///
/// </summary>
public string contrNo { get; set; }
/// <summary>
///
/// </summary>
public string servContrNo { get; set; }
/// <summary>
///
/// </summary>
public string shipperId { get; set; }
/// <summary>
///
/// </summary>
public string consigneeId { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyId { 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 notifyPrt2 { get; set; }
/// <summary>
///
/// </summary>
public string yardId { get; set; }
/// <summary>
///
/// </summary>
public string yard { get; set; }
/// <summary>
///
/// </summary>
public string vesselId { get; set; }
/// <summary>
///
/// </summary>
public string vessel { get; set; }
/// <summary>
///
/// </summary>
public string voyno { get; set; }
/// <summary>
///
/// </summary>
public string voynoIn { get; set; }
/// <summary>
///
/// </summary>
public string etd { get; set; }
/// <summary>
///
/// </summary>
public string atd { get; set; }
/// <summary>
///
/// </summary>
public string eta { get; set; }
/// <summary>
///
/// </summary>
public string closingDate { get; set; }
/// <summary>
///
/// </summary>
public string closeDocDate { get; set; }
/// <summary>
///
/// </summary>
public string closeVGMDate { get; set; }
/// <summary>
///
/// </summary>
public string placeReceiptId { get; set; }
/// <summary>
///
/// </summary>
public string placeReceipt { get; set; }
/// <summary>
///
/// </summary>
public string portLoadId { get; set; }
/// <summary>
///
/// </summary>
public string portLoad { get; set; }
/// <summary>
///
/// </summary>
public string portDischargeId { get; set; }
/// <summary>
///
/// </summary>
public string portDischarge { get; set; }
/// <summary>
///
/// </summary>
public string placeDeliveryId { get; set; }
/// <summary>
///
/// </summary>
public string placeDelivery { get; set; }
/// <summary>
///
/// </summary>
public string destinationId { get; set; }
/// <summary>
///
/// </summary>
public string destination { get; set; }
/// <summary>
///
/// </summary>
public string noBill { get; set; }
/// <summary>
///
/// </summary>
public string copyNoBill { get; set; }
/// <summary>
///
/// </summary>
public string issueType { get; set; }
/// <summary>
///
/// </summary>
public string issueDate { get; set; }
/// <summary>
///
/// </summary>
public string issuePlaceId { get; set; }
/// <summary>
///
/// </summary>
public string issuePlace { get; set; }
/// <summary>
///
/// </summary>
public string blfrt { get; set; }
/// <summary>
///
/// </summary>
public string prepardAt { get; set; }
/// <summary>
///
/// </summary>
public string payableAt { get; set; }
/// <summary>
///
/// </summary>
public string service { get; set; }
/// <summary>
///
/// </summary>
public string marks { get; set; }
/// <summary>
///
/// </summary>
public string hsCode { get; set; }
/// <summary>
///
/// </summary>
public string goodsDescription { get; set; }
/// <summary>
///
/// </summary>
public int pkGs { get; set; }
/// <summary>
///
/// </summary>
public string kindPKGs { get; set; }
/// <summary>
///
/// </summary>
public int kGs { get; set; }
/// <summary>
///
/// </summary>
public int cbm { get; set; }
/// <summary>
///
/// </summary>
public string totalNO { get; set; }
/// <summary>
///
/// </summary>
public string cntrTotal { get; set; }
/// <summary>
///
/// </summary>
public string carrierId { get; set; }
/// <summary>
/// 法国达飞
/// </summary>
public string carrier { 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 dPage { get; set; }
/// <summary>
///
/// </summary>
public string dLabel { get; set; }
/// <summary>
///
/// </summary>
public string dLinkMan { get; set; }
/// <summary>
///
/// </summary>
public string tempId { get; set; }
/// <summary>
///
/// </summary>
public string tempSet { get; set; }
/// <summary>
///
/// </summary>
public string reeferf { get; set; }
/// <summary>
///
/// </summary>
public string humidity { get; set; }
/// <summary>
///
/// </summary>
public string tempMin { get; set; }
/// <summary>
///
/// </summary>
public string tempMax { get; set; }
/// <summary>
///
/// </summary>
public bool isContaSOC { get; set; }
/// <summary>
///
/// </summary>
public string soRemark { get; set; }
/// <summary>
///
/// </summary>
public string siRemark { get; set; }
/// <summary>
///
/// </summary>
public string yardRemark { get; set; }
/// <summary>
///
/// </summary>
public string compId { get; set; }
/// <summary>
///
/// </summary>
public string compName { get; set; }
/// <summary>
///
/// </summary>
public string shipperName { get; set; }
/// <summary>
///
/// </summary>
public string shipperAddr1 { get; set; }
/// <summary>
///
/// </summary>
public string shipperAddr2 { get; set; }
/// <summary>
///
/// </summary>
public string shipperAddr3 { get; set; }
/// <summary>
///
/// </summary>
public string shipperCity { get; set; }
/// <summary>
///
/// </summary>
public string shipperProvice { get; set; }
/// <summary>
///
/// </summary>
public string shipperPostCode { get; set; }
/// <summary>
///
/// </summary>
public string shipperCountry { get; set; }
/// <summary>
///
/// </summary>
public string shipperAttn { 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 consigneeAddr2 { get; set; }
/// <summary>
///
/// </summary>
public string consigneeAddr3 { get; set; }
/// <summary>
///
/// </summary>
public string consigneeCity { get; set; }
/// <summary>
///
/// </summary>
public string consigneeProvince { get; set; }
/// <summary>
///
/// </summary>
public string consigneePostCode { get; set; }
/// <summary>
///
/// </summary>
public string consigneeCountry { get; set; }
/// <summary>
///
/// </summary>
public string consigneeAttn { get; set; }
/// <summary>
///
/// </summary>
public string consigneeTel { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyName { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyAddr1 { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyAddr2 { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyAddr3 { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyCity { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyProvince { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyPostCode { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyCountry { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyAttn { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyTel { get; set; }
/// <summary>
///
/// </summary>
public string poNo { get; set; }
/// <summary>
///
/// </summary>
public string opid { get; set; }
/// <summary>
///
/// </summary>
public string docid { get; set; }
/// <summary>
///
/// </summary>
public string op { get; set; }
/// <summary>
///
/// </summary>
public string doc { get; set; }
/// <summary>
///
/// </summary>
public string saleId { get; set; }
/// <summary>
///
/// </summary>
public string sale { get; set; }
/// <summary>
///
/// </summary>
public string custserviceId { get; set; }
/// <summary>
///
/// </summary>
public string custservice { get; set; }
/// <summary>
///
/// </summary>
public string custserviceName { get; set; }
/// <summary>
///
/// </summary>
public string forwarder { get; set; }
/// <summary>
///
/// </summary>
public string shipAgency { get; set; }
/// <summary>
///
/// </summary>
public string customsER { get; set; }
/// <summary>
///
/// </summary>
public string truckER { get; set; }
/// <summary>
///
/// </summary>
public string agentId { get; set; }
/// <summary>
///
/// </summary>
public int customerId { get; set; }
/// <summary>
///
/// </summary>
public string forwarderId { get; set; }
/// <summary>
///
/// </summary>
public string shipAgencyId { get; set; }
/// <summary>
///
/// </summary>
public string customsERId { get; set; }
/// <summary>
///
/// </summary>
public string truckERId { get; set; }
/// <summary>
///
/// </summary>
public string agentName { get; set; }
/// <summary>
///
/// </summary>
public string weiTo { get; set; }
/// <summary>
///
/// </summary>
public string consigneeDoorAddr { get; set; }
/// <summary>
///
/// </summary>
public string shipperDoorAddr { get; set; }
/// <summary>
///
/// </summary>
public string scacCode { get; set; }
/// <summary>
///
/// </summary>
public string itnCode { get; set; }
/// <summary>
///
/// </summary>
public string prePardAtId { get; set; }
/// <summary>
///
/// </summary>
public string payableAtId { get; set; }
/// <summary>
///
/// </summary>
public string custNo { get; set; }
/// <summary>
///
/// </summary>
public string transportId { get; set; }
/// <summary>
///
/// </summary>
public string transport { get; set; }
/// <summary>
///
/// </summary>
public string thirdPayAddr { get; set; }
/// <summary>
///
/// </summary>
public string yardContractTel { get; set; }
/// <summary>
///
/// </summary>
public string yardContractEmail { get; set; }
/// <summary>
///
/// </summary>
public string feeSelf { get; set; }
/// <summary>
///
/// </summary>
public string laneCode { get; set; }
/// <summary>
/// 南非航线
/// </summary>
public string laneName { get; set; }
/// <summary>
///
/// </summary>
public string freightPayer { get; set; }
/// <summary>
///
/// </summary>
public string shipperTaxNo { get; set; }
/// <summary>
///
/// </summary>
public string consigneeTaxNo { get; set; }
/// <summary>
///
/// </summary>
public string notifyPartyTaxNo { get; set; }
/// <summary>
///
/// </summary>
public bool? isATDChangeIssueType { get; set; }
/// <summary>
///
/// </summary>
public bool? isEngChinaLineBar { get; set; }
/// <summary>
///
/// </summary>
public bool? isDoubleShipper { get; set; }
/// <summary>
///
/// </summary>
public bool? isFCLAndLCLMix { get; set; }
/// <summary>
///
/// </summary>
public bool? isMutipleGoods { get; set; }
/// <summary>
///
/// </summary>
public bool? isContaLCL { get; set; }
/// <summary>
///
/// </summary>
public string portDischargeCountryNo { get; set; }
/// <summary>
///
/// </summary>
public string portDischargeEN { get; set; }
/// <summary>
/// 南非
/// </summary>
public string portDischargeCN { get; set; }
/// <summary>
///
/// </summary>
public string transportCountryNo { get; set; }
/// <summary>
///
/// </summary>
public string transportEN { get; set; }
/// <summary>
/// 南非
/// </summary>
public string transportCN { get; set; }
/// <summary>
///
/// </summary>
public List<ContaList> contaList { get; set; } = new List<ContaList>();
}
public class Main
{
/// <summary>
///
/// </summary>
public List<string> projectCode { get; set; }=new List<string>();
/// <summary>
///
/// </summary>
public BusinessInfo businessInfo { get; set; }
}
public class RulesEngineOrderBooking_Root
{
/// <summary>
///
/// </summary>
public Head head { get; set; }=new Head();
/// <summary>
///
/// </summary>
public Main main { get; set; }=new Main();
}
#endregion
public class DJYResult
{
public int statusCode { get; set; }
public object data { get; set; }
public bool? succeeded { get; set; }
public bool? errors { get; set; }
}
/// 大简云邮箱接口请求
/// </summary>
public class DjyEmailSendReq
{
/// <summary>
/// 接收邮箱
/// </summary>
public string SendTo { get; set; }
/// <summary>
/// 抄送
/// </summary>
public string CCTo { get; set; }
/// <summary>
/// 邮件标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 邮件正文
/// </summary>
public string Body { get; set; }
/// <summary>
/// 邮件显示的发送人 不设置则显示发送的邮箱
/// </summary>
public string ShowName { get; set; }
/// <summary>
/// 发送邮箱配置(发件邮箱)
/// </summary>
public string SmtpConfig { get; set; }
/// <summary>
/// 附件列表
/// </summary>
public List<Attaches> Attaches { get; set; }
/// <summary>
/// 自定义发送的邮箱账号 发件邮箱的账号,使用自定义邮箱发送邮件时,必须指定
/// </summary>
public string Account { get; set; }
/// <summary>
/// 自定义发送的邮箱密码 发件邮箱的密码,使用自定义邮箱发送邮件时,必须指定
/// </summary>
public string Password { get; set; }
/// <summary>
/// 自定义发送的邮箱服务器 发件邮箱的服务器地址,使用自定义邮箱发送邮件时,必须指定
/// </summary>
public string Server { get; set; }
/// <summary>
/// 自定义发送的发件端口 发件邮箱的端口,使用自定义邮箱发送邮件时,必须指定
/// </summary>
public int Port { get; set; }
/// <summary>
/// 自定义发送是否使用ssl 发件邮箱的是否使用SSL使用自定义邮箱发送邮件时必须指定
/// </summary>
public bool UseSSL { get; set; }
}
/// <summary>
/// 附件信息
/// </summary>
public class Attaches
{
/// <summary>
/// 附件名称 在邮件中显示的附件名称
/// </summary>
public string AttachName { get; set; } = string.Empty;
/// <summary>
/// 附件内容 以base64编码的字符串
/// </summary>
public string AttachContent { get; set; } = string.Empty;
}
/// <summary>
/// SmtpConfig选项枚举
/// </summary>
public enum SmtpConfigEnum
{
/// <summary>
/// dongshengcangdan@h8j.top
/// </summary>
CANGDAN,
/// <summary>
/// inv@mail.myshipping.net
/// </summary>
INVOICE,
/// <summary>
/// noreplay@mail.myshipping.net
/// </summary>
NOREPLAY,
/// <summary>
/// service@mail.myshipping.net
/// </summary>
SERVICE,
/// <summary>
/// spot@mail.myshipping.net
/// </summary>
SPOT,
}
/// <summary>
/// 大简云邮箱接口返回
/// </summary>
public class DjyEmailSendRes
{
/// <summary>
/// 是否成功
/// </summary>
public bool Success { get; set; }
/// <summary>
/// 说明文本
/// </summary>
public string Message { get; set; }
/// <summary>
/// 代号
/// </summary>
public string Code { get; set; }
}
}