From 71bfc3930c44f58ccb3b7ebbfd115cbaea2ac852 Mon Sep 17 00:00:00 2001 From: wet <1034391973@qq.com> Date: Wed, 5 Jul 2023 15:58:12 +0800 Subject: [PATCH] 1 --- .../BookingOrder/BookingOrderService.cs | 155 +++++++----------- .../Service/User/SysDataUserMenu.cs | 30 ++-- 2 files changed, 77 insertions(+), 108 deletions(-) diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs index 7fd38530..bc86d7e5 100644 --- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs +++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs @@ -889,28 +889,8 @@ namespace Myshipping.Application if (Config != null) { _goodsStatus.Delete(x => x.bookingId == Id && x.ConfigId == Config.Id); - var ConfigId = _goodsStatus.Where(x => x.FinishTime.HasValue && x.bookingId == Id).OrderByDescending(x => x.FinishTime).Select(x => x.ConfigId).First(); - string BSSTATUSNAME = String.Empty; - if (ConfigId == null) - { - main.BSSTATUSNAME = ""; - } - else - { - BSSTATUSNAME = config.Where(x => x.Id == ConfigId).Select(x => x.StatusName).FirstOrDefault(); - main.BSSTATUSNAME = BSSTATUSNAME == null ? "" : BSSTATUSNAME; - } - await _rep.AsUpdateable(main).IgnoreColumns(it => new - { - it.ParentId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName, - it.TenantName, - it.IsDeleted, - it.BOOKINGNO - }).ExecuteCommandAsync(); + //更新货物状态 + await SetBookingOrderGoodsStatus(Id); } } if (string.IsNullOrEmpty(entity.MBLNO)) @@ -919,28 +899,8 @@ namespace Myshipping.Application if (Config != null) { _goodsStatus.Delete(x => x.bookingId == Id && x.ConfigId == Config.Id); - var ConfigId = _goodsStatus.Where(x => x.FinishTime.HasValue && x.bookingId == Id).OrderByDescending(x => x.FinishTime).Select(x => x.ConfigId).First(); - string BSSTATUSNAME = String.Empty; - if (ConfigId == null) - { - main.BSSTATUSNAME = ""; - } - else - { - BSSTATUSNAME = config.Where(x => x.Id == ConfigId).Select(x => x.StatusName).FirstOrDefault(); - main.BSSTATUSNAME = BSSTATUSNAME == null ? "" : BSSTATUSNAME; - } - await _rep.AsUpdateable(main).IgnoreColumns(it => new - { - it.ParentId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName, - it.TenantName, - it.IsDeleted, - it.BOOKINGNO - }).ExecuteCommandAsync(); + //更新货物状态 + await SetBookingOrderGoodsStatus(Id); } } #endregion @@ -1565,14 +1525,12 @@ namespace Myshipping.Application entity.FinishTime = item.FinishTime; entity.FinishUserId = UserManager.UserId; } - await _goodsStatus.InsertAsync(entity); - } - - - + //更新货物状态 + await SetBookingOrderGoodsStatus((long)input.BookingId); + var order = _rep.Where(x => x.Id == input.BookingId).First(); var userid = order.CreatedUserId; if (userid != null) @@ -1593,8 +1551,8 @@ namespace Myshipping.Application ExtData = goods.ExtData, Remark = goods.Remark, Sort = config.Sort - }).ToListAsync(); + //配置中所有的货物状态 var config = _goodsStatusConfig.AsQueryable().Where(config => config.CreatedUserId == userid).ToList().DistinctBy(x => x.StatusName).Select(config => new GoodsStatusQuery { @@ -1615,38 +1573,13 @@ namespace Myshipping.Application { config.RemoveAll(x => x.ConfigId == item.ConfigId); } - var t = list.Union(config).OrderBy(x => x.Sort).DistinctBy(x => x.StatusName).ToList(); - if (t != null) - { - var StatusName = t.Where(x => x.FinishTime.HasValue).OrderByDescending(x => x.FinishTime).Select(x => x.StatusName).FirstOrDefault(); - if (StatusName == null) - { - StatusName = ""; - } - - order.BSSTATUSNAME = StatusName; - - await _rep.AsUpdateable(order).IgnoreColumns(it => new - { - it.ParentId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName, - it.TenantName, - it.IsDeleted, - it.BOOKINGNO - }).ExecuteCommandAsync(); - - } - - - - await SendBookingOrder(new long[] { order.Id }); + return t; } + //推送东胜 + await SendBookingOrder(new long[] { (long)input.BookingId }); return null; } @@ -8039,11 +7972,12 @@ namespace Myshipping.Application } /// - /// 设置货物状态完成,并推送东胜 + /// 设置货物状态完成 /// /// /// /// + public async Task SetGoodsStatus(string code, long bookingId) { @@ -8062,23 +7996,60 @@ namespace Myshipping.Application gs.FinishUserId = UserManager.UserId; await _goodsStatus.InsertAsync(gs); - var order = _rep.AsQueryable().Filter(null, true).First(x => x.Id == bookingId); - order.BSSTATUSNAME = gsCfg.StatusName; - await _rep.AsUpdateable(order).IgnoreColumns(it => new - { - it.ParentId, - it.TenantId, - it.CreatedTime, - it.CreatedUserId, - it.CreatedUserName, - it.TenantName, - it.IsDeleted, - it.BOOKINGNO - }).ExecuteCommandAsync(); + _logger.LogInformation($"发送{code}后自动完成货物状态,Id:{bookingId},操作人:{UserManager.Name}"); + //更新货物状态 + await SetBookingOrderGoodsStatus(bookingId); + } + } + } + /// + /// 更新主单货物状态 + /// + /// + /// + public async Task SetBookingOrderGoodsStatus(long bookingId) + { + var order = _rep.AsQueryable().Filter(null, true).First(x => x.Id == bookingId); + var createUserid = order.CreatedUserId; + //获取当前用户已经录入的货物状态 + var list = await _goodsStatus.AsQueryable().LeftJoin(_goodsStatusConfig.AsQueryable(), + (goods, config) => config.Id == goods.ConfigId).Where((goods, config) => config.CreatedUserId == createUserid && goods.bookingId == bookingId). + OrderBy((goods, config) => config.Sort). + Select((goods, config) => new GoodsStatusQuery + { + ConfigId = config.Id, + SystemCode = config.SystemCode, + StatusName = config.StatusName, + FinishTime = goods.FinishTime, + FinishUser = goods.FinishUser, + FinishUserId = goods.FinishUserId, + IsPublic = goods.IsPublic, + ExtData = goods.ExtData, + Remark = goods.Remark, + Sort = config.Sort + }).ToListAsync(); + if (list != null) + { + var StatusName = list.Where(x => x.FinishTime.HasValue).OrderByDescending(x => x.Sort).Select(x => x.StatusName).FirstOrDefault(); + if (StatusName == null) + { + StatusName = ""; } + order.BSSTATUSNAME = StatusName; + await _rep.AsUpdateable(order).IgnoreColumns(it => new + { + it.ParentId, + it.TenantId, + it.CreatedTime, + it.CreatedUserId, + it.CreatedUserName, + it.TenantName, + it.IsDeleted, + it.BOOKINGNO + }).ExecuteCommandAsync(); } } #endregion diff --git a/Myshipping.Core/Service/User/SysDataUserMenu.cs b/Myshipping.Core/Service/User/SysDataUserMenu.cs index 284fcc72..ed1a350f 100644 --- a/Myshipping.Core/Service/User/SysDataUserMenu.cs +++ b/Myshipping.Core/Service/User/SysDataUserMenu.cs @@ -123,7 +123,8 @@ public class SysDataUserMenuService : ISysDataUserMenu, IDynamicApiController, I throw Oops.Bah("请上传正确数据!"); } - if (input.childrens!=null&& input.childrens.Count()>0) { + if (input.childrens!=null&& input.childrens.Count()>0) + { await _sysUserDataScopeRep.DeleteAsync(x => x.SysUserId == input.UserId); var list = new List(); @@ -141,11 +142,8 @@ public class SysDataUserMenuService : ISysDataUserMenu, IDynamicApiController, I var userdatalist = _rep.AsQueryable().ToListAsync(); _sysCache.Set(CommonConst.CACHE_KEY_USERDATASCOPE, userdatalist); - } - - } catch (System.Exception) { @@ -162,18 +160,18 @@ public class SysDataUserMenuService : ISysDataUserMenu, IDynamicApiController, I List list = new List(); List datascope = new List(); - //if (_sysCache.Exists(CommonConst.CACHE_KEY_USERDATASCOPE)) - //{ - // list = await _sysCache.GetAsync>(CommonConst.CACHE_KEY_USERDATASCOPE); - - //} - //else - //{ - // list = await _rep.AsQueryable().ToListAsync(); - // _sysCache.Set(CommonConst.CACHE_KEY_USERDATASCOPE, list); - //} - list = await _rep.AsQueryable().ToListAsync(); - _sysCache.Set(CommonConst.CACHE_KEY_USERDATASCOPE, list); + if (_sysCache.Exists(CommonConst.CACHE_KEY_USERDATASCOPE)) + { + list = await _sysCache.GetAsync>(CommonConst.CACHE_KEY_USERDATASCOPE); + + } + else + { + list = await _rep.AsQueryable().ToListAsync(); + _sysCache.Set(CommonConst.CACHE_KEY_USERDATASCOPE, list); + } + //list = await _rep.AsQueryable().ToListAsync(); + //_sysCache.Set(CommonConst.CACHE_KEY_USERDATASCOPE, list); DataScopeType _dataScopeType = list.Where(x => x.SysMenuId == menuid && x.SysUserId == UserManager.UserId).Select(x => x.DataScopeType).FirstOrDefault(); if (_dataScopeType == DataScopeType.ALL) {