新增VC更新订单信息功能

master
jianghaiqing 2 days ago
parent cc86da789c
commit 4107435ff5

@ -7,9 +7,9 @@ using System.ComponentModel;
namespace Myshipping.Application
{
/// <summary>
/// 舱位管理主信息
/// 舱位差异记录表
/// </summary>
[SugarTable("booking_slot_base", TableDescription = "舱位管理主信息")]
[SugarTable("booking_slot_change_record", TableDescription = "舱位差异记录表")]
public class BookingSlotChangeRecord : DBEntityTenant
{
/// <summary>
@ -67,5 +67,229 @@ namespace Myshipping.Application
[SugarColumn(ColumnName = "BOOKING_PARTY")]
[Description("订舱抬头")]
public string BOOKING_PARTY { get; set; }
/// <summary>
/// 船名
/// </summary>
[SugarColumn(ColumnName = "VESSEL")]
[Description("船名")]
public string VESSEL { get; set; }
/// <summary>
/// 航次号
/// </summary>
[SugarColumn(ColumnName = "VOYNO")]
[Description("航次号")]
public string VOYNO { get; set; }
/// <summary>
/// 预计开船日期
/// </summary>
[SugarColumn(ColumnName = "ETD")]
[Description("预计开船日期")]
public Nullable<DateTime> ETD { get; set; }
/// <summary>
/// 预计到港日期
/// </summary>
[SugarColumn(ColumnName = "ETA")]
[Description("预计到港日期")]
public Nullable<DateTime> ETA { get; set; }
/// <summary>
/// 收货地代码
/// </summary>
[SugarColumn(ColumnName = "PLACERECEIPTID")]
[Description("收货地代码")]
public string PLACERECEIPTID { get; set; }
/// <summary>
/// 收货地
/// </summary>
[SugarColumn(ColumnName = "PLACERECEIPT")]
[Description("收货地")]
public string PLACERECEIPT { get; set; }
/// <summary>
/// 交货地代码
/// </summary>
[SugarColumn(ColumnName = "PLACEDELIVERYID")]
[Description("收货地代码")]
public string PLACEDELIVERYID { get; set; }
/// <summary>
/// 交货地
/// </summary>
[SugarColumn(ColumnName = "PLACEDELIVERY")]
[Description("交货地")]
public string PLACEDELIVERY { get; set; }
/// <summary>
/// 装货港代码
/// </summary>
[SugarColumn(ColumnName = "PORTLOADID")]
[Description("装货港代码")]
public string PORTLOADID { get; set; }
/// <summary>
/// 装货港
/// </summary>
[SugarColumn(ColumnName = "PORTLOAD")]
[Description("装货港")]
public string PORTLOAD { get; set; }
/// <summary>
/// 卸货港代码
/// </summary>
[SugarColumn(ColumnName = "PORTDISCHARGEID")]
[Description("卸货港代码")]
public string PORTDISCHARGEID { get; set; }
/// <summary>
/// 卸货港
/// </summary>
[SugarColumn(ColumnName = "PORTDISCHARGE")]
[Description("卸货港")]
public string PORTDISCHARGE { get; set; }
/// <summary>
/// 船公司代号
/// </summary>
[SugarColumn(ColumnName = "CARRIERID")]
[Description("船公司代号")]
public string CARRIERID { get; set; }
/// <summary>
/// 船公司
/// </summary>
[SugarColumn(ColumnName = "CARRIER")]
[Description("船公司")]
public string CARRIER { get; set; }
/// <summary>
/// 承运方式 DIRECT_SHIP-直达TRANSFER_SHIP-中转
/// </summary>
[SugarColumn(ColumnName = "CARRIAGE_TYPE")]
[Description("承运方式")]
public string CARRIAGE_TYPE { get; set; }
/// <summary>
/// 承运方式名称 DIRECT_SHIP-直达TRANSFER_SHIP-中转
/// </summary>
[SugarColumn(ColumnName = "CARRIAGE_TYPE_NAME")]
[Description("承运方式名称")]
public string CARRIAGE_TYPE_NAME { get; set; }
/// <summary>
/// 订舱方式 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
[SugarColumn(ColumnName = "BOOKING_SLOT_TYPE")]
[Description("订舱方式")]
public string BOOKING_SLOT_TYPE { get; set; }
/// <summary>
/// 订舱方式名称 CONTRACT_ORDER-合约订舱SPOT_ORDER-SPOT订舱
/// </summary>
[SugarColumn(ColumnName = "BOOKING_SLOT_TYPE_NAME")]
[Description("订舱方式名称")]
public string BOOKING_SLOT_TYPE_NAME { get; set; }
/// <summary>
/// 箱型箱量
/// </summary>
[SugarColumn(ColumnName = "CTN_STAT")]
[Description("箱型箱量")]
public string CTN_STAT { get; set; }
/// <summary>
/// 所在周数
/// </summary>
[SugarColumn(ColumnName = "WEEK_AT")]
[Description("所在周数")]
public string WEEK_AT { get; set; }
/// <summary>
/// 箱使天数
/// </summary>
[SugarColumn(ColumnName = "DETENSION_FREE_DAYS")]
[Description("箱使天数")]
public Nullable<int> DETENSION_FREE_DAYS { get; set; }
/// <summary>
/// 样单截止日期
/// </summary>
[SugarColumn(ColumnName = "SI_CUT_DATE")]
[Description("样单截止日期")]
public Nullable<DateTime> SI_CUT_DATE { get; set; }
/// <summary>
/// 客户样单截止日期,经过日期提前后的日期
/// </summary>
[SugarColumn(ColumnName = "CUSTOM_SI_CUT_DATE")]
[Description("客户样单截止日期")]
public Nullable<DateTime> CUSTOM_SI_CUT_DATE { get; set; }
/// <summary>
/// 截港时间
/// </summary>
[SugarColumn(ColumnName = "CY_CUT_DATE")]
[Description("截港时间")]
public Nullable<DateTime> CY_CUT_DATE { get; set; }
/// <summary>
/// VGM截止日期
/// </summary>
[SugarColumn(ColumnName = "VGM_SUBMISSION_CUT_DATE")]
[Description("VGM截止日期")]
public Nullable<DateTime> VGM_SUBMISSION_CUT_DATE { get; set; }
/// <summary>
/// 是否已发送钉钉 1-已发0-未发
/// </summary>
[SugarColumn(ColumnName = "IS_SEND_DINGDING")]
[Description("是否已发送钉钉 1-已发0-未发")]
public bool IS_SEND_DINGDING { get; set; }
/// <summary>
/// 发送钉钉结果
/// </summary>
[SugarColumn(ColumnName = "SEND_DINGDING_RLT")]
[Description("发送钉钉结果")]
public string SEND_DINGDING_RLT { get; set; }
/// <summary>
/// 是否已发送邮件 1-已发送0-未发送
/// </summary>
[SugarColumn(ColumnName = "IS_SEND_EMAIL")]
[Description("是否已发送邮件 1-已发送0-未发送")]
public bool IS_SEND_EMAIL { get; set; }
/// <summary>
/// 发送邮件结果
/// </summary>
[SugarColumn(ColumnName = "SEND_EMAIL_RLT")]
[Description("发送邮件结果")]
public string SEND_EMAIL_RLT { get; set; }
/// <summary>
/// 发送批次
/// </summary>
[SugarColumn(ColumnName = "SEND_BATCH_NO")]
[Description("发送批次")]
public string SEND_BATCH_NO { get; set; }
/// <summary>
/// 任务主键
/// </summary>
[SugarColumn(ColumnName = "TASK_ID")]
[Description("任务主键")]
public string TASK_ID { get; set; }
/// <summary>
/// 发送时间
/// </summary>
[SugarColumn(ColumnName = "SEND_TIME")]
[Description("发送时间")]
public Nullable<DateTime> SEND_TIME { get; set; }
}
}

@ -1,12 +1,46 @@
using System;
using Myshipping.Core.Entity;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
public class BookingSlotChangeRecordNotify
/// <summary>
/// 舱位差异记录表相关人
/// </summary>
[SugarTable("booking_slot_change_record_notify", TableDescription = "舱位差异记录表相关人")]
public class BookingSlotChangeRecordNotify : DBEntityTenant
{
/// <summary>
/// 父主键
/// </summary>
[SugarColumn(ColumnName = "P_ID")]
[Description("父主键")]
public Nullable<long> P_ID { get; set; }
/// <summary>
/// 被通知人ID
/// </summary>
[SugarColumn(ColumnName = "NotifyUserId")]
[Description("被通知人ID")]
public Nullable<long> NotifyUserId { get; set; }
/// <summary>
/// 被通知人名称
/// </summary>
[SugarColumn(ColumnName = "NotifyUserName")]
[Description("被通知人名称")]
public Nullable<long> NotifyUserName { get; set; }
/// <summary>
/// 被通知人身份 SALE-销售OPERATOR-操作OP
/// </summary>
[SugarColumn(ColumnName = "NotifyUserRole")]
[Description("被通知人身份")]
public Nullable<long> NotifyUserRole { get; set; }
}
}

@ -0,0 +1,223 @@
using Myshipping.Application.Entity;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 验证副本
/// </summary>
[SugarTable("task_verify_copy_bl")]
[Description("验证副本")]
public class TaskVerifyCopyBL : TaskManageDbEntity
{
/// <summary>
/// 任务主键
/// </summary>
public string TASK_ID { get; set; }
/// <summary>
/// 船公司
/// </summary>
public string CARRIER { get; set; }
/// <summary>
/// 主单号
/// </summary>
public string MBL_NO { get; set; }
/// <summary>
/// 订舱编号
/// </summary>
public string BOOKING_NO { get; set; }
/// <summary>
/// 提取签单方式名称
/// </summary>
public string TAKE_ISSUETYPE_NAME { get; set; }
/// <summary>
/// 签单方式
/// </summary>
public string ISSUETYPE { get; set; }
/// <summary>
/// 通知接收时间
/// </summary>
public Nullable<DateTime> NOTICE_DATE { get; set; }
/// <summary>
/// 订舱ID
/// </summary>
public Nullable<long> BOOKING_ID { get; set; }
/// <summary>
/// 截单上传时间
/// </summary>
public Nullable<DateTime> SUBMITTED_DATE { get; set; }
/// <summary>
/// 提单份数
/// </summary>
public Nullable<int> BILLOF_NUM { get; set; }
/// <summary>
/// 放单方式
/// </summary>
public string RELEASE_INSTRUCTION { get; set; }
/// <summary>
/// 是否拆单 SPLIT-标识已拆单
/// </summary>
public string SI_SUBTYPE { 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 NOTIFYPARTY2 { get; set; }
/// <summary>
/// 订舱方
/// </summary>
public string TRANSPORT_RECEIVER { get; set; }
/// <summary>
/// 唛头
/// </summary>
public string MARKS { get; set; }
/// <summary>
/// HS代码
/// </summary>
public string HSCODE { get; set; }
/// <summary>
/// 货描
/// </summary>
public string DESCRIPTION { get; set; }
/// <summary>
/// 件数
/// </summary>
public Nullable<int> PKGS { get; set; }
/// <summary>
/// 包装
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
/// 毛重
/// </summary>
public Nullable<decimal> KGS { get; set; }
/// <summary>
/// 尺码
/// </summary>
public Nullable<decimal> CBM { get; set; }
/// <summary>
/// 船名
/// </summary>
public string VESSEL { get; set; }
/// <summary>
/// 海关航次
/// </summary>
public string VOYNO { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string COMMODITY { get; set; }
/// <summary>
/// 收货地代码
/// </summary>
//[Description("收货地代码")]
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>
/// 处理状态 TEMP-待处理SUCC-处理成功FAILURE-失败
/// </summary>
public string PROCESS_STATUS { get; set; }
/// <summary>
/// 是否设置了自动更新订舱
/// </summary>
public bool IS_SET_AUTO_UPD_BOOKING { get; set; }
/// <summary>
/// 处理结果
/// </summary>
public string PROCESS_RESULT { get; set; }
/// <summary>
/// 处理时间
/// </summary>
public Nullable<DateTime> PROCESS_DATE { get; set; }
/// <summary>
/// 比对差异数量
/// </summary>
public Nullable<int> DIFF_NUM { get; set; }
/// <summary>
/// 是否已更新订舱
/// </summary>
public bool IS_UPDATE_BOOKING { get; set; }
/// <summary>
/// 更新订舱时间
/// </summary>
public Nullable<DateTime> UPDATE_BOOKING_DATE { get; set; }
}
}

@ -0,0 +1,74 @@
using Myshipping.Application.Entity;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 验证副本箱信息
/// </summary>
[SugarTable("task_si_submitted_ctn")]
[Description("验证副本箱信息")]
public class TaskVerifyCopyBLCtn : TaskManageDbEntity
{
/// <summary>
/// 父主键
/// </summary>
public string P_PKID { get; set; }
/// <summary>
/// 箱型代码
/// </summary>
public string CTNCODE { 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 Nullable<int> PKGS { get; set; }
/// <summary>
/// 包装
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
/// 毛重
/// </summary>
public Nullable<decimal> KGS { get; set; }
/// <summary>
/// 尺码
/// </summary>
public Nullable<decimal> CBM { get; set; }
/// <summary>
/// 称重方式
/// </summary>
public string WEIGHTYPE { get; set; }
/// <summary>
/// 称重重量
/// </summary>
public Nullable<decimal> WEIGHKGS { get; set; }
}
}

@ -186,5 +186,10 @@ namespace Myshipping.Application
/// </summary>
[Description("运输计划已变更")]
TRNAS_PLAN_HAS_CHANGE,
/// <summary>
/// VerifyCopy
/// </summary>
[Description("VerifyCopy")]
VERIFY_COPY,
}
}

@ -63,6 +63,11 @@ namespace Myshipping.Application
[Description("Advisory")]
ADVISORY,
/// <summary>
/// Verify Copy
/// </summary>
[Description("Verify Copy")]
VERIFY_COPY,
/// <summary>
/// 空
/// </summary>
[Description("NONE")]

@ -1238,6 +1238,69 @@ namespace Myshipping.Application
.Map(dest => dest.BOOKING_CUSTOMER, src => src.BookedByCustomerName)
.Map(dest => dest.BOOKING_REFERENCE, src => src.BookedByReference)
.Map(dest => dest.PRICE_OWNER, src => src.PriceOwnerName);
config.ForType<TaskVerifyCopyBL, TaskVerifyCopyBLShowDto>()
.Map(dest => dest.MBlNo, src => src.MBL_NO)
.Map(dest => dest.Carrier, src => src.CARRIER)
.Map(dest => dest.TakeIssueTypeName, src => src.TAKE_ISSUETYPE_NAME)
.Map(dest => dest.IssueType, src => src.ISSUETYPE)
.Map(dest => dest.BookingId, src => src.BOOKING_ID);
config.ForType<TaskVerifyCopyBL, SIFeedBackCompareDto>()
.Map(dest => dest.MblNo, src => src.MBL_NO)
.Map(dest => dest.Carrier, src => src.CARRIER)
.Map(dest => dest.Shipper, src => src.SHIPPER)
.Map(dest => dest.Consignee, src => src.CONSIGNEE)
.Map(dest => dest.NotifyParty, src => src.NOTIFYPARTY)
.Map(dest => dest.NotifyParty2, src => src.NOTIFYPARTY2)
.Map(dest => dest.IssueType, src => src.ISSUETYPE)
.Map(dest => dest.BillOfNum, src => src.BILLOF_NUM)
.Map(dest => dest.Marks, src => src.MARKS)
.Map(dest => dest.HSCode, src => src.HSCODE)
.Map(dest => dest.Description, src => src.DESCRIPTION)
.Map(dest => dest.KindPKGS, src => src.KINDPKGS);
config.ForType<TaskManageOrderVerifyCopyBLInfo, TaskVerifyCopyBL>()
.Map(dest => dest.MBL_NO, src => src.MblNo)
.Map(dest => dest.BOOKING_NO, src => src.BookingNo)
.Map(dest => dest.CARRIER, src => src.Carrier)
.Map(dest => dest.TAKE_ISSUETYPE_NAME, src => src.TakeIssueTypeName)
.Map(dest => dest.ISSUETYPE, src => src.IssueType)
.Map(dest => dest.NOTICE_DATE, src => src.NoticeDate)
.Map(dest => dest.SUBMITTED_DATE, src => src.SubmittedDate)
.Map(dest => dest.BILLOF_NUM, src => src.BillOfNum)
.Map(dest => dest.RELEASE_INSTRUCTION, src => src.ReleaseInstruction)
.Map(dest => dest.SI_SUBTYPE, src => src.SISubType)
.Map(dest => dest.SHIPPER, src => src.Shipper)
.Map(dest => dest.CONSIGNEE, src => src.Consignee)
.Map(dest => dest.NOTIFYPARTY, src => src.NotifyParty)
.Map(dest => dest.NOTIFYPARTY2, src => src.NotifyParty2)
.Map(dest => dest.HSCODE, src => src.HSCode)
.Map(dest => dest.DESCRIPTION, src => src.Description)
.Map(dest => dest.PKGS, src => src.PKGS)
.Map(dest => dest.KINDPKGS, src => src.KindPKGS)
.Map(dest => dest.KGS, src => src.KGS)
.Map(dest => dest.CBM, src => src.CBM)
.Map(dest => dest.VESSEL, src => src.Vessel)
.Map(dest => dest.VOYNO, src => src.VoyNo)
.Map(dest => dest.COMMODITY, src => src.Commodity)
.Map(dest => dest.PORTLOAD, src => src.PortLoad)
.Map(dest => dest.PORTDISCHARGE, src => src.PortDischarge)
.Map(dest => dest.PLACEDELIVERY, src => src.PlaceReceipt)
.Map(dest => dest.PLACEDELIVERY, src => src.PlaceDelivery);
config.ForType<TaskManageOrderVerifyCopyBLContaInfo, TaskVerifyCopyBLCtn>()
.Map(dest => dest.CNTRNO, src => src.ContaNo)
.Map(dest => dest.CTNCODE, src => src.ContaType)
.Map(dest => dest.CTNALL, src => src.ContaTypeName)
.Map(dest => dest.SEALNO, src => src.SealNo)
.Map(dest => dest.PKGS, src => src.PKGS)
.Map(dest => dest.KINDPKGS, src => src.KINDPKGS)
.Map(dest => dest.KGS, src => src.KGS)
.Map(dest => dest.CBM, src => src.CBM)
.Map(dest => dest.WEIGHTYPE, src => src.WeighType)
.Map(dest => dest.WEIGHKGS, src => src.WeighKGS);
}
}
}

@ -287,6 +287,11 @@ namespace Myshipping.Application
/// </summary>
public List<Parse_attachmentItem> parse_attachment { get; set; }
/// <summary>
/// 验证副本
/// </summary>
public TaskManageOrderVerifyCopyBLInfo VerifyCopyBL { get; set; }
///// <summary>
///// 单票账单的解析
///// </summary>

@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 验证副本箱信息
/// </summary>
public class TaskManageOrderVerifyCopyBLContaInfo
{
/// <summary>
/// 集装箱号
/// </summary>
/// <example>RFCU2088064</example>
public string ContaNo { get; set; }
/// <summary>
/// 铅封号
/// </summary>
/// <example>T090518</example>
public string SealNo { get; set; }
/// <summary>
/// 件数
/// </summary>
/// <example>222</example>
public int PKGS { get; set; }
/// <summary>
/// 重量
/// </summary>
/// <example>1651</example>
public decimal? KGS { get; set; }
/// <summary>
/// 尺寸
/// </summary>
/// <example>9.67</example>
public decimal? CBM { get; set; }
/// <summary>
/// 箱型代码
/// </summary>
/// <example>20GP</example>
public string ContaType { get; set; }
/// <summary>
/// 箱型
/// </summary>
/// <example>20GP</example>
public string ContaTypeName { get; set; }
/// <summary>
/// 包装
/// </summary>
public string KINDPKGS { get; set; }
/// <summary>
/// 称重方式
/// </summary>
public string WeighType { get; set; }
/// <summary>
/// 称重重量
/// </summary>
public Nullable<decimal> WeighKGS { get; set; }
}
}

@ -0,0 +1,215 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 验证副本主信息
/// </summary>
public class TaskManageOrderVerifyCopyBLInfo
{
/// <summary>
/// 提单号
/// </summary>
public string MblNo { get; set; }
/// <summary>
/// 订舱编号
/// </summary>
public string BookingNo { get; set; }
/// <summary>
/// 船公司
/// </summary>
public string Carrier { get; set; }
/// <summary>
/// 通知时间
/// </summary>
public Nullable<DateTime> NoticeDate { 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 NotifyParty2 { get; set; }
/// <summary>
/// 订舱方
/// </summary>
public string TransportReceiver { get; set; }
/// <summary>
/// 唛头
/// </summary>
public string Marks { get; set; }
/// <summary>
/// HS CODE
/// </summary>
public string HSCode { get; set; }
/// <summary>
/// 货描
/// </summary>
public string Description { get; set; }
/// <summary>
/// 船名
/// </summary>
public string Vessel { get; set; }
/// <summary>
/// 航次
/// </summary>
public string VoyNo { get; set; }
/// <summary>
/// 截单备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 付费方式
/// </summary>
public string BLFRT { get; set; }
/// <summary>
/// 运输条款
/// </summary>
/// <example>CY-CY</example>
public string Service { get; set; }
/// <summary>
/// 签单方式
/// </summary>
/// <example>TELEX</example>
public string IssueType { get; set; }
/// <summary>
/// 提取签单方式
/// </summary>
/// <example>TELEX</example>
public string TakeIssueTypeName { get; set; }
/// <summary>
/// 装货港代码
/// </summary>
/// <example>CNTAO</example>
[MaxLength(5, ErrorMessage = "装货港代码需要5位编码")]
public string PortLoadId { get; set; }
/// <summary>
/// 装货港
/// </summary>
public string PortLoad { get; set; }
/// <summary>
/// 卸货港代码
/// </summary>
/// <example>GUPIT</example>
[MaxLength(5, ErrorMessage = "卸货港代码需要5位编码")]
public string PortDischargeId { get; set; }
/// <summary>
/// 卸货港
/// </summary>
public string PortDischarge { get; set; }
/// <summary>
/// 中转港代码
/// </summary>
/// <example>GUPIT</example>
[MaxLength(5, ErrorMessage = "中转港代码需要5位编码")]
public string PortTransId { get; set; }
/// <summary>
/// 中转港
/// </summary>
public string PortTrans { get; set; }
/// <summary>
/// 目的地代码
/// </summary>
/// <example>GUPIT</example>
[MaxLength(5, ErrorMessage = "目的地代码需要5位编码")]
public string DestinationId { get; set; }
/// <summary>
/// 目的地
/// </summary>
public string Destination { 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 ThirdPayAddr { get; set; }
/// <summary>
/// 截单上传时间
/// </summary>
public string SubmittedDate { get; set; }
/// <summary>
/// 签单方式(seaway、original、telex)
/// </summary>
public string DocumentType { get; set; }
/// <summary>
/// 提单份数
/// </summary>
public string BillOfNum { get; set; }
/// <summary>
/// 放单方式
/// </summary>
public string ReleaseInstruction { get; set; }
/// <summary>
/// 是否拆单 SPLIT-标识已拆单
/// </summary>
public string SISubType { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string Commodity { get; set; }
/// <summary>
/// 收货地
/// </summary>
public string PlaceReceipt { get; set; }
/// <summary>
/// 交货地
/// </summary>
public string PlaceDelivery { get; set; }
/// <summary>
/// 箱信息
/// </summary>
public List<TaskManageOrderVerifyCopyBLContaInfo> ContaList { get; set; }
}
}

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
public class TaskVerifyCopyBLDto
{
/// <summary>
/// 主键
/// </summary>
public string PKId { get; set; }
/// <summary>
/// 任务主键
/// </summary>
public string TaskId { get; set; }
/// <summary>
/// 主单号
/// </summary>
public string MBlNo { get; set; }
/// <summary>
/// 船公司
/// </summary>
public string Carrier { get; set; }
/// <summary>
/// 通知接收时间
/// </summary>
public Nullable<DateTime> NoticeDate { get; set; }
/// <summary>
/// 订舱ID
/// </summary>
public Nullable<long> BookingId { get; set; }
/// <summary>
/// 提取签单方式名称
/// </summary>
public string TakeIssueTypeName { get; set; }
/// <summary>
/// 签单方式名称
/// </summary>
public string IssueType { get; set; }
}
}

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
public class TaskVerifyCopyBLResultDto
{
// <summary>
/// 任务主键
/// </summary>
public string TaskId { get; set; }
/// <summary>
/// 订舱详情
/// </summary>
public TaskBookingOrderDto BookingOrder { get; set; }
/// <summary>
/// SI详情
/// </summary>
public TaskSIFeedBackResultBusiDto BusiInfo { get; set; }
/// <summary>
/// SI与订舱主信息比对差异字段列表
/// </summary>
public List<string> SICompareOrderKeyList { get; set; }
/// <summary>
/// SI与订舱集装箱比对差异字段列表
/// </summary>
public List<string> SICompareOrderContaKeyList { get; set; }
}
}

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
public class TaskVerifyCopyBLShowDto : TaskVerifyCopyBLDto
{
/// <summary>
/// 是否已完成
/// </summary>
public bool IsComplete { get; set; }
/// <summary>
/// 完成时间
/// </summary>
public Nullable<DateTime> CompleteTime { get; set; }
}
}

@ -0,0 +1,64 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application
{
/// <summary>
/// 验证副本
/// </summary>
public interface ITaskVerifyCopyBLService
{
/// <summary>
/// 获取验证副本详情
/// </summary>
/// <param name="pkId">验证副本主键</param>
/// <returns>返回回执</returns>
Task<TaskVerifyCopyBLShowDto> GetInfo(string pkId);
/// <summary>
/// 通过任务主键获取验证副本详情
/// </summary>
/// <param name="taskPkId">验证副本任务主键</param>
/// <returns>返回回执</returns>
Task<TaskVerifyCopyBLShowDto> GetInfoByTaskId(string taskPkId);
/// <summary>
/// 同步更新订舱订单的截单状态
/// </summary>
/// <param name="taskPkId">验证副本任务主键</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> SyncBookingSIStatus(string taskPkId);
/// <summary>
/// 重新处理验证副本任务
/// 对未匹配订舱订单的任务记录重新对应订单订单
/// </summary>
/// <param name="taskPkId">验证副本任务主键</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> SearchAndConnectBookingInfo(string taskPkId);
/// <summary>
/// 处理验证副本
/// </summary>
/// <param name="taskPkId">验证副本任务主键</param>
/// <returns>返回回执</returns>
Task<TaskManageOrderResultDto> ProcessVerifyCopyBL(string taskPkId);
/// <summary>
/// 获取订舱详情
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskBookingOrderDto> GetBookingOrderInfo(string taskPKId);
/// <summary>
/// 获取SI反馈信息
/// </summary>
/// <param name="taskPKId">任务主键</param>
/// <returns>返回结果</returns>
Task<TaskVerifyCopyBLResultDto> GetVerifyCopyBLInfo(string taskPKId);
}
}

@ -25,6 +25,7 @@ using Myshipping.Application.Helper;
using Myshipping.Application.Service.BookingOrder;
using Myshipping.Application.Service.BookingSlot.Dto;
using Myshipping.Application.Service.ExpressDelivery.Dto.SF;
using Myshipping.Application.Service.TaskManagePlat;
using Myshipping.Application.Service.TaskManagePlat.Interface;
using Myshipping.Core;
using Myshipping.Core.Const;
@ -136,7 +137,8 @@ namespace Myshipping.Application
private readonly SqlSugarRepository<TaskPOLContainerNotPickUpInfo> _taskPOLContainerNotPickUpInfoRepository;
private readonly SqlSugarRepository<TaskFlowTenant> _taskFlowTenant;
private readonly SqlSugarRepository<TaskVerifyCopyBL> _taskVerifyCopyBLRepository;
private readonly SqlSugarRepository<TaskVerifyCopyBLCtn> _taskVerifyCopyBLCtnRepository;
private readonly IDjyWebsiteAccountConfigService _webAccountConfig;
@ -157,6 +159,7 @@ namespace Myshipping.Application
private readonly INamedServiceProvider<IBookingLabelService> _namedBookingLabelServiceServiceProvider;
private readonly INamedServiceProvider<ITaskManagePODDischargeGateoutFullService> _namedPODDischargeGateoutFullProvider;
private readonly INamedServiceProvider<ITaskManageVGMService> _namedVGMServiceProvider;
private readonly INamedServiceProvider<ITaskVerifyCopyBLService> _namedtaskVerifyCopyBLServiceProvider;
private readonly IBookingValueAddedService _bookingValueAddedService;
@ -215,6 +218,8 @@ namespace Myshipping.Application
SqlSugarRepository<TaskTransPlanHasChangeInfo> taskTransPlanHasChangeInfoRepository,
SqlSugarRepository<TaskTransPlanHasChangeDetailInfo> taskTransPlanHasChangeDetailInfoRepository,
SqlSugarRepository<TaskPOLContainerNotPickUpInfo> taskPOLContainerNotPickUpInfoRepository,
SqlSugarRepository<TaskVerifyCopyBL> taskVerifyCopyBLRepository,
SqlSugarRepository<TaskVerifyCopyBLCtn> taskVerifyCopyBLCtnRepository,
INamedServiceProvider<IBookingOrderService> namedBookingOrderServiceProvider,
IDjyWebsiteAccountConfigService webAccountConfig,
ISysCacheService cache,
@ -232,6 +237,7 @@ namespace Myshipping.Application
INamedServiceProvider<IBookingLabelService> namedBookingLabelServiceServiceProvider,
INamedServiceProvider<ITaskManagePODDischargeGateoutFullService> namedPODDischargeGateoutFullProvider,
INamedServiceProvider<ITaskManageVGMService> namedVGMServiceProvider,
INamedServiceProvider<ITaskVerifyCopyBLService> namedtaskVerifyCopyBLServiceProvider,
ILogger<BookingOrderService> logger, BookingOrderAutoService bookingOrderAuto,
SqlSugarRepository<TaskFlowTenant> taskFlowTenant)
{
@ -308,6 +314,10 @@ namespace Myshipping.Application
_namedBookingLabelServiceServiceProvider = namedBookingLabelServiceServiceProvider;
_namedPODDischargeGateoutFullProvider = namedPODDischargeGateoutFullProvider;
_namedVGMServiceProvider = namedVGMServiceProvider;
_taskVerifyCopyBLRepository = taskVerifyCopyBLRepository;
_taskVerifyCopyBLCtnRepository = taskVerifyCopyBLCtnRepository;
_namedtaskVerifyCopyBLServiceProvider = namedtaskVerifyCopyBLServiceProvider;
}
#region 创建任务
@ -556,6 +566,12 @@ namespace Myshipping.Application
fileCategory = TaskFileCategoryEnum.ADVISORY.ToString();
}
else if (TaskBaseTypeEnum.VERIFY_COPY.ToString() == taskInfo.TASK_BASE_TYPE)
{
attachFileType = "verifycopayfiles";
fileCategory = TaskFileCategoryEnum.VERIFY_COPY.ToString();
}
if (info.Main.FileList == null)
{
@ -1915,6 +1931,75 @@ namespace Myshipping.Application
}
#endregion
#region 验证副本入库
//验证副本入库
if (info.Main.TaskType == TaskBaseTypeEnum.VERIFY_COPY)
{
if (info.Main.VerifyCopyBL == null)
throw Oops.Oh($"任务类型={info.Main.TaskType.ToString()} VerifyCopyBL信息必传");
TaskVerifyCopyBL taskVerifyCopyBL = info.Main.VerifyCopyBL.Adapt<TaskVerifyCopyBL>();
taskVerifyCopyBL.PK_ID = IDGen.NextID().ToString();
taskVerifyCopyBL.TASK_ID = taskInfo.PK_ID;
taskVerifyCopyBL.CreatedTime = taskInfo.CreatedTime;
taskVerifyCopyBL.UpdatedTime = taskInfo.CreatedTime;
taskVerifyCopyBL.CreatedUserId = taskInfo.CreatedUserId;
taskVerifyCopyBL.CreatedUserName = taskInfo.CreatedUserName;
taskVerifyCopyBL.TenantId = taskInfo.TenantId;
taskVerifyCopyBL.TenantName = taskInfo.TenantName;
_taskVerifyCopyBLRepository.Insert(taskVerifyCopyBL);
//验证副本箱信息入库
if (info.Main.VerifyCopyBL.ContaList != null && info.Main.VerifyCopyBL.ContaList.Count > 0)
{
var ediCtnList = _cache.GetAllCodeCtn().GetAwaiter().GetResult();
info.Main.VerifyCopyBL.ContaList.ForEach(ctn =>
{
var contaInfo = ctn.Adapt<TaskVerifyCopyBLCtn>();
contaInfo.PK_ID = IDGen.NextID().ToString();
contaInfo.P_PKID = taskVerifyCopyBL.PK_ID;
contaInfo.CreatedTime = taskInfo.CreatedTime;
contaInfo.UpdatedTime = taskInfo.CreatedTime;
contaInfo.CreatedUserId = taskInfo.CreatedUserId;
contaInfo.CreatedUserName = taskInfo.CreatedUserName;
contaInfo.TenantId = taskInfo.TenantId;
contaInfo.TenantName = taskInfo.TenantName;
if (string.IsNullOrWhiteSpace(contaInfo.CTNCODE) && !string.IsNullOrWhiteSpace(contaInfo.CTNALL))
{
if (ediCtnList != null && ediCtnList.Count > 0)
{
var ctnCodeInfo = ediCtnList.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x.Name)
&& x.Name.Equals(contaInfo.CTNALL, StringComparison.OrdinalIgnoreCase));
if (ctnCodeInfo != null)
{
contaInfo.CTNCODE = ctnCodeInfo.Code;
}
}
}
_taskVerifyCopyBLCtnRepository.Insert(contaInfo);
});
}
var siService = _namedtaskVerifyCopyBLServiceProvider
.GetService<ITransient>(nameof(TaskVerifyCopyBLService));
await siService.ProcessVerifyCopyBL(taskVerifyCopyBL.TASK_ID);
}
#endregion
#region 黑名单
#endregion

Loading…
Cancel
Save