自动订舱模板

master
wanghaomei 8 months ago
parent e96ecc7871
commit 241a55f6e6

@ -0,0 +1,470 @@
using System;
using System.Collections.Generic;
using SqlSugar;
using System.ComponentModel;
using Myshipping.Core.Entity;
/*
* @author : whm
* @date : 2024-4-1
* @desc :
*/
namespace Myshipping.Application.Entity
{
/// <summary>
/// 订舱模板
/// </summary>
[SugarTable("booking_so_template", TableDescription = "订舱模板")]
public class BookingSoTemplate : DBEntityTenant
{
/// <summary>
/// 客户代码
/// </summary>
[SugarColumn(ColumnName = "CustCode")]
[Description("客户代码")]
public string CustCode{ get; set; }
/// <summary>
/// 客户名称
/// </summary>
[SugarColumn(ColumnName = "CustName")]
[Description("客户名称")]
public string CustName{ get; set; }
/// <summary>
/// 用户ID
/// </summary>
[SugarColumn(ColumnName = "UserId")]
[Description("用户ID")]
public long UserId{ get; set; }
/// <summary>
/// 用户代码
/// </summary>
[SugarColumn(ColumnName = "UserCode")]
[Description("用户代码")]
public string UserCode{ get; set; }
/// <summary>
/// 用户名称
/// </summary>
[SugarColumn(ColumnName = "UserName")]
[Description("用户名称")]
public string UserName{ get; set; }
/// <summary>
/// 模板名称
/// </summary>
[SugarColumn(ColumnName = "TemplateName")]
[Description("模板名称")]
public string TemplateName{ get; set; }
/// <summary>
/// 船司ID
/// </summary>
[SugarColumn(ColumnName = "CarrierId")]
[Description("船司ID")]
public string CarrierId{ get; set; }
/// <summary>
/// 船司名称
/// </summary>
[SugarColumn(ColumnName = "Carrier")]
[Description("船司名称")]
public string Carrier{ get; set; }
/// <summary>
/// 启用标志
/// </summary>
[SugarColumn(ColumnName = "IsEnable")]
[Description("启用标志")]
public bool IsEnable { get; set; }
/// <summary>
/// 优先级
/// </summary>
[SugarColumn(ColumnName = "Priority")]
[Description("优先级")]
public string Priority{ get; set; }
/// <summary>
/// 发货人名称
/// </summary>
[SugarColumn(ColumnName = "ShipperName")]
[Description("发货人名称")]
public string ShipperName{ get; set; }
/// <summary>
/// 发货人地址
/// </summary>
[SugarColumn(ColumnName = "ShipperAddress")]
[Description("发货人地址")]
public string ShipperAddress{ get; set; }
/// <summary>
/// 发货人国家
/// </summary>
[SugarColumn(ColumnName = "ShipperCountry")]
[Description("发货人国家")]
public string ShipperCountry{ get; set; }
/// <summary>
/// 发货人省份
/// </summary>
[SugarColumn(ColumnName = "ShipperProvince")]
[Description("发货人省份")]
public string ShipperProvince{ get; set; }
/// <summary>
/// 发货人城市
/// </summary>
[SugarColumn(ColumnName = "ShipperCity")]
[Description("发货人城市")]
public string ShipperCity{ get; set; }
/// <summary>
/// 发货人区县
/// </summary>
[SugarColumn(ColumnName = "ShipperCounty")]
[Description("发货人区县")]
public string ShipperCounty{ get; set; }
/// <summary>
/// 发货人邮政编码
/// </summary>
[SugarColumn(ColumnName = "ShipperPostCode")]
[Description("发货人邮政编码")]
public string ShipperPostCode{ get; set; }
/// <summary>
/// 发货人联系人名
/// </summary>
[SugarColumn(ColumnName = "ShipperFirstName")]
[Description("发货人联系人名")]
public string ShipperFirstName{ get; set; }
/// <summary>
/// 发货人联系人姓
/// </summary>
[SugarColumn(ColumnName = "ShipperLastName")]
[Description("发货人联系人姓")]
public string ShipperLastName{ get; set; }
/// <summary>
/// 发货人电话区号
/// </summary>
[SugarColumn(ColumnName = "ShipperPhoneCode")]
[Description("发货人电话区号")]
public string ShipperPhoneCode{ get; set; }
/// <summary>
/// 发货人电话
/// </summary>
[SugarColumn(ColumnName = "ShipperPhone")]
[Description("发货人电话")]
public string ShipperPhone{ get; set; }
/// <summary>
/// 发货人分机号
/// </summary>
[SugarColumn(ColumnName = "ShipperPhoneExtension")]
[Description("发货人分机号")]
public string ShipperPhoneExtension{ get; set; }
/// <summary>
/// 收货人名称
/// </summary>
[SugarColumn(ColumnName = "ConsigneeName")]
[Description("收货人名称")]
public string ConsigneeName{ get; set; }
/// <summary>
/// 收货人地址
/// </summary>
[SugarColumn(ColumnName = "ConsigneeAddress")]
[Description("收货人地址")]
public string ConsigneeAddress{ get; set; }
/// <summary>
/// 收货人国家
/// </summary>
[SugarColumn(ColumnName = "ConsigneeCountry")]
[Description("收货人国家")]
public string ConsigneeCountry{ get; set; }
/// <summary>
/// 收货人省份
/// </summary>
[SugarColumn(ColumnName = "ConsigneeProvince")]
[Description("收货人省份")]
public string ConsigneeProvince{ get; set; }
/// <summary>
/// 收货人城市
/// </summary>
[SugarColumn(ColumnName = "ConsigneeCity")]
[Description("收货人城市")]
public string ConsigneeCity{ get; set; }
/// <summary>
/// 收货人区县
/// </summary>
[SugarColumn(ColumnName = "ConsigneeCounty")]
[Description("收货人区县")]
public string ConsigneeCounty{ get; set; }
/// <summary>
/// 收货人邮政编码
/// </summary>
[SugarColumn(ColumnName = "ConsigneePostCode")]
[Description("收货人邮政编码")]
public string ConsigneePostCode{ get; set; }
/// <summary>
/// 收货人联系人名
/// </summary>
[SugarColumn(ColumnName = "ConsigneeFirstName")]
[Description("收货人联系人名")]
public string ConsigneeFirstName{ get; set; }
/// <summary>
/// 收货人联系人姓
/// </summary>
[SugarColumn(ColumnName = "ConsigneeLastName")]
[Description("收货人联系人姓")]
public string ConsigneeLastName{ get; set; }
/// <summary>
/// 收货人电话区号
/// </summary>
[SugarColumn(ColumnName = "ConsigneePhoneCode")]
[Description("收货人电话区号")]
public string ConsigneePhoneCode{ get; set; }
/// <summary>
/// 收货人电话
/// </summary>
[SugarColumn(ColumnName = "ConsigneePhone")]
[Description("收货人电话")]
public string ConsigneePhone{ get; set; }
/// <summary>
/// 收货人分机号
/// </summary>
[SugarColumn(ColumnName = "ConsigneePhoneExtension")]
[Description("收货人分机号")]
public string ConsigneePhoneExtension{ get; set; }
/// <summary>
/// 通知人名称
/// </summary>
[SugarColumn(ColumnName = "NotifypartName")]
[Description("通知人名称")]
public string NotifypartName{ get; set; }
/// <summary>
/// 通知人地址
/// </summary>
[SugarColumn(ColumnName = "NotifypartAddress")]
[Description("通知人地址")]
public string NotifypartAddress{ get; set; }
/// <summary>
/// 通知人国家
/// </summary>
[SugarColumn(ColumnName = "NotifypartCountry")]
[Description("通知人国家")]
public string NotifypartCountry{ get; set; }
/// <summary>
/// 通知人省份
/// </summary>
[SugarColumn(ColumnName = "NotifypartProvince")]
[Description("通知人省份")]
public string NotifypartProvince{ get; set; }
/// <summary>
/// 通知人城市
/// </summary>
[SugarColumn(ColumnName = "NotifypartCity")]
[Description("通知人城市")]
public string NotifypartCity{ get; set; }
/// <summary>
/// 通知人区县
/// </summary>
[SugarColumn(ColumnName = "NotifypartCounty")]
[Description("通知人区县")]
public string NotifypartCounty{ get; set; }
/// <summary>
/// 通知人邮政编码
/// </summary>
[SugarColumn(ColumnName = "NotifypartPostCode")]
[Description("通知人邮政编码")]
public string NotifypartPostCode{ get; set; }
/// <summary>
/// 通知人联系人名
/// </summary>
[SugarColumn(ColumnName = "NotifypartFirstName")]
[Description("通知人联系人名")]
public string NotifypartFirstName{ get; set; }
/// <summary>
/// 通知人联系人姓
/// </summary>
[SugarColumn(ColumnName = "NotifypartLastName")]
[Description("通知人联系人姓")]
public string NotifypartLastName{ get; set; }
/// <summary>
/// 通知人电话区号
/// </summary>
[SugarColumn(ColumnName = "NotifypartPhoneCode")]
[Description("通知人电话区号")]
public string NotifypartPhoneCode{ get; set; }
/// <summary>
/// 通知人电话
/// </summary>
[SugarColumn(ColumnName = "NotifypartPhone")]
[Description("通知人电话")]
public string NotifypartPhone{ get; set; }
/// <summary>
/// 通知人分机号
/// </summary>
[SugarColumn(ColumnName = "NotifypartPhoneExtension")]
[Description("通知人分机号")]
public string NotifypartPhoneExtension{ get; set; }
/// <summary>
/// 订舱公司名称
/// </summary>
[SugarColumn(ColumnName = "BookingName")]
[Description("订舱公司名称")]
public string BookingName{ get; set; }
/// <summary>
/// 订舱公司地址
/// </summary>
[SugarColumn(ColumnName = "BookingAddress")]
[Description("订舱公司地址")]
public string BookingAddress{ get; set; }
/// <summary>
/// 订舱公司国家
/// </summary>
[SugarColumn(ColumnName = "BookingCountry")]
[Description("订舱公司国家")]
public string BookingCountry{ get; set; }
/// <summary>
/// 订舱公司省份
/// </summary>
[SugarColumn(ColumnName = "BookingProvince")]
[Description("订舱公司省份")]
public string BookingProvince{ get; set; }
/// <summary>
/// 订舱公司城市
/// </summary>
[SugarColumn(ColumnName = "BookingCity")]
[Description("订舱公司城市")]
public string BookingCity{ get; set; }
/// <summary>
/// 订舱公司区县
/// </summary>
[SugarColumn(ColumnName = "BookingCounty")]
[Description("订舱公司区县")]
public string BookingCounty{ get; set; }
/// <summary>
/// 订舱公司邮政编码
/// </summary>
[SugarColumn(ColumnName = "BookingPostCode")]
[Description("订舱公司邮政编码")]
public string BookingPostCode{ get; set; }
/// <summary>
/// 订舱公司联系人名
/// </summary>
[SugarColumn(ColumnName = "BookingFirstName")]
[Description("订舱公司联系人名")]
public string BookingFirstName{ get; set; }
/// <summary>
/// 订舱公司联系人姓
/// </summary>
[SugarColumn(ColumnName = "BookingLastName")]
[Description("订舱公司联系人姓")]
public string BookingLastName{ get; set; }
/// <summary>
/// 订舱公司电话区号
/// </summary>
[SugarColumn(ColumnName = "BookingPhoneCode")]
[Description("订舱公司电话区号")]
public string BookingPhoneCode{ get; set; }
/// <summary>
/// 订舱公司电话
/// </summary>
[SugarColumn(ColumnName = "BookingPhone")]
[Description("订舱公司电话")]
public string BookingPhone{ get; set; }
/// <summary>
/// 订舱公司分机号
/// </summary>
[SugarColumn(ColumnName = "BookingPhoneExtension")]
[Description("订舱公司分机号")]
public string BookingPhoneExtension{ get; set; }
/// <summary>
/// 品名货描
/// </summary>
[SugarColumn(ColumnName = "Description")]
[Description("品名货描")]
public string Description{ get; set; }
/// <summary>
/// 订舱备注
/// </summary>
[SugarColumn(ColumnName = "SoRemark")]
[Description("订舱备注")]
public string SoRemark{ get; set; }
/// <summary>
/// 下一步通知
/// </summary>
[SugarColumn(ColumnName = "NotifyNext")]
[Description("下一步通知")]
public bool NotifyNext{ get; set; }
/// <summary>
/// 拖车公司
/// </summary>
[SugarColumn(ColumnName = "TruckCompany")]
[Description("拖车公司")]
public string TruckCompany{ get; set; }
/// <summary>
/// BC接收邮箱
/// </summary>
[SugarColumn(ColumnName = "BcReceiveEmail")]
[Description("BC接收邮箱")]
public string BcReceiveEmail{ get; set; }
/// <summary>
/// 租户名称
/// </summary>
[SugarColumn(ColumnName = "TenantName")]
[Description("租户名称")]
public string TenantName{ get; set; }
}
}

@ -52,6 +52,8 @@ namespace Myshipping.Application.Event
{
_logger.LogInformation($"收到订舱扣费请求:{context.Source.Payload}");
var batchId = DateTime.Now.Ticks.ToString();
var paraObj = context.Source.Payload as dynamic;
int bsType = paraObj.bsType;
@ -59,7 +61,7 @@ namespace Myshipping.Application.Event
List<long> idList = paraObj.idList;
idList = idList.Distinct().ToList();
_logger.LogInformation($"准备处理扣费,bsType{bsType}sendType{sendType}id列表{string.Join(',', idList)}");
_logger.LogInformation($"{batchId}-准备处理扣费,bsType{bsType}sendType{sendType}id列表{string.Join(',', idList)}");
using var scope = _services.CreateScope();
@ -117,7 +119,7 @@ namespace Myshipping.Application.Event
var c = repoFeeRecord.AsQueryable().Filter(null, true).Count(x => x.TenantId == order.TenantId && x.MBLNO == order.MBLNO);
if (c > 0)
{
_logger.LogInformation($"已存在扣费记录id{order.Id},提单号:{order.MBLNO},租户:{order.TenantId}");
_logger.LogInformation($"{batchId}-已存在扣费记录id{order.Id},提单号:{order.MBLNO},租户:{order.TenantId}");
continue;
}
@ -150,7 +152,7 @@ namespace Myshipping.Application.Event
}
};
_logger.LogInformation($"调用扣费:{postObj.ToJsonString()}");
_logger.LogInformation($"{batchId}-调用扣费:{postObj.ToJsonString()}");
var apiRtn = await feeUrl.Value
.SetHttpMethod(HttpMethod.Post)
.SetBody(postObj)
@ -161,7 +163,7 @@ namespace Myshipping.Application.Event
DingTalkGroupHelper.SendDingTalkGroupMessage("bookingFeeNotify", "扣费失败提醒", errMsg);
})
.SendAsStringAsync();
_logger.LogInformation($"调用扣费返回:{apiRtn}");
_logger.LogInformation($"{batchId}-调用扣费返回:{apiRtn}");
var jobjApiRtn = JObject.Parse(apiRtn);
var code = jobjApiRtn.GetIntValue("code");
var jobjApiRtnData = jobjApiRtn.GetValue("data") as JObject;
@ -185,12 +187,12 @@ namespace Myshipping.Application.Event
else
{
var errMsg = jobjApiRtn.GetValue("message").ToString();
_logger.LogError($"扣费失败:{errMsg}");
_logger.LogError($"{batchId}-扣费失败:{errMsg}");
DingTalkGroupHelper.SendDingTalkGroupMessage("bookingFeeNotify", "扣费失败提醒", errMsg);
}
}
_logger.LogInformation($"扣费处理完成");
_logger.LogInformation($"{batchId}-扣费处理完成");
}
}
}

@ -52,6 +52,7 @@
<ItemGroup>
<Folder Include="Entity\Fee\" />
<Folder Include="Entity\BookingSoTemplate\" />
</ItemGroup>
</Project>

@ -0,0 +1,150 @@
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Myshipping.Application.Entity;
using Myshipping.Core;
using Myshipping.Core.Service;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Myshipping.Application.Service
{
/// <summary>
/// 自动订舱模板
/// </summary>
[ApiDescriptionSettings("Application", Name = "BookingSoTemplate", Order = 1)]
public class BookingSoTemplateService : IDynamicApiController, ITransient
{
private readonly ILogger<BookingSlotService> _logger;
private readonly ISysCacheService _cache;
private readonly SqlSugarRepository<BookingSoTemplate> _rep;
public BookingSoTemplateService(ILogger<BookingSlotService> logger,
ISysCacheService cache,
SqlSugarRepository<BookingSoTemplate> rep)
{
_logger = logger;
_cache = cache;
_rep = rep;
}
/// <summary>
/// 分页查询订舱模板
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("/BookingSoTemplate/page")]
public async Task<SqlSugarPagedList<BookingSoTemplateListOutput>> Page([FromQuery] QueryBookingSoTemplateInput input)
{
var query = _rep.AsQueryable().Filter(null, true)
.Where(x => x.IsDeleted == false)
.WhereIF(!string.IsNullOrEmpty(input.CustName), u => u.CustName.Contains(input.CustName))
.WhereIF(!string.IsNullOrEmpty(input.Carrier), u => u.Carrier.Contains(input.Carrier))
.WhereIF(!string.IsNullOrEmpty(input.TemplateName), u => u.TemplateName.Contains(input.TemplateName))
.WhereIF(!string.IsNullOrEmpty(input.CarrierId), u => u.CarrierId == input.CarrierId);
if (!string.IsNullOrEmpty(input.SortField) || input.MultiSort == null || input.MultiSort.Count == 0)
{
query = query.OrderBy(PageInputOrder.OrderBuilder(input.SortField, input.DescSort));
}
else
{
query = query.OrderBy(PageInputOrder.MultiOrderBuilder(input.MultiSort));
}
var entities = await query.ToPagedListAsync(input.PageNo, input.PageSize);
return entities.Adapt<SqlSugarPagedList<BookingSoTemplateListOutput>>();
}
/// <summary>
/// 保存订舱模板
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/BookingSoTemplate/save")]
public async Task<BookingSoTemplateDetailOutput> Save(BookingSoTemplateSaveInput input)
{
BookingSoTemplate model = null;
//同一客户,同一船公司,只允许生效一个模板。
if (input.IsEnable)
{
var c = _rep.AsQueryable().Filter(null, true).Count(x => x.IsDeleted == false && x.CustName == input.CustName && x.CarrierId == input.CarrierId && x.IsEnable);
if (c > 0)
{
throw Oops.Bah($"客户:{input.CustName},船司:{input.Carrier} 已存在启用的模板");
}
}
if (input.Id > 0)
{
model = _rep.FirstOrDefault(x => x.Id == input.Id);
input.Adapt(model);
await _rep.UpdateAsync(model);
}
else
{
if (_rep.AsQueryable().Filter(null, true).Count(x => x.IsDeleted == false && x.CustName == input.CustName && x.CarrierId == input.CarrierId) > 0)
{
throw Oops.Bah($"客户:{input.CustName},船司:{input.Carrier} 已创建过模板");
}
model = input.Adapt<BookingSoTemplate>();
await _rep.InsertAsync(model);
}
return model.Adapt<BookingSoTemplateDetailOutput>();
}
/// <summary>
/// 删除订舱模板
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("/BookingSoTemplate/delete")]
public async Task Delete(long id)
{
var entity = await _rep.AsQueryable().Filter(null, true)
.FirstAsync(u => u.Id == id && u.IsDeleted == false);
if (entity == null)
{
throw Oops.Bah("未找到模板数据");
}
entity.IsDeleted = true;
await _rep.UpdateAsync(entity);
}
/// <summary>
/// 获取订舱模板
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("/BookingSoTemplate/detail")]
public async Task<BookingSoTemplateDetailOutput> Get(long id)
{
var model = await _rep.AsQueryable().Filter(null, true)
.FirstAsync(u => u.Id == id && u.IsDeleted == false);
if (model == null)
{
throw Oops.Bah("未找到模板数据");
}
return model.Adapt<BookingSoTemplateDetailOutput>();
}
}
}

@ -0,0 +1,373 @@
using Myshipping.Core;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Myshipping.Application
{
/// <summary>
/// 订舱模板DTO
/// </summary>
public class BookingSoTemplateDto
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 客户代码
/// </summary>
public string CustCode { get; set; }
/// <summary>
/// 客户名称
/// </summary>
public string CustName { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public long? UserId { get; set; }
/// <summary>
/// 用户代码
/// </summary>
public string UserCode { get; set; }
/// <summary>
/// 用户名称
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string TemplateName { get; set; }
/// <summary>
/// 船司ID
/// </summary>
public string CarrierId { get; set; }
/// <summary>
/// 船司名称
/// </summary>
public string Carrier { get; set; }
/// <summary>
/// 启用标志
/// </summary>
public bool IsEnable { get; set; }
/// <summary>
/// 优先级
/// </summary>
public string Priority { get; set; }
/// <summary>
/// 发货人名称
/// </summary>
public string ShipperName { get; set; }
/// <summary>
/// 发货人地址
/// </summary>
public string ShipperAddress { get; set; }
/// <summary>
/// 发货人国家
/// </summary>
public string ShipperCountry { get; set; }
/// <summary>
/// 发货人省份
/// </summary>
public string ShipperProvince { get; set; }
/// <summary>
/// 发货人城市
/// </summary>
public string ShipperCity { get; set; }
/// <summary>
/// 发货人区县
/// </summary>
public string ShipperCounty { get; set; }
/// <summary>
/// 发货人邮政编码
/// </summary>
public string ShipperPostCode { get; set; }
/// <summary>
/// 发货人联系人名
/// </summary>
public string ShipperFirstName { get; set; }
/// <summary>
/// 发货人联系人姓
/// </summary>
public string ShipperLastName { get; set; }
/// <summary>
/// 发货人电话区号
/// </summary>
public string ShipperPhoneCode { get; set; }
/// <summary>
/// 发货人电话
/// </summary>
public string ShipperPhone { get; set; }
/// <summary>
/// 发货人分机号
/// </summary>
public string ShipperPhoneExtension { get; set; }
/// <summary>
/// 收货人名称
/// </summary>
public string ConsigneeName { get; set; }
/// <summary>
/// 收货人地址
/// </summary>
public string ConsigneeAddress { get; set; }
/// <summary>
/// 收货人国家
/// </summary>
public string ConsigneeCountry { get; set; }
/// <summary>
/// 收货人省份
/// </summary>
public string ConsigneeProvince { get; set; }
/// <summary>
/// 收货人城市
/// </summary>
public string ConsigneeCity { get; set; }
/// <summary>
/// 收货人区县
/// </summary>
public string ConsigneeCounty { get; set; }
/// <summary>
/// 收货人邮政编码
/// </summary>
public string ConsigneePostCode { get; set; }
/// <summary>
/// 收货人联系人名
/// </summary>
public string ConsigneeFirstName { get; set; }
/// <summary>
/// 收货人联系人姓
/// </summary>
public string ConsigneeLastName { get; set; }
/// <summary>
/// 收货人电话区号
/// </summary>
public string ConsigneePhoneCode { get; set; }
/// <summary>
/// 收货人电话
/// </summary>
public string ConsigneePhone { get; set; }
/// <summary>
/// 收货人分机号
/// </summary>
public string ConsigneePhoneExtension { get; set; }
/// <summary>
/// 通知人名称
/// </summary>
public string NotifypartName { get; set; }
/// <summary>
/// 通知人地址
/// </summary>
public string NotifypartAddress { get; set; }
/// <summary>
/// 通知人国家
/// </summary>
public string NotifypartCountry { get; set; }
/// <summary>
/// 通知人省份
/// </summary>
public string NotifypartProvince { get; set; }
/// <summary>
/// 通知人城市
/// </summary>
public string NotifypartCity { get; set; }
/// <summary>
/// 通知人区县
/// </summary>
public string NotifypartCounty { get; set; }
/// <summary>
/// 通知人邮政编码
/// </summary>
public string NotifypartPostCode { get; set; }
/// <summary>
/// 通知人联系人名
/// </summary>
public string NotifypartFirstName { get; set; }
/// <summary>
/// 通知人联系人姓
/// </summary>
public string NotifypartLastName { get; set; }
/// <summary>
/// 通知人电话区号
/// </summary>
public string NotifypartPhoneCode { get; set; }
/// <summary>
/// 通知人电话
/// </summary>
public string NotifypartPhone { get; set; }
/// <summary>
/// 通知人分机号
/// </summary>
public string NotifypartPhoneExtension { get; set; }
/// <summary>
/// 订舱公司名称
/// </summary>
public string BookingName { get; set; }
/// <summary>
/// 订舱公司地址
/// </summary>
public string BookingAddress { get; set; }
/// <summary>
/// 订舱公司国家
/// </summary>
public string BookingCountry { get; set; }
/// <summary>
/// 订舱公司省份
/// </summary>
public string BookingProvince { get; set; }
/// <summary>
/// 订舱公司城市
/// </summary>
public string BookingCity { get; set; }
/// <summary>
/// 订舱公司区县
/// </summary>
public string BookingCounty { get; set; }
/// <summary>
/// 订舱公司邮政编码
/// </summary>
public string BookingPostCode { get; set; }
/// <summary>
/// 订舱公司联系人名
/// </summary>
public string BookingFirstName { get; set; }
/// <summary>
/// 订舱公司联系人姓
/// </summary>
public string BookingLastName { get; set; }
/// <summary>
/// 订舱公司电话区号
/// </summary>
public string BookingPhoneCode { get; set; }
/// <summary>
/// 订舱公司电话
/// </summary>
public string BookingPhone { get; set; }
/// <summary>
/// 订舱公司分机号
/// </summary>
public string BookingPhoneExtension { get; set; }
/// <summary>
/// 品名货描
/// </summary>
public string Description { get; set; }
/// <summary>
/// 订舱备注
/// </summary>
public string SoRemark { get; set; }
/// <summary>
/// 下一步通知
/// </summary>
public bool NotifyNext { get; set; }
/// <summary>
/// 拖车公司
/// </summary>
public string TruckCompany { get; set; }
/// <summary>
/// BC接收邮箱
/// </summary>
public string BcReceiveEmail { get; set; }
}
/// <summary>
/// 订舱模板保存输入参数
/// </summary>
public class BookingSoTemplateSaveInput : BookingSoTemplateDto
{
}
/// <summary>
/// 订舱模板查询输入参数
/// </summary>
public class QueryBookingSoTemplateInput : PageInputBase
{
/// <summary>
/// 客户名称
/// </summary>
public string CustName { get; set; }
/// <summary>
/// 船司ID
/// </summary>
public string CarrierId { get; set; }
/// <summary>
/// 船司名称
/// </summary>
public string Carrier { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string TemplateName { get; set; }
}
}

@ -0,0 +1,20 @@
using System;
namespace Myshipping.Application
{
/// <summary>
/// 订舱模板列表输出参数
/// </summary>
public class BookingSoTemplateListOutput : BookingSoTemplateDto
{
}
/// <summary>
/// 订舱模板详情输出参数
/// </summary>
public class BookingSoTemplateDetailOutput : BookingSoTemplateDto
{
}
}
Loading…
Cancel
Save