optimize
wet 2 years ago
parent 97384df29b
commit 842bd7427c

@ -1289,10 +1289,11 @@ namespace Myshipping.Application
var userid = _rep.Where(x => x.Id == bookingId).Select(x => x.CreatedUserId).First(); var userid = _rep.Where(x => x.Id == bookingId).Select(x => x.CreatedUserId).First();
if (userid != null) if (userid != null)
{ {
var list= await _goodsStatusConfig.AsQueryable().LeftJoin(_goodsStatus.AsQueryable(), (config, goods) => config.Id == goods.ConfigId).Where((config, goods) => config.CreatedUserId == userid). var list= await _goodsStatus.AsQueryable().LeftJoin(_goodsStatusConfig.AsQueryable(),
OrderBy((config, goods) => config.Sort). ( goods,config) => config.Id == goods.ConfigId).Where((goods,config ) => config.CreatedUserId == userid&& goods.bookingId==bookingId).
Select((config, goods) => new GoodsStatusQuery OrderBy((goods, config) => config.Sort).
Select((goods, config) => new GoodsStatusQuery
{ {
ConfigId = config.Id, ConfigId = config.Id,
SystemCode = config.SystemCode, SystemCode = config.SystemCode,
@ -1306,7 +1307,27 @@ namespace Myshipping.Application
}).ToListAsync(); }).ToListAsync();
return list.DistinctBy(x => x.ConfigId); var config = _goodsStatusConfig.AsQueryable().Where(config => config.CreatedUserId == userid).ToList().Select(config => new GoodsStatusQuery
{
ConfigId = config.Id,
SystemCode = config.SystemCode,
StatusName = config.StatusName,
FinishTime = null,
FinishUser = null,
FinishUserId = null,
IsPublic = false,
ExtData = null,
Remark = null
}).ToList();
foreach (var item in list)
{
config.RemoveAll(x => x.ConfigId==item.ConfigId);
}
return list.Union<dynamic>(config);
} }
return null; return null;
@ -4963,25 +4984,48 @@ namespace Myshipping.Application
if (userid != null) if (userid != null)
{ {
_GoodsConfig.InitGoodsStatusConfig(); _GoodsConfig.InitGoodsStatusConfig();
List<GoodsStatusQuery> Goodslist = new List<GoodsStatusQuery>();
Goodslist = await _goodsStatusConfig.AsQueryable().LeftJoin(_goodsStatus.AsQueryable(), (config, goods) => config.Id == goods.ConfigId).Where((config, goods) => config.CreatedUserId == userid).
OrderBy((config, goods) => config.Sort).
Select((config, goods) => 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
}).ToListAsync();
var GoodsStatus = await _goodsStatus.AsQueryable().LeftJoin(_goodsStatusConfig.AsQueryable(),
(goods, config) => config.Id == goods.ConfigId).Where((goods, config) => config.CreatedUserId == userid && 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
}).ToListAsync();
var config = _goodsStatusConfig.AsQueryable().Where(config => config.CreatedUserId == userid).ToList().Select(config => new GoodsStatusQuery
{
ConfigId = config.Id,
SystemCode = config.SystemCode,
StatusName = config.StatusName,
FinishTime = null,
FinishUser = null,
FinishUserId = null,
IsPublic = false,
ExtData = null,
Remark = null
}).ToList();
foreach (var item in GoodsStatus)
{
config.RemoveAll(x => x.ConfigId == item.ConfigId);
}
allData.GoodsStatus = Goodslist; allData.GoodsStatus= GoodsStatus.Union<GoodsStatusQuery>(config).ToList();
} }

@ -56,7 +56,7 @@ namespace Myshipping.Application.Service.BookingOrder.Dto
public class GoodsStatusQuery public class GoodsStatusQuery
{ {
/// <summary> /// <summary>
/// 货物状态配置ID 雪花id /// 货物状态配置ID 雪花id

Loading…
Cancel
Save