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