Browse Source

Merge branch 'master' of http://code.qiyue666.com/pengcong001/bbwy

AddValidOverTime
shanji 2 years ago
parent
commit
d29fe5c56c
  1. 54
      BBWY.Client/APIServices/BatchPurchaseService.cs
  2. 58
      BBWY.Client/APIServices/PackTaskService.cs
  3. 8
      BBWY.Client/BBWYAppSettings.json
  4. 10
      BBWY.Client/Converters/EnumToColorConverter.cs
  5. 230
      BBWY.Client/Helpers/MyPrintHelper.cs
  6. 4
      BBWY.Client/Models/APIModel/Request/CerRequest.cs
  7. 7
      BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs
  8. 6
      BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs
  9. 4
      BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs
  10. 4
      BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs
  11. 573
      BBWY.Client/Models/BatchPurchase/BatchPublishTask.cs
  12. 15
      BBWY.Client/Models/Enums.cs
  13. 35
      BBWY.Client/Models/PackTask/CertificateModel.cs
  14. 7
      BBWY.Client/Models/PackTask/ConsumableModel.cs
  15. 87
      BBWY.Client/Models/PackTask/PackTaskModel.cs
  16. 4
      BBWY.Client/ViewModels/BaseVM.cs
  17. 175
      BBWY.Client/ViewModels/BatchPurchase/BatchPublishTaskViewModel.cs
  18. 74
      BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs
  19. 514
      BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs
  20. 18
      BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs
  21. 47
      BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
  22. 759
      BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs
  23. 85
      BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs
  24. 50
      BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs
  25. 17
      BBWY.Client/ViewModels/ViewModelLocator.cs
  26. 277
      BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml
  27. 41
      BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml.cs
  28. 56
      BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml
  29. 2
      BBWY.Client/Views/MainWindow.xaml
  30. 53
      BBWY.Client/Views/PackTask/BarcodeControl.xaml
  31. 11
      BBWY.Client/Views/PackTask/BarcodeControl.xaml.cs
  32. 224
      BBWY.Client/Views/PackTask/CerControl.xaml
  33. 14
      BBWY.Client/Views/PackTask/CerControl.xaml.cs
  34. 49
      BBWY.Client/Views/PackTask/CreatePackTask.xaml
  35. 146
      BBWY.Client/Views/PackTask/LookCerWindow.xaml
  36. 33
      BBWY.Client/Views/PackTask/LookCerWindow.xaml.cs
  37. 13
      BBWY.Client/Views/PackTask/PackTaskTotal.xaml
  38. 117
      BBWY.Client/Views/PackTask/PackTaskTotal.xaml.cs
  39. 40
      BBWY.Client/Views/PackTask/PrintWindow.xaml
  40. 73
      BBWY.Client/Views/PackTask/PrintWindow.xaml.cs
  41. 272
      BBWY.Client/Views/PackTask/PublishTaskWindow.xaml
  42. 26
      BBWY.Client/Views/PackTask/PublishTaskWindow.xaml.cs
  43. 3
      BBWY.Client/Views/PackTask/SetBarCode.xaml
  44. 73
      BBWY.Client/Views/PackTask/SetBarCode.xaml.cs
  45. 203
      BBWY.Client/Views/PackTask/SetCerControl.xaml
  46. 12
      BBWY.Client/Views/PackTask/SetCerControl.xaml.cs
  47. 174
      BBWY.Client/Views/PackTask/SetCerWindow.xaml
  48. 186
      BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs
  49. 96
      BBWY.Client/Views/PackTask/SetSpuCerWindow.xaml
  50. 56
      BBWY.Client/Views/PackTask/SetSpuCerWindow.xaml.cs
  51. 2
      BBWY.Client/Views/PackTask/TaskListControl.xaml
  52. 4
      BBWY.Client/Views/PackTask/WareHouseList.xaml
  53. 33
      BBWY.Client/Views/PackTask/WareHouseList.xaml.cs
  54. 16
      BBWY.Client/Views/PackTask/WareHouseListControl.xaml
  55. 85
      BBWY.Common/Extensions/EncryptionExtension.cs
  56. 34
      BBWY.Server.API/Controllers/BatchPurchaseController.cs
  57. 13
      BBWY.Server.API/Controllers/PurchaseOrderController.cs
  58. 32
      BBWY.Server.API/Controllers/SqlController.cs
  59. 3
      BBWY.Server.API/Startup.cs
  60. 2
      BBWY.Server.Business/FreeSqlMultiDBManager.cs
  61. 27
      BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs
  62. 72
      BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
  63. 43
      BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs
  64. 33
      BBWY.Server.Business/SQL/SqlBusiness.cs
  65. 5
      BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderV2.cs
  66. 79
      BBWY.Server.Model/Db/QK/FeesDetail.cs
  67. 192
      BBWY.Server.Model/Db/QK/PackTask.cs
  68. 16
      BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/CancelPurchaseOrderRequest.cs
  69. 8
      BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/PayPurchaseOrderRequest.cs
  70. 28
      BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/UpdatePackStateRequest.cs
  71. 7
      BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs
  72. 10
      BBWY.Server.Model/Dto/Response/PurchaseOrderV2/BatchPurchase/UpdatePackStateResponse.cs
  73. 26
      BBWY.Server.Model/Enums.cs
  74. 7
      QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs

54
BBWY.Client/APIServices/BatchPurchaseService.cs

@ -144,30 +144,54 @@ namespace BBWY.Client.APIServices
return SendRequest<PayPurchaseOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/PayPurchaseOrder", new
{
orderId,
PurchasePlatform,
purchaseAccount,
globalContext.User.Shop.ShopId,
globalContext.User.Shop.ShopName,
globalContext.User.Shop.AppKey,
globalContext.User.Shop.AppSecret,
globalContext.User.Shop.AppToken
Platform = purchaseAccount.PurchasePlatformId,
purchaseAccount.AppKey,
purchaseAccount.AppSecret,
purchaseAccount.AppToken,
}, null, HttpMethod.Post);
}
public ApiResponse<PayPurchaseOrderResponse> CancelOrder(string orderId,Platform PurchasePlatform, PurchaseAccount purchaseAccount, string remark="")
public ApiResponse<PayPurchaseOrderResponse> CancelOrder(string orderId, PurchaseAccount purchaseAccount, string remark="")
{
return SendRequest<PayPurchaseOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/CancelPurchaseOrder", new
{
orderId,
PurchasePlatform,
purchaseAccount,
Platform = purchaseAccount.PurchasePlatformId,
purchaseAccount.AppKey,
purchaseAccount.AppSecret,
purchaseAccount.AppToken,
remark,
globalContext.User.Shop.ShopId,
globalContext.User.Shop.ShopName,
globalContext.User.Shop.AppKey,
globalContext.User.Shop.AppSecret,
globalContext.User.Shop.AppToken
}, null, HttpMethod.Post);
}
/// <summary>
/// 修改打包状态
/// </summary>
/// <param name="orderId"></param>
/// <param name="PackState"></param>
/// <returns></returns>
public ApiResponse<PayPurchaseOrderResponse> UpdatePackState(string orderId, PackState packState)
{
return SendRequest<PayPurchaseOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePackState", new
{
orderId,
packState
}, null, HttpMethod.Post);
}
/// <summary>
/// 修改采购单状态
/// </summary>
/// <param name="orderId"></param>
/// <param name="PackState"></param>
/// <returns></returns>
public ApiResponse<PayPurchaseOrderResponse> UpdatePurchaseOrderState(string orderId, PurchaseOrderState PurchaseOrderState)
{
return SendRequest<PayPurchaseOrderResponse>(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePurchaseOrderState", new
{
orderId,
PurchaseOrderState
}, null, HttpMethod.Post);
}

58
BBWY.Client/APIServices/PackTaskService.cs

@ -25,7 +25,7 @@ namespace BBWY.Client.APIServices
public ApiResponse<PackTaskResultResponse> GetOrderList( string skuId = null, string taskId = null,
public ApiResponse<PackTaskResultResponse> GetOrderList(string skuId = null, string taskId = null,
DateTime? startTime = null,
DateTime? endTime = null,
TaskState? availability = null,
@ -35,7 +35,7 @@ namespace BBWY.Client.APIServices
)
{
return SendRequest<PackTaskResultResponse>(globalContext.QKApiHost, "api/PackTask/SearchNewPackTaskList", new
return SendRequest<PackTaskResultResponse>(globalContext.QKApiHost, "api/PackTask/SearchNew2PackTaskList", new
{
SkuId = skuId,
@ -49,7 +49,7 @@ namespace BBWY.Client.APIServices
ShopId = globalContext.User.Shop.ShopId.ToString()
}, null, HttpMethod.Post);
}
public ApiResponse<PackTaskResultResponse> GetWareHouseList(int? isWorry=null,string departmentName = null, string skuId = null, string taskId = null,
public ApiResponse<PackTaskResultResponse> GetWareHouseList(int? isWorry = null, string departmentName = null, string skuId = null, string taskId = null,
DateTime? startTime = null,
DateTime? endTime = null,
TaskState? availability = null,
@ -59,9 +59,9 @@ namespace BBWY.Client.APIServices
)
{
return SendRequest<PackTaskResultResponse>(globalContext.QKApiHost, "api/PackTask/SearchNewPackTaskList", new
return SendRequest<PackTaskResultResponse>(globalContext.QKApiHost, "api/PackTask/SearchNew2PackTaskList", new
{
IsWorry=isWorry,
IsWorry = isWorry,
DepartmentName = departmentName,
SkuId = skuId,
TaskId = taskId,
@ -95,7 +95,7 @@ namespace BBWY.Client.APIServices
{
HttpClientHelper helper = new HttpClientHelper(globalContext.QKApiHost);
string url = $"{globalContext.QKApiHost}/api/PackTask/SearchProduct?skuId={skuId}&ShopId={globalContext.User.Shop.ShopId}";
string url = $"{globalContext.QKApiHost}/api/PackTask/SearchProductNew?skuId={skuId}&ShopId={globalContext.User.Shop.ShopId}";
var data = helper.Get(url);
return JsonConvert.DeserializeObject<ApiResponse<ProductSkuResponse>>(data);
@ -112,7 +112,7 @@ namespace BBWY.Client.APIServices
public ApiResponse<object> UpdateTask(CreateTaskRequest createTaskRequest)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/UpdatePackTask",
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/UpdatePackTaskNew",
createTaskRequest
, null, HttpMethod.Post);
}
@ -121,7 +121,8 @@ namespace BBWY.Client.APIServices
public ApiResponse<object> DeletedTask(long taskId)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/DeletedPackTask",
new {
new
{
TaskId = taskId,
UserId = globalContext.User.Id.ToString()
}
@ -131,18 +132,18 @@ namespace BBWY.Client.APIServices
public ApiResponse<object> CreateTask(CreateTaskRequest createTaskRequest)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/CreatePackTask",
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/CreatePackTaskNew",
createTaskRequest
, null, HttpMethod.Post);
}
public ApiResponse<object> UpdateTaskStatus(long id, int taskStatus)
public ApiResponse<object> UpdateTaskStatus(long id, int taskStatus, string orderId)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/UpdatePackTaskStatus", new
{
id,
taskStatus
taskStatus,
orderId
}
, null, HttpMethod.Post);
}
@ -155,7 +156,7 @@ namespace BBWY.Client.APIServices
public ApiResponse<long> SaveCer(CerRequest cerRequest)
{
return SendRequest<long>(globalContext.QKApiHost, "api/PackTask/CommitCer", cerRequest
return SendRequest<long>(globalContext.QKApiHost, "api/PackTask/CommitCerNew", cerRequest
, null, HttpMethod.Post);
}
public ApiResponse<long> SaveSpuCer(CerRequest cerRequest)
@ -215,17 +216,34 @@ namespace BBWY.Client.APIServices
}, null, HttpMethod.Post);
}
public ApiResponse<ShopTotalResponse> BatchSettle(params long[] taskIds)
/// <summary>
/// 批量结算
/// </summary>
/// <param name="taskIds"></param>
/// <returns></returns>
public ApiResponse<object> BatchSettle(params long[] taskIds)
{
return SendRequest<ShopTotalResponse>(globalContext.QKApiHost, "api/PackTask/BatchSettle", new
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/BatchSettle", new
{
taskIds= taskIds,
userId= globalContext.User.Id.ToString(),
taskIds = taskIds,
userId = globalContext.User.Id.ToString(),
}, null, HttpMethod.Post);
}
/// <summary>
/// 取消拳探任务
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
public ApiResponse<object> CancelQTTask(string orderId)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTask/CancelQTTask", new
{
orderId,
userId = globalContext.User.Id.ToString(),
}, null, HttpMethod.Post);
}
}
public class AddConsumableRequest
{
public long TaskId { get; set; }
@ -305,6 +323,10 @@ namespace BBWY.Client.APIServices
public decimal? ConsumableFees { get; set; }
public decimal? DiscountPrice { get; set; }
public string OrderId { get; set; }
public string SkuId { get; set; }
}
public class PersonTaskModel

8
BBWY.Client/BBWYAppSettings.json

@ -1,9 +1,9 @@
{
//"BBWYApiHost": "http://localhost:5000",
"BBWYApiHost": "http://bbwytest.qiyue666.com",
"BBWYApiHost": "http://localhost:5000",
//"BBWYApiHost": "http://bbwytest.qiyue666.com",
"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"
}

10
BBWY.Client/Converters/EnumToColorConverter.cs

@ -20,16 +20,20 @@ namespace BBWY.Client.Converters
if (value == null) return DependencyProperty.UnsetValue;
Assembly assem = Assembly.GetExecutingAssembly();
Type type = assem.GetType(parameter.ToString());
var enumName = Enum.Parse(type, value.ToString());
if (value.ToString() == TaskState..GetName())
if (enumName == null) return DependencyProperty.UnsetValue;
int enumIndex = (int)enumName;
if ((enumIndex == 0))
{
return "#C1FFC1";
}
if (value.ToString() == "部分到货")
if (enumIndex == 1)
{
return "#FFDEAD";
}
if (value.ToString() == "未到货")
if(enumIndex==2)
{
return "#FFDAB9";

230
BBWY.Client/Helpers/MyPrintHelper.cs

@ -8,7 +8,9 @@ using System.Drawing.Imaging;
using System.Drawing.Printing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using WebSocketSharp;
namespace BBWY.Client.Helpers
{
@ -156,6 +158,8 @@ namespace BBWY.Client.Helpers
public static void PrintCertificate(ref PrintPageEventArgs args, CertificateModel certificate, Font font)
{
args.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
args.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
var sige = args.Graphics.VisibleClipBounds;// 宽:236 高:157 打印可视化区域
@ -189,9 +193,111 @@ namespace BBWY.Client.Helpers
private static void SetCerStander(ref PrintPageEventArgs args, CertificateModel certificate, Font font)
{
//#if DEBUG
// Bitmap bitmap = new Bitmap(236, 157);
// // Bitmap bitmap = new Bitmap(500, 500);
// Graphics graphics = Graphics.FromImage(bitmap);
// var sige = graphics.VisibleClipBounds;// 宽:236 高:157 打印可视化区域
// graphics.TranslateTransform((sige.Width - 236) / 2, 0);//设置起始位置
// graphics.DrawRectangle(new System.Drawing.Pen(System.Drawing.Brushes.Black), 5, 5, sige.Width - 10, sige.Height - 10);//画出条码编辑区域
// int bigJiange = 20;//合格证与品牌的高度差
// var heightSpace = 4;//所有行间隔高度
// if (!string.IsNullOrEmpty(certificate.ProduceDate))
// {
// bigJiange = 10; heightSpace = 3;
// }
// int standerSpace = 1;//执行标准之间的
// if (certificate.IsLogo == 1)//含图标
// {
// string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
// string path = appPath + $"/Resources/Images/3c.png";
// Image image = Image.FromFile(path);
// graphics.DrawImage(image, 190, 7, 28, 21);
// graphics.DrawString(certificate.FactoryNumber, font, System.Drawing.Brushes.Black, 188, 28);
// }
// var fontBig = new Font("宋体", 14, System.Drawing.FontStyle.Regular);
// string cerName = "合格证";
// SizeF bigSize = graphics.MeasureString(cerName, fontBig);
// float verHeight = bigJiange + bigSize.Height;
// graphics.DrawString(cerName, fontBig, System.Drawing.Brushes.Black, new PointF((236 - bigSize.Width) / 2, 10));
// graphics.DrawString($"品牌: {certificate.Brand}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
// if (!string.IsNullOrEmpty(certificate.ProductNo))
// graphics.DrawString($"型号: {certificate.ProductNo}", font, System.Drawing.Brushes.Black, new PointF(122, verHeight));
// var smallSize = graphics.MeasureString(certificate.Brand, font);//小字体高度
// verHeight += (smallSize.Height + heightSpace);
// graphics.DrawString($"品名: {certificate.BrandName}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
// graphics.DrawString($"材质: {certificate.Shader}", font, System.Drawing.Brushes.Black, new PointF(122, verHeight));
// StringBuilder sb = new StringBuilder();
// var excutes = certificate.ExcuteStander.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries);
// int hangCount = excutes.Count() / 2 + excutes.Count() % 2;//获取行数
// for (int i = 0; i < excutes.Count(); i++)
// {
// if (i % 2 == 0 && i > 0)//间隔两个换行
// {
// sb.Append("\n");
// }
// sb.Append(excutes[i]).Append(" ");
// }
// sb.Remove(sb.Length - 3, 3);
// var rows = sb.ToString().Split('\n');
// string excuteStander = "执行标准: ";
// smallSize = graphics.MeasureString(excuteStander, font);
// verHeight += (smallSize.Height + heightSpace);
// graphics.DrawString($"执行标准: {rows[0]}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
// for (int i = 1; i < rows.Count(); i++)
// {
// verHeight += (smallSize.Height + standerSpace);
// graphics.DrawString($"{rows[i]}", font, System.Drawing.Brushes.Black, new PointF(12 + smallSize.Width, verHeight));
// }
// if (!string.IsNullOrEmpty(certificate.ProduceDate))
// {
// verHeight += (smallSize.Height + heightSpace) - 3;
// graphics.DrawString($"生产日期: {certificate.ProduceDate}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
// }
// verHeight += (smallSize.Height + heightSpace);
// RectangleF rect = new RectangleF(10, verHeight, 220, smallSize.Height * 2 + heightSpace);
// var productStr = $"生产商: {certificate.ProductShop}";
// if (graphics.MeasureString(productStr, font).Width <= 220)
// {
// graphics.DrawString(productStr, font, System.Drawing.Brushes.Black, 10, verHeight);
// verHeight += smallSize.Height + heightSpace;
// }
// else
// {
// graphics.DrawString(productStr, font, System.Drawing.Brushes.Black, rect);
// verHeight += 2 * smallSize.Height + heightSpace;
// }
// var productShop = graphics.MeasureString("生产商", font);
// var adress = graphics.MeasureString("地 址", font);
// var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight - 2, 220, smallSize.Height * 3 + heightSpace);
// graphics.DrawString($"地 址: {certificate.ProductAdress}", font, System.Drawing.Brushes.Black, rect1);
// var applicationPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
// bitmap.Save($"{applicationPath}/{certificate.LabelModel}-{certificate.GoodsNumber}.jpg", ImageFormat.Png);
int bigJiange = 20;//合格证与品牌的高度差
var heightSpace = 4;//所有行间隔高度
int standerSpace = 1;//执行标准之间的
if (!string.IsNullOrEmpty(certificate.ProduceDate))
{
bigJiange = 10; heightSpace = 3;
}
if (certificate.IsLogo == 1)//含图标
{
string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
@ -211,6 +317,7 @@ namespace BBWY.Client.Helpers
args.Graphics.DrawString(cerName, fontBig, System.Drawing.Brushes.Black, new PointF((236 - bigSize.Width) / 2, 10));
args.Graphics.DrawString($"品牌: {certificate.Brand}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
if(!string.IsNullOrEmpty(certificate.ProductNo))
args.Graphics.DrawString($"型号: {certificate.ProductNo}", font, System.Drawing.Brushes.Black, new PointF(122, verHeight));
var smallSize = args.Graphics.MeasureString(certificate.Brand, font);//小字体高度
@ -240,11 +347,17 @@ namespace BBWY.Client.Helpers
for (int i = 1; i < rows.Count(); i++)
{
verHeight += (smallSize.Height + standerSpace);
verHeight += (smallSize.Height + standerSpace) - 3;
args.Graphics.DrawString($"{rows[i]}", font, System.Drawing.Brushes.Black, new PointF(10 + smallSize.Width, verHeight));
}
if (!string.IsNullOrEmpty(certificate.ProduceDate))
{
verHeight += (smallSize.Height + heightSpace);
args.Graphics.DrawString($"生产日期: {certificate.ProduceDate}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
}
verHeight += (smallSize.Height + heightSpace);
RectangleF rect = new RectangleF(10, verHeight, 220, smallSize.Height * 2 + heightSpace);
var productStr = $"生产商: {certificate.ProductShop}";
if (args.Graphics.MeasureString(productStr, font).Width <= 220)
@ -260,19 +373,121 @@ namespace BBWY.Client.Helpers
var productShop = args.Graphics.MeasureString("生产商", font);
var adress = args.Graphics.MeasureString("地 址", font);
var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight, 220, smallSize.Height * 3 + heightSpace);
var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight- 2, 220, smallSize.Height * 3 + heightSpace);
args.Graphics.DrawString($"地 址: {certificate.ProductAdress}", font, System.Drawing.Brushes.Black, rect1);
}
private static void SetCerNoXingHao(ref PrintPageEventArgs args, CertificateModel certificate, Font font)
{
//Bitmap bitmap = new Bitmap(236, 157);
//Graphics graphics = Graphics.FromImage(bitmap);
//graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//var sige = graphics.VisibleClipBounds;// 宽:236 高:157 打印可视化区域
//graphics.TranslateTransform((sige.Width - 236) / 2, 0);//设置起始位置
//graphics.DrawRectangle(new System.Drawing.Pen(System.Drawing.Brushes.Black), 5, 5, sige.Width - 10, sige.Height - 10);//画出条码编辑区域
//graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//var twoWidth = graphics.MeasureString("适用", font);
//var oneWidth = graphics.MeasureString("适", font);
//int bigJiange = 20;//合格证与品牌的高度差
//if (!string.IsNullOrEmpty(certificate.ProduceDate)) bigJiange = 10;
//var heightSpace = 4;//所有行间隔高度
//int standerSpace = 1;//执行标准之间的
//var fontBig = new Font("宋体", 14, System.Drawing.FontStyle.Regular);
//string cerName = "合格证";
//SizeF bigSize = graphics.MeasureString(cerName, fontBig);
//float verHeight = bigJiange + bigSize.Height;
//graphics.DrawString(cerName, fontBig, System.Drawing.Brushes.Black, new PointF((236 - bigSize.Width) / 2, 10));
//graphics.DrawString($"品牌: {certificate.Brand}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
//graphics.DrawString($"品名: {certificate.BrandName}", font, System.Drawing.Brushes.Black, new PointF(122, verHeight));
//var smallSize = graphics.MeasureString(certificate.BrandName, font);//小字体高度
//verHeight += (smallSize.Height + heightSpace);
//graphics.DrawString($"材质: {certificate.Shader}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
//switch (certificate.LabelModel)
//{
// case CertificateLabelModel.标准无3c:
// break;
// case CertificateLabelModel.标准有3c:
// break;
// case CertificateLabelModel.无型号:
// break;
// case CertificateLabelModel.适用年龄:
// graphics.DrawString($"适用年龄: {certificate.ApplyAge}", font, System.Drawing.Brushes.Black, new PointF(125 - twoWidth.Width, verHeight));
// break;
// default:
// break;
//}
////graphics.DrawString($"材质: {certificate.Shader}", font, System.Drawing.Brushes.Black, new PointF(122, verHeight));
//StringBuilder sb = new StringBuilder();
//var excutes = certificate.ExcuteStander.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries);
//int hangCount = excutes.Count() / 2 + excutes.Count() % 2;//获取行数
//for (int i = 0; i < excutes.Count(); i++)
//{
// if (i % 2 == 0 && i > 0)//间隔两个换行
// {
// sb.Append("\n");
// }
// sb.Append(excutes[i]).Append(" ");
//}
//sb.Remove(sb.Length - 3, 3);
//var rows = sb.ToString().Split('\n');
//string excuteStander = "执行标准: ";
//smallSize = graphics.MeasureString(excuteStander, font);
//verHeight += (smallSize.Height + heightSpace);
//graphics.DrawString($"执行标准: {rows[0]}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
//for (int i = 1; i < rows.Count(); i++)
//{
// verHeight += (smallSize.Height + standerSpace);
// graphics.DrawString($"{rows[i]}", font, System.Drawing.Brushes.Black, new PointF(12 + smallSize.Width, verHeight));
//}
//if (!string.IsNullOrEmpty(certificate.ProduceDate))
//{
// verHeight += (smallSize.Height + heightSpace)-3;
// graphics.DrawString($"生产日期: {certificate.ProduceDate}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
//}
//verHeight += (smallSize.Height + heightSpace);
//RectangleF rect = new RectangleF(10, verHeight, 220, smallSize.Height * 2 + heightSpace);
//var productStr = $"生产商: {certificate.ProductShop}";
//if (graphics.MeasureString(productStr, font).Width <= 220)
//{
// graphics.DrawString(productStr, font, System.Drawing.Brushes.Black, 10, verHeight);
// verHeight += smallSize.Height + heightSpace;
//}
//else
//{
// graphics.DrawString(productStr, font, System.Drawing.Brushes.Black, rect);
// verHeight += 2 * smallSize.Height + heightSpace;
//}
//var productShop = graphics.MeasureString("生产商", font);
//var adress = graphics.MeasureString("地 址", font);
//var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight - 2, 220, smallSize.Height * 3 + heightSpace);
//graphics.DrawString($"地 址: {certificate.ProductAdress}", font, System.Drawing.Brushes.Black, rect1);
//var applicationPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
//bitmap.Save($"{applicationPath}/{certificate.LabelModel}-{certificate.GoodsNumber}.jpg", ImageFormat.Png);
int bigJiange = 20;//合格证与品牌的高度差
var heightSpace = 4;//所有行间隔高度
int standerSpace = 1;//执行标准之间的
if (!string.IsNullOrEmpty(certificate.ProduceDate)) bigJiange = 10;
var fontBig = new Font("宋体", 14, System.Drawing.FontStyle.Regular);
string cerName = "合格证";
SizeF bigSize = args.Graphics.MeasureString(cerName, fontBig);
@ -329,6 +544,11 @@ namespace BBWY.Client.Helpers
verHeight += (smallSize.Height + standerSpace);
args.Graphics.DrawString($"{rows[i]}", font, System.Drawing.Brushes.Black, new PointF(10 + smallSize.Width, verHeight));
}
if (!string.IsNullOrEmpty(certificate.ProduceDate))
{
verHeight += (smallSize.Height + heightSpace)-3;
args.Graphics.DrawString($"生产日期: {certificate.ProduceDate}", font, System.Drawing.Brushes.Black, new PointF(10, verHeight));
}
verHeight += (smallSize.Height + heightSpace);
RectangleF rect = new RectangleF(10, verHeight, 220, smallSize.Height * 2 + heightSpace);
@ -346,11 +566,13 @@ namespace BBWY.Client.Helpers
var productShop = args.Graphics.MeasureString("生产商", font);
var adress = args.Graphics.MeasureString("地 址", font);
var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight, 220, smallSize.Height * 3 + heightSpace);
var rect1 = new RectangleF(10 + productShop.Width - adress.Width, verHeight-2, 220, smallSize.Height * 3 + heightSpace);
args.Graphics.DrawString($"地 址: {certificate.ProductAdress}", font, System.Drawing.Brushes.Black, rect1);
}
public static void SaveImage(PrintPageEventArgs args)

4
BBWY.Client/Models/APIModel/Request/CerRequest.cs

@ -67,5 +67,9 @@ namespace BBWY.Client.Models.APIModel.Request
/// 适用年龄
/// </summary>
public string ApplyAge { get; set; }
public int GoodsNumber { get; set; }
public string ProduceDate { get; set; }
}
}

7
BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs

@ -92,15 +92,22 @@ namespace BBWY.Client.Models.APIModel.Request
/// </summary>
public long? BarCodeId { get; set; }
/// <summary>
/// 合格证Id
/// </summary>
public long? CertificateId { get; set; }
/// <summary>
/// 合格证Id
/// </summary>
public string CerId { get; set; }
/// <summary>
/// 合格证位置
/// </summary>
public int? CertificatePosition { get; set; }
public Worry IsWorry { get; set; }
public string OrderId { get; set; }
public Platform Platform { get; set; }
}
}

6
BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs

@ -173,7 +173,13 @@ namespace BBWY.Client.Models
/// </summary>
public PurchaseOrderMode PurchaseOrderMode { get; set; }
/// <summary>
/// 打包状态(待发布 = 0, 打包中 = 1, 已完成 = 2)
/// </summary>
public PackState PackState { get; set; }
public IList<PurchaseOrderSkuResponse> ItemList { get; set; }
}
}

4
BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs

@ -158,7 +158,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask
public string MarkMessage { get; set; }
public BarCodeModel BarCodeDTO { get; set; }
public CertificateModel certificate { get; set; }
public CertificateModel[] cers { get; set; }
/// <summary>
/// 是否加急
/// </summary>
@ -169,7 +169,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask
/// 品牌
/// </summary>
public string Brand { get; set; }
public string OrderId { get; set; }
}
//public class FeesItemTypeDTO :NotifyObject

4
BBWY.Client/Models/APIModel/Response/PackTask/ProductSkuResponse.cs

@ -51,7 +51,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask
/// <summary>
/// 合格证信息
/// </summary>
public CertificateModel Certificate { get; set; }
public CertificateModel[] Cers { get; set; }
/// <summary>
/// 合格证信息
/// </summary>
@ -98,7 +98,7 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask
/// <summary>
/// 合格证
/// </summary>
public long? CertificateId { get; set; }
public string CertificateId { get; set; }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)

573
BBWY.Client/Models/BatchPurchase/BatchPublishTask.cs

@ -0,0 +1,573 @@
using BBWY.Client.APIServices;
using BBWY.Client.Models.PackTask;
using BBWY.Client.ViewModels;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Models;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace BBWY.Client.Models
{
//public class ComboxItem
//{
// public int { get; set; }
//}
public class BatchPublishTask : NotifyObject
{
#region 属性
private bool isSelected;
public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } }
private ObservableCollection<string> worryList = new ObservableCollection<string> {
"否","是"
};
public ObservableCollection<string> WorryList { get => worryList; set { Set(ref worryList, value); } }
private ObservableCollection<string> positionTypeList = new ObservableCollection<string> {
"商家仓","齐越仓", "京东仓","聚水潭仓"};
public ObservableCollection<string> PositionTypeList { get => positionTypeList; set { Set(ref positionTypeList, value); } }
private ObservableCollection<string> packTypeList = new ObservableCollection<string> {
"单件","多件"
};
public ObservableCollection<string> PackTypeList { get => packTypeList; set { Set(ref packTypeList, value); } }
private ObservableCollection<string> basicPackList = new ObservableCollection<string> {
"快递袋","纸箱","麻袋"
};
public ObservableCollection<string> BasicPackList { get => basicPackList; set { Set(ref basicPackList, value); } }
private ObservableCollection<string> isNeedBarCodeList = new ObservableCollection<string> {
"需要", "不需要" };
public ObservableCollection<string> IsNeedBarCodeList { get => isNeedBarCodeList; set { Set(ref isNeedBarCodeList, value); } }
private ObservableCollection<string> certificatePositionList = new ObservableCollection<string> {
"无","外部包装","产品包装"
};
public ObservableCollection<string> CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } }
private ObservableCollection<string> availabilityList = new ObservableCollection<string> {
"已到货","部分到货","未到货"
};
public ObservableCollection<string> AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } }
private int skuCount;
/// <summary>
/// Sku任务数
/// </summary>
public int SkuCount { get => skuCount; set { Set(ref skuCount, value); } }
private string skuId;
/// <summary>
/// Sku
/// </summary>
public string SkuId { get => skuId; set { Set(ref skuId, value); } }
private string logo;
/// <summary>
/// 店铺Sku图链接
/// </summary>
public string Logo { get => logo; set { Set(ref logo, value); } }
private string skuName;
/// <summary>
/// 采购Sku名称
/// </summary>
public string SkuName { get => skuName; set { Set(ref skuName, value); } }
private string brand;
/// <summary>
/// 品牌
/// </summary>
public string Brand { get => brand; set { Set(ref brand, value); } }
private string productNo;
/// <summary>
/// 货号
/// </summary>
public string ProductNo { get => productNo; set { Set(ref productNo, value); } }
private string brandName;
/// <summary>
/// 品名(手写上传)
/// </summary>
public string BrandName { get => brandName; set { Set(ref brandName, value); } }
private int goodsNumber;
/// <summary>
/// 配件数
/// </summary>
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private Worry isWorry;
/// <summary>
/// 是否加急
/// </summary>
public Worry IsWorry { get => isWorry; set { Set(ref isWorry, value); } }
private TaskState availability;
/// <summary>
/// 到货情况(待收货=0,部分收货=1,已到货=2)
/// </summary>
public TaskState Availability { get => availability; set { Set(ref availability, value); } }
private PackType packType;
/// <summary>
/// 打包类型(单件=0,多件=1)
/// </summary>
public PackType PackType { get => packType; set { Set(ref packType, value); } }
private BasicPack basicPack;
/// <summary>
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
/// </summary>
public BasicPack BasicPack { get => basicPack; set { Set(ref basicPack, value); } }
private PositionType positionType;
/// <summary>
/// 落仓(本地仓=0,齐越仓=1,京东仓=2)
/// </summary>
public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } }
private string skuTitle;
/// <summary>
/// sku配件商品名称
/// </summary>
public string SkuTitle { get => skuTitle; set { Set(ref skuTitle, value); } }
private Need isNeedBarCode;
/// <summary>
/// 是否需要合格证
/// </summary>
public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
private Need isNeedCertificateModel;
/// <summary>
/// 是否需要条形码
/// </summary>
public Need IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } }
private BarCodeModel barCodeModel;
/// <summary>
/// 条形码
/// </summary>
public BarCodeModel BarCodeModel { get => barCodeModel; set { Set(ref barCodeModel, value); } }
private bool isSetBarCode;
/// <summary>
/// 设置显示(条形码)
/// </summary>
public bool IsSetBarCode
{
get => isSetBarCode;
set
{
Set(ref isSetBarCode, value);
IsNeedBarCode = IsSetBarCode ? Need. : Need.;
}
}
private bool isSetCertificate;
/// <summary>
/// 设置显示(合格证)
/// </summary>
public bool IsSetCertificate
{
get => isSetCertificate; set
{
Set(ref isSetCertificate, value);
IsNeedCertificateModel = IsSetCertificate ? Need. : Need.;
}
}
private string setSpuCerStatus;
public string SetSpuCerStatus { get => setSpuCerStatus; set { Set(ref setSpuCerStatus, value); } }
private bool isSetSpuCertificate = true;
/// <summary>
/// 设置spu显示(合格证)
/// </summary>
public bool IsSetSpuCertificate
{
get => isSetSpuCertificate; set
{
Set(ref isSetSpuCertificate, value);
SetSpuCerStatus = IsSetSpuCertificate ? "设置spu模板" : "修改spu模板";
}
}
private string saveTask;
/// <summary>
/// 设置显示(合格证)
/// </summary>
public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } }
private string spuId;
/// <summary>
/// 合格证
/// </summary>
public string SpuId { get => spuId; set { Set(ref spuId, value); } }
private CertificateModel spuCertificateModel;
/// <summary>
/// spu合格证
/// </summary>
public CertificateModel SpuCertificateModel { get => spuCertificateModel; set { Set(ref spuCertificateModel, value); } }
private CertificateModel[] certificateModel;
/// <summary>
/// 合格证
/// </summary>
public CertificateModel[] CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
private CertificatePosition certificatePosition;
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
public CertificatePosition CertificatePosition { get => certificatePosition; set { Set(ref certificatePosition, value); } }
/// <summary>
/// 注意事项(对接备注)
/// </summary>
private string markMessage;
/// <summary>
/// 注意事项(对接备注)
/// </summary>
public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } }
private ObservableCollection<IncreateModel> increateList;
/// <summary>
/// 增量耗材查询关键字
/// </summary>
public ObservableCollection<IncreateModel> IncreateList { get => increateList; set { Set(ref increateList, value); } }
#endregion
string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" };
public PackTaskService packTaskService;
public ProductService productService;
public BatchPublishTask()
{
IncreateList = new ObservableCollection<IncreateModel>();
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
SetBarCodeCommand = new RelayCommand(SetBarCode);
SetCertificateCommand = new RelayCommand(SetCertificate);
LookBarCommand = new RelayCommand(LookBar);
LookCerCommand = new RelayCommand(LookCer);
}
#region 方法
public ICommand SetBarCodeCommand { get; set; }
public ICommand SetCertificateCommand { get; set; }
public ICommand LookBarCommand { get; set; }
public ICommand LookCerCommand { get; set; }
private void SetBarCode()
{
if (string.IsNullOrEmpty(SkuId))
{
return;
}
if (BarCodeModel == null)
{
BarCodeModel = new BarCodeModel();
BarCodeModel.ProductNo = ProductNo;
BarCodeModel.Brand = Brand;
BarCodeModel.SkuId = SkuId;
BarCodeModel.SkuName = SkuName;
}
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
SetBarCodeWindow setBarCodeWindow = new SetBarCodeWindow();
setBarCodeWindow.LoadData(BarCodeModel, packTaskService);
setBarCodeWindow.SaveResult = b =>
{
BarCodeModel = b;
IsSetBarCode = false;
IsNeedBarCode = Need.;
};
setBarCodeWindow.Show();
}
/// <summary>
/// 设置合格证
/// </summary>
private void SetCertificate()
{
if (string.IsNullOrEmpty(SkuId))
return;
SearSpuCer();
if (CertificateModel == null)
{
CertificateModel = new CertificateModel[] {
new CertificateModel{
ProductNo = ProductNo,
Brand = Brand,
SkuId = SkuId
}
};
}
if (!string.IsNullOrEmpty(BrandName))
foreach (var item in CertificateModel) item.BrandName = BrandName;
SetCerWindow setCerWindow = new SetCerWindow();
setCerWindow.LoadData(CertificateModel, packTaskService, spuCertificateModel, IsSetSpuCertificate);
setCerWindow.SaveResult = s =>
{
CertificateModel = s;
IsSetCertificate = false;
IsNeedCertificateModel = Need.;
};
setCerWindow.Show();
}
/// <summary>
/// 查看合格证
/// </summary>
private void LookCer()
{
LookCerWindow lookCerWindow = new LookCerWindow(CertificateModel);
lookCerWindow.Show();
}
/// <summary>
/// 查看条形码
/// </summary>
private void LookBar()
{
LookBarCodeWindow look = new LookBarCodeWindow();
look.SetData(BarCodeModel);
look.Show();
}
/// <summary>
/// 搜索 skuId
/// </summary>
public void SearchSku(string skuid)
{
if (string.IsNullOrEmpty(skuid))
return;
ApiResponse<ProductListResponse> productApiResponse = null;
var skuResponse = productService.GetProductSkuList(string.Empty, skuid);
if (skuResponse.Success)
{
if (skuResponse.Data.Count == 0)
{
return;
}
Logo = skuResponse.Data[0].Logo.Replace("80x80", "200x200");
SkuName = skuResponse.Data[0].Title;
SpuId = skuResponse.Data[0].ProductId;
productApiResponse = productService.GetProductList(skuResponse.Data[0].ProductId, string.Empty, string.Empty, 1);
if (productApiResponse.Success)
{
if (productApiResponse.Data.Count == 0)
{
return;
}
ProductNo = productApiResponse.Data.Items[0].ProductItemNum;
Brand = productApiResponse.Data.Items[0].BrandName;
}
var productSku = packTaskService.GetProductSku(skuid);
if (productSku == null || !productSku.Success)
{
return;
}
if (productSku.Data.PackConfig != null)
{
var config = productSku.Data.PackConfig;
SkuTitle = config.SkuGoodsTitle;
GoodsNumber = config.GoodsNumber;
PackType = (PackType)config.PackType;
BasicPack = (BasicPack)config.BasicPack;
Availability = (TaskState)config.Availability;
MarkMessage = config.MarkMessage;
CertificatePosition = config.CertificatePosition == null ? CertificatePosition. : (CertificatePosition)config.CertificatePosition.Value;
// Increment1 = config.Increment1;
string[] increateDatas = config.Increment1.Split(',');
bool isSelected = false;
foreach (var item in increates)
{
isSelected = false;
if (increateDatas.Contains(item))
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = isSelected
});
});
}
}
BrandName = productSku.Data.BrandName;
CertificateModel = productSku.Data.Cers;
IsSetCertificate = false;
if (CertificateModel == null)
{
CertificateModel = new CertificateModel[] {
new CertificateModel{ }
};
IsSetCertificate = true;
}
foreach (var item in CertificateModel)
{
item.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
item.BrandName = BrandName;
item.ProductNo = ProductNo;
item.SkuId = skuid;
}
BarCodeModel = productSku.Data.BarCodeModel;
IsSetBarCode = false;
if (BarCodeModel == null)
{
BarCodeModel = new BarCodeModel();
IsSetBarCode = true;
}
BarCodeModel.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
BarCodeModel.ProductNo = ProductNo;
BarCodeModel.SkuId = skuid;
BarCodeModel.SkuName = SkuName;
}
else
{
App.Current.Dispatcher.Invoke(() => MessageBox.Show(skuResponse.Msg, "加载sku"));
return;
}
}
public void SearSpuCer()
{
if (string.IsNullOrEmpty(SpuId))
{
SearchSku(SkuId);
return;
}
SpuId = SpuId.Trim();//去掉空格 避免数据异常
var productSku = packTaskService.GetSpuCer(SpuId);
if (productSku == null || !productSku.Success)
{
IsSetSpuCertificate = true;
return;
}
SpuCertificateModel = productSku.Data;
IsSetSpuCertificate = false;
if (SpuCertificateModel == null)
{
SpuCertificateModel = new CertificateModel();
IsSetSpuCertificate = true;
SpuCertificateModel.Brand = Brand;
SpuCertificateModel.BrandName = BrandName;
SpuCertificateModel.ProductNo = ProductNo;
SpuCertificateModel.SpuId = SpuId;
}
}
public void InitData()
{
IncreateList = new ObservableCollection<IncreateModel>();
SpuId = string.Empty;
SaveTask = "发布";
Logo = string.Empty;
SkuId = "";
SkuCount = 0;
SkuName = string.Empty;
ProductNo = string.Empty;
Brand = string.Empty;
BrandName = string.Empty;
this.MarkMessage = "";
IsSetBarCode = true;
IsSetCertificate = true;
BarCodeModel = null;
CertificateModel = null;
SkuTitle = string.Empty;
GoodsNumber = 0;
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
//SearchSku(SkuId);
}
#endregion
}
}

15
BBWY.Client/Models/Enums.cs

@ -243,9 +243,10 @@
/// </summary>
public enum PositionType
{
= 0,
= 0,
= 1,
= 2
= 2,
= 3
}
/// <summary>
/// 合格证包装位置
@ -384,4 +385,14 @@
= 0,
= 1
}
public enum Need
{
=0,
=1
}
public enum PackState
{
= 0, = 1, = 2
}
}

35
BBWY.Client/Models/PackTask/CertificateModel.cs

@ -51,10 +51,14 @@ namespace BBWY.Client.Models
/// <summary>
/// 执行标准
/// </summary>
public string ExcuteStander { get => excuteStander; set {
public string ExcuteStander
{
get => excuteStander; set
{
Set(ref excuteStander, value);
GetExcuteStanderFormat();
} }
}
}
private string excuteStanderFormat;
@ -81,10 +85,10 @@ namespace BBWY.Client.Models
/// </summary>
public string ProductNo { get => productNo; set { Set(ref productNo, value); } }
/// <summary>
/// 生产日期
/// </summary>
public DateTime ProductDate { get; set; }
///// <summary>
///// 生产日期
///// </summary>
//public DateTime ProductDate { get; set; }
/// <summary>
/// 经销商
@ -115,7 +119,8 @@ namespace BBWY.Client.Models
void GetExcuteStanderFormat()
{
StringBuilder sb = new StringBuilder();
if (this.ExcuteStander.Contains(",")|| this.ExcuteStander.Contains(","))//有逗号就拆分
if (!string.IsNullOrEmpty(ExcuteStander))
if (this.ExcuteStander.Contains(",") || this.ExcuteStander.Contains(","))//有逗号就拆分
{
var excutes = this.ExcuteStander.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < excutes.Length; i++)
@ -133,5 +138,21 @@ namespace BBWY.Client.Models
this.ExcuteStanderFormat = ExcuteStander;
}
private int goodsNumber =1;
/// <summary>
/// 配件序号
/// </summary>
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private string produceDate;
/// <summary>
/// 生产日期
/// </summary>
public string ProduceDate { get => produceDate; set { Set(ref produceDate, value); } }
}
}

7
BBWY.Client/Models/PackTask/ConsumableModel.cs

@ -4,11 +4,13 @@ using BBWY.Client.ViewModels;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Models;
using GalaSoft.MvvmLight.Command;
using HandyControl.Controls;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Resources;
using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.TextFormatting;
@ -95,6 +97,11 @@ namespace BBWY.Client.Models.PackTask
public void DeletedConsumable(ObservableCollection<ConsumableModel> list)
{
MessageBoxResult result =System.Windows. MessageBox.Show("是否删除?", "提示",
MessageBoxButton.YesNo,
MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes) return;
var res = consumableService.Deleted(Id);
if (res.Success)
{

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

@ -27,10 +27,8 @@ namespace BBWY.Client.Models
private long id;
public long Id { get => id; set { Set(ref id, value); } }
private readonly PackTaskService packTaskService;
readonly WorkProcessService workProcessService;
readonly IncreateServiceService increateServiceService;
public ICommand SetTaskStatusCommand { get; set; }
public ICommand PrintBarcodeCommand { get; set; }
public ICommand PrintCerCommand { get; set; }
@ -38,66 +36,55 @@ namespace BBWY.Client.Models
public ICommand LookBarCommand { get; set; }
public ICommand SetServiceCommand { get; set; }
public ConsumableService consumableService;
/// <summary>
/// 修改任务
/// </summary>
public ICommand UpdateTaskCommand { get; set; }
/// <summary>
/// 删除任务
/// </summary>
public ICommand DeletedTaskCommand { get; set; }
public Action ReflashTask { get; set; }
private void DeletedTask()
{
MessageBoxResult result = MessageBox.Show("确定删除?", "提示",
MessageBoxButton.YesNo,
MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes) return;
packTaskService.DeletedTask(TaskId);
if (ReflashTask != null)
ReflashTask();//刷新界面
}
private void UpdateTask()
{
CreatePackTask create = new CreatePackTask();
ViewModelLocator viewModel = new ViewModelLocator();
var createViewModel = viewModel.CreateTaskView;
if (createViewModel.ReflashWindow == null)
{
createViewModel.ReflashWindow = ReflashTask;
}
create.SendData(this);//初始化数据
create.ShowDialog();
var publicTaskViewModel = viewModel.PublishTask;
if (publicTaskViewModel.ReflashWindow == null)
publicTaskViewModel.ReflashWindow = ReflashTask;
publicTaskViewModel.InitData(this);
PublishTaskWindow publish = new PublishTaskWindow();
publish.Show();
//CreatePackTask create = new CreatePackTask();
//ViewModelLocator viewModel = new ViewModelLocator();
//var createViewModel = viewModel.CreateTaskView;
//if (createViewModel.ReflashWindow == null)
//{
// createViewModel.ReflashWindow = ReflashTask;
//}
//create.SendData(this);//初始化数据
//create.ShowDialog();
}
public PackTaskModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService)
public PackTaskModel()
{
SetTaskStatusCommand = new RelayCommand<long>(SetTaskStatus);
PrintBarcodeCommand = new RelayCommand(PrintBarcode);
PrintCerCommand = new RelayCommand(PrintCer);
LookBarCommand = new RelayCommand(LookBar);
LookCerCommand = new RelayCommand(LookCer);
SetServiceCommand = new RelayCommand(SetService);
UpdateTaskCommand = new RelayCommand(UpdateTask);
DeletedTaskCommand = new RelayCommand(DeletedTask);
this.packTaskService = packTaskService;
this.consumableService = consumableService;
this.workProcessService = workProcessService;
this.increateServiceService = increateServiceService;
}
private void SetService()
@ -108,12 +95,14 @@ namespace BBWY.Client.Models
var serviceViewModel = viewModelLocator.PackServiceList;
serviceViewModel.TaskCount = SkuCount;
serviceViewModel.TaskId = TaskId;
serviceViewModel.OrderId= OrderId;
serviceViewModel.SkuId =SkuId ;
serviceViewModel.LoadPackDatas();
serviceViewModel.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();
@ -199,22 +188,6 @@ namespace BBWY.Client.Models
printWindow.Show();
}
public void SetTaskStatus(long taskId)
{
if (this.TaskStatus == TaskStateType.)
{
return;
}
///修改完成
var model = packTaskService.UpdateTaskStatus(taskId, 1);
if (model != null && model.Success)
{
this.TaskStatus = TaskStateType.;
new TipsWindow("修改成功").Show();
}
}
/*
public Dictionary<string, string> LoadBarLabelModels()
{
@ -447,11 +420,11 @@ namespace BBWY.Client.Models
/// </summary>
public BarCodeModel BarCodeModel { get => barCodeModel; set { Set(ref barCodeModel, value); } }
private CertificateModel certificateModel;
private CertificateModel[] certificateModel;
/// <summary>
/// 合格证
/// </summary>
public CertificateModel CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
public CertificateModel[] CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
@ -497,6 +470,8 @@ namespace BBWY.Client.Models
public FeesItemResponse FeesItemResponse { get => feesItemResponse; set { Set(ref feesItemResponse, value); } }
public IList<SkuMessage> ItemList { get; set; }
public string OrderId { get; set; }
}
public class SkuMessage : NotifyObject

4
BBWY.Client/ViewModels/BaseVM.cs

@ -22,11 +22,11 @@ namespace BBWY.Client.ViewModels
LoadCommand = new RelayCommand(Load);
UnloadCommand = new RelayCommand(Unload);
CopyTextCommand = new RelayCommand<string>(s =>
CopyTextCommand = new RelayCommand<object>(s =>
{
try
{
Clipboard.SetText(s);
Clipboard.SetText(s.ToString());
}
catch (Exception ex)
{

175
BBWY.Client/ViewModels/BatchPurchase/BatchPublishTaskViewModel.cs

@ -0,0 +1,175 @@
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Models;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Linq;
using System.Windows;
using GalaSoft.MvvmLight.Messaging;
namespace BBWY.Client.ViewModels
{
public class BatchPublishTaskViewModel : BaseVM, IDenpendency
{
private ObservableCollection<BatchPublishTask> batchPublishTasks;
public ObservableCollection<BatchPublishTask> BatchPublishTasks { get => batchPublishTasks; set { Set(ref batchPublishTasks, value); } }
// public ObservableCollection<BatchPublishTask> BatchPublishTasks;
PackTaskService packTaskService;
ProductService productService;
GlobalContext globalContext;
private bool isLoading = false;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
public ICommand OpenSkuDetailCommand { get; set; }
public ICommand CreateTaskCommand { get; set; }
public BatchPublishTaskViewModel(PackTaskService packTaskService, ProductService productService, GlobalContext globalContext)
{
BatchPublishTasks = new ObservableCollection<BatchPublishTask>();
this.packTaskService = packTaskService;
this.productService = productService;
this.globalContext = globalContext;
CreateTaskCommand = new RelayCommand<object>(CreateTask);
OpenSkuDetailCommand = new RelayCommand<object>(OpenSkuDetail);
}
private void OpenSkuDetail(object param)
{
var paramList = (object[])param;
// var orderId = paramList[0].ToString();
var skuId = paramList[0].ToString();
var url = $"https://item.jd.com/{skuId}.html";
try
{
System.Diagnostics.Process.Start("explorer.exe", url);
}
catch (Exception ex)
{
Clipboard.SetText(url);
MessageBox.Show($"{ex.Message}\r\n调用浏览器失败,网页链接已复制到剪切板,请手动打开浏览器访问", "提示");
}
}
private void CreateTask(object obj)
{
foreach (var task in BatchPublishTasks)
{
string increateStr = "";
var increates = task.IncreateList.Where(i => i.IsSelected).Select(i => i.IncreateName);
if (increates != null && increates.Count() > 0)
{
increateStr = string.Join(",", increates);
}
var createTaskModel = new Models.APIModel.Request.CreateTaskRequest
{
ProductNo = task.ProductNo,
Logo = task.Logo,
SkuName = task.SkuName,
BrandName = task.BrandName,
Availability = (int)task.Availability,
BasicPack = (int)task.BasicPack,
SkuId = task.SkuId,
CreateTime = DateTime.Now,
Increment1 = increateStr,
CertificatePosition = (int)task.CertificatePosition,
PackType = (int)task.PackType,
MarkMessage = task.MarkMessage,
PositionType = (int)task.PositionType,
GoodsNumber = task.GoodsNumber,
SkuGoodsTitle = task.SkuTitle,
SkuCount = task.SkuCount,
UserId = globalContext.User.Id.ToString(),
ShopId = PurchaserId,
//IsWorry = task.IsWorry,
OrderId = orderId,
Platform =platform
};
if (task.IsNeedBarCode == Need.)
{
if (task.BarCodeModel == null || task.BarCodeModel.Id <= 0)
{
new TipsWindow("请设置条形码模板").Show();
return;
}
createTaskModel.BarCodeId = task.BarCodeModel.Id;
}
if (task.IsNeedCertificateModel == Need.)
{
if (task.CertificateModel == null || task.CertificateModel.Count() <= 0)
{
new TipsWindow("请设置合格证模板").Show();
return;
}
createTaskModel.CerId =string.Join(",", task.CertificateModel.Where(c=>c.Id>0).Select(c=>c.Id));//
}
ApiResponse<object> res = null;
res = packTaskService.CreateTask(createTaskModel);
if (!res.Success)
{
new TipsWindow(res.Msg);
return;
}
}
//var win = obj as System.Windows.Window;
Messenger.Default.Send(true, "CloseBatchPublishTaskWindow");
//win.Close();
if (PublishTask != null) PublishTask();
}
public Action PublishTask { get; set; }
Platform platform; string orderId; string PurchaserId;
public void AddSkus(Platform platform, string orderId, string PurchaserId, List<PurchaseOrderSku> purchaseOrderSkus)
{
BatchPublishTasks = new ObservableCollection<BatchPublishTask>();
this.platform = platform; this.orderId = orderId;
this.PurchaserId = PurchaserId;
BatchPublishTask model = null;
IsLoading = true;
foreach (var item in purchaseOrderSkus)
{
model = new BatchPublishTask();
model.productService = productService;
model.packTaskService = packTaskService;
model.SkuId = item.SkuId;
model.SkuCount = item.Quantity.Value;
model.Logo = item.Logo.Replace("80x80", "200x200");
model.SpuId = item.ProductId;
model.SkuName = item.SkuTitle;
model.SearchSku(item.SkuId);
App.Current.Dispatcher.Invoke(() =>
{
BatchPublishTasks.Add(model);
});
}
IsLoading = false;
}
}
}

74
BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs

@ -1,5 +1,6 @@
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.ViewModels;
using BBWY.Client.Views.BatchPurchase;
using BBWY.Common.Extensions;
using BBWY.Common.Models;
@ -11,12 +12,14 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;
using System.Windows.Input;
namespace BBWY.Client.ViewModels
{
public class BatchPurchaseOrderListViewModel : BaseVM, IDenpendency
{
private PackTaskService packTaskService;
private BatchPurchaseService batchPurchaseService;
private GlobalContext globalContext;
private DateTime startDate;
@ -44,6 +47,9 @@ namespace BBWY.Client.ViewModels
public ICommand CancelPurchaseOrderCommand { get; set; }
public ICommand CreateQTTaskCommand { get; set; }
public ICommand CancelQTTaskCommand { get; set; }
public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } }
public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } }
public string SearchPurchaseOrderId { get => searchPurchaseOrderId; set { Set(ref searchPurchaseOrderId, value); } }
@ -61,7 +67,7 @@ namespace BBWY.Client.ViewModels
public IList<PurchaseOrderV2> PurchaseOrderList { get; set; }
public BatchPurchaseOrderListViewModel(GlobalContext globalContext, BatchPurchaseService batchPurchaseService)
public BatchPurchaseOrderListViewModel(GlobalContext globalContext, BatchPurchaseService batchPurchaseService, PackTaskService packTaskService)
{
this.batchPurchaseService = batchPurchaseService;
SetSearchDateCommand = new RelayCommand<int>(SetSearchDate);
@ -72,16 +78,64 @@ namespace BBWY.Client.ViewModels
PayPurchaseOrderCommand = new RelayCommand<object>(PayPurchaseOrder);
CancelPurchaseOrderCommand = new RelayCommand<object>(CancelPurchaseOrder);
CreateQTTaskCommand = new RelayCommand<object>(CreateQTTask);
CancelQTTaskCommand = new RelayCommand<object>(CancelQTTask);
PageSize = 10;
this.globalContext = globalContext;
EndDate = DateTime.Now.Date;
StartDate = DateTime.Now.Date.AddDays(-15);
PurchaseOrderList = new ObservableCollection<PurchaseOrderV2>();
InitQueryPurchaseOrder();
this.packTaskService = packTaskService;
}
private void CancelQTTask(object obj)
{
MessageBoxResult result = MessageBox.Show("确定取消订单任务?", "提示",
MessageBoxButton.YesNo,
MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes) return;
var parameters = (object[])obj;
var id = parameters[0].ToString();//订单id
//取消打包任务
var res = packTaskService.CancelQTTask(id);
if (res.Success)
{
var resPackState = batchPurchaseService.UpdatePackState(id, Models.PackState.);
if (resPackState.Success)
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
}
}
private void CreateQTTask(object obj)
{
var parameters = (object[])obj;
var PurchasePlatform = (Platform)parameters[0];//采购平台
var id = parameters[1].ToString();//订单id
var itemList = (List<PurchaseOrderSku>)parameters[2];//skuid 数量
var PurchaserId = (string)parameters[3];//采购商id
ViewModelLocator viewModelLocator = new ViewModelLocator();
BatchPublishTaskViewModel batch = viewModelLocator.BatchPublishTask;
batch.PublishTask = () => {
//修改 打包状态
var res = batchPurchaseService.UpdatePackState(id, Models.PackState.);
if (res.Success)
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
};
batch.AddSkus(PurchasePlatform, id, PurchaserId, itemList);
BatchPublishTaskWindow window = new BatchPublishTaskWindow();
window.Show();
}
private void CancelPurchaseOrder(object obj)
{
MessageBoxResult result = MessageBox.Show("确定取消订单?", "提示",
@ -96,14 +150,22 @@ namespace BBWY.Client.ViewModels
var purchaseAccount = globalContext.User.Shop.PurchaseAccountList.FirstOrDefault(p => p.PurchasePlatformId == PurchasePlatform);
var res = batchPurchaseService.CancelOrder(parameters[1].ToString(), PurchasePlatform, purchaseAccount, "");
var res = batchPurchaseService.CancelOrder(parameters[1].ToString(), purchaseAccount, "");
if (res.Success)
{
if (res.Data.Success)
{
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
return;
}
MessageBox.Show(res.Data.Msg);
return;
}
if (res.Data != null)
MessageBox.Show(res.Data.Msg);
else
MessageBox.Show(res.Msg);
}
private void PayPurchaseOrder(object obj)
@ -119,12 +181,20 @@ namespace BBWY.Client.ViewModels
var purchaseAccount = globalContext.User.Shop.PurchaseAccountList.FirstOrDefault(p => p.PurchasePlatformId == PurchasePlatform);
var res = batchPurchaseService.PayOrder(parameters[1].ToString(), PurchasePlatform, purchaseAccount);
if (res.Success)
{
if (res.Data.Success)
{
Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex));
return;
}
MessageBox.Show(res.Data.Msg);
return;
}
if (res.Data != null)
MessageBox.Show(res.Data.Msg);
else
MessageBox.Show(res.Msg);
}

514
BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs

@ -24,6 +24,43 @@ namespace BBWY.Client.ViewModels.PackTask
public class CreatePackTaskViewModel : BaseVM, IDenpendency
{
#region 属性
private bool isSelected;
public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } }
private ObservableCollection<string> worryList = new ObservableCollection<string> {
"否","是"
};
public ObservableCollection<string> WorryList { get => worryList; set { Set(ref worryList, value); } }
private ObservableCollection<string> positionTypeList = new ObservableCollection<string> {
"商家仓","齐越仓", "京东仓","聚水潭仓"};
public ObservableCollection<string> PositionTypeList { get => positionTypeList; set { Set(ref positionTypeList, value); } }
private ObservableCollection<string> packTypeList = new ObservableCollection<string> {
"单件","多件"
};
public ObservableCollection<string> PackTypeList { get => packTypeList; set { Set(ref packTypeList, value); } }
private ObservableCollection<string> basicPackList = new ObservableCollection<string> {
"快递袋","纸箱","麻袋"
};
public ObservableCollection<string> BasicPackList { get => basicPackList; set { Set(ref basicPackList, value); } }
private ObservableCollection<string> isNeedBarCodeList = new ObservableCollection<string> {
"需要", "不需要" };
public ObservableCollection<string> IsNeedBarCodeList { get => isNeedBarCodeList; set { Set(ref isNeedBarCodeList, value); } }
private ObservableCollection<string> certificatePositionList = new ObservableCollection<string> {
"无","外部包装","产品包装"
};
public ObservableCollection<string> CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } }
private ObservableCollection<string> availabilityList = new ObservableCollection<string> {
"已到货","部分到货","未到货"
};
public ObservableCollection<string> AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } }
private bool isLoading = false;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
@ -82,12 +119,6 @@ namespace BBWY.Client.ViewModels.PackTask
public string SkuName { get => skuName; set { Set(ref skuName, value); } }
//private long barCodeId;
///// <summary>
///// 条形码id
///// </summary>
//public long BarCodeId { get => barCodeId; set { Set(ref barCodeId, value); } }
private string brand;
/// <summary>
/// 品牌
@ -131,12 +162,6 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary>
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private DateTime endTime;
/// <summary>
/// 提交时间
/// </summary>
public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } }
private long taskId;
/// <summary>
@ -173,14 +198,6 @@ namespace BBWY.Client.ViewModels.PackTask
public TaskState Availability { get => availability; set { Set(ref availability, value); } }
private int taskStatus;
/// <summary>
/// 任务状态(已完成=0,未完成=1)
/// </summary>
public int TaskStatus { get => taskStatus; set { Set(ref taskStatus, value); } }
private PackType packType;
/// <summary>
/// 打包类型(单件=0,多件=1)
@ -222,18 +239,18 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary>
public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } }
private string isNeedBarCode;
private Need isNeedBarCode;
/// <summary>
/// 是否需要合格证
/// </summary>
public string IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
private string isNeedCertificateModel;
private Need isNeedCertificateModel;
/// <summary>
/// 是否需要条形码
/// </summary>
public string IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } }
public Need IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } }
@ -255,7 +272,7 @@ namespace BBWY.Client.ViewModels.PackTask
{
Set(ref isSetBarCode, value);
IsNeedBarCode = IsSetBarCode ? "不需要" : "需要";
IsNeedBarCode = IsSetBarCode ? Need. : Need.;
}
}
@ -269,7 +286,7 @@ namespace BBWY.Client.ViewModels.PackTask
{
Set(ref isSetCertificate, value);
IsNeedCertificateModel = IsSetCertificate ? "不需要" : "需要";
IsNeedCertificateModel = IsSetCertificate ? Need. : Need.;
}
}
private string setSpuCerStatus;
@ -295,14 +312,14 @@ namespace BBWY.Client.ViewModels.PackTask
private string saveTask;
/// <summary>
/// 设置显示(合格证)
/// 发布按钮(发布/保存)
/// </summary>
public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } }
private string spuId;
/// <summary>
/// 合格证
/// spu
/// </summary>
public string SpuId { get => spuId; set { Set(ref spuId, value); } }
@ -314,11 +331,11 @@ namespace BBWY.Client.ViewModels.PackTask
private CertificateModel certificateModel;
private CertificateModel[] certificateModel;
/// <summary>
/// 合格证
/// </summary>
public CertificateModel CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
public CertificateModel[] CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
@ -337,42 +354,13 @@ namespace BBWY.Client.ViewModels.PackTask
/// 注意事项(对接备注)
/// </summary>
public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } }
#endregion
/// <summary>
/// 服务收费 (单个任务id 消耗的总费用)
/// </summary>
private decimal feesMoney;
/// <summary>
/// 服务收费 (单个任务id 消耗的总费用)
/// </summary>
public decimal FeesMoney { get => feesMoney; set { Set(ref feesMoney, value); } }
/// <summary>
/// 打包员
/// </summary>
private string packUser;
/// <summary>
/// 打包员
/// </summary>
public string PackUser { get => packUser; set { Set(ref packUser, value); } }
private string printName;
/// <summary>
/// 选中的打印机名称
/// </summary>
public string PrintName { get => printName; set { Set(ref printName, value); } }
private List<string> printNames;
/// <summary>
/// 选中的打印机名称
/// </summary>
public List<string> PrintNames { get => printNames; set { Set(ref printNames, value); } }
private int printNums;
/// <summary>
/// 打印数
/// </summary>
public int PrintNums { get => printNums; set { Set(ref printNums, value); } }
private readonly PackTaskService packTaskService;
@ -458,8 +446,8 @@ namespace BBWY.Client.ViewModels.PackTask
PositionType = model.PositionType;
PackType = model.PackType;
BasicPack = model.BasicPack;
IsNeedBarCode = model.BarCodeModel != null ? "需要" : "不需要";
IsNeedCertificateModel = model.CertificateModel != null ? "需要" : "不需要";
IsNeedBarCode = model.BarCodeModel == null ? Need. : Need.;
IsNeedCertificateModel = model.CertificateModel == null ? Need. : Need.;
CertificatePosition = model.CertificatePosition;
TaskId = model.TaskId;
string[] increateDatas = model.Increment1.Split(',');
@ -472,7 +460,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() => {
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
@ -521,103 +510,104 @@ namespace BBWY.Client.ViewModels.PackTask
this.globalContext = globalContext;
SetBarCodeCommand = new RelayCommand(SetBarCode);
SetCertificateCommand = new RelayCommand(SetCertificate);
SaveBarCodeCommand = new RelayCommand(SaveBarCode);
//SaveBarCodeCommand = new RelayCommand(SaveBarCode);
SetSpuCerCommand = new RelayCommand(SetSpuCer);
SaveSpuCerCommand = new RelayCommand(SaveSpuCer);
InseartCerCommand = new RelayCommand(InseartCer);
//SetSpuCerCommand = new RelayCommand(SetSpuCer);
//SaveSpuCerCommand = new RelayCommand(SaveSpuCer);
//InseartCerCommand = new RelayCommand(InseartCer);
SaveCerCommand = new RelayCommand(SaveCer);
//SaveCerCommand = new RelayCommand(SaveCer);
BarLabelCheckCommand = new RelayCommand<BarcodeLabelModel>(BarLabelCheck);
CerLabelCheckCommand = new RelayCommand<CertificateLabelModel>(CerLabelCheck);
SpuCerLabelCheckCommand = new RelayCommand<CertificateLabelModel>(SpuCerLabelCheck);
//CerLabelCheckCommand = new RelayCommand<CertificateLabelModel>(CerLabelCheck);
//SpuCerLabelCheckCommand = new RelayCommand<CertificateLabelModel>(SpuCerLabelCheck);
LookBarCommand = new RelayCommand(LookBar);
LookCerCommand = new RelayCommand(LookCer);
PrintNames = new List<string>();
delayTrigger = new DelayTrigger(500);
delayTrigger.OnExecute = OnSearchIncreateKeyWordChanged;
BarLabelCheck(BarcodeLabelModel.);//默认精简模式
}
private void InseartCer()
{
if (IsSetSpuCertificate)
{
new TipsWindow("无可用模板").Show();
return;
}
CertificateModel = new CertificateModel()
{
//SpuId = SpuCertificateModel.SpuId,
SkuId = SkuId,
Brand = SpuCertificateModel.Brand,
BrandName = SpuCertificateModel.BrandName,
ExcuteStander = SpuCertificateModel.ExcuteStander,
FactoryNumber = SpuCertificateModel.FactoryNumber,
IsLogo = SpuCertificateModel.IsLogo,
LabelModel = SpuCertificateModel.LabelModel,
ProductAdress = SpuCertificateModel.ProductAdress,
ProductNo = SpuCertificateModel.ProductNo,
Shader = SpuCertificateModel.Shader,
ProductShop = SpuCertificateModel.ProductShop,
ApplyAge = SpuCertificateModel.ApplyAge,
};
}
private void SetSpuCer()
{
if (SpuCertificateModel == null)
{
SpuCertificateModel = new CertificateModel();
SpuCertificateModel.ProductNo = ProductNo;
SpuCertificateModel.Brand = Brand;
SpuCertificateModel.SkuId = SkuId;
}
SpuCertificateModel.BrandName = BrandName;
setSpuCerWindow = new SetSpuCerWindow();
setSpuCerWindow.Show();
}
private void SaveSpuCer()
{
if (string.IsNullOrEmpty(SpuCertificateModel.ExcuteStander)
|| string.IsNullOrEmpty(SpuCertificateModel.BrandName)
|| string.IsNullOrEmpty(SpuCertificateModel.Brand) || string.IsNullOrEmpty(SpuCertificateModel.ProductShop)
|| string.IsNullOrEmpty(SpuCertificateModel.ProductAdress))
{
new TipsWindow("参数出错!请重新填写!").Show();
return;
}
var resData = packTaskService.SaveSpuCer(new CerRequest
{
Brand = SpuCertificateModel.Brand,
BrandName = SpuCertificateModel.BrandName,
ProductNo = SpuCertificateModel.ProductNo,
SpuId = SpuCertificateModel.SpuId,
ExcuteStander = SpuCertificateModel.ExcuteStander,
LabelModel = (int)SpuCertificateModel.LabelModel,
FactoryNumber = SpuCertificateModel.FactoryNumber,
IsLogo = SpuCertificateModel.IsLogo,
ProductAdress = SpuCertificateModel.ProductAdress,
ProductShop = SpuCertificateModel.ProductShop,
Shader = SpuCertificateModel.Shader,
SkuId = SpuCertificateModel.SkuId,
ApplyAge = SpuCertificateModel.ApplyAge,
});
if (resData == null || !resData.Success)
{
IsSetSpuCertificate = false;
return;
}
IsSetSpuCertificate = false;
setSpuCerWindow.Close();
}
//private void InseartCer()
//{
// if (IsSetSpuCertificate)
// {
// new TipsWindow("无可用模板").Show();
// return;
// }
// CertificateModel = new CertificateModel()
// {
// //SpuId = SpuCertificateModel.SpuId,
// SkuId = SkuId,
// Brand = SpuCertificateModel.Brand,
// BrandName = SpuCertificateModel.BrandName,
// ExcuteStander = SpuCertificateModel.ExcuteStander,
// FactoryNumber = SpuCertificateModel.FactoryNumber,
// IsLogo = SpuCertificateModel.IsLogo,
// LabelModel = SpuCertificateModel.LabelModel,
// ProductAdress = SpuCertificateModel.ProductAdress,
// ProductNo = SpuCertificateModel.ProductNo,
// Shader = SpuCertificateModel.Shader,
// ProductShop = SpuCertificateModel.ProductShop,
// ApplyAge = SpuCertificateModel.ApplyAge,
// };
//}
//private void SetSpuCer()
//{
// if (SpuCertificateModel == null)
// {
// SpuCertificateModel = new CertificateModel();
// SpuCertificateModel.ProductNo = ProductNo;
// SpuCertificateModel.Brand = Brand;
// SpuCertificateModel.SkuId = SkuId;
// }
// if (!string.IsNullOrEmpty(BrandName))
// SpuCertificateModel.BrandName = BrandName;
// setSpuCerWindow = new SetSpuCerWindow();
// setSpuCerWindow.Show();
//}
//private void SaveSpuCer()
//{
// if (string.IsNullOrEmpty(SpuCertificateModel.ExcuteStander)
// || string.IsNullOrEmpty(SpuCertificateModel.BrandName)
// || string.IsNullOrEmpty(SpuCertificateModel.Brand) || string.IsNullOrEmpty(SpuCertificateModel.ProductShop)
// || string.IsNullOrEmpty(SpuCertificateModel.ProductAdress))
// {
// new TipsWindow("参数出错!请重新填写!").Show();
// return;
// }
// var resData = packTaskService.SaveSpuCer(new CerRequest
// {
// Brand = SpuCertificateModel.Brand,
// BrandName = SpuCertificateModel.BrandName,
// ProductNo = SpuCertificateModel.ProductNo,
// SpuId = SpuCertificateModel.SpuId,
// ExcuteStander = SpuCertificateModel.ExcuteStander,
// LabelModel = (int)SpuCertificateModel.LabelModel,
// FactoryNumber = SpuCertificateModel.FactoryNumber,
// IsLogo = SpuCertificateModel.IsLogo,
// ProductAdress = SpuCertificateModel.ProductAdress,
// ProductShop = SpuCertificateModel.ProductShop,
// Shader = SpuCertificateModel.Shader,
// SkuId = SpuCertificateModel.SkuId,
// ApplyAge = SpuCertificateModel.ApplyAge,
// });
// if (resData == null || !resData.Success)
// {
// IsSetSpuCertificate = false;
// return;
// }
// IsSetSpuCertificate = false;
// setSpuCerWindow.Close();
//}
private void OnSearchIncreateKeyWordChanged(string key)
{
@ -678,16 +668,7 @@ namespace BBWY.Client.ViewModels.PackTask
});
look.Show();
}
private void SpuCerLabelCheck(CertificateLabelModel cer)
{
SpuCertificateModel.LabelModel = cer;
SpuCertificateModel.IsLogo = cer == CertificateLabelModel.3c ? 1 : 0;
}
private void CerLabelCheck(CertificateLabelModel cer)
{
CertificateModel.LabelModel = cer;
CertificateModel.IsLogo = cer == CertificateLabelModel.3c ? 1 : 0;
}
/// <summary>
///
/// </summary>
@ -709,77 +690,55 @@ namespace BBWY.Client.ViewModels.PackTask
//throw new NotImplementedException();
}
/// <summary>
/// 设置合格证
/// </summary>
private void SetCertificate()
{
if (string.IsNullOrEmpty(SearchSkuId))
{
new TipsWindow("请先查询skuId").Show();
return;
}
SearSpuCer();
if (CertificateModel == null)
{
CertificateModel = new CertificateModel();
CertificateModel.ProductNo = ProductNo;
CertificateModel.Brand = Brand;
CertificateModel.SkuId = SkuId;
}
CertificateModel.BrandName = BrandName;
setCerWindow = new SetCerWindow();
setCerWindow.Show();
//throw new NotImplementedException();
}
/// <summary>
/// 保存合格证
/// </summary>
private void SaveCer()
{
if (string.IsNullOrEmpty(CertificateModel.ExcuteStander)
|| string.IsNullOrEmpty(CertificateModel.Shader) || string.IsNullOrEmpty(CertificateModel.BrandName)
|| string.IsNullOrEmpty(CertificateModel.Brand) || string.IsNullOrEmpty(CertificateModel.ProductShop)
|| string.IsNullOrEmpty(CertificateModel.ProductAdress))
{
new TipsWindow("参数出错!请重新填写!").Show();
return;
}
var resData = packTaskService.SaveCer(new CerRequest
{
Brand = CertificateModel.Brand,
BrandName = CertificateModel.BrandName,
ProductNo = CertificateModel.ProductNo,
SkuId = CertificateModel.SkuId,
ExcuteStander = CertificateModel.ExcuteStander.Replace(",",","),
LabelModel = (int)CertificateModel.LabelModel,
FactoryNumber = CertificateModel.FactoryNumber,
IsLogo = CertificateModel.IsLogo,
ProductAdress = CertificateModel.ProductAdress,
ProductShop = CertificateModel.ProductShop,
Shader = CertificateModel.Shader,
ApplyAge = CertificateModel.ApplyAge,
});
if (resData == null || !resData.Success)
{
IsSetCertificate = false;
return;
}
IsNeedCertificateModel = "需要";
CertificateModel.Id = resData.Data;
IsSetCertificate = false;
setCerWindow.Close();
}
//private void SaveCer()
//{
// if (string.IsNullOrEmpty(CertificateModel.ExcuteStander)
// || string.IsNullOrEmpty(CertificateModel.Shader) || string.IsNullOrEmpty(CertificateModel.BrandName)
// || string.IsNullOrEmpty(CertificateModel.Brand) || string.IsNullOrEmpty(CertificateModel.ProductShop)
// || string.IsNullOrEmpty(CertificateModel.ProductAdress))
// {
// new TipsWindow("参数出错!请重新填写!").Show();
// return;
// }
// var resData = packTaskService.SaveCer(new CerRequest
// {
// Brand = CertificateModel.Brand,
// BrandName = CertificateModel.BrandName,
// ProductNo = CertificateModel.ProductNo,
// SkuId = CertificateModel.SkuId,
// ExcuteStander = CertificateModel.ExcuteStander.Replace(",", ","),
// LabelModel = (int)CertificateModel.LabelModel,
// FactoryNumber = CertificateModel.FactoryNumber,
// IsLogo = CertificateModel.IsLogo,
// ProductAdress = CertificateModel.ProductAdress,
// ProductShop = CertificateModel.ProductShop,
// Shader = CertificateModel.Shader,
// ApplyAge = CertificateModel.ApplyAge,
// });
// if (resData == null || !resData.Success)
// {
// IsSetCertificate = false;
// return;
// }
// IsNeedCertificateModel = Need.需要;
// CertificateModel.Id = resData.Data;
// IsSetCertificate = false;
// setCerWindow.Close();
//}
SetBarCodeWindow setBarCodeWindow = null; SetCerWindow setCerWindow = null; SetSpuCerWindow setSpuCerWindow = null;
public BarcodeLabelModel LabelModel = BarcodeLabelModel.;
private void SetBarCode()
{
if (string.IsNullOrEmpty(SearchSkuId))
if (string.IsNullOrEmpty(SkuId))
{
new TipsWindow("请先查询skuId").Show();
return;
}
if (BarCodeModel == null)
@ -789,15 +748,60 @@ namespace BBWY.Client.ViewModels.PackTask
BarCodeModel.Brand = Brand;
BarCodeModel.SkuId = SkuId;
BarCodeModel.SkuName = SkuName;
}
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
setBarCodeWindow = new SetBarCodeWindow();
SetBarCodeWindow setBarCodeWindow = new SetBarCodeWindow();
setBarCodeWindow.LoadData(BarCodeModel, packTaskService);
setBarCodeWindow.SaveResult = b =>
{
BarCodeModel = b;
IsSetBarCode = false;
IsNeedBarCode = Need.;
};
setBarCodeWindow.Show();
}
public BarcodeLabelModel LabelModel = BarcodeLabelModel.;
/// <summary>
/// 设置合格证
/// </summary>
private void SetCertificate()
{
if (string.IsNullOrEmpty(SkuId))
return;
SearSpuCer();
if (CertificateModel == null)
{
CertificateModel = new CertificateModel[] {
new CertificateModel()
{
ProductNo = ProductNo,
Brand = Brand,
SkuId = SkuId,
}
};
}
if (!string.IsNullOrEmpty(BrandName))
foreach (var item in CertificateModel) item.BrandName = BrandName;
//CertificateModel.Foreach(c=>c.BrandName = BrandName) ;
SetCerWindow setCerWindow = new SetCerWindow();
setCerWindow.LoadData(CertificateModel, packTaskService, spuCertificateModel, IsSetSpuCertificate);
setCerWindow.SaveResult = s =>
{
CertificateModel = s;
IsSetCertificate = false;
IsNeedCertificateModel = Need.;
};
setCerWindow.Show();
}
private void SaveBarCode()
{
@ -815,12 +819,12 @@ namespace BBWY.Client.ViewModels.PackTask
//保存到服务器中 返回id
var resData = packTaskService.SaveBarCode(new BarCodeRequest
{
Brand = Brand,
BrandName = BrandName,
ProductNo = ProductNo,
SkuId = SkuId,
SkuName = SkuName,
LabelModel = LabelModel
Brand = BarCodeModel.Brand,
BrandName = BarCodeModel.BrandName,
ProductNo = BarCodeModel.ProductNo,
SkuId = BarCodeModel.SkuId,
SkuName = BarCodeModel.SkuName,
LabelModel = BarCodeModel.LabelModel
});
if (resData == null || !resData.Success)
@ -830,7 +834,7 @@ namespace BBWY.Client.ViewModels.PackTask
}
BarCodeModel.Id = resData.Data;
IsNeedBarCode = "需要";
IsNeedBarCode = Need.;
IsSetBarCode = false;
setBarCodeWindow.Close();
}
@ -876,16 +880,16 @@ namespace BBWY.Client.ViewModels.PackTask
Increment2 = (int)Increment2,
CertificatePosition = (int)CertificatePosition,
PackType = (int)PackType,
MarkMessage = markMessage,
MarkMessage = MarkMessage,
PositionType = (int)PositionType,
GoodsNumber = GoodsNumber,
SkuGoodsTitle = SkuTitle,
SkuCount = SkuCount,
UserId = AccepUserId,
ShopId = globalContext.User.Shop.ShopId.ToString(),
IsWorry = IsWorry
//IsWorry = IsWorry
};
if (IsNeedBarCode == "需要")
if (IsNeedBarCode == Need.)
{
if (BarCodeModel == null || BarCodeModel.Id <= 0)
{
@ -894,14 +898,14 @@ namespace BBWY.Client.ViewModels.PackTask
}
createTaskModel.BarCodeId = BarCodeModel.Id;
}
if (IsNeedCertificateModel == "需要")
if (IsNeedCertificateModel == Need.)
{
if (CertificateModel == null || CertificateModel.Id <= 0)
if (CertificateModel == null || CertificateModel.Count() <= 0)
{
new TipsWindow("请设置合格证模板").Show();
return;
}
createTaskModel.CertificateId = CertificateModel.Id;//
createTaskModel.CerId =string.Join(",", CertificateModel.Select(c=>c.Id));//
}
ApiResponse<object> res = null;
if (TaskId > 0)//修改界面
@ -970,16 +974,16 @@ namespace BBWY.Client.ViewModels.PackTask
return;
}
if (productSku.Data.PackConfig!=null)
if (productSku.Data.PackConfig != null)
{
var config = productSku.Data.PackConfig;
SkuTitle = config.SkuGoodsTitle;
GoodsNumber = config.GoodsNumber;
PackType = (PackType)config.PackType;
BasicPack=(BasicPack)config.BasicPack;
Availability =(TaskState)config.Availability;
BasicPack = (BasicPack)config.BasicPack;
Availability = (TaskState)config.Availability;
MarkMessage = config.MarkMessage;
CertificatePosition = config.CertificatePosition==null? CertificatePosition .: (CertificatePosition)config.CertificatePosition.Value;
CertificatePosition = config.CertificatePosition == null ? CertificatePosition. : (CertificatePosition)config.CertificatePosition.Value;
// Increment1 = config.Increment1;
string[] increateDatas = config.Increment1.Split(',');
@ -991,7 +995,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() => {
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
@ -1005,18 +1010,28 @@ namespace BBWY.Client.ViewModels.PackTask
BrandName = productSku.Data.BrandName;
CertificateModel = productSku.Data.Certificate;
CertificateModel = productSku.Data.Cers;
IsSetCertificate = false;
if (CertificateModel == null)
{
CertificateModel = new CertificateModel();
CertificateModel = new CertificateModel[] {
new CertificateModel{ }
};
IsSetCertificate = true;
}
CertificateModel.Brand = Brand;
CertificateModel.BrandName = BrandName;
CertificateModel.ProductNo = ProductNo;
CertificateModel.SkuId = SkuId;
foreach (var item in CertificateModel)
item.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
foreach (var item in CertificateModel)
{
item.BrandName = BrandName;
item.ProductNo = ProductNo;
item.SkuId = SkuId;
}
BarCodeModel = productSku.Data.BarCodeModel;
IsSetBarCode = false;
if (BarCodeModel == null)
@ -1025,8 +1040,10 @@ namespace BBWY.Client.ViewModels.PackTask
IsSetBarCode = true;
}
BarCodeModel.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
BarCodeModel.ProductNo = ProductNo;
BarCodeModel.SkuId = SkuId;
BarCodeModel.SkuName = SkuName;
}
@ -1065,6 +1082,7 @@ namespace BBWY.Client.ViewModels.PackTask
SpuCertificateModel = new CertificateModel();
IsSetSpuCertificate = true;
SpuCertificateModel.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
SpuCertificateModel.BrandName = BrandName;
SpuCertificateModel.ProductNo = ProductNo;
SpuCertificateModel.SpuId = SpuId;

18
BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs

@ -44,7 +44,7 @@ namespace BBWY.Client.ViewModels.PackTask
readonly PackTaskService packTaskService;
readonly ConsumableService consumableService;
readonly PackDetailService packDetailService;
readonly BatchPurchaseService batchPurchaseService;
private ObservableCollection<PackItemModel> increateList = new ObservableCollection<PackItemModel>();
public ObservableCollection<PackItemModel> IncreateList { get => increateList; set { Set(ref increateList, value); } } //
@ -75,7 +75,7 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary>
public List<PackItemModel> LoadList = new List<PackItemModel>();
public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService)//, long taskId
public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService, BatchPurchaseService batchPurchaseService)//, long taskId
{
//TaskId = taskId;
this.consumableService = consumableService;
@ -159,6 +159,7 @@ namespace BBWY.Client.ViewModels.PackTask
AddConsumableCommand = new RelayCommand(AddConsumable);
UpLoadPackCommand = new RelayCommand<object>(UpLoadPack);
SetAllCountCommand = new RelayCommand<object>(SetAllCount);
this.batchPurchaseService = batchPurchaseService;
@ -284,7 +285,8 @@ namespace BBWY.Client.ViewModels.PackTask
private int taskCount;
public int TaskCount { get => taskCount; set { Set(ref taskCount, value); } } //
public string OrderId { get; set; }
public string SkuId { get; set; }
/// <summary>
/// 上传数据 (判断是否超量) 统一上传
/// </summary>
@ -328,7 +330,7 @@ namespace BBWY.Client.ViewModels.PackTask
decimal AllFees = 0;
decimal price = 0;
decimal IncreateFees = 0,PackFees=0,ConsumableFees=0,DiscountPrice=0;
decimal IncreateFees = 0, PackFees = 0, ConsumableFees = 0, DiscountPrice = 0;
foreach (var item in IncreateList)//增值服务上传
{
if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0)
@ -528,13 +530,14 @@ namespace BBWY.Client.ViewModels.PackTask
}
uploadService.AddPackServices = addDatas;
uploadService.DeletedPackServices = del;
uploadService.AllFees = Convert.ToDecimal((AllFees).ToString("0.00")); ;
uploadService.SkuId = SkuId;
uploadService.OrderId= OrderId;
uploadService.AllFees = Convert.ToDecimal(AllFees.ToString("0.00"));
uploadService.SingleFees = singleFees;
uploadService.IncreaseFees = Convert.ToDecimal((IncreateFees).ToString("0.00"));
uploadService.PackFees = Convert.ToDecimal((PackFees).ToString("0.00"));
uploadService.ConsumableFees = Convert.ToDecimal((ConsumableFees).ToString("0.00"));
uploadService. DiscountPrice = Convert.ToDecimal( (AllFees * upDisCount).ToString("0.00"));
uploadService.DiscountPrice = Convert.ToDecimal((AllFees * upDisCount).ToString("0.00"));
var res = packDetailService.UploadService(uploadService);
if (res != null && res.Success)
{
@ -550,7 +553,6 @@ namespace BBWY.Client.ViewModels.PackTask
SetAllFees(feesItem, packUsers);
win.Close();
}
}
/// <summary>
/// 更新 打包员 和费用数据

47
BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs

@ -5,6 +5,7 @@ using BBWY.Client.Models;
using BBWY.Client.Models.PackTask;
using BBWY.Client.Views.Order;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Extensions;
using BBWY.Common.Models;
using BBWY.Controls;
using GalaSoft.MvvmLight.Command;
@ -72,16 +73,19 @@ namespace BBWY.Client.ViewModels.PackTask
public ICommand BatchCheckedCommand { get; set; }
public ICommand CopyTextCommand { get; set; }
//public IList<Department> departmentList;
//ShopService shopService;
public PackTaskTotalViewModel(PackTaskService packTaskService)
{
this.packTaskService = packTaskService;
EndDate = DateTime.Now;
StartDate = DateTime.Now.Date;
SearchTaskTotalCommand = new RelayCommand(SearchTaskTotal);
//this.shopService = shopService;
SearchTaskTotalCommand = new RelayCommand(() =>
{
SearchTask(1);
});
StartDate = DateTime.Now;
EndDate = DateTime.Now;
SetSearchDateCommand = new RelayCommand<int>(d =>
{
@ -97,24 +101,29 @@ namespace BBWY.Client.ViewModels.PackTask
});
BatchCheckedCommand = new RelayCommand(BatchCheck);
CopyTextCommand = new RelayCommand<object>((obj) =>
{
try
{
Clipboard.SetText(obj.ToString());
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex);
Console.ResetColor();
}
});
BatchSettleCommand = new RelayCommand(BatchSettle);
SettleCommand = new RelayCommand<long>(SettleTask);
ExportCommand = new RelayCommand(Export);
SearchTaskTotal();
//LoadShopList();
}
private void LoadShopList()
{
//departmentList=new List<Department>();
//var response = shopService.GetDepartmentList();
//if (!response.Success)
// throw new Exception(response.Msg);
//departmentList = response.Data.Map<IList<Department>>();
//var shopList = new List<Shop>();
//foreach (var d in departmentList)
// shopList.AddRange(d.ShopList);
}
private void Export()

759
BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs

@ -0,0 +1,759 @@
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Models.PackTask;
using BBWY.Client.Views.PackTask;
using BBWY.Common.Models;
using GalaSoft.MvvmLight.Command;
using GalaSoft.MvvmLight.Messaging;
using Org.BouncyCastle.Ocsp;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace BBWY.Client.ViewModels.PackTask
{
public class PublishTaskViewModel : BaseVM, IDenpendency
{
#region 属性
private string searchSkuId;
public string SearchSkuId { get => searchSkuId; set { Set(ref searchSkuId, value); } }
public long TaskId { get; set; }
private bool isSelected;
public bool IsSelected { get => isSelected; set { Set(ref isSelected, value); } }
private ObservableCollection<string> worryList = new ObservableCollection<string> {
"否","是"
};
public ObservableCollection<string> WorryList { get => worryList; set { Set(ref worryList, value); } }
private ObservableCollection<string> positionTypeList = new ObservableCollection<string> {
"商家仓","齐越仓", "京东仓","聚水潭仓"};
public ObservableCollection<string> PositionTypeList { get => positionTypeList; set { Set(ref positionTypeList, value); } }
private ObservableCollection<string> packTypeList = new ObservableCollection<string> {
"单件","多件"
};
public ObservableCollection<string> PackTypeList { get => packTypeList; set { Set(ref packTypeList, value); } }
private ObservableCollection<string> basicPackList = new ObservableCollection<string> {
"快递袋","纸箱","麻袋"
};
public ObservableCollection<string> BasicPackList { get => basicPackList; set { Set(ref basicPackList, value); } }
private ObservableCollection<string> isNeedBarCodeList = new ObservableCollection<string> {
"需要", "不需要" };
public ObservableCollection<string> IsNeedBarCodeList { get => isNeedBarCodeList; set { Set(ref isNeedBarCodeList, value); } }
private ObservableCollection<string> certificatePositionList = new ObservableCollection<string> {
"无","外部包装","产品包装"
};
public ObservableCollection<string> CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } }
private ObservableCollection<string> availabilityList = new ObservableCollection<string> {
"已到货","部分到货","未到货"
};
public ObservableCollection<string> AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } }
private int skuCount;
/// <summary>
/// Sku任务数
/// </summary>
public int SkuCount { get => skuCount; set { Set(ref skuCount, value); } }
private string skuId;
/// <summary>
/// Sku
/// </summary>
public string SkuId { get => skuId; set { Set(ref skuId, value); } }
private string logo;
/// <summary>
/// 店铺Sku图链接
/// </summary>
public string Logo { get => logo; set { Set(ref logo, value); } }
private string skuName;
/// <summary>
/// 采购Sku名称
/// </summary>
public string SkuName { get => skuName; set { Set(ref skuName, value); } }
private string brand;
/// <summary>
/// 品牌
/// </summary>
public string Brand { get => brand; set { Set(ref brand, value); } }
private string productNo;
/// <summary>
/// 货号
/// </summary>
public string ProductNo { get => productNo; set { Set(ref productNo, value); } }
private string brandName;
/// <summary>
/// 品名(手写上传)
/// </summary>
public string BrandName { get => brandName; set { Set(ref brandName, value); } }
private int goodsNumber;
/// <summary>
/// 配件数
/// </summary>
public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } }
private Worry isWorry;
/// <summary>
/// 是否加急
/// </summary>
public Worry IsWorry { get => isWorry; set { Set(ref isWorry, value); } }
private TaskState availability;
/// <summary>
/// 到货情况(待收货=0,部分收货=1,已到货=2)
/// </summary>
public TaskState Availability { get => availability; set { Set(ref availability, value); } }
private PackType packType;
/// <summary>
/// 打包类型(单件=0,多件=1)
/// </summary>
public PackType PackType { get => packType; set { Set(ref packType, value); } }
private BasicPack basicPack;
/// <summary>
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
/// </summary>
public BasicPack BasicPack { get => basicPack; set { Set(ref basicPack, value); } }
private PositionType positionType;
/// <summary>
/// 落仓(商家仓=0,齐越仓=1,京东仓=2,聚水潭仓=3)
/// </summary>
public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } }
private string skuTitle;
/// <summary>
/// sku配件商品名称
/// </summary>
public string SkuTitle { get => skuTitle; set { Set(ref skuTitle, value); } }
private Need isNeedBarCode;
/// <summary>
/// 是否需要合格证
/// </summary>
public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } }
private Need isNeedCertificateModel;
/// <summary>
/// 是否需要条形码
/// </summary>
public Need IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } }
private BarCodeModel barCodeModel;
/// <summary>
/// 条形码
/// </summary>
public BarCodeModel BarCodeModel { get => barCodeModel; set { Set(ref barCodeModel, value); } }
private bool isSetBarCode;
/// <summary>
/// 设置显示(条形码)
/// </summary>
public bool IsSetBarCode
{
get => isSetBarCode;
set
{
Set(ref isSetBarCode, value);
IsNeedBarCode = IsSetBarCode ? Need. : Need.;
}
}
private bool isSetCertificate;
/// <summary>
/// 设置显示(合格证)
/// </summary>
public bool IsSetCertificate
{
get => isSetCertificate; set
{
Set(ref isSetCertificate, value);
IsNeedCertificateModel = IsSetCertificate ? Need. : Need.;
}
}
private string setSpuCerStatus;
public string SetSpuCerStatus { get => setSpuCerStatus; set { Set(ref setSpuCerStatus, value); } }
private bool isSetSpuCertificate = true;
/// <summary>
/// 设置spu显示(合格证)
/// </summary>
public bool IsSetSpuCertificate
{
get => isSetSpuCertificate; set
{
Set(ref isSetSpuCertificate, value);
SetSpuCerStatus = IsSetSpuCertificate ? "设置spu模板" : "修改spu模板";
}
}
private string saveTask;
/// <summary>
/// 设置显示(合格证)
/// </summary>
public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } }
private string spuId;
/// <summary>
/// 合格证
/// </summary>
public string SpuId { get => spuId; set { Set(ref spuId, value); } }
private CertificateModel spuCertificateModel;
/// <summary>
/// spu合格证
/// </summary>
public CertificateModel SpuCertificateModel { get => spuCertificateModel; set { Set(ref spuCertificateModel, value); } }
private CertificateModel[] certificateModel;
/// <summary>
/// 合格证
/// </summary>
public CertificateModel[] CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
private CertificatePosition certificatePosition;
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
public CertificatePosition CertificatePosition { get => certificatePosition; set { Set(ref certificatePosition, value); } }
/// <summary>
/// 注意事项(对接备注)
/// </summary>
private string markMessage;
/// <summary>
/// 注意事项(对接备注)
/// </summary>
public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } }
private ObservableCollection<IncreateModel> increateList;
/// <summary>
/// 增量耗材查询关键字
/// </summary>
public ObservableCollection<IncreateModel> IncreateList { get => increateList; set { Set(ref increateList, value); } }
string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" };
PackTaskService packTaskService;
ProductService productService;
GlobalContext globalContext;
private bool isLoading = false;
public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } }
#endregion
public PublishTaskViewModel(PackTaskService packTaskService, ProductService productService, GlobalContext globalContext)
{
this.packTaskService = packTaskService;
this.productService = productService;
this.globalContext = globalContext;
CreateTaskCommand = new RelayCommand<object>(CreateTask);
OpenSkuDetailCommand = new RelayCommand<object>(OpenSkuDetail);
SetBarCodeCommand = new RelayCommand(SetBarCode);
SetCertificateCommand = new RelayCommand(SetCertificate);
LookBarCommand = new RelayCommand(LookBar);
LookCerCommand = new RelayCommand(LookCer);
SearchSkuCommand = new RelayCommand<object>(SearchSku);
IncreateList = new ObservableCollection<IncreateModel>();
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
Messenger.Default.Register<PackTaskModel>(this, "InitData", message =>
{
InitData(message);
});
}
#region 方法
public ICommand SetBarCodeCommand { get; set; }
public ICommand SetCertificateCommand { get; set; }
public ICommand LookBarCommand { get; set; }
public ICommand LookCerCommand { get; set; }
public ICommand OpenSkuDetailCommand { get; set; }
public ICommand CreateTaskCommand { get; set; }
public ICommand SearchSkuCommand { get; set; }
private void SetBarCode()
{
if (string.IsNullOrEmpty(SkuId))
{
return;
}
if (BarCodeModel == null)
{
BarCodeModel = new BarCodeModel();
BarCodeModel.ProductNo = ProductNo;
BarCodeModel.Brand = Brand;
BarCodeModel.SkuId = SkuId;
BarCodeModel.SkuName = SkuName;
}
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
SetBarCodeWindow setBarCodeWindow = new SetBarCodeWindow();
setBarCodeWindow.LoadData(BarCodeModel, packTaskService);
setBarCodeWindow.SaveResult = b =>
{
BarCodeModel = b;
IsSetBarCode = false;
IsNeedBarCode = Need.;
};
setBarCodeWindow.Show();
}
/// <summary>
/// 设置合格证
/// </summary>
private void SetCertificate()
{
if (string.IsNullOrEmpty(SkuId))
return;
SearSpuCer();
if (CertificateModel == null)
{
CertificateModel = new CertificateModel[] {
new CertificateModel{
ProductNo = ProductNo,
Brand = Brand,
SkuId = SkuId,
}
};
}
if (!string.IsNullOrEmpty(BrandName))
foreach (var item in CertificateModel) item.BrandName = BrandName;
SetCerWindow setCerWindow = new SetCerWindow();
setCerWindow.LoadData(CertificateModel, packTaskService, spuCertificateModel, IsSetSpuCertificate);
setCerWindow.SaveResult = s =>
{
CertificateModel = s;
IsSetCertificate = false;
IsNeedCertificateModel = Need.;
};
setCerWindow.Show();
}
/// <summary>
/// 查看合格证
/// </summary>
private void LookCer()
{
LookCerWindow lookCerWindow = new LookCerWindow(CertificateModel);
lookCerWindow.Show();
}
/// <summary>
/// 查看条形码
/// </summary>
private void LookBar()
{
LookBarCodeWindow look = new LookBarCodeWindow();
look.SetData(BarCodeModel);
look.Show();
}
/// <summary>
/// 搜索 skuId
/// </summary>
public void SearchSku(object obj)
{
string skuid = (string)obj;
if (string.IsNullOrEmpty(skuid))
return;
SkuId = skuid;
ApiResponse<ProductListResponse> productApiResponse = null;
var skuResponse = productService.GetProductSkuList(string.Empty, skuid);
if (skuResponse.Success)
{
if (skuResponse.Data.Count == 0)
{
return;
}
Logo = skuResponse.Data[0].Logo.Replace("80x80", "200x200");
SkuName = skuResponse.Data[0].Title;
SpuId = skuResponse.Data[0].ProductId;
productApiResponse = productService.GetProductList(skuResponse.Data[0].ProductId, string.Empty, string.Empty, 1);
if (productApiResponse.Success)
{
if (productApiResponse.Data.Count == 0)
{
return;
}
ProductNo = productApiResponse.Data.Items[0].ProductItemNum;
Brand = productApiResponse.Data.Items[0].BrandName;
}
var productSku = packTaskService.GetProductSku(skuid);
if (productSku == null || !productSku.Success)
{
return;
}
if (productSku.Data.PackConfig != null)
{
var config = productSku.Data.PackConfig;
SkuTitle = config.SkuGoodsTitle;
GoodsNumber = config.GoodsNumber;
PackType = (PackType)config.PackType;
BasicPack = (BasicPack)config.BasicPack;
Availability = (TaskState)config.Availability;
MarkMessage = config.MarkMessage;
CertificatePosition = config.CertificatePosition == null ? CertificatePosition. : (CertificatePosition)config.CertificatePosition.Value;
// Increment1 = config.Increment1;
string[] increateDatas = config.Increment1.Split(',');
bool isSelected = false;
foreach (var item in increates)
{
isSelected = false;
if (increateDatas.Contains(item))
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = isSelected
});
});
}
}
BrandName = productSku.Data.BrandName;
CertificateModel = productSku.Data.Cers;
IsSetCertificate = false;
if (CertificateModel == null)
{
CertificateModel = new CertificateModel[] {
new CertificateModel{ }
};
IsSetCertificate = true;
}
foreach (var item in CertificateModel)
{
item.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
item.BrandName = BrandName;
item.ProductNo = ProductNo;
item.SkuId = skuid;
}
BarCodeModel = productSku.Data.BarCodeModel;
IsSetBarCode = false;
if (BarCodeModel == null)
{
BarCodeModel = new BarCodeModel();
IsSetBarCode = true;
}
BarCodeModel.Brand = Brand;
if (!string.IsNullOrEmpty(BrandName))
BarCodeModel.BrandName = BrandName;
BarCodeModel.ProductNo = ProductNo;
BarCodeModel.SkuId = skuid;
BarCodeModel.SkuName = SkuName;
}
else
{
App.Current.Dispatcher.Invoke(() => MessageBox.Show(skuResponse.Msg, "加载sku"));
return;
}
}
public void SearSpuCer()
{
if (string.IsNullOrEmpty(SpuId))
{
SearchSku(SkuId);
return;
}
SpuId = SpuId.Trim();//去掉空格 避免数据异常
var productSku = packTaskService.GetSpuCer(SpuId);
if (productSku == null || !productSku.Success)
{
IsSetSpuCertificate = true;
return;
}
SpuCertificateModel = productSku.Data;
IsSetSpuCertificate = false;
if (SpuCertificateModel == null)
{
SpuCertificateModel = new CertificateModel();
IsSetSpuCertificate = true;
SpuCertificateModel.Brand = Brand;
SpuCertificateModel.BrandName = BrandName;
SpuCertificateModel.ProductNo = ProductNo;
SpuCertificateModel.SpuId = SpuId;
}
}
public Action ReflashWindow { get; set; }
public void InitData(PackTaskModel model = null)
{
IncreateList = new ObservableCollection<IncreateModel>();
SpuId = string.Empty;
if (model == null)
{
SaveTask = "发布";
TaskId = 0;
Logo = string.Empty;
SearchSkuId = "";
SkuId = "";
SkuCount = 0;
SkuName = string.Empty;
ProductNo = string.Empty;
Brand = string.Empty;
BrandName = string.Empty;
this.MarkMessage = "";
IsSetBarCode = true;
IsSetCertificate = true;
BarCodeModel = null;
CertificateModel = null;
SkuTitle = string.Empty;
GoodsNumber = 0;
foreach (var item in increates)
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = false
});
}
IsNeedBarCode = Need.;
return;
}
SaveTask = "保存";
Logo = model.ItemList[0].Logo;
SearchSkuId = model.SkuId;
SkuId = model.SkuId;
SkuCount = model.SkuCount;
SkuName = model.ItemList[0].SkuName;
ProductNo = model.ItemList[0].GoodsNo;
Brand = model.Brand;
BrandName = model.ItemList[0].BrandName;
this.MarkMessage = model.MarkMessage;
IsSetBarCode = model.BarCodeModel != null ? false : true;
IsSetCertificate = model.CertificateModel != null ? false : true;
BarCodeModel = model.BarCodeModel;
CertificateModel = model.CertificateModel;
SkuTitle = model.SkuTitle;
GoodsNumber = model.GoodsNumber;
Availability = model.Availability;
IsWorry = model.IsWorry;
PositionType = model.PositionType;
PackType = model.PackType;
BasicPack = model.BasicPack;
IsNeedBarCode = model.BarCodeModel == null ? Need. : Need.;
IsNeedCertificateModel = model.CertificateModel == null ? Need. : Need.;
CertificatePosition = model.CertificatePosition;
TaskId = model.TaskId;
string[] increateDatas = model.Increment1.Split(',');
bool isSelected = false;
foreach (var item in increates)
{
isSelected = false;
if (increateDatas.Contains(item))
{
isSelected = true;
}
App.Current.Dispatcher.Invoke(() =>
{
IncreateList.Add(new IncreateModel
{
IncreateName = item,
IsSelected = isSelected
});
});
}
SearchSku(SkuId);
}
private void OpenSkuDetail(object param)
{
var paramList = (object[])param;
// var orderId = paramList[0].ToString();
var skuId = paramList[0].ToString();
var url = $"https://item.jd.com/{skuId}.html";
try
{
System.Diagnostics.Process.Start("explorer.exe", url);
}
catch (Exception ex)
{
Clipboard.SetText(url);
MessageBox.Show($"{ex.Message}\r\n调用浏览器失败,网页链接已复制到剪切板,请手动打开浏览器访问", "提示");
}
}
private void CreateTask(object obj)
{
if (string.IsNullOrEmpty(SkuId))
{
new TipsWindow("请先搜索SkuId!").Show();
return;
}
if (SkuCount <= 0)
{
new TipsWindow("请设置SKU任务数!").Show();
return;
}
string increateStr = "";
var increates = IncreateList.Where(i => i.IsSelected).Select(i => i.IncreateName);
if (increates != null && increates.Count() > 0)
{
increateStr = string.Join(",", increates);
}
var createTaskModel = new Models.APIModel.Request.CreateTaskRequest
{
ProductNo = ProductNo,
Logo = Logo,
SkuName = SkuName,
TaskId = TaskId,
BrandName = BrandName,
Availability = (int)Availability,
BasicPack = (int)BasicPack,
SkuId = SkuId,
CreateTime = DateTime.Now,
Increment1 = increateStr,
//Increment2 = (int)Increment2,
CertificatePosition = (int)CertificatePosition,
PackType = (int)PackType,
MarkMessage = MarkMessage,
PositionType = (int)PositionType,
GoodsNumber = GoodsNumber,
SkuGoodsTitle = SkuTitle,
SkuCount = SkuCount,
UserId = globalContext.User.Id.ToString(),
ShopId = globalContext.User.Shop.ShopId.ToString(),
//IsWorry = IsWorry
};
if (IsNeedBarCode == Need.)
{
if (BarCodeModel == null || BarCodeModel.Id <= 0)
{
new TipsWindow("请设置条形码模板").Show();
return;
}
createTaskModel.BarCodeId = BarCodeModel.Id;
}
if (IsNeedCertificateModel == Need.)
{
if (CertificateModel == null || CertificateModel.Count() <= 0)
{
new TipsWindow("请设置合格证模板").Show();
return;
}
try
{
createTaskModel.CertificateId = CertificateModel.Where(c => c.Id > 0).FirstOrDefault()?.Id;
}
catch
{
}
createTaskModel.CerId = string.Join(",", CertificateModel.Where(c => c.Id > 0).Select(c => c.Id));//
}
ApiResponse<object> res = null;
if (TaskId > 0)//修改界面
{
res = packTaskService.UpdateTask(createTaskModel);
}
else
{
res = packTaskService.CreateTask(createTaskModel);
}
if (res.Success)
{
if (ReflashWindow != null) ReflashWindow();//刷新主界面
var win = obj as System.Windows.Window;
win.Close();
}
}
#endregion
}
}

85
BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs

@ -127,6 +127,11 @@ namespace BBWY.Client.ViewModels.PackTask
public TaskListViewModel(PackTaskService packTaskService, GlobalContext globalContext, ProductService productService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService)
{
this.globalContext = globalContext;
this.productService = productService;
this.consumableService = consumableService;
this.workProcessService = workProcessService;
this.increateServiceService = increateServiceService;
this.packTaskService = packTaskService;
//TaskState = BBWY.Client.Models. TaskState.全部;
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
@ -144,35 +149,28 @@ namespace BBWY.Client.ViewModels.PackTask
});
OpenSkuDetailCommand = new RelayCommand<object>(OpenSkuDetail);
CopyTextCommand = new RelayCommand<object>(s =>
{
try
{
Clipboard.SetText(s.ToString());
}
catch (Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex);
Console.ResetColor();
}
});
DeletedTaskCommand = new RelayCommand<object>(DeletedTask);
StartTime = DateTime.Now.Date;
EndTime = DateTime.Now.Date;
IsLoading = false;
//加载数据
SetTaskState(Models.TaskState.);
this.globalContext = globalContext;
this.productService = productService;
this.consumableService = consumableService;
this.workProcessService = workProcessService;
this.increateServiceService = increateServiceService;
}
private void DeletedTask(object obj)
{
MessageBoxResult result = MessageBox.Show("确定删除?", "提示",
MessageBoxButton.YesNo,
MessageBoxImage.Warning);
long taskId = (long)obj;
if (result != MessageBoxResult.Yes) return;
packTaskService.DeletedTask(taskId);
Task.Factory.StartNew(() => SearchTaskList());
}
private void IsLoadCount()
@ -227,11 +225,11 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary>
public ICommand OpenSkuDetailCommand { get; set; }
/// <summary>
/// 复制
/// 删除任务
/// </summary>
public ICommand CopyTextCommand { get; set; }
public ICommand DeletedTaskCommand { get; set; }
public void SetTaskState(TaskState? taskState)
{
@ -293,7 +291,7 @@ namespace BBWY.Client.ViewModels.PackTask
foreach (var item in dataModel.Items)
{
var data = new PackTaskModel(packTaskService, consumableService, workProcessService, increateServiceService)
var data = new PackTaskModel()
{
Brand = item.Brand,
SkuId = item.SkuId,
@ -322,25 +320,22 @@ namespace BBWY.Client.ViewModels.PackTask
TaskId = item.TaskId,
TaskStatus = (TaskStateType)item.TaskStatus,
EndTime = item.CreateTime,
IsWorry = (Worry)item.IsWorry
IsWorry = (Worry)item.IsWorry,
};
if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0)
{
data.BarCodeModel = item.BarCodeDTO;
}
if (item.certificate != null)
if (item.cers != null)
{
data.CertificateModel = item.certificate;
data.CertificateModel = item.cers;
}
if (item.FeesItemResponse != null)
{
data.FeesItemResponse = item.FeesItemResponse;
data.FeesMoney = item.FeesItemResponse.SingleFees;
data.IsShowFees = data.FeesMoney > 0 ? true : false;
data.FeesItemResponse.DiscountSingleFees = item.FeesItemResponse.SingleFees *item.FeesItemResponse.disCount;
data.FeesItemResponse.DiscountSingleFees = item.FeesItemResponse.SingleFees * item.FeesItemResponse.disCount;
data.FeesItemResponse.DiscountAllFees = item.FeesItemResponse.AllFees * item.FeesItemResponse.disCount;
}
@ -399,19 +394,31 @@ namespace BBWY.Client.ViewModels.PackTask
public void CreateTask()
{
ViewModelLocator viewModel = new ViewModelLocator();
var createViewModel = viewModel.CreateTaskView;
if (createViewModel.ReflashWindow == null)
{
createViewModel.ReflashWindow = ReflashTask;
}
var publicTaskViewModel = viewModel.PublishTask;
if (publicTaskViewModel.ReflashWindow == null)
publicTaskViewModel.ReflashWindow = ReflashTask;
publicTaskViewModel.InitData();
PublishTaskWindow publish = new PublishTaskWindow();
publish.Show();
//ViewModelLocator viewModel = new ViewModelLocator();
//var createViewModel = viewModel.CreateTaskView;
//if (createViewModel.ReflashWindow == null)
//{
// createViewModel.ReflashWindow = ReflashTask;
//}
CreatePackTask create = new CreatePackTask();
create.SendData();
//CreatePackTask create = new CreatePackTask();
//create.SendData();
create.Show();
//create.Show();
}

50
BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs

@ -146,7 +146,7 @@ namespace BBWY.Client.ViewModels.PackTask
private readonly WorkProcessService workProcessService;
private readonly PackTaskService packTaskService;
private readonly IncreateServiceService increateServiceService;
public WareHouseListViewModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService, ProductService productService)
public WareHouseListViewModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService, ProductService productService, BatchPurchaseService batchPurchaseService)
{
this.packTaskService = packTaskService;
this.consumableService = consumableService;
@ -181,24 +181,18 @@ namespace BBWY.Client.ViewModels.PackTask
StartTime = DateTime.Now.Date;
EndTime = DateTime.Now.Date;
IsLoading = false;
SetTaskStatusCommand = new RelayCommand<object>(SetTaskStatus);
//加载数据
SetTaskState(Models.TaskState.);
this.workProcessService = workProcessService;
this.increateServiceService = increateServiceService;
this.productService = productService;
this.batchPurchaseService = batchPurchaseService;
}
#region 事件绑定
public ICommand SetTaskStatusCommand { get; set; }
/// <summary>
/// 打开图片链接
/// </summary>
@ -229,6 +223,21 @@ namespace BBWY.Client.ViewModels.PackTask
public ICommand TaskPageIndexChangedCommand { get; set; }
BatchPurchaseService batchPurchaseService;
public void SetTaskStatus(object obj )
{
var objList = (object[])obj;
long taskId = (long)objList[0];
string orderId=(string)objList[1];
///修改完成
var model = packTaskService.UpdateTaskStatus(taskId, 1,orderId);
if (model != null && model.Success)
SearchTaskList();
}
public void SetTaskState(TaskState? taskState)
{
IsWorry = null;
@ -280,7 +289,7 @@ namespace BBWY.Client.ViewModels.PackTask
OrderCount = dataModel.TotalCount;
foreach (var item in dataModel.Items)
{
var data = new PackTaskModel(packTaskService, consumableService, workProcessService, increateServiceService)
var data = new PackTaskModel()
{
AcceptName = item.UserName,
Availability = (TaskState)item.Availability,
@ -306,8 +315,10 @@ namespace BBWY.Client.ViewModels.PackTask
SkuTitle = item.SkuGoodsTitle,
TaskId = item.TaskId,
TaskStatus = (TaskStateType)item.TaskStatus,
EndTime = item.CreateTime
EndTime = item.CreateTime,
OrderId= item.OrderId,
SkuId = item.SkuId,
SkuName = item.SkuName,
};
if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0)
@ -316,9 +327,9 @@ namespace BBWY.Client.ViewModels.PackTask
data.BarCodeModel = item.BarCodeDTO;
}
if (item.certificate != null)
if (item.cers != null)
{
data.CertificateModel = item.certificate;
data.CertificateModel = item.cers;
}
@ -400,14 +411,5 @@ namespace BBWY.Client.ViewModels.PackTask
#endregion
}
}

17
BBWY.Client/ViewModels/ViewModelLocator.cs

@ -277,5 +277,22 @@ namespace BBWY.Client.ViewModels
return s.ServiceProvider.GetRequiredService<BatchPurchaseAddProductSkuViewModel>();
}
}
public BatchPublishTaskViewModel BatchPublishTask
{
get
{
using var s = sp.CreateScope();
return s.ServiceProvider.GetRequiredService<BatchPublishTaskViewModel>();
}
}
public PublishTaskViewModel PublishTask
{
get
{
using var s = sp.CreateScope();
return s.ServiceProvider.GetRequiredService<PublishTaskViewModel>();
}
}
}
}

277
BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml

@ -0,0 +1,277 @@
<c:BWindow x:Class="BBWY.Client.Views.BatchPurchase.BatchPublishTaskWindow"
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:BBWY.Client.Views.BatchPurchase"
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
CloseButtonVisibility="Visible"
CloseButtonColor="{StaticResource WindowButtonColor}"
DataContext="{Binding BatchPublishTask,Source={StaticResource Locator}}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0"
Title="发布任务" Height="800" Width="1300">
<!-- DataContext="{Binding CreateTaskView,Source={StaticResource Locator}}" -->
<Window.Resources>
<ResourceDictionary>
<ObjectDataProvider x:Key="storageTypeProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="cmodel:StorageType"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ctr:OrderStorageTypeOptionConverter x:Key="ostConverter"/>
<ctr:ProfitRatioConverter x:Key="profitRatioConverter"/>
<ctr:WaybillNoConverter x:Key="waybillConverter"/>
<ctr:MultiParameterTransferConverter x:Key="mptConverter"/>
<ctr:SaleGrossProfitConverter x:Key="sgpcConverter"/>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/>
<Grid Background="{StaticResource Border.Background}">
<TextBlock Text="发布任务" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>
<ListBox x:Name="listbox_order"
Grid.Row="1"
ItemsSource="{Binding BatchPublishTasks,Mode=TwoWay}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
BorderBrush="{StaticResource Border.Brush}"
BorderThickness="1,1,1,1"
Foreground="{StaticResource Text.Color}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="{Binding ActualWidth,ElementName=listbox_order,Converter={StaticResource widthConverter},ConverterParameter=-0}"
MinHeight="100">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<StackPanel Orientation="Vertical" Grid.Column="0">
<c:BAsyncImage UrlSource="{Binding Logo}"
Width="150" DecodePixelWidth="150"
VerticalAlignment="Top" Margin="25 13 25 13"
Cursor="Hand">
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.OpenSkuDetailCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="SkuId"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BAsyncImage>
<TextBlock Margin="25 0 0 10">
<Run Text="SKU名称:"/>
<Run Text="{Binding SkuName}"/>
</TextBlock >
<TextBlock Margin="25 0 0 10">
<Run Text="货号:"/>
<Run Text="{Binding ProductNo}"/>
</TextBlock>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="25 0 0 10" Height="30">
<TextBlock Text="品名:" VerticalAlignment="Center"/>
<c:BTextBox Text="{Binding BrandName}" Height="30" Width="120" WaterRemark="请输入品名"/>
</StackPanel>
<StackPanel Margin="25 0 0 10" Orientation="Horizontal">
<TextBlock Text="条形码:"/>
<c:BButton Content="设置" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetBarCodeCommand}"
Visibility="{Binding IsSetBarCode, Converter={StaticResource objConverter}, ConverterParameter=true:Visible:Collapsed }"
/>
<StackPanel Visibility="{Binding IsSetBarCode, Converter={StaticResource objConverter}, ConverterParameter=false:Visible:Collapsed }" Orientation="Horizontal" HorizontalAlignment="Center" >
<c:BButton Content="查看" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding LookBarCommand}"/>
<c:BButton Content="修改" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetBarCodeCommand}"/>
</StackPanel >
</StackPanel>
<StackPanel Margin="25 0 0 5" Orientation="Horizontal">
<TextBlock Text="合格证:"/>
<c:BButton Content="设置" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetCertificateCommand}"
Visibility="{Binding IsSetCertificate, Converter={StaticResource objConverter}, ConverterParameter=true:Visible:Collapsed }"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"
Visibility="{Binding IsSetCertificate, Converter={StaticResource objConverter}, ConverterParameter=false:Visible:Collapsed }">
<c:BButton Content="查看" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding LookCerCommand}"/>
<c:BButton Content="修改" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetCertificateCommand}"/>
</StackPanel >
</StackPanel>
</StackPanel>
<Grid Grid.Column="1">
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid >
<TextBlock Text="任务信息" FontWeight="Bold" Margin="19 23" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<StackPanel Height="30" VerticalAlignment="Center" Margin="19 64" Orientation="Horizontal" HorizontalAlignment="Left" >
<TextBlock Text="数量:" VerticalAlignment="Center"/>
<c:BTextBox WaterRemark="打包数量" Height="25" Width="90" Text="{Binding SkuCount}" />
<TextBlock Margin="30 0 0 0" Text="到货情况:" VerticalAlignment="Center"/>
<Border BorderBrush="{StaticResource Border.Brush}" BorderThickness="1">
<ComboBox BorderThickness="0" VerticalContentAlignment="Center" ItemsSource="{Binding AvailabilityList}" Text="{Binding Availability}" >
</ComboBox>
</Border>
<!--<TextBlock Margin="30 0 0 0" Text="加急:" VerticalAlignment="Center"/>
<ComboBox VerticalContentAlignment="Center" ItemsSource="{Binding WorryList}" Text="{Binding IsWorry}" >
</ComboBox>-->
</StackPanel>
<c:BTextBox HorizontalAlignment="Left" Text="{Binding MarkMessage}" VerticalAlignment="Top" Height="100" Width="350"
WaterRemark="打包备注" Margin="400 64 0 0 " AcceptsReturn="True" TextWrapping="Wrap">
</c:BTextBox>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" Height="30"
Margin="19 118 0 0">
<TextBlock Text="落仓去向:" VerticalAlignment="Center"/>
<Border BorderBrush="{StaticResource Border.Brush}" BorderThickness="1">
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" ItemsSource="{Binding PositionTypeList}" Text="{Binding PositionType}" >
</ComboBox>
</Border>
</StackPanel>
</Grid>
<Grid Grid.Row="1">
<TextBlock Text="打包配置" FontWeight="Bold" Margin="19 23" />
<Grid Height="70" Margin="19 64">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="77"/>
<ColumnDefinition Width="77"/>
<ColumnDefinition MinWidth="77"/>
<ColumnDefinition Width="88"/>
<ColumnDefinition Width="140"/>
<ColumnDefinition Width="88"/>
<ColumnDefinition Width="88"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.ColumnSpan="8" VerticalAlignment="Top" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.Row="0" Grid.ColumnSpan="8" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.Row="1" Grid.ColumnSpan="8" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="0" HorizontalAlignment="Left" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="0" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="1" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="2" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="3" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="4" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="5" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="6" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="7" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="0" Text="组合类型"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="1" Text="配件数量"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="2" Text="SKU配件商品"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="3" Text="基础包装"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="4" Text="增量耗材"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="5" Text="条码标签"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="6" Text="合格证"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="7" Text="合格证位置"/>
<Grid Grid.Row="1" Grid.Column="0" >
<ComboBox VerticalContentAlignment="Center" Margin="1" BorderThickness="0" ItemsSource="{Binding PackTypeList}" Text="{Binding PackType}" >
</ComboBox>
</Grid>
<c:BTextBox BorderBrush="Transparent" Grid.Row="1" Grid.Column="1" Height="30" Margin="5" Text="{Binding GoodsNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<c:BTextBox BorderBrush="Transparent" Grid.Row="1" Grid.Column="2" Height="30" Margin="5" Text="{Binding SkuTitle,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Grid Grid.Row="1" Grid.Column="3" >
<ComboBox VerticalContentAlignment="Center" Margin="1" BorderThickness="0" ItemsSource="{Binding BasicPackList}" Text="{Binding BasicPack}" >
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="4">
<hc:CheckComboBox IsTextSearchEnabled="True" ItemsSource="{Binding IncreateList}"
ShowClearButton="True"
MinWidth="90"
Height="25" BorderThickness="0" Margin="1"
>
<hc:CheckComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5,2.5">
<CheckBox Content="{Binding IncreateName}" IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</DataTemplate>
</hc:CheckComboBox.ItemTemplate>
<hc:CheckComboBox.ItemContainerStyle>
<Style TargetType="{x:Type hc:CheckComboBoxItem}" BasedOn="{StaticResource NoBgListBoxItemStyle}">
<Setter Property="IsSelected" Value="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</Style>
</hc:CheckComboBox.ItemContainerStyle>
</hc:CheckComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="5" >
<ComboBox VerticalContentAlignment="Center" Margin="1" BorderThickness="0" ItemsSource="{Binding IsNeedBarCodeList}" Text="{Binding IsNeedBarCode,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="6" >
<ComboBox VerticalContentAlignment="Center" Margin="1" BorderThickness="0" ItemsSource="{Binding IsNeedBarCodeList}" Text="{Binding IsNeedCertificateModel,Mode=TwoWay}">
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="7" >
<ComboBox VerticalContentAlignment="Center" Margin="1" BorderThickness="0" ItemsSource="{Binding CertificatePositionList}" Text="{Binding CertificatePosition}">
</ComboBox>
</Grid>
</Grid>
</Grid>
</Grid>
<Border Grid.Row="1" Grid.ColumnSpan="2" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Grid Grid.Row="2">
<Button Content="发布" Width="100" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,2,5,2"
Command="{Binding CreateTaskCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type c:BWindow}}}"
Background="{StaticResource Button.Background}" BorderThickness="0" Foreground="White"/>
</Grid>
</Grid>
</c:BWindow>

41
BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml.cs

@ -0,0 +1,41 @@
using BBWY.Client.Models;
using BBWY.Controls;
using GalaSoft.MvvmLight.Messaging;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BBWY.Client.Views.BatchPurchase
{
/// <summary>
/// BatchPublishTaskWindow.xaml 的交互逻辑
/// </summary>
public partial class BatchPublishTaskWindow : BWindow
{
public BatchPublishTaskWindow()
{
InitializeComponent();
Messenger.Default.Register<bool>(this, "CloseBatchPublishTaskWindow", CloseWindow);
}
private void CloseWindow(bool obj)
{
Messenger.Default.Unregister(this);
if (obj)
{
this.Close();
}
}
}
}

56
BBWY.Client/Views/BatchPurchase/BatchPurchaseOrderList.xaml

@ -103,7 +103,7 @@
<Button Content="搜索" Width="50" VerticalAlignment="Stretch" Margin="5,0,0,0" Command="{Binding SearchPurchaseOrderCommand}"
Grid.RowSpan="2" Background="{StaticResource Button.Selected.Background}" BorderThickness="0" Foreground="White"/>
<Button Content="导出" Command="{Binding ExportCommand}" Width="50" Grid.Column="1"
Visibility="{Binding Visibility,ElementName=listbox_order}" Background="#1CC2A2" BorderThickness="0" Foreground="White"/>
Visibility="{Binding Visibility,ElementName=listbox_purchaseOrder}" Background="#1CC2A2" BorderThickness="0" Foreground="White"/>
<!--<Button Content="同步" Command="{Binding SyncOrderCommand}" Width="50" Grid.Column="1" Grid.Row="1"
Visibility="{Binding Visibility,ElementName=listbox_order}" Background="#02A7F0" BorderThickness="0" Foreground="White"/>-->
</Grid>
@ -128,15 +128,15 @@
Background="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待收货:#8080FF:#F2F2F2}"
Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待收货:White:#4A4A4A}"
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待收货}"/>
<c:BButton Content="待质检" Width="100"
<!--<c:BButton Content="待质检" Width="100"
Background="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待质检:#8080FF:#F2F2F2}"
Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待质检:White:#4A4A4A}"
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待质检}"/>
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待质检}"/>-->
<c:BButton Content="待打包" Width="100"
Background="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待打包:#8080FF:#F2F2F2}"
Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待打包:White:#4A4A4A}"
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待打包}"/>
<c:BButton Content="待结算" Width="100"
<c:BButton Content="待结算" Width="100" Visibility="Collapsed"
Background="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待结算:#8080FF:#F2F2F2}"
Foreground="{Binding PurchaseOrderState,Converter={StaticResource objConverter},ConverterParameter=待结算:White:#4A4A4A}"
Command="{Binding SetPurchaseOrderStateCommand}" CommandParameter="{x:Static cmodel:PurchaseOrderState.待结算}"/>
@ -371,7 +371,8 @@
TextWrapping="Wrap"/>
<Border Width="1" Grid.Column="5" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}"/>
<StackPanel Visibility="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待付款:Visible:Collapsed}" Orientation="Vertical" Grid.Column="6" VerticalAlignment="Center">
<StackPanel Grid.Column="6" VerticalAlignment="Center">
<StackPanel Visibility="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待付款:Visible:Collapsed }" Orientation="Vertical" VerticalAlignment="Center">
<c:BButton x:Name="payOrder" Content="支付货款" Style="{StaticResource LinkButton}"
Margin="5,0,0,10">
<b:Interaction.Triggers>
@ -387,8 +388,7 @@
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
<!-- Command ="{Binding DataContext.CancelPurchaseOrderCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}"
CommandParameter="{Binding Id}" -->
<c:BButton x:Name="cancelOrder" Content="取消" Style="{StaticResource LinkButton}"
Margin="5,0,0,0">
<b:Interaction.Triggers>
@ -404,6 +404,48 @@
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
</StackPanel>
<Grid >
<StackPanel Visibility="{Binding OrderState,Converter={StaticResource objConverter},ConverterParameter=待打包:Visible:Collapsed }" Orientation="Vertical" VerticalAlignment="Center">
<c:BButton x:Name="createTask" Content="发布任务" Visibility="{Binding PackState,Converter={StaticResource objConverter},ConverterParameter=待发布:Visible:Collapsed}" Style="{StaticResource LinkButton}"
Margin="5,0,0,10">
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.CreateQTTaskCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="PurchasePlatform" />
<Binding Path="Id" />
<Binding Path="ItemList"/>
<Binding Path="PurchaserId"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
<c:BButton Content="取消" Visibility="{Binding PackState,Converter={StaticResource objConverter},ConverterParameter=打包中:Visible:Collapsed}" Style="{StaticResource LinkButton}"
Margin="5,0,0,10">
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.CancelQTTaskCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="Id" />
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
<c:BButton Visibility="{Binding PackState,Converter={StaticResource objConverter},ConverterParameter=已完成:Visible:Collapsed}" Style="{StaticResource LinkButton}"
Margin="5,0,0,10">
</c:BButton>
</StackPanel>
</Grid>
</StackPanel>
</Grid>

2
BBWY.Client/Views/MainWindow.xaml

@ -26,7 +26,7 @@
<!--<TextBlock Text="{Binding GlobalContext.User.TeamName}" Margin="5,0,0,0"/>
<TextBlock Text="{Binding GlobalContext.User.Shop.Platform}" Margin="5,0,0,0"/>-->
<TextBlock Text="{Binding GlobalContext.User.Shop.ShopName}" Margin="5,0,0,0"/>
<TextBlock Text="v10101" Margin="5,0,0,0"/>
<TextBlock Text="v10103" Margin="5,0,0,0"/>
</StackPanel>
</Border>
<Grid Grid.Row="1">

53
BBWY.Client/Views/PackTask/BarcodeControl.xaml

@ -6,88 +6,69 @@
xmlns:local="clr-namespace:BBWY.Client.Views.PackTask"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="{StaticResource MainMenu.BorderBrush}"
Background="{StaticResource Border.Background}">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:BarcodeControl}}}">
<DockPanel Grid.Row="1">
<Border Name="jingjian" Visibility="{Binding LabelModel,Converter={StaticResource objConverter},ConverterParameter=精简模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<StackPanel Orientation="Vertical" >
<Border Name="jingjian" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=精简模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<StackPanel Orientation="Vertical">
<TextBlock Margin="10,25,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Run Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<TextBlock Margin="10,25,10,0" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding SkuName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Run Text="{Binding model.SkuName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<Image Source="/resources/images/barcode.png" Margin="10,25,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding BarCodeData.SkuId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Run Text="{Binding model.SkuId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
</StackPanel>
</Border>
<Border Name="biaozhun" Visibility="{Binding BarCodeData.LabelModel,Converter={StaticResource objConverter},ConverterParameter=标准模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<Border Name="biaozhun" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=标准模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<StackPanel Orientation="Vertical" >
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品牌:"/>
<Run Text="{Binding BarCodeData.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Run Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding BarCodeData.BrandName}"/>
<Run Text="{Binding model.BrandName}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="型号:"/>
<Run Text="{Binding BarCodeData.ProductNo}"/>
<Run Text="{Binding model.ProductNo}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding BarCodeData.SkuName}"/>
<Run Text="{Binding model.SkuName}"/>
</TextBlock>
<Image Source="/resources/images/barcode.png" Margin="10,10,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding BarCodeData.SkuId}"/>
<Run Text="{Binding model.SkuId}"/>
</TextBlock>
</StackPanel>
</Border>
<Border Name="wuxinghao" Visibility="{Binding BarCodeData.LabelModel,Converter={StaticResource objConverter},ConverterParameter=无型号模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<Border Name="wuxinghao" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=无型号模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Height="220" Margin="1">
<StackPanel Orientation="Vertical" >
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="品牌:"/>
<Run Text="{Binding BarCodeData.Brand}"/>
<Run Text="{Binding model.Brand}"/>
</TextBlock>
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding BarCodeData.BrandName}"/>
<Run Text="{Binding model.BrandName}"/>
</TextBlock>
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding BarCodeData.SkuName}"/>
<Run Text="{Binding model.SkuName}"/>
</TextBlock>
<Image Source="/resources/images/barcode.png" Margin="10,10,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding BarCodeData.SkuId}"/>
<Run Text="{Binding model.SkuId}"/>
</TextBlock>
</StackPanel>
</Border>
</DockPanel>
</Grid>
</UserControl>

11
BBWY.Client/Views/PackTask/BarcodeControl.xaml.cs

@ -22,7 +22,6 @@ namespace BBWY.Client.Views.PackTask
public BarcodeControl()
{
InitializeComponent();
this.DataContext = this.BarCodeData;
}
@ -30,18 +29,18 @@ namespace BBWY.Client.Views.PackTask
/// <summary>
///
/// </summary>
public BarCodeModel BarCodeData
public BarCodeModel model
{
get { return (BarCodeModel)GetValue(BarCodeDataProperty); }
get { return (BarCodeModel)GetValue(modelProperty); }
set
{
SetValue(BarCodeDataProperty, value);
SetValue(modelProperty, value);
}
}
public static readonly DependencyProperty BarCodeDataProperty =
DependencyProperty.Register("BarCodeData", typeof(BarCodeModel), typeof(BarcodeControl), new PropertyMetadata(ChangedProperty));
public static readonly DependencyProperty modelProperty =
DependencyProperty.Register("model", typeof(BarCodeModel), typeof(BarcodeControl), new PropertyMetadata(ChangedProperty));
private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{

224
BBWY.Client/Views/PackTask/CerControl.xaml

@ -2,103 +2,161 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BBWY.Client.Views.PackTask"
mc:Ignorable="d"
mc:Ignorable="d" Background="White"
d:DesignHeight="300" d:DesignWidth="382">
<Grid>
<StackPanel Grid.Row="1" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:SetCerControl}}}">
<Border Name="no3c" Visibility="{Binding CerData.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准无3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.Brand}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.ProductNo}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.BrandName}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,112,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,150,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
TextWrapping ="Wrap" AcceptsReturn="True"
Height="50" Text="{Binding CerData.ExcuteStander}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,148,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.ProductShop}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,246,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding CerData.ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:CerControl}}}">
<DockPanel Grid.Row="1">
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=无型号:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="298" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 10" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="如多个标准请使用逗号分隔" Height="50" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Height="48" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Grid>
</Border>
<Border Name="is3c" Visibility="{Binding CerData.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding CerData.Brand}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,85,0,0"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,90,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding CerData.ProductNo}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,85,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,127,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding CerData.BrandName}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,122,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,127,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,122,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,154,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
Text="{Binding CerData.ExcuteStander}" Height="40" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,153,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding CerData.ProductShop}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,246,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding CerData.ProductAdress}" Height="44" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<!--<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />-->
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding CerData.FactoryNumber}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
<Border Name="shiyongnianling" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=适用年龄:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="298" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 10" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<TextBlock Text="适用年龄:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ApplyAge}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="如多个标准请使用逗号分隔" Height="50" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Height="48" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Grid>
</Border>
<Border Name="noxinghao" Visibility="{Binding CerData.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=无型号:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.Brand}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.BrandName}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,150,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
TextWrapping ="Wrap" AcceptsReturn="True"
Height="50" Text="{Binding CerData.ExcuteStander}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,148,0,0"/>
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准无3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="298" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 10" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="如多个标准请使用逗号分隔" Height="50" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Height="48" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准有3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="298" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" >
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="157 0 70 0" />
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="40" VerticalAlignment="Top" Margin="0 5 0 0" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 2 0 2">
<TextBlock Text="工厂编号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="223,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 5 0 5">
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding CerData.ProductShop}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="如多个标准请使用逗号分隔" Height="50" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" Margin="0 5 0 0">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 5 0 0">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 5 0 0">
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 5 0 0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Height="48" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,246,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding CerData.ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
</StackPanel>
</DockPanel>
</Grid>
</UserControl>

14
BBWY.Client/Views/PackTask/CerControl.xaml.cs

@ -22,7 +22,7 @@ namespace BBWY.Client.Views.PackTask
public CerControl()
{
InitializeComponent();
this.DataContext = CerData;
//this.DataContext = CerData;
}
@ -30,18 +30,16 @@ namespace BBWY.Client.Views.PackTask
/// <summary>
///
/// </summary>
public CertificateModel CerData
public CertificateModel model
{
get { return (CertificateModel)GetValue(CerDataProperty); }
get { return (CertificateModel)GetValue(modelProperty); }
set
{
SetValue(CerDataProperty, value);
SetValue(modelProperty, value);
}
}
public static readonly DependencyProperty CerDataProperty =
DependencyProperty.Register("CerData", typeof(CertificateModel), typeof(CerControl), new PropertyMetadata(ChangedProperty));
public static readonly DependencyProperty modelProperty =
DependencyProperty.Register("model", typeof(CertificateModel), typeof(CerControl), new PropertyMetadata(ChangedProperty));
private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{

49
BBWY.Client/Views/PackTask/CreatePackTask.xaml

@ -17,7 +17,7 @@
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0"
Title="发布任务" Height="350" Width="1500">
Title="发布任务" HorizontalAlignment="Center" Height="350" Width="1500">
<!-- DataContext="{Binding CreateTaskView,Source={StaticResource Locator}}" -->
<Window.Resources>
<ResourceDictionary>
@ -37,17 +37,21 @@
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="43*"/>
<ColumnDefinition Width="1457*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="150"/>
<RowDefinition/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/>
<Grid Background="{StaticResource Border.Background}">
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999" Grid.ColumnSpan="2"/>
<Grid Background="{StaticResource Border.Background}" Grid.ColumnSpan="2">
<TextBlock Text="发布任务" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>
<Grid Grid.Row="1">
<Grid Grid.Row="1" Grid.ColumnSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="350"/>
@ -140,7 +144,7 @@
</Grid>
</Grid>
<Grid Margin="10" Grid.Row="2">
<Grid Margin="10,10,10,10" Grid.Row="2" Grid.ColumnSpan="2">
<Grid >
<Grid.Resources>
@ -165,7 +169,7 @@
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="0"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="60"/>
@ -215,7 +219,7 @@
<TextBlock Grid.Row="0" Grid.Column="0" Text="SKU数量"/>
<TextBlock Grid.Row="0" Grid.Column="1" Text="到货情况"/>
<TextBlock Grid.Row="0" Grid.Column="2" Text="加急"/>
<!--<TextBlock Grid.Row="0" Grid.Column="2" Text="加急" />-->
<TextBlock Grid.Row="0" Grid.Column="3" Text="落仓"/>
<TextBlock Grid.Row="0" Grid.Column="4" Text="组合类型"/>
<TextBlock Grid.Row="0" Grid.Column="5" Text="配件数量"/>
@ -236,38 +240,31 @@
<Grid Grid.Row="1" Grid.Column="1" >
<ComboBox VerticalContentAlignment="Center" Margin="5" Text="{Binding Availability}" >
<ComboBoxItem Content="已到货" IsSelected="True" />
<ComboBoxItem Content="部分到货"/>
<ComboBoxItem Content="未到货"/>
<ComboBox VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding AvailabilityList}" Text="{Binding Availability}" >
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="2" >
<ComboBox VerticalContentAlignment="Center" Text="{Binding IsWorry}" Margin="5" >
<!--<Grid Grid.Row="1" Grid.Column="2" Visibility="Collapsed">
<ComboBox VerticalContentAlignment="Center" ItemsSource="{Binding WorryList}" Text="{Binding IsWorry}" Margin="5" >
<ComboBoxItem Content="否" IsSelected="True" />
<ComboBoxItem Content="是"/>
</ComboBox>
</Grid>
</Grid>-->
<Grid Grid.Row="1" Grid.Column="3" >
<ComboBox VerticalContentAlignment="Center" Text="{Binding PositionType}" Margin="5" >
<ComboBoxItem Content="本地仓" IsSelected="True" />
<ComboBoxItem Content="齐越仓"/>
<ComboBoxItem Content="京东仓"/>
<ComboBox VerticalContentAlignment="Center" ItemsSource="{Binding PositionTypeList}" Text="{Binding PositionType}" Margin="5" >
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="4" >
<ComboBox VerticalContentAlignment="Center" Margin="5" Text="{Binding PackType}" >
<ComboBoxItem Content="单件" IsSelected="True" />
<ComboBoxItem Content="多件"/>
<ComboBox VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding PackTypeList}" Text="{Binding PackType}" >
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="7" >
<ComboBox BorderBrush="Transparent" VerticalContentAlignment="Center" Margin="5" Text="{Binding BasicPack}" >
<ComboBoxItem Content="快递袋" IsSelected="True" />
<ComboBoxItem Content="纸箱"/>
<ComboBoxItem Content="麻袋"/>
<ComboBox BorderBrush="Transparent" VerticalContentAlignment="Center" Margin="5" ItemsSource="{Binding BasicPackList}" Text="{Binding BasicPack}" >
</ComboBox>
</Grid>
@ -329,7 +326,7 @@
</Grid>
<Grid Grid.Row="3">
<Grid Grid.Row="3" Grid.ColumnSpan="2">
<Button Content="{Binding SaveTask,Mode=TwoWay}" Width="100" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,2,5,2"
Command="{Binding CreateTaskCommand}"

146
BBWY.Client/Views/PackTask/LookCerWindow.xaml

@ -6,8 +6,9 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:BBWY.Client.Views.PackTask"
mc:Ignorable="d"
xmlns:hc="https://handyorg.github.io/handycontrol"
Style="{StaticResource bwstyle}"
Height="340" Width="382"
Height="373" Width="386"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
@ -17,9 +18,9 @@
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0"
ResizeMode="NoResize"
>
<!-- DataContext="{Binding CreateSetBarCodeView,Source={StaticResource Locator}}"-->
<!-- ResizeMode="NoResize" DataContext="{Binding CreateSetBarCodeView,Source={StaticResource Locator}}"-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
@ -29,126 +30,29 @@
Background="{StaticResource Border.Background}">
<TextBlock Text="查看合格证" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<DockPanel Grid.Row="1">
<Border Name="shiyongnianling" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=适用年龄:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="285" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Brand}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding BrandName}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Shader}" Width="116" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="适用年龄:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="179,112,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding ApplyAge}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,150,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
TextWrapping ="Wrap" AcceptsReturn="True"
Height="50" Text="{Binding ExcuteStanderFormat}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,148,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding ProductShop}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,241,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
<Border Name="no3c" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准无3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Brand}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding ProductNo}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding BrandName}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,112,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,150,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
TextWrapping ="Wrap" AcceptsReturn="True"
Height="50" Text="{Binding ExcuteStanderFormat}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,148,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding ProductShop}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,241,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
<Border Name="is3c" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding Brand}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,85,0,0"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,90,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding ProductNo}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,85,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,127,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding BrandName}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,122,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,127,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,122,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,154,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
Text="{Binding ExcuteStanderFormat}" Height="40" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,153,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding ProductShop}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,241,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<!--<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />-->
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding FactoryNumber}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
</Grid>
</Border>
<Border Name="noxinghao" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=无型号:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Brand}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding BrandName}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding Shader}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,150,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent"
TextWrapping ="Wrap" AcceptsReturn="True"
Height="50" Text="{Binding ExcuteStanderFormat}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,148,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Height="25" Text="{Binding ProductShop}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,241,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
</DockPanel>
<hc:TabControl Grid.Row="1" MaxWidth="385" ItemsSource="{Binding GoodsNumberCerList,Mode=TwoWay}" IsAnimationEnabled="True" IsDraggable="True" IsTabFillEnabled="True" Name="tab" DockPanel.Dock="Bottom">
<hc:TabControl.Resources>
<ResourceDictionary >
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</hc:TabControl.Resources>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Center" Text="{Binding CertificateModel.GoodsNumber,StringFormat=配件{0}}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:CerControl model="{Binding CertificateModel,Mode=TwoWay}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</hc:TabControl>
</Grid>

33
BBWY.Client/Views/PackTask/LookCerWindow.xaml.cs

@ -1,8 +1,10 @@
using BBWY.Client.Models;
using BBWY.Controls;
using NPOI.Util;
using Org.BouncyCastle.Crypto.Tls;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows;
@ -21,31 +23,22 @@ namespace BBWY.Client.Views.PackTask
/// </summary>
public partial class LookCerWindow : BWindow
{
public LookCerWindow(CertificateModel certificate)
public LookCerWindow(CertificateModel[] certificate)
{
InitializeComponent();
CertificateModel data = new CertificateModel
GoodsNumberCerList = new ObservableCollection<GoodsNumberCer>();
foreach (CertificateModel certificateModel in certificate)
GoodsNumberCerList.Add(new GoodsNumberCer
{
Brand = certificate.Brand,
BrandName = certificate.BrandName,
ExcuteStander = certificate.ExcuteStander,
FactoryNumber = certificate.FactoryNumber,
IsLogo = certificate.IsLogo,
LabelModel = certificate.LabelModel,
ProductAdress = certificate.ProductAdress,
Id = certificate.Id,
ProductDate = certificate.ProductDate,
ProductNo = certificate.ProductNo,
ProductShop = certificate.ProductShop,
Shader = certificate.Shader,
SkuId = certificate.SkuId,
Reseller = certificate.Reseller,
ApplyAge = certificate.ApplyAge,
CertificateModel = certificateModel.Copy(),
});
this.DataContext = this;
}
};
this.DataContext = data;
}
public ObservableCollection<GoodsNumberCer> GoodsNumberCerList { get; set; }
}
}

13
BBWY.Client/Views/PackTask/PackTaskTotal.xaml

@ -24,6 +24,12 @@
</Page.Resources>
<Grid>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/>
<StackPanel Background="Black" Panel.ZIndex="100" HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Vertical" Margin="572,13,0,0" Width="140">
<c:BTextBox x:Name="tbDepartment" Width="140" Height="30" TextChanged="tb_TextChanged" Text="{Binding SearchDepartment,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></c:BTextBox>
<ListBox MaxHeight="300" x:Name="tipBoxDepartment" SelectionChanged="SelectionChangeCommand" Background="{StaticResource Border.Background}">
</ListBox>
</StackPanel>
<Grid Margin="5,0">
<Grid.RowDefinitions>
<RowDefinition Height="90"/>
@ -31,7 +37,6 @@
<RowDefinition/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Grid Background="{StaticResource Border.Background}" HorizontalAlignment="Left" Height="75" Panel.ZIndex="999">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
@ -52,11 +57,11 @@
<DatePicker SelectedDate="{Binding StartDate}" Width="133.5" Height="30" VerticalContentAlignment="Center" FocusVisualStyle="{x:Null}" Margin="5,0,0,0"/>
<DatePicker SelectedDate="{Binding EndDate}" Width="133.5" Height="30" VerticalContentAlignment="Center" FocusVisualStyle="{x:Null}" Margin="5,0,0,0"/>
<TextBlock Text="任务ID:" Width="40" VerticalAlignment="Center" Margin="5,0,0,0"/>
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchTaskId}" WaterRemark="精确匹配"/>
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchTaskId}" />
<TextBlock Text="部门:" VerticalAlignment="Center" Margin="5,0,0,0"/>
<c:BTextBox Width="150" Margin="5,0,0,0" WaterRemark="精确匹配" Text="{Binding SearchDepartment}"/>
<c:BTextBox Margin="5,0,0,0" Width="140" />
<TextBlock Text="店铺:" VerticalAlignment="Center" Margin="5,0,0,0"/>
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchShopName}" WaterRemark="精确匹配"/>
<c:BTextBox Width="150" Margin="5,0,0,0" Text="{Binding SearchShopName}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="2" Margin="0,0,0,5" Height="30">
<c:BButton Content="今天" Width="50" Height="25" Margin="5,0,0,0"

117
BBWY.Client/Views/PackTask/PackTaskTotal.xaml.cs

@ -1,5 +1,14 @@
using System;
using BBWY.Client.APIServices;
using BBWY.Client.Helpers;
using BBWY.Client.Models.PackTask;
using BBWY.Client.ViewModels;
using BBWY.Common.Models;
using HandyControl.Controls;
using Microsoft.Extensions.Configuration;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Windows;
using System.Windows.Controls;
@ -21,6 +30,112 @@ namespace BBWY.Client.Views.PackTask
public PackTaskTotal()
{
InitializeComponent();
this.Loaded += Load;
}
public ShopService shopService;
private void Load(object sender, RoutedEventArgs e)
{
var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var builder = new ConfigurationBuilder().SetBasePath(applicationPath).AddJsonFile("BBWYAppSettings.json", false, true);
var Configuration = builder.Build();
QKApiHost = Configuration.GetSection("QKApiHost").Value;
HttpClientHelper helper = new HttpClientHelper(QKApiHost);
string url = $"{QKApiHost}/api/PackTask/GetAllDepartment";//获取所有数据
var data = helper.Get(url);
var res = JsonConvert.DeserializeObject<ApiResponse<UserDepartment[]>>(data);
//创建一个ListBoxIem
if (res.Success)
{
if (res.Data != null && res.Data.Length > 0)
{
foreach (var department in res.Data)
{
if (!departments.Contains(department.DePartmentName))
{
departments.Add(department.DePartmentName);
}
}
}
}
}
public string QKApiHost { get; set; }
public void SelectionChangeCommand(object sender, SelectionChangedEventArgs e)
{
try
{
var list = (ListBox)sender;
if (list.Items.Count <= 0)
{
return;
}
var value = (ListBoxItem)list.SelectedValue;
var content = (Label)value.Content;
tbDepartment.Text = content.Content.ToString();
tipBoxDepartment.Visibility = Visibility.Collapsed;
}
catch (Exception)
{
}
}
List<string> departments = new List<string>();
private void tb_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
var textBoxt = (System.Windows.Controls.TextBox)sender;
//创建一个ListBox
if (tipBoxDepartment != null && tipBoxDepartment.Items.Count > 0)
{
tipBoxDepartment.Items.Clear();
}
if (departments.Count <= 0)
return;
if (string.IsNullOrEmpty(textBoxt.Text))
{
tipBoxDepartment.Visibility = Visibility.Collapsed;
return;
}
foreach (var department in departments)
{
if (department.Contains(textBoxt.Text))
{
ListBoxItem item = new ListBoxItem();
Label lb = new Label();
lb.Content = department;
item.Content = lb;
tipBoxDepartment.Items.Add(item);
}
}
tipBoxDepartment.Visibility = Visibility.Visible;
}
catch (Exception)
{
}
}
}
}

40
BBWY.Client/Views/PackTask/PrintWindow.xaml

@ -7,7 +7,8 @@
xmlns:local="clr-namespace:BBWY.Client.Views.PackTask"
mc:Ignorable="d"
Style="{StaticResource bwstyle}"
Height="510" Width="448"
Height="532" Width="486"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
@ -110,9 +111,32 @@
</Border>
</Grid>
<Grid x:Name="cer" Grid.Row="1" Margin="33,110,0,0" Width="380" Height="297">
<Border Name="shiyongnianling" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=适用年龄:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid x:Name="cer" Grid.Row="1" Margin="0,110,0,0" Width="384" Height="333">
<hc:TabControl Grid.Row="1" ItemsSource="{Binding GoodsNumberCerList,Mode=TwoWay}" IsAnimationEnabled="True" IsDraggable="True" IsTabFillEnabled="True" Name="tab" DockPanel.Dock="Bottom">
<hc:TabControl.Resources>
<ResourceDictionary >
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</hc:TabControl.Resources>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Center" Text="{Binding CertificateModel.GoodsNumber,StringFormat=配件{0}}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:CerControl model="{Binding CertificateModel,Mode=TwoWay}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</hc:TabControl>
<!--<Border Name="shiyongnianling" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=适用年龄:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12,0,0" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70,0,0" />
@ -170,7 +194,7 @@
</Grid>
</Border>
<Border Name="is3c" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Border Name="is3c" Visibility="{Binding LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
@ -195,7 +219,7 @@
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,246,0,0" />
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding ProductAdress}" Height="44" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<!--<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />-->
--><!--<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />--><!--
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding FactoryNumber}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
@ -228,9 +252,7 @@
<c:BTextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True"
Height="44" Text="{Binding ProductAdress}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
</Border>-->
</Grid>
</Grid>

73
BBWY.Client/Views/PackTask/PrintWindow.xaml.cs

@ -23,6 +23,8 @@ using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Shapes;
using System.Drawing.Printing;
using System.Collections.ObjectModel;
using BBWY.Client.Extensions;
namespace BBWY.Client.Views.PackTask
{
@ -34,9 +36,16 @@ namespace BBWY.Client.Views.PackTask
public PrintWindow()
{
InitializeComponent();
LoadPrints();
this.Loaded += PrintWindow_Loaded;
}
private void PrintWindow_Loaded(object sender, RoutedEventArgs e)
{
LoadPrints();
}
/// <summary>
/// 获取打印机名称
/// </summary>
@ -65,8 +74,7 @@ namespace BBWY.Client.Views.PackTask
}
public ObservableCollection<GoodsNumberCer> GoodsNumberCerList { get; set; }
/// <summary>
/// 加载预览打印数据
/// </summary>
@ -75,7 +83,15 @@ namespace BBWY.Client.Views.PackTask
// PrintData data = new PrintData();
if (CertificateModel != null)
{
this.DataContext = CertificateModel;
GoodsNumberCerList = new ObservableCollection<GoodsNumberCer>();
foreach (CertificateModel certificateModel in CertificateModel)
GoodsNumberCerList.Add(new GoodsNumberCer
{
CertificateModel = certificateModel.Copy(),
});
this.DataContext = this;
bar.Visibility = Visibility.Collapsed;
cer.Visibility = Visibility.Visible;
}
@ -88,7 +104,7 @@ namespace BBWY.Client.Views.PackTask
}
}
public CertificateModel CertificateModel { get; set; }
public CertificateModel[] CertificateModel { get; set; }
public BarCodeModel BarCodeModel { get; set; }
@ -108,6 +124,30 @@ namespace BBWY.Client.Views.PackTask
string printName = cbPrints.Text;//选择的要打印的打印机名称
Task.Factory.StartNew(() =>
{
if (BarCodeModel != null)
{
PrintData(printCount, printName,BarCodeModel);
//MyPrintHelper.PrintBarcode(ref args, BarCodeModel, font);
}
if (CertificateModel != null&& CertificateModel.Count()>0)
{
foreach (var cer in CertificateModel)
{
PrintData(printCount, printName,null,cer);
System.Threading.Thread.Sleep(100);
// MyPrintHelper.PrintCertificate(ref args, cer, font);
}
}
});
}
private void PrintData(int printCount, string printName, BarCodeModel barCode = null, CertificateModel certificateModel = null)
{
try
{
@ -116,7 +156,19 @@ namespace BBWY.Client.Views.PackTask
document.PrinterSettings.PrinterName = printName;//使用打印机名称,指定特定的打印机进行打印。
//设置打印页面
//document.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Custom", 236, 157);
document.PrintPage += Document_PrintPage;
document.PrintPage += (s, a) =>
{
Font font = new Font("宋体", 6, System.Drawing.FontStyle.Regular);
if (barCode != null)
{
MyPrintHelper.PrintBarcode(ref a, barCode, font);
}
if (certificateModel != null)
{
MyPrintHelper.PrintCertificate(ref a, certificateModel, font);
}
};
document.PrinterSettings.Copies = (short)printCount;//打印份数
document.Print();
@ -129,11 +181,8 @@ namespace BBWY.Client.Views.PackTask
});
}
});
}
private void Document_PrintPage(object sender, PrintPageEventArgs args)
{
//RectangleF bounds = new RectangleF(0, 0, 236, 157);
@ -174,7 +223,11 @@ namespace BBWY.Client.Views.PackTask
}
if (CertificateModel != null)
{
MyPrintHelper.PrintCertificate(ref args, CertificateModel, font);
foreach (var cer in CertificateModel)
{
MyPrintHelper.PrintCertificate(ref args, cer, font);
}
}
}

272
BBWY.Client/Views/PackTask/PublishTaskWindow.xaml

@ -0,0 +1,272 @@
<c:BWindow x:Class="BBWY.Client.Views.PackTask.PublishTaskWindow"
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:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
CloseButtonVisibility="Visible"
CloseButtonColor="{StaticResource WindowButtonColor}"
DataContext="{Binding PublishTask,Source={StaticResource Locator}}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0"
Height="545" Width="1300">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</ResourceDictionary.MergedDictionaries>
<ObjectDataProvider x:Key="storageTypeProvider" MethodName="GetValues" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="cmodel:StorageType"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ctr:OrderStorageTypeOptionConverter x:Key="ostConverter"/>
<ctr:ProfitRatioConverter x:Key="profitRatioConverter"/>
<ctr:WaybillNoConverter x:Key="waybillConverter"/>
<ctr:MultiParameterTransferConverter x:Key="mptConverter"/>
<ctr:SaleGrossProfitConverter x:Key="sgpcConverter"/>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="60"/>
<RowDefinition/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<c:RoundWaitProgress Play="{Binding IsLoading}" Panel.ZIndex="999"/>
<Grid Background="{StaticResource Border.Background}">
<TextBlock Text="发布任务" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Grid>
<Grid Grid.Row="1" Visibility="{Binding TaskId,Converter={StaticResource objConverter},ConverterParameter=0:Visible:Collapsed}">
<StackPanel Orientation="Horizontal">
<c:BTextBox Text="{Binding SearchSkuId}" Height="35" Width="217" Margin="25 0 0 0" WaterRemark="请输入SKU"/>
<c:BButton Content="查询" Width="120" Height="35" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,2,5,2"
Command="{Binding SearchSkuCommand}"
CommandParameter="{Binding SearchSkuId}"
Background="{StaticResource Button.Background}" BorderThickness="0" Foreground="White"/>
</StackPanel>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="1"/>
<StackPanel Orientation="Vertical" Grid.Column="0">
<c:BAsyncImage UrlSource="{Binding Logo}"
Width="150" DecodePixelWidth="150"
VerticalAlignment="Top" Margin="25 13 25 13"
Cursor="Hand">
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.OpenSkuDetailCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="SkuId"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BAsyncImage>
<TextBlock Margin="25 0 0 10" TextTrimming="CharacterEllipsis">
<TextBlock.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<TextBlock Text="{Binding SkuName}"/>
</ToolTip>
</TextBlock.ToolTip>
<Run Text="SKU名称:"/>
<Run Text="{Binding SkuName}"/>
</TextBlock >
<TextBlock Margin="25 0 0 10">
<Run Text="货号:"/>
<Run Text="{Binding ProductNo}"/>
</TextBlock>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="25 0 0 10" Height="30">
<TextBlock Text="品名:" VerticalAlignment="Center"/>
<c:BTextBox Text="{Binding BrandName}" Height="30" Width="120" WaterRemark="请输入品名"/>
</StackPanel>
<StackPanel Margin="25 0 0 10" Orientation="Horizontal">
<TextBlock Text="条形码:"/>
<c:BButton Content="设置" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetBarCodeCommand}"
Visibility="{Binding IsSetBarCode, Converter={StaticResource objConverter}, ConverterParameter=true:Visible:Collapsed }"
/>
<StackPanel Visibility="{Binding IsSetBarCode, Converter={StaticResource objConverter}, ConverterParameter=false:Visible:Collapsed }" Orientation="Horizontal" HorizontalAlignment="Center" >
<c:BButton Content="查看" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding LookBarCommand}"/>
<c:BButton Content="修改" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetBarCodeCommand}"/>
</StackPanel >
</StackPanel>
<StackPanel Margin="25 0 0 5" Orientation="Horizontal">
<TextBlock Text="合格证:"/>
<c:BButton Content="设置" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetCertificateCommand}"
Visibility="{Binding IsSetCertificate, Converter={StaticResource objConverter}, ConverterParameter=true:Visible:Collapsed }"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"
Visibility="{Binding IsSetCertificate, Converter={StaticResource objConverter}, ConverterParameter=false:Visible:Collapsed }">
<c:BButton Content="查看" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding LookCerCommand}"/>
<c:BButton Content="修改" Style="{StaticResource LinkButton}" Width="35" Height="15" Command="{Binding SetCertificateCommand}"/>
</StackPanel >
</StackPanel>
</StackPanel>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<TextBlock Text="任务信息" FontWeight="Bold" Margin="19 23 0 0" HorizontalAlignment="Left" VerticalAlignment="Top"/>
<StackPanel Height="30" VerticalAlignment="Top" Margin="19 23 0 0" Orientation="Horizontal" HorizontalAlignment="Left" >
<TextBlock Text="数量:" VerticalAlignment="Center"/>
<c:BTextBox WaterRemark="打包数量" Height="25" Width="90" Text="{Binding SkuCount}" />
<TextBlock Margin="30 0 0 0" Text="到货情况:" VerticalAlignment="Center"/>
<Border CornerRadius="0" BorderThickness="1" BorderBrush="{StaticResource Border.Brush}">
<ComboBox BorderThickness="0" VerticalContentAlignment="Center" ItemsSource="{Binding AvailabilityList}" Text="{Binding Availability}" >
</ComboBox>
</Border>
<TextBlock Text="落仓去向:" VerticalAlignment="Center" Margin="30 0 0 0" />
<Border CornerRadius="0" BorderThickness="1" BorderBrush="{StaticResource Border.Brush}">
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" ItemsSource="{Binding PositionTypeList}" Text="{Binding PositionType}" >
</ComboBox>
</Border>
<!--<TextBlock Margin="30 0 0 0" Text="加急:" VerticalAlignment="Center"/>
<ComboBox VerticalContentAlignment="Center" ItemsSource="{Binding WorryList}" Text="{Binding IsWorry}" >
</ComboBox>-->
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="19 23 0 0">
<c:BTextBox Text="{Binding MarkMessage}" VerticalAlignment="Top" Width="467" Height="85"
WaterRemark="打包备注" AcceptsReturn="True" TextWrapping="Wrap" >
</c:BTextBox>
</StackPanel>
</StackPanel>
<Grid Grid.Row="1">
<TextBlock Text="打包配置" FontWeight="Bold" Margin="19 23 0 0" />
<Grid Height="70" Margin="20 54 20 0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="77"/>
<ColumnDefinition Width="77"/>
<ColumnDefinition MinWidth="77"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/>
<ColumnDefinition Width="86"/>
<ColumnDefinition Width="86"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Grid.ColumnSpan="8" VerticalAlignment="Top" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.Row="0" Grid.ColumnSpan="8" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.Row="1" Grid.ColumnSpan="8" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="0" HorizontalAlignment="Left" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="0" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="1" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="2" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="3" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="4" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="5" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="6" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.RowSpan="2" Grid.Column="7" HorizontalAlignment="Right" Width="1" Background="{StaticResource Border.Brush}"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="0" Text="组合类型"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="1" Text="配件数量"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="2" Text="SKU配件商品"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="3" Text="基础包装"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="4" Text="增量耗材"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="5" Text="条码标签"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="6" Text="合格证"/>
<TextBlock Grid.Row="0" Style="{StaticResource middleTextBlock}" Grid.Column="7" Text="合格证位置"/>
<Grid Grid.Row="1" Grid.Column="0" >
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" Margin="1" ItemsSource="{Binding PackTypeList}" Text="{Binding PackType}" >
</ComboBox>
</Grid>
<c:BTextBox BorderBrush="Transparent" Grid.Row="1" Grid.Column="1" Height="30" Margin="5" Text="{Binding GoodsNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<c:BTextBox BorderBrush="Transparent" Grid.Row="1" Grid.Column="2" Height="30" Margin="5" Text="{Binding SkuTitle,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<Grid Grid.Row="1" Grid.Column="3" >
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" Margin="1" ItemsSource="{Binding BasicPackList}" Text="{Binding BasicPack}" >
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="4">
<Grid.Resources>
</Grid.Resources>
<hc:CheckComboBox BorderThickness="0" IsTextSearchEnabled="True" ItemsSource="{Binding IncreateList}"
ShowClearButton="True"
MinWidth="90"
Height="25"
Margin="5,0,5,0">
<hc:CheckComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="5,2.5">
<CheckBox Content="{Binding IncreateName}" IsChecked="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</DataTemplate>
</hc:CheckComboBox.ItemTemplate>
<hc:CheckComboBox.ItemContainerStyle>
<Style TargetType="{x:Type hc:CheckComboBoxItem}" BasedOn="{StaticResource NoBgListBoxItemStyle}">
<Setter Property="IsSelected" Value="{Binding IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</Style>
</hc:CheckComboBox.ItemContainerStyle>
</hc:CheckComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="5" >
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" Margin="1" ItemsSource="{Binding IsNeedBarCodeList}" Text="{Binding IsNeedBarCode,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="6" >
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" Margin="1" ItemsSource="{Binding IsNeedBarCodeList}" Text="{Binding IsNeedCertificateModel,Mode=TwoWay}">
</ComboBox>
</Grid>
<Grid Grid.Row="1" Grid.Column="7" >
<ComboBox VerticalContentAlignment="Center" BorderThickness="0" Margin="1" ItemsSource="{Binding CertificatePositionList}" Text="{Binding CertificatePosition}">
</ComboBox>
</Grid>
</Grid>
</Grid>
</Grid>
<Border Grid.Row="1" Grid.ColumnSpan="2" VerticalAlignment="Top" Height="1" Background="{StaticResource Border.Brush}"/>
<Border Grid.Row="1" Grid.ColumnSpan="2" VerticalAlignment="Bottom" Height="1" Background="{StaticResource Border.Brush}"/>
</Grid>
<Grid Grid.Row="3">
<c:BButton Content="{Binding SaveTask,Mode=TwoWay}" Width="100" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,2,5,2"
Command="{Binding CreateTaskCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type c:BWindow}}}"
Background="{StaticResource Button.Background}" BorderThickness="0" Foreground="White"/>
</Grid>
</Grid>
</c:BWindow>

26
BBWY.Client/Views/PackTask/PublishTaskWindow.xaml.cs

@ -0,0 +1,26 @@
using BBWY.Controls;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace BBWY.Client.Views.PackTask
{
/// <summary>
/// PublishTaskWindow.xaml 的交互逻辑
/// </summary>
public partial class PublishTaskWindow : BWindow
{
public PublishTaskWindow()
{
InitializeComponent();
}
}
}

3
BBWY.Client/Views/PackTask/SetBarCode.xaml

@ -12,7 +12,6 @@
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DataContext="{Binding CreateTaskView,Source={StaticResource Locator}}"
CloseButtonVisibility="Visible"
CloseButtonColor="{StaticResource WindowButtonColor}"
MinButtonVisibility="Collapsed"
@ -138,6 +137,6 @@
<Border Grid.Row="2" Height="1" VerticalAlignment="Top" BorderBrush="{StaticResource Border.Background}" BorderThickness="1"/>
<c:BButton Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Command="{Binding SaveBarCodeCommand}" />
Click="BButton_Click" />
</Grid>
</c:BWindow>

73
BBWY.Client/Views/PackTask/SetBarCode.xaml.cs

@ -1,5 +1,8 @@
using BBWY.Client.Models;
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Models.APIModel.Request;
using BBWY.Controls;
using GalaSoft.MvvmLight.Command;
using System;
using System.Collections.Generic;
using System.Text;
@ -19,9 +22,75 @@ namespace BBWY.Client.Views.PackTask
/// </summary>
public partial class SetBarCodeWindow : BWindow
{
public SetBarCodeWindow( )
public SetBarCodeWindow()
{
InitializeComponent();
BarLabelCheckCommand = new RelayCommand<BarcodeLabelModel>(BarLabelCheck);
}
public void LoadData(BarCodeModel barCodeModel, PackTaskService PackTaskService)
{
BarCodeModel = barCodeModel; packTaskService = PackTaskService;
this.DataContext = this;
}
public BarCodeModel BarCodeModel { get; set; }
public PackTaskService packTaskService { get; set; }
public Action<BarCodeModel> SaveResult { get; set; }
private void BButton_Click(object sender, RoutedEventArgs e)
{
if (BarCodeModel.LabelModel == BarcodeLabelModel.)//标准版 判断数据是否异常
{
if (string.IsNullOrEmpty(BarCodeModel.ProductNo) || BarCodeModel.ProductNo == "待填写")
{
TipsWindow tips = new TipsWindow("该SKU无货号信息,将影响条形码打印\r\n请先设置好货号信息或调整打印模板类型");
tips.Show();
return;
}
}
//保存到服务器中 返回id
var resData = packTaskService.SaveBarCode(new BarCodeRequest
{
Brand = BarCodeModel.Brand,
BrandName = BarCodeModel.BrandName,
ProductNo = BarCodeModel.ProductNo,
SkuId = BarCodeModel.SkuId,
SkuName = BarCodeModel.SkuName,
LabelModel = BarCodeModel.LabelModel
});
if (resData == null || !resData.Success)
{
//IsSetBarCode = false;
return;
}
BarCodeModel.Id = resData.Data;
if (SaveResult != null)
SaveResult(BarCodeModel);
// IsNeedBarCode = "需要";
//IsSetBarCode = false;
// setBarCodeWindow.Close();
this.Close();
}
public ICommand BarLabelCheckCommand { get; set; }
public void BarLabelCheck(BarcodeLabelModel labelModel)
{
if (labelModel == BarcodeLabelModel.)//标准版 判断数据是否异常
{
if (string.IsNullOrEmpty(BarCodeModel.ProductNo) || BarCodeModel.ProductNo == "待填写")
{
TipsWindow tips = new TipsWindow("该SKU无货号信息,将影响条形码打印\r\n请先设置好货号信息或调整打印模板类型");
tips.ShowDialog();
}
}
}
}

203
BBWY.Client/Views/PackTask/SetCerControl.xaml

@ -19,87 +19,164 @@
</Grid.ColumnDefinitions>
<Grid >
<!--IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"-->
<RadioButton GroupName="cer" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准无3c}}" Checked="RadioButton_Checked" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准无3c}" Content="标准" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<RadioButton GroupName="cer" HorizontalAlignment="Left" VerticalContentAlignment="Center" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准无3c}}" Checked="RadioButton_Checked" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准无3c}" Content="标准" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,112,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 25" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30 0 0 0" />
<c:BTextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
<Grid Grid.Column="1">
<!--IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=1:true:false}"-->
<RadioButton GroupName="cer" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准有3c}}" Checked="RadioButton_Checked" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准有3c}" Content="带3c标" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<RadioButton GroupName="cer" HorizontalAlignment="Left" VerticalContentAlignment="Center" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准有3c}}" Checked="RadioButton_Checked" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准有3c}" Content="带3c标" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
<c:BTextBox Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,85"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,90,0,0" />
<c:BTextBox Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,85,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,127,0,0" />
<c:BTextBox Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,122,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,127,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,122,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="44" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />
<c:BTextBox Text="{Binding model.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
<StackPanel Orientation="Vertical">
</Grid>
<StackPanel Orientation="Horizontal" >
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="157 0 70 0" />
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="40" VerticalAlignment="Top" Margin="0 5 0 0" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 2 0 5">
<TextBlock Text="工厂编号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="203,0,0,0" />
<c:BTextBox Text="{Binding model.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 5 0 0">
<TextBlock Text="地址:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30 0 0 0" />
<c:BTextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
<Grid Grid.Row="1">
<!--IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"-->
<RadioButton GroupName="cer" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.无型号}}" Checked="RadioButton_Checked" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.无型号}" Content="无型号" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<RadioButton GroupName="cer" HorizontalAlignment="Left" VerticalContentAlignment="Center" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.无型号}}" Checked="RadioButton_Checked" CommandParameter="{x:Static cmodel:CertificateLabelModel.无型号}" Content="无型号" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,114,0,0" />
<c:BTextBox Height="26" Text="{Binding model.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,108,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 25" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30 0 0 0" />
<c:BTextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Grid>
</Border>
</Grid>
<Grid Grid.Column="1" Grid.Row="1">
<!--IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"-->
<RadioButton GroupName="cer" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.适用年龄 }}" Checked="RadioButton_Checked" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.适用年龄}" Content="适用年龄" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<RadioButton GroupName="cer" HorizontalAlignment="Left" VerticalContentAlignment="Center" IsChecked="{Binding model.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.适用年龄 }}" Checked="RadioButton_Checked" CommandParameter="{x:Static cmodel:CertificateLabelModel.适用年龄}" Content="适用年龄" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="0 10 0 25" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<c:BTextBox Height="25" Text="{Binding model.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left"/>
<TextBlock Text="适用年龄:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6,0,0,0" />
<c:BTextBox Height="25" Text="{Binding model.ApplyAge,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="124" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding model.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 10">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<c:BTextBox WaterRemark="不填则不打印" Height="25" Text="{Binding model.ProduceDate,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0 10 0 0">
<TextBlock Text="地址:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30 0 0 0" />
<c:BTextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
<!--<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding model.Brand,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="111" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65,0,0"/>
@ -114,10 +191,8 @@
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding model.ProductShop,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
<c:BTextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding model.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>-->
</Border>
</Grid>
</Grid>

12
BBWY.Client/Views/PackTask/SetCerControl.xaml.cs

@ -28,8 +28,6 @@ namespace BBWY.Client.Views.PackTask
InitializeComponent();
}
//CertificateModel
public CertificateModel model
@ -62,22 +60,12 @@ namespace BBWY.Client.Views.PackTask
private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var control = d as SetCerControl;
var newValue = e.NewValue as CertificateModel;
if (control != null && newValue != null)
{
control.model = newValue;
//control.DataContext = newValue;
//control.OnPropertyChanged(e);
}
}
private void RadioButton_Checked(object sender, RoutedEventArgs e)

174
BBWY.Client/Views/PackTask/SetCerWindow.xaml

@ -7,19 +7,23 @@
xmlns:local="clr-namespace:BBWY.Client.Views.PackTask"
mc:Ignorable="d"
Style="{StaticResource bwstyle}"
Height="860" Width="820"
xmlns:hc="https://handyorg.github.io/handycontrol"
Height="900" Width="850"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DataContext="{Binding CreateTaskView,Source={StaticResource Locator}}"
CloseButtonVisibility="Visible"
CloseButtonColor="{StaticResource WindowButtonColor}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0">
<!-- DataContext="{Binding CreateSetBarCodeView,Source={StaticResource Locator}}"-->
<Window.Resources>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition/>
@ -32,107 +36,101 @@
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal">
<c:BButton Background="{StaticResource Button.Background}" Grid.Row="2" Content="{Binding SetSpuCerStatus}" HorizontalAlignment="Right" Width="100" Margin="20,0,20,0" VerticalAlignment="Stretch"
Command="{Binding SetSpuCerCommand}" />
<c:BButton Background="{StaticResource Button.Background}" Grid.Row="2" Content="导入spu模板" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Command="{Binding InseartCerCommand}" />
<c:BButton Name="SetSpuCer" Background="{StaticResource Button.Background}" HorizontalAlignment="Right" Width="100" Margin="20,0,20,0" VerticalAlignment="Stretch"
Click="SetSpuCer_Click" />
<c:BButton Name="InseartCer" Background="{StaticResource Button.Background}" Content="使用spu模板" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Click="InseartCer_Click" />
</StackPanel>
<!--<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid >
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding CertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准无3c}}" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准无3c}" Content="标准" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,112,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding CertificateModel.ExcuteStander,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding CertificateModel.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<c:BButton Grid.Row="1" Name="add_goodsnum" Background="{StaticResource Button.Background}" Content="添加配件" HorizontalAlignment="Left" Width="100" VerticalAlignment="Stretch" Margin="20 0 0 0" Click="add_goodsnum_Click"
/>
<hc:TabControl Grid.Row="2" SelectionChanged="tab_SelectionChanged" IsAnimationEnabled="True" ItemsSource="{Binding GoodsNumberCerList,Mode=TwoWay}" IsTabFillEnabled="False" Name="tab" ShowCloseButton="True" DockPanel.Dock="Bottom">
<hc:TabControl.Resources>
<ResourceDictionary >
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
<ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
</Grid>
</Border>
</Grid>
<Grid Grid.Column="1">
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=1:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding CertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准有3c}}" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准有3c}" Content="带3c标" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
<c:BTextBox Text="{Binding CertificateModel.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,85"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,90,0,0" />
<c:BTextBox Text="{Binding CertificateModel.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,85,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,127,0,0" />
<c:BTextBox Text="{Binding CertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,122,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,127,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,122,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Text="{Binding CertificateModel.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Text="{Binding CertificateModel.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding CertificateModel.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="44" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />
<c:BTextBox Text="{Binding CertificateModel.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</hc:TabControl.Resources>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Width="40" VerticalAlignment="Center" Height="24" Text="{Binding CertificateModel.GoodsNumber,StringFormat=配件{0}}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<local:SetCerControl Grid.Row="2" model="{Binding CertificateModel,Mode=TwoWay}"/>
</DataTemplate>
</TabControl.ContentTemplate>
</hc:TabControl>
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
<!--<StackPanel Grid.Row="1" Orientation="Horizontal">
<ListBox x:Name="goods_list" ItemsSource="{Binding GoodsNumberCerList,Mode=TwoWay}" VerticalAlignment="Center" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<RadioButton>
<RadioButton.Style>
<Style TargetType="RadioButton">
<Setter Property="IsChecked" Value="False" />
<Setter Property="Background" Value="#8080FF" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Grid Background="#F2F2F2" >
<Rectangle x:Name="_Rect" Fill="#F2F2F2" HorizontalAlignment="Center" Height="35" VerticalAlignment="Center" Width="126" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="-1"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<TextBlock VerticalAlignment="Center" Text="{Binding GoodsNumber}" HorizontalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="true">
<Setter TargetName="_Rect" Property="Fill" Value="#8080FF" />
<Setter Property="Foreground" Value="white"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</RadioButton.Style>
</RadioButton>
</Grid>
<Grid Grid.Row="1">
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding CertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.无型号}}" Command="{Binding CerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.无型号}" Content="无型号" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.Brand,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,114,0,0" />
<c:BTextBox Height="26" Text="{Binding CertificateModel.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,108,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding CertificateModel.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding CertificateModel.ProductShop,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding CertificateModel.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Border>
</Grid>
</Grid>-->
<local:SetCerControl Grid.Row="1" model="{Binding CertificateModel,Mode=TwoWay,NotifyOnSourceUpdated=True,UpdateSourceTrigger=PropertyChanged}"/>
<c:BButton Name="save_goodsnum" Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存配件信息" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch" Margin="20 0 0 0" Click="save_goodsnum_Click"
/>
</StackPanel>
<local:SetCerControl Grid.Row="2" model="{Binding CertificateModel,Mode=TwoWay}"/>-->
</Grid>
<Border Grid.Row="2" Height="1" VerticalAlignment="Top" BorderBrush="{StaticResource Border.Background}" BorderThickness="1"/>
<c:BButton Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Command="{Binding SaveCerCommand}" />
<c:BButton x:Name="save_btn" Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Click="save_btn_Click" />
</Grid>
</c:BWindow>

186
BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs

@ -1,8 +1,16 @@
using BBWY.Client.Models;
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Models.APIModel.Request;
using BBWY.Controls;
using NPOI.Util;
using Org.BouncyCastle.Asn1.Cmp;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Ocsp;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Runtime.ConstrainedExecution;
using System.Text;
using System.Windows;
using System.Windows.Controls;
@ -24,5 +32,181 @@ namespace BBWY.Client.Views.PackTask
{
InitializeComponent();
}
public void LoadData(CertificateModel[] CertificateModel, PackTaskService packTaskService, CertificateModel SpuCertificateModel, bool IsSetSpuCertificate)
{
this.CertificateModel = CertificateModel.Copy();
this.SpuCertificateModel = SpuCertificateModel.Copy();
this.packTaskService = packTaskService;
this.IsSetSpuCertificate = IsSetSpuCertificate;
SetSpuCer.Content = IsSetSpuCertificate ? "设置spu模板" : "修改spu模板";
GoodsNumberCerList = new ObservableCollection<GoodsNumberCer>();
foreach (var item in CertificateModel)
{
GoodsNumberCerList.Add(new GoodsNumberCer
{
CertificateModel = item.Copy(),
});
}
this.DataContext = this;
}
public bool IsSetSpuCertificate { get; set; }
public PackTaskService packTaskService { get; set; }
public CertificateModel[] CertificateModel { get; set; }
public CertificateModel SpuCertificateModel { get; set; }
public Action<CertificateModel[]> SaveResult { get; set; }
public ObservableCollection<GoodsNumberCer> GoodsNumberCerList { get; set; }
private void save_btn_Click(object sender, RoutedEventArgs e)
{
foreach (var item in GoodsNumberCerList)
{
if (string.IsNullOrEmpty(item.CertificateModel.ExcuteStander)
|| string.IsNullOrEmpty(item.CertificateModel.Shader) || string.IsNullOrEmpty(item.CertificateModel.BrandName)
|| string.IsNullOrEmpty(item.CertificateModel.Brand) || string.IsNullOrEmpty(item.CertificateModel.ProductShop)
|| string.IsNullOrEmpty(item.CertificateModel.ProductAdress))
{
new TipsWindow("参数出错!请重新填写!").Show();
return;
}
var standers = item.CertificateModel.ExcuteStander.Split(',', StringSplitOptions.RemoveEmptyEntries);
var resData = packTaskService.SaveCer(new CerRequest
{
Brand = item.CertificateModel.Brand,
BrandName = item.CertificateModel.BrandName,
ProductNo = item.CertificateModel.ProductNo,
SkuId = item.CertificateModel.SkuId,
ExcuteStander = item.CertificateModel.ExcuteStander,
LabelModel = (int)item.CertificateModel.LabelModel,
FactoryNumber = item.CertificateModel.FactoryNumber,
IsLogo = item.CertificateModel.IsLogo,
ProductAdress = item.CertificateModel.ProductAdress,
ProductShop = item.CertificateModel.ProductShop,
Shader = item.CertificateModel.Shader,
ApplyAge = item.CertificateModel.ApplyAge,
GoodsNumber = item.CertificateModel.GoodsNumber,
ProduceDate= item.CertificateModel.ProduceDate,
});
if (resData == null || !resData.Success)
{
// IsSetCertificate = false;
return;
}
// IsNeedCertificateModel = "需要";
item.CertificateModel.Id = resData.Data;
if (SaveResult != null) SaveResult(GoodsNumberCerList.Select(c => c.CertificateModel).ToArray());
//IsSetCertificate = false;
//setCerWindow.Close();
}
this.Close();
}
private void SetSpuCer_Click(object sender, RoutedEventArgs e)
{
if (SpuCertificateModel == null)
{
SpuCertificateModel = new CertificateModel();
SpuCertificateModel.ProductNo = CertificateModel[0].ProductNo;
SpuCertificateModel.Brand = CertificateModel[0].Brand;
SpuCertificateModel.SkuId = CertificateModel[0].SkuId;
}
SetSpuCerWindow setSpuCerWindow = new SetSpuCerWindow();
setSpuCerWindow.LoadData(SpuCertificateModel, packTaskService);
setSpuCerWindow.SaveResult = s =>
{
SpuCertificateModel = s;
SetSpuCer.Content = "修改spu模板";//"设置spu模板" : "修改spu模板";
IsSetSpuCertificate = false;
};
setSpuCerWindow.Show();
}
int selectCer = -1;//tabcontrol 选中事件
private void InseartCer_Click(object sender, RoutedEventArgs e)
{
if (IsSetSpuCertificate)
{
new TipsWindow("无可用模板").Show();
return;
}
if (selectCer < 0)
{
new TipsWindow("未选中合格证").Show();
return;
}
var cer = GoodsNumberCerList.SingleOrDefault(g => g.CertificateModel.GoodsNumber == selectCer);
cer.CertificateModel.Brand = SpuCertificateModel.Brand;
cer.CertificateModel.BrandName = SpuCertificateModel.BrandName;
cer.CertificateModel.ExcuteStander = SpuCertificateModel.ExcuteStander;
cer.CertificateModel.FactoryNumber = SpuCertificateModel.FactoryNumber;
cer.CertificateModel.IsLogo = SpuCertificateModel.IsLogo;
cer.CertificateModel.LabelModel = SpuCertificateModel.LabelModel;
cer.CertificateModel.ProductAdress = SpuCertificateModel.ProductAdress;
cer.CertificateModel.ProductNo = SpuCertificateModel.ProductNo;
cer.CertificateModel.Shader = SpuCertificateModel.Shader;
cer.CertificateModel.ProductShop = SpuCertificateModel.ProductShop;
cer.CertificateModel.ApplyAge = SpuCertificateModel.ApplyAge;
}
private void add_goodsnum_Click(object sender, RoutedEventArgs e)
{
int num = 0;
p:
num++;
int goodsNumber = num;
var gncer = GoodsNumberCerList.SingleOrDefault(g => g.CertificateModel.GoodsNumber == goodsNumber);
if (gncer != null) goto p;
GoodsNumberCerList.Add(new GoodsNumberCer
{
CertificateModel = new CertificateModel
{
GoodsNumber = goodsNumber,
BrandName = CertificateModel[0].BrandName,
Brand = CertificateModel[0].Brand,
SkuId = CertificateModel[0].SkuId,
ProductNo = CertificateModel[0].ProductNo,
SpuId = CertificateModel[0].SkuId,
}
});
tab.SelectedIndex = GoodsNumberCerList.Count - 1;
this.UpdateLayout();
}
private void tab_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var test = sender as HandyControl.Controls.TabControl;
if (test != null)
{
var select = test.SelectedItem as GoodsNumberCer;
if (select != null)
selectCer = select.CertificateModel.GoodsNumber;
}
}
}
public class GoodsNumberCer
{
/// <summary>
/// 配件序号
/// </summary>
// public int GoodsNumber { get; set; }
public CertificateModel CertificateModel { get; set; }
}
}

96
BBWY.Client/Views/PackTask/SetSpuCerWindow.xaml

@ -12,13 +12,12 @@
xmlns:ctr="clr-namespace:BBWY.Client.Converters"
xmlns:cmodel="clr-namespace:BBWY.Client.Models"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DataContext="{Binding CreateTaskView,Source={StaticResource Locator}}"
CloseButtonVisibility="Visible"
CloseButtonColor="{StaticResource WindowButtonColor}"
MinButtonVisibility="Collapsed"
MaxButtonVisibility="Collapsed"
RightButtonGroupMargin="0,5,5,0">
<!-- DataContext="{Binding CreateSetBarCodeView,Source={StaticResource Locator}}"-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
@ -29,98 +28,11 @@
Background="{StaticResource Border.Background}">
<TextBlock Text="设置SPU合格证模板" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<local:SetCerControl Grid.Row="1" model="{Binding SpuCertificateModel,Mode=TwoWay,NotifyOnSourceUpdated=True,UpdateSourceTrigger=PropertyChanged}"/>
<!--<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid >
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding SpuCertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准无3c}}" Command="{Binding SpuCerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准无3c}" Content="标准" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,112,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,107,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,112,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,107,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding SpuCertificateModel.ExcuteStander,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding SpuCertificateModel.ProductAdress,Mode=TwoWay}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
</Grid>
<Grid Grid.Column="1">
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=1:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding SpuCertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.标准有3c}}" Command="{Binding SpuCerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.标准有3c}" Content="带3c标" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid >
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,90" />
<c:BTextBox Text="{Binding SpuCertificateModel.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,85"/>
<TextBlock Text="型号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,90,0,0" />
<c:BTextBox Text="{Binding SpuCertificateModel.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,85,0,0"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,127,0,0" />
<c:BTextBox Text="{Binding SpuCertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,122,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,127,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,122,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Text="{Binding SpuCertificateModel.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Text="{Binding SpuCertificateModel.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding SpuCertificateModel.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="44" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
<TextBlock Text="工厂编号:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,60,0,0" />
<c:BTextBox Text="{Binding SpuCertificateModel.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Height="25" Width="100" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="259,55,0,0"/>
<local:SetCerControl Grid.Row="1" model="{Binding SpuCertificateModel}"/>
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Width="54" Height="42" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="282,6,0,0" />
</Grid>
</Border>
</Grid>
<Grid Grid.Row="1">
IsChecked="{Binding IsLogo,Converter={StaticResource objConverter},ConverterParameter=0:true:false}"
<RadioButton GroupName="cer" IsChecked="{Binding SpuCertificateModel.LabelModel,Converter={StaticResource enumToBooleanConverter},ConverterParameter={x:Static cmodel:CertificateLabelModel.无型号}}" Command="{Binding SpuCerLabelCheckCommand}" CommandParameter="{x:Static cmodel:CertificateLabelModel.无型号}" Content="无型号" Margin="10,0,0,0" Height="30" VerticalAlignment="Top"/>
<Border BorderBrush="Black" BorderThickness="1" Width="380" Height="297" Margin="13,30,13,0" VerticalAlignment="Top" HorizontalAlignment="Left">
<Grid>
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Left" Text="合格证" FontSize="18" Margin="157,12" />
<TextBlock Text="品牌:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,70" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.Brand,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,65"/>
<TextBlock Text="品名:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="203,70,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="233,65,0,0"/>
<TextBlock Text="材质:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,114,0,0" />
<c:BTextBox Height="26" Text="{Binding SpuCertificateModel.Shader,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,108,0,0"/>
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="9,166,0,0" />
<c:BTextBox WaterRemark="如多个标准请使用逗号分隔" Height="25" Text="{Binding SpuCertificateModel.ExcuteStander,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,161,0,0"/>
<TextBlock Text="生产商:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="19,206,0,0" />
<c:BTextBox Height="25" Text="{Binding SpuCertificateModel.ProductShop,Mode=TwoWay,NotifyOnTargetUpdated=True,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,201,0,0"/>
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="33,242,0,0" />
<TextBox TextWrapping ="Wrap" AcceptsReturn="True" Height="44" Text="{Binding SpuCertificateModel.ProductAdress,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="296" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="63,241,0,0"/>
</Grid>
</Border>
</Grid>
</Grid>-->
<Border Grid.Row="2" Height="1" VerticalAlignment="Top" BorderBrush="{StaticResource Border.Background}" BorderThickness="1"/>
<c:BButton Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Command="{Binding SaveSpuCerCommand}" />
<c:BButton Name="save_spuCer" Background="{StaticResource Button.Background}" Grid.Row="2" Content="保存" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Click="save_spuCer_Click" />
</Grid>
</c:BWindow>

56
BBWY.Client/Views/PackTask/SetSpuCerWindow.xaml.cs

@ -1,4 +1,8 @@
using BBWY.Controls;
using BBWY.Client.APIServices;
using BBWY.Client.Models;
using BBWY.Client.Models.APIModel.Request;
using BBWY.Controls;
using NPOI.Util;
using System;
using System.Collections.Generic;
using System.Text;
@ -22,5 +26,55 @@ namespace BBWY.Client.Views.PackTask
{
InitializeComponent();
}
private PackTaskService packTaskService { get; set; }
public CertificateModel SpuCertificateModel { get; set; }
public void LoadData(CertificateModel SpuCertificateModel, PackTaskService packTaskService)
{
this.SpuCertificateModel = SpuCertificateModel.Copy();
this.packTaskService = packTaskService;
this.DataContext=this;
}
public Action<CertificateModel> SaveResult { get; set; }
private void save_spuCer_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrEmpty(SpuCertificateModel.ExcuteStander)
|| string.IsNullOrEmpty(SpuCertificateModel.BrandName)
|| string.IsNullOrEmpty(SpuCertificateModel.Brand) || string.IsNullOrEmpty(SpuCertificateModel.ProductShop)
|| string.IsNullOrEmpty(SpuCertificateModel.ProductAdress))
{
new TipsWindow("参数出错!请重新填写!").Show();
return;
}
var resData = packTaskService.SaveSpuCer(new CerRequest
{
Brand = SpuCertificateModel.Brand,
BrandName = SpuCertificateModel.BrandName,
ProductNo = SpuCertificateModel.ProductNo,
SpuId = SpuCertificateModel.SpuId,
ExcuteStander = SpuCertificateModel.ExcuteStander,
LabelModel = (int)SpuCertificateModel.LabelModel,
FactoryNumber = SpuCertificateModel.FactoryNumber,
IsLogo = SpuCertificateModel.IsLogo,
ProductAdress = SpuCertificateModel.ProductAdress,
ProductShop = SpuCertificateModel.ProductShop,
Shader = SpuCertificateModel.Shader,
SkuId = SpuCertificateModel.SkuId,
ApplyAge = SpuCertificateModel.ApplyAge,
});
if (resData == null || !resData.Success)
{
return;
}
if (SaveResult != null) SaveResult(SpuCertificateModel);
this.Close();
}
}
}

2
BBWY.Client/Views/PackTask/TaskListControl.xaml

@ -120,7 +120,7 @@
<StackPanel Grid.Column="11" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" >
<c:BButton Command="{Binding UpdateTaskCommand}"
Style="{StaticResource LinkButton}" Content="修改" />
<c:BButton Command="{Binding DeletedTaskCommand}"
<c:BButton Command="{Binding DataContext.DeletedTaskCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}" CommandParameter="{Binding TaskId}"
Margin="5,0,0,0" Style="{StaticResource LinkButton}" Content="删除" />
</StackPanel>

4
BBWY.Client/Views/PackTask/WareHouseList.xaml

@ -59,8 +59,6 @@
<TextBlock Text="SKU:" VerticalAlignment="Center" Margin="16,0,0,0"/>
<c:BTextBox Width="150" Margin="5,0,0,0" WaterRemark="" Text="{Binding SearchSkuId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<TextBlock Text="部门:" VerticalAlignment="Center" Margin="16,0,0,0"/>
</StackPanel>
<Grid Grid.Column="1" >
@ -265,8 +263,6 @@
</Style>
</RadioButton.Style>
</RadioButton>
<RadioButton VerticalAlignment="Center" Command="{Binding SetTaskStateCommand}" CommandParameter="{x:Static cmodel:TaskState.已完成}" >
<RadioButton.Style >
<Style TargetType="RadioButton">

33
BBWY.Client/Views/PackTask/WareHouseList.xaml.cs

@ -32,14 +32,39 @@ namespace BBWY.Client.Views.PackTask
public WareHouseList()
{
InitializeComponent();
var applicationPath = System.IO. Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
this.Loaded += Load;
}
private void Load(object sender, RoutedEventArgs e)
{
var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var builder = new ConfigurationBuilder().SetBasePath(applicationPath).AddJsonFile("BBWYAppSettings.json", false, true);
var Configuration = builder.Build();
QKApiHost = Configuration.GetSection("QKApiHost").Value;
HttpClientHelper helper = new HttpClientHelper(QKApiHost);
string url = $"{QKApiHost}/api/PackTask/GetAllDepartment";//获取所有数据
var data = helper.Get(url);
var res = JsonConvert.DeserializeObject<ApiResponse<UserDepartment[]>>(data);
//创建一个ListBoxIem
if (res.Success)
{
if (res.Data != null && res.Data.Count() > 0)
{
foreach (var department in res.Data)
{
if (!departments.Contains(department.DePartmentName))
{
departments.Add(department.DePartmentName);
}
string QKApiHost = "";
}
}
}
}
public string QKApiHost {get;set;}
public void SelectionChangeCommand(object sender, SelectionChangedEventArgs e)
{
try
@ -78,7 +103,7 @@ namespace BBWY.Client.Views.PackTask
}
if (departments.Count<=0)
if (departments.Count <= 0)
{
HttpClientHelper helper = new HttpClientHelper(QKApiHost);
@ -98,8 +123,6 @@ namespace BBWY.Client.Views.PackTask
departments.Add(department.DePartmentName);
}
}
}
}

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

@ -122,8 +122,20 @@
<TextBlock VerticalAlignment="Center" Text="对接人:" Margin="16,0,0,0" />
<TextBlock VerticalAlignment="Center" Text="{Binding AcceptName}" Margin="5,0,0,0" />
</StackPanel>
<c:BButton Grid.Column="11" Command="{Binding SetTaskStatusCommand}" CommandParameter="{Binding TaskId}"
HorizontalAlignment="Stretch" VerticalAlignment="Center" Content="完成" />
<c:BButton Grid.Column="11" HorizontalAlignment="Stretch" VerticalAlignment="Center" Content="完成" >
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.SetTaskStatusCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Page}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="TaskId" />
<Binding Path="OrderId"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>

85
BBWY.Common/Extensions/EncryptionExtension.cs

@ -0,0 +1,85 @@
using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace BBWY.Common.Extensions
{
public static class EncryptionExtension
{
public static string Md5Encrypt(this string originStr)
{
using (var md5 = MD5.Create())
{
return string.Join(string.Empty, md5.ComputeHash(Encoding.UTF8.GetBytes(originStr)).Select(x => x.ToString("x2")));
}
}
//AES加密 传入,要加密的串和, 解密key
public static string AESEncrypt(this string input)
{
var key = "dataplatform2019";
var ivStr = "1012132405963708";
var encryptKey = Encoding.UTF8.GetBytes(key);
var iv = Encoding.UTF8.GetBytes(ivStr); //偏移量,最小为16
using (var aesAlg = Aes.Create())
{
using (var encryptor = aesAlg.CreateEncryptor(encryptKey, iv))
{
using (var msEncrypt = new MemoryStream())
{
using (var csEncrypt = new CryptoStream(msEncrypt, encryptor,
CryptoStreamMode.Write))
using (var swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(input);
}
var decryptedContent = msEncrypt.ToArray();
return Convert.ToBase64String(decryptedContent);
}
}
}
}
public static string AESDecrypt(this string cipherText)
{
var fullCipher = Convert.FromBase64String(cipherText);
var ivStr = "1012132405963708";
var key = "dataplatform2019";
var iv = Encoding.UTF8.GetBytes(ivStr);
var decryptKey = Encoding.UTF8.GetBytes(key);
using (var aesAlg = Aes.Create())
{
using (var decryptor = aesAlg.CreateDecryptor(decryptKey, iv))
{
string result;
using (var msDecrypt = new MemoryStream(fullCipher))
{
using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (var srDecrypt = new StreamReader(csDecrypt))
{
result = srDecrypt.ReadToEnd();
}
}
}
return result;
}
}
}
public static string Base64Encrypt(this string originStr)
{
return Convert.ToBase64String(Encoding.UTF8.GetBytes(originStr));
}
}
}

34
BBWY.Server.API/Controllers/BatchPurchaseController.cs

@ -59,16 +59,50 @@ namespace BBWY.Server.API.Controllers
return batchPurchaseBusiness.GetPurchaseOrderList(request);
}
/// <summary>
/// 支付订单
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public PayPurchaseOrderResponse PayPurchaseOrder([FromBody] PayPurchaseOrderRequest request)
{
return batchPurchaseBusiness.PayPurchaseOrder(request);
}
/// <summary>
/// 取消订单
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public CancelPurchaseOrderResponse CancelPurchaseOrder([FromBody] CancelPurchaseOrderRequest request)
{
return batchPurchaseBusiness.CancelPurchaseOrder(request);
}
/// <summary>
/// 修改采购单状态
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public UpdatePackStateResponse UpdatePurchaseOrderState([FromBody] UpdatePurchaseOrderStateRequest request)
{
return batchPurchaseBusiness.UpdatePurchaseOrderState(request);
}
/// <summary>
/// 修改打包状态
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public UpdatePackStateResponse UpdatePackState([FromBody] UpdatePackStateRequest request)
{
return batchPurchaseBusiness.UpdatePackState(request);
}
}
}

13
BBWY.Server.API/Controllers/PurchaseOrderController.cs

@ -96,7 +96,18 @@ namespace BBWY.Server.API.Controllers
[AllowAnonymous]
public void QuanTanSendGoodsCallback([FromBody] QuanTanSendGoodsNotifyRequest request)
{
purchaseOrderBusiness.QuanTan_SendGoodsCallback(request);
purchaseOrderBusiness.QuanTanSendGoodsCallback(request);
}
/// <summary>
/// 拳探改价回调
/// </summary>
/// <param name="request"></param>
[HttpPost]
[AllowAnonymous]
public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request)
{
purchaseOrderBusiness.QuanTanEditPriceCallback(request);
}
}
}

32
BBWY.Server.API/Controllers/SqlController.cs

@ -0,0 +1,32 @@
using BBWY.Server.Business;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Data;
namespace BBWY.Server.API.Controllers
{
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class SqlController : BaseApiController
{
private SqlBusiness sqlBusiness;
public SqlController(IHttpContextAccessor httpContextAccessor, SqlBusiness sqlBusiness) : base(httpContextAccessor)
{
this.sqlBusiness = sqlBusiness;
}
[HttpPost]
public int ExecuteNonQuery([FromBody]BaseSqlData baseSqlData)
{
return sqlBusiness.ExecuteNonQuery(baseSqlData);
}
[HttpPost]
public DataTable ExecuteDataTable([FromBody] BaseSqlData baseSqlData)
{
return sqlBusiness.ExecuteDataTable(baseSqlData);
}
}
}

3
BBWY.Server.API/Startup.cs

@ -47,11 +47,12 @@ namespace BBWY.Server.API
var fsql2 = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, Configuration.GetConnectionString("MDSDB")).Build();
var fsql3 = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, Configuration.GetConnectionString("JDXX")).Build();
services.AddSingleton(new FreeSqlMultiDBManager()
{
BBWYfsql = fsql,
MDSfsql = fsql2,
JDXXfsql = fsql3
JDXXfsql = fsql3,
});
services.AddSingleton<NLogManager>();
services.AddSingleton(typeof(NLog.ILogger), NLog.LogManager.GetCurrentClassLogger());

2
BBWY.Server.Business/FreeSqlMultiDBManager.cs

@ -10,5 +10,7 @@ namespace BBWY.Server.Business
public IFreeSql MDSfsql { get; set; }
public IFreeSql JDXXfsql { get; set; }
}
}

27
BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs

@ -23,12 +23,12 @@ namespace BBWY.Server.Business
public override PayPurchaseOrderResponse PayPurchaseOrder(PayPurchaseOrderRequest payPurchaseOrderRequest)
{
var data = payPurchaseOrderRequest.PurchaseAccount;
var qtResponse = quanTanOrderClient.PayOrder(new QuanTanPayOrderRequest
{
orderId = payPurchaseOrderRequest.OrderId,
userAccount = data.AccountName
}, payPurchaseOrderRequest.PurchaseAccount.AppKey, payPurchaseOrderRequest.PurchaseAccount.AppSecret);
userAccount = payPurchaseOrderRequest.AppToken
}, payPurchaseOrderRequest.AppKey, payPurchaseOrderRequest.AppSecret);
if (qtResponse.Status == 200) return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState= PurchaseOrderState. };
if (qtResponse.Message != null && qtResponse.Message.Contains("已支付"))
@ -36,11 +36,11 @@ namespace BBWY.Server.Business
var res = quanTanOrderClient.GetOrderDetail(new QuanTanGetOrderDetailRequest
{
orderId = payPurchaseOrderRequest.OrderId,
userAccount = data.AccountName
}, payPurchaseOrderRequest.PurchaseAccount.AppKey, payPurchaseOrderRequest.PurchaseAccount.AppSecret);
userAccount = payPurchaseOrderRequest.AppToken
}, payPurchaseOrderRequest.AppKey, payPurchaseOrderRequest.AppSecret);
if (res.Status == 200)
{
PurchaseOrderState purchaseOrder= PurchaseOrderState.;
PurchaseOrderState purchaseOrder = PurchaseOrderState.;
switch (res.Data.Status)
{
case -1:
@ -58,7 +58,7 @@ namespace BBWY.Server.Business
purchaseOrder = PurchaseOrderState.;
break;
}
return new PayPurchaseOrderResponse { Success = true , PurchaseOrderState= purchaseOrder };
return new PayPurchaseOrderResponse { Success = true, PurchaseOrderState = purchaseOrder };
}
@ -78,21 +78,15 @@ namespace BBWY.Server.Business
}
public override CancelPurchaseOrderResponse CancelPurchaseOrder(CancelPurchaseOrderRequest request)
{
var data = request.PurchaseAccount;
var qtResponse = quanTanOrderClient.CancelOrder(new QuanTanCancelOrderRequest
{
orderId = request.OrderId,
userAccount = data.AccountName,
userAccount = request.AppToken,
remark = request.Remark,
}, request.PurchaseAccount.AppKey, request.PurchaseAccount.AppSecret);
}, request.AppKey, request.AppSecret);
if (qtResponse.Status == 200) return new CancelPurchaseOrderResponse { Success = true };
if (qtResponse.Message != null&&qtResponse.Message.Contains("已删除"))
if (qtResponse.Message != null && qtResponse.Message.Contains("已删除"))
{
return new CancelPurchaseOrderResponse { Success = true };
}
@ -207,6 +201,7 @@ namespace BBWY.Server.Business
ItemList = qtResponse.Data.OrderProduct.Select(o => new OnlinePurchaseOrderSkuSimpleResponse()
{
ProductAmount = o.ProductPrice,
FreightAmount = o.PostagePrice,
Price = o.Price,
ProductId = o.ProductId,
SkuId = o.ProductSku,

72
BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs

@ -416,7 +416,7 @@ namespace BBWY.Server.Business
#endregion
#region 拳探回调
public void QuanTan_SendGoodsCallback(QuanTanSendGoodsNotifyRequest request)
public void QuanTanSendGoodsCallback(QuanTanSendGoodsNotifyRequest request)
{
Task.Factory.StartNew(() => DeliveryCallback(request.OrderId, new WayBillNoResponse()
{
@ -432,6 +432,14 @@ namespace BBWY.Server.Business
// WayBillNo = request.WayBillNo,
//}, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
public void QuanTanEditPriceCallback(QuanTanEditPriceNotifyRequest request)
{
//Task.Factory.StartNew(() => OrderPriceModificationCallback(request.OrderId, Enums.Platform.拳探), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
Task.Factory.StartNew(() => OrderPriceNotifitionForPurchaseOrder(request.OrderId, Enums.Platform.), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.PurchaseOrderCallbackTaskScheduler);
}
#endregion
/// <summary>
@ -572,7 +580,7 @@ namespace BBWY.Server.Business
}
/// <summary>
/// 采购平台改价回调
/// 采购平台改价回调(一件代发)
/// </summary>
/// <param name="purchaseOrderId"></param>
/// <param name="callbackPlatform"></param>
@ -711,6 +719,66 @@ namespace BBWY.Server.Business
nLogManager.Default().Error(ex, $"OrderPriceModificationCallback 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
}
}
/// <summary>
/// 采购平台改价回调(采购单)
/// </summary>
/// <param name="purchaseOrderId"></param>
/// <param name="callbackPlatform"></param>
private void OrderPriceNotifitionForPurchaseOrder(string purchaseOrderId, Enums.Platform callbackPlatform)
{
string currentProgress = string.Empty;
try
{
#region 查询数据库采购单
currentProgress = "查询数据库采购单";
var purchaseOrder = fsql.Select<PurchaseOrderV2>(purchaseOrderId).ToOne();
if (purchaseOrder == null)
throw new Exception($"未查询到采购单");
#endregion
#region 查询采购账号
currentProgress = "查询采购账号";
var purchaseAccount = fsql.Select<PurchaseAccount>().Where(pa => pa.Id == purchaseOrder.PurchaseAccountId).ToOne();
if (purchaseAccount == null)
throw new Exception($"未查询到采购账号");
#endregion
#region 查询接口采购单
currentProgress = "查询接口采购单";
var purchaseOrderSimpleInfo = platformSDKBusinessList.FirstOrDefault(p => p.Platform == callbackPlatform).GetOrderSimpleInfo(new GetOrderInfoRequest()
{
AppKey = purchaseAccount.AppKey,
AppSecret = purchaseAccount.AppSecret,
AppToken = purchaseAccount.AppToken,
OrderId = purchaseOrderId,
Platform = callbackPlatform
});
#endregion
currentProgress = "更新数据库";
fsql.Transaction(() =>
{
fsql.Update<PurchaseOrderV2>(purchaseOrderId).Set(po => po.ProductAmount, purchaseOrderSimpleInfo.ProductAmount)
.Set(po => po.PurchaseFreight, purchaseOrderSimpleInfo.FreightAmount)
.Set(po => po.PurchaseAmount, purchaseOrderSimpleInfo.TotalAmount)
.ExecuteAffrows();
foreach (var purchaseOrderSku in purchaseOrderSimpleInfo.ItemList)
{
fsql.Update<PurchaseOrderSku>().Where(pos => pos.PurchaseOrderId == purchaseOrderId && pos.PurchaseSkuIds == purchaseOrderSku.SkuId)
.Set(pos => pos.ProductAmount, purchaseOrderSku.ProductAmount)
.Set(pos => pos.PurchaseFreight, purchaseOrderSku.FreightAmount)
.Set(pos => pos.PurchaseAmount, purchaseOrderSku.ProductAmount + purchaseOrderSku.FreightAmount)
.ExecuteAffrows();
}
});
}
catch (Exception ex)
{
nLogManager.Default().Error(ex, $"OrderPriceNotifitionForPurchaseOrder 回调平台{callbackPlatform},采购单号{purchaseOrderId},执行进度[{currentProgress}]");
}
}
#endregion
}
}

43
BBWY.Server.Business/PurchaseOrderV2/BatchPurchase/BatchPurchaseBusiness.cs

@ -1,6 +1,7 @@
using BBWY.Common.Models;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Db.QK;
using BBWY.Server.Model.Dto;
using FreeSql;
using Newtonsoft.Json;
@ -9,6 +10,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yitter.IdGenerator;
namespace BBWY.Server.Business
@ -18,6 +20,8 @@ namespace BBWY.Server.Business
private ProductBusiness productBusiness;
private IEnumerable<PlatformSDKBusiness> platformSDKBusinessList;
public BatchPurchaseBusiness(IFreeSql fsql,
NLogManager nLogManager,
IIdGenerator idGenerator,
@ -26,6 +30,7 @@ namespace BBWY.Server.Business
{
this.productBusiness = productBusiness;
this.platformSDKBusinessList = platformSDKBusinessList;
}
/// <summary>
@ -421,20 +426,23 @@ namespace BBWY.Server.Business
PurchaseMethod = po.PurchaseMethod,
PurchaseOrderMode = po.PurchaseOrderMode,
ExpressName = po.ExpressName,
WaybillNo = po.WaybillNo
//PackState = po.PackState
WaybillNo = po.WaybillNo,
PackState = po.PackState
});
var purchaseOrderIdList = purchaseOrderList.Select(p => p.Id).ToList();
var purchaseOrderSkuList = fsql.Select<PurchaseOrderSku>().Where(posku => purchaseOrderIdList.Contains(posku.PurchaseOrderId)).ToList<PurchaseOrderSkuResponse>();
foreach (var purchaseOrder in purchaseOrderList)
purchaseOrder.ItemList = purchaseOrderSkuList.Where(posku => posku.PurchaseOrderId == purchaseOrder.Id).ToList();
return new PurchaseOrderV2ListResponse() { Count = total, ItemList = purchaseOrderList };
}
public PayPurchaseOrderResponse PayPurchaseOrder(PayPurchaseOrderRequest request)
{
var platformSDKBusiness = platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.PurchasePlatform);
var platformSDKBusiness = platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform);
var payOrderResponse = platformSDKBusiness.PayPurchaseOrder(request);
if (payOrderResponse.Success)
@ -455,14 +463,14 @@ namespace BBWY.Server.Business
public CancelPurchaseOrderResponse CancelPurchaseOrder(CancelPurchaseOrderRequest request)
{
var platformSDKBusiness = platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.PurchasePlatform);
var platformSDKBusiness = platformSDKBusinessList.FirstOrDefault(p => p.Platform == request.Platform);
var payOrderResponse = platformSDKBusiness.CancelPurchaseOrder(request);
if (payOrderResponse.Success)
{
var order = fsql.Select<PurchaseOrderV2>().Where(p => p.Id == request.OrderId).ToOne();
fsql.Update<PurchaseOrderV2>(order)
.Set(a => a.OrderState, Enums.PurchaseOrderState.)
//var order = fsql.Select<PurchaseOrderV2>().Where(p => p.Id == request.OrderId).ToOne();
fsql.Update<PurchaseOrderV2>(request.OrderId)
.Set(po => po.OrderState, Enums.PurchaseOrderState.)
.ExecuteAffrows();
}
@ -473,5 +481,26 @@ namespace BBWY.Server.Business
Msg = payOrderResponse.Msg
};
}
public UpdatePackStateResponse UpdatePurchaseOrderState(UpdatePurchaseOrderStateRequest request)
{
var order = fsql.Select<PurchaseOrderV2>().Where(p => p.Id == request.OrderId).ToOne();
fsql.Update<PurchaseOrderV2>(order)
.Set(a => a.OrderState, request.PurchaseOrderState)
.ExecuteAffrows();
return new UpdatePackStateResponse();
}
public UpdatePackStateResponse UpdatePackState(UpdatePackStateRequest request)
{
var order = fsql.Select<PurchaseOrderV2>().Where(p => p.Id == request.OrderId).ToOne();
fsql.Update<PurchaseOrderV2>(order)
.Set(a => a.PackState, request.PackState)
.ExecuteAffrows();
return new UpdatePackStateResponse();
}
}
}

33
BBWY.Server.Business/SQL/SqlBusiness.cs

@ -0,0 +1,33 @@
using BBWY.Common.Extensions;
using BBWY.Common.Models;
using System.Data;
using Yitter.IdGenerator;
namespace BBWY.Server.Business
{
/// <summary>
/// SQL业务类,仅适用内部系统之间调用
/// </summary>
public class SqlBusiness : BaseBusiness, IDenpendency
{
public SqlBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator) : base(fsql, nLogManager, idGenerator)
{
}
public int ExecuteNonQuery(BaseSqlData baseSqlData)
{
return fsql.Ado.ExecuteNonQuery(baseSqlData.Sql.AESDecrypt());
}
public DataTable ExecuteDataTable(BaseSqlData baseSqlData)
{
return fsql.Ado.ExecuteDataTable(baseSqlData.Sql.AESDecrypt());
}
}
public class BaseSqlData
{
public string Sql { get; set; }
}
}

5
BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrderV2.cs

@ -203,6 +203,11 @@ namespace BBWY.Server.Model.Db
/// </summary>
[Column(MapType = typeof(int))]
public Enums.PurchaseOrderMode PurchaseOrderMode { get; set; }
/// <summary>
/// 打包状态 (待发布=0,打包中=1,已完成=2)
/// </summary>
[Column(MapType = typeof(int))]
public Enums.PackState PackState { get; set; }
}
}

79
BBWY.Server.Model/Db/QK/FeesDetail.cs

@ -0,0 +1,79 @@
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Db.QK
{
/// <summary>
/// 收费明细表
/// </summary>
[Table(Name = "feesdetail", DisableSyncStructure = true)]
public class FeesDetail
{
[Column(IsPrimary =true)]
public long Id { get; set; }
/// <summary>
/// 任务id
/// </summary>
public long TaskId { get; set; }
/// <summary>
/// 耗材ids
/// </summary>
public string ConsumableIds { get; set; }
/// <summary>
/// 耗材数量
/// </summary>
public string ConsumableNos { get; set; }
/// <summary>
/// 工序ids
/// </summary>
public string WorkProcessIds { get; set; }
/// <summary>
/// 工序数量
/// </summary>
public string WorkProcessNos { get; set; }
/// <summary>
/// 增值服务ids
/// </summary>
public string IncreateServiceIds { get; set; }
/// <summary>
/// 增值服务数量
/// </summary>
public string IncreateServiceNos { get; set; }
/// <summary>
/// 任务单件费用
/// </summary>
public decimal SingleFees { get; set; }
/// <summary>
/// 任务总费用
/// </summary>
public decimal AllFees { get; set; }
/// <summary>
/// 任务打折
/// </summary>
public decimal? Discount { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 打包服务项目
/// </summary>
public string PackServiceIds { get; set; }
/// <summary>
/// 服务数量
/// </summary>
public string PackServiceNos { get; set; }
public decimal? IncreaseFees { get; set; }
public decimal? PackFees { get; set; }
public decimal? ConsumableFees { get; set; }
public decimal? DiscountPrice { get; set; }
}
}

192
BBWY.Server.Model/Db/QK/PackTask.cs

@ -0,0 +1,192 @@
using FreeSql;
using FreeSql.DataAnnotations;
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Linq;
using BBWY.Server.Model;
namespace BBWY.Server.Model.Db.QK
{
/// <summary>
/// 打包任务
/// </summary>
[Table(Name = "packtask", DisableSyncStructure = true)]
public class PackTask
{
/// <summary>
/// 主键
/// </summary>
[Column(IsPrimary = true, IsNullable = false)]
public long Id { get; set; }
/// <summary>
/// 需求方创建日期
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 任务状态(未完成=0,已完成=1,)
/// </summary>
public int TaskStatus { get; set; }
/// <summary>
/// 项目完成时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 需求方团队id
/// </summary>
public string DepartmentId { get; set; }
/// <summary>
/// 需求方店铺id
/// </summary>
public string ShopId { get; set; }
/// <summary>
/// 货号品名(手写上传)
/// </summary>
public string BrandName { get; set; }
/// <summary>
/// 对接人
/// </summary>
public string UserId { get; set; }
/// <summary>
/// skuid
/// </summary>
public string SkuId { get; set; }
/// <summary>
/// sku数量
/// </summary>
public int SkuCount { get; set; }
/// <summary>
/// 打包类型(单件=0,多件=1)
/// </summary>
public int PackType { get; set; }
/// <summary>
/// 落仓(本地仓=0,齐越仓=1,京东仓=2)
/// </summary>
public int PositionType { get; set; }
/// <summary>
/// 基础包装(快递袋=0,纸箱=1,麻袋=2)
/// </summary>
public int BasicPack { get; set; }
/// <summary>
/// 增量1()
/// </summary>
public string Increment1 { get; set; }
/// <summary>
/// 增量2()
/// </summary>
public int? Increment2 { get; set; }
/// <summary>
/// 工序道数
/// </summary>
public int? ProcessCount { get; set; }
/// <summary>
/// 条形码id
/// </summary>
public long? BarcodeId { get; set; }
/// <summary>
/// 合格证
/// </summary>
public long? CertificateId { get; set; }
/// <summary>
/// 合格证位置(外部包装=0,产品包装=1)
/// </summary>
public int? CertificatePosition { get; set; }
/// <summary>
/// 箱子耗材(自带=0,4-13号纸箱=1-10,)
/// </summary>
public int? BoxConsumables { get; set; }
/// <summary>
/// sku配件名称
/// </summary>
public string SkuGoodsTitle { get; set; }
/// <summary>
/// 配件数
/// </summary>
public int GoodsNumber { get; set; }
/// <summary>
/// 气泡纸耗材(长=0,宽=1)
/// </summary>
public int? AirConsumables { get; set; }
/// <summary>
/// 注意事项(对接备注)
/// </summary>
public string MarkMessage { get; set; }
/// <summary>
/// 到货情况(待收货=2,部分收货=1,已到货=0)
/// </summary>
public int Availability { get; set; }
/// <summary>
/// 是否加急
/// </summary>
public int IsWorry { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public Enums.IsDeleted IsDeleted { get; set; }
/// <summary>
/// 是否结清
/// </summary>
public Enums.Settle IsSettle { get; set; }
/// <summary>
/// 拳探订单id
/// </summary>
public string OrderId { get; set; }
/// <summary>
/// 店铺归属
/// </summary>
public string OriginShopId { get; set; }
/// <summary>
/// 账单归属(0=店铺,1=拳探)
/// </summary>
public Enums.BillOrigin BillOrigin { get; set; }
}
public class OrderTaskFees
{
public string OrderId { get; set; }
public string SkuId { get; set; }
public Decimal? DiscountPrice { get; set; }
}
}

16
BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/CancelPurchaseOrderRequest.cs

@ -1,22 +1,8 @@
using BBWY.Server.Model.Db;
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
namespace BBWY.Server.Model.Dto
{
public class CancelPurchaseOrderRequest: PlatformRequest
{
public string OrderId { get; set; }
public string Remark { get; set; }
public PurchaseAccount PurchaseAccount { get; set; }
/// <summary>
/// 采购平台
/// </summary>
public Enums.Platform PurchasePlatform { get; set; }
}
}

8
BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/PayPurchaseOrderRequest.cs

@ -8,13 +8,5 @@ namespace BBWY.Server.Model.Dto
public class PayPurchaseOrderRequest : PlatformRequest
{
public string OrderId { get; set; }
public PurchaseAccount PurchaseAccount { get; set; }
/// <summary>
/// 采购平台
/// </summary>
public Enums.Platform PurchasePlatform { get; set; }
}
}

28
BBWY.Server.Model/Dto/Request/PurchaseOrderV2/BatchPurchase/UpdatePackStateRequest.cs

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;
using BBWY.Server.Model;
namespace BBWY.Server.Model.Dto
{
public class UpdatePackStateRequest
{
public string OrderId { get; set; }
public Enums.PackState PackState { get ;set ;}
}
public class UpdatePurchaseOrderStateRequest
{
public string OrderId { get; set; }
public Enums.PurchaseOrderState PurchaseOrderState { get; set; }
}
public class UpdatePackMoneyRequest
{
public string SkuId { get; set; }
public string OrderId { get; set; }
//设置sku 耗材费
public decimal PackMoney { get; set; }
}
}

7
BBWY.Server.Model/Dto/Response/PurchaseOrder/OnlinePurchase/OnlinePurchaseOrderSimpleResponse.cs

@ -46,10 +46,15 @@ namespace BBWY.Server.Model.Dto
public string SpecId { get; set; }
/// <summary>
/// 货款金额
/// 货款
/// </summary>
public decimal ProductAmount { get; set; }
/// <summary>
/// 运费
/// </summary>
public decimal FreightAmount { get; set; }
/// <summary>
/// 单价
/// </summary>

10
BBWY.Server.Model/Dto/Response/PurchaseOrderV2/BatchPurchase/UpdatePackStateResponse.cs

@ -0,0 +1,10 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Server.Model.Dto
{
public class UpdatePackStateResponse
{
}
}

26
BBWY.Server.Model/Enums.cs

@ -319,5 +319,31 @@
{
= 0, = 1, = 2, = 3, = 4, = 5, = 6, = 7
}
public enum PackState
{
=0,=1,=2
}
public enum IsDeleted
{
= 0,
= 1
}
public enum Settle
{
= 0,
= 1
}
public enum BillOrigin
{
= 0,
= 1
}
}
}

7
QuanTan.SDK/Model/Request/Order/QuanTanEditPriceNotifyRequest.cs

@ -0,0 +1,7 @@
namespace QuanTan.SDK.Model
{
public class QuanTanEditPriceNotifyRequest
{
public string OrderId { get; set; }
}
}
Loading…
Cancel
Save