From b2c770f0811eb4126637a4ddf9e4d4d3e818087e Mon Sep 17 00:00:00 2001 From: wet <1034391973@qq.com> Date: Thu, 10 Aug 2023 15:04:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A5=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookingOrder/BookingOrderService.cs | 104 +++++++++++++++++- 1 file changed, 99 insertions(+), 5 deletions(-) diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 1ed1ecd4..47399b4e 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -130,7 +130,7 @@ namespace Myshipping.Application private readonly SqlSugarRepository _repLineOpMgrConfig; private readonly SqlSugarRepository _repSysEmp; private readonly SqlSugarRepository _repAutoYard; - + private readonly SqlSugarRepository _repextendstate; const string CONST_MAPPING_MODULE = "BOOK_OR_CLOSING"; const string CONST_MAPPING_MODULE_ROUTE = "BOOK_OR_CLOSING_RT"; @@ -145,7 +145,7 @@ namespace Myshipping.Application SqlSugarRepository bookinglog, SqlSugarRepository bookinglogdetail, SqlSugarRepository bookingremark, SqlSugarRepository bookingfile, SqlSugarRepository repUserConfig, SqlSugarRepository repPrint, SqlSugarRepository dicdata, SqlSugarRepository statuslog, SqlSugarRepository statuslogdetail, - SqlSugarRepository repPrintTemplateShare, SqlSugarRepository vesselInfo, + SqlSugarRepository repPrintTemplateShare, SqlSugarRepository vesselInfo, SqlSugarRepository repextendstate, ILogger logger, ISysCacheService cache, IDjyWebsiteAccountConfigService webAccountConfig, ISysDataUserMenu right, SqlSugarRepository paraGoodsInfoRepository, SqlSugarRepository repPrintTemplate, SqlSugarRepository repLetterYard, SqlSugarRepository repUser, SqlSugarRepository bookingTemplate, SqlSugarRepository repOrderUrl, SqlSugarRepository repOrderContact, SqlSugarRepository repSampleBill, SqlSugarRepository djycustomer, @@ -198,6 +198,7 @@ namespace Myshipping.Application this._repLineOpMgrConfig = repLineOpMgrConfig; this._repSysEmp = repSysEmp; this._repAutoYard = repAutoYard; + this._repextendstate = repextendstate; } #region 主表和箱信息 @@ -1341,11 +1342,15 @@ namespace Myshipping.Application { long Id = Convert.ToInt64(ar); var order = _rep.AsQueryable().Filter(null, true).Where(x => x.Id == Id).First(); - var et = await _rep.AsQueryable().Filter(null, true).WhereIF(!string.IsNullOrWhiteSpace(order.MBLNO),x => x.MBLNO == order.MBLNO).Where(x => x.IsDeleted == false && x.TenantId == UserManager.TENANT_ID && x.ParentId == 0 && x.Id != Id).FirstAsync(); - if (et != null) + if (!string.IsNullOrEmpty(order.MBLNO)) { - throw Oops.Bah("当前主提单号已存在,无法恢复!"); + var et = await _rep.AsQueryable().Filter(null, true).Where(x => x.MBLNO == order.MBLNO && x.IsDeleted == false && x.TenantId == UserManager.TENANT_ID && x.ParentId == 0 && x.Id != Id).FirstAsync(); + if (et != null) + { + throw Oops.Bah("当前主提单号已存在,无法恢复!"); + } } + var ctnlist = await _repCtn.AsQueryable().Where(x => x.BILLID == Id).Select(x => x.Id).ToListAsync(); await _repCtn.UpdateAsync(x => x.BILLID == Id, x => new BookingCtn { IsDeleted = false }); await _ctndetailrep.UpdateAsync(x => ctnlist.Contains((long)x.CTNID), x => new BookingCtnDetail { IsDeleted = false }); @@ -8792,6 +8797,9 @@ HLCUTA12307DPXJ3 以这票为例 6个柜 #endregion + + #region 同步东胜 + /// /// /批量提单号同步东胜 /// @@ -8831,6 +8839,92 @@ HLCUTA12307DPXJ3 以这票为例 6个柜 await SendBookingOrder(orderlist.ToArray()); } + #endregion + #region 提箱小票CMA + /// + /// 提箱小票CMA + /// + /// + /// + [HttpPost("/BookingOrder/SaveBookingTxxp")] + public async Task SaveBookingTxxp(string Ids) + { + //获取url + var url = _cache.GetAllDictData().Result.Where(x => x.TypeCode == "bookingTxxpUrl").Select(x => x.Value).FirstOrDefault(); + //亿通账号 + var ytAcc = _webAccountConfig.GetAccountConfig("CmaWeb", UserManager.UserId).Result; + if (ytAcc == null) + { + throw Oops.Bah(BookingErrorCode.BOOK119); + } + var arr = Ids.Split(","); + if (arr.Count() > 0) + { + foreach (var ar in arr) + { + long Id = Convert.ToInt64(ar); + var order = _rep.FirstOrDefault(x => x.Id == Id); + //条件判断 目前只支持CMA 的数据 + if (order.CARRIERID != "CMA") + { + throw Oops.Bah("船公司目前只支持CMA"); + } + if (string.IsNullOrEmpty(order.VESSEL)) + { + throw Oops.Bah("船名不能为空"); + } + if (string.IsNullOrEmpty(order.MBLNO)) + { + throw Oops.Bah("船名不能为空"); + } + var json = new + { + custname = "DJY", + custpsw = "123", + username = ytAcc.Account, + password = ytAcc.Password, + company = "CMA", + vessel = order.VESSEL + }.ToJsonString(); + var rtn = await url.SetBody(json).PostAsStringAsync(); + JObject jobjRtn = JObject.Parse(rtn); + var status = jobjRtn.GetValue("status").ToString(); + if (status != "1") + { + ///不等于1 返回结果错误 + throw Oops.Bah(jobjRtn.GetValue("message").ToString()); + } + else + { + var jarrData = jobjRtn.GetValue("message") as JArray; + foreach (JObject item in jarrData) + { + //订舱号(单号) + var mb = item.GetStringValue("bookingno"); //提单号 + if (mb==order.MBLNO) { + + var noApply= item.GetIntValue("noApply"); //未申请 + var applyNoPrint = item.GetIntValue("applyNoPrint"); //已申请未打印 + var print = item.GetIntValue("print"); //已打印 + await _repextendstate.InsertAsync(new BookingExtendState + { + bookingId=Id, + noApply= noApply, + applyNoPrint= applyNoPrint, + print= print + }); + } + } + } + + + + } + } + } + + + #endregion } }