diff --git a/Myshipping.Application/Enum/BookingErrorCode.cs b/Myshipping.Application/Enum/BookingErrorCode.cs
index 20c561ce..f308728e 100644
--- a/Myshipping.Application/Enum/BookingErrorCode.cs
+++ b/Myshipping.Application/Enum/BookingErrorCode.cs
@@ -133,7 +133,11 @@ namespace Myshipping.Application.Enum
[ErrorCodeItemMetadata("vgm发送失败:{0}")]
BOOK128,
-
+ ///
+ /// 舱单发送失败
+ ///
+ [ErrorCodeItemMetadata("舱单发送失败:{0}")]
+ BOOK129,
///
/// 附件不存在
diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
index 14cb99d3..9575d953 100644
--- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
+++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
@@ -3300,9 +3300,11 @@ namespace Myshipping.Application
var sysconfig = await _cache.GetAllSysConfig();
var urlConfig = sysconfig.FirstOrDefault(x => x.GroupCode == "DJY_CONST" && x.Code == "DjyVgmApiMyshpping");
- var useridConfig = sysconfig.FirstOrDefault(x => x.GroupCode == "DJY_CONST" && x.Code == "DjyVgmApiMyshppingUserId");
- var userSecretConfig = sysconfig.FirstOrDefault(x => x.GroupCode == "DJY_CONST" && x.Code == "DjyVgmApiMyshppingUserSecret");
-
+ var accConfig = await _webAccountConfig.GetAccountConfig("DjyVgm", UserManager.UserId);
+ if (accConfig == null)
+ {
+ throw Oops.Bah("请在网站账号中维护VGM接口的用户id和秘钥");
+ }
var objMdata = new
{
@@ -3341,8 +3343,8 @@ namespace Myshipping.Application
var dictParam = new Dictionary {
{ "ac", "vgm" },
- { "uid", useridConfig.Value},
- { "skey", userSecretConfig.Value},
+ { "uid", accConfig.Account},
+ { "skey", accConfig.Password},
{ "optype", "9"},
{ "mdata", JsonConvert.SerializeObject(objMdata)},
{ "ctndata", JsonConvert.SerializeObject(listCtn)}
@@ -5466,9 +5468,7 @@ namespace Myshipping.Application
}
else
{
-
item.CARRIER = _cache.GetAllCodeCarrier().Result.Where(x => x.Code == item.CARRIERID).Select(x => x.CnName).FirstOrDefault();
-
}
}
if (!string.IsNullOrEmpty(item.ISSUETYPE))
@@ -5477,10 +5477,6 @@ namespace Myshipping.Application
item.ISSUETYPE = ISSUETYPE;
}
-
-
-
-
var ctn = await _repCtn.AsQueryable().Filter(null, true).Where(x => x.BILLID == item.Id && x.IsDeleted == false).ToListAsync();
item.ctnInputs = ctn.Adapt>();
foreach (var it in item.ctnInputs)
@@ -5529,7 +5525,8 @@ namespace Myshipping.Application
const string MqActionExchangeName = "djy.output.dingcang.ds6";
const string MqActionQueueName = "djy.output.dingcang.ds6";
ConnectionFactory factory = new ConnectionFactory();
- factory.Uri = new Uri(App.Configuration["BookingOrderMQUri"]);
+ factory.Uri = new Uri(_cache.GetAllDictData().Result.Where(x => x.Code == "BookingOrderMQUri").Select(x => x.Value).FirstOrDefault());
+
using (IConnection conn = factory.CreateConnection())
{
IModel mqModel = conn.CreateModel();
diff --git a/Myshipping.Application/Service/BookingOrderSeaeEdi/BookingOrderSeaeEdiService.cs b/Myshipping.Application/Service/BookingOrderSeaeEdi/BookingOrderSeaeEdiService.cs
index b28ef0d0..0a4e169e 100644
--- a/Myshipping.Application/Service/BookingOrderSeaeEdi/BookingOrderSeaeEdiService.cs
+++ b/Myshipping.Application/Service/BookingOrderSeaeEdi/BookingOrderSeaeEdiService.cs
@@ -31,6 +31,11 @@ using System.Net.Http;
using Myshipping.Core.Service;
using System.Reflection.Emit;
using Myshipping.Application.Service.BookingOrderSeaeEdi.Dto;
+using Myshipping.Application.Enum;
+using Myshipping.Application.Service.BookingOrder.Dto;
+using Newtonsoft.Json.Linq;
+using System.Text;
+using System.Web;
namespace Myshipping.Application
{
@@ -43,13 +48,19 @@ namespace Myshipping.Application
private readonly ILogger _logger;
private readonly SqlSugarRepository _seaeedi;
private readonly SqlSugarRepository _seaeedictn;
-
- public BookingOrderSeaeEdiService(ILogger logger, SqlSugarRepository seaeedi, SqlSugarRepository seaeedictn)
+ private readonly ISysCacheService _cache;
+ private readonly SqlSugarRepository _repStatuslog;
+ private readonly IDjyWebsiteAccountConfigService _webAccountConfig;
+ public BookingOrderSeaeEdiService(ILogger logger, SqlSugarRepository seaeedi,
+ SqlSugarRepository seaeedictn, ISysCacheService cache, SqlSugarRepository repStatuslog,
+ IDjyWebsiteAccountConfigService webAccountConfig)
{
this._logger = logger;
this._seaeedi = seaeedi;
this._seaeedictn = seaeedictn;
-
+ this._cache = cache;
+ this._repStatuslog = repStatuslog;
+ this._webAccountConfig = webAccountConfig;
}
///
@@ -172,128 +183,76 @@ namespace Myshipping.Application
#region 舱单
- /////
- ///// 舱单
- /////
- /////
- /////
- //[HttpPost("/BookingOrderSeaeEdi/CustEDI")]
- //public async Task CustEDI(long bookingId)
- //{
- // var order = _seaeedi.FirstOrDefault(x => x.BookingId == bookingId);
-
-
- // var ctns = _seaeedictn.Where(x => x.BILLID == bookingId).ToList();
-
- // //船公司
- // if (string.IsNullOrEmpty(order.CARRIERID))
- // {
- // throw Oops.Bah(BookingErrorCode.BOOK118);
- // }
-
- // //提单号不能为空
- // if (string.IsNullOrEmpty(order.MBLNO))
- // {
- // throw Oops.Bah(BookingErrorCode.BOOK127);
- // }
- // if (string.IsNullOrEmpty(order.YARDID))
- // {
- // throw Oops.Bah("场站未正确选择");
- // }
- // List custEDIDtos = new List();
- // MDATA mDATA = new MDATA();
-
- // mDATA.MBLNO = order.MBLNO;
- // mDATA.HBLNO = order.HBLNO;
- // mDATA.ETD = order.ETD == null ? "" : Convert.ToDateTime(order.ETD).ToString("yyyy-MM-dd");
- // mDATA.FORWARDER = order.SHIPAGENCY;
- // mDATA.VESSEL = order.VESSEL;
- // mDATA.VOYNO = order.VOYNO;
- // mDATA.CARRIER = order.CARRIERID;
- // mDATA.SHIPPERNAME = order.SHIPPER;
- // mDATA.SHIPPERADDR1 = order.SHIPPERADDR1;
- // mDATA.SHIPPERCOUNTRY = order.SHIPPERCOUNTRY;
- // mDATA.SHIPPERTEL = order.SHIPPERTEL;
- // mDATA.CONSIGNEENAME = order.CONSIGNEE;
- // mDATA.CONSIGNEEADDR1 = order.CONSIGNEEADDR1;
- // mDATA.CONSIGNEECOUNTRY = order.CONSIGNEERCOUNTRY;
- // mDATA.CONSIGNEETEL = order.CONSIGNEETEL;
- // mDATA.NOTIFYPARTYNAME = order.NOTIFYPARTY;
- // mDATA.NOTIFYPARTYADDR1 = order.NOTIFYPARTYADDR1;
- // mDATA.NOTIFYPARTYCOUNTRY = order.NOTIFYPARTYCOUNTRY;
- // mDATA.NOTIFYPARTYTEL = order.NOTIFYPARTYTEL;
-
-
-
-
-
-
- // //var user = await _repUser.FirstOrDefaultAsync(x => x.Id == UserManager.UserId);
-
- // // int idx = 1;
- // // //调用接口
- // // var dicUrl = _cache.GetAllDictData().Result.First(x => x.TypeCode == "url_set" && x.Code == "request_emf");
- // // var sendObj = new
- // // {
- // // SystemCode = "djy_hechuan",
- // // billOrderId = order.Id.ToString(),
- // // sendOrderCode = order.MBLNO,
- // // customerName = $"{UserManager.TENANT_NAME}+{UserManager.Name}", //公司名称+用户姓名
- // // customerId = order.CUSTOMERID.ToString(),
- // // agentName = string.IsNullOrEmpty(order.FORWARDER) ? UserManager.TENANT_NAME : order.FORWARDER,
- // // carrierCode = order.CARRIERID,
- // // userName = webacc.Account,
- // // userPassword = webacc.Password,
- // // depotCode = order.YARDID,
- // // depotName = order.YARD,
- // // linkName = UserManager.Name,
- // // linkMobile = user.Phone,
- // // linkEmail = user.Email,
- // // userId = user.DjyUserId,
- // // returnUrl = "",
- // // shipName = order.VESSEL,
- // // voyNo = order.VOYNO,
- // // etdstr = order.ETD.HasValue ? order.ETD.Value.ToString("yyyy-MM-dd") : string.Empty,
- // // potrSend = order.PORTLOAD,
- // // potrGoal = order.PORTDISCHARGE,
- // // boxinfoStr = order.CNTRTOTAL,
- // // vgmEndTimeStr = order.CLOSEVGMDATE.HasValue ? order.CLOSEVGMDATE.Value.ToString("yyyy-MM-dd") : string.Empty,
- // // BoxInfo = ctns.Select(c => new
- // // {
- // // index = idx++,
- // // boxType = c.CTNALL,
- // // boxcount = c.CTNNUM.HasValue ? c.CTNNUM.Value : 0,
- // // code = c.CNTRNO,
- // // sealCode = c.SEALNO,
- // // weigth = c.KGS,
- // // weigthTare = c.TAREWEIGHT,
- // // weigthTotal = c.WEIGHKGS,
- // // weigthType = c.WEIGHTYPE == "累加" ? "SM2" : "SM1"
- // // }).ToList(),
- // // returnOkUrl = ""
- // // };
-
- // // string strPostObj = sendObj.ToJsonString();
- // // _logger.LogInformation($"调用VGM直发接口 {dicUrl.Value} 传递数据:{strPostObj}");
- // // var strResp = await dicUrl.Value.SetBody(sendObj).PostAsStringAsync();
- // // _logger.LogInformation($"调用VGM直发接口返回:{strResp}");
-
- // // var jobjResp = JObject.Parse(strResp);
- // // int respCode = jobjResp.GetIntValue("code");
- // // if (respCode != 200)
- // // {
- // // throw Oops.Bah(BookingErrorCode.BOOK128, jobjResp.GetStringValue("message"));
- // // }
- // // //货运动态
- // // var bsl = new BookingStatusLog();
- // // bsl.BookingId = bookingId;
- // // bsl.Status = $"直发VGM";
- // // bsl.OpTime = DateTime.Now;
- // // bsl.Category = "ship";
- // // bsl.MBLNO = order.MBLNO;
- // // await _repStatuslog.InsertAsync(bsl);
-
- //}
+ ///
+ /// 舱单
+ ///
+ ///
+ ///
+ [HttpPost("/BookingOrderSeaeEdi/CustEDI")]
+ public async Task CustEDI(long bookingId)
+ {
+ var order = await _seaeedi.AsQueryable().Filter(null, true).Where(x => x.BookingId == bookingId).FirstAsync();
+ var ctns = await _seaeedictn.AsQueryable().Filter(null, true).Where(x => x.PId == order.Id).ToListAsync();
+ //船公司
+ if (string.IsNullOrEmpty(order.CARRIERID))
+ {
+ throw Oops.Bah(BookingErrorCode.BOOK118);
+ }
+ //提单号不能为空
+ if (string.IsNullOrEmpty(order.MBLNO))
+ {
+ throw Oops.Bah(BookingErrorCode.BOOK127);
+ }
+ if (string.IsNullOrEmpty(order.YARDID))
+ {
+ throw Oops.Bah("场站未正确选择");
+ }
+ var dicUrl = _cache.GetAllDictData().Result.First(x => x.TypeCode == "url_set" && x.Code == "request_emf");
+ var key = _webAccountConfig.GetAccountConfig("DjyCangDan", UserManager.UserId).Result;
+ List custEDIDtos = new List();
+ MDATA mDATA = new MDATA();
+ List CTNDATA = new List();
+ mDATA = order.Adapt();
+ CTNDATA = ctns.Adapt>();
+
+ custEDIDtos.Add(
+ new CustEDIDto
+ {
+ MDATA = mDATA,
+ CTNDATA = CTNDATA
+ }
+ );
+ string strPostObj = custEDIDtos.ToJsonString();
+
+ var sendObj = new
+ {
+ ac = "emf",
+ uid = UserManager.DjyUserId,
+ skey = key.Password,
+ optype = "3",
+ data = strPostObj
+ };
+ _logger.LogInformation($"调用舱单接口 {dicUrl.Value} 传递数据:{strPostObj}");
+ var strResp = await dicUrl.Value.SetContentType("multipart/form-data").SetBody(sendObj).PostAsStringAsync();
+ _logger.LogInformation($"调用舱单接口返回:{strResp}");
+
+
+ var jobjResp = JObject.Parse(strResp);
+ int respCode = jobjResp.GetIntValue("code");
+ if (respCode != 200)
+ {
+ throw Oops.Bah(BookingErrorCode.BOOK129, jobjResp.GetStringValue("message"));
+ }
+ //货运动态
+ var bsl = new BookingStatusLog();
+ bsl.BookingId = bookingId;
+ bsl.Status = $"保存舱单";
+ bsl.OpTime = DateTime.Now;
+ bsl.Category = "ship";
+ bsl.MBLNO = order.MBLNO;
+ await _repStatuslog.InsertAsync(bsl);
+
+ }
diff --git a/Myshipping.Core/Service/DjyWebsiteAccountConfig/DjyWebsiteAccountConfigService.cs b/Myshipping.Core/Service/DjyWebsiteAccountConfig/DjyWebsiteAccountConfigService.cs
index 7d7aa58b..8d3416b2 100644
--- a/Myshipping.Core/Service/DjyWebsiteAccountConfig/DjyWebsiteAccountConfigService.cs
+++ b/Myshipping.Core/Service/DjyWebsiteAccountConfig/DjyWebsiteAccountConfigService.cs
@@ -171,7 +171,12 @@ namespace Myshipping.Core.Service
var entity = await _rep.FirstOrDefaultAsync(u => u.Id == input.Id);
await _rep.DeleteAsync(entity);
}
-
+ ///
+ /// 获取接口Key 个人或公司
+ ///
+ ///
+ ///
+ ///
public async Task GetAccountConfig(string TypeCode, long UserId)
{
if (string.IsNullOrWhiteSpace(TypeCode)||UserId==0) {