修改请求方法参数

booking_auth_dev
jianghaiqing 2 years ago
parent 76a562f1e8
commit ead536c4ec

@ -4945,41 +4945,49 @@
<summary>
订单主键
</summary>
<example>348223980163141</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.orderNo">
<summary>
订单号
</summary>
<example>SE2204013163</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.useForwarderCode">
<summary>
是否使用货代代码
</summary>
<example>true</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.forwarderCode">
<summary>
货代代码
</summary>
<example>ABC</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.forwarderName">
<summary>
货代名称
</summary>
<example>ABC</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.fileRole">
<summary>
文件功能 (9原始,1 更新,5 退舱 )
</summary>
<example>9</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.sendType">
<summary>
发送类型
</summary>
<example>B</example>
</member>
<member name="P:Myshipping.Application.BookingOrClosingEDIOrderDto.send">
<summary>
是否直接发送 (默认false)
</summary>
<example>true</example>
</member>
<member name="T:Myshipping.Application.BookingOrderDto">
<summary>

@ -1351,141 +1351,136 @@ namespace Myshipping.Application
/// <param name="model">订舱、截单EDI请求</param>
/// <returns>返回回执</returns>
[HttpPost("/BookingOrder/SendBookingOrClosingEDI")]
public async Task<CommonWebApiResult> SendBookingOrClosingEDI(BookingOrClosingEDIOrderDto model)
public async Task<string> SendBookingOrClosingEDI(BookingOrClosingEDIOrderDto model)
{
CommonWebApiResult result = new CommonWebApiResult();
try
{
/*
EDI
1
2
3ID
4EDI
5EDIEDI
6
7EDI
*/
if (model.Id == 0)
throw Oops.Oh("订单Id不能为空");
/*
EDI
1
2
3ID
4EDI
5EDIEDI
6
7EDI
*/
if (model.Id == 0)
throw Oops.Oh("订单Id不能为空");
var order = _rep.FirstOrDefault(a => a.Id == model.Id);
var order = _rep.AsQueryable().InSingle(model.Id);
if (order == null)
throw Oops.Oh($"获取订单信息失败");
if(order == null)
throw Oops.Oh($"获取订单信息失败");
CheckBookingOrClosingEDI(order);
CheckBookingOrClosingEDI(order);
EDIRouteEnum ediRouteEnum = GetEDIRoute(order.CARRIERID);
EDIRouteEnum ediRouteEnum = GetEDIRoute(order.CARRIERID);
if (ediRouteEnum == EDIRouteEnum.NULL)
throw Oops.Oh($"当前船公司没有对应的请求路由配置");
if (ediRouteEnum == EDIRouteEnum.NULL)
throw Oops.Oh($"当前船公司没有对应的请求路由配置");
//集装箱型
var ediCtnList = _cache.GetAllMappingCtn().GetAwaiter().GetResult()
.Where(t => t.Module.Equals(CONST_MAPPING_MODULE, StringComparison.OrdinalIgnoreCase)).ToList();
//集装箱型
var ediCtnList = _cache.GetAllMappingCtn().GetAwaiter().GetResult()
.Where(t=>t.Module.Equals(CONST_MAPPING_MODULE,StringComparison.OrdinalIgnoreCase)).ToList();
//包装
var ediPkgsList = _cache.GetAllMappingPackage().GetAwaiter().GetResult()
.Where(t => t.Module.Equals(CONST_MAPPING_MODULE, StringComparison.OrdinalIgnoreCase)).ToList();
//包装
var ediPkgsList = _cache.GetAllMappingPackage().GetAwaiter().GetResult()
.Where(t => t.Module.Equals(CONST_MAPPING_MODULE, StringComparison.OrdinalIgnoreCase)).ToList();
//EDI SO\SI代码
var ediSOSICfg = _cache.GetAllMappingCarrier().GetAwaiter().GetResult()
.FirstOrDefault(t => t.Module.Equals(CONST_MAPPING_MODULE, StringComparison.OrdinalIgnoreCase)
&& t.Code.Equals(order.CARRIERID, StringComparison.OrdinalIgnoreCase));
//EDI SO\SI代码
var ediSOSICfg = _cache.GetAllMappingCarrier().GetAwaiter().GetResult()
.FirstOrDefault(t => t.Module.Equals(CONST_MAPPING_MODULE, StringComparison.OrdinalIgnoreCase)
&& t.Code.Equals(order.CARRIERID, StringComparison.OrdinalIgnoreCase));
if (ediSOSICfg == null || string.IsNullOrWhiteSpace(ediSOSICfg.MapCode))
throw Oops.Oh($"CARRIERID={order.CARRIERID} 发送SO(SI)的船公司EDI代码未找到");
if(ediSOSICfg == null || string.IsNullOrWhiteSpace(ediSOSICfg.MapCode))
throw Oops.Oh($"CARRIERID={order.CARRIERID} 发送SO(SI)的船公司EDI代码未找到");
var ediModel = new EDIBaseModel();
var ediModel = new EDIBaseModel();
var ftpSet = _cache.GetAllEdiSetting().GetAwaiter().GetResult()
.FirstOrDefault(a => a.EDICODE.Equals(ediRouteEnum.ToString(), StringComparison.OrdinalIgnoreCase));
var ftpSet = _cache.GetAllEdiSetting().GetAwaiter().GetResult()
.FirstOrDefault(a => a.EDICODE.Equals(ediRouteEnum.ToString(), StringComparison.OrdinalIgnoreCase));
if (ftpSet == null)
throw Oops.Oh($"获取EDICODE={ediRouteEnum.ToString()}的EDI参数设置失败");
if (ftpSet == null)
throw Oops.Oh($"获取EDICODE={ediRouteEnum.ToString()}的EDI参数设置失败");
ediModel.SENDCODE = ftpSet.SENDCODE;
ediModel.SENDNAME = ftpSet.SENDNAME;
ediModel.RECEIVECODE = ftpSet.RECEIVECODE;
ediModel.SENDCODE = ftpSet.SENDCODE;
ediModel.SENDNAME = ftpSet.SENDNAME;
ediModel.RECEIVECODE = ftpSet.RECEIVECODE;
ediModel.filetype = model.sendType; //订舱
ediModel.filerole = model.fileRole;
ediModel.filetype = model.sendType; //订舱
ediModel.filerole = model.fileRole;
//读取文件配置
var fileCfg = App.GetOptions<BookingAttachOptions>();
//读取文件配置
var fileCfg = App.GetOptions<BookingAttachOptions>();
string filePath = $"{Path.Combine(!string.IsNullOrWhiteSpace(fileCfg.basePath) ? fileCfg.basePath : App.WebHostEnvironment.WebRootPath, fileCfg.relativePath)}/edifiles/{order.BSNO}";
string filePath = $"{Path.Combine(!string.IsNullOrWhiteSpace(fileCfg.basePath) ? fileCfg.basePath : App.WebHostEnvironment.WebRootPath,fileCfg.relativePath)}/edifiles/{order.BSNO}";
ediModel.filerpath = filePath;
ediModel.filerpath = filePath;
ediModel.UseForWarderCode = model.useForwarderCode;
ediModel.ForWarderCode = model.forwarderCode;
ediModel.ForWarderName = model.forwarderName;
ediModel.UseForWarderCode = model.useForwarderCode;
ediModel.ForWarderCode = model.forwarderCode;
ediModel.ForWarderName = model.forwarderName;
ediModel.BSLIST = new List<MsOpSeaeEDIBaseModel>();
ediModel.BSLIST = new List<MsOpSeaeEDIBaseModel>();
var primaryModel = order.Adapt<MsOpSeaeEDIBaseModel>();
var primaryModel = order.Adapt<MsOpSeaeEDIBaseModel>();
primaryModel.CARRIEREDICODE = ediSOSICfg.MapCode;
primaryModel.CARRIEREDICODE = ediSOSICfg.MapCode;
var ediPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(order.KINDPKGS, StringComparison.OrdinalIgnoreCase));
var ediPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(order.KINDPKGS, StringComparison.OrdinalIgnoreCase));
if (ediPkgs == null || string.IsNullOrWhiteSpace(ediPkgs.MapCode))
throw Oops.Oh($"包装{order.KINDPKGS}的EDI代码未找到");
if (ediPkgs == null || string.IsNullOrWhiteSpace(ediPkgs.MapCode))
throw Oops.Oh($"包装{order.KINDPKGS}的EDI代码未找到");
primaryModel.KINDPKGS_EDI_CODE = ediPkgs.MapCode?.Trim();
primaryModel.KINDPKGS_EDI_CODE = ediPkgs.MapCode?.Trim();
//箱信息
var contaList = _repCtn.AsQueryable().Where(t => t.BILLID == order.Id).ToList();
//箱信息
var contaList =_repCtn.AsQueryable().Where(t => t.BILLID == order.Id).ToList();
primaryModel.CTNLIST = new List<MsOpSeaeCtnEDIBaseModel>();
primaryModel.CTNLIST = new List<MsOpSeaeCtnEDIBaseModel>();
foreach (var conta in contaList)
{
var contaModel = conta.Adapt<MsOpSeaeCtnEDIBaseModel>();
foreach (var conta in contaList)
var currConta = ediCtnList.FirstOrDefault(x => x.Code.Equals(conta.CTNALL, StringComparison.OrdinalIgnoreCase));
if (currConta != null)
{
var contaModel = conta.Adapt<MsOpSeaeCtnEDIBaseModel>();
var currConta = ediCtnList.FirstOrDefault(x => x.Code.Equals(conta.CTNALL, StringComparison.OrdinalIgnoreCase));
if (currConta != null)
{
contaModel.CTNALLCODE = currConta.MapCode;
}
primaryModel.CTNLIST.Add(contaModel);
contaModel.CTNALLCODE = currConta.MapCode;
}
//多品名
var cargoList = _ctndetailrep.AsQueryable().Where(t => contaList.Select(a => a.Id).ToArray().Contains(t.CTNID.Value)).ToList();
primaryModel.CTNLIST.Add(contaModel);
}
primaryModel.CTNGOODSLIST = new List<MsOpSeaeCtnDetailEDIBaseModel>();
//多品名
var cargoList = _ctndetailrep.AsQueryable().Where(t => contaList.Select(a => a.Id).ToArray().Contains(t.CTNID.Value)).ToList();
foreach (var cargo in cargoList)
{
MsOpSeaeCtnDetailEDIBaseModel cargoModel = cargo.Adapt<MsOpSeaeCtnDetailEDIBaseModel>();
primaryModel.CTNGOODSLIST = new List<MsOpSeaeCtnDetailEDIBaseModel>();
cargoModel.CNTRNO = contaList.FirstOrDefault(a => a.Id == cargo.CTNID.Value).CNTRNO;
foreach (var cargo in cargoList)
{
MsOpSeaeCtnDetailEDIBaseModel cargoModel = cargo.Adapt<MsOpSeaeCtnDetailEDIBaseModel>();
var ediDetailPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(cargo.KINDPKGS, StringComparison.OrdinalIgnoreCase));
if (ediDetailPkgs != null)
{
cargoModel.KINDPKGS_EDI_CODE = ediDetailPkgs.MapCode;
}
cargoModel.CNTRNO = contaList.FirstOrDefault(a => a.Id == cargo.CTNID.Value).CNTRNO;
primaryModel.CTNGOODSLIST.Add(cargoModel);
var ediDetailPkgs = ediPkgsList.FirstOrDefault(x => x.Code.Equals(cargo.KINDPKGS, StringComparison.OrdinalIgnoreCase));
if (ediDetailPkgs != null)
{
cargoModel.KINDPKGS_EDI_CODE = ediDetailPkgs.MapCode;
}
ediModel.BSLIST.Add(primaryModel);
result = await InnerSendBookingOrClosingEDI(model, ediModel, ediRouteEnum);
primaryModel.CTNGOODSLIST.Add(cargoModel);
}
catch (Exception ex)
ediModel.BSLIST.Add(primaryModel);
var result = await InnerSendBookingOrClosingEDI(model, ediModel, ediRouteEnum);
if(!result.succ)
{
result.succ = false;
result.msg = ex.Message;
throw Oops.Oh(result.msg);
}
return result;
return result.extra.ToString();
}
#endregion

@ -14,40 +14,48 @@ namespace Myshipping.Application
/// <summary>
/// 订单主键
/// </summary>
/// <example>348223980163141</example>
public long Id { get; set; }
/// <summary>
/// 订单号
/// </summary>
/// <example>SE2204013163</example>
public string orderNo { get; set; }
/// <summary>
/// 是否使用货代代码
/// </summary>
/// <example>true</example>
public bool useForwarderCode { get; set; }
/// <summary>
/// 货代代码
/// </summary>
/// <example>ABC</example>
public string forwarderCode { get; set; }
/// <summary>
/// 货代名称
/// </summary>
/// <example>ABC</example>
public string forwarderName { get; set; }
/// <summary>
///
/// 文件功能 (9原始,1 更新,5 退舱 )
/// </summary>
/// <example>9</example>
public string fileRole { get; set; }
/// <summary>
/// 发送类型
/// </summary>
/// <example>B</example>
public string sendType { get; set; } = "B";
/// <summary>
/// 是否直接发送 (默认false)
/// </summary>
/// <example>true</example>
public bool send { get; set; } = false;
}
}

@ -41,6 +41,6 @@ namespace Myshipping.Application
/// </summary>
/// <param name="model">订舱、截单EDI请求</param>
/// <returns>返回回执</returns>
Task<CommonWebApiResult> SendBookingOrClosingEDI (BookingOrClosingEDIOrderDto model);
Task<string> SendBookingOrClosingEDI (BookingOrClosingEDIOrderDto model);
}
}

@ -47,8 +47,7 @@ namespace Myshipping.Application
/// </summary>
/// <param name="model">海运订舱请求业务</param>
/// <returns>返回用户信息</returns>
[ApiDescriptionSettings(LowercaseRoute = false, SplitCamelCase = false)]
[HttpPost]
[HttpPost("/RulesEngineClient/ExcuteRulesOceanBookingByMsg")]
public async Task<RulesEngineExcuteResultDto> ExcuteRulesOceanBookingByMsg(RulesEngineOrderBookingMessageInfo model)
{
RulesEngineExcuteResultDto result = new RulesEngineExcuteResultDto();
@ -77,8 +76,7 @@ namespace Myshipping.Application
/// </summary>
/// <param name="bookingId">海运订舱主键</param>
/// <returns>返回用户信息</returns>
[ApiDescriptionSettings(LowercaseRoute = false, SplitCamelCase = false)]
[HttpGet]
[HttpGet("/RulesEngineClient/ExcuteRulesOceanBooking")]
public async Task<RulesEngineExcuteResultDto> ExcuteRulesOceanBooking(string bookingId)
{
/*
@ -186,8 +184,7 @@ namespace Myshipping.Application
/// </summary>
/// <param name="model">海运订舱报文类</param>
/// <returns>返回回执</returns>
[ApiDescriptionSettings(LowercaseRoute = false, SplitCamelCase = false)]
[HttpPost]
[HttpPost("/RulesEngineClient/ExcuteRulesOceanBookingByModel")]
public async Task<RulesEngineExcuteResultDto> ExcuteRulesOceanBookingByModel(BookingOrderDto model)
{
/*

Loading…
Cancel
Save