From 7d612f4032de9830c5a2ee549d134c2581c6e674 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Fri, 27 May 2022 18:26:08 +0800
Subject: [PATCH 1/6] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=AE=A1=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWY.Client/Models/Enums.cs | 7 +++
.../FinancialTerminal/PayBills/AliPayBill.cs | 15 +++++
.../FinancialTerminal/PayBills/PayBill.cs | 61 +++++++++++++++++++
.../FinancialTerminal/PayBills/WXPayBill.cs | 10 +++
.../ProcurementAuditViewModel.cs | 11 ++++
BBWY.Client/ViewModels/MainViewModel.cs | 9 +++
.../FinancialTerminal/ProcurementAudit.xaml | 14 +++++
.../ProcurementAudit.xaml.cs | 26 ++++++++
8 files changed, 153 insertions(+)
create mode 100644 BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
create mode 100644 BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs
create mode 100644 BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
create mode 100644 BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
create mode 100644 BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
create mode 100644 BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml.cs
diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs
index 3790cc9d..ca3fa77a 100644
--- a/BBWY.Client/Models/Enums.cs
+++ b/BBWY.Client/Models/Enums.cs
@@ -99,4 +99,11 @@
在线采购 = 0,
关联订单 = 1
}
+
+ public enum PayBillType
+ {
+ AliPay = 0,
+ WeiXin = 1,
+ BankCard = 2
+ }
}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs b/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
new file mode 100644
index 00000000..a3212a8c
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
@@ -0,0 +1,15 @@
+namespace BBWY.Client.Models
+{
+ public class AliPayBill : PayBill
+ {
+ public AliPayBill()
+ {
+ PayBillType = PayBillType.AliPay;
+ }
+
+ public override string GetMerchantOrderNo()
+ {
+ return base.GetMerchantOrderNo();
+ }
+ }
+}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs b/BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs
new file mode 100644
index 00000000..7d75de9a
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs
@@ -0,0 +1,61 @@
+using System;
+
+namespace BBWY.Client.Models
+{
+ public class PayBill
+ {
+ ///
+ /// 账单流水号
+ ///
+ public string PayBillNo { get; set; }
+
+ ///
+ /// 支付时间
+ ///
+ public DateTime? PayTime { get; set; }
+
+ ///
+ /// 账单类型
+ ///
+ public PayBillType PayBillType { get; set; }
+
+ ///
+ /// 商家订单号
+ ///
+ public string MerchantOrderNo { get; set; }
+
+ ///
+ /// 商品名称
+ ///
+ public string ProductName { get; set; }
+
+ ///
+ /// 对方账户
+ ///
+ public string OppositeAccount { get; set; }
+
+ ///
+ /// 支出金额
+ ///
+ public decimal ExpenditureAmount { get; set; }
+
+ ///
+ /// 归属店铺
+ ///
+ public string BelongShop { get; set; }
+
+ ///
+ /// 错误信息
+ ///
+ public string ErrorMessage { get; set; }
+
+ ///
+ /// 提取商家订单号
+ ///
+ ///
+ public virtual string GetMerchantOrderNo()
+ {
+ return MerchantOrderNo;
+ }
+ }
+}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs b/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
new file mode 100644
index 00000000..3050541d
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
@@ -0,0 +1,10 @@
+namespace BBWY.Client.Models
+{
+ public class WXPayBill : PayBill
+ {
+ public WXPayBill()
+ {
+ PayBillType = PayBillType.WeiXin;
+ }
+ }
+}
diff --git a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
new file mode 100644
index 00000000..3bab6155
--- /dev/null
+++ b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BBWY.Client.ViewModels
+{
+ public class ProcurementAuditViewModel : BaseVM
+ {
+
+ }
+}
diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs
index 6042e405..d69f0a91 100644
--- a/BBWY.Client/ViewModels/MainViewModel.cs
+++ b/BBWY.Client/ViewModels/MainViewModel.cs
@@ -110,6 +110,15 @@ namespace BBWY.Client.ViewModels
new MenuModel(){ Name="店铺设置",Url="/Views/Setting/ShopSetting.xaml" },
new MenuModel(){ Name="团队配置",Url="/Views/Setting/TeamSetting.xaml" }
}
+ },
+ new MenuModel()
+ {
+ Name="财务端",ChildList=new List()
+ {
+ new MenuModel(){ Name="采购审计",Url="/Views/FinancialTerminal/ProcurementAudit.xaml" }
+ //new MenuModel(){ Name="补单审计",Url="/Views/FinancialTerminal/ShopSetting.xaml" },
+ //new MenuModel(){ Name="利润表",Url="/Views/FinancialTerminal/ShopSetting.xaml" }
+ }
}
};
Task.Factory.StartNew(Login);
diff --git a/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
new file mode 100644
index 00000000..98db0710
--- /dev/null
+++ b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml.cs b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml.cs
new file mode 100644
index 00000000..67eaed14
--- /dev/null
+++ b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml.cs
@@ -0,0 +1,26 @@
+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.Navigation;
+using System.Windows.Shapes;
+
+namespace BBWY.Client.Views.FinancialTerminal
+{
+ ///
+ /// ProcurementAudit.xaml 的交互逻辑
+ ///
+ public partial class ProcurementAudit : Page
+ {
+ public ProcurementAudit()
+ {
+ InitializeComponent();
+ }
+ }
+}
From 5aaffec7d4bf9d97988cd8ea7c0718ce3bd68259 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sat, 28 May 2022 16:01:55 +0800
Subject: [PATCH 2/6] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=AE=A1=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWY.Client/App.xaml.cs | 2 +
BBWY.Client/BBWY.Client.csproj | 8 +-
.../Extensions/ProcurementAuditExtension.cs | 77 +++++
BBWY.Client/Models/Enums.cs | 7 +
.../FinancialTerminal/PayBills/AliPayBill.cs | 15 -
.../FinancialTerminal/PayBills/WXPayBill.cs | 10 -
.../ProcurementAudit/AuditFile.cs | 9 +
.../AuditPayBill.cs} | 27 +-
.../ProcurementAudit/AuditPurchaseOrder.cs | 73 +++++
.../ProcurementAudit/AuditShopOrder.cs | 70 +++++
.../ProcurementAuditViewModel.cs | 284 +++++++++++++++++-
BBWY.Client/ViewModels/ViewModelLocator.cs | 9 +
.../FinancialTerminal/ProcurementAudit.xaml | 104 ++++++-
BBWY.Client/Views/Ware/WareManager.xaml | 2 +-
BBWY.Client/Views/Ware/WareStock.xaml | 2 +-
.../PlatformSDK/_1688Business.cs | 4 +-
16 files changed, 654 insertions(+), 49 deletions(-)
create mode 100644 BBWY.Client/Extensions/ProcurementAuditExtension.cs
delete mode 100644 BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
delete mode 100644 BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
create mode 100644 BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditFile.cs
rename BBWY.Client/Models/FinancialTerminal/{PayBills/PayBill.cs => ProcurementAudit/AuditPayBill.cs} (71%)
create mode 100644 BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPurchaseOrder.cs
create mode 100644 BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
diff --git a/BBWY.Client/App.xaml.cs b/BBWY.Client/App.xaml.cs
index 00b3bee1..0949e230 100644
--- a/BBWY.Client/App.xaml.cs
+++ b/BBWY.Client/App.xaml.cs
@@ -10,6 +10,7 @@ using System.IO;
using System.IO.MemoryMappedFiles;
using System.Linq;
using System.Reflection;
+using System.Text;
using System.Threading.Tasks;
using System.Windows;
@@ -25,6 +26,7 @@ namespace BBWY.Client
protected override void OnStartup(StartupEventArgs e)
{
+ Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var gl = new GlobalContext();
string userToken = string.Empty;
#if DEBUG
diff --git a/BBWY.Client/BBWY.Client.csproj b/BBWY.Client/BBWY.Client.csproj
index cfa2c1b6..8c701914 100644
--- a/BBWY.Client/BBWY.Client.csproj
+++ b/BBWY.Client/BBWY.Client.csproj
@@ -15,13 +15,6 @@
x64
-
-
-
-
-
-
-
@@ -45,6 +38,7 @@
+
diff --git a/BBWY.Client/Extensions/ProcurementAuditExtension.cs b/BBWY.Client/Extensions/ProcurementAuditExtension.cs
new file mode 100644
index 00000000..0b28597f
--- /dev/null
+++ b/BBWY.Client/Extensions/ProcurementAuditExtension.cs
@@ -0,0 +1,77 @@
+using System.Collections.Generic;
+
+namespace BBWY.Client.Extensions
+{
+ public static class ProcurementAuditExtension
+ {
+ ///
+ /// 跳过引号中的逗号,进行逗号分隔(字段内容中的逗号不参与分隔)
+ ///
+ ///
+ ///
+ public static string[] CSVstrToArry(this string splitStr)
+ {
+ var newstr = string.Empty;
+ List sList = new List();
+
+ bool isSplice = false;
+ string[] array = splitStr.Split(new char[] { ',' });
+ foreach (var str in array)
+ {
+ if (!string.IsNullOrEmpty(str) && str.IndexOf('"') > -1)
+ {
+ var firstchar = str.Substring(0, 1);
+ var lastchar = string.Empty;
+ if (str.Length > 0)
+ {
+ lastchar = str.Substring(str.Length - 1, 1);
+ }
+ if (firstchar.Equals("\"") && !lastchar.Equals("\""))
+ {
+ isSplice = true;
+ }
+ if (lastchar.Equals("\""))
+ {
+ if (!isSplice)
+ newstr += str;
+ else
+ newstr = newstr + "," + str;
+
+ isSplice = false;
+ }
+ }
+ else
+ {
+ if (string.IsNullOrEmpty(newstr))
+ newstr += str;
+ }
+
+ if (isSplice)
+ {
+ //添加因拆分时丢失的逗号
+ if (string.IsNullOrEmpty(newstr))
+ newstr += str;
+ else
+ newstr = newstr + "," + str;
+ }
+ else
+ {
+ sList.Add(newstr.Replace("\"", "").Trim());//去除字符中的双引号和首尾空格
+ newstr = string.Empty;
+ }
+ }
+ return sList.ToArray();
+ }
+
+ public static string FormatString(this string str)
+ {
+ //if (str.Contains(","))
+ // str = str.Replace(",", string.Empty);
+ if (str.Contains("\""))
+ str = str.Replace("\"", string.Empty);
+ if (str.Contains("\t"))
+ str = str.Replace("\t", string.Empty);
+ return str.Trim();
+ }
+ }
+}
diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs
index ca3fa77a..bf867902 100644
--- a/BBWY.Client/Models/Enums.cs
+++ b/BBWY.Client/Models/Enums.cs
@@ -106,4 +106,11 @@
WeiXin = 1,
BankCard = 2
}
+
+ public enum AuditFileType
+ {
+ 账单 = 0,
+ 采购单 = 1,
+ 销售订单 = 2
+ }
}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs b/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
deleted file mode 100644
index a3212a8c..00000000
--- a/BBWY.Client/Models/FinancialTerminal/PayBills/AliPayBill.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace BBWY.Client.Models
-{
- public class AliPayBill : PayBill
- {
- public AliPayBill()
- {
- PayBillType = PayBillType.AliPay;
- }
-
- public override string GetMerchantOrderNo()
- {
- return base.GetMerchantOrderNo();
- }
- }
-}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs b/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
deleted file mode 100644
index 3050541d..00000000
--- a/BBWY.Client/Models/FinancialTerminal/PayBills/WXPayBill.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace BBWY.Client.Models
-{
- public class WXPayBill : PayBill
- {
- public WXPayBill()
- {
- PayBillType = PayBillType.WeiXin;
- }
- }
-}
diff --git a/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditFile.cs b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditFile.cs
new file mode 100644
index 00000000..95f41b76
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditFile.cs
@@ -0,0 +1,9 @@
+namespace BBWY.Client.Models
+{
+ public class AuditFile
+ {
+ public string FileName { get; set; }
+
+ public AuditFileType AuditFileType { get; set; }
+ }
+}
diff --git a/BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPayBill.cs
similarity index 71%
rename from BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs
rename to BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPayBill.cs
index 7d75de9a..4bba9fce 100644
--- a/BBWY.Client/Models/FinancialTerminal/PayBills/PayBill.cs
+++ b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPayBill.cs
@@ -2,7 +2,7 @@
namespace BBWY.Client.Models
{
- public class PayBill
+ public class AuditPayBill
{
///
/// 账单流水号
@@ -22,6 +22,11 @@ namespace BBWY.Client.Models
///
/// 商家订单号
///
+ public string SourceMerchantOrderNo { get; set; }
+
+ ///
+ /// 商家订单号(去掉账单添加的格式)
+ ///
public string MerchantOrderNo { get; set; }
///
@@ -44,18 +49,22 @@ namespace BBWY.Client.Models
///
public string BelongShop { get; set; }
+ public string BelongFileName { get; set; }
+
///
- /// 错误信息
+ /// 关联的采购单号
///
- public string ErrorMessage { get; set; }
+ public string RelationPurchaseOrderId { get; set; }
///
- /// 提取商家订单号
+ /// 关联的店铺订单
///
- ///
- public virtual string GetMerchantOrderNo()
- {
- return MerchantOrderNo;
- }
+ public string RelationShopOrderId { get; set; }
+
+ ///
+ /// 错误信息
+ ///
+ public string ErrorMessage { get; set; }
+
}
}
diff --git a/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPurchaseOrder.cs b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPurchaseOrder.cs
new file mode 100644
index 00000000..b095f269
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditPurchaseOrder.cs
@@ -0,0 +1,73 @@
+using System;
+
+namespace BBWY.Client.Models
+{
+ public class AuditPurchaseOrder
+ {
+ public string PurchaseOrderId { get; set; }
+
+ ///
+ /// 采购平台
+ ///
+ public Platform Platform { get; set; }
+
+ public DateTime CreateTime { get; set; }
+
+ public DateTime? PayTime { get; set; }
+
+ ///
+ /// 采购数量
+ ///
+ public int Quantity { get; set; }
+
+ ///
+ /// 货款
+ ///
+ public decimal ProductAmount { get; set; }
+
+ ///
+ /// 运费
+ ///
+ public decimal Freight { get; set; }
+
+ ///
+ /// 实付
+ ///
+ public decimal PayAmount { get; set; }
+
+ ///
+ /// 联系电话
+ ///
+ public string Phone { get; set; }
+
+ ///
+ /// 收货地址
+ ///
+ public string Address { get; set; }
+
+ ///
+ /// 收货人
+ ///
+ public string ContactName { get; set; }
+
+ ///
+ /// 归属店铺
+ ///
+ public string BelongShop { get; set; }
+
+ public string BelongFileName { get; set; }
+
+ ///
+ /// 关联账单Id
+ ///
+ public string RelationPayBillNo { get; set; }
+
+ ///
+ /// 关联的店铺订单
+ ///
+ public string RelationShopOrderId { get; set; }
+
+
+ public string ErrorMessage { get; set; }
+ }
+}
diff --git a/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
new file mode 100644
index 00000000..47698d71
--- /dev/null
+++ b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BBWY.Client.Models
+{
+ public class AuditShopOrder
+ {
+ public string OrderId { get; set; }
+
+ public Platform Platform { get; set; }
+
+ ///
+ /// 产品名称
+ ///
+ public string ProductName { get; set; }
+
+ ///
+ /// 销售数量
+ ///
+ public int Quantity { get; set; }
+
+ ///
+ /// 实付
+ ///
+ public decimal PayAmount { get; set; }
+
+ ///
+ /// 下单时间
+ ///
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// 联系电话
+ ///
+ public string Phone { get; set; }
+
+ ///
+ /// 收货地址
+ ///
+ public string Address { get; set; }
+
+ ///
+ /// 收货人
+ ///
+ public string ContactName { get; set; }
+
+ ///
+ /// 关联的采购单号
+ ///
+ public string RelationPurchaseOrderId { get; set; }
+
+ ///
+ /// 关联账单Id
+ ///
+ public string RelationPayBillNo { get; set; }
+
+ ///
+ /// 归属店铺
+ ///
+ public string BelongShop { get; set; }
+
+ public string BelongFileName { get; set; }
+
+ ///
+ /// 错误信息
+ ///
+ public string ErrorMessage { get; set; }
+ }
+}
diff --git a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
index 3bab6155..6f86e9a0 100644
--- a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
+++ b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
@@ -1,11 +1,291 @@
-using System;
+using BBWY.Client.Extensions;
+using BBWY.Client.Models;
+using BBWY.Common.Models;
+using GalaSoft.MvvmLight.Command;
+using Microsoft.Win32;
+using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using System.Linq;
using System.Text;
+using System.Windows;
+using System.Windows.Input;
namespace BBWY.Client.ViewModels
{
- public class ProcurementAuditViewModel : BaseVM
+ public class ProcurementAuditViewModel : BaseVM, IDenpendency
{
+ private AuditFile selectAuditFile;
+ public IList AuditFileList { get; set; }
+
+ public IList AuditPayBillList { get; set; }
+
+ public IList AuditPurchaseOrderList { get; set; }
+
+ public IList AuditShopOrderList { get; set; }
+
+ public IList ShowAuditPayBillList { get; set; }
+
+ public IList ShowAuditPurchaseOrderList { get; set; }
+
+ public IList ShowAuditShopOrderList { get; set; }
+
+ public AuditFile SelectAuditFile { get => selectAuditFile; set { Set(ref selectAuditFile, value); } }
+
+ public ICommand AuditCommand { get; set; }
+
+ public ICommand ClearAuditCommand { get; set; }
+
+ public ICommand ImportAliPayBillCommand { get; set; }
+
+
+
+ public ICommand Import1688PurchaseOrderCommand { get; set; }
+
+
+
+ public ICommand ImportJDShopOrderCommand { get; set; }
+
+
+
+ public ProcurementAuditViewModel()
+ {
+ AuditFileList = new ObservableCollection();
+ AuditCommand = new RelayCommand(Audit);
+ ClearAuditCommand = new RelayCommand(ClearAudit);
+ ImportAliPayBillCommand = new RelayCommand(ImportAliPayBill);
+
+
+ Import1688PurchaseOrderCommand = new RelayCommand(Import1688PurchaseOrder);
+
+
+ ImportJDShopOrderCommand = new RelayCommand(ImportJDShopOrder);
+
+ AuditFileList = new ObservableCollection();
+ AuditPayBillList = new ObservableCollection();
+ AuditPurchaseOrderList = new ObservableCollection();
+ AuditShopOrderList = new ObservableCollection();
+ ShowAuditPayBillList = new ObservableCollection();
+ ShowAuditPurchaseOrderList = new ObservableCollection();
+ ShowAuditShopOrderList = new ObservableCollection();
+
+ //AuditFileList.Add(new AuditFile() { FileName = "支付宝账单20220527.csv", AuditFileType = AuditFileType.账单 });
+ //AuditFileList.Add(new AuditFile() { FileName = "1688采购单20220527.csv", AuditFileType = AuditFileType.采购单 });
+ //AuditFileList.Add(new AuditFile() { FileName = "支付宝账单20220527.csv", AuditFileType = AuditFileType.销售订单 });
+
+ }
+
+ private void Audit()
+ {
+ if (AuditPayBillList.Count() == 0 ||
+ AuditPurchaseOrderList.Count() == 0 ||
+ AuditShopOrderList.Count() == 0)
+ {
+ MessageBox.Show("审核数据不全", "提示");
+ return;
+ }
+
+ AuditByPayBill();
+ AuditByPurchaseOrder();
+ }
+
+ private void AuditByPayBill()
+ {
+
+ }
+
+ private void AuditByPurchaseOrder()
+ {
+
+ }
+
+ private void ClearAudit()
+ {
+ SelectAuditFile = null;
+ AuditFileList.Clear();
+ AuditPayBillList.Clear();
+ AuditPurchaseOrderList.Clear();
+ AuditShopOrderList.Clear();
+ ShowAuditPayBillList.Clear();
+ ShowAuditPurchaseOrderList.Clear();
+ ShowAuditShopOrderList.Clear();
+ }
+
+ private (string ErrorMessage, string FileName, IList Lines) ImportAuditFile(AuditFileType auditFileType)
+ {
+ var ofd = new OpenFileDialog() { Filter = "CSV Files (*.csv)|*.csv" };
+ if (ofd.ShowDialog() != true)
+ return (string.Empty, string.Empty, null);
+ var fileName = ofd.FileName.Substring(ofd.FileName.LastIndexOf("\\") + 1);
+ var filePath = ofd.FileName;
+ if (AuditFileList.Any(f => f.FileName == fileName))
+ return ("文件已存在", string.Empty, null);
+ try
+ {
+ var lines = File.ReadAllLines(filePath, Encoding.GetEncoding("GB2312")).ToList();
+ AuditFileList.Add(new AuditFile() { FileName = fileName, AuditFileType = auditFileType });
+ return (string.Empty, fileName, lines);
+ }
+ catch (Exception ex)
+ {
+ return (ex.Message, string.Empty, null);
+ }
+ }
+
+ ///
+ /// 导入支付宝账单
+ ///
+ private void ImportAliPayBill()
+ {
+ var importResult = ImportAuditFile(AuditFileType.账单);
+ if (!string.IsNullOrEmpty(importResult.ErrorMessage))
+ {
+ MessageBox.Show(importResult.ErrorMessage, "导入支付宝账单");
+ return;
+ }
+ //忽略前5行
+ /*
+ #支付宝账务明细查询
+ #账号:[20883422054731100156]
+ #起始日期:[2022年04月01日 00:00:00] 终止日期:[2022年05月01日 00:00:00]
+ #-----------------------------------------账务明细列表----------------------------------------
+ 账务流水号 业务流水号 商户订单号 商品名称 发生时间 对方账号 收入金额(+元) 支出金额(-元) 账户余额(元) 交易渠道 业务类型 备注
+ */
+ for (var i = 0; i < 5; i++)
+ importResult.Lines.RemoveAt(0);
+
+ //忽略后4行
+ /*
+ #-----------------------------------------账务明细列表结束------------------------------------
+ #支出合计:681笔,共-39623.27元
+ #收入合计:85笔,共43889.26元
+ #导出时间:[2022年05月01日 10:13:45]
+ */
+ for (var i = 0; i < 4; i++)
+ {
+ importResult.Lines.RemoveAt(importResult.Lines.Count() - 1);
+ }
+
+ var payBillNo = "";
+ try
+ {
+ foreach (var line in importResult.Lines)
+ {
+ var array = line.CSVstrToArry();
+ payBillNo = array[0].Replace("\"", string.Empty).Replace("\t", string.Empty).Trim();
+ if (AuditPayBillList.Any(p => p.PayBillNo == payBillNo))
+ continue;
+ var payBill = new AuditPayBill()
+ {
+ BelongFileName = importResult.FileName,
+ PayBillNo = payBillNo,
+ PayBillType = PayBillType.AliPay,
+ SourceMerchantOrderNo = array[2].FormatString(),
+ ProductName = array[3].FormatString(),
+ PayTime = DateTime.Parse(array[4].FormatString()),
+ OppositeAccount = array[5].FormatString(),
+ ExpenditureAmount = decimal.Parse(array[7].FormatString())
+ };
+ payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo;
+ if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP"))
+ payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8);
+ AuditPayBillList.Add(payBill);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"问题账单号{payBillNo} {ex.Message}", "导入支付宝账单");
+ }
+ }
+
+ ///
+ /// 导入1688采购单
+ ///
+ private void Import1688PurchaseOrder()
+ {
+ var importResult = ImportAuditFile(AuditFileType.采购单);
+ if (!string.IsNullOrEmpty(importResult.ErrorMessage))
+ {
+ MessageBox.Show(importResult.ErrorMessage, "导入1688采购单");
+ return;
+ }
+
+ //去掉列名
+ importResult.Lines.RemoveAt(0);
+
+ var purchaseOrderId = "";
+ try
+ {
+ foreach (var line in importResult.Lines)
+ {
+ var array = line.CSVstrToArry();
+ purchaseOrderId = array[0].FormatString();
+ if (string.IsNullOrEmpty(purchaseOrderId) || AuditPurchaseOrderList.Any(p => p.PurchaseOrderId == purchaseOrderId))
+ continue;
+ var purchaseOrder = new AuditPurchaseOrder()
+ {
+ PurchaseOrderId = purchaseOrderId,
+ Platform = Platform.阿里巴巴,
+ BelongFileName = importResult.FileName,
+ ProductAmount = decimal.Parse(array[5].FormatString()),
+ Freight = decimal.Parse(array[6].FormatString()),
+ PayAmount = decimal.Parse(array[8].FormatString()),
+ CreateTime = DateTime.Parse(array[10].FormatString()),
+ ContactName = array[13].FormatString(),
+ Address = array[14].FormatString(),
+ Phone = array[17].FormatString(),
+ Quantity = int.Parse(array[20].FormatString())
+ };
+ if (!string.IsNullOrEmpty(array[11]))
+ purchaseOrder.PayTime = DateTime.Parse(array[11].FormatString());
+ AuditPurchaseOrderList.Add(purchaseOrder);
+ }
+ Console.WriteLine(AuditPurchaseOrderList.Count());
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"问题采购单号{purchaseOrderId} {ex.Message}", "导入1688采购单");
+ }
+
+ }
+
+ ///
+ /// 导入京东销售订单
+ ///
+ private void ImportJDShopOrder()
+ {
+ var importResult = ImportAuditFile(AuditFileType.销售订单);
+ if (!string.IsNullOrEmpty(importResult.ErrorMessage))
+ {
+ MessageBox.Show(importResult.ErrorMessage, "导入京东销售订单");
+ return;
+ }
+
+ //去掉列名
+ importResult.Lines.RemoveAt(0);
+ var orderId = "";
+ try
+ {
+ foreach (var line in importResult.Lines)
+ {
+ var array = line.CSVstrToArry();
+ orderId = array[0].FormatString();
+ if (string.IsNullOrEmpty(orderId) || AuditShopOrderList.Any(p => p.OrderId == orderId))
+ continue;
+ var order = new AuditShopOrder()
+ {
+ OrderId = orderId,
+
+ };
+ AuditShopOrderList.Add(order);
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show($"问题销售订单号{orderId} {ex.Message}", "导入京东销售订单");
+ }
+ }
}
}
diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs
index 5daff652..83cd48e3 100644
--- a/BBWY.Client/ViewModels/ViewModelLocator.cs
+++ b/BBWY.Client/ViewModels/ViewModelLocator.cs
@@ -97,5 +97,14 @@ namespace BBWY.Client.ViewModels
return s.ServiceProvider.GetRequiredService();
}
}
+
+ public ProcurementAuditViewModel ProcurementAudit
+ {
+ get
+ {
+ using var s = sp.CreateScope();
+ return s.ServiceProvider.GetRequiredService();
+ }
+ }
}
}
diff --git a/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
index 98db0710..0f479982 100644
--- a/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
+++ b/BBWY.Client/Views/FinancialTerminal/ProcurementAudit.xaml
@@ -5,10 +5,108 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BBWY.Client.Views.FinancialTerminal"
mc:Ignorable="d"
+ xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls"
d:DesignHeight="450" d:DesignWidth="800"
- Title="ProcurementAudit">
-
+ Title="ProcurementAudit"
+ DataContext="{Binding ProcurementAudit,Source={StaticResource Locator}}">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BBWY.Client/Views/Ware/WareManager.xaml b/BBWY.Client/Views/Ware/WareManager.xaml
index e8397011..5f2abc06 100644
--- a/BBWY.Client/Views/Ware/WareManager.xaml
+++ b/BBWY.Client/Views/Ware/WareManager.xaml
@@ -23,7 +23,7 @@
-
+
diff --git a/BBWY.Client/Views/Ware/WareStock.xaml b/BBWY.Client/Views/Ware/WareStock.xaml
index d2c491f3..bebeb534 100644
--- a/BBWY.Client/Views/Ware/WareStock.xaml
+++ b/BBWY.Client/Views/Ware/WareStock.xaml
@@ -162,7 +162,7 @@
-
+
diff --git a/BBWY.Server.Business/PlatformSDK/_1688Business.cs b/BBWY.Server.Business/PlatformSDK/_1688Business.cs
index 733b1299..d0db87ee 100644
--- a/BBWY.Server.Business/PlatformSDK/_1688Business.cs
+++ b/BBWY.Server.Business/PlatformSDK/_1688Business.cs
@@ -79,7 +79,7 @@ namespace BBWY.Server.Business
public override PreviewOrderResponse PreviewOrder(PreviewOrderReuqest previewOrderReuqest)
{
- logger.Info($"PreviewOrder {JsonConvert.SerializeObject(previewOrderReuqest)}");
+ //logger.Info($"PreviewOrder {JsonConvert.SerializeObject(previewOrderReuqest)}");
var client = GetSyncAPIClient(previewOrderReuqest.AppKey, previewOrderReuqest.AppSecret);
RequestPolicy reqPolicy = new RequestPolicy();
@@ -130,6 +130,8 @@ namespace BBWY.Server.Business
if (result.Value("success") != true)
throw new BusinessException(result.Value("errorMsg")) { Code = 0 };
+ logger.Info($"PreviewOrder Request:{JsonConvert.SerializeObject(previewOrderReuqest)} Response:{result}");
+
var orderPreviewResuslt = (JArray)result["orderPreviewResuslt"];
List intersectTradeModeList = new List();
From 9786d950e7f225aadff141da766585d979ab3a57 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 29 May 2022 05:55:37 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=AE=A1=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ProcurementAudit/AuditShopOrder.cs | 10 +
BBWY.Client/Resources/Themes/Generic.xaml | 3 +
.../ProcurementAuditViewModel.cs | 278 ++++++++++++++++--
.../FinancialTerminal/ProcurementAudit.xaml | 64 +++-
4 files changed, 332 insertions(+), 23 deletions(-)
diff --git a/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
index 47698d71..9f561f8d 100644
--- a/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
+++ b/BBWY.Client/Models/FinancialTerminal/ProcurementAudit/AuditShopOrder.cs
@@ -30,6 +30,11 @@ namespace BBWY.Client.Models
///
public DateTime CreateTime { get; set; }
+ ///
+ /// 支付时间
+ ///
+ public DateTime? PayTime { get; set; }
+
///
/// 联系电话
///
@@ -44,6 +49,11 @@ namespace BBWY.Client.Models
/// 收货人
///
public string ContactName { get; set; }
+
+ ///
+ /// 商家备注
+ ///
+ public string VenderRemark { get; set; }
///
/// 关联的采购单号
diff --git a/BBWY.Client/Resources/Themes/Generic.xaml b/BBWY.Client/Resources/Themes/Generic.xaml
index 7853ca8f..f75c12c2 100644
--- a/BBWY.Client/Resources/Themes/Generic.xaml
+++ b/BBWY.Client/Resources/Themes/Generic.xaml
@@ -279,6 +279,9 @@
+
+
@@ -107,6 +115,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From a8fd3c75512541df7a79be1058438da628e1c99f Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 29 May 2022 07:03:04 +0800
Subject: [PATCH 4/6] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=AE=A1=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
index 37cb7202..889a52a3 100644
--- a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
+++ b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
@@ -524,8 +524,10 @@ namespace BBWY.Client.ViewModels
{
if (SelectAuditFile == null || AuditFileList.Count() == 0)
return;
+ var f = SelectAuditFile;
SelectAuditFile = null;
- SelectAuditFile = AuditFileList.FirstOrDefault(f => f.AuditFileType == AuditFileType.账单);
+ SelectAuditFile = f;
+ //SelectAuditFile = AuditFileList.FirstOrDefault(f => f.AuditFileType == AuditFileType.账单);
}
}
}
From 241ad03f51d8299b681d40c3d453f9e268e90db5 Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 29 May 2022 17:40:00 +0800
Subject: [PATCH 5/6] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=AE=A1=E8=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../FinancialTerminal/ProcurementAuditViewModel.cs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
index 889a52a3..089cbd38 100644
--- a/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
+++ b/BBWY.Client/ViewModels/FinancialTerminal/ProcurementAuditViewModel.cs
@@ -353,6 +353,10 @@ namespace BBWY.Client.ViewModels
foreach (var line in importResult.Lines)
{
var array = line.CSVstrToArry();
+ var sourceMerchantOrderNo = array[2].FormatString();
+ if (!string.IsNullOrEmpty(sourceMerchantOrderNo) && sourceMerchantOrderNo.StartsWith("XP"))
+ continue; //暂时不支持此类商户单号
+
var expenditureAmount = decimal.Parse(array[7].FormatString());
if (expenditureAmount == 0) //支出为0的账单不参与审计
continue;
@@ -364,7 +368,7 @@ namespace BBWY.Client.ViewModels
BelongFileName = importResult.FileName,
PayBillNo = payBillNo,
PayBillType = PayBillType.AliPay,
- SourceMerchantOrderNo = array[2].FormatString(),
+ SourceMerchantOrderNo = sourceMerchantOrderNo,
ProductName = array[3].FormatString(),
PayTime = DateTime.Parse(array[4].FormatString()),
OppositeAccount = array[5].FormatString(),
@@ -373,6 +377,7 @@ namespace BBWY.Client.ViewModels
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo;
if (payBill.SourceMerchantOrderNo.StartsWith("T50060NP"))
payBill.MerchantOrderNo = payBill.SourceMerchantOrderNo.Substring(8);
+
AuditPayBillList.Add(payBill);
}
}
From 096b195950c4401a062a3f7ec10f52714481b3ae Mon Sep 17 00:00:00 2001
From: shanj <18996038927@163.com>
Date: Sun, 29 May 2022 20:47:59 +0800
Subject: [PATCH 6/6] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E7=AB=AF=E6=9D=A1?=
=?UTF-8?q?=E4=BB=B6=E9=AA=8C=E8=AF=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
BBWY.Client/ViewModels/MainViewModel.cs | 9 +-
BBWY.Client/Views/MainWindow.xaml | 2 +-
BBWY.Server.Business/Order/OrderBusiness.cs | 2 +-
.../PlatformSDK/LogisticsCompanyConverter.cs | 83 +++++++++++++++++++
.../PurchaseOrder/PurchaseOrderBusiness.cs | 61 +++++++-------
5 files changed, 124 insertions(+), 33 deletions(-)
create mode 100644 BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs
diff --git a/BBWY.Client/ViewModels/MainViewModel.cs b/BBWY.Client/ViewModels/MainViewModel.cs
index d69f0a91..ce436eae 100644
--- a/BBWY.Client/ViewModels/MainViewModel.cs
+++ b/BBWY.Client/ViewModels/MainViewModel.cs
@@ -10,6 +10,7 @@ using Microsoft.Web.WebView2.Core;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
@@ -85,7 +86,7 @@ namespace BBWY.Client.ViewModels
ChooseShopCommand = new RelayCommand((s) => ChooseShop(s));
this.GlobalContext = globalContext;
ShopList = new ObservableCollection();
- MenuList = new List()
+ MenuList = new ObservableCollection()
{
new MenuModel()
{
@@ -147,6 +148,10 @@ namespace BBWY.Client.ViewModels
throw new Exception($"获取磨刀石用户信息失败 {mdsUserResponse.Msg}");
GlobalContext.User = mdsUserResponse.Data.Map();
+#if RELEASE
+ if (GlobalContext.User.TeamName != "财务部")
+ App.Current.Dispatcher.Invoke(() => MenuList.RemoveAt(MenuList.Count() - 1));
+#endif
//请求用户信息接口
//GlobalContext.User = new User()
@@ -272,6 +277,6 @@ namespace BBWY.Client.ViewModels
{
Wb2DownloadProgress = e.ProgressPercentage;
}
- #endregion
+#endregion
}
}
diff --git a/BBWY.Client/Views/MainWindow.xaml b/BBWY.Client/Views/MainWindow.xaml
index 5b40ec27..6e3fb1f5 100644
--- a/BBWY.Client/Views/MainWindow.xaml
+++ b/BBWY.Client/Views/MainWindow.xaml
@@ -26,7 +26,7 @@
-
+
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index b5d2fe24..d3b4dbbc 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -887,7 +887,7 @@ namespace BBWY.Server.Business
PageSize = 100,
Platform = shop.Platform,
JDColType = string.IsNullOrEmpty(shop.VenderType) ? "0" : shop.VenderType,
- SaveResponseLog = true,
+ SaveResponseLog = false,
OrderId = orderId
}, null, HttpMethod.Post);
if (orderListApiResult.StatusCode != System.Net.HttpStatusCode.OK)
diff --git a/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs b/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs
new file mode 100644
index 00000000..9d47c321
--- /dev/null
+++ b/BBWY.Server.Business/PlatformSDK/LogisticsCompanyConverter.cs
@@ -0,0 +1,83 @@
+using BBWY.Common.Models;
+using BBWY.Server.Model;
+using BBWY.Server.Model.Dto;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace BBWY.Server.Business
+{
+ public class LogisticsCompanyConverter : IDenpendency
+ {
+ private IDictionary> converterDictionary;
+
+ public LogisticsCompanyConverter()
+ {
+ converterDictionary = new Dictionary>();
+ converterDictionary.Add($"{Enums.Platform.阿里巴巴}_{Enums.Platform.京东}", new List()
+ {
+ new LogisticsCompanyRelationship(){SourceName="中通快递(ZTO)",TargetName="中通速递"},
+ new LogisticsCompanyRelationship(){SourceName="圆通速递(YTO)",TargetName="圆通快递"},
+ new LogisticsCompanyRelationship(){SourceName="邮政国内小包",TargetName="邮政快递包裹"},
+ new LogisticsCompanyRelationship(){SourceName="韵达快递",TargetName="韵达快递"},
+ new LogisticsCompanyRelationship(){SourceName="申通快递(STO)",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="顺丰速运",TargetName="顺丰快递"},
+ new LogisticsCompanyRelationship(){SourceName="百世快递",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="其他",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="德邦",TargetName="德邦物流"},
+ new LogisticsCompanyRelationship(){SourceName="EMS",TargetName="邮政快递包裹"},
+ new LogisticsCompanyRelationship(){SourceName="德邦快递",TargetName="德邦快运"},
+ new LogisticsCompanyRelationship(){SourceName="其它",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="极兔速递",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="中通快运",TargetName="中通快运"},
+ new LogisticsCompanyRelationship(){SourceName="龙邦速递",TargetName="龙邦快递"},
+ new LogisticsCompanyRelationship(){SourceName="安能物流",TargetName="安能物流"},
+ new LogisticsCompanyRelationship(){SourceName="德坤物流",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="顺丰快运",TargetName="顺丰快递"},
+ new LogisticsCompanyRelationship(){SourceName="壹米滴答",TargetName="壹米滴答"},
+ new LogisticsCompanyRelationship(){SourceName="优速快递",TargetName="优速快递"},
+ new LogisticsCompanyRelationship(){SourceName="京广速递",TargetName="厂家自送"},
+ new LogisticsCompanyRelationship(){SourceName="丰网速运",TargetName="丰网速运"},
+ new LogisticsCompanyRelationship(){SourceName="顺心捷达",TargetName="顺心捷达"},
+ new LogisticsCompanyRelationship(){SourceName="快捷快递",TargetName="快捷速递"},
+ new LogisticsCompanyRelationship(){SourceName="极兔快递(原百世快递)",TargetName="厂家自送"}
+ });
+ }
+
+ ///
+ /// 翻译各平台之间的物流公司
+ ///
+ ///
+ ///
+ ///
+ /// 用户支持的目标平台物流公司
+ /// 目标平台的物流公司Id
+ public string Converter(string sourceName,
+ Enums.Platform sourcePlatform,
+ Enums.Platform targetPlatform,
+ IList targetPlatformUserLogisticsCompanyList)
+ {
+ var key = $"{sourcePlatform}_{targetPlatform}";
+ if (!converterDictionary.TryGetValue(key, out IList companyRelationShips))
+ throw new BusinessException($"不支持{sourcePlatform}与{targetPlatform}的物流公司翻译");
+
+ var targetShip = companyRelationShips.FirstOrDefault(l => l.SourceName == sourceName);
+ if (targetShip == null)
+ throw new BusinessException($"sourcePlatform:{sourcePlatform},targetPlatform:{targetPlatform},未找到{sourcePlatform}的物流公司{sourceName}");
+
+ var logisiticsCompany = targetPlatformUserLogisticsCompanyList.FirstOrDefault(c => c.Name.Equals(targetShip.TargetName));
+ if (logisiticsCompany == null)
+ throw new BusinessException($"sourcePlatform:{sourcePlatform},targetPlatform:{targetPlatform},targetShip:{targetShip.TargetName},在用户支持的物流公司中不存在");
+
+ return logisiticsCompany.Id;
+ }
+ }
+
+ public class LogisticsCompanyRelationship
+ {
+ public string SourceName { get; set; }
+
+ public string TargetName { get; set; }
+ }
+}
diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index a309612b..585e1e8b 100644
--- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -25,8 +25,8 @@ namespace BBWY.Server.Business
private OrderBusiness orderBusiness;
private MDSBusiness mdsBusiness;
private VenderBusiness venderBusiness;
-
- private IDictionary deliverySelfDic;
+ private LogisticsCompanyConverter logisticsCompanyConverter;
+ //private IDictionary deliverySelfDic;
public PurchaseOrderBusiness(IFreeSql fsql,
NLog.ILogger logger,
@@ -35,18 +35,19 @@ namespace BBWY.Server.Business
TaskSchedulerManager taskSchedulerManager,
OrderBusiness orderBusiness,
MDSBusiness mdsBusiness,
- VenderBusiness venderBusiness) : base(fsql, logger, idGenerator)
+ VenderBusiness venderBusiness,
+ LogisticsCompanyConverter logisticsCompanyConverter) : base(fsql, logger, idGenerator)
{
this.platformSDKBusinessList = platformSDKBusinessList;
this.taskSchedulerManager = taskSchedulerManager;
this.orderBusiness = orderBusiness;
this.mdsBusiness = mdsBusiness;
this.venderBusiness = venderBusiness;
-
- deliverySelfDic = new Dictionary()
- {
- {Enums.Platform.京东 , "1274"} //厂家自送
- };
+ this.logisticsCompanyConverter = logisticsCompanyConverter;
+ //deliverySelfDic = new Dictionary()
+ //{
+ // {Enums.Platform.京东 , "1274"} //厂家自送
+ //};
}
public void AddPurchaseOrder(AddPurchaseOrderRequest addPurchaseOrderRequest)
@@ -507,8 +508,9 @@ namespace BBWY.Server.Business
#endregion
#region 物流公司翻译
- currentProgress = "将采购单的物流公司翻译为店铺平台的物流公司";
- logisticsCompanyId = ConvertLogisticsCompanyId(wayBillNoResponse.LogisticsCompanyName, logisticsCompanyList, shop.Platform);
+ currentProgress = "物流公司翻译";
+ //logisticsCompanyId = ConvertLogisticsCompanyId(wayBillNoResponse.LogisticsCompanyName, logisticsCompanyList, shop.Platform);
+ logisticsCompanyId = logisticsCompanyConverter.Converter(wayBillNoResponse.LogisticsCompanyName, callbackPlatform, shop.Platform, logisticsCompanyList);
#endregion
#region 店铺平台订单出库
@@ -533,25 +535,26 @@ namespace BBWY.Server.Business
}
}
- ///
- /// 物流公司翻译, 将发货平台的物流公司翻译为店铺平台的物流公司
- ///
- ///
- ///
- ///
- ///
- private string ConvertLogisticsCompanyId(string sourceLogisticsCompanyName, IList targetLogisticsList, Enums.Platform tagetLogisticsPlatform)
- {
- var match = Regex.Match(sourceLogisticsCompanyName, "(中通|圆通|申通|顺丰|韵达|邮政快递包裹|平邮|EMS|德邦|百世|天天|优速)");
- if (match.Success)
- {
- var sname = match.Groups[1].Value;
- var targetLogistics = targetLogisticsList.FirstOrDefault(t => t.Name.Contains(sname));
- if (targetLogistics != null)
- return targetLogistics.Id;
- }
- return deliverySelfDic[tagetLogisticsPlatform];
- }
+ /////
+ ///// 物流公司翻译, 将发货平台的物流公司翻译为店铺平台的物流公司
+ /////
+ /////
+ /////
+ /////
+ /////
+ //private string ConvertLogisticsCompanyId(string sourceLogisticsCompanyName, IList targetLogisticsList, Enums.Platform tagetLogisticsPlatform)
+ //{
+ // var match = Regex.Match(sourceLogisticsCompanyName, "(中通|圆通|申通|顺丰|韵达|邮政快递包裹|平邮|EMS|德邦|百世|天天|优速)");
+ // if (match.Success)
+ // {
+ // var sname = match.Groups[1].Value;
+ // var targetLogistics = targetLogisticsList.FirstOrDefault(t => t.Name.Contains(sname));
+ // if (targetLogistics != null)
+ // return targetLogistics.Id;
+ // }
+ // return deliverySelfDic[tagetLogisticsPlatform];
+ //}
+
///
/// 采购平台改价回调