@ -15,6 +15,13 @@ using DSWeb.Areas.MvcShipping.DB;
using DSWeb.MvcShipping.Models.MsOpSeae ;
using DSWeb.Areas.MvcShipping.Models.Message.VGM ;
using DSWeb.MvcShipping.DAL.MsOpSeaeEdiPortDAL ;
using NPOI.SS.Formula.Functions ;
using DSWeb.Areas.MvcShipping.Comm ;
using DSWeb.MvcShipping.DAL.MsSysThirdPartyAccount ;
using DSWeb.MvcShipping.Models.MsCwVouchersGl ;
using DSWeb.Common.DB ;
using System.Linq ;
using DSWeb.MvcShipping.Models.MsSysParamSet ;
namespace DSWeb.Areas.CommMng.Models
{
@ -1741,5 +1748,288 @@ namespace DSWeb.Areas.CommMng.Models
# endregion
#region 云港通实时接口
public class 云 港 通 实 时 接 口 Helper {
public string user_key { get ; set ; }
public string user_secret { get ; set ; }
public string bno { get ; set ; }
public string web_user { get ; set ; }
public string web_psw { get ; set ; }
public string vessel { get ; set ; }
public string voyage { get ; set ; }
public string email { get ; set ; }
public string ServerUrl { get ; set ; }
public virtual string apiurl { get ; set ; }
public DBResult GetUrl ( string USERID ) {
var result = new DBResult ( ) ;
result . OK ( ) ;
CommonDataContext commonData = new CommonDataContext ( ) ;
var pUserKey = commonData . sys_param_set . AsNoTracking ( ) . FirstOrDefault ( p = > p . PARAMNAME = = "billTraceNewUserKey" ) ;
var pUserSecret = commonData . sys_param_set . AsNoTracking ( ) . FirstOrDefault ( p = > p . PARAMNAME = = "billTraceNewUserSecret" ) ;
if ( pUserKey = = null | | string . IsNullOrEmpty ( pUserKey . PARAMVALUE ) | | pUserSecret = = null | | string . IsNullOrEmpty ( pUserSecret . PARAMVALUE ) )
{
result . SetErrorInfo ( "运踪爬虫用户KEY和SECRET参数未正确配置" ) ;
}
else {
user_key = pUserKey . PARAMVALUE ;
user_secret = pUserSecret . PARAMVALUE ;
}
var pServerUrl = commonData . sys_param_set . AsNoTracking ( ) . FirstOrDefault ( p = > p . PARAMNAME = = "billTraceNewServerUrl" ) ;
if ( pServerUrl = = null | | string . IsNullOrEmpty ( pServerUrl . PARAMVALUE ) )
{
result . SetErrorInfo ( "运踪爬虫服务地址参数未正确配置" ) ;
}
else {
ServerUrl = pServerUrl . PARAMVALUE ;
}
var accCfg = MsSysThirdPartyAccountDAL . GetData ( $" THIRDPARTY='运港通' and USERID ='{USERID}' " ) ;
if ( ! accCfg . HaveAccount ( ) )
{
result . SetErrorInfo ( "需要为该用户在第三方账号中设置【运港通】的账号密码。" ) ;
}
else {
web_user = accCfg . ACCOUNT ;
web_psw = accCfg . ACCOUNTPSW ;
}
return result ;
}
public void SetSearch ( string _bno , string _vessel , string _voyage , string _email = "" )
{
bno = _bno ;
vessel = _vessel ;
voyage = _voyage ;
email = _email ;
}
public DBResult DoSend ( )
{
DBResult result = new DBResult ( ) ;
var dic = new Dictionary < string , string > ( ) ;
dic . Add ( "user_key" , user_key ) ;
dic . Add ( "user_secret" , user_secret ) ;
dic . Add ( "bno" , bno ) ;
dic . Add ( "web_user" , web_user ) ;
dic . Add ( "web_psw" , web_psw ) ;
dic . Add ( "vessel" , vessel ) ;
dic . Add ( "voyage" , voyage ) ;
dic . Add ( "email" , email ) ;
var json = DSWeb . MvcShipping . Helper . JsonConvert . Serialize ( dic ) ;
var rtn = WebRequestHelper . DoPost ( ServerUrl + apiurl , json , 10000 ) ;
result . OK ( "" , rtn ) ;
return result ;
}
}
public class 云 港 通 实 时 接 口 _ 进 口 单 票 : 云 港 通 实 时 接 口 Helper
{
//public string apiurl { get; set; } = "/import/v1/ygt/single/vote";
public 云 港 通 实 时 接 口 _ 进 口 单 票 ( ) {
apiurl = "/import/v1/ygt/single/vote" ;
}
}
public class 云 港 通 实 时 接 口 _ 结 果
{
public int? code { get ; set ; }
public virtual object data { get ; set ; }
public string msg { get ; set ; }
public string request { get ; set ; }
public string getErrorName ( ) {
if ( code = = 200 ) return "成功" ;
if ( code = = 1000 ) return "查询失败, 没有查询到相关信息" ;
if ( code = = 1001 ) return "参数错误,具体原因参照 msg" ;
if ( code = = 1002 ) return "数据提交错误" ;
if ( code = = 1003 ) return "权限错误" ;
if ( code = = 999 ) return "内部未知错误" ;
return code . ToString ( ) ;
}
}
public class 云 港 通 实 时 接 口 _ 进 口 单 票 data
{
public 船 舶 计 划 containerShipScheme { get ; set ; }
public 海 关 放 行 customsRelease { get ; set ; }
public List < 进 口 原 始 舱 单 > originalInfos { get ; set ; }
public List < 外 理 理 货 > tallyInfos { get ; set ; }
public List < 提 单 放 行 > tdReleaseInfos { get ; set ; }
public List < 进 口 码 头 信 息 > wharfInfos { get ; set ; }
}
/// <summary>
/// 进口码头信息
/// </summary>
public class 进 口 码 头 信 息
{
public string wharfName { get ; set ; } // 码头名称
public string bno { get ; set ; } // 单号
public string vesselCN { get ; set ; } // 中文船名
public string vesselEN { get ; set ; } // 英文船名
public string voyage { get ; set ; } // 航次
public string boxStationCode { get ; set ; } // 箱站代码
public string ctnNO { get ; set ; } // 箱号
public string boxIS { get ; set ; } // 箱属
public string boxSize { get ; set ; } // 箱尺寸
public string boxPile { get ; set ; } // 箱型
public string sealNO { get ; set ; } // 铅封号
public string grossWeight { get ; set ; } // 整箱重
public string bareWeight { get ; set ; } // 空重
public string wharfPermit { get ; set ; } // 码头放行
public string loadingPort { get ; set ; } // 装货港
public string currentStatus { get ; set ; } // 当前状态
public string entryCategory { get ; set ; } // 入港类别
public string entryTime { get ; set ; } // 入港时间
public string entryDetails { get ; set ; } // 入港明细
public string clearanceCategory { get ; set ; } // 出港类别
public string clearanceTime { get ; set ; } // 出港时间
public string clearanceDetails { get ; set ; } // 出港明细
public string stockpilingDays { get ; set ; } // 堆存天数
public string geographicPosition { get ; set ; } // 地理位置
public string foreignTrade { get ; set ; } // 内外贸
public string dischargingPort { get ; set ; } // 卸货港
public string destinationPort { get ; set ; } // 目的港
}
/// <summary>
/// 进口原始舱单
/// </summary>
public class 进 口 原 始 舱 单
{
public string bno { get ; set ; } // 提单号
public string fbno { get ; set ; } // 分提单号
public string vesselCN { get ; set ; } // 中文船名
public string vesselEN { get ; set ; } // 英文船名
public string voyage { get ; set ; } // 航次
public string ctnNO { get ; set ; } // 箱号
public string bareWeight { get ; set ; } // 空重
public string boxSize { get ; set ; } // 箱尺寸
public string boxPile { get ; set ; } // 箱型
public string sealNO { get ; set ; } // 铅封号
public string quantity { get ; set ; } // 件数
public string weight { get ; set ; } // 重量
public string volume { get ; set ; } // 体积
}
/// <summary>
/// 外理理货
/// </summary>
public class 外 理 理 货
{
public string bno { get ; set ; } // 提单号
public string vesselEN { get ; set ; } // 英文船名
public string voyage { get ; set ; } // 航次
public string IMO { get ; set ; } // IMO
public string customsCode { get ; set ; } // 关区代码
public string ctnNO { get ; set ; } // 箱号
public string quantity { get ; set ; } // 件数
public string weight { get ; set ; } // 重量
public string volume { get ; set ; } // 体积
public string sendTime { get ; set ; } // 发送时间
public string receiptExplain { get ; set ; } // 回执说明
public string receiptTime { get ; set ; } // 回执时间
public string deletedMarker { get ; set ; } // 删除标志
}
/// <summary>
/// 海关放行
/// </summary>
public class 海 关 放 行
{
public string customsNO { get ; set ; } // 报关单号
public string fbno { get ; set ; } // 分单号
public string vesselEN { get ; set ; } // 英文船名
public string voyage { get ; set ; } // 航次
public string IMO { get ; set ; } // IMO
public string customsCode { get ; set ; } // 关区代码
public string permitTime { get ; set ; } // 放行时间
public string permitNum { get ; set ; } // 放行件数
public string ctnNO { get ; set ; } // 箱号
public string weight { get ; set ; } // 净重
public string roughWeight { get ; set ; } // 毛重
public string customsStatus { get ; set ; } // 海关状态
public string permitType { get ; set ; } // 放行类别
}
/// <summary>
/// 提单放行
/// </summary>
public class 提 单 放 行
{
public string bno { get ; set ; } // 主单号
public string vesselEN { get ; set ; } // 英文船名
public string voyage { get ; set ; } // 航次
public string IMO { get ; set ; } // IMO
public string vesselEnBranch { get ; set ; } // 支线英文船名
public string voyageBranch { get ; set ; } // 支线航次
public string customsNO { get ; set ; } // 报关单号
public string permitTime { get ; set ; } // 放行时间
public string permitNum { get ; set ; } // 放行件数
public string ctnNO { get ; set ; } // 箱号
public string weight { get ; set ; } // 净重
public string roughWeight { get ; set ; } // 毛重
public string customsStatus { get ; set ; } // 海关状态
public string permitType { get ; set ; } // 放行类别
}
/// <summary>
/// 集装箱船舶计划 字段说明
/// </summary>
public class 船 舶 计 划
{
public string vesselCode { get ; set ; } //船名代码
public string vesselCN { get ; set ; } //中文船名
public string vesselEN { get ; set ; } //英文船名
public string importVoyage { get ; set ; } //进口航次
public string exportVoyage { get ; set ; } //出口航次
public string estimatedArrivalTime { get ; set ; } //预计到港时间
public string estimatedDepartureTime { get ; set ; } //预计离港时间
public string actualArrivalTime { get ; set ; } //实际到港时间 ATA
public string actualDepartureTime { get ; set ; } //实际离港时间
public string receivingStartTime { get ; set ; } //收箱开始时间
public string receivingEndTime { get ; set ; } //收箱结束时间
public string airlineCode { get ; set ; } //航线代码
public string location { get ; set ; } //位置
public string importAgency { get ; set ; } //进口代理
public string arrivalStatus { get ; set ; } //抵港状态
public string carrier { get ; set ; } //承运人
public string airline { get ; set ; } //航线
public string berth { get ; set ; } //泊位
public string foreignTrade { get ; set ; } //内外贸
public string IMO { get ; set ; } //IMO
}
public class 云 港 通 实 时 接 口 _ 集 装 箱 进 口 空 箱 返 场 : 云 港 通 实 时 接 口 Helper
{
//public string apiurl { get; set; } = "/import/v1/ygt/box/empty_return";
public 云 港 通 实 时 接 口 _ 集 装 箱 进 口 空 箱 返 场 ( )
{
apiurl = "/import/v1/ygt/box/empty_return" ;
}
}
public class 云 港 通 实 时 接 口 _ 集 装 箱 进 口 空 箱 返 场 data
{
public string bno { get ; set ; } // 单号
public string ctnNO { get ; set ; } // 箱号
public string boxSize { get ; set ; } // 尺寸
public string boxType { get ; set ; } // 箱型
public string actualRecStation { get ; set ; } // 还空场站
public string returnCarNo { get ; set ; } // 还空车号
public string emptyReturnTime { get ; set ; } // 还空时间
public string stationConfirmFlag { get ; set ; } // 场站确认标志, '1'为以确认
public string driverConfirmFlag { get ; set ; } // 司机确认标志, '1'为以确认
}
# endregion
}