From 37c64a2effc86a824dadc29eec86112c08c7e699 Mon Sep 17 00:00:00 2001 From: wanghaomei Date: Mon, 14 Aug 2023 09:48:44 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8D=B7=E4=B8=B0=E4=B8=8B=E8=B4=A7?= =?UTF-8?q?=E7=BA=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EDI/XiahuozhiHelpler.cs | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/Myshipping.Application/EDI/XiahuozhiHelpler.cs b/Myshipping.Application/EDI/XiahuozhiHelpler.cs index 50e3dd8d..9553a14c 100644 --- a/Myshipping.Application/EDI/XiahuozhiHelpler.cs +++ b/Myshipping.Application/EDI/XiahuozhiHelpler.cs @@ -124,6 +124,16 @@ namespace Myshipping.Application.EDI { return new KeyValuePair(false, "中创站代码未配置"); } + + + //针对和川这种公共库不同的船司代码,需要匹配转换为当前的船司代码才能逻辑判断 + var hlcCode = "HLC"; + var mapCodeHLC = mappingCarrierLetterYard.FirstOrDefault(x => x.MapCode == "HLC"); + if (mapCodeHLC != null) + { + hlcCode = mapCodeHLC.Code; + } + #region 港联捷场站 if (order.YARDID == yardCodeGLJ.Value) @@ -162,14 +172,6 @@ namespace Myshipping.Application.EDI StringBuilder sbData = new StringBuilder(); sbData.AppendLine($"01:{order.VESSEL}:{order.VOYNO}"); //船名 航次 - //针对和川这种公共库不同的船司代码,需要匹配转换为当前的船司代码才能逻辑判断 - var hlcCode = "HLC"; - var mapCodeHLC = mappingCarrierLetterYard.FirstOrDefault(x => x.MapCode == "HLC"); - if (mapCodeHLC != null) - { - hlcCode = mapCodeHLC.Code; - } - // 12:提单号:中转港:目的港:货代代码:船公司:HPL参考号:特殊说明 sbData.AppendLine($"12:{order.MBLNO}:{order.TRANSPORTID}:{order.PORTDISCHARGEID}:{paraXHZ.ItemCode}:{GetCarrierEDICode(order.CARRIERID, "XHZ_GLJ")}:{(order.CARRIERID == hlcCode ? order.CUSTNO : "")}:{ExchangeStr(order.YARDREMARK)}"); //主提单 中转港代码 目的港代码 货代代码 船公司 HPL参考号 备注 //2021-8-17,报文中不能体现英文字符①【:】②【,】,以空格代替 @@ -511,7 +513,7 @@ namespace Myshipping.Application.EDI listJoinStr.Add("00:IFCSUM:BK:" + filerole + ":" + ftpset.SENDCODE + ":" + ftpset.RECEIVECODE + ":" + DateTime.Now.ToString("yyyyMMddHHmm") + ":2.1'"); //提单号 - listJoinStr.Add("02:" + order.Id.ToString() + ":" + order.MBLNO.Trim() + ":" + order.SERVICE + ":" + ftpset.SENDNAME + ":" + ftpset.RECEIVECODE + "::::::::::" + order.CONTRACTNO + "::'"); + listJoinStr.Add("02:" + order.Id.ToString() + ":" + order.MBLNO.Trim() + ":" + order.SERVICE + ":" + ftpset.SENDNAME + ":" + ftpset.RECEIVECODE + "::::::::::" + order.CONTRACTNO + ":" + (order.CARRIERID == hlcCode ? order.CUSTNO : "") + ":'"); //提单地址 var ISSUETYPE = ""; @@ -757,15 +759,6 @@ namespace Myshipping.Application.EDI StringBuilder sbData = new StringBuilder(); sbData.AppendLine($"01:{order.VESSEL}:{order.VOYNO}"); //船名 航次 - //针对和川这种公共库不同的船司代码,需要匹配转换为当前的船司代码才能逻辑判断 - var hlcCode = "HLC"; - var mapCodeHLC = mappingCarrierLetterYard.FirstOrDefault(x => x.MapCode == "HLC"); - if (mapCodeHLC != null) - { - hlcCode = mapCodeHLC.Code; - } - - sbData.AppendLine($"12:{order.MBLNO}:{order.TRANSPORTID}:{order.PORTDISCHARGEID}:{paraXHZ.ItemCode}:{GetCarrierEDICode(order.CARRIERID, "XHZ_GLX")}:{(order.CARRIERID == hlcCode ? order.CUSTNO : "")}:{order.PORTDISCHARGE}"); //主提单 中转港代码 目的港代码 货代代码 船公司 HPL参考号 备注 var despStr = ExchangeStr(order.DESCRIPTION.Replace(":", " ").Replace(",", " ")).Replace("\r\n", " ").Replace("\n", " "); if (despStr.Length > 100) From feb62d80dc4345d09ccc8394d7ecc0100056e080 Mon Sep 17 00:00:00 2001 From: jianghaiqing Date: Mon, 14 Aug 2023 09:50:19 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B4=BE=E8=BD=A6?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=8D=95=E7=A5=A8=E6=92=A4=E9=94=80?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/BookingTruck/BookingTruckService.cs | 13 +++++++++++-- .../BookingTruck/Interface/IBookingTruckService.cs | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs index 01531eaf..c060f610 100644 --- a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs +++ b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs @@ -980,9 +980,10 @@ namespace Myshipping.Application /// 撤销派车 /// /// 派车主键 + /// 是否撤销后自动删除 true-删除 false-不删除 /// 返回回执 [HttpGet("/BookingTruck/Cancel")] - public async Task Cancel(long id) + public async Task Cancel([FromQuery]long id, [FromQuery] bool isAfterDelete = false) { /* 撤销派车流程 @@ -1090,8 +1091,9 @@ namespace Myshipping.Application /// /// 派车主键 /// 批次号 + /// 是否撤销后自动删除 true-删除 false-不删除 /// 返回回执 - private async Task InnerCancel(long id, string batchNo) + private async Task InnerCancel(long id, string batchNo,bool isAfterDelete = false) { /* 撤销派车流程 @@ -1187,6 +1189,12 @@ namespace Myshipping.Application model.UpdatedUserName = UserManager.Name; model.TaskNo = null; + //是否删除 + if (isAfterDelete) + { + model.IsDeleted = true; + } + await _bookingTruckRepository.AsUpdateable(model).UpdateColumns(it => new { it.Status, @@ -1196,6 +1204,7 @@ namespace Myshipping.Application it.TaskNo }).ExecuteCommandAsync(); + result.succ = true; result.msg = "撤销成功"; diff --git a/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs index 0691bcb7..17d71972 100644 --- a/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs +++ b/Myshipping.Application/Service/BookingTruck/Interface/IBookingTruckService.cs @@ -81,8 +81,9 @@ namespace Myshipping.Application /// 撤销派车 /// /// 派车主键 + /// 是否撤销后自动删除 true-删除 false-不删除 /// 返回回执 - Task Cancel(long id); + Task Cancel(long id, bool isAfterDelete = false); /// /// 批量撤销派车 From 58133392831b43c7cf7846f27c39bab94e0df6f3 Mon Sep 17 00:00:00 2001 From: jianghaiqing Date: Mon, 14 Aug 2023 10:08:56 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E8=88=B1?= =?UTF-8?q?=E6=B4=BE=E8=BD=A6=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=B4=BE=E8=BD=A6=E8=87=AA=E5=8A=A8=E8=B0=83=E5=8F=96=E4=B8=8A?= =?UTF-8?q?=E4=B8=80=E7=A5=A8=E9=9D=9E=E4=BD=9C=E5=BA=9F=E7=9A=84=E6=B4=BE?= =?UTF-8?q?=E8=BD=A6=E6=95=B0=E6=8D=AE=EF=BC=88=E5=AE=9E=E9=99=85=E6=AF=9B?= =?UTF-8?q?=E9=87=8D=E3=80=81=E5=BC=80=E7=A5=A8=E6=96=B9=E5=BC=8F=E3=80=81?= =?UTF-8?q?=E6=8F=90=E8=B4=A7=E5=B7=A5=E5=8E=82=E3=80=81=E5=B7=A5=E5=8E=82?= =?UTF-8?q?=E8=81=94=E7=B3=BB=E4=BA=BA+=E7=94=B5=E8=AF=9D=E3=80=81?= =?UTF-8?q?=E5=B7=A5=E5=8E=82=E5=9C=B0=E5=9D=80=E3=80=81=E6=B4=BE=E8=BD=A6?= =?UTF-8?q?=E5=8D=95=E5=A4=87=E6=B3=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BookingTruck/BookingTruckService.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs index c060f610..97fab960 100644 --- a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs +++ b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs @@ -627,6 +627,37 @@ namespace Myshipping.Application }); } + /* + 2023-08-14 这里按照调度要求,如果有历史单据,新增时需要读取前一票的部分信息 + (实际毛重、开票方式、提货工厂、工厂联系人+电话、工厂地址、派车单备注) + */ + + var lastBookingTruckModel = _bookingTruckRepository.AsQueryable() + .Where(a => a.BookingId == bookingId && !a.IsDeleted) + .OrderBy(a => a.CreatedTime).First(); + + if (lastBookingTruckModel != null) + { + if (lastBookingTruckModel.KGS.HasValue) + model.KGS = lastBookingTruckModel.KGS; + + if(!string.IsNullOrWhiteSpace(lastBookingTruckModel.PayMethod)) + model.PayMethod = lastBookingTruckModel.PayMethod; + + if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.PayMethodName)) + model.PayMethodName = lastBookingTruckModel.PayMethodName; + + if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.Remark)) + model.Remark = lastBookingTruckModel.Remark; + + if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.FactoryContact)) + model.FactoryContact = lastBookingTruckModel.FactoryContact; + + if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.FactoryAddr)) + model.FactoryAddr = lastBookingTruckModel.FactoryAddr; + } + + return model; } From 4c226cd6b2bfff4b65b70832197d160a4f0b76f5 Mon Sep 17 00:00:00 2001 From: jianghaiqing Date: Mon, 14 Aug 2023 10:12:11 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B4=BE=E8=BD=A6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E5=B7=A5=E5=8E=82=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/BookingTruck/BookingTruckService.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs index 97fab960..63a4f9b2 100644 --- a/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs +++ b/Myshipping.Application/Service/BookingTruck/BookingTruckService.cs @@ -655,6 +655,9 @@ namespace Myshipping.Application if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.FactoryAddr)) model.FactoryAddr = lastBookingTruckModel.FactoryAddr; + + if (!string.IsNullOrWhiteSpace(lastBookingTruckModel.FactoryName)) + model.FactoryName = lastBookingTruckModel.FactoryName; } From beaf6636b21b1ac59e0b2c407825dcb572020476 Mon Sep 17 00:00:00 2001 From: wanghaomei Date: Mon, 14 Aug 2023 11:06:35 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...YardImport.cs => BookingAutoYardImport.cs} | 18 ++++++- .../BookingOrder/BookingOrderService.cs | 47 +++++++++++-------- 2 files changed, 45 insertions(+), 20 deletions(-) rename Myshipping.Application/Entity/{Booking_AutoYardImport.cs => BookingAutoYardImport.cs} (75%) diff --git a/Myshipping.Application/Entity/Booking_AutoYardImport.cs b/Myshipping.Application/Entity/BookingAutoYardImport.cs similarity index 75% rename from Myshipping.Application/Entity/Booking_AutoYardImport.cs rename to Myshipping.Application/Entity/BookingAutoYardImport.cs index df376573..57b1bc3b 100644 --- a/Myshipping.Application/Entity/Booking_AutoYardImport.cs +++ b/Myshipping.Application/Entity/BookingAutoYardImport.cs @@ -13,7 +13,7 @@ namespace Myshipping.Application.Entity /// [SugarTable("booking_auto_yard_import")] [Description("场站自动引入信息")] - public class Booking_AutoYardImport + public class BookingAutoYardImport { /// /// 主键 @@ -40,5 +40,21 @@ namespace Myshipping.Application.Entity /// 比对数据时填写的箱信息JSON /// public string CtnJson { get; set; } + + /// + /// 只读标志 + /// + public bool IsRead { get; set; } + + /// + /// 读取时间 + /// + public DateTime? ReadTime { get; set; } + + /// + /// 读取人 + /// + public string ReadUser { get; set; } + } } diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 72b7cb17..ab6d44fc 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -129,7 +129,7 @@ namespace Myshipping.Application private readonly IBookingGoodsStatusConfigService _GoodsConfig; private readonly SqlSugarRepository _repLineOpMgrConfig; private readonly SqlSugarRepository _repSysEmp; - private readonly SqlSugarRepository _repAutoYard; + private readonly SqlSugarRepository _repAutoYard; private readonly SqlSugarRepository _repextendstate; @@ -156,7 +156,7 @@ namespace Myshipping.Application SqlSugarRepository excelrep, SqlSugarRepository repUserMail, SqlSugarRepository goodsStatus, SqlSugarRepository goodsStatusConfig, SqlSugarRepository repTenant, SqlSugarRepository repBookingStatus, SqlSugarRepository bookingEDIExt, SqlSugarRepository serviceItem, SqlSugarRepository paraContractNoInfoRepository, IHttpContextAccessor httpContextAccessor, IBookingGoodsStatusConfigService GoodsConfig, SqlSugarRepository djyWebsiteAccountConfigRepository, - ISysOrgService orgService, SqlSugarRepository repLineOpMgrConfig, SqlSugarRepository repSysEmp, SqlSugarRepository repAutoYard, + ISysOrgService orgService, SqlSugarRepository repLineOpMgrConfig, SqlSugarRepository repSysEmp, SqlSugarRepository repAutoYard, IServiceWorkFlowManageService serviceWorkFlowManageService) { this._logger = logger; @@ -453,7 +453,7 @@ namespace Myshipping.Application var itgoodsStatus = new List(); var itconfigs = new List(); - List statusList = new List(); + List statusList = new List(); if (App.Configuration["ServiceStatusOpenAuto"] == "1") { QueryServiceProjectWithStatusBatch batchQuery = new QueryServiceProjectWithStatusBatch @@ -520,7 +520,7 @@ namespace Myshipping.Application var statuslogId = statusloglist.Select(x => x.Id).ToList(); //运踪状态 var statuslogdetaillist = _statuslogdetail.AsQueryable().Where(x => statuslogId.Contains(x.PId)).ToList(); - + var BookingStatusList = _repBookingStatus.AsQueryable().Filter(null, true).Where(x => bookingidlist.Contains((long)x.BookingId)).ToList(); var bookingremarkList = _bookingremark.AsQueryable().Filter(null, true).Where(x => bookingidlist.Contains(x.PId)).ToList(); @@ -596,9 +596,9 @@ namespace Myshipping.Application { var currStatusList = statusList.Where(a => long.Parse(a.BusiId) == item.Id).ToList(); - if(currStatusList.Count > 0) + if (currStatusList.Count > 0) { - if(currStatusList.Any(a=>a.StatusSKUCode.Equals("YFVGM",StringComparison.OrdinalIgnoreCase) && a.IsYield)) + if (currStatusList.Any(a => a.StatusSKUCode.Equals("YFVGM", StringComparison.OrdinalIgnoreCase) && a.IsYield)) { item.IsVGM = currStatusList.FirstOrDefault(a => a.StatusSKUCode.Equals("YFVGM", StringComparison.OrdinalIgnoreCase) && a.IsYield).ActDate.Value; @@ -616,15 +616,15 @@ namespace Myshipping.Application item.GoodsStatusList = currStatusList.OrderBy(a => a.CalcSortNo) .Select(a => new GoodsStatusList - { + { FinishTime = a.ActDate, IsLast = a.IsEnd, Sort = a.ActSortNo, StatusName = a.ShowName, SystemCode = a.StatusSKUCode, - ExtData = !string.IsNullOrWhiteSpace(a.ActVal)? a.ActVal:string.Empty, - Remark = !string.IsNullOrWhiteSpace(a.ActRemark)? a.ActRemark:string.Empty - }).ToList(); + ExtData = !string.IsNullOrWhiteSpace(a.ActVal) ? a.ActVal : string.Empty, + Remark = !string.IsNullOrWhiteSpace(a.ActRemark) ? a.ActRemark : string.Empty + }).ToList(); } else { @@ -906,9 +906,9 @@ namespace Myshipping.Application var mlist = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync(); var rightlist = await _right.GetDataScopeList(MenuConst.MenuBookingOrder, true); - _logger.LogInformation("保存权限范围:"+rightlist.ToJsonString()); + _logger.LogInformation("保存权限范围:" + rightlist.ToJsonString()); //除现有配置权限外 操作和本人具有编辑权限 - if (rightlist!=null&&!( + if (rightlist != null && !( mlist.OPID == UserManager.UserId.ToString() || mlist.OP == UserManager.Name.ToString() || mlist.DOCID == UserManager.UserId.ToString() || mlist.DOC == UserManager.Name.ToString() || mlist.CUSTSERVICEID == UserManager.UserId.ToString() || mlist.CUSTSERVICE == UserManager.Name.ToString() || @@ -7928,12 +7928,15 @@ HLCUTA12307DPXJ3 以这票为例 6个柜 } _logger.LogInformation($"{bookId}({order.MBLNO})的箱封号自动引入完成"); - } - - - //写入提示 - await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson()); + //写入提示 + await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson()); + } + else + { + //写入提示 + await SaveAutoYardData(bookId, true, $"已自动引入", ctns.ToJson(), rtn.ToJson(), read: true); + } } } @@ -7942,17 +7945,23 @@ HLCUTA12307DPXJ3 以这票为例 6个柜 /// /// [NonAction] - private async Task SaveAutoYardData(long bookId, bool success, string content, string ctnJson, string yardJson) + private async Task SaveAutoYardData(long bookId, bool success, string content, string ctnJson, string yardJson, bool read = false) { await _repAutoYard.DeleteAsync(x => x.Id == bookId); //写入提示 - var autoYard = new Booking_AutoYardImport(); + var autoYard = new BookingAutoYardImport(); autoYard.Id = bookId; autoYard.Status = success ? "已导入" : "未导入"; autoYard.Content = content; autoYard.CtnJson = ctnJson; autoYard.YardJson = yardJson; + if (read) //未开启自动写入的用户,自动已读 + { + autoYard.IsRead = true; + autoYard.ReadTime = DateTime.Now; + autoYard.ReadUser = "系统"; + } await _repAutoYard.InsertAsync(autoYard); }