diff --git a/ds-wms-service/DS.Module.Core/Enums/InfoClientEnums.cs b/ds-wms-service/DS.Module.Core/Enums/InfoClientEnums.cs index 253b4d99..5747a344 100644 --- a/ds-wms-service/DS.Module.Core/Enums/InfoClientEnums.cs +++ b/ds-wms-service/DS.Module.Core/Enums/InfoClientEnums.cs @@ -115,4 +115,28 @@ namespace DS.Module.Core.Enums [Description("未提货提醒")] UndeliveredGoodsReminder = 1 << 12 } + + /// + /// 往来单位特性 + /// + [Flags] + public enum ClientAttribute + { + /// + /// 未设置 + /// + None = 0, + + /// + /// 客户 + /// + [Description("客户")] + Customer = 1 << 0, + + /// + /// 供应商 + /// + [Description("供应商")] + Supplier = 1 << 1 + } } diff --git a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj index 74af21a1..f8d32785 100644 --- a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj +++ b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj @@ -51,7 +51,7 @@ - + diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs index 0c5d1990..da6f9744 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/ApplicationService`1.cs @@ -11,6 +11,7 @@ using DS.WMS.Core.Flow.Interface; using DS.WMS.Core.Op.Dtos.TaskInteraction; using DS.WMS.Core.Op.Interface.TaskInteraction; using DS.WMS.Core.Sys.Interface; +using Masuit.Tools.Systems; using Microsoft.Extensions.DependencyInjection; using SqlSugar; @@ -406,6 +407,7 @@ namespace DS.WMS.Core.Application.Method .Select((x, y) => new TEntity { Id = x.Id, + ApplicationNO = x.ApplicationNO, Status = x.Status, DetailCount = SqlFunc.AggregateCount(y.Id) }).ToListAsync(); @@ -427,12 +429,14 @@ namespace DS.WMS.Core.Application.Method { if (hasAuthorized) { - for (int i = 0; i < idArray.Length; i++) + for (int i = 0; i < list.Count; i++) { + var item = list[i]; var req = new TaskCreationRequest { - BusinessId = idArray[i], - TaskTypeName = auditType.ToString() + BusinessId = item.Id, + TaskTypeName = auditType.ToString(), + TaskTitle = $"【{auditType.GetDescription()}】{item.ApplicationNO}" }; result = await taskService.CreateTaskAsync(req); diff --git a/ds-wms-service/DS.WMS.Core/DS.WMS.Core.csproj b/ds-wms-service/DS.WMS.Core/DS.WMS.Core.csproj index 4c4c4b73..aa9da9ac 100644 --- a/ds-wms-service/DS.WMS.Core/DS.WMS.Core.csproj +++ b/ds-wms-service/DS.WMS.Core/DS.WMS.Core.csproj @@ -33,10 +33,6 @@ true PreserveNewest - - true - PreserveNewest - diff --git a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoReq.cs b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoReq.cs index 6337e2a6..558edede 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoReq.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoReq.cs @@ -1,9 +1,6 @@ using System.Runtime.Serialization; -using DS.Module.Core; using DS.Module.Core.Enums; -using DS.WMS.Core.Info.Entity; using FluentValidation; -using SqlSugar; namespace DS.WMS.Core.Info.Dtos; @@ -482,6 +479,42 @@ public class ClientInfoReq /// 服务项目代码 /// public string[]? ServiceItemCodes { get; set; } + + /// + /// 推送设置 + /// + public ClientAttribute[]? ClientAttributes { get; set; } + + [IgnoreDataMember] + public ClientAttribute Attribute + { + get + { + if (ClientAttributes == null || ClientAttributes.Length == 0) + return ClientAttribute.None; + + ClientAttribute flags = ClientAttribute.None; + for (int i = 0; i < ClientAttributes.Length; i++) + flags |= ClientAttributes[i]; + + return flags; + } + } + + /// + /// 客户等级:A/B/C/D + /// + public string? Grade { get; set; } + + /// + /// 注册资金 + /// + public decimal? RegisteredCapital { get; set; } + + /// + /// 注册时间 + /// + public DateTime? RegistrationTime { get; set; } } /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoRes.cs b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoRes.cs index ae8dc609..db41db39 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoRes.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientInfoRes.cs @@ -98,112 +98,6 @@ public class ClientInfoRes /// public bool IsStop { get; set; } - ///// - ///// Desc:发票抬头1 - ///// - //public string BillRises1 { get; set; } - - ///// - ///// Desc:发票抬头2 - ///// - //public string BillRises2 { get; set; } - - ///// - ///// Desc:美元支票抬头 - ///// - //public string USDBillRises { get; set; } - - ///// - ///// Desc:人民币支票抬头 - ///// - //public string RMBBillRises { get; set; } - - ///// - ///// Desc:人民币开户银行 - ///// - //public string RMBBank { get; set; } - - ///// - ///// Desc:人民币账号 - ///// - //public string RMBAccount { get; set; } - - ///// - ///// Desc:人民币联机行号 - ///// - //public string RMBOnlineNO { get; set; } - - ///// - ///// Desc:美元开户银行 - ///// - //public string USDBank { get; set; } - - ///// - ///// Desc:美元账号 - ///// - //public string USDAccount { get; set; } - - ///// - ///// Desc:美元联机行号 - ///// - //public string USDOnlineNO { get; set; } - - ///// - ///// Desc:自定义属性1 - ///// - //public string CustomAttributes1 { get; set; } - - ///// - ///// Desc:自定义属性2 - ///// - //public string CustomAttributes2 { get; set; } - - ///// - ///// Desc:美元信用最大金额 - ///// - //public decimal? USDMaxAmountCredit { get; set; } = 0; - - ///// - ///// Desc:人民币信用最大金额 - ///// - //public decimal? RMBMaxAmountCredit { get; set; } = 0; - - ///// - ///// Desc:信用最大金额(RMB+USD) - ///// - //public decimal? MaxAmountCredit { get; set; } = 0; - - ///// - ///// Desc:结算方式编码 - ///// - //public string StlName { get; set; } - - - ///// - ///// Desc:美金汇率 - ///// - //public decimal? USDExchangeRate { get; set; } - - ///// - ///// Desc:月结算时间 - ///// - //public string StlDate { get; set; } - - ///// - ///// Desc:上半月结算时间 - ///// - //public string StlFirstHalfDate { get; set; } - - ///// - ///// Desc:下半月结算时间 - ///// - //public string StlMiddleDate { get; set; } - - ///// - ///// Desc:票结结算时间 - ///// - //public string InvoiceStlDate { get; set; } - /// /// Desc:等级 /// @@ -513,4 +407,47 @@ public class ClientInfoRes /// 服务项目代码 /// public string[]? ServiceItemCodes { get; set; } + + [IgnoreDataMember] + public ClientAttribute Attribute { get; set; } + + /// + /// 推送设置 + /// + public ClientAttribute[]? Attributes + { + get + { + if (Attribute == ClientAttribute.None) + return []; + + return Attribute.Split().Where(x => x != ClientAttribute.None).ToArray(); + } + } + + /// + /// 客户等级:A/B/C/D + /// + public string? Grade { get; set; } + + /// + /// 注册资金 + /// + public decimal? RegisteredCapital { get; set; } + + /// + /// 注册时间 + /// + public DateTime? RegistrationTime { get; set; } + + /// + /// 默认联系人 + /// + public ClientContactRes? DefaultContact { get; set; } + + /// + /// 最新账期 + /// + public ClientAccountDateRes? LastAccountDate { get; set; } + } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientQuery.cs b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientQuery.cs new file mode 100644 index 00000000..697ec3ce --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientQuery.cs @@ -0,0 +1,23 @@ +namespace DS.WMS.Core.Info.Dtos +{ + /// + /// 往来单位附加查询条件 + /// + public class ClientQuery + { + /// + /// 联系方式:电话/手机/邮箱 + /// + public string? ContactInfo { get; set; } + + /// + /// 是否合同到期 + /// + public bool? IsContractExpired { get; set; } + + /// + /// 客户标记 + /// + public QueryClientInfo? ClientTag { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientUsage.cs b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientUsage.cs new file mode 100644 index 00000000..c27e5f3b --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Info/Dtos/ClientUsage.cs @@ -0,0 +1,23 @@ +namespace DS.WMS.Core.Info.Dtos +{ + /// + /// 往来单位使用情况 + /// + public class ClientUsage + { + /// + /// ID + /// + public long Id { get; set; } + + /// + /// 往来单位简称 + /// + public string? Name { get; set; } + + /// + /// 是否已使用 + /// + public bool IsUsed { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/Info/Dtos/QueryClientInfo.cs b/ds-wms-service/DS.WMS.Core/Info/Dtos/QueryClientInfo.cs index 6e4488d2..f9535e50 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Dtos/QueryClientInfo.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Dtos/QueryClientInfo.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DS.WMS.Core.Info.Dtos +namespace DS.WMS.Core.Info.Dtos { /// /// 检索往来单位 diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs index fc1778c0..f2360eb4 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs @@ -406,4 +406,53 @@ public class InfoClient : SharedOrgModel [SugarColumn(ColumnDescription = "服务项目", ColumnDataType = "text", IsNullable = true)] public string? ServiceItem { get; set; } + /// + /// 往来单位属性 + /// + [SugarColumn(ColumnDescription = "往来单位属性")] + public ClientAttribute Attribute { get; set; } + + /// + /// 客户等级:A/B/C/D + /// + [SugarColumn(ColumnDescription = "客户等级", Length = 1, IsNullable = true)] + public string? Grade { get; set; } + + /// + /// 注册资金 + /// + [SugarColumn(ColumnDescription = "注册资金", IsNullable = true)] + public decimal? RegisteredCapital { get; set; } + + /// + /// 注册时间 + /// + [SugarColumn(ColumnDescription = "注册时间", IsNullable = true)] + public DateTime? RegistrationTime { get; set; } + + ///// + ///// 往来单位标记 + ///// + //[Navigate(NavigateType.OneToOne, nameof(InfoClientTag.ClientId))] + //public InfoClientTag? Tag { get; set; } + + ///// + ///// 账期 + ///// + //[Navigate(NavigateType.OneToMany, nameof(InfoClientAccountDate.ClientId))] + //public List? Accounts { get; set; } + + ///// + ///// 联系人 + ///// + //[Navigate(NavigateType.OneToMany, nameof(InfoClientContact.ClientId))] + //public List? Contacts { get; set; } + + ///// + ///// 合同 + ///// + //[Navigate(NavigateType.OneToMany, nameof(InfoClientContract.ClientId))] + //public List? Contracts { get; set; } + + } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/Info/Interface/IClientInfoService.cs b/ds-wms-service/DS.WMS.Core/Info/Interface/IClientInfoService.cs index 0bd15040..478c7b2e 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Interface/IClientInfoService.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Interface/IClientInfoService.cs @@ -44,7 +44,7 @@ public interface IClientInfoService /// /// /// - DataResult> GetListByPage(PageRequest request); + Task>> GetListAsync(PageRequest request); /// /// 编辑 diff --git a/ds-wms-service/DS.WMS.Core/Info/Method/ClientInfoService.cs b/ds-wms-service/DS.WMS.Core/Info/Method/ClientInfoService.cs index 6d00b9cc..47f500c2 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Method/ClientInfoService.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Method/ClientInfoService.cs @@ -15,6 +15,7 @@ using DS.WMS.Core.Op.Dtos.TaskInteraction; using DS.WMS.Core.Op.Entity; using DS.WMS.Core.Op.Interface.TaskInteraction; using DS.WMS.Core.Sys.Entity; +using Fasterflect; using Mapster; using Masuit.Tools.Systems; using Microsoft.Extensions.DependencyInjection; @@ -42,6 +43,8 @@ public class ClientInfoService : ServiceBase, IClientInfoService taskService = new Lazy(serviceProvider.GetRequiredService()); } + #region 审核 + /// /// 提交审核 /// @@ -246,26 +249,73 @@ public class ClientInfoService : ServiceBase, IClientInfoService return rows > 0 ? DataResult.Success : DataResult.FailedWithDesc(nameof(MultiLanguageConst.Operation_Failed)); } + #endregion + /// /// 列表 /// /// /// - public DataResult> GetListByPage(PageRequest request) + public async Task>> GetListAsync(PageRequest request) { //序列化查询条件 var whereList = request.GetConditionalModels(Db); - var result = TenantDb.Queryable() - .Where(whereList) - .Select().ToQueryPage(request.PageCondition); + foreach (var item in whereList) + { + var condition = (ConditionalModel)item; + condition.FieldName = "c." + condition.FieldName.ToUpperCamelCase(); + } + + var query = TenantDb.Queryable() + .LeftJoin((c, c1) => c.Id == c1.ClientId) + .LeftJoin((c, c1, c2) => c.Id == c2.ClientId) + .InnerJoinIF(request.OtherQueryCondition?.ClientTag != null, (c, c1, c2, ct) => c.Id == ct.ClientId); + + if (!string.IsNullOrEmpty(request.OtherQueryCondition?.ContactInfo)) + query = query.Where((c, c1, c2) => c1.Tel.Contains(request.OtherQueryCondition.ContactInfo) || + c1.Mobile.Contains(request.OtherQueryCondition.ContactInfo) || c1.Email.Contains(request.OtherQueryCondition.ContactInfo)); + + if (request.OtherQueryCondition != null && request.OtherQueryCondition.IsContractExpired.GetValueOrDefault()) + query = query.Where((c, c1, c2) => SqlFunc.GetDate() > c2.EndDate); + + if (request.OtherQueryCondition?.ClientTag != null) + { + var props = Array.FindAll(request.OtherQueryCondition.ClientTag.GetType().GetProperties(), x => x.Name.StartsWith("Is") && x.PropertyType == typeof(bool)); + foreach (var prop in props) + { + object val = PropertyInfoExtensions.Get(prop, request.OtherQueryCondition.ClientTag); + if (val != null && val is bool value && value) + { + whereList.Add(new ConditionalModel + { + ConditionalType = ConditionalType.Equal, + FieldName = "ct." + prop.Name, + FieldValue = "1" + }); + } + } + } + + var result = await query.Where(whereList).Select().ToQueryPageAsync(request.PageCondition); if (result.Data?.Count > 0) { - var ids = result.Data.SelectMany(x => x.SaleOrgIdList).Distinct(); - var orgs = Db.Queryable().Where(x => ids.Contains(x.Id)).Select(x => new { x.Id, x.OrgName }).ToList(); + var ids = result.Data.Select(x => x.Id); + var contacts = TenantDb.Queryable().Where(x => ids.Contains(x.ClientId) && x.IsDefault) + .Select().ToList(); + + var accountDates = TenantDb.Queryable().Where(x => ids.Contains(x.ClientId) && x.Id == + SqlFunc.Subqueryable().Where(y => y.Id == x.Id).Select(y => SqlFunc.AggregateMax(y.Id)) + ).Select().ToList(); + + var ids2 = result.Data.SelectMany(x => x.SaleOrgIdList).Distinct(); + var orgs = Db.Queryable().Where(x => ids2.Contains(x.Id)).Select(x => new { x.Id, x.OrgName }).ToList(); foreach (var item in result.Data) { + item.DefaultContact = contacts.Find(x => x.ClientId == item.Id); + item.LastAccountDate = accountDates.Find(x => x.ClientId == item.Id); + var list = orgs.FindAll(x => item.SaleOrgIdList.Contains(x.Id)); item.SaleOrgNames = string.Join(",", list.Select(x => x.OrgName)); } @@ -274,6 +324,26 @@ public class ClientInfoService : ServiceBase, IClientInfoService return result; } + /// + /// 确定往来单位是否已使用 + /// + /// 往来单位ID + /// + public async Task>> GetUsageAsync(params long[] ids) + { + var list = await TenantDb.Queryable() + .Select(c => new ClientUsage + { + Id = c.Id, + Name = c.ShortName, + IsUsed = SqlFunc.Subqueryable().Where(s => c.Id == s.CustomerId || c.Id == s.ForwarderId || c.Id == s.YardId).Any() + }).ToListAsync(); + + var result = DataResult>.Success(list); + result.Count = list.Count; + return result; + } + /// /// 编辑 /// @@ -292,9 +362,7 @@ public class ClientInfoService : ServiceBase, IClientInfoService if (req.Id == 0) { if (TenantDb.Queryable().Where(x => (x.ShortName == req.ShortName.Trim() || x.Description == req.Description.Trim() || x.TaxNo == req.TaxNo.Trim())).Any()) - { return DataResult.Failed("客户信息已存在,请检查客户全称、简称或社会信用代码是否重复!", MultiLanguageConst.ClientInfoExist); - } var tag = req.ClientTag.Adapt(); //助记码 diff --git a/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/ActionExecutor/Booking/EDIActionExecutor.cs b/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/ActionExecutor/Booking/EDIActionExecutor.cs index a1983c0d..203adf74 100644 --- a/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/ActionExecutor/Booking/EDIActionExecutor.cs +++ b/ds-wms-service/DS.WMS.Core/Op/Method/TaskInteraction/ActionExecutor/Booking/EDIActionExecutor.cs @@ -42,7 +42,7 @@ namespace DS.WMS.Core.Op.Method.TaskInteraction.ActionExecutor.Booking { await TaskService.SetTaskBaseDescription(context.TaskInfo.BusinessId, TaskBaseTypeEnum.WAIT_BOOKING, MESSAGE); await LogService.WriteLogAsync(context.TaskInfo, MESSAGE + Environment.NewLine + "请求参数:" - + JsonConvert.SerializeObject(req) + Environment.NewLine + "响应参数:" + result.Data); + + JsonConvert.SerializeObject(req) + Environment.NewLine + "响应参数:" + result.Message); return; } diff --git a/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托.cshtml b/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托.cshtml deleted file mode 100644 index 5e812f43..00000000 --- a/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托.cshtml +++ /dev/null @@ -1,107 +0,0 @@ -@* @model DS.WMS.Core.Op.Entity.MailTemplateModel *@ -@{ - var item = Model.Primary; -} - - - -*** Auto Email, please reply to all (delete sender Admin)!If only reply to sender, we will not be able to find and deal with it! *** -
-Dear @Model.Contacts - -
- RE: BOOKING - JOB NO. -
- -请查看附件中的订舱委托,请2小时内先行回复订舱号给我们,并帮忙催促船东尽快放舱,如下信息同订舱委托一致,便于您查阅! - -CARRIER:@item.Carrier -S/Q:XX -ETD : @item.ETD - -POL: @item.LoadPort -POD: @item.DischargePort -FPOD: @item.DeliveryPlace -VOL: XX -Commdity: XX(取中文品名) -HS CODE: @item.HSCode -POD FREE TIME: -REMARK: -(取供应商备注) - - -此票订舱我司对接同事的联系方式如下,任何问题请及时跟我们沟通,谢谢! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CN NameNameTel No.Mobile/Wechat/QQEmailPosition
邵 芳Candy0532-8068838713375570007 2853083550candy@sunniness.netCooperation
魏涛Wilson0532-8068835313969858993 2853083555ope@sunniness.netOP manager
徐平平Cathy0532-8068835013969662965 2853083551opg@sunniness.netDocument
- -
-
- @* Tks + B’rgds - Candy SHAO 邵芳 (此处用当票操作的信息) - General Manager | SUNNINESS LOGISTICS CO.,LTD. - TEL: +86-0532-80688387 |MB./We chat: +86-18866622731|QQ:2853083553 | Email:candy@sunniness.net *@ -
-
- -@* 此邮件模板是订舱委托推送的邮件模板,在商务订单审核通过后,自动生成,并推送: -1)蓝色是调取系统数据、红色是醒目提醒; -2)订舱委托PDF格式作为附件一起发出 -3)邮件发给订舱代理联系人,抄送我司销售/客服和操作/单证;未勾选推送的订舱代理,仅推送我司干系人! *@ - diff --git a/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0906新.cshtml b/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0906新.cshtml deleted file mode 100644 index 163604ad..00000000 --- a/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0906新.cshtml +++ /dev/null @@ -1,122 +0,0 @@ -@* @model DS.WMS.Core.Op.Entity.MailTemplateModel -@{ - var item = Model.Primary; -} *@ - - - -TO: - -*** Auto Email, please reply to all (delete sender Admin)!If only reply to sender, we will not be able to find and deal with it! *** -
-Dear @Model.Contacts - -
- RE: BOOKING - @Model.Primary.CustomerNo -
-
-请查看附件中的订舱委托,请2小时内先行回复订舱号给我们,并帮忙催促船东尽快放舱,如下信息同订舱委托一致,便于您查阅! -
-CARRIER:@Model.Primary.Carrier -
-S/Q:XX
-ETD : @Model.Primary.ETD -
-
- -POL: @Model.Primary.LoadPort -
-POD: @Model.Primary.DischargePort -
-FPOD: @Model.Primary.DeliveryPlace -
-VOL: @Model.Primary.CntrTotal -
-Commdity: @Model.Primary.GoodsName -
-HS CODE: @Model.Primary.HSCode -
-POD FREE TIME:
-REMARK:@Model.Primary.BookingRemark -
- - - -此票订舱我司对接同事的联系方式如下,任何问题请及时跟我们沟通,谢谢!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CN NameNameTel No.Mobile/Wechat/QQEmailPosition
@Model.Sales.Name@Model.Sales.EnName@Model.Sales.Tel@Model.Sales.Mobile@Model.Sales.EmailCooperation
@Model.Operator.Name@Model.Operator.EnName@Model.Operator.Tel@Model.Operator.Mobile@Model.Operator.EmailOP manager
@Model.Document.Name@Model.Document.EnName@Model.Document.Tel@Model.Document.Mobile@Model.Document.EmailDocument
- -
-
- -
-
- Tks + B’rgds
- @Model.Document.EnName @Model.Document.Name (此处用当票操作的信息) - General Manager | SUNNINESS LOGISTICS CO.,LTD. - TEL: +86-@Model.Document.Tel |MB./We chat: @Model.Document.Mobile|QQ:2853083553 | Email:@Model.Document.Email -
-
- -@* 此邮件模板是订舱委托推送的邮件模板,在商务订单审核通过后,自动生成,并推送: -1)蓝色是调取系统数据、红色是醒目提醒; -2)订舱委托PDF格式作为附件一起发出 -3)邮件发给订舱代理联系人,抄送我司销售/客服和操作/单证;未勾选推送的订舱代理,仅推送我司干系人! *@ - diff --git a/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0909.cshtml b/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0909.cshtml new file mode 100644 index 00000000..ea84611d --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Op/Templates/订舱委托0909.cshtml @@ -0,0 +1,71 @@ +@* @model DS.WMS.Core.Op.Entity.MailTemplateModel *@ +

TO:

+

*** Auto Email, please reply to all (delete sender Admin)!If only reply to sender, we will not be able to find and deal with it! ***

+


Dear @Model.Contacts

+
RE: BOOKING - @Model.Primary.CustomerNo
+


请查看附件中的订舱委托,请2小时内先行回复订舱号给我们,并帮忙催促船东尽快放舱,如下信息同订舱委托一致,便于您查阅!
CARRIER:@Model.Primary.Carrier
S/Q:@Model.Primary.ContractNo
ETD : @Model.Primary.ETD

POL: @Model.Primary.LoadPort
POD: @Model.Primary.DischargePort
FPOD: @Model.Primary.DeliveryPlace
VOL: @Model.Primary.CntrTotal
Commdity: @Model.Primary.GoodsName
HS CODE: @Model.Primary.HSCode
POD FREE TIME:
REMARK:@Model.Primary.BookingRemark

+


此票订舱我司对接同事的联系方式如下,任何问题请及时跟我们沟通,谢谢!

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CN NameNameTel No.Mobile/Wechat/QQEmailPosition
@Model.Sales.Name@Model.Sales.EnName@Model.Sales.Tel@Model.Sales.Mobile@Model.Sales.EmailCooperation
@Model.Operator.Name@Model.Operator.EnName@Model.Operator.Tel@Model.Operator.Mobile@Model.Operator.EmailOPmanager
@Model.Document.Name@Model.Document.EnName@Model.Document.Tel@Model.Document.Mobile@Model.Document.EmailDocument
+



+
+@* 注意!!id=sign的元素,在发送邮件时,程序会自动插入当前发件人的用户签名 *@ +
+Tks + B’rgds  
+@Model.Document.EnName @Model.Document.Name  +
+ +
+ @if(Model.Primary.SourceName == "WSL") + { + @Model.Operator.Name + @Model.Operator.EnName + } + else if(Model.Primary.SourceName == "WSL") + { + @Model.Sales.Name + @Model.Sales.EnName + } +
General Manager | SUNNINESS LOGISTICS CO.,LTD.    +
+ +
TEL: @Model.Document.Tel   |MB./We chat: @Model.Document.Mobile|QQ:2853083553 | Email:@Model.Document.Email
+ \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/ClientInfoController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/ClientInfoController.cs index 5904d2e9..32511f0a 100644 --- a/ds-wms-service/DS.WMS.MainApi/Controllers/ClientInfoController.cs +++ b/ds-wms-service/DS.WMS.MainApi/Controllers/ClientInfoController.cs @@ -86,10 +86,9 @@ public class ClientInfoController : ApiController /// [HttpPost] [Route("GetClientInfoList")] - public DataResult> GetClientInfoList([FromBody] PageRequest request) + public async Task>> GetListAsync([FromBody] PageRequest request) { - var res = _invokeService.GetListByPage(request); - return res; + return await _invokeService.GetListAsync(request); } ///