diff --git a/BBWYB.Client/App.xaml.cs b/BBWYB.Client/App.xaml.cs index 0548741..826b4a8 100644 --- a/BBWYB.Client/App.xaml.cs +++ b/BBWYB.Client/App.xaml.cs @@ -35,7 +35,7 @@ namespace BBWYB.Client //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNTM1MzMwMzI4ODkyMTQ5NzYwIiwidGVhbUlkIjoiMTUxNjk3NDI1MDU0MjUwMTg4OCIsInNvblRlYW1JZHMiOiIxNDM2Mjg4NTAwMjM1MjQzNTIwIiwiZXhwIjoxNzI2MzAwNjY0fQ.hPSbgJEuTt0MLy_7YkSJX4rRG3drJAfso-5IS8ZlOkY"; //议价2组 - userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMzk1NzA4MjA4NjU1MzcyMjg4IiwidGVhbUlkIjoiMTc2MDk3MTY4ODk2NDUyNjA4MCIsInNvblRlYW1JZHMiOiIiLCJleHAiOjE3NDIxOTYxMDF9.pt1onwf4f4QKyuT1kFWtcRw8LZo9s64CmHqrdI4fD5k"; + userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMzk1NzA4MjA4NjU1MzcyMjg4IiwidGVhbUlkIjoiMTYyMDM0MjAxNDcwNjk3ODgxNiIsInNvblRlYW1JZHMiOiIxNzYwOTcxNjg4OTY0NTI2MDgwIiwiZXhwIjoxNzQyNjMwODk0fQ.Vtq2MU1Qd9Oo192udkA01ZAwiQgQxj2m-pkayGZ1d3I"; //拳探店铺 陈默 //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjI0OTUxNjgzNTc2NTAwMjI0IiwidGVhbUlkIjoiMTYyMDM0MjAxNDcwNjk3ODgxNiIsInNvblRlYW1JZHMiOiIxNjIwMzQyMDE0NzA2OTc4ODE2LDE2MjAzNDM4Mjc0NzI1ODQ3MDQsMTYyMDM0NDAzMzczNTg3MjUxMiwxNjIwMzQ0MDkyODI5NDIxNTY4LDE2MjAzNDQxNDA4NTAwMDgwNjQiLCJleHAiOjE3MjA3NjQzMjV9.Q8fiKXCHgvzbm7NDEre-MeoSju_AmC6Ae6eDY22rUAw"; diff --git a/BBWYB.Client/GlobalContext.cs b/BBWYB.Client/GlobalContext.cs index a883c5d..e35f704 100644 --- a/BBWYB.Client/GlobalContext.cs +++ b/BBWYB.Client/GlobalContext.cs @@ -20,7 +20,7 @@ namespace BBWYB.Client { public GlobalContext() { - BBWYBApiVersion = "10040"; + BBWYBApiVersion = "10041"; } private User user; diff --git a/BBWYB.Client/ViewModels/WebVM.cs b/BBWYB.Client/ViewModels/WebVM.cs index 9f3b3d5..a6eeee8 100644 --- a/BBWYB.Client/ViewModels/WebVM.cs +++ b/BBWYB.Client/ViewModels/WebVM.cs @@ -17,6 +17,7 @@ namespace BBWYB.Client.ViewModels private MdsApiService mdsApiService; private MenuModel selectedMenuModel; private bool isLoading; + private IList managerDepartment; ShopService shopService; public GlobalContext GlobalContext { get; set; } public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } } @@ -28,6 +29,7 @@ namespace BBWYB.Client.ViewModels this.mdsApiService = mdsApiService; this.GlobalContext = globalContext; this.shopService = shopService; + this.managerDepartment = new List() { "董事办", "财务部", "技术部", "总经办" }; Task.Factory.StartNew(Login); } @@ -47,36 +49,49 @@ namespace BBWYB.Client.ViewModels if (mdsUserResponse.Data.SonDepartmentList != null && mdsUserResponse.Data.SonDepartmentList.Count > 0) GlobalContext.User.SonDepartmentNames = string.Join(',', mdsUserResponse.Data.SonDepartmentList.Select(sd => sd.DepartmentName)); - var res = shopService.GetDepartmentList(); - if (!res.Success) - throw new Exception(res.Msg); - var allDepartmentList = res.Data.Map>(); + IList departmentList = null; - var shopList = new List(); - foreach (var d in allDepartmentList) - shopList.AddRange(d.ShopList); - GlobalContext.User.ShopList = shopList; + if (managerDepartment.Contains(GlobalContext.User.TeamName) || + managerDepartment.Any(m => GlobalContext.User.SonDepartmentNames.Contains(m))) + { + var res = shopService.GetDepartmentList(); + if (!res.Success) + throw new Exception(res.Msg); + var allDepartmentList = res.Data.Map>(); - IList departmentList = null; + var shopList = new List(); + foreach (var d in allDepartmentList) + shopList.AddRange(d.ShopList); + GlobalContext.User.ShopList = shopList; + departmentList = allDepartmentList.Where(d => d.Name.Contains("供应链")).ToList(); + } + else + { + var response = mdsApiService.GetShopDetailList(); + if (!response.Success) + throw new Exception(response.Msg); + departmentList = response.Data.Where(d => d.Name.Contains("供应链")).ToList(); + } - //var response = mdsApiService.GetShopDetailList(); - //if (!response.Success) - // throw new Exception(response.Msg); - departmentList = allDepartmentList.Where(d => d.Name.Contains("供应链")).ToList(); if (departmentList.Count == 0) throw new Exception("缺少有效的部门数据"); - var shopIds = new List(); - foreach (var d in departmentList) - { - if (d.ShopList != null && d.ShopList.Count > 0) - { - foreach (var s in d.ShopList) - shopIds.Add(s.ShopId.ToString()); - } - } + + //departmentList = allDepartmentList.Where(d => d.Name.Contains("供应链")).ToList(); + //if (departmentList.Count == 0) + // throw new Exception("缺少有效的部门数据"); + + //var shopIds = new List(); + //foreach (var d in departmentList) + //{ + // if (d.ShopList != null && d.ShopList.Count > 0) + // { + // foreach (var s in d.ShopList) + // shopIds.Add(s.ShopId.ToString()); + // } + //} GlobalContext.User.DepartmentList = departmentList; diff --git a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs index 6ad788f..f43805f 100644 --- a/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs +++ b/BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs @@ -223,7 +223,7 @@ namespace BBWYB.Server.Business EditPurchaseSchemeV2(batchCURDSchemeRequest, uInfo); } - public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest, (User user, Userdepartment department, bool isBargainTeam) uInfo) + public void EditPurchaseSchemeV2(BatchCURDSchemeRequest batchCURDSchemeRequest, (User user, Userdepartment mainTeam, bool isBargainTeam, Userdepartment? bargainTeam) uInfo) { List dbSchemeGroupList = null; @@ -367,7 +367,7 @@ namespace BBWYB.Server.Business BelongType = p.BelongType }); var noCurrentBargainTeamList = dbPurchaserList.Where(dp => !string.IsNullOrEmpty(dp.BelongBargainTeamId) && - dp.BelongBargainTeamId != uInfo.user.DepartmentId).ToList(); + dp.BelongBargainTeamId != uInfo.bargainTeam.Id).ToList(); if (noCurrentBargainTeamList.Count() > 0) throw new BusinessException($"不能包含被其他议价组使用的采购商 [{string.Join(",", noCurrentBargainTeamList.Select(x => x.Name))}]"); } @@ -378,7 +378,7 @@ namespace BBWYB.Server.Business if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count() > 0) { var addSchemeSkuList = batchCURDSchemeRequest.AddPurchaseSchemeList.Select(ps => ps.SkuId).Distinct().ToList(); - var dbSkuSchemeCountList = fsql.Select().Where(ps => ps.BelongBargainTeamId == uInfo.user.DepartmentId && + var dbSkuSchemeCountList = fsql.Select().Where(ps => ps.BelongBargainTeamId == uInfo.bargainTeam.Id && addSchemeSkuList.Contains(ps.SkuId)) .GroupBy(ps => ps.SkuId) .ToList(g => new @@ -453,10 +453,10 @@ namespace BBWYB.Server.Business { Id = idGenerator.NewLong(), CreateTime = DateTime.Now, - GroupName = $"{firstScheme.ProductId}-{dbPurchaseSchemeGroupIndex.Index}{(uInfo.isBargainTeam ? $"-{uInfo.department.DepartmentName}" : string.Empty)}", + GroupName = $"{firstScheme.ProductId}-{dbPurchaseSchemeGroupIndex.Index}", ProductId = firstScheme.ProductId, ShopId = firstScheme.ShopId, - BelongBargainTeamId = uInfo.department.Id + BelongBargainTeamId = uInfo.bargainTeam?.Id }; insertPurchaseSchemeGroupsList.Add(insertSchemeGroup); newPurchaseGroupId = insertSchemeGroup.Id; @@ -481,9 +481,9 @@ namespace BBWYB.Server.Business HYSchemeId = psReq.HYSchemeId, SchemeGroupId = psReq.SchemeGroupId ?? 0, Version = 1, - BelongBargainTeamId = uInfo.isBargainTeam ? uInfo.department.Id : string.Empty, - BelongBargainTeamName = uInfo.isBargainTeam ? uInfo.department.DepartmentName : string.Empty, - UpdateTeamId = uInfo.department.Id, + BelongBargainTeamId = uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : string.Empty, + BelongBargainTeamName = uInfo.isBargainTeam ? uInfo.bargainTeam?.DepartmentName : string.Empty, + UpdateTeamId = uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : uInfo.mainTeam.Id, UpdateUserId = uInfo.user.Id, IsBargainTeamUpdate = uInfo.isBargainTeam }; @@ -620,8 +620,8 @@ namespace BBWYB.Server.Business insertHistoryPSPList.Add(historyPsp); #endregion } - var belongBargainTeamId = uInfo.isBargainTeam ? uInfo.department.Id : string.Empty; - var belongBargainTeamName = uInfo.isBargainTeam ? uInfo.department.DepartmentName : string.Empty; + var belongBargainTeamId = uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : string.Empty; + var belongBargainTeamName = uInfo.isBargainTeam ? uInfo.bargainTeam?.DepartmentName : string.Empty; var psupdate = fsql.Update(schemeId) .Set(ps => ps.DefaultCost, defaultCost) @@ -633,7 +633,7 @@ namespace BBWYB.Server.Business .Set(ps => ps.BelongBargainTeamId, belongBargainTeamId) .Set(ps => ps.BelongBargainTeamName, belongBargainTeamName) .Set(ps => ps.UpdateUserId, uInfo.user.Id) - .Set(ps => ps.UpdateTeamId, uInfo.department.Id) + .Set(ps => ps.UpdateTeamId, uInfo.isBargainTeam ? uInfo.bargainTeam?.Id : uInfo.mainTeam.Id) .Set(ps => ps.IsBargainTeamUpdate, uInfo.isBargainTeam) .Set(ps => ps.IsFreeFreight, psReq.IsFreeFreight); updatePurchaseSchemeList.Add(psupdate); @@ -667,8 +667,8 @@ namespace BBWYB.Server.Business { foreach (var p in newPurchaserList) { - p.BelongBargainTeamId = uInfo.department.Id; - p.BelongBargainTeamName = uInfo.department.DepartmentName; + p.BelongBargainTeamId = uInfo.bargainTeam?.Id; + p.BelongBargainTeamName = uInfo.bargainTeam?.DepartmentName; p.BelongType = Enums.PurchaserBelongType.临时; } } @@ -998,10 +998,11 @@ namespace BBWYB.Server.Business public IList GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request, string userId) { var user = userBusiness.GetisBargainTeamByUserId(userId); + var bargainTeamId = user.bargainTeam?.Id; var purchaseSchemeGroupsList = fsql.Select() .Where(psg => psg.ShopId == request.ShopId && request.ProductIdList.Contains(psg.ProductId)) - .WhereIf(user.isBargainTeam, psg => psg.BelongBargainTeamId == user.department.Id) + .WhereIf(user.isBargainTeam, psg => psg.BelongBargainTeamId == bargainTeamId) .ToList(); if (purchaseSchemeGroupsList.Count() > 0) { @@ -1010,7 +1011,7 @@ namespace BBWYB.Server.Business { IncludePurchaseSkuBasicInfo = request.IncludePurchaseSkuBasicInfo, SchemeGroupIdList = groupIds, - BargainTeamIdList = user.isBargainTeam ? new List() { user.user.DepartmentId } : null, + BargainTeamIdList = user.isBargainTeam ? new List() { user.bargainTeam.Id } : null, }); foreach (var psg in purchaseSchemeGroupsList) psg.PurchaseSchemeList = purchaseSchemeList.Where(ps => ps.SchemeGroupId == psg.Id).ToList(); @@ -1073,7 +1074,7 @@ namespace BBWYB.Server.Business var purchaseSchemeList = GetPurchaseSchemeList(new QuerySchemeRequest() { ProductIdList = new List() { productId }, - BargainTeamIdList = user.isBargainTeam ? new List() { user.user.DepartmentId } : null, + BargainTeamIdList = user.isBargainTeam ? new List() { user.bargainTeam.Id } : null, IncludePurchaseSkuBasicInfo = 1 }); var mergePssList = new List(); @@ -1582,7 +1583,7 @@ namespace BBWYB.Server.Business /// /// /// - public void BatchEditPurchaseSkuActualPrice(BatchEditPurchaseSkuActualPriceRequest request, (User user, Userdepartment department, bool isBargainTeam) uInfo) + public void BatchEditPurchaseSkuActualPrice(BatchEditPurchaseSkuActualPriceRequest request, (User user, Userdepartment mainTeam, bool isBargainTeam, Userdepartment? bargainTeam) uInfo) { if (request.ItemList == null || request.ItemList.Count() == 0) throw new BusinessException("缺少参数"); @@ -1607,7 +1608,7 @@ namespace BBWYB.Server.Business IncludePurchaseSkuBasicInfo = 1, IncludeSkuStatisticsInfo = 0, SchemeIdList = schemeIdList, - BargainTeamIdList = uInfo.isBargainTeam ? new List() { uInfo.user.DepartmentId } : null, + BargainTeamIdList = uInfo.isBargainTeam ? new List() { uInfo.bargainTeam.Id } : null, }); if (purchaseSchemeList.Count() == 0) @@ -1676,7 +1677,7 @@ namespace BBWYB.Server.Business public IList GetGoodsSourceTagsInfo(List requestList, string userId) { - var uInfo = userBusiness.GetisBargainTeamByUserId(userId); + var uInfo = userBusiness.GetisBargainTeamByUserId(userId, true); var list = new List(); var purchaseSkuIdList = requestList.Select(x => x.PurchaseSkuId).ToList(); var purchaserIdList = requestList.Select(x => x.PurchaserId).ToList(); @@ -1706,7 +1707,7 @@ namespace BBWYB.Server.Business var goodsSourceTag = new GoodsSourceTagResponse() { PurchaseSku = purchasedSku.PurchaseSkuId, - GoodsSourceTagType = purchasedSku.BelongBargainTeamId != uInfo.user.DepartmentId ? + GoodsSourceTagType = purchasedSku.BelongBargainTeamId != uInfo.bargainTeam.Id ? Enums.GoodsSourceTagType.其他组采购过该商品 : Enums.GoodsSourceTagType.本组采购过该商品 }; @@ -1736,7 +1737,7 @@ namespace BBWYB.Server.Business var goodsSourceTag = new GoodsSourceTagResponse() { PurchaseSku = usedSku.PurchaseSkuId, - GoodsSourceTagType = usedSku.BelongBargainTeamId != uInfo.user.DepartmentId ? + GoodsSourceTagType = usedSku.BelongBargainTeamId != uInfo.bargainTeam.Id ? Enums.GoodsSourceTagType.其他组添加过采购方案 : Enums.GoodsSourceTagType.本组添加过采购方案 }; @@ -1777,7 +1778,7 @@ namespace BBWYB.Server.Business list.Add(new GoodsSourceTagResponse() { PurchaseSku = item.PurchaseSkuId, - GoodsSourceTagType = purchaserBySame.BelongBargainTeamId != uInfo.user.DepartmentId ? + GoodsSourceTagType = purchaserBySame.BelongBargainTeamId != uInfo.bargainTeam.Id ? Enums.GoodsSourceTagType.其他组历史采购过该供应商的商品 : Enums.GoodsSourceTagType.本组历史采购过该供应商的商品 }); diff --git a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs index cb0a146..58b7cc9 100644 --- a/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs +++ b/BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs @@ -326,9 +326,9 @@ namespace BBWYB.Server.Business var spuOptimizationTask = fsql.Select(request.SpuOptimizationTaskId).ToOne(); if (spuOptimizationTask == null) throw new BusinessException($"待优化任务{request.SpuOptimizationTaskId}不存在"); - var spuOptimizationBargainTeamTask = fsql.Select().Where(sbt => sbt.SpuOptimizationTaskId == request.SpuOptimizationTaskId && sbt.BelongTeamId == uInfo.department.Id).ToOne(); + var spuOptimizationBargainTeamTask = fsql.Select().Where(sbt => sbt.SpuOptimizationTaskId == request.SpuOptimizationTaskId && sbt.BelongTeamId == uInfo.bargainTeam.Id).ToOne(); if (spuOptimizationBargainTeamTask == null) - throw new BusinessException($"待优化任务{request.SpuOptimizationTaskId}中不存在议价组{uInfo.department.Id}/{uInfo.department.DepartmentName}的子任务"); + throw new BusinessException($"待优化任务{request.SpuOptimizationTaskId}中不存在议价组{uInfo.bargainTeam.Id}/{uInfo.bargainTeam.DepartmentName}的子任务"); var skuIdList = fsql.Select().Where(s => s.SpuOptimizationTaskId == request.SpuOptimizationTaskId).ToList(s => s.SkuId); #endregion @@ -342,7 +342,7 @@ namespace BBWYB.Server.Business //查询竞标任务 var competitiveTenderTaskList = fsql.Select() - .Where(ct => ct.BargainTeamId == uInfo.user.DepartmentId && + .Where(ct => ct.BargainTeamId == uInfo.bargainTeam.Id && ct.SpuOptimizationTaskId == request.SpuOptimizationTaskId && ct.SchemeGroupId == request.SchemeGroupId) .ToList(); @@ -350,7 +350,7 @@ namespace BBWYB.Server.Business //查询配件关联的采购方案 var relationPurchaseSchemeList = fsql.Select() .Where(ps => ps.SchemeGroupId == request.SchemeGroupId && - ps.BelongBargainTeamId == uInfo.user.DepartmentId && + ps.BelongBargainTeamId == uInfo.bargainTeam.Id && fsql.Select() .Where(pss => skuIdList.Contains(pss.SkuId) && purchaseSkuIdList.Contains(pss.PurchaseSkuId) && @@ -368,7 +368,7 @@ namespace BBWYB.Server.Business batchEditPurchaseSkuActualPriceRequest.ProductId = spuOptimizationTask.ProductId; purchaseSchemeBusiness.BatchEditPurchaseSkuActualPrice(batchEditPurchaseSkuActualPriceRequest, uInfo); } - + if (noJoinCompetitiveTenderPurchaseSchemeList.Count() > 0) { @@ -376,7 +376,7 @@ namespace BBWYB.Server.Business { Id = idGenerator.NewLong(), CreateTime = DateTime.Now, - BargainTeamId = uInfo.department.Id, + BargainTeamId = uInfo.bargainTeam.Id, IsUpdateQuotedPrice = true, SchemeGroupId = ps.SchemeGroupId, SchemeId = ps.Id, @@ -423,11 +423,11 @@ namespace BBWYB.Server.Business var spuOptimizationBargainTeamTaskList = fsql.Select() .Where(sbt => sbt.SpuOptimizationTaskId == taskId) .ToList(); - var currentspuOptimizationBargainTeamTask = spuOptimizationBargainTeamTaskList.FirstOrDefault(sc => sc.BelongTeamId == uInfo.department.Id); + var currentspuOptimizationBargainTeamTask = spuOptimizationBargainTeamTaskList.FirstOrDefault(sc => sc.BelongTeamId == uInfo.bargainTeam.Id); if (currentspuOptimizationBargainTeamTask == null) - throw new BusinessException($"未找到议价组{uInfo.department.DepartmentName}的议价子任务"); + throw new BusinessException($"未找到议价组{uInfo.bargainTeam.DepartmentName}的议价子任务"); if (currentspuOptimizationBargainTeamTask.IsOptimizationCompleted == true) - throw new BusinessException($"{uInfo.department.DepartmentName}的议价子任务已完成"); + throw new BusinessException($"{uInfo.bargainTeam.DepartmentName}的议价子任务已完成"); var skuIdList = fsql.Select() .Where(s => s.SpuOptimizationTaskId == taskId) @@ -439,27 +439,27 @@ namespace BBWYB.Server.Business .ToList(); //查询当前议价组的竞标任务 - var currentBargainTeamCompetitiveTenderTaskList = allBargainTeamCompetitiveTenderTaskList.Where(ct => ct.BargainTeamId == uInfo.department.Id).ToList(); + var currentBargainTeamCompetitiveTenderTaskList = allBargainTeamCompetitiveTenderTaskList.Where(ct => ct.BargainTeamId == uInfo.bargainTeam.Id).ToList(); if (currentBargainTeamCompetitiveTenderTaskList.Count() == 0) - throw new BusinessException($"议价组{uInfo.department.DepartmentName}没有参与竞标的采购方案,不能完成优化任务"); + throw new BusinessException($"议价组{uInfo.bargainTeam.DepartmentName}没有参与竞标的采购方案,不能完成优化任务"); var currentBargainTeamCompetitiveTenderSchemeIdList = currentBargainTeamCompetitiveTenderTaskList.Select(ct => ct.SchemeId).ToList(); #region 验证该议价组的符合sku条件的采购方案是否都参与投标 var waitCheckPurchaseSchemeIdList = fsql.Select() - .Where(ps => ps.BelongBargainTeamId == uInfo.user.DepartmentId && + .Where(ps => ps.BelongBargainTeamId == uInfo.bargainTeam.Id && skuIdList.Contains(ps.SkuId)) .ToList(ps => ps.Id); if (waitCheckPurchaseSchemeIdList.Count() == 0) - throw new BusinessException($"议价组{uInfo.department.DepartmentName}没有参与竞标的采购方案,不能完成优化任务"); + throw new BusinessException($"议价组{uInfo.bargainTeam.DepartmentName}没有参与竞标的采购方案,不能完成优化任务"); var noJoinCompetitiveTenderSchemeIdList = waitCheckPurchaseSchemeIdList.Except(currentBargainTeamCompetitiveTenderSchemeIdList); if (noJoinCompetitiveTenderSchemeIdList.Count() > 0) - throw new BusinessException($"议价组{uInfo.department.DepartmentName}存在{noJoinCompetitiveTenderSchemeIdList.Count()}个符合条件但未参与竞标的采购方案"); + throw new BusinessException($"议价组{uInfo.bargainTeam.DepartmentName}存在{noJoinCompetitiveTenderSchemeIdList.Count()}个符合条件但未参与竞标的采购方案"); #endregion #region 验证该议价组参与投标的采购方案是否都完成报价 if (currentBargainTeamCompetitiveTenderTaskList.Any(ct => ct.IsUpdateQuotedPrice == false)) - throw new BusinessException($"议价组{uInfo.department.DepartmentName}存在未更新报价的投标"); + throw new BusinessException($"议价组{uInfo.bargainTeam.DepartmentName}存在未更新报价的投标"); #endregion currentspuOptimizationBargainTeamTask.IsOptimizationCompleted = true; @@ -649,13 +649,13 @@ namespace BBWYB.Server.Business task.TimeLimitTask = timelimitTaskList.FirstOrDefault(t => t.TaskId == task.Id); if (task.TimeLimitTask != null) task.TimeLimitTask.RemainingTime = timeLimitRules.CalculateLessTimeForWorkHour(task.TimeLimitTask.ExpirationTime.Value); - task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.department.Id)?.IsOptimizationCompleted == true; + task.IsCompletedByCurrentTeam = task.BargainTeamTaskList.FirstOrDefault(sbt => sbt.BelongTeamId == uInfo.bargainTeam?.Id)?.IsOptimizationCompleted == true; task.SkuOptimizationTaskList = skuTaskList.Where(st => st.SpuOptimizationTaskId == task.Id).ToList(); #region 合并分组/采购商/配件 var currentTaskSkuIdList = task.SkuOptimizationTaskList.Select(st => st.SkuId).ToList(); var currentPurchaseSchemeGroups = purchaseSchemeList.Where(p => currentTaskSkuIdList.Contains(p.SkuId) && - p.BelongBargainTeamId == uInfo.department.Id) + p.BelongBargainTeamId == uInfo.bargainTeam?.Id) .GroupBy(p => p.SchemeGroupId) .ToList(); task.MergePurchaseScemeGroupList = new List(); diff --git a/BBWYB.Server.Business/Users/userBusiness.cs b/BBWYB.Server.Business/Users/userBusiness.cs index 2c2ff64..c3439ab 100644 --- a/BBWYB.Server.Business/Users/userBusiness.cs +++ b/BBWYB.Server.Business/Users/userBusiness.cs @@ -19,19 +19,27 @@ namespace BBWYB.Server.Business /// 当用户不属于议价组团队是否抛出错误 /// /// - public (User user, Userdepartment department, bool isBargainTeam) GetisBargainTeamByUserId(string userId, bool throwExWhenUserNotBelongYJ = false) + public (User user, Userdepartment mainTeam, bool isBargainTeam, Userdepartment? bargainTeam) GetisBargainTeamByUserId(string userId, bool throwExWhenUserNotBelongYJ = false) { var user = fsqlManager.MDSfsql.Select(userId).ToOne(); if (user == null) throw new BusinessException("用户不存在"); if (string.IsNullOrEmpty(user.DepartmentId)) throw new BusinessException("该用户没有归属部门"); - var department = fsqlManager.MDSfsql.Select(user.DepartmentId).ToOne(); - if (department == null) - throw new BusinessException("部门不存在"); - if (throwExWhenUserNotBelongYJ && department.ParentDepartmentId != "1760971468360912896") - throw new BusinessException("该用户所在部门不属于议价组"); - return (user, department, department.ParentDepartmentId == "1760971468360912896"); + var queryDeparmentIdList = new List() { user.DepartmentId }; + if (!string.IsNullOrEmpty(user.SonDepartmentIds)) + queryDeparmentIdList.AddRange(user.SonDepartmentIds.Split(",", StringSplitOptions.RemoveEmptyEntries)); + + var departmentList = fsqlManager.MDSfsql.Select(queryDeparmentIdList).ToList(); + if (departmentList.Count() == 0) + throw new BusinessException("未获取部门"); + var mainTeam = departmentList.FirstOrDefault(d => d.Id == user.DepartmentId); + if (mainTeam == null) + throw new BusinessException("主部门不存在"); + var bargainTeam = departmentList.FirstOrDefault(d => d.ParentDepartmentId == "1760971468360912896"); + if (throwExWhenUserNotBelongYJ && bargainTeam == null) + throw new BusinessException("子部门不属于议价组"); + return (user, mainTeam, bargainTeam != null, bargainTeam); } } }