Browse Source

1

AddValidOverTime
506583276@qq.com 2 years ago
parent
commit
2c2d2b8fa5
  1. 6
      BBWY.Client/APIServices/PackPurchaseTaskService.cs
  2. 15
      BBWY.Client/APIServices/PurchaseService.cs
  3. 4
      BBWY.Client/BBWYAppSettings.json
  4. 61
      BBWY.Client/Models/APIModel/Response/PackPurchaseTask/ConfigPackResponse.cs
  5. 111
      BBWY.Client/Models/APIModel/Response/PackPurchaseTask/QualityTaskResponse.cs
  6. 56
      BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseSkuBasicInfoResponse.cs
  7. 21
      BBWY.Client/Models/PackTask/PackTaskModel.cs
  8. 2
      BBWY.Client/Models/QualityTask/PurchaseSku.cs
  9. 128
      BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs
  10. 8
      BBWY.Client/Views/PackTask/WareHouseListControl.xaml
  11. 60
      BBWY.Client/Views/QualityTask/QualityWindow.xaml

6
BBWY.Client/APIServices/PackPurchaseTaskService.cs

@ -1,5 +1,6 @@
using BBWY.Client.Models.APIModel;
using BBWY.Client.Models.APIModel.Request;
using BBWY.Client.Models.APIModel.Response.PackPurchaseTask;
using BBWY.Client.Models.APIModel.Response.PackTask;
using BBWY.Common.Http;
using BBWY.Common.Models;
@ -89,6 +90,11 @@ namespace BBWY.Client.APIServices
}
public ApiResponse<QualityTaskResponse> GetQualityTask(long taskId)
{
return SendRequest<QualityTaskResponse>(globalContext.QKApiHost, $"api/PackPurchaseTask/GetQualityTask?taskId={taskId}", null, null, HttpMethod.Post);
}
}
}

15
BBWY.Client/APIServices/PurchaseService.cs

@ -80,5 +80,20 @@ namespace BBWY.Client.APIServices
{
return SendRequest<object>(globalContext.BBYWApiHost, $"api/purchasescheme/DeletePurchaseScheme/{schemeId}", null, null, HttpMethod.Delete);
}
public ApiResponse<PurchaseSkuBasicInfoResponse> GetPurchaseSkuBasicInfo(string purchaseProductId, Platform platform = Platform., int priceMode = 0, int firstApiMode = 0)
{
return SendRequest<PurchaseSkuBasicInfoResponse>("http://bbwyb.qiyue666.com", $"Api/PurchaseScheme/GetPurchaseSkuBasicInfo", new
{
purchaseProductId,
platform,
priceMode,
firstApiMode
}, null, HttpMethod.Post);
}
}
}

4
BBWY.Client/BBWYAppSettings.json

@ -4,6 +4,6 @@
"MDSApiHost": "http://mdsapi.qiyue666.com",
"JOSApiHost": "",
"1688ApiHost": "",
//"QKApiHost": "http://localhost:8080"
"QKApiHost": "http://qiku.qiyue666.com"
"QKApiHost": "http://localhost:8080"
//"QKApiHost": "http://qiku.qiyue666.com"
}

61
BBWY.Client/Models/APIModel/Response/PackPurchaseTask/ConfigPackResponse.cs

@ -1,4 +1,5 @@
using BBWY.Client.Models.APIModel.Response.PackTask;
using BBWY.Client.Models.QualityTask;
using System;
using System.Collections.Generic;
using System.Text;
@ -27,36 +28,36 @@ namespace BBWY.Client.Models.APIModel
public PackConfig PackConfig { get; set; }
}
/// <summary>
/// 配件sku
/// </summary>
public class PurchaseSku
{
/// <summary>
/// 配件图
/// </summary>
public string Logo { get; set; }
/// <summary>
/// 配件商品Id
/// </summary>
public string PurchaseSkuId { get; set; }
///// <summary>
///// 配件sku
///// </summary>
//public class PurchaseSku
//{
// /// <summary>
// /// 配件图
// /// </summary>
// public string Logo { get; set; }
// /// <summary>
// /// 配件商品Id
// /// </summary>
// public string PurchaseSkuId { get; set; }
/// <summary>
/// 配件商品spuId
/// </summary>
public string PurchaseProductId { get; set; }
/// <summary>
/// 配件名称
/// </summary>
public string Title { get; set; }
/// <summary>
/// 是否需要配置合格证
/// </summary>
public bool IsNeedCer { get; set; }
// /// <summary>
// /// 配件商品spuId
// /// </summary>
// public string PurchaseProductId { get; set; }
// /// <summary>
// /// 配件名称
// /// </summary>
// public string Title { get; set; }
// /// <summary>
// /// 是否需要配置合格证
// /// </summary>
// public bool IsNeedCer { get; set; }
/// <summary>
/// 合格证配置信息
/// </summary>
public CertificateModel CerDTO { get; set; }
}
// /// <summary>
// /// 合格证配置信息
// /// </summary>
// public CertificateModel CerDTO { get; set; }
//}
}

111
BBWY.Client/Models/APIModel/Response/PackPurchaseTask/QualityTaskResponse.cs

@ -0,0 +1,111 @@
using BBWY.Client.Models.QualityTask;
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Client.Models.APIModel.Response.PackPurchaseTask
{
public class QualityTaskResponse
{
/// <summary>
/// 任务id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 拳探订单id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 备注信息
/// </summary>
public string MarkMessage { get; set; }
/// <summary>
/// Sku打包数量
/// </summary>
public int SkuCount { get; set; }
/// <summary>
/// skuid
/// </summary>
public string SkuId { get; set; }
/// <summary>
/// sku标题
/// </summary>
public string SkuName { get; set; }
/// <summary>
/// 采购方案id
/// </summary>
public string SkuPurchaseSchemeId { get; set; }
/// <summary>
/// 配件数
/// </summary>
public int GoodsNumber { get; set; }
/// <summary>
/// sku配件名称
/// </summary>
public string SkuGoodsTitle { get; set; }
/// <summary>
/// 增量1()
/// </summary>
public string Increment1 { get; set; }
/// <summary>
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
/// </summary>
public int BasicPack { get; set; }
/// <summary>
/// 打包类型(单件=0,多件=1)
/// </summary>
public int PackType { get; set; }
/// <summary>
/// 货号品名(手写上传)
/// </summary>
public string BrandName { get; set; }
/// <summary>
/// 货号
/// </summary>
public string ProductNo { get; set; }
/// <summary>
/// 分箱配置
/// </summary>
public WareHourseDTO[] WareHourses { get; set; }
public BarCodeModel BarCodeDTO { get; set; }
/// <summary>
/// 是否需要合格证
/// </summary>
public bool IsNeedBar { get; set; }
/// <summary>
/// 是否需要合格证
/// </summary>
public bool IsNeedCer { get; set; }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
public int? CertificatePosition { get; set; }
/// <summary>
/// 配件列表
/// </summary>
public PurchaseSku[] PurchaseSkus { get; set; }
}
public class WareHourseDTO
{
public int Index { get; set; }
public string WareId { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string WareName { get; set; }
/// <summary>
/// 数量
/// </summary>
public int Count { get; set; }
}
}

56
BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseSkuBasicInfoResponse.cs

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Client.Models
{
/// <summary>
/// 采购Sku基础信息对象
/// </summary>
public class PurchaseSkuBasicInfoResponse
{
/// <summary>
/// 采购SKU基础信息列表
/// </summary>
public IList<PurchaseSkuItemBasicInfoResponse> ItemList { get; set; }
/// <summary>
/// 采购商
/// </summary>
public Purchaser Purchaser { get; set; }
}
/// <summary>
/// 采购Sku基础信息对象
/// </summary>
public class PurchaseSkuItemBasicInfoResponse
{
/// <summary>
/// 采购SPU
/// </summary>
public string PurchaseProductId { get; set; }
/// <summary>
/// 采购SKU
/// </summary>
public string PurchaseSkuId { get; set; }
/// <summary>
/// 采购SPEC 1688独有属性 下单需要
/// </summary>
public string PurchaseSkuSpecId { get; set; }
/// <summary>
/// SKU标题
/// </summary>
public string Title { get; set; }
public string Logo { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
}
}

21
BBWY.Client/Models/PackTask/PackTaskModel.cs

@ -95,18 +95,19 @@ namespace BBWY.Client.Models
//加载数据
ViewModelLocator viewModelLocator = new ViewModelLocator();
var qualityViewModel = viewModelLocator.QualityTask;
qualityViewModel.TaskCount = SkuCount;
qualityViewModel.TaskId = TaskId;
//qualityViewModel.TaskCount = SkuCount;
// qualityViewModel.TaskId = TaskId;
qualityViewModel.OrderId = OrderId;
qualityViewModel.SkuId = SkuId;
qualityViewModel.LoadPackDatas();
qualityViewModel.SetAllFees = new Action<FeesItemResponse, List<string>>((feesItem, packUsers) =>
{
FeesItemResponse = feesItem;
PackUser = string.Join("\r\n", packUsers);
FeesItemResponse.DiscountAllFees = feesItem.disCount * feesItem.AllFees;
IsShowFees = feesItem.AllFees > 0 ? true : false;
});
qualityViewModel.SearchSku(this);
//qualityViewModel.LoadPackDatas();
//qualityViewModel.SetAllFees = new Action<FeesItemResponse, List<string>>((feesItem, packUsers) =>
//{
// FeesItemResponse = feesItem;
// PackUser = string.Join("\r\n", packUsers);
// FeesItemResponse.DiscountAllFees = feesItem.disCount * feesItem.AllFees;
// IsShowFees = feesItem.AllFees > 0 ? true : false;
//});
service.Show();
}

2
BBWY.Client/Models/QualityTask/PurchaseSku.cs

@ -11,6 +11,8 @@ namespace BBWY.Client.Models.QualityTask
public class PurchaseSku : NotifyObject
{
public string PurchaseProductId { get; set; }
/// <summary>
/// 配件图
/// </summary>

128
BBWY.Client/ViewModels/QualityTask/QualityViewModel.cs

@ -13,10 +13,13 @@ using System.Windows.Input;
using System.Windows;
using BBWY.Client.Models.QualityTask;
using BBWY.Client.Views.QualityTask;
using BBWY.Client.Models.APIModel.Response.PackPurchaseTask;
using NPOI.Util.ArrayExtensions;
using static Org.BouncyCastle.Math.EC.ECCurve;
namespace BBWY.Client.ViewModels
{
public class QualityViewModel:BaseVM,IDenpendency
public class QualityViewModel : BaseVM, IDenpendency
{
#region 属性
@ -68,6 +71,25 @@ namespace BBWY.Client.ViewModels
};
public ObservableCollection<string> AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } }
private ObservableCollection<string> preCompeteTimeDayList = new ObservableCollection<string> {
"今天"
};
public ObservableCollection<string> PreCompeteTimeDayList { get => preCompeteTimeDayList; set { Set(ref preCompeteTimeDayList, value); } }
private ObservableCollection<int> preCompeteTimeHourList = new ObservableCollection<int> {
12,18,21
};
public ObservableCollection<int> PreCompeteTimeHourList { get => preCompeteTimeHourList; set { Set(ref preCompeteTimeHourList, value); } }
private ObservableCollection<WareHourseDTO> wareHourseList = new ObservableCollection<WareHourseDTO> { };
public ObservableCollection<WareHourseDTO> WareHourseList { get => wareHourseList; set { Set(ref wareHourseList, value); } }
public int WareHourseCount { get; set; }
private int skuCount;
/// <summary>
/// Sku任务数
@ -299,7 +321,7 @@ namespace BBWY.Client.ViewModels
SetCertificateCommand = new RelayCommand<PurchaseSku>(SetCertificate);
LookBarCommand = new RelayCommand(LookBar);
LookCerCommand = new RelayCommand<string>(LookCer);
SearchSkuCommand = new RelayCommand<object>(SearchSku);
//SearchSkuCommand = new RelayCommand<object>(SearchSku);
IncreateList = new ObservableCollection<IncreateModel>();
foreach (var item in increates)
{
@ -324,13 +346,6 @@ namespace BBWY.Client.ViewModels
public string ShopId { get; set; }
public string UserName { get; set; }
public void Test(OrderSku order)
{
SearchSku(order);
}
#region 方法
public ICommand SetBarCodeCommand { get; set; }
public ICommand SetCertificateCommand { get; set; }
@ -429,9 +444,99 @@ namespace BBWY.Client.ViewModels
/// <summary>
/// 搜索 skuId(todo:)
/// </summary>
public void SearchSku(object obj)
public void SearchSku(PackTaskModel model)
{
InitData();
SkuId = model.SkuId;
SkuName = model.ItemList[0].SkuName;
Logo = model.ItemList[0].Logo.Replace("80x80", "200x200");
BrandName = model.ItemList[0].BrandName;
SkuCount = model.SkuCount;
ProductNo = model.ProductNo;
MarkMessage = model.MarkMessage;
PackType = model.PackType;
GoodsNumber = model.GoodsNumber;
SkuTitle = model.SkuTitle;
BasicPack = model.BasicPack;
CertificatePosition = model.CertificatePosition ;
string[] increateDatas = model.Increment1?.Split(',');
bool isSelected = false;
foreach (var item in increates)
{
isSelected = false;
if (increateDatas != null && increateDatas.Count() > 0 && increateDatas.Contains(item))
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = isSelected
});
});
}
var packTaskRes = packPurchaseTaskService.GetQualityTask(model.TaskId);
if (packTaskRes == null || !packTaskRes.Success) return;
BarCodeModel = packTaskRes.Data.BarCodeDTO;
IsNeedBarCode = packTaskRes.Data.IsNeedBar ? Need. : Need.;
IsSetBarCode = packTaskRes.Data.IsNeedBar ? false : true;
IsNeedCertificateModel = packTaskRes.Data.IsNeedCer ? Need. : Need.;
if (packTaskRes.Data.WareHourses != null)
packTaskRes.Data.WareHourses.ToList().ForEach(w =>
{
WareHourseList.Add(w);
});
if (packTaskRes.Data.PurchaseSkus != null)
{
PurchaseSkuList = new ObservableCollection<PurchaseSku>();
foreach (var item in packTaskRes.Data.PurchaseSkus)
{
if (string.IsNullOrEmpty(item.PurchaseProductId))
{
PurchaseSkuList.Add(item);continue;
}
var list = purchaseService.GetPurchaseSkuBasicInfo(item.PurchaseProductId);
if (list == null)
{
PurchaseSkuList.Add(item); continue;
}
var skuItem = list.Data.ItemList.FirstOrDefault(f => f.PurchaseSkuId == item.PurchaseSkuId);
App.Current.Dispatcher.Invoke(new Action(() =>
{
PurchaseSkuList.Add(new PurchaseSku
{
Logo = skuItem.Logo,
Title = skuItem.Title,
IsNeedCer = item.IsNeedCer,
PurchaseSkuId = item.PurchaseSkuId,
CerDTO = item.CerDTO,
IsSetCertificate = item.CerDTO == null ? true : false,
});
}));
PurchaseSkuList.Add(item);
}
}
}
public Action ReflashWindow { get; set; }
public void InitData()
@ -451,6 +556,7 @@ namespace BBWY.Client.ViewModels
IsNeedBarCode = Need.;
IsNeedCertificateModel = Need.;
}
private void OpenSkuDetail(object param)
{
var paramList = (object[])param;
@ -470,7 +576,7 @@ namespace BBWY.Client.ViewModels
}
}
#endregion
}
}

8
BBWY.Client/Views/PackTask/WareHouseListControl.xaml

@ -574,14 +574,14 @@
<Grid Grid.Row="1" >
<Border Grid.Row="0" VerticalAlignment="Top" Height="1" Background="{StaticResource Border.Brush}"/>
<StackPanel Orientation="Vertical">
<c:BButton HorizontalAlignment="Center" Height="20" VerticalAlignment="Center" Background="White" Foreground="Black" Grid.Row="1" Content="设置"
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<c:BButton HorizontalAlignment="Center" Height="20" Style="{StaticResource LinkButton}" VerticalAlignment="Center" Grid.Row="1" Content="设置"
Command="{Binding SetServiceCommand}"
Visibility="Visible" />
<c:BButton HorizontalAlignment="Center" Height="20" VerticalAlignment="Center" Background="White" Foreground="Black" Grid.Row="1" Content="设置"
Command="{Binding SetServiceCommand}"
<c:BButton HorizontalAlignment="Center" Style="{StaticResource LinkButton}" Height="20" Margin="10 0 0 0 " VerticalAlignment="Center" Grid.Row="1" Content="质检"
Command="{Binding QualityTaskCommand}"
/>
<!--Visibility="{Binding Availability,Converter={StaticResource objConverter},ConverterParameter=已到货:Visible:Collapsed}"-->

60
BBWY.Client/Views/QualityTask/QualityWindow.xaml

@ -116,33 +116,33 @@
<StackPanel Orientation="Horizontal" Height="30">
<TextBlock VerticalAlignment="Center">
<Run Text="采购数量:"/>
<Run Text="10"/>
<Run Text="{Binding SkuCount}"/>
</TextBlock>
<UniformGrid Columns="2" Margin="30 0 0 0">
<TextBlock Text="到货数量: " VerticalAlignment="Center"/>
<c:BTextBox WaterRemark="数量" Height="30"/>
<c:BTextBox WaterRemark="数量" Text="{Binding ArrivalQuantity}" Height="30"/>
</UniformGrid>
<UniformGrid Columns="2" Margin="30 0 0 0">
<TextBlock Text="良品数量: " VerticalAlignment="Center"/>
<c:BTextBox WaterRemark="数量" Height="30"/>
<c:BTextBox WaterRemark="数量" Text="{Binding GoodProductQuantity}" Height="30"/>
</UniformGrid>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 30 0 0">
<TextBlock VerticalAlignment="Center">
<Run Text="份数:"/>
<Run Text="1"/>
<Run Text="{Binding WareHourseCount}"/>
</TextBlock>
<UniformGrid Columns="3" Margin="45 0 0 0" Height="30">
<TextBlock Text="预计完成时间: " VerticalAlignment="Center"/>
<Border BorderBrush="{StaticResource Border.Brush}" Height="30" BorderThickness="1">
<hc:ComboBox BorderThickness="0"
<Border BorderBrush="{StaticResource Border.Brush}" Height="30" BorderThickness="1">
<hc:ComboBox BorderThickness="0" Text="{Binding PreCompeteTimeDayList}"
>
<ComboBoxItem IsSelected="True" Content="今天" />
</hc:ComboBox>
</Border>
<Border BorderBrush="{StaticResource Border.Brush}" Height="30" Margin="10 0 0 0" BorderThickness="1">
<hc:ComboBox BorderThickness="0" >
<hc:ComboBox BorderThickness="0" Text="{Binding PreCompeteTimeHourList}">
<ComboBoxItem IsSelected="True" Content="12点前" />
<ComboBoxItem IsSelected="True" Content="18点前" />
<ComboBoxItem IsSelected="True" Content="21点前" />
@ -155,7 +155,47 @@
</StackPanel>
<c:BTextBox WaterRemark="打包备注" Grid.Column="1" Margin="0 5 10 5" Height="80"/>
</Grid>
<Grid Width="auto" Height="90" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="20 10 0 0">
<ListBox Grid.Row="2" Grid.ColumnSpan="2"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
BorderThickness="1,1,0,1"
BorderBrush="{StaticResource Border.Brush}"
ItemsSource="{Binding WareHourseList}"
Width="Auto"
Margin="5,0,0,6"
HorizontalAlignment="Left"
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="auto" Height="90">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Index,StringFormat=第\{0\}份}" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding Count,StringFormat=第\{0\}份}" Style="{StaticResource middleTextBlock}"/>
<TextBlock Grid.Row="2" Style="{StaticResource middleTextBlock}">
<Run Text="{Binding WareName}"/>
</TextBlock>
<Border Width="1" Grid.RowSpan="3" HorizontalAlignment="Right"
Background="{StaticResource Border.Brush}"/>
<Border Height="1" Background="{StaticResource Border.Brush}"
VerticalAlignment="Bottom"/>
<Border Height="1" Background="{StaticResource Border.Brush}"
VerticalAlignment="Bottom" Grid.Row="1"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Height="90" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="20 10 0 0">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
@ -199,7 +239,7 @@
Width="150" Height="150"
VerticalAlignment="Top" Margin="25 0 0 0"
Cursor="Hand">
<b:Interaction.Triggers>
<!--<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.OpenSkuDetailCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}">
<b:InvokeCommandAction.CommandParameter>
@ -209,7 +249,7 @@
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</b:Interaction.Triggers>-->
</c:BAsyncImage>
<DockPanel VerticalAlignment="Top" Width="190" Height="150">

Loading…
Cancel
Save