Browse Source

接口使用子部门验证议价组

liangku_skuoptimazation
shanji 1 year ago
parent
commit
a1f4fc8880
  1. 2
      BBWYB.Client/App.xaml.cs
  2. 2
      BBWYB.Client/GlobalContext.cs
  3. 59
      BBWYB.Client/ViewModels/WebVM.cs
  4. 45
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  5. 34
      BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs
  6. 22
      BBWYB.Server.Business/Users/userBusiness.cs

2
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";

2
BBWYB.Client/GlobalContext.cs

@ -20,7 +20,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
BBWYBApiVersion = "10040";
BBWYBApiVersion = "10041";
}
private User user;

59
BBWYB.Client/ViewModels/WebVM.cs

@ -17,6 +17,7 @@ namespace BBWYB.Client.ViewModels
private MdsApiService mdsApiService;
private MenuModel selectedMenuModel;
private bool isLoading;
private IList<string> 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<string>() { "董事办", "财务部", "技术部", "总经办" };
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<Department>>();
IList<Department> departmentList = null;
var shopList = new List<Shop>();
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<Department>>();
IList<Department> departmentList = null;
var shopList = new List<Shop>();
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<string>();
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<string>();
//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;

45
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<PurchaseSchemeGroup> 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<PurchaseScheme>().Where(ps => ps.BelongBargainTeamId == uInfo.user.DepartmentId &&
var dbSkuSchemeCountList = fsql.Select<PurchaseScheme>().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<PurchaseScheme>(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<PurchaseSchemeGroupResponse> GetPurchaseSchemeAndGroupList(QuerySchemeAndGroupRequest request, string userId)
{
var user = userBusiness.GetisBargainTeamByUserId(userId);
var bargainTeamId = user.bargainTeam?.Id;
var purchaseSchemeGroupsList = fsql.Select<PurchaseSchemeGroup>()
.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<PurchaseSchemeGroupResponse>();
if (purchaseSchemeGroupsList.Count() > 0)
{
@ -1010,7 +1011,7 @@ namespace BBWYB.Server.Business
{
IncludePurchaseSkuBasicInfo = request.IncludePurchaseSkuBasicInfo,
SchemeGroupIdList = groupIds,
BargainTeamIdList = user.isBargainTeam ? new List<string>() { user.user.DepartmentId } : null,
BargainTeamIdList = user.isBargainTeam ? new List<string>() { 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<string>() { productId },
BargainTeamIdList = user.isBargainTeam ? new List<string>() { user.user.DepartmentId } : null,
BargainTeamIdList = user.isBargainTeam ? new List<string>() { user.bargainTeam.Id } : null,
IncludePurchaseSkuBasicInfo = 1
});
var mergePssList = new List<MergePurchaseSchemeProductSkuResponse>();
@ -1582,7 +1583,7 @@ namespace BBWYB.Server.Business
/// <param name="request"></param>
/// <param name="uInfo"></param>
/// <exception cref="BusinessException"></exception>
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<string>() { uInfo.user.DepartmentId } : null,
BargainTeamIdList = uInfo.isBargainTeam ? new List<string>() { uInfo.bargainTeam.Id } : null,
});
if (purchaseSchemeList.Count() == 0)
@ -1676,7 +1677,7 @@ namespace BBWYB.Server.Business
public IList<GoodsSourceTagResponse> GetGoodsSourceTagsInfo(List<QueryGoodsSourceTagRequest> requestList, string userId)
{
var uInfo = userBusiness.GetisBargainTeamByUserId(userId);
var uInfo = userBusiness.GetisBargainTeamByUserId(userId, true);
var list = new List<GoodsSourceTagResponse>();
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.
});

34
BBWYB.Server.Business/SkuOptimization/OptimizationBusiness.cs

@ -326,9 +326,9 @@ namespace BBWYB.Server.Business
var spuOptimizationTask = fsql.Select<SpuOptimizationTask>(request.SpuOptimizationTaskId).ToOne();
if (spuOptimizationTask == null)
throw new BusinessException($"待优化任务{request.SpuOptimizationTaskId}不存在");
var spuOptimizationBargainTeamTask = fsql.Select<SpuOptimizationBargainTeamTask>().Where(sbt => sbt.SpuOptimizationTaskId == request.SpuOptimizationTaskId && sbt.BelongTeamId == uInfo.department.Id).ToOne();
var spuOptimizationBargainTeamTask = fsql.Select<SpuOptimizationBargainTeamTask>().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<SkuOptimizationTask>().Where(s => s.SpuOptimizationTaskId == request.SpuOptimizationTaskId).ToList(s => s.SkuId);
#endregion
@ -342,7 +342,7 @@ namespace BBWYB.Server.Business
//查询竞标任务
var competitiveTenderTaskList = fsql.Select<SpuOptimizationCompetitiveTenderTask>()
.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<PurchaseScheme>()
.Where(ps => ps.SchemeGroupId == request.SchemeGroupId &&
ps.BelongBargainTeamId == uInfo.user.DepartmentId &&
ps.BelongBargainTeamId == uInfo.bargainTeam.Id &&
fsql.Select<PurchaseSchemeProductSku>()
.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<SpuOptimizationBargainTeamTask>()
.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<SkuOptimizationTask>()
.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<PurchaseScheme>()
.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<MergePurchaseSchemeGroupResponse>();

22
BBWYB.Server.Business/Users/userBusiness.cs

@ -19,19 +19,27 @@ namespace BBWYB.Server.Business
/// <param name="throwExWhenUserNotBelongYJ">当用户不属于议价组团队是否抛出错误</param>
/// <returns></returns>
/// <exception cref="BusinessException"></exception>
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<User>(userId).ToOne();
if (user == null)
throw new BusinessException("用户不存在");
if (string.IsNullOrEmpty(user.DepartmentId))
throw new BusinessException("该用户没有归属部门");
var department = fsqlManager.MDSfsql.Select<Userdepartment>(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<string>() { user.DepartmentId };
if (!string.IsNullOrEmpty(user.SonDepartmentIds))
queryDeparmentIdList.AddRange(user.SonDepartmentIds.Split(",", StringSplitOptions.RemoveEmptyEntries));
var departmentList = fsqlManager.MDSfsql.Select<Userdepartment>(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);
}
}
}

Loading…
Cancel
Save