cjy 2 months ago
commit a914fdda3f

@ -53,7 +53,7 @@ namespace DS.Module.Core
/// </summary>
INTTRA,
/// <summary>
/// INTTRA
/// VOLTA
/// </summary>
VOLTA
}

@ -19,13 +19,18 @@ namespace DS.WMS.Core.Invoice.Dtos
/// <summary>
/// 发票号
/// </summary>
public string InvoiceNO { get; set; }
public string? InvoiceNO { get; set; }
/// <summary>
/// 发票业务编号
/// </summary>
public string BillNO { get; set; }
/// <summary>
/// 流水号
/// </summary>
public string? SN { get; set; }
/// <summary>
/// 开票时间
/// </summary>
@ -102,15 +107,25 @@ namespace DS.WMS.Core.Invoice.Dtos
/// </summary>
public string? OperatorName { get; set; }
/// <summary>
/// 发票类型
/// </summary>
public InvoiceType? Type { get; set; }
/// <summary>
/// 发票类型文本
/// </summary>
public string? TypeText => Type?.GetDescription();
/// <summary>
/// 开票方式
/// </summary>
public InvoiceMode Type { get; set; }
public InvoiceMode Mode { get; set; }
/// <summary>
/// 开票方式文本
/// </summary>
public string TypeText => Type.GetDescription();
public string ModeText => Mode.GetDescription();
/// <summary>
/// 是否已打印
@ -182,12 +197,12 @@ namespace DS.WMS.Core.Invoice.Dtos
/// <summary>
/// 发票类别
/// </summary>
public InvoiceCategory Category { get; set; }
public string? Category { get; set; }
/// <summary>
/// 发票类别文本
/// 发票类别代码
/// </summary>
public string CategoryText => Category.GetDescription();
public string? CategoryCode { get; set; }
/// <summary>
/// 开票金额(开票明细的合计)

@ -16,8 +16,8 @@ namespace DS.WMS.Core.Invoice.Entity
/// <summary>
/// 发票号
/// </summary>
[SugarColumn(ColumnDescription = "发票号", Length = 200, IsNullable = false), Required]
public string InvoiceNO { get; set; } = string.Empty;
[SugarColumn(ColumnDescription = "发票号", Length = 200, IsNullable = true)]
public string? InvoiceNO { get; set; }
/// <summary>
/// 发票业务编号
@ -25,6 +25,12 @@ namespace DS.WMS.Core.Invoice.Entity
[SugarColumn(ColumnDescription = "发票业务编号", Length = 20, IsNullable = false)]
public string BillNO { get; set; }
/// <summary>
/// 流水号
/// </summary>
[SugarColumn(ColumnDescription = "流水号", Length = 256, IsNullable = true)]
public string? SN { get; set; }
/// <summary>
/// 开票时间
/// </summary>
@ -113,7 +119,7 @@ namespace DS.WMS.Core.Invoice.Entity
/// 发票类型
/// </summary>
[SugarColumn(ColumnDescription = "发票类型")]
public InvoiceType Type { get; set; }
public InvoiceType? Type { get; set; }
/// <summary>
/// 是否已打印
@ -181,11 +187,17 @@ namespace DS.WMS.Core.Invoice.Entity
[SugarColumn(ColumnDescription = "代开客户", Length = 200, IsNullable = true)]
public string? AutualCustomerName { get; set; }
/// <summary>
/// 发票类别代码
/// </summary>
[SugarColumn(ColumnDescription = "发票类别代码", Length = 10, IsNullable = true)]
public string? CategoryCode { get; set; }
/// <summary>
/// 发票类别
/// </summary>
[SugarColumn(ColumnDescription = "发票类别")]
public InvoiceCategory Category { get; set; }
[SugarColumn(ColumnDescription = "发票类别", Length = 50, IsNullable = true)]
public string? Category { get; set; }
/// <summary>
/// 开票金额(开票明细的合计)

@ -54,7 +54,7 @@ namespace DS.WMS.Core.Invoice.Method
{
order = await TenantDb.Queryable<Entity.Invoice>().Where(x => ids.Contains(x.Id)).Select(x => new InvoiceInfo
{
invoiceType = ((int)x.Type).ToString(),
invoiceType = x.Type == null ? "1" : ((int)x.Type).ToString(),
orderNo = x.BillNO,
email = x.Email,
buyerTaxNum = x.TaxID,
@ -67,6 +67,7 @@ namespace DS.WMS.Core.Invoice.Method
skyhzh = x.Account,
checker = x.Checker,
payee = x.Payee,
invoiceLine = x.CategoryCode,
//---------金额项---------
hjse = x.InvoiceAmount * x.TaxRate,
hjje = x.InvoiceAmount - x.InvoiceAmount * x.TaxRate,

@ -42,37 +42,6 @@ namespace DS.WMS.Core.Invoice.Method
var query = TenantDb.Queryable<Entity.Invoice>()
.Select((i) => new InvoiceDto
{
Id = i.Id,
InvoiceNO = i.InvoiceNO,
BillNO = i.BillNO,
InvoiceDate = i.InvoiceDate,
CustomerId = i.CustomerId,
CustomerName = i.CustomerName,
Type = i.Mode,
Category = i.Category,
InvoiceHeader = i.InvoiceHeader,
TaxID = i.TaxID,
CustomerAddress = i.CustomerAddress,
CustomerBankName = i.CustomerBankName,
CustomerPhone = i.CustomerPhone,
CustomerAccount = i.CustomerAccount,
AutualCustomerName = i.AutualCustomerName,
Currency = i.Currency,
ReceiptCurrency = i.ReceiptCurrency,
ApplyAmount = i.ApplyAmount,
InvoiceAmount = i.InvoiceAmount,
OperatorId = i.OperatorId,
IsLocked = i.IsLocked,
LockUserId = i.LockUserId,
LockTime = i.LockTime,
TaxRate = i.TaxRate,
OrgId = i.OrgId,
SaleDeptId = i.SaleDeptId,
IsCancelled = i.IsCancelled,
CancelUserId = i.CancelUserId,
CancelTime = i.CancelTime,
CreateTime = i.CreateTime,
CreateBy = i.CreateBy,
Details = SqlFunc.Subqueryable<ApplicationDetail>().Where(d => d.ApplicationId == i.Id)
.ToList(d => new ApplicationDetailDto
{
@ -85,7 +54,7 @@ namespace DS.WMS.Core.Invoice.Method
d.ApplicationId == i.Id && d.Category == DetailCategory.InvoiceIssuance && d.RefId == a.Id)
.WhereIF(!string.IsNullOrEmpty(request.OtherQueryCondition), (d, a) => a.ApplicationNO.Contains(request.OtherQueryCondition))
.GroupBy((d, a) => a.ApplicationNO).ToList((d, a) => a.ApplicationNO)
}).MergeTable();
}, true).MergeTable();
if (!string.IsNullOrEmpty(request.OtherQueryCondition))
query = query.Where(i => i.InvoiceNO.Contains(request.OtherQueryCondition) || i.BillNO.Contains(request.OtherQueryCondition));

@ -224,6 +224,10 @@ namespace DS.WMS.Core.Op.EDI
#region 格式化每行
public static List<System.String> formatlengthStr(string str, int length, bool formatstr = false, bool nodelsp = false)
{
//2022-12-28 JHQ 传的字段是null会导致报错这里改为如果是NULL则默认赋空字符串。
if (str == null)
str = "";
str = str.Replace("\r\n", "\\");
str = str.Replace("\n", "\\");
str = str.Replace("\r", " ");
@ -303,17 +307,17 @@ namespace DS.WMS.Core.Op.EDI
if (string.IsNullOrEmpty(InttrEdi.RECEIVECODE))
{ error = error + "<br />接收方代码不能为空"; }
if (InttrEdi.filetype == "B")
{
if (InttrEdi.UseForWarderCode)
{
if (string.IsNullOrEmpty(InttrEdi.ForWarderCode))
{ error = error + "<br />货代代码不能为空"; }
//if (InttrEdi.filetype == "B")
//{
// if (InttrEdi.UseForWarderCode)
// {
// if (string.IsNullOrEmpty(InttrEdi.ForWarderCode))
// { error = error + "<br />货代代码不能为空"; }
if (string.IsNullOrEmpty(InttrEdi.ForWarderName))
{ error = error + "<br />货代称呼不能为空"; }
}
}
// if (string.IsNullOrEmpty(InttrEdi.ForWarderName))
// { error = error + "<br />货代称呼不能为空"; }
// }
//}
foreach (var headData in InttrEdi.BSLIST)
@ -325,9 +329,7 @@ namespace DS.WMS.Core.Op.EDI
if (string.IsNullOrEmpty(headData.BLFRT))
{ error = error + "<br />提单号:" + headData.MBLNO + " 付费方式不能为空"; }
//2023-01-04 JHQ 跟韩训涛确认ESL这里不处理航线代码去掉不为空校验并在生成EDI报文时对ESL航线代码赋空串
//if (string.IsNullOrEmpty(headData.ESLLINECODE))
//{ error = error + "<br />提单号:" + headData.MBLNO + " ESL航线代码不能为空"; }
if (InttrEdi.filetype == "E")
{
@ -337,13 +339,27 @@ namespace DS.WMS.Core.Op.EDI
if (string.IsNullOrEmpty(headData.VOYNO))
{ error = error + "<br />提单号:" + headData.MBLNO + " 航次不能为空"; }
if (string.IsNullOrEmpty(headData.ETD))
if (InttrEdi.filetype != "B" || headData.CARRIEREDICODE == "YML")
{
error = error + "<br />提单号:" + headData.MBLNO + " 开船日期不能为空";
return error;
if (string.IsNullOrEmpty(headData.ETD))
{
error = error + "<br />提单号:" + headData.MBLNO + " 开船日期不能为空";
return error;
}
}
}
if (headData.CARRIEREDICODE != "ZIM")
{
if (string.IsNullOrEmpty(headData.PLACERECEIPTID) || headData.PLACERECEIPTID.Length != 5)
{ error = error + "<br />提单号:" + headData.MBLNO + " 收货地代码不能为空或录入不正确(必须是5位代码)"; }
if (string.IsNullOrEmpty(headData.PLACERECEIPT))
{ error = error + "<br />提单号:" + headData.MBLNO + " 收货地不能为空"; }
}
if (string.IsNullOrEmpty(headData.PORTLOADID) || headData.PORTLOADID.Length != 5)
{ error = error + "<br />提单号:" + headData.MBLNO + " 装货港代码不能为空或录入不正确(必须是5位代码)"; }
@ -367,12 +383,6 @@ namespace DS.WMS.Core.Op.EDI
{ error = error + "<br />提单号:" + headData.MBLNO + " 目的地代码不能为空或录入不正确(必须是5位代码)"; }
}
if (string.IsNullOrEmpty(headData.ESLLINECODE))
{ error = error + "<br />提单号:" + headData.MBLNO + " 航司航线不能为空"; }
if (string.IsNullOrWhiteSpace(headData.CONTRACTNO))
{ error = error + "<br />提单号:" + headData.MBLNO + " 运费协议号不能为空"; }
if (string.IsNullOrEmpty(headData.KINDPKGS_EDI_CODE))
{ error = error + "<br />提单号:" + headData.MBLNO + " 包装EDI代码不能为空"; }
if (headData.PKGS == 0)
@ -400,6 +410,14 @@ namespace DS.WMS.Core.Op.EDI
if (headData.REEFERF == null || headData.REEFERF == "")
{ error = error + "<br />提单号:" + headData.MBLNO + " 通风度不能为空"; }
}
if (headData.ISSUEPLACE == null || headData.ISSUEPLACE == "")
{ error = error + "<br />提单号:" + headData.MBLNO + "签单地点不能为空"; }
if (headData.CARRIEREDICODE == "APL")
if (headData.ISSUETYPE == null || headData.ISSUETYPE == "")
{ error = error + "<br />提单号:" + headData.MBLNO + "签单方式不能为空"; }
if (headData.SERVICE == "" || headData.SERVICE == null)
{ error = error + "<br />提单号:" + headData.MBLNO + "运输条款不能为空"; }
if (string.IsNullOrEmpty(headData.MARKS))
{
@ -417,6 +435,11 @@ namespace DS.WMS.Core.Op.EDI
}
}
if (!new string[] { "ORI", "TER", "EXP" }.Contains(headData.ISSUETYPE))
{
error = error + "<br />提单号:" + headData.MBLNO + "签单方式未识别";
}
if (string.IsNullOrEmpty(headData.DESCRIPTION))
{
error = error + "<br />提单号:" + headData.MBLNO + " 货物描述不能为空";
@ -446,17 +469,14 @@ namespace DS.WMS.Core.Op.EDI
}
else
{
//2023-04-04 经和川操作确认不对收、发、通信息判断每行35个字符判断考虑判断方法判断了行数这里暂时改外调大单行的最大字符数35改为70
if (headData.CARRIEREDICODE == "HLCU")
{
error += formatlengthError("txt", headData.SHIPPER, 70, headData.MBLNO, "发货人", 6, "-", false);
error += formatlengthError("txt", headData.SHIPPER, 35, headData.MBLNO, "发货人", 6, "-", false);
}
else
{
error += formatlengthError("txt", headData.SHIPPER, 70, headData.MBLNO, "发货人", 6, "*", false);
error += formatlengthError("txt", headData.SHIPPER, 35, headData.MBLNO, "发货人", 6, "*", false);
}
}
}
//}
@ -475,15 +495,13 @@ namespace DS.WMS.Core.Op.EDI
}
else
{
//2023-04-04 经和川操作确认不对收、发、通信息判断每行35个字符判断考虑判断方法判断了行数这里暂时改外调大单行的最大字符数35改为70
if (headData.CARRIEREDICODE == "HLCU")
{
error += formatlengthError("txt", headData.CONSIGNEE, 70, headData.MBLNO, "收货人", 6, "--", false);
error += formatlengthError("txt", headData.CONSIGNEE, 35, headData.MBLNO, "收货人", 6, "--", false);
}
else
{
error += formatlengthError("txt", headData.CONSIGNEE, 70, headData.MBLNO, "收货人", 6, "**", false);
error += formatlengthError("txt", headData.CONSIGNEE, 35, headData.MBLNO, "收货人", 6, "**", false);
}
}
}
@ -503,15 +521,13 @@ namespace DS.WMS.Core.Op.EDI
}
else
{
//2023-04-04 经和川操作确认不对收、发、通信息判断每行35个字符判断考虑判断方法判断了行数这里暂时改外调大单行的最大字符数35改为70
if (headData.CARRIEREDICODE == "HLCU")
{
error += formatlengthError("txt", headData.NOTIFYPARTY, 70, headData.MBLNO, "通知人", 6, "---", false);
error += formatlengthError("txt", headData.NOTIFYPARTY, 35, headData.MBLNO, "通知人", 6, "---", false);
}
else
{
error += formatlengthError("txt", headData.NOTIFYPARTY, 70, headData.MBLNO, "通知人", 6, "***", false);
error += formatlengthError("txt", headData.NOTIFYPARTY, 35, headData.MBLNO, "通知人", 6, "***", false);
}
}
}
@ -534,7 +550,7 @@ namespace DS.WMS.Core.Op.EDI
{
if (string.IsNullOrEmpty(ctn.CTNALLCODE))
{ error = error + "<br />提单号:" + headData.MBLNO + " 集装箱箱型EDI代码不能为空"; }
if (ctn.CTNALLCODE != null && (ctn.CTNALLCODE.IndexOf("RH") > 0 || ctn.CTNALLCODE.IndexOf("RF") > 0) && (headData.CARGOID != "R"))
if ((ctn.CTNALLCODE.IndexOf("RH") > 0 || ctn.CTNALLCODE.IndexOf("RF") > 0) && (headData.CARGOID != "R"))
{
{ error = error + "<br />提单号:" + headData.MBLNO + " 集装箱箱型为冻柜,货类代码请选择冻柜"; }
}
@ -630,10 +646,10 @@ namespace DS.WMS.Core.Op.EDI
//跟韩工确认增加判断
if (!string.IsNullOrWhiteSpace(headData.BLFRT) && headData.BLFRT.IndexOf("PREPAID") >= 0)
{
if (string.IsNullOrWhiteSpace(headData.PREPARDAT))
{
error = error + "<br />提单号:" + headData.MBLNO + " 付费方式是预付,预付地点不能为空";
}
//if (string.IsNullOrWhiteSpace(headData.PREPARDAT))
//{
// error = error + "<br />提单号:" + headData.MBLNO + " 付费方式是预付,预付地点不能为空";
//}
if (!string.IsNullOrWhiteSpace(headData.PAYABLEAT))
{
@ -642,32 +658,26 @@ namespace DS.WMS.Core.Op.EDI
}
else if (!string.IsNullOrWhiteSpace(headData.BLFRT) && headData.BLFRT.IndexOf("COLLECT") >= 0)
{
if (string.IsNullOrWhiteSpace(headData.PAYABLEAT))
{
error = error + "<br />提单号:" + headData.MBLNO + " 付费方式是到付,到付地点不能为空";
}
//if (string.IsNullOrWhiteSpace(headData.PAYABLEAT))
//{
// error = error + "<br />提单号:" + headData.MBLNO + " 付费方式是到付,到付地点不能为空";
//}
if (!string.IsNullOrWhiteSpace(headData.PREPARDAT))
{
error = error + "<br />提单号:" + headData.MBLNO + " 付费方式是到付,预付地点不能填写";
}
}
}
return error;
}
#endregion
#region 生成报文(订舱(InttrEdi.filetype=="B"),截单(InttrEdi.filetype=="E"))
#region 生成报文(订舱(filetype=="B"),截单(filetype=="E"))
public static EdiDataResult CreateEdiVOLTA(EDIBaseModel InttrEdi)
{
/*
1SERVICECONTRACTNO()EDI
*/
EdiDataResult result = new EdiDataResult { Succeeded = false };
var result = new EdiDataResult { Succeeded = false };
var filetype = "IFTMIN";
if (InttrEdi.filetype != "E") filetype = "IFTMBF";
@ -677,22 +687,17 @@ namespace DS.WMS.Core.Op.EDI
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
filename = filename.Replace("\\", "/");
//if (System.IO.File.Exists(filename))
//{
// System.IO.File.Delete(filename);
//}
FileStream f = new FileStream(filename, FileMode.Create);
StreamWriter r = new StreamWriter(f, Encoding.Default);
var icount = 0;
var bsno = "";
var isfirst = true;
foreach (var bill in InttrEdi.BSLIST)
{
//2023-01-04 JHQ 跟韩训涛确认ESL这里不处理航线代码去掉不为空校验并在生成EDI报文时对ESL航线代码赋空串
if (bill.ESLLINECODE == null)
bill.ESLLINECODE = string.Empty;
//2022-01-04
if (InttrEdi.ForWarderName == null)
InttrEdi.ForWarderName = string.Empty;
if (isfirst)
{
if (InttrEdi.filetype == "E")
@ -704,14 +709,74 @@ namespace DS.WMS.Core.Op.EDI
}
//2023-03-03 修改运输条款SERVICE改为EDI的映射值经过韩工确认
if (bill.CARRIEREDICODE == "ONEY")
{
var sendno = bill.EDIATTNEMAIL;
if (filetype == "E") sendno = bill.AMSCODE;
var MBLNO = bill.MBLNO;
if (MBLNO.Substring(0, 4) == "ONEY")
{
MBLNO = MBLNO.Substring(4, MBLNO.Length - 4);
}
//2023-02-28 ONE的逻辑是去掉了提单号的前4位跟韩工已确认与东胜7相同
//2023-03-03 韩工给提供了新的02行的处理SENDNAME改为读取FTP配置的
/*
r.WriteLine("02"
+ ":" + MBLNO//2 REFERENCE NO. 运编号 X(35) 一般为流水号 M
+ ":" + MBLNO//3 B\L NO. 提单号 X(20) 船公司的提单号 C
+ ":" + bill.SERVICE//4 DELIVERY TERM 交货条款 X(9) CY-CY(pier-pier/port):30CY-CFS(pier/port-door):29CFS-CY(door-pier/port):28CFS-CFS(door-door):27 M
+ ":" + InttrEdi.SENDNAME//5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":ONEY" //6 ISSUE PARTY CODE 签单人代码 X(13) 即接受订舱的人的代码 M
+ ":"//7 ISSUE PARTY 签单人说明 X(35)   C
+ ":"//8 APPLICANT 询价单位 X(13) 向船公司询价的单位代码 C
+ ":"//9 FOB BK PARTY 国外订舱单位 X(13) 国外FOB货订舱单位的代码 C
+ ":"//10 B/L TRANSHIP ID 转船标识 X(1) Y/N C
+ ":"//11 BATCH ID 分批 X(1) Y/N C
+ ":"//12 SHIPMENT DATE 装期 9(8) CCYYMMDD C
+ ":"//13 EXPIRY DATE 效期 9(8) CCYYMMDD C
+ ":" + bill.CONTRACTNO//14 QUOTATION NO. 运费协议号 X(30) MAERSK为必选 C
+ ":"//15 CHARGE TYPE 费率本代码 X(1)   C
+ ":" + bill.CONTRACTNO//16 S/C NO. 合约号 X(30)   C
+ ":"//17 BOOKING NO. 船公司订舱编号 X(20) 船公司系统内部订舱编号 C
+ ":"//18 SLOT CHARTER ID 舱位互用标识 X(1)   C
+ ":" + sendno//19 AMS CODE AMS代码 X(15)   C
//注QUOTATION NO.项填本票订舱货的运价是通过向中集询价后定下的特殊运价编号。
+ "'");
*/
//2023-03-03 修改运输条款SERVICE改为EDI的映射值经过韩工确认
r.WriteLine("02"
+ ":" + MBLNO//2 REFERENCE NO. 运编号 X(35) 一般为流水号 M
+ ":" + MBLNO//3 B\L NO. 提单号 X(20) 船公司的提单号 C
+ ":" + bill.SERVICEEDICODE//4 DELIVERY TERM 交货条款 X(9) CY-CY(pier-pier/port):30CY-CFS(pier/port-door):29CFS-CY(door-pier/port):28CFS-CFS(door-door):27 M
+ ":" + formatEdiStr("txt", InttrEdi.SENDCOMPANYCODE) //5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":ONEY" //6 ISSUE PARTY CODE 签单人代码 X(13) 即接受订舱的人的代码 M
+ ":"//7 ISSUE PARTY 签单人说明 X(35)   C
+ ":"//8 APPLICANT 询价单位 X(13) 向船公司询价的单位代码 C
+ ":"//9 FOB BK PARTY 国外订舱单位 X(13) 国外FOB货订舱单位的代码 C
+ ":"//10 B/L TRANSHIP ID 转船标识 X(1) Y/N C
+ ":"//11 BATCH ID 分批 X(1) Y/N C
+ ":"//12 SHIPMENT DATE 装期 9(8) CCYYMMDD C
+ ":"//13 EXPIRY DATE 效期 9(8) CCYYMMDD C
+ ":" + bill.CONTRACTNO//14 QUOTATION NO. 运费协议号 X(30) MAERSK为必选 C
+ ":"//15 CHARGE TYPE 费率本代码 X(1)   C
+ ":" + bill.CONTRACTNO//16 S/C NO. 合约号 X(30)   C
+ ":"//17 BOOKING NO. 船公司订舱编号 X(20) 船公司系统内部订舱编号 C
+ ":"//18 SLOT CHARTER ID 舱位互用标识 X(1)   C
+ ":" + sendno//19 AMS CODE AMS代码 X(15)   C
//注QUOTATION NO.项填本票订舱货的运价是通过向中集询价后定下的特殊运价编号。
+ "'");
}
else
if (InttrEdi.filetype == "E")
{
//2023-03-03 修改运输条款SERVICE改为EDI的映射值经过韩工确认
r.WriteLine("02"
+ ":" + bill.ORDERNO//2 REFERENCE NO. 运编号 X(35) 一般为流水号 M
+ ":" + bill.MBLNO//3 B\L NO. 提单号 X(20) 船公司的提单号 C
+ ":" + bill.SERVICEEDICODE//4 DELIVERY TERM 交货条款 X(9) CY-CY(pier-pier/port):30CY-CFS(pier/port-door):29CFS-CY(door-pier/port):28CFS-CFS(door-door):27 M
+ ":" + formatEdiStr("txt", InttrEdi.ForWarderName.Replace("\n", " ").Replace("\r", " "))//5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":" + formatEdiStr("txt", !string.IsNullOrWhiteSpace(InttrEdi.ForWarderName) ? InttrEdi.ForWarderName.Replace("\n", " ").Replace("\r", " ") : "")//5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":" + InttrEdi.RECEIVECODE//6 ISSUE PARTY CODE 签单人代码 X(13) 即接受订舱的人的代码 M
+ ":"//7 ISSUE PARTY 签单人说明 X(35)   C
+ ":"//8 APPLICANT 询价单位 X(13) 向船公司询价的单位代码 C
@ -734,12 +799,14 @@ namespace DS.WMS.Core.Op.EDI
}
else
{
var sendno = bill.EDIATTNEMAIL;
//2023-03-03 修改运输条款SERVICE改为EDI的映射值经过韩工确认
r.WriteLine("02"
+ ":" + bill.ORDERNO//2 REFERENCE NO. 运编号 X(35) 一般为流水号 M
+ ":" + bill.MBLNO//3 B\L NO. 提单号 X(20) 船公司的提单号 C
+ ":" + bill.SERVICEEDICODE//4 DELIVERY TERM 交货条款 X(9) CY-CY(pier-pier/port):30CY-CFS(pier/port-door):29CFS-CY(door-pier/port):28CFS-CFS(door-door):27 M
+ ":" + formatEdiStr("txt", InttrEdi.ForWarderName.Replace("\n", " ").Replace("\r", " "))//5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":" + formatEdiStr("txt", !string.IsNullOrWhiteSpace(InttrEdi.ForWarderName) ? InttrEdi.ForWarderName.Replace("\n", " ").Replace("\r", " ") : "")//5 BOOKING PARTY 订舱人说明 X(70) 货代方企业名称或代码 C
+ ":" + InttrEdi.RECEIVECODE//6 ISSUE PARTY CODE 签单人代码 X(13) 即接受订舱的人的代码 M
+ ":"//7 ISSUE PARTY 签单人说明 X(35)   C
+ ":"//8 APPLICANT 询价单位 X(13) 向船公司询价的单位代码 C
@ -750,23 +817,19 @@ namespace DS.WMS.Core.Op.EDI
+ ":"//13 EXPIRY DATE 效期 9(8) CCYYMMDD C
+ ":" + bill.CONTRACTNO//14 QUOTATION NO. 运费协议号 X(30) MAERSK为必选 C
+ ":"//15 CHARGE TYPE 费率本代码 X(1)   C
+ ":" + bill.SERVICECONTRACTNO//16 S/C NO. 合约号 X(30)   C
/* 2023-04-10
+ ":" + bill.ORDERNO//17 BOOKING NO. 船公司订舱编号 X(20) 船公司系统内部订舱编号 C
*/
+ ":" + bill.CONTRACTNO//16 S/C NO. 合约号 X(30)   C
+ ":"//17 BOOKING NO. 船公司订舱编号 X(20) 船公司系统内部订舱编号 C
+ ":"//18 SLOT CHARTER ID 舱位互用标识 X(1)   C
+ ":" + bill.EDIATTNEMAIL//21 AMS CODE AMS代码 X(15)   C
+ ":" + bill.EDIATTN//22 AMS CODE AMS代码 X(15)   C
+ ":" + bill.EDIATTNTEL//23 AMS CODE AMS代码 X(15)   C
//注QUOTATION NO.项填本票订舱货的运价是通过向中集询价后定下的特殊运价编号。
+ ":" + sendno//19 AMS CODE AMS代码 X(15)   C
//注QUOTATION NO.项填本票订舱货的运价是通过向中集询价后定下的特殊运价编号。
+ "'");
}
icount++;
var ISSUETYPE = "";
/* 2022-01-04
//2023-03-02 测试这里有问题,签单方式用的中文,要改成英文正本-ORIGINAL 电放-TELEX
/*
if (bill.ISSUETYPE == "正本")
{
ISSUETYPE = "ORI";
@ -777,28 +840,36 @@ namespace DS.WMS.Core.Op.EDI
}
else ISSUETYPE = "EXP";
*/
//if (bill.ISSUETYPE == "ORIGINAL")
//{
// ISSUETYPE = "ORI";
//}
//else if (bill.ISSUETYPE == "TELEX")
//{
// ISSUETYPE = "TER";
//}
//else ISSUETYPE = "EXP";
if (bill.ISSUETYPE == "ORIGINAL")
if (new string[] { "ORI", "TER", "EXP" }.Contains(bill.ISSUETYPE))
{
//正本
ISSUETYPE = "ORI";
ISSUETYPE = bill.ISSUETYPE;
}
else if (bill.ISSUETYPE == "TELEX")
{
//电放
ISSUETYPE = "TER";
}
else ISSUETYPE = "EXP";
r.WriteLine("03:" + ISSUETYPE + ":" + bill.ISSUEPLACEID.Trim() + ":" + bill.ISSUEPLACE.Trim() + ":" + GetDateStr(bill.ISSUEDATE, "yyyyMMdd") + ":" + GetBillNum2(bill.NOBILL) + ":" + bill.PREPARDAT + ":" + bill.PAYABLEAT + "'");
icount++;
r.WriteLine("11:" + bill.ESLLINECODE + ":" + bill.VESSEL + ":" + bill.VOYNO + ":::" + InttrEdi.RECEIVECODE + "::" + GetDateStr(bill.ETD, "yyyyMMdd") + ":::::'");
//2024-09-13 参考韩工东胜7去掉ETD
//r.WriteLine("11:" + bill.VESSELID + ":" + bill.VESSEL + ":" + bill.VOYNO + ":::::" + GetDateStr(bill.ETD, "yyyyMMdd") + ":::::'");
r.WriteLine("11:" + bill.VESSELID + ":" + bill.VESSEL + ":" + bill.VOYNO + "::::::::::'");
icount++;
var DESTINATIONID = bill.DESTINATIONID;
var DESTINATION = bill.DESTINATION;
if (bill.CARRIEREDICODE == "ONEY" || bill.CARRIEREDICODE == "ZIM")
{
DESTINATIONID = "";
DESTINATION = "";
}
r.WriteLine("12"
+ ":" + bill.PLACERECEIPTID//2 PLACE CODE OF RECEIPT 收货地代码 X(5) OOCL、HLC的订舱要求必选 O
@ -811,8 +882,8 @@ namespace DS.WMS.Core.Op.EDI
+ ":" + bill.TRANSPORT//9 TRANSFER PORT 中转港 X(35)   C
+ ":" + bill.PLACEDELIVERYID//10 PLACE OF DELIVERY CODE 交货地代码 X(5) OOCL的订舱要求必选 O
+ ":" + bill.PLACEDELIVERY//11 PLACE OF DELIVERY 交货地 X(35)   C
+ ":" + bill.DESTINATIONID//12 FINAL DESTINATION CODE 目的地代码 X(5)   C
+ ":" + bill.DESTINATION//13 FINAL DESTINATION CODE 目的地 X(35)   C
+ ":" + DESTINATIONID//12 FINAL DESTINATION CODE 目的地代码 X(5)   C
+ ":" + DESTINATION//13 FINAL DESTINATION CODE 目的地 X(35)   C
+ "'");
icount = icount + 1;
@ -833,23 +904,26 @@ namespace DS.WMS.Core.Op.EDI
List<System.String> ShippingList = formatlengthStr(Shipping, 70);
if (Shipping != "")
if (!string.IsNullOrWhiteSpace(Shipping))
{
r.WriteLine("17:" + formatListStr(ShippingList, 5) + "'");
icount++;
}
if (InttrEdi.filetype != "E" && !string.IsNullOrEmpty(bill.NVONO))
{
r.WriteLine("18:NVO:" + bill.NVONO + "'");
}
Shipping = formatEdiStr("txt", bill.SHIPPER);
/*
2023-04-06 ESLEDI35
ShippingList = formatlengthStr(Shipping, 75);
*/
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0 && Shipping.Length > 0)
{
r.WriteLine("20::" + formatListStr(ShippingList, 6) + "'");
//2024-09-13 韩工确认最大行数6改为9
r.WriteLine("20::" + formatListStr(ShippingList, 9) + "'");
icount = icount + 1;
}
@ -857,67 +931,89 @@ namespace DS.WMS.Core.Op.EDI
Shipping = formatEdiStr("txt", bill.CONSIGNEE);
/*
2023-04-06 ESLEDI35
ShippingList = formatlengthStr(Shipping, 75);
*/
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0 && Shipping.Length > 0)
{
r.WriteLine("21::" + formatListStr(ShippingList, 6) + "'");
//2024-09-13 韩工确认最大行数6改为9
r.WriteLine("21::" + formatListStr(ShippingList, 9) + "'");
icount = icount + 1;
}
Shipping = formatEdiStr("txt", bill.NOTIFYPARTY);
/*
2023-04-06 ESLEDI35
ShippingList = formatlengthStr(Shipping, 75);
*/
ShippingList = formatlengthStr(Shipping, 35);
if (ShippingList.Count != 0 && Shipping.Length > 0)
{
r.WriteLine("22::" + formatListStr(ShippingList, 6) + "'");
//2024-09-13 韩工确认最大行数6改为9
r.WriteLine("22::" + formatListStr(ShippingList, 9) + "'");
icount = icount + 1;
}
if (InttrEdi.filetype == "E")
Shipping = formatEdiStr("txt", !string.IsNullOrWhiteSpace(bill.NOTIFYPARTY2) ? bill.NOTIFYPARTY2 : "");
ShippingList = formatlengthStr(Shipping, 35);
if (!string.IsNullOrWhiteSpace(Shipping))
{
Shipping = formatEdiStr("txt", bill.NOTIFYPARTY2);
ShippingList = formatlengthStr(Shipping, 75);
if (Shipping != "")
{
r.WriteLine("23::" + formatListStr(ShippingList, 6) + "'");
icount = icount + 1;
r.WriteLine("23::" + formatListStr(ShippingList, 6) + "'");
icount = icount + 1;
}
}
Shipping = bill.AMSCONSIGNEE;
ShippingList = formatlengthStr(Shipping, 35);
if (!string.IsNullOrWhiteSpace(Shipping))
{
r.WriteLine("24::" + formatListStr(ShippingList, 6, true) + "'");
icount = icount + 1;
}
Shipping = bill.AMSNOTIFYPARTY;
ShippingList = formatlengthStr(Shipping, 35);
if (!string.IsNullOrWhiteSpace(Shipping))
{
r.WriteLine("25::" + formatListStr(ShippingList, 6, true) + "'");
icount = icount + 1;
}
var cargoid = bill.CARGOID;
if (cargoid == "" || cargoid == " ") cargoid = "S";
r.WriteLine("41:1:" + bill.HSCODE + ":" + cargoid + ":" + bill.PKGS.ToString() + ":" + bill.KINDPKGS_EDI_CODE + ":" + bill.KINDPKGS + ":" + bill.KGS.ToString("0.###") + ":"
+ bill.CBM.ToString("0.###") + "::::::" + bill.KGS.ToString("0.###") + ":::'");
var kingweight = bill.KINGTAREWEIGHT;
if (kingweight == 0)
kingweight = 100;
r.WriteLine("41:1:" + bill.HSCODE + ":" + cargoid + ":" + bill.PKGS.ToString() + ":" + bill.KINDPKGS_EDI_CODE + ":" + bill.KINDPKGS + ":" + kingweight.ToString() + ":"
+ bill.CBM.ToString() + "::::::" + bill.KGS.ToString() + ":::'");
icount = icount + 1;
if (cargoid == "R")
{
r.WriteLine("43::::::::::" + bill.REEFERF + ":C:" + bill.TEMPSET + ":" + bill.TEMPMIN + ":" + bill.TEMPMAX + ":::::'");
icount = icount + 1;
}
else if (cargoid == "D")
{
r.WriteLine("43:" + bill.DCLASS + ":" + bill.DPAGE + ":" + bill.DUNNO + ":" + bill.DLABEL + "::::::::::::'");
icount = icount + 1;
icount = icount + 1;
}
Shipping = formatEdiStr("txt", bill.MARKS);
ShippingList = formatlengthStr(Shipping, 35);
@ -972,7 +1068,7 @@ namespace DS.WMS.Core.Op.EDI
}
}
}
if (strtemp != "")
if (!string.IsNullOrWhiteSpace(strtemp))
{
r.WriteLine(strtemp + "'");
icount = icount + 1;
@ -1049,7 +1145,7 @@ namespace DS.WMS.Core.Op.EDI
if (InttrEdi.filetype == "E")
{
r.WriteLine("51:" + ctn.CNTRNO + ":" + ctn.CTNALLCODE + ":"
+ ctn.SEALNO + ":" + ctn.PKGS.ToString() + ":" + ctn.KGS.ToString("0.###") + "::" + ctn.CBM.ToString("0.###") + ":" + bill.EDIATTNEMAIL + "'");
+ ctn.SEALNO + ":" + ctn.PKGS.ToString() + ":" + ctn.KGS.ToString() + "::" + ctn.CBM.ToString() + ":" + bill.EDIATTNEMAIL + "'");
icount = icount + 1;
if (bill.CTNGOODSLIST != null && bill.CTNGOODSLIST.Count != 0)
@ -1057,7 +1153,7 @@ namespace DS.WMS.Core.Op.EDI
foreach (var ctnhs in bill.CTNGOODSLIST)
{
r.WriteLine("53:" + ctnhs.HSCODE + ":" + ctnhs.PKGS.ToString() + ":"
+ ctnhs.KGS.ToString("0.###") + ":" + ctnhs.CBM.ToString("0.###") + ":" + ctnhs.KINDPKGS_EDI_CODE + ":" + ctnhs.KINDPKGS + "'");
+ ctnhs.KGS.ToString() + ":" + ctnhs.CBM.ToString() + ":" + ctnhs.KINDPKGS_EDI_CODE + ":" + ctnhs.KINDPKGS + "'");
icount = icount + 1;
Shipping = formatEdiStr("txt", ctnhs.DESCRIPTION);
ShippingList = formatlengthStr(Shipping, 70);
@ -1068,7 +1164,7 @@ namespace DS.WMS.Core.Op.EDI
for (var i = 0; i < ShippingList.Count; i++)
{
if (ShippingList[i] != "")
if (!string.IsNullOrWhiteSpace(ShippingList[i]))
{
if (m <= 5)
{
@ -1092,7 +1188,7 @@ namespace DS.WMS.Core.Op.EDI
}
}
}
if (strtemp != "")
if (!string.IsNullOrWhiteSpace(strtemp))
{
r.WriteLine(strtemp + "'");
icount = icount + 1;
@ -1101,13 +1197,20 @@ namespace DS.WMS.Core.Op.EDI
}
}
else
{
r.WriteLine("53:" + bill.HSCODE + ":" + ctn.PKGS.ToString() + ":"
+ ctn.KGS.ToString() + ":" + ctn.CBM.ToString() + ":" + ctn.KINDPKGS_EDI_CODE + ":" + ctn.KINDPKGS + "'");
icount = icount + 1;
}
}
else
{
if (!string.IsNullOrEmpty(ctn.CNTRNO))
{
r.WriteLine("51:" + ctn.CNTRNO + ":" + ctn.CTNALLCODE + ":"
+ ctn.SEALNO + ":" + ctn.PKGS.ToString() + ":" + ctn.KGS.ToString("0.###") + ":'");
+ ctn.SEALNO + ":" + ctn.PKGS.ToString() + ":" + ctn.KGS.ToString() + ":'");
icount = icount + 1;
}
}
@ -1116,7 +1219,7 @@ namespace DS.WMS.Core.Op.EDI
}
icount = icount + 1;
//icount = icount + 1;
r.WriteLine("99:" + icount.ToString() + "'");
r.Close();
f.Close();

@ -1448,7 +1448,7 @@ namespace DS.WMS.Core.Op.Method
}
else
{
if (ediRouteEnum == EDIRouteEnum.INTTRA)
if (ediRouteEnum == EDIRouteEnum.INTTRA || ediRouteEnum == EDIRouteEnum.VOLTA)
{
primaryModel.ORDERNO = order.CustomerNo;
}

@ -9,7 +9,7 @@
public QueryTaskManageDto OtherQueryCondition { get; set; }
public bool IsReCalc { get; set; }
///// <summary>
///// 业务编号(提单号或委托编号)
///// </summary>

@ -1845,6 +1845,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
Id = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -1954,6 +1959,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2029,6 +2039,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2072,6 +2087,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2155,6 +2175,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2193,6 +2218,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2236,6 +2266,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2276,6 +2311,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2313,6 +2353,10 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
@ -2363,6 +2407,11 @@ namespace DS.WMS.Core.TaskPlat.Method
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2410,9 +2459,15 @@ namespace DS.WMS.Core.TaskPlat.Method
await SetCondition(queryable, whereList, taskType, taskStatLevel, querySearch.OtherQueryCondition, userId);
var queryableTemp = queryable.Select<dynamic>((t, a, s) => new
ISugarQueryable<dynamic> queryableTemp = queryable.Select<dynamic>((t, a, s) => new
{
PK_ID = t.Id.SelectAll(),
orderMBLNO = s.MBLNO,
orderETD = s.ETD,
orderCarrier = s.Carrier,
orderCarrierId = s.CarrierId,
s.CustomerNo,
s.CustomerNum,
s.BookingNo,
@ -2429,10 +2484,6 @@ namespace DS.WMS.Core.TaskPlat.Method
s.DischargePort,
s.CntrTotal,
//TASK_USER_STATUS = a.Status,
//TASK_USER_STATUS_NAME = a.StatusName,
//TASK_USER_STATUS_TIME = a.StatusTime
}).Distinct();
var sql = queryableTemp.ToSqlString();
@ -2462,9 +2513,11 @@ namespace DS.WMS.Core.TaskPlat.Method
RecvUserStatusTime = x.StatusTime
}).ToListAsync();
if (allRecvUserList.Count > 0)
// 一些特殊处理
foreach (var item in result.Data)
{
foreach (var item in result.Data)
// 1.任务接收人赋值
if (allRecvUserList.Count > 0)
{
var recvUserList = allRecvUserList.Where(x => x.TaskId == item.Id).ToList();
@ -2485,6 +2538,22 @@ namespace DS.WMS.Core.TaskPlat.Method
item.RecvUserList = recvUserList;
}
// 2.部分字段值覆盖提单号、ETD、船公司如果订单的号码不为空则采用订单的号码
if (!string.IsNullOrEmpty(item.orderMBLNO))
{
item.MBL_NO = item.orderMBLNO;
}
if (item.orderETD != null)
{
item.ETD = item.orderETD;
}
if (!string.IsNullOrEmpty(item.orderCarrier))
{
item.CARRIER_CODE = item.orderCarrier;
item.CARRIER_ID = item.orderCarrierId;
item.CARRIER_NAME = null;
}
}
}
}
@ -2502,6 +2571,7 @@ namespace DS.WMS.Core.TaskPlat.Method
{
queryable.ClearFilter(typeof(IOrgId));
var taskTypeStr = taskType.ToString();
var taskStatusStr = TaskStatusEnum.Cancel.ToString();
long? parentId = null;
if (!string.IsNullOrEmpty(queryDto.BusinessNo))
@ -2511,10 +2581,9 @@ namespace DS.WMS.Core.TaskPlat.Method
}
queryable.Where(whereList)
.Where((t, a) => t.STATUS != TaskStatusEnum.Cancel.ToString() && t.Deleted == false)
.WhereIF(taskType != null, (t, a) => t.TASK_TYPE == taskType.ToString())
.WhereIF(!string.IsNullOrEmpty(queryDto.BusinessNo), (t, a, bc, s) => queryDto.BusinessNo == t.MBL_NO
|| queryDto.BusinessNo == s.MBLNO
.Where((t, a) => t.STATUS != taskStatusStr && t.Deleted == false)
.WhereIF(taskType != null, (t, a) => t.TASK_TYPE == taskTypeStr)
.WhereIF(!string.IsNullOrEmpty(queryDto.BusinessNo), (t, a, bc, s) => ((t.MBL_NO != null && queryDto.BusinessNo == t.MBL_NO) || (s.MBLNO != null && queryDto.BusinessNo == s.MBLNO))
|| queryDto.BusinessNo == s.CustomerNo
|| queryDto.BusinessNo == s.BookingNo
|| queryDto.BusinessNo == s.CustomerNum
@ -2540,6 +2609,10 @@ namespace DS.WMS.Core.TaskPlat.Method
{
queryable.ClearFilter(typeof(IOrgId));
long? parentId = null;
var taskTypeStr = taskType.ToString();
var taskStatusStr = TaskStatusEnum.Cancel.ToString();
if (!string.IsNullOrEmpty(queryDto.BusinessNo))
{
var parentIdTemp = await queryable.Context.Queryable<SeaExport>().ClearFilter(typeof(IOrgId)).Where(x => x.HBLNO == queryDto.BusinessNo).Select(x => x.ParentId).FirstAsync();
@ -2547,10 +2620,9 @@ namespace DS.WMS.Core.TaskPlat.Method
}
queryable.Where(whereList)
.Where((t, a) => t.STATUS != TaskStatusEnum.Cancel.ToString() && t.Deleted == false)
.WhereIF(taskType != null, (t, a) => t.TASK_TYPE == taskType.ToString())
.WhereIF(!string.IsNullOrEmpty(queryDto.BusinessNo), (t, a, s) => queryDto.BusinessNo == t.MBL_NO
|| queryDto.BusinessNo == s.MBLNO
.Where((t, a) => t.STATUS != taskStatusStr && t.Deleted == false)
.WhereIF(taskType != null, (t, a) => t.TASK_TYPE == taskTypeStr)
.WhereIF(!string.IsNullOrEmpty(queryDto.BusinessNo), (t, a, s) => ((!string.IsNullOrEmpty(s.MBLNO) && queryDto.BusinessNo == s.MBLNO) || (string.IsNullOrEmpty(s.MBLNO) && queryDto.BusinessNo == t.MBL_NO))
|| queryDto.BusinessNo == s.CustomerNo
|| queryDto.BusinessNo == s.CustomerNum
|| queryDto.BusinessNo == s.BookingNo
@ -2596,7 +2668,10 @@ namespace DS.WMS.Core.TaskPlat.Method
//LastMatchTaskTime = DateTime.Now;
//}
await MatchTask();
if (queryDto.IsReCalc)
{
await MatchTask();
}
//序列化查询条件
List<IConditionalModel>? whereList = null;
@ -2668,12 +2743,12 @@ namespace DS.WMS.Core.TaskPlat.Method
.Where(whereList)
.Where((t, a) => t.STATUS != cancelStr && t.Deleted == false)
.Where((t, a) => t.IS_PUBLIC == 1 || (t.IS_PUBLIC == 0 && a.Status != null && (a.UserId == userId))) // 2024-8-14 只显示自己需要审批的任务自己创建的任务不显示所以去掉t.CreateBy == userId ||
.WhereIF(!string.IsNullOrEmpty(queryDto.OtherQueryCondition.BusinessNo), (t, a, s) => queryDto.OtherQueryCondition.BusinessNo == t.MBL_NO
|| queryDto.OtherQueryCondition.BusinessNo == s.MBLNO
|| queryDto.OtherQueryCondition.BusinessNo == s.CustomerNo
|| queryDto.OtherQueryCondition.BusinessNo == s.BookingNo
|| queryDto.OtherQueryCondition.BusinessNo == s.CustomerNum
|| (parentId != null && s.Id == parentId))
.WhereIF(!string.IsNullOrEmpty(queryDto.OtherQueryCondition.BusinessNo),
(t, a, s) => ((!string.IsNullOrEmpty(s.MBLNO) && queryDto.OtherQueryCondition.BusinessNo == s.MBLNO) || (string.IsNullOrEmpty(s.MBLNO) && queryDto.OtherQueryCondition.BusinessNo == t.MBL_NO))
|| queryDto.OtherQueryCondition.BusinessNo == s.CustomerNo
|| queryDto.OtherQueryCondition.BusinessNo == s.BookingNo
|| queryDto.OtherQueryCondition.BusinessNo == s.CustomerNum
|| (parentId != null && s.Id == parentId))
.WhereIF(!string.IsNullOrEmpty(queryDto.OtherQueryCondition.PortLoadCode), (t, a, s) => queryDto.OtherQueryCondition.PortLoadCode == s.LoadPortCode || portLoadTaskIdList.Contains(t.Id))
.WhereIF(!string.IsNullOrEmpty(queryDto.OtherQueryCondition.PortDischargeCode), (t, a, s) => queryDto.OtherQueryCondition.PortDischargeCode == s.DischargePortCode || portDischargeTaskIdList.Contains(t.Id))

@ -97,6 +97,7 @@ namespace DS.WMS.OpApi.Controllers
{
var allotDataList = await tenantDb.Queryable<TaskBaseAllocation>()
.Where(x => x.BusinessId == businessId && skuCodeList.Contains(x.GoodStatusCode))
.OrderBy(x => x.Id)
.Select(x => new { x.GoodStatusCode, x.UserName, x.StatusName, x.StatusTime })
.ToListAsync();

Loading…
Cancel
Save