shanji 2 years ago
parent
commit
428addbbb8
  1. 2
      BBWYB.Client/App.xaml
  2. 3
      BBWYB.Client/GlobalContext.cs
  3. 9
      BBWYB.Client/ViewModels/ViewModelLocator.cs
  4. 96
      BBWYB.Client/ViewModels/WebVM.cs
  5. 25
      BBWYB.Client/Views/Web.xaml
  6. 83
      BBWYB.Client/Views/Web.xaml.cs
  7. 2
      BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs
  8. 144
      BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs
  9. 4
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs
  10. 2
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs
  11. 2
      BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs
  12. 5
      BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs
  13. 80
      WebTest/MainWindow.xaml.cs

2
BBWYB.Client/App.xaml

@ -4,7 +4,7 @@
xmlns:local="clr-namespace:BBWYB.Client"
xmlns:vm="clr-namespace:BBWYB.Client.ViewModels"
xmlns:ctr="clr-namespace:BBWYB.Client.Converters"
StartupUri="/Views/MainWindow.xaml"
StartupUri="/Views/Web.xaml"
ShutdownMode="OnExplicitShutdown">
<!--StartupUri="/Views/MainWindow.xaml"-->
<Application.Resources>

3
BBWYB.Client/GlobalContext.cs

@ -1,7 +1,6 @@
using BBWYB.Client.APIServices;
using BBWYB.Client.Helpers;
using BBWYB.Client.Models;
using BBWYB.Client.ViewModels;
using BBWYB.Client.Views.PackPurchaseTaska;
using BBWYB.Client.Views.WebB;
using CommunityToolkit.Mvvm.ComponentModel;
@ -22,7 +21,7 @@ namespace BBWYB.Client
{
public GlobalContext()
{
BBWYBApiVersion = "10036";
BBWYBApiVersion = "10038";
}
private User user;

9
BBWYB.Client/ViewModels/ViewModelLocator.cs

@ -118,5 +118,14 @@ namespace BBWYB.Client.ViewModels
return s.ServiceProvider.GetRequiredService<UpdatePurchaseTaskViewModel>();
}
}
public WebVM WebVM
{
get
{
using var s = sp.CreateScope();
return s.ServiceProvider.GetRequiredService<WebVM>();
}
}
}
}

96
BBWYB.Client/ViewModels/WebVM.cs

@ -0,0 +1,96 @@
using BBWYB.Client.APIServices;
using BBWYB.Client.Models;
using BBWYB.Client.Views;
using BBWYB.Common.Extensions;
using BBWYB.Common.Models;
using CommunityToolkit.Mvvm.Messaging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace BBWYB.Client.ViewModels
{
public class WebVM : BaseVM, IDenpendency
{
private MdsApiService mdsApiService;
private MenuModel selectedMenuModel;
private bool isLoading;
ShopService shopService;
public GlobalContext GlobalContext { get; set; }
public bool IsLoading { get => isLoading; set { SetProperty(ref isLoading, value); } }
public WebVM(GlobalContext globalContext,
MdsApiService mdsApiService,
ShopService shopService)
{
this.mdsApiService = mdsApiService;
this.GlobalContext = globalContext;
this.shopService = shopService;
Task.Factory.StartNew(Login);
}
private void Login()
{
IsLoading = true;
try
{
var mdsUserResponse = mdsApiService.GetUserInfo(GlobalContext.UserToken);
if (!mdsUserResponse.Success)
throw new Exception($"获取磨刀石用户信息失败 {mdsUserResponse.Msg}");
GlobalContext.User = mdsUserResponse.Data.Map<User>();
GlobalContext.User.Token = GlobalContext.UserToken;
GlobalContext.User.SonDepartmentNames = string.Empty;
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>>();
var shopList = new List<Shop>();
foreach (var d in allDepartmentList)
shopList.AddRange(d.ShopList);
GlobalContext.User.ShopList = shopList;
IList<Department> departmentList = null;
//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());
}
}
GlobalContext.User.DepartmentList = departmentList;
WeakReferenceMessenger.Default.Send(new Message_WebB_LoginCompleted(null));
IsLoading = false;
}
catch (Exception ex)
{
IsLoading = false;
App.Current.Dispatcher.Invoke(() =>
{
MessageBox.Show(ex.Message, "登录失败");
});
Environment.Exit(Environment.ExitCode);
}
}
}
}

25
BBWYB.Client/Views/Web.xaml

@ -0,0 +1,25 @@
<c:BWindow x:Class="BBWYB.Client.Views.Web"
xmlns:c="clr-namespace:SJ.Controls;assembly=SJ.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BBWYB.Client.Views"
mc:Ignorable="d"
Style="{StaticResource bwstyle}"
DataContext="{Binding WebVM,Source={StaticResource Locator}}"
Title="Web" Height="450" Width="800">
<Grid x:Name="grid">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0">
<TextBlock Text="{Binding GlobalContext.User.Name}"/>
<TextBlock Text="{Binding GlobalContext.BBWYBApiVersion}" Margin="5,0,0,0"/>
</StackPanel>
</Border>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Grid.RowSpan="2"/>
</Grid>
</c:BWindow>

83
BBWYB.Client/Views/Web.xaml.cs

@ -0,0 +1,83 @@
using CommunityToolkit.Mvvm.Messaging;
using CommunityToolkit.Mvvm.Messaging.Messages;
using Microsoft.Extensions.DependencyInjection;
using SJ.Controls;
using System.Windows;
using System.Windows.Controls;
namespace BBWYB.Client.Views
{
/// <summary>
/// Web.xaml 的交互逻辑
/// </summary>
public partial class Web : BWindow
{
private WebView2Manager w2m;
private bool isNavigated;
private GlobalContext globalContext;
public Web()
{
InitializeComponent();
this.Width = SystemParameters.WorkArea.Size.Width * 0.8;
this.Height = SystemParameters.WorkArea.Size.Height * 0.7;
var sp = (App.Current as App).ServiceProvider;
using (var s = sp.CreateScope())
{
w2m = s.ServiceProvider.GetRequiredService<WebView2Manager>();
globalContext = s.ServiceProvider.GetRequiredService<GlobalContext>();
}
WeakReferenceMessenger.Default.Register<Message_WebB_LoginCompleted>(this, (o, x) =>
{
this.Dispatcher.BeginInvoke(initWebView);
});
}
private void Web_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
}
private void initWebView()
{
#if DEBUG
var url = "http://192.168.1.2:8080";
var registerName = "webTestContext";
//var url = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "s.html");
#else
var url = "http://qtbbwy.qiyue666.com";
var registerName = "webContext";
#endif
//var url = "http://qtbbwy.qiyue666.com";
w2m.CoreWebView2InitializationCompleted = (e) =>
{
w2m.wb2.CoreWebView2.AddHostObjectToScript(registerName, this.globalContext);
isNavigated = true;
w2m.wb2.CoreWebView2.Navigate(url);
};
w2m.Init("bbwyb_web");
w2m.wb2.SetValue(Grid.RowProperty, 1);
w2m.wb2.Margin = new Thickness(1, 0, 1, 0);
//grid.Children.Clear();
grid.Children.Add(w2m.wb2);
if (w2m.IsInitializationCompleted && !isNavigated)
{
w2m.wb2.CoreWebView2.Navigate(url);
//w2m.wb2.CoreWebView2.NavigateToString(content);
isNavigated = true;
}
}
}
public class Message_WebB_LoginCompleted : ValueChangedMessage<object>
{
public Message_WebB_LoginCompleted(object value) : base(value)
{
}
}
}

2
BBWYB.Client/Views/WebB/WebB_GoodsSource.xaml.cs

@ -57,7 +57,7 @@ namespace BBWYB.Client.Views.WebB
}
#if DEBUG
var url = "http://192.168.1.2/#/goods-source";
var url = "http://192.168.1.2:8080/#/goods-source";
var registerName = "webTestContext";
//var url = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "s.html");
#else

144
BBWYB.Server.Business/PurchaseScheme/PurchaseSchemeBusiness.cs

@ -208,7 +208,7 @@ namespace BBWYB.Server.Business
List<PurchaseSchemeGroup> dbSchemeGroupList = null;
List<PurchaseScheme> dbPurchaseSchemeList = null;
List<long> deleteSchemeIdList = new List<long>();
#region 数据验证
if ((batchCURDSchemeRequest.EditPurchaseSchemeList == null || batchCURDSchemeRequest.EditPurchaseSchemeList.Count == 0) &&
(batchCURDSchemeRequest.AddPurchaseSchemeList == null || batchCURDSchemeRequest.AddPurchaseSchemeList.Count == 0))
@ -220,6 +220,9 @@ namespace BBWYB.Server.Business
if (groupCount > 1)
throw new BusinessException("只能对同一个spu的方案进行编辑");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
throw new BusinessException("更新方案中采购方案缺少Id");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => string.IsNullOrEmpty(ps.ProductId) ||
string.IsNullOrEmpty(ps.SkuId) ||
ps.PurchaseSchemeProductList.Any(psp => string.IsNullOrEmpty(psp.ProductId) ||
@ -230,22 +233,42 @@ namespace BBWYB.Server.Business
throw new BusinessException("更新方案缺少ProductId/SkuId");
}
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList == null ||
ps.PurchaseSchemeProductList.Count() == 0 ||
ps.PurchaseSchemeProductList.Any(psp => psp.PurchaseSchemeProductSkuList == null ||
psp.PurchaseSchemeProductSkuList.Count() == 0)))
#region 验证是否存在数据残缺的采购方案
for (var i = 0; i < batchCURDSchemeRequest.EditPurchaseSchemeList.Count(); i++)
{
var editScheme = batchCURDSchemeRequest.EditPurchaseSchemeList[i];
if (editScheme.PurchaseSchemeProductList != null && editScheme.PurchaseSchemeProductList.Count() > 0)
{
throw new BusinessException("更新方案缺少商品信息");
for (var j = 0; j < editScheme.PurchaseSchemeProductList.Count(); j++)
{
var editSchemeProduct = editScheme.PurchaseSchemeProductList[j];
if (editSchemeProduct.PurchaseSchemeProductSkuList == null || editSchemeProduct.PurchaseSchemeProductSkuList.Count() == 0)
{
//如果采购商品不具备配件,则移除该采购商品
editScheme.PurchaseSchemeProductList.RemoveAt(j);
j--;
}
}
}
if (editScheme.PurchaseSchemeProductList == null || editScheme.PurchaseSchemeProductList.Count() == 0)
{
//采购方案不再具备采购商品,则移除该采购方案
batchCURDSchemeRequest.EditPurchaseSchemeList.RemoveAt(i);
i--;
deleteSchemeIdList.Add(editScheme.Id);
}
}
#endregion
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.PurchaseSchemeProductList.Any(pp => string.IsNullOrEmpty(pp.PurchaserId) ||
string.IsNullOrEmpty(pp.PurchaserId2) ||
string.IsNullOrEmpty(pp.PurchaserName))))
throw new BusinessException("更新方案中有采购商Id/Id2/Name/Location为空");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.Id == 0))
throw new BusinessException("更新方案中采购方案缺少Id");
if (batchCURDSchemeRequest.EditPurchaseSchemeList.Any(ps => ps.SchemeGroupId == null || ps.SchemeGroupId == 0))
throw new BusinessException("更新方案中采购方案缺少分组Id");
@ -311,12 +334,14 @@ namespace BBWYB.Server.Business
List<PurchaseSchemeProduct> addPurchaseSchemeProductList = new List<PurchaseSchemeProduct>();
List<PurchaseSchemeProductSku> addPurchaseSchemeProductSkuList = new List<PurchaseSchemeProductSku>();
List<Purchaser> newPurchaserList = new List<Purchaser>();
List<long> deletePurchaseSchemeIdList = new List<long>();
List<long> deletePartsSchemeIdList = new List<long>();
List<IUpdate<PurchaseScheme>> updatePurchaseSchemeList = new List<IUpdate<PurchaseScheme>>();
List<PurchaseSchemeGroup> insertPurchaseSchemeGroupsList = new List<PurchaseSchemeGroup>();
IInsert<PurchaseSchemeGroupIndex>? insertPurchaseSchemeGroupIndex = null;
IUpdate<PurchaseSchemeGroupIndex>? updatePurchaseSchemeGroupIndex = null;
if (batchCURDSchemeRequest.AddPurchaseSchemeList != null && batchCURDSchemeRequest.AddPurchaseSchemeList.Count > 0)
{
var firstScheme = batchCURDSchemeRequest.AddPurchaseSchemeList.First();
@ -402,7 +427,7 @@ namespace BBWYB.Server.Business
{
ExtractNewPurchaser(batchCURDSchemeRequest.EditPurchaseSchemeList, newPurchaserList);
deletePurchaseSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
deletePartsSchemeIdList.AddRange(batchCURDSchemeRequest.EditPurchaseSchemeList.Select(ps => ps.Id));
foreach (var psReq in batchCURDSchemeRequest.EditPurchaseSchemeList)
{
var schemeId = psReq.Id;
@ -446,10 +471,10 @@ namespace BBWYB.Server.Business
fsql.Insert(newPurchaserList).ExecuteAffrows();
//更新,删除已存在的采购方案商品和Sku
if (deletePurchaseSchemeIdList.Count > 0)
if (deletePartsSchemeIdList.Count > 0)
{
fsql.Delete<PurchaseSchemeProduct>().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(p => deletePurchaseSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProduct>().Where(p => deletePartsSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(p => deletePartsSchemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
}
//新增
@ -469,6 +494,10 @@ namespace BBWYB.Server.Business
insertPurchaseSchemeGroupIndex?.ExecuteAffrows();
updatePurchaseSchemeGroupIndex?.ExecuteAffrows();
});
//删除信息残缺的采购方案
if (deleteSchemeIdList.Count() > 0)
DeletePurchaseScheme(deleteSchemeIdList);
}
/// <summary>
@ -604,9 +633,11 @@ namespace BBWYB.Server.Business
foreach (var schemeProductSku in schemeProduct.PurchaseSchemeProductSkuList)
{
schemeProductSku.IsInvalid = 1;
var basicSku = basicInfo.ItemList.FirstOrDefault(x => x.PurchaseSkuId == schemeProductSku.PurchaseSkuId);
if (basicSku != null)
{
schemeProductSku.IsInvalid = 0;
schemeProductSku.PurchaseSkuTitle = basicSku.Title;
schemeProductSku.PurchaseSkuPrice = basicSku.Price;
schemeProductSku.PurchaseSkuLogo = basicSku.Logo;
@ -739,23 +770,61 @@ namespace BBWYB.Server.Business
public void DeletePurchaseScheme(long schemeId)
{
IDelete<PurchaseSchemeGroup>? deletePsg = null;
var purchaseScheme = fsql.Select<PurchaseScheme>(schemeId).ToOne();
if (purchaseScheme == null)
throw new BusinessException("采购方案不存在");
//IDelete<PurchaseSchemeGroup>? deletePsg = null;
//var purchaseScheme = fsql.Select<PurchaseScheme>(schemeId).ToOne();
//if (purchaseScheme == null)
// throw new BusinessException("采购方案不存在");
//if (purchaseScheme.SchemeGroupId != 0)
//{
// var sameGroupSchemeCount = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId &&
// ps.Id != purchaseScheme.Id).Count();
// if (sameGroupSchemeCount == 0)
// deletePsg = fsql.Delete<PurchaseSchemeGroup>(purchaseScheme.SchemeGroupId);
//}
//fsql.Transaction(() =>
//{
// deletePsg?.ExecuteAffrows();
// fsql.Delete<PurchaseScheme>(schemeId).ExecuteAffrows();
// fsql.Delete<PurchaseSchemeProduct>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
// fsql.Delete<PurchaseSchemeProductSku>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
//});
DeletePurchaseScheme(new List<long>() { schemeId });
}
public void DeletePurchaseScheme(List<long> schemeIdList)
{
IList<long> deleteSchemeGroupIdList = new List<long>();
var purchaseSchemeList = fsql.Select<PurchaseScheme>(schemeIdList).ToList();
if (purchaseSchemeList.Count() == 0)
return;
var schemeGroupIdList = purchaseSchemeList.Where(ps => ps.SchemeGroupId != 0).Select(ps => ps.SchemeGroupId).ToList();
var sameSchemeGroupCountGroups = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId != 0 &&
schemeGroupIdList.Contains(ps.SchemeGroupId) &&
!schemeIdList.Contains(ps.Id))
.GroupBy(ps => ps.SchemeGroupId)
.ToList(g => new
{
SchemeGroupId = g.Key,
SchemeCount = g.Count()
});
foreach (var purchaseScheme in purchaseSchemeList)
{
if (purchaseScheme.SchemeGroupId != 0)
{
var sameGroupSchemeCount = fsql.Select<PurchaseScheme>().Where(ps => ps.SchemeGroupId == purchaseScheme.SchemeGroupId &&
ps.Id != purchaseScheme.Id).Count();
if (sameGroupSchemeCount == 0)
deletePsg = fsql.Delete<PurchaseSchemeGroup>(purchaseScheme.SchemeGroupId);
var sameSchemeGroupCount = sameSchemeGroupCountGroups.FirstOrDefault(g => g.SchemeGroupId == purchaseScheme.SchemeGroupId);
if (sameSchemeGroupCount != null && sameSchemeGroupCount.SchemeCount == 0)
deleteSchemeGroupIdList.Add(purchaseScheme.SchemeGroupId);
}
}
fsql.Transaction(() =>
{
deletePsg?.ExecuteAffrows();
fsql.Delete<PurchaseScheme>(schemeId).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProduct>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(p => p.SkuPurchaseSchemeId == schemeId).ExecuteAffrows();
if (deleteSchemeGroupIdList.Count() > 0)
fsql.Delete<PurchaseSchemeGroup>(deleteSchemeGroupIdList).ExecuteAffrows();
fsql.Delete<PurchaseScheme>(schemeIdList).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProduct>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
fsql.Delete<PurchaseSchemeProductSku>().Where(p => schemeIdList.Contains(p.SkuPurchaseSchemeId)).ExecuteAffrows();
});
}
@ -976,6 +1045,26 @@ namespace BBWYB.Server.Business
if (schemeList.Count() == 0)
throw new BusinessException("采购方案不存在");
var scheme = schemeList[0];
if (scheme.PurchaseSchemeProductList.Count() == 1)
{
var lastProduct = scheme.PurchaseSchemeProductList.FirstOrDefault();
if (lastProduct.PurchaseSchemeProductSkuList.Count() == 1)
{
var lastSku = lastProduct.PurchaseSchemeProductSkuList.FirstOrDefault();
if (lastSku.PurchaseSkuId == request.PurchaseSkuId &&
lastSku.SkuId == request.SkuId)
{
DeletePurchaseScheme(request.SchemeId);
return 0M;
}
else
{
throw new BusinessException("未找到需要移除的采购sku");
}
}
}
var defaultCost = 0M;
long? pssId = null;
@ -991,11 +1080,7 @@ namespace BBWYB.Server.Business
if (tartegtPurchaseProductSku != null)
{
if (schemeProduct.PurchaseSchemeProductSkuList.Count() == 1)
{
if (scheme.PurchaseSchemeProductList.Count() == 1)
throw new BusinessException("最后一个采购sku不能被移除");
deletePsp = fsql.Delete<PurchaseSchemeProduct>(schemeProduct.Id);
}
pssId = tartegtPurchaseProductSku.Id;
deletePss = fsql.Delete<PurchaseSchemeProductSku>(pssId);
}
@ -1003,7 +1088,6 @@ namespace BBWYB.Server.Business
defaultCost += schemeProduct.PurchaseSchemeProductSkuList.Where(pss => !(pss.SkuId == request.SkuId && pss.PurchaseSkuId == request.PurchaseSkuId))
.Sum(pss => ((pss.ActualPrice ?? pss.PurchaseSkuPrice) ?? 0) * (pss.PurchaseRatio ?? 1));
}
if (pssId == null)
throw new BusinessException("未找到需要移除的采购sku");
updatePs = fsql.Update<PurchaseScheme>(request.SchemeId).Set(ps => ps.DefaultCost, defaultCost);

4
BBWYB.Server.Model/Dto/Request/PurchaseScheme/BatchCURDSchemeRequest.cs

@ -7,12 +7,12 @@ namespace BBWYB.Server.Model.Dto
/// <summary>
/// 需要修改的采购方案
/// </summary>
public IList<EditPurchaseSchemeRequest> EditPurchaseSchemeList { get; set; }
public List<EditPurchaseSchemeRequest> EditPurchaseSchemeList { get; set; }
/// <summary>
/// 需要新增的采购方案
/// </summary>
public IList<InputPurchaseSchemeRequest> AddPurchaseSchemeList { get; set; }
public List<InputPurchaseSchemeRequest> AddPurchaseSchemeList { get; set; }
}

2
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeProductRequest.cs

@ -38,6 +38,6 @@
public Enums.Platform? PurchasePlatform { get; set; }
public IList<InputPurchaseSchemeProductSkuRequest> PurchaseSchemeProductSkuList { get; set; }
public List<InputPurchaseSchemeProductSkuRequest> PurchaseSchemeProductSkuList { get; set; }
}
}

2
BBWYB.Server.Model/Dto/Request/PurchaseScheme/InputPurchaseSchemeRequest.cs

@ -23,6 +23,6 @@ namespace BBWYB.Server.Model.Dto
public string ProductId { get; set; }
public string SkuId { get; set; }
public IList<InputPurchaseSchemeProductRequest> PurchaseSchemeProductList { get; set; }
public List<InputPurchaseSchemeProductRequest> PurchaseSchemeProductList { get; set; }
}
}

5
BBWYB.Server.Model/Dto/Response/PurchaseScheme/PurchaseSchemeProductSkuResponse.cs

@ -17,5 +17,10 @@
/// 采购SKU单价 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public decimal? PurchaseSkuPrice { get; set; }
/// <summary>
/// 是否失效 失效=1 其余情况默认为有效 仅在查询条件IncludePurchaseSkuBasicInfo=1时具备该值
/// </summary>
public int? IsInvalid { get; set; }
}
}

80
WebTest/MainWindow.xaml.cs

@ -126,22 +126,29 @@ private string registerName = "webContext";
if (mdsUserResponse.Data.SonDepartmentList != null && mdsUserResponse.Data.SonDepartmentList.Count > 0)
globalContext.User.SonDepartmentNames = string.Join(',', mdsUserResponse.Data.SonDepartmentList.Select(sd => sd.DepartmentName));
//if (GlobalContext.User.TeamName == "刷单组")
// return;
var res = shopService.GetDepartmentList();
if (!res.Success)
throw new Exception(res.Msg);
var allDepartmentList = res.Data.Map<IList<Department>>();
//if (GlobalContext.User.TeamName == "刷单组")
//{
//var shopList = new List<Shop>();
//foreach (var d in allDepartmentList)
// shopList.AddRange(d.ShopList);
//globalContext.User.ShopList = shopList;
IList<Department> departmentList = null;
if (globalContext.User.TeamName == "刷单组" ||
managerDepartment.Contains(globalContext.User.TeamName) ||
managerDepartment.Any(m => globalContext.User.SonDepartmentNames.Contains(m)))
{
var response = shopService.GetDepartmentList();
if (!response.Success)
throw new Exception(response.Msg);
departmentList = response.Data.Map<List<Department>>();
}
else
{
var response = mdsApiService.GetShopDetailList();
if (!response.Success)
throw new Exception(response.Msg);
departmentList = response.Data;
//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("缺少有效的部门数据");
@ -155,49 +162,6 @@ private string registerName = "webContext";
}
}
var shopList2Res = shopService.GetShopListByIds(shopIds);
if (shopList2Res.Success && shopList2Res.Data != null && shopList2Res.Data.Count() > 0)
{
foreach (var d in departmentList)
{
foreach (var shop in d.ShopList)
{
var s2 = shopList2Res.Data.FirstOrDefault(s => s.ShopId == shop.ShopId);
if (s2 != null)
{
shop.DingDingKey = s2.DingDingKey;
shop.DingDingWebHook = s2.DingDingWebHook;
shop.SkuSafeTurnoverDays = s2.SkuSafeTurnoverDays;
shop.SiNanPolicyLevel = s2.SiNanPolicyLevel;
shop.SiNanDingDingKey = s2.SiNanDingDingKey;
shop.SiNanDingDingWebHook = s2.SiNanDingDingWebHook;
shop.AppKey2 = s2.AppKey2;
shop.AppSecret2 = s2.AppSecret2;
shop.AppToken2 = s2.AppToken2;
}
}
}
}
}
for (var i = 0; i < departmentList.Count(); i++)
{
var d = departmentList[i];
for (var j = 0; j < d.ShopList.Count(); j++)
{
var shop = d.ShopList[j];
if (string.IsNullOrEmpty(shop.AppToken2))
{
d.ShopList.RemoveAt(j);
j--;
}
}
if (d.ShopList == null || d.ShopList.Count() == 0)
{
departmentList.RemoveAt(i);
i--;
}
}
globalContext.User.DepartmentList = departmentList;
}

Loading…
Cancel
Save