diff --git a/BBWY.Client/APIServices/OrderService.cs b/BBWY.Client/APIServices/OrderService.cs
index 1021ba78..8baa7196 100644
--- a/BBWY.Client/APIServices/OrderService.cs
+++ b/BBWY.Client/APIServices/OrderService.cs
@@ -126,7 +126,8 @@ namespace BBWY.Client.APIServices
osku.PurchaseFreight,
osku.ProductId,
osku.SkuAmount,
- osku.StorageAmount,
+ //osku.StorageAmount,
+ osku.PackagingLaborAmount,
osku.TotalCost,
osku.UnitCost
}),
diff --git a/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs
index 42cea562..16bf3ce8 100644
--- a/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs
+++ b/BBWY.Client/Models/APIModel/Response/BillCorrection/BillCorrectionOrderResponse.cs
@@ -61,10 +61,15 @@ namespace BBWY.Client.Models
///
public decimal ConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费
+ /////
+ //public decimal StorageAmount { get; set; } = 0.00M;
+
///
- /// 仓储费
+ /// 包装人工费
///
- public decimal StorageAmount { get; set; } = 0.00M;
+ public decimal PackagingLaborAmount { get; set; } = 0.00M;
///
/// 售后费用
diff --git a/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs
index d8fe471d..f660405d 100644
--- a/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs
+++ b/BBWY.Client/Models/APIModel/Response/Order/ExportOrderResponse.cs
@@ -37,10 +37,15 @@ namespace BBWY.Client.Models
///
public decimal FirstFreight { get; set; }
+ /////
+ ///// 仓储费
+ /////
+ //public decimal StorageAmount { get; set; }
+
///
- /// 仓储费
+ /// 包装人工费
///
- public decimal StorageAmount { get; set; }
+ public decimal PackagingLaborAmount { get; set; }
///
/// 发货快递费
@@ -111,8 +116,8 @@ namespace BBWY.Client.Models
public override string ToString()
{
- //日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,仓储服务费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注
- return $"{OrderStartTime:yyyy-MM-dd HH:mm:ss},{OrderId},{SkuIds},{OrderState},{StorageType},{PurchaseOrderIds},{OrderTotalPrice},{PurchaseSkuAmount},{PurchaseFreight},{FirstFreight},{StorageAmount},{DeliveryExpressFreight},{ConsumableAmount},{InStorageAmount},{OutStorageAmount},{SDOrderAmount},{PlatformCommissionAmount},{FreightPrice},{OrderPayment},{ActualAmount},{Profit},{ProfitRatio},{ConsigneeStr},{VenderRemark}";
+ //日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,包装人工费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注
+ return $"{OrderStartTime:yyyy-MM-dd HH:mm:ss},{OrderId},{SkuIds},{OrderState},{StorageType},{PurchaseOrderIds},{OrderTotalPrice},{PurchaseSkuAmount},{PurchaseFreight},{FirstFreight},{PackagingLaborAmount},{DeliveryExpressFreight},{ConsumableAmount},{InStorageAmount},{OutStorageAmount},{SDOrderAmount},{PlatformCommissionAmount},{FreightPrice},{OrderPayment},{ActualAmount},{Profit},{ProfitRatio},{ConsigneeStr},{VenderRemark}";
}
}
}
diff --git a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs
index 3084f87a..23cf929a 100644
--- a/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs
+++ b/BBWY.Client/Models/APIModel/Response/Order/OrderCostDetailResponse.cs
@@ -70,10 +70,15 @@ namespace BBWY.Client.Models
///
public decimal ConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费
+ /////
+ //public decimal StorageAmount { get; set; } = 0.00M;
+
///
- /// 仓储费
+ /// 包装人工费
///
- public decimal StorageAmount { get; set; } = 0.00M;
+ public decimal PackagingLaborAmount { get; set; } = 0.00M;
///
/// 总计(不含销售运费 历史遗留)
diff --git a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs
index 6464e3f5..79400e9f 100644
--- a/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs
+++ b/BBWY.Client/Models/APIModel/Response/PurchaseOrder/PurchaseOrderResponse.cs
@@ -55,10 +55,15 @@ namespace BBWY.Client.Models
///
public decimal SingleConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 单件仓储费
+ /////
+ //public decimal SingleStorageAmount { get; set; } = 0.00M;
+
///
- /// 单件仓储费
+ /// 包装人工费
///
- public decimal SingleStorageAmount { get; set; } = 0.00M;
+ public decimal SinglePackagingLaborAmount { get; set; } = 0.00M;
///
/// 单件Sku成本
diff --git a/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs b/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs
index 9b69e50d..8e25abec 100644
--- a/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs
+++ b/BBWY.Client/Models/BillCorrection/BillCorrectionOrder.cs
@@ -65,10 +65,15 @@ namespace BBWY.Client.Models
///
public decimal ConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费
+ /////
+ //public decimal StorageAmount { get; set; } = 0.00M;
+
///
- /// 仓储费
+ /// 包装人工费
///
- public decimal StorageAmount { get; set; } = 0.00M;
+ public decimal PackagingLaborAmount { get; set; }=0.00M;
///
/// 售后费用
diff --git a/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs b/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs
index c46023fc..8d93bb51 100644
--- a/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs
+++ b/BBWY.Client/Models/Order/ManualEditCostOrderSku.cs
@@ -46,11 +46,14 @@ namespace BBWY.Client.Models
private decimal consumableAmount;
private string consumableAmountStr;
- ///
- /// 仓储费
- ///
- private decimal storageAmount;
- private string storageAmountStr;
+ /////
+ ///// 仓储费
+ /////
+ //private decimal storageAmount;
+ //private string storageAmountStr;
+
+ private decimal packagingLaborAmount;
+ private string packagingLaborAmountStr;
///
/// 总计(不含发货运费)
@@ -100,7 +103,7 @@ namespace BBWY.Client.Models
public decimal PurchaseFreight { get => purchaseFreight; set { if (Set(ref purchaseFreight, value)) { CalculationCost(); } } }
public decimal FirstFreight { get => firstFreight; set { if (Set(ref firstFreight, value)) { CalculationCost(); } } }
public decimal ConsumableAmount { get => consumableAmount; set { if (Set(ref consumableAmount, value)) { CalculationCost(); } } }
- public decimal StorageAmount { get => storageAmount; set { if (Set(ref storageAmount, value)) { CalculationCost(); } } }
+ //public decimal StorageAmount { get => storageAmount; set { if (Set(ref storageAmount, value)) { CalculationCost(); } } }
public decimal TotalCost
{
get => totalCost; set
@@ -114,7 +117,7 @@ namespace BBWY.Client.Models
private void CalculationCost()
{
- TotalCost = SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + ConsumableAmount + StorageAmount;
+ TotalCost = SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + ConsumableAmount + PackagingLaborAmount;
UnitCost = ItemTotal == 0 ? 0 : TotalCost / ItemTotal;
}
@@ -164,17 +167,17 @@ namespace BBWY.Client.Models
}
}
}
- public string StorageAmountStr
- {
- get => storageAmountStr; set
- {
- if (Set(ref storageAmountStr, value))
- {
- if (decimal.TryParse(storageAmountStr, out decimal d))
- StorageAmount = d;
- }
- }
- }
+ //public string StorageAmountStr
+ //{
+ // get => storageAmountStr; set
+ // {
+ // if (Set(ref storageAmountStr, value))
+ // {
+ // if (decimal.TryParse(storageAmountStr, out decimal d))
+ // StorageAmount = d;
+ // }
+ // }
+ //}
public string DeliveryExpressFreightStr
{
@@ -225,5 +228,25 @@ namespace BBWY.Client.Models
OutStorageAmount = d;
}
}
+
+ public decimal PackagingLaborAmount
+ {
+ get => packagingLaborAmount;
+ set
+ {
+ if (Set(ref packagingLaborAmount, value))
+ CalculationCost();
+ }
+ }
+ public string PackagingLaborAmountStr
+ {
+ get => packagingLaborAmountStr;
+ set
+ {
+ if (Set(ref packagingLaborAmountStr, value))
+ if (decimal.TryParse(packagingLaborAmountStr, out decimal d))
+ packagingLaborAmount = d;
+ }
+ }
}
}
diff --git a/BBWY.Client/Models/Order/Order.cs b/BBWY.Client/Models/Order/Order.cs
index a53f660f..d8063ca8 100644
--- a/BBWY.Client/Models/Order/Order.cs
+++ b/BBWY.Client/Models/Order/Order.cs
@@ -237,11 +237,22 @@ namespace BBWY.Client.Models
{
get
{
+ //var beforeTotalCost = OrderCost?.BeforeTotalCost ?? 0M;
+ //return OrderState != OrderState.已取消 && StorageType != Models.StorageType.SD &&
+ // ((StorageType != null && beforeTotalCost == 0M) ||
+ // (beforeTotalCost > OrderSellerPrice + FreightPrice + PingTaiChengDanYouHuiQuan) ||
+ // (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款));
+
var beforeTotalCost = OrderCost?.BeforeTotalCost ?? 0M;
- return OrderState != OrderState.已取消 && StorageType != Models.StorageType.SD &&
- ((StorageType != null && beforeTotalCost == 0M) ||
- (beforeTotalCost > OrderSellerPrice + FreightPrice + PingTaiChengDanYouHuiQuan) ||
- (StorageType == null && OrderState != OrderState.等待采购 && OrderState != OrderState.待付款));
+ var profit = OrderCost?.Profit ?? 0M;
+ return (OrderState != OrderState.已取消 &&
+ StorageType != Models.StorageType.SD &&
+ StorageType != null &&
+ (beforeTotalCost == 0M || profit < 0M)) ||
+ (StorageType == null &&
+ OrderState != OrderState.等待采购 &&
+ OrderState != OrderState.待付款 &&
+ OrderState != OrderState.已取消);
}
}
diff --git a/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs b/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs
index 9c104a07..ffe017b4 100644
--- a/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs
+++ b/BBWY.Client/Models/PurchaseOrder/PurchaseOrder.cs
@@ -119,18 +119,18 @@ namespace BBWY.Client.Models
}
}
- ///
- /// 单件仓储费
- ///
- public decimal SingleStorageAmount
- {
- get => singleStorageAmount;
- set
- {
- if (Set(ref singleStorageAmount, value))
- RefreshUnitCost();
- }
- }
+ /////
+ ///// 单件仓储费
+ /////
+ //public decimal SingleStorageAmount
+ //{
+ // get => singleStorageAmount;
+ // set
+ // {
+ // if (Set(ref singleStorageAmount, value))
+ // RefreshUnitCost();
+ // }
+ //}
public decimal SingleInStorageAmount
{
@@ -153,9 +153,19 @@ namespace BBWY.Client.Models
public decimal SingleRefundInStorageAmount { get => singleRefundInStorageAmount; set { Set(ref singleRefundInStorageAmount, value); } }
+ public decimal SinglePackagingLaborAmount
+ {
+ get => singlePackagingLaborAmount;
+ set
+ {
+ if (Set(ref singlePackagingLaborAmount, value))
+ RefreshUnitCost();
+ }
+ }
+
public void RefreshUnitCost()
{
- UnitCost = SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SingleStorageAmount;
+ UnitCost = SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SinglePackagingLaborAmount;
}
private bool isEdit;
@@ -168,7 +178,8 @@ namespace BBWY.Client.Models
private decimal singleDeliveryFreight;
//private decimal singleOperationAmount;
private decimal singleConsumableAmount;
- private decimal singleStorageAmount;
+ //private decimal singleStorageAmount;
+ private decimal singlePackagingLaborAmount;
private decimal singleInStorageAmount;
private decimal singleOutStorageAmount;
private decimal singleRefundInStorageAmount;
diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs
index dcf743a0..b62f6348 100644
--- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs
+++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs
@@ -811,7 +811,8 @@ namespace BBWY.Client.ViewModels
manualEditCostOrderSku.OutStorageAmount = orderCostDetailList.Sum(ocd => ocd.OutStorageAmount);
manualEditCostOrderSku.PurchaseFreight = orderCostDetailList.Sum(ocd => ocd.PurchaseFreight);
manualEditCostOrderSku.SkuAmount = orderCostDetailList.Sum(ocd => ocd.SkuAmount);
- manualEditCostOrderSku.StorageAmount = orderCostDetailList.Sum(ocd => ocd.StorageAmount);
+ //manualEditCostOrderSku.StorageAmount = orderCostDetailList.Sum(ocd => ocd.StorageAmount);
+ manualEditCostOrderSku.PackagingLaborAmount = orderCostDetailList.Sum(ocd => ocd.PackagingLaborAmount);
manualEditCostOrderSku.TotalCost = orderCostDetailList.Sum(ocd => ocd.TotalCost);
manualEditCostOrderSku.UnitCost = orderCostDetailList.FirstOrDefault().UnitCost;
}
@@ -823,7 +824,8 @@ namespace BBWY.Client.ViewModels
manualEditCostOrderSku.OutStorageAmountStr = manualEditCostOrderSku.OutStorageAmount.ToString();
manualEditCostOrderSku.PurchaseFreightStr = manualEditCostOrderSku.PurchaseFreight.ToString();
manualEditCostOrderSku.SkuAmountStr = manualEditCostOrderSku.SkuAmount.ToString();
- manualEditCostOrderSku.StorageAmountStr = manualEditCostOrderSku.StorageAmount.ToString();
+ //manualEditCostOrderSku.StorageAmountStr = manualEditCostOrderSku.StorageAmount.ToString();
+ manualEditCostOrderSku.PackagingLaborAmountStr = manualEditCostOrderSku.PackagingLaborAmount.ToString();
}
var manualCalculationCost = new ManualCalculationCost(orderId, isSetStorageType, storageType, orderSkuList);
@@ -990,7 +992,7 @@ namespace BBWY.Client.ViewModels
try
{
var list = r.Data.Select(x => x.ToString()).ToList();
- list.Insert(0, "日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,仓储服务费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注");
+ list.Insert(0, "日期,店铺订单号,SKU编码,订单状态,仓储类型,代发下单单号,售价,商品成本,采购运费,头程费用,包装人工费,快递费,耗材费,入仓操作费,出仓操作费,刷单/空单号费,平台扣点,补差金额,应付金额,实收金额,利润,利润率,收件人联系方式,商家备注,售后类型,售后与特殊情况备注");
System.IO.File.WriteAllLines(ssaveFileName, list, Encoding.UTF8);
App.Current.Dispatcher.Invoke(() => MessageBox.Show("导出完成", "导出"));
}
diff --git a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
index f9022b7d..878d5aea 100644
--- a/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
+++ b/BBWY.Client/ViewModels/Purchase/1688PreviewPurchaseViewModel.cs
@@ -76,6 +76,7 @@ namespace BBWY.Client.ViewModels
/// 扩展数据,暂用于拳探
///
private string extensions;
+ private bool isSkuMatchError;
public _1688PreviewPurchaseViewModel(OneBoundAPIService oneBoundAPIService,
PurchaseService purchaseService,
@@ -117,7 +118,7 @@ namespace BBWY.Client.ViewModels
protected override void Load()
{
IsLoading = true;
-
+ isSkuMatchError = false;
Task.Factory.StartNew(() => purchaseService.GetPurchaseSchemeList(order.ItemList.Select(osku => osku.Id).ToList(), purchaser.Id, globalContext.User.Shop.ShopId))
.ContinueWith(r =>
{
@@ -150,7 +151,10 @@ namespace BBWY.Client.ViewModels
else
{
IsLoading = false;
- App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示"));
+ if (isSkuMatchError)
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案与当前商品页的数据匹配失败,请删除旧采购方案后重新绑定采购方案", "提示"));
+ else
+ App.Current.Dispatcher.Invoke(() => MessageBox.Show("采购方案商品加载失败,请重新打开预览窗口", "提示"));
}
});
}
@@ -195,6 +199,11 @@ namespace BBWY.Client.ViewModels
}
}
});
+
+ if (purchaseSchemeProduct.SelectedSkuIdList.Any(s => !data.Value.purchaseSchemeProductSkus.Any(s1 => s1.PurchaseSkuId == s)))
+ {
+ isSkuMatchError = true;
+ }
}
ewh.Set();
diff --git a/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml b/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml
index e26f51e6..95e0635c 100644
--- a/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml
+++ b/BBWY.Client/Views/BillCorrection/BillCorrectionView.xaml
@@ -219,15 +219,15 @@
ElementStyle="{StaticResource verticalCenterTextBlock}"/>
-
-
-
-
-
diff --git a/BBWY.Client/Views/Order/ManualCalculationCost.xaml b/BBWY.Client/Views/Order/ManualCalculationCost.xaml
index 4fe1a555..cd8d0a50 100644
--- a/BBWY.Client/Views/Order/ManualCalculationCost.xaml
+++ b/BBWY.Client/Views/Order/ManualCalculationCost.xaml
@@ -98,15 +98,15 @@
-
-
+
-
@@ -114,7 +114,7 @@
-
@@ -130,7 +130,7 @@
-
diff --git a/BBWY.Client/Views/Order/OrderListControl.xaml b/BBWY.Client/Views/Order/OrderListControl.xaml
index c66cefa7..60967cce 100644
--- a/BBWY.Client/Views/Order/OrderListControl.xaml
+++ b/BBWY.Client/Views/Order/OrderListControl.xaml
@@ -476,7 +476,7 @@
-
+
@@ -485,7 +485,7 @@
-
+
@@ -538,8 +538,8 @@
Visibility="{Binding InStorageAmount,ConverterParameter=0|0.0|0.00:Collapsed:Visible,Converter={StaticResource objConverter}}"/>
-
+
diff --git a/BBWY.Client/Views/Ware/WareStock.xaml b/BBWY.Client/Views/Ware/WareStock.xaml
index c37b3d0f..214d5bff 100644
--- a/BBWY.Client/Views/Ware/WareStock.xaml
+++ b/BBWY.Client/Views/Ware/WareStock.xaml
@@ -29,11 +29,11 @@
-
-
+
@@ -43,9 +43,9 @@
-
+
@@ -54,21 +54,21 @@
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
+
-
+
@@ -93,12 +93,11 @@
-
-
@@ -112,9 +111,9 @@
-
+
@@ -129,21 +128,23 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
@@ -207,11 +208,11 @@
+
-
@@ -221,32 +222,170 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -265,7 +404,6 @@
-
diff --git a/BBWY.Server.API/Controllers/TestController.cs b/BBWY.Server.API/Controllers/TestController.cs
index edbdf8b6..c05c2808 100644
--- a/BBWY.Server.API/Controllers/TestController.cs
+++ b/BBWY.Server.API/Controllers/TestController.cs
@@ -42,5 +42,17 @@ namespace BBWY.Server.API.Controllers
{
testBusiness.RepairOrderProfit();
}
+
+ [HttpPost]
+ public void RepairDFOrder()
+ {
+ testBusiness.RepairDFOrder();
+ }
+
+ [HttpPost]
+ public void Test_20231221()
+ {
+ testBusiness.Test_20231221();
+ }
}
}
diff --git a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
index 55518038..5660e79a 100644
--- a/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
+++ b/BBWY.Server.Business/AfterSaleOrder/AfterSaleOrderBusiness.cs
@@ -170,7 +170,7 @@ namespace BBWY.Server.Business
dbAfterSaleOrder.FirstFreight = dbOrderCostDetail.FirstFreight;
dbAfterSaleOrder.ReissueProductAmount = dbOrderCostDetail.SkuAmount;
dbAfterSaleOrder.ReissueFreight = dbOrderCostDetail.PurchaseFreight;
- dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount;
+ //dbAfterSaleOrder.StorageAmount = dbOrderCostDetail.StorageAmount;
dbAfterSaleOrder.InStorageAmount = dbOrderCostDetail.InStorageAmount;
dbAfterSaleOrder.OutStorageAmount = dbOrderCostDetail.OutStorageAmount;
}
diff --git a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs
index c7808e19..8d1b8d4a 100644
--- a/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs
+++ b/BBWY.Server.Business/BillCorrection/BillCorrectionBusiness.cs
@@ -68,7 +68,8 @@ namespace BBWY.Server.Business
InStorageAmount = g.Sum(g.Value.Item1.InStorageAmount),
OutStorageAmount = g.Sum(g.Value.Item1.OutStorageAmount),
ConsumableAmount = g.Sum(g.Value.Item1.ConsumableAmount),
- StorageAmount = g.Sum(g.Value.Item1.StorageAmount)
+ PackagingLaborAmount = g.Sum(g.Value.Item1.PackagingLaborAmount),
+ //StorageAmount = g.Sum(g.Value.Item1.StorageAmount)
});
@@ -99,7 +100,8 @@ namespace BBWY.Server.Business
order.InStorageAmount = orderCostDetail?.InStorageAmount ?? 0M;
order.OutStorageAmount = orderCostDetail?.OutStorageAmount ?? 0M;
order.ConsumableAmount = orderCostDetail?.ConsumableAmount ?? 0M;
- order.StorageAmount = orderCostDetail?.StorageAmount ?? 0M;
+ order.PackagingLaborAmount = orderCostDetail?.PackagingLaborAmount ?? 0M;
+ //order.StorageAmount = orderCostDetail?.StorageAmount ?? 0M;
order.AfterTotalCost = afterOrder?.AfterTotalCost ?? 0M;
if (order.StorageType == Model.Enums.StorageType.SD)
diff --git a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
index 6e9250b3..9c5aca76 100644
--- a/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
+++ b/BBWY.Server.Business/EvaluationAssistant/EvaluationAssistantBusiness.cs
@@ -148,6 +148,13 @@ namespace BBWY.Server.Business
#region 评价助手任务
public void AddOrEditPromotionTask(AddOrEditPromotionTaskRequest request)
{
+ var shop = venderBusiness.GetShopList(request.ShopId).FirstOrDefault();
+ if (shop == null)
+ throw new BusinessException("缺少店铺Id");
+ var loggerName = $"评价助手-{shop.ShopName}";
+ nLogManager.GetLogger(loggerName).Info($"发布任务-{JsonConvert.SerializeObject(request)}");
+
+
if (string.IsNullOrEmpty(request.MainProductSpu))
throw new BusinessException("缺少主商品SPU");
diff --git a/BBWY.Server.Business/Order/OrderBusiness.cs b/BBWY.Server.Business/Order/OrderBusiness.cs
index 9aee4593..709230e1 100644
--- a/BBWY.Server.Business/Order/OrderBusiness.cs
+++ b/BBWY.Server.Business/Order/OrderBusiness.cs
@@ -39,6 +39,8 @@ namespace BBWY.Server.Business
private IMemoryCache memoryCache;
private static TimeSpan sdGroupExpirationTimeSpan = TimeSpan.FromMinutes(20);
+ private List filterExceptionStateList;
+
public OrderBusiness(RestApiService restApiService,
IFreeSql fsql,
IIdGenerator idGenerator,
@@ -52,9 +54,15 @@ namespace BBWY.Server.Business
freeSqlMultiDBManagerLazy = new Lazy(() => serviceProvider.GetService());
productBusinessLazy = new Lazy(() => serviceProvider.GetService());
venderBusinessLazy = new Lazy(() => serviceProvider.GetService());
+
+ filterExceptionStateList = new List() {
+ Enums.OrderState.等待采购,
+ Enums.OrderState.待付款,
+ Enums.OrderState.已取消
+ };
}
- private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest)
+ private ISelect GetOrderListQueryConditions(SearchOrderRequest searchOrderRequest)
{
var select = fsql.Select().LeftJoin((o, ocs, oct, sh) => o.Id == ocs.OrderId)
.LeftJoin((o, ocs, oct, sh) => o.Id == oct.OrderId)
@@ -78,10 +86,12 @@ namespace BBWY.Server.Business
.WhereIf(searchOrderRequest.StartDate != null, (o, ocs, oct, sh) => o.StartTime >= searchOrderRequest.StartDate)
.WhereIf(searchOrderRequest.EndDate != null, (o, ocs, oct, sh) => o.StartTime <= searchOrderRequest.EndDate)
.WhereIf(searchOrderRequest.IncludeExceptionOrder,
- (o, ocs, oct, sh) => o.OrderState != Enums.OrderState.已取消 &&
- ((o.StorageType != Enums.StorageType.SD && o.StorageType != null && oct.PurchaseAmount == 0M) ||
- (o.StorageType != Enums.StorageType.SD && oct.PurchaseAmount + oct.DeliveryExpressFreight > o.OrderSellerPrice + o.FreightPrice + o.PingTaiChengDanYouHuiQuan) ||
- (o.StorageType == null && o.OrderState != Enums.OrderState.等待采购)))
+ (o, ocs, oct, sh) => (o.OrderState != Enums.OrderState.已取消 &&
+ o.StorageType != Enums.StorageType.SD &&
+ o.StorageType != null &&
+ (oct.PurchaseAmount == 0M || oct.Profit < 0)) ||
+ (o.StorageType == null &&
+ !filterExceptionStateList.Contains(o.OrderState)))
.WhereIf(searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == Enums.StorageType.代发)
.WhereIf(searchOrderRequest.ExcludeCanceled, (o, ocs, oct, sh) => o.OrderState != Enums.OrderState.已取消)
.WhereIf(searchOrderRequest.ExcludeSD && !searchOrderRequest.OnlyDF, (o, ocs, oct, sh) => o.StorageType == null || o.StorageType != Enums.StorageType.SD)
@@ -341,7 +351,8 @@ namespace BBWY.Server.Business
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.SkuAmount),
FirstFreight = g.Sum(g.Value.FirstFreight),
- StorageAmount = g.Sum(g.Value.StorageAmount),
+ //StorageAmount = g.Sum(g.Value.StorageAmount),
+ PackagingLaborAmount = g.Sum(g.Value.PackagingLaborAmount),
PurchaseFreight = g.Sum(g.Value.PurchaseFreight),
ConsumableAmount = g.Sum(g.Value.ConsumableAmount),
InStorageAmount = g.Sum(g.Value.InStorageAmount),
@@ -360,7 +371,8 @@ namespace BBWY.Server.Business
OrderId = g.Key,
SkuAmount = g.Sum(g.Value.Item1.SkuAmount),
FirstFreight = g.Sum(g.Value.Item1.FirstFreight),
- StorageAmount = g.Sum(g.Value.Item1.StorageAmount),
+ //StorageAmount = g.Sum(g.Value.Item1.StorageAmount),
+ PackagingLaborAmount = g.Sum(g.Value.Item1.PackagingLaborAmount),
PurchaseFreight = g.Sum(g.Value.Item1.PurchaseFreight),
ConsumableAmount = g.Sum(g.Value.Item1.ConsumableAmount),
InStorageAmount = g.Sum(g.Value.Item1.InStorageAmount),
@@ -377,7 +389,8 @@ namespace BBWY.Server.Business
order.FirstFreight = statistics?.FirstFreight ?? 0M;
order.PurchaseSkuAmount = statistics?.SkuAmount ?? 0M;
order.PurchaseFreight = statistics?.PurchaseFreight ?? 0M;
- order.StorageAmount = statistics?.StorageAmount ?? 0M;
+ //order.StorageAmount = statistics?.StorageAmount ?? 0M;
+ order.PackagingLaborAmount = statistics?.PackagingLaborAmount ?? 0M;
order.SkuIds = string.Join("|", orderSkuList.Where(osku => osku.OrderId == order.OrderId).Select(osku => osku.SkuId));
order.ProfitRatio = order.TotalCost == 0 ? 0 : Math.Round(order.Profit / order.TotalCost * 100, 2);
order.ConsumableAmount = statistics?.ConsumableAmount ?? 0M;
@@ -594,7 +607,8 @@ namespace BBWY.Server.Business
//OperationAmount = purchaseOrder.SingleOperationAmount * deductionQuantity,
PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity,
SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity,
- StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity
+ //StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity
+ PackagingLaborAmount = purchaseOrder.SinglePackagingLaborAmount * deductionQuantity
};
orderCostDetail.CalculationSkuGrossProfit(orderSku.ShouldPay ?? 0M,
@@ -957,7 +971,8 @@ namespace BBWY.Server.Business
//SingleOperationAmount = 0,
SingleInStorageAmount = 0,
SingleOutStorageAmount = 0,
- SingleStorageAmount = 0,
+ SinglePackagingLaborAmount = 0M,
+ //SingleStorageAmount = 0,
SingleSkuAmount = relationOrderSku.SingleSkuAmount,
SingleDeliveryFreight = 0
};
@@ -981,7 +996,8 @@ namespace BBWY.Server.Business
PurchaseFreight = odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(),
SkuAmount = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity,
SkuId = relationOrderSku.SkuId,
- StorageAmount = 0,
+ PackagingLaborAmount = 0,
+ //StorageAmount = 0,
//TotalCost = relationOrderSku.SingleSkuAmount * relationOrderSku.Quantity + odsRequest.PurchaseFreight / odsRequest.RelationPurchaseOrderSkuList.Count(),
//UnitCost = purchaseOrder.UnitCost,
PurchaseOrderPKId = purchaseOrder.Id
diff --git a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
index 351acc47..e179ae9d 100644
--- a/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
+++ b/BBWY.Server.Business/PlatformSDK/JDBusiness.cs
@@ -125,26 +125,49 @@ namespace BBWY.Server.Business
private string GetSkuTitle(JToken s)
{
- var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty;
- if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value"))
+ if (s["saleAttrs"] == null)
+ throw new BusinessException($"{s["skuId"]}没有名字");
+ StringBuilder titleBuilder = new StringBuilder();
+ List attrValueAliasList = new List();
+
+ attrValueAliasList.AddRange(s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString()));
+ /*
+ [{\"unit\":\"\",\"valueId\":\"1120738\",\"id\":8488,\"value\":\"手动\"},{\"unit\":\"个\",\"id\":8489,\"value\":\"30\"},{\"unit\":\"\",\"id\":8490,\"value\":\"大号M416火焰红\"}]-8弹壳+40软弹+复位标靶AWM软弹枪
+ */
+
+ foreach (var attrValueAlias in attrValueAliasList)
{
- if (title.Contains("]-["))
+ if (attrValueAlias.Contains("{") && attrValueAlias.Contains("}"))
{
- title = title.Replace("]-[", "]^[");
- var titleArray = title.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries);
- StringBuilder sb = new StringBuilder();
- foreach (var titleStr in titleArray)
- {
- sb.Append(string.Join("", JArray.Parse(titleStr).Select(j => $"{j.Value("value")}{j.Value("unit")}")));
- }
- title = sb.ToString();
+ titleBuilder.Append(string.Join(string.Empty, JArray.Parse(attrValueAlias).Select(j => $"{j.Value("value")}{j.Value("unit")}")));
}
else
{
- title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}"));
+ titleBuilder.Append(attrValueAlias);
}
}
- return title;
+ return titleBuilder.ToString();
+
+ //var title = s["saleAttrs"] != null ? string.Join("-", s["saleAttrs"].Select(a => a["attrValueAlias"][0].ToString())) : string.Empty;
+ //if (!string.IsNullOrEmpty(title) && title.Contains("id") && title.Contains("value"))
+ //{
+ // if (title.Contains("]-["))
+ // {
+ // title = title.Replace("]-[", "]^[");
+ // var titleArray = title.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries);
+ // StringBuilder sb = new StringBuilder();
+ // foreach (var titleStr in titleArray)
+ // {
+ // sb.Append(string.Join("", JArray.Parse(titleStr).Select(j => $"{j.Value("value")}{j.Value("unit")}")));
+ // }
+ // title = sb.ToString();
+ // }
+ // else
+ // {
+ // title = string.Join("", JArray.Parse(title).Select(j => $"{j.Value("value")}{j.Value("unit")}"));
+ // }
+ //}
+ //return title;
}
public override IList GetProductSkuList(SearchProductSkuRequest searchProductSkuRequest)
diff --git a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
index 4f6f7592..5ac3f230 100644
--- a/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
+++ b/BBWY.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs
@@ -94,9 +94,10 @@ namespace BBWY.Server.Business
.Set(po => po.SingleFirstFreight, editPurchaseOrderRequest.SingleFirstFreight)
.Set(po => po.SingleInStorageAmount, editPurchaseOrderRequest.SingleInStorageAmount)
.Set(po => po.SingleOutStorageAmount, editPurchaseOrderRequest.SingleOutStorageAmount)
- .Set(po => po.SingleRefundInStorageAmount, editPurchaseOrderRequest.SingleRefundInStorageAmount)
+ //.Set(po => po.SingleRefundInStorageAmount, editPurchaseOrderRequest.SingleRefundInStorageAmount)
.Set(po => po.SingleConsumableAmount, editPurchaseOrderRequest.SingleConsumableAmount)
- .Set(po => po.SingleStorageAmount, editPurchaseOrderRequest.SingleStorageAmount)
+ //.Set(po => po.SingleStorageAmount, editPurchaseOrderRequest.SingleStorageAmount)
+ .Set(po => po.SinglePackagingLaborAmount, editPurchaseOrderRequest.SinglePackagingLaborAmount)
.Set(po => po.SingleDeliveryFreight, editPurchaseOrderRequest.SingleDeliveryFreight)
.ExecuteAffrows();
}
@@ -244,7 +245,8 @@ namespace BBWY.Server.Business
SingleConsumableAmount = 0,
SingleDeliveryFreight = 0,
SingleFirstFreight = 0,
- SingleStorageAmount = 0,
+ SinglePackagingLaborAmount = 0,
+ //SingleStorageAmount = 0,
//SingleOperationAmount = 0,
SingleOutStorageAmount = 0,
SingleInStorageAmount = 0,
@@ -285,8 +287,8 @@ namespace BBWY.Server.Business
PurchaseOrderPKId = purchaseOrder.Id,
SkuAmount = currentOrderSkuProductAmount,
SkuId = orderSku.SkuId,
- StorageAmount = 0,
- IsEstimateCost = false
+ //StorageAmount = 0,
+ IsEstimateCost = false,
//UnitCost = purchaseOrder.UnitCost,
//TotalCost = currentOrderSkuProductAmount + currentOrderSkuFreightAmount//purchaseOrder.UnitCost * orderSku.ItemTotal.Value
};
diff --git a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
index 44fd5375..a917172d 100644
--- a/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
+++ b/BBWY.Server.Business/ServiceOrder/ServiceOrderBusiness.cs
@@ -148,7 +148,7 @@ namespace BBWY.Server.Business
dbso.FirstFreight = dbOrderCostDetail.FirstFreight;
dbso.ReissueProductAmount = dbOrderCostDetail.SkuAmount;
dbso.ReissueFreight = dbOrderCostDetail.PurchaseFreight;
- dbso.StorageAmount = dbOrderCostDetail.StorageAmount;
+ //dbso.StorageAmount = dbOrderCostDetail.StorageAmount;
dbso.InStorageAmount = dbOrderCostDetail.InStorageAmount;
dbso.OutStorageAmount = dbOrderCostDetail.OutStorageAmount;
}
diff --git a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs
index 79677e74..66ac0bf4 100644
--- a/BBWY.Server.Business/Statistics/StatisticsBusiness.cs
+++ b/BBWY.Server.Business/Statistics/StatisticsBusiness.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Net.Http.Headers;
using Yitter.IdGenerator;
namespace BBWY.Server.Business
@@ -19,11 +20,18 @@ namespace BBWY.Server.Business
private FreeSqlMultiDBManager freeSqlMultiDBManager;
private RestApiService restApiService;
+ private List filterExceptionStateList;
+
public StatisticsBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, FreeSqlMultiDBManager freeSqlMultiDBManager, RestApiService restApiService) : base(fsql, nLogManager, idGenerator)
{
invalidOrderStateList = new List() { Enums.OrderState.待付款, Enums.OrderState.已取消 };
this.freeSqlMultiDBManager = freeSqlMultiDBManager;
this.restApiService = restApiService;
+ filterExceptionStateList = new List() {
+ Enums.OrderState.等待采购,
+ Enums.OrderState.待付款,
+ Enums.OrderState.已取消
+ };
}
public OrderAchievementResponse GetOrderAchievementStatistics(OrderAchievementRequest request)
@@ -364,6 +372,8 @@ namespace BBWY.Server.Business
{
//startDate = startDate.Date;
//endDate = endDate.Date.AddDays(1).AddSeconds(-1);
+
+
var dt = DateTime.Parse("2022-05-01");
var afterDt = DateTime.Parse("2022-10-01");
var response = new OrderCountStatisticsResponse();
@@ -372,12 +382,15 @@ namespace BBWY.Server.Business
o.OrderState == Enums.OrderState.等待采购 && o.StartTime >= dt).Count();
response.ExceptionCount = fsql.Select().LeftJoin((o, oc) => o.Id == oc.OrderId)
- .Where((o, oc) => o.ShopId == shopId && o.StartTime >= dt &&
+ .Where((o, oc) => o.ShopId == shopId &&
+ o.StartTime >= dt &&
o.IsGift == false &&
- o.OrderState != Enums.OrderState.已取消 &&
- ((o.StorageType != Enums.StorageType.SD && o.StorageType != null && oc.PurchaseAmount == 0M) ||
- (o.StorageType != Enums.StorageType.SD && oc.PurchaseAmount + oc.DeliveryExpressFreight > o.OrderSellerPrice + o.FreightPrice + o.PingTaiChengDanYouHuiQuan) ||
- (o.StorageType == null && o.OrderState != Enums.OrderState.等待采购))).Count();
+ ((o.OrderState != Enums.OrderState.已取消 &&
+ o.StorageType != Enums.StorageType.SD &&
+ o.StorageType != null &&
+ (oc.PurchaseAmount == 0M || oc.Profit < 0)) ||
+ (o.StorageType == null &&
+ !filterExceptionStateList.Contains(o.OrderState)))).Count();
response.WaitOutStoreCount = fsql.Select().Where(o => o.ShopId == shopId && o.OrderState == Enums.OrderState.待出库 && o.StartTime >= dt &&
o.IsGift == false).Count();
diff --git a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs
index 79c3370e..acd8133d 100644
--- a/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/OrderEstimateCostSyncBusiness.cs
@@ -105,7 +105,8 @@ namespace BBWY.Server.Business
var singleInStorageAmount = yesocd.InStorageAmount / q;
var singleOutStorageAmount = yesocd.OutStorageAmount / q;
var singleSkuAmount = yesocd.SkuAmount / q;
- var singleStorageAmount = yesocd.StorageAmount / q;
+ //var singleStorageAmount = yesocd.StorageAmount / q;
+ var singlePackagingLaborAmount = yesocd.PackagingLaborAmount / q;
var skuRecentCost = dbSkuRecentCostList.FirstOrDefault(x => x.SkuId == yesocd.SkuId);
if (skuRecentCost != null)
@@ -117,7 +118,8 @@ namespace BBWY.Server.Business
skuRecentCost.SingleInStorageAmount != singleInStorageAmount ||
skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount ||
skuRecentCost.SingleSkuAmount != singleSkuAmount ||
- skuRecentCost.SingleStorageAmount != singleStorageAmount)
+ skuRecentCost.SinglePackagingLaborAmount != singlePackagingLaborAmount)
+ //skuRecentCost.SingleStorageAmount != singleStorageAmount)
{
skuRecentCost.UpdateTime = DateTime.Now;
var update = fsql.Update(yesocd.SkuId)
@@ -128,7 +130,8 @@ namespace BBWY.Server.Business
.SetIf(skuRecentCost.SingleInStorageAmount != singleInStorageAmount, s => s.SingleInStorageAmount, singleInStorageAmount)
.SetIf(skuRecentCost.SingleOutStorageAmount != singleOutStorageAmount, s => s.SingleOutStorageAmount, singleOutStorageAmount)
.SetIf(skuRecentCost.SingleSkuAmount != singleSkuAmount, s => s.SingleSkuAmount, singleSkuAmount)
- .SetIf(skuRecentCost.SingleStorageAmount != singleStorageAmount, s => s.SingleStorageAmount, singleStorageAmount)
+ //.SetIf(skuRecentCost.SingleStorageAmount != singleStorageAmount, s => s.SingleStorageAmount, singleStorageAmount)
+ .SetIf(skuRecentCost.SinglePackagingLaborAmount != singlePackagingLaborAmount, s => s.SinglePackagingLaborAmount, singlePackagingLaborAmount)
.Set(s => s.UpdateTime, DateTime.Now);
updateSkuRecentCostList.Add(update);
}
@@ -150,7 +153,8 @@ namespace BBWY.Server.Business
SingleInStorageAmount = singleInStorageAmount,
SingleOutStorageAmount = singleOutStorageAmount,
SingleSkuAmount = singleSkuAmount,
- SingleStorageAmount = singleStorageAmount
+ SinglePackagingLaborAmount = singlePackagingLaborAmount
+ //SingleStorageAmount = singleStorageAmount
};
insertSkuRecetCostList.Add(skuRecentCost);
}
@@ -267,13 +271,14 @@ namespace BBWY.Server.Business
{
try
{
+ var jcycStorageTypeList = new List() { Enums.StorageType.京仓, Enums.StorageType.云仓 };
var shopId = long.Parse(shop.ShopId);
var orderList = fsql.Select().Where(o => o.ShopId == shopId &&
o.ModifyTime >= startTime &&
o.ModifyTime <= endTime &&
!invalidOrderStateList.Contains(o.OrderState) &&
o.IsGift == false &&
- o.StorageType == null &&
+ (o.StorageType == null || jcycStorageTypeList.Contains(o.StorageType)) &&
!fsql.Select().Where(oc => oc.OrderId == o.Id).Any())
.ToList();
Console.WriteLine($"预估成本-{shop.ShopName},符合条件且没有成本的订单一共{orderList.Count()}个");
@@ -309,7 +314,8 @@ namespace BBWY.Server.Business
src.SingleFreight,
src.SingleInStorageAmount,
src.SingleOutStorageAmount,
- src.SingleStorageAmount
+ src.SinglePackagingLaborAmount
+ //src.SingleStorageAmount
});
foreach (var order in orderList)
{
@@ -339,7 +345,8 @@ namespace BBWY.Server.Business
PurchaseOrderPKId = 0,
SkuAmount = (osku.SingleSkuAmount * osku.ItemTotal) ?? 0M,
SkuId = osku.SkuId,
- StorageAmount = (osku.SingleStorageAmount * osku.ItemTotal) ?? 0M,
+ //StorageAmount = (osku.SingleStorageAmount * osku.ItemTotal) ?? 0M,
+ PackagingLaborAmount = (osku.SinglePackagingLaborAmount * osku.ItemTotal) ?? 0M,
IsEnabled = true,
IsEstimateCost = true
};
diff --git a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
index 6edcd567..b415c6e5 100644
--- a/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
+++ b/BBWY.Server.Business/Sync/OrderSyncBusiness.cs
@@ -99,14 +99,16 @@ namespace BBWY.Server.Business
{
try
{
- //logger.Info($"订单同步 {shop.ShopName} isAuto {isAuto}");
+ if (shop.ShopName == "创艺家居日用专营店")
+ nLogManager.Default().Info($"订单同步 {shop.ShopName} isAuto {isAuto}");
+
if (!syncOrderMethodDic.ContainsKey(shop.PlatformId))
throw new Exception("不支持的平台");
var shopId = long.Parse(shop.ShopId);
var relayAPIHost = GetPlatformRelayAPIHost(shop.PlatformId);
var orderListApiResult = restApiService.SendRequest(relayAPIHost, "api/PlatformSDK/GetOrderList", new SearchPlatformOrderRequest()
{
- StartDate = startTime ?? DateTime.Now.AddHours(shop.ShopName.Contains("腾奇") ? -0.5 : -3),
+ StartDate = startTime ?? DateTime.Now.AddHours(-3),
EndDate = endTime ?? DateTime.Now,
AppKey = shop.AppKey,
AppSecret = shop.AppSecret,
@@ -142,9 +144,9 @@ namespace BBWY.Server.Business
{
//if (fsql.Select().Where(ost => ost.ShopId == syncOrderByDateRequest.ShopId && ost.State == Enums.OrderSyncState.Running).Any())
// throw new BusinessException("存在未结束的同步任务,请稍后同步");
- //syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1);
- //if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7)
- // throw new BusinessException("同步任务时差最长7天");
+ syncOrderByDateRequest.EndTime = syncOrderByDateRequest.EndTime.Date.AddDays(1).AddSeconds(-1);
+ if ((syncOrderByDateRequest.EndTime - syncOrderByDateRequest.StartTime).Days > 7)
+ throw new BusinessException("同步任务时差最长7天");
var orderSyncTask = new OrderSyncTask()
{
@@ -886,7 +888,8 @@ namespace BBWY.Server.Business
OutStorageAmount = purchaseOrder.SingleOutStorageAmount * deductionQuantity,
PurchaseFreight = purchaseOrder.SingleFreight * deductionQuantity,
SkuAmount = purchaseOrder.SingleSkuAmount * deductionQuantity,
- StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity,
+ //StorageAmount = purchaseOrder.SingleStorageAmount * deductionQuantity,
+ PackagingLaborAmount = purchaseOrder.SinglePackagingLaborAmount * deductionQuantity,
IsEnabled = true,
IsEstimateCost = false
};
@@ -915,23 +918,27 @@ namespace BBWY.Server.Business
#endregion
#region 计算成本
- orderCost = new OrderCost()
+ //当具备订单明细成本的时候,才为其创建订单成本
+ if (insertOrderCostDetailList.Any(iocd => iocd.OrderId == orderId))
{
- OrderId = orderId,
- PlatformCommissionRatio = platformCommissionRatio,
- PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount,
- Profit = 0,
- PurchaseAmount = orderCostPurchaseAmount,
- DeliveryExpressFreight = orderDeliveryExpressFreight,
- CreateTime = DateTime.Now,
- IsEstimateCost = false
- };
- if (dbOrder.OrderTotalPrice != 0)
- orderCost.CalculationOrderProfitAndCost(dbOrder, null);
- else
- orderCost.CalculationOrderProfitAndCost(actualAmount, null);
-
- insertOrderCostList.Add(orderCost);
+ orderCost = new OrderCost()
+ {
+ OrderId = orderId,
+ PlatformCommissionRatio = platformCommissionRatio,
+ PreferentialAmount = (dbOrderTotal?.TotalPingTaiChengDanYouHuiQuan) ?? dbOrder.PreferentialAmount,
+ Profit = 0,
+ PurchaseAmount = orderCostPurchaseAmount,
+ DeliveryExpressFreight = orderDeliveryExpressFreight,
+ CreateTime = DateTime.Now,
+ IsEstimateCost = false
+ };
+ if (dbOrder.OrderTotalPrice != 0)
+ orderCost.CalculationOrderProfitAndCost(dbOrder, null);
+ else
+ orderCost.CalculationOrderProfitAndCost(actualAmount, null);
+
+ insertOrderCostList.Add(orderCost);
+ }
#endregion
}
}
@@ -1105,6 +1112,7 @@ namespace BBWY.Server.Business
public void SyncAllShopOrder()
{
var shopList = venderBusiness.GetShopList(platform: Enums.Platform.京东);
+ //var a = shopList.FirstOrDefault(s => s.ShopName == "创艺家居日用专营店");
foreach (var shop in shopList)
{
Task.Factory.StartNew(() => SyncOrder(shop, string.Empty, isAuto: true), CancellationToken.None, TaskCreationOptions.LongRunning, taskSchedulerManager.SyncOrderTaskScheduler);
diff --git a/BBWY.Server.Business/TestBusiness.cs b/BBWY.Server.Business/TestBusiness.cs
index 257ecb48..ac9fa485 100644
--- a/BBWY.Server.Business/TestBusiness.cs
+++ b/BBWY.Server.Business/TestBusiness.cs
@@ -1,19 +1,20 @@
using BBWY.Common.Http;
using BBWY.Common.Models;
+using BBWY.Server.Business.Extensions;
using BBWY.Server.Model;
using BBWY.Server.Model.Db;
using BBWY.Server.Model.Db.Mds;
using BBWY.Server.Model.Dto;
using FreeSql;
using Microsoft.Extensions.Options;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using System.Threading;
-using BBWY.Server.Business.Extensions;
-using Newtonsoft.Json;
using System.Net.Http;
+using System.Reflection;
+using System.Threading;
using System.Threading.Tasks;
namespace BBWY.Server.Business
@@ -25,6 +26,7 @@ namespace BBWY.Server.Business
private IFreeSql fsql;
private OrderSyncBusiness orderSyncBusiness;
private TaskSchedulerManager taskSchedulerManager;
+ private PurchaseOrderBusiness purchaseOrderBusiness;
public TestBusiness(RestApiService restApiService,
IOptions options,
FreeSqlMultiDBManager freeSqlMultiDBManager,
@@ -32,13 +34,15 @@ namespace BBWY.Server.Business
YunDingBusiness yunDingBusiness,
IFreeSql fsql,
OrderSyncBusiness orderSyncBusiness,
- TaskSchedulerManager taskSchedulerManager) : base(restApiService, options, yunDingBusiness)
+ TaskSchedulerManager taskSchedulerManager,
+ PurchaseOrderBusiness purchaseOrderBusiness) : base(restApiService, options, yunDingBusiness)
{
this.freeSqlMultiDBManager = freeSqlMultiDBManager;
this.venderBusiness = venderBusiness;
this.fsql = fsql;
this.orderSyncBusiness = orderSyncBusiness;
this.taskSchedulerManager = taskSchedulerManager;
+ this.purchaseOrderBusiness = purchaseOrderBusiness;
}
public void SyncVenderId()
@@ -385,6 +389,171 @@ namespace BBWY.Server.Business
if (!response.Success)
throw new BusinessException(response.Msg);
}
+
+ public void RepairDFOrder()
+ {
+ var st = DateTime.Parse("2023-11-01");
+ var et = DateTime.Parse("2023-11-30 23:59:59");
+ var list = fsql.Select()
+ .InnerJoin((o, ods, ocd) => o.Id == ods.OrderId)
+ .InnerJoin((o, ods, ocd) => o.Id == ocd.OrderId)
+ .Where((o, ods, ocd) => o.ShopId == 12897067 && o.OrderState != Enums.OrderState.已取消 && o.StartTime >= st && o.StartTime <= et && o.StorageType == Enums.StorageType.代发 && ocd.IsEnabled == true && ocd.SkuAmount == 0)
+ .ToList((o, ods, ocd) => ods.PurchaseOrderId).Distinct().ToList();
+
+ for (var i = 0; i < list.Count; i++)
+ {
+ Console.WriteLine($"{i + 1}/{list.Count()},{list[i]}");
+ var param = new { type = "ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY", data = new { orderId = list[i] } };
+ purchaseOrderBusiness.CallbackFrom1688(JsonConvert.SerializeObject(param));
+ Thread.Sleep(1000);
+ }
+ }
+
+ public void Test_20231221()
+ {
+ var invalidOrderStateList = new List() { Enums.OrderState.已取消, Enums.OrderState.待付款 };
+ var shopList = venderBusiness.GetShopList(10224131, Enums.Platform.京东);
+ var objList = new List<(string id, string shopName, DateTime sjtime, decimal? lastOrderAmount, decimal fto20SearchUv, decimal fto50SearchUv, decimal fto100SearchUv, decimal fto200SearchUv, decimal fto30SearchUv, decimal fto500SearchUv)>();
+ var result = new List() { "店铺名,SPU,上架时间,最后一单成交价,推荐访客首次到达20时的搜索访客,推荐访客首次到达50时的搜索访客,推荐访客首次到达100时的搜索访客,推荐访客首次到达200时的搜索访客,推荐访客首次到达300时的搜索访客,推荐访客首次到达50时的搜索访客" };
+ foreach (var shop in shopList)
+ {
+ Console.WriteLine(shop.ShopName);
+ var shopId = long.Parse(shop.ShopId);
+ var productList = fsql.Select().Where(p => p.ShopId == shopId).ToList();
+ var productIdList = productList.Select(p => p.Id).ToList();
+
+ var skuList = fsql.Select()
+ .InnerJoin((osku, o) => osku.OrderId == o.Id)
+ .Where((osku, o) => o.ShopId == shopId &&
+ !invalidOrderStateList.Contains(o.OrderState) &&
+ o.IsGift == false &&
+ o.StorageType != Enums.StorageType.SD &&
+ osku.Price > 0)
+ .GroupBy((osku, o) => osku.ProductId)
+ .WithTempQuery(g => new { MaxId = g.Max(g.Value.Item1.Id), ProductId = g.Key })
+ .From()
+ .InnerJoin((osku, osku1) => osku1.Id == osku.MaxId)
+ .ToList((osku, osku1) => new { osku1.ProductId, osku1.OrderId });
+ var orderIdList = skuList.Select(s => s.OrderId).Distinct().ToList();
+ var orderList = fsql.Select(orderIdList).ToList(o => new Order() { Id = o.Id, ShopId = o.ShopId, OrderTotalPrice = o.OrderTotalPrice });
+
+
+ #region 20
+ var _20list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 50)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ #region 50
+ var _50list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 50)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ #region 100
+ var _100list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 100)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ #region 200
+ var _200list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 200)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ #region 300
+ var _300list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 300)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ #region 500
+ var _500list = freeSqlMultiDBManager.JDXXfsql.Select()
+ .Where(s => productIdList.Contains(s.Spu))
+ .GroupBy(s => new { s.Spu, s.CreateTime })
+ .Having(g => g.Sum(g.Value.StarUv) >= 500)
+ .OrderBy(g => g.Value.CreateTime)
+ .ToList(g => new
+ {
+ spu = g.Key,
+ g.Value.CreateTime,
+ sumSearchUv = g.Sum(g.Value.SearchUv),
+ sumStarUv = g.Sum(g.Value.StarUv)
+ });
+
+ #endregion
+
+ foreach (var product in productList)
+ {
+ var orderTotalPrice = orderList.FirstOrDefault(o => o.Id == (skuList.FirstOrDefault(s => s.ProductId == product.Id)?.OrderId))?.OrderTotalPrice ?? 0M;
+ var shopName = shop.ShopName;
+ var sjtime = product.CreateTime;
+ var fto20SearchUv = _20list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ var fto50SearchUv = _50list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ var fto100SearchUv = _100list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ var fto200SearchUv = _200list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ var fto300SearchUv = _300list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ var fto500SearchUv = _500list.FirstOrDefault(s => s.spu.Spu == product.Id)?.sumSearchUv ?? 0M;
+ result.Add($"{shopName},{product.Id},{sjtime},{orderTotalPrice},{fto20SearchUv},{fto50SearchUv},{fto100SearchUv},{fto200SearchUv},{fto300SearchUv},{fto500SearchUv}");
+ }
+ }
+
+ System.IO.File.WriteAllLines(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "result.csv"), result, System.Text.Encoding.UTF8);
+ Console.WriteLine("结束");
+ }
+
+
}
public class JPCount
diff --git a/BBWY.Server.Business/Vender/VenderBusiness.cs b/BBWY.Server.Business/Vender/VenderBusiness.cs
index 5ad45bd3..9eb61897 100644
--- a/BBWY.Server.Business/Vender/VenderBusiness.cs
+++ b/BBWY.Server.Business/Vender/VenderBusiness.cs
@@ -293,14 +293,14 @@ namespace BBWY.Server.Business
return departmentList;
}
- public IList GetShopList(long? shopId = null, Enums.Platform? platform = null, bool filterTurnoverDays = false, bool filterSiNan = false)
+ public IList GetShopList(long? shopId = null, Enums.Platform? platform = null, bool filterTurnoverDays = false, bool filterSiNan = false, bool? isEnabled = true)
{
return freeSqlMultiDBManager.MDSfsql.Select().Where(s => !string.IsNullOrEmpty(s.ShopId))
.WhereIf(shopId != null, s => s.ShopId == shopId.ToString())
.WhereIf(platform != null, s => s.PlatformId == (int)platform)
.WhereIf(filterTurnoverDays, s => s.SkuSafeTurnoverDays != 0)
.WhereIf(filterSiNan, s => !string.IsNullOrEmpty(s.SiNanDingDingWebHook))
- .Where(s => s.IsEnabled == true)
+ .WhereIf(isEnabled != null, s => s.IsEnabled == isEnabled)
.ToList();
}
diff --git a/BBWY.Server.Model/Db/JDXX/Newskus.cs b/BBWY.Server.Model/Db/JDXX/Newskus.cs
new file mode 100644
index 00000000..3cf75553
--- /dev/null
+++ b/BBWY.Server.Model/Db/JDXX/Newskus.cs
@@ -0,0 +1,426 @@
+using FreeSql.DataAnnotations;
+using System;
+
+namespace JDXX.Model.Db
+{
+ [Table(Name = "newskus", DisableSyncStructure = true)]
+ public partial class Newskus
+ {
+
+ ///
+ /// Id
+ ///
+ [Column(StringLength = 50, IsPrimary = true, IsNullable = false)]
+ public string Id { get; set; }
+
+ ///
+ /// 加购物车数量
+ ///
+ [Column(DbType = "int")]
+ public int? AddCardCount { get; set; }
+
+ ///
+ /// 加购人数
+ ///
+ [Column(DbType = "int")]
+ public int? AddCardMember { get; set; }
+
+ ///
+ /// 加购率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? AddCardRate { get; set; }
+
+ ///
+ /// 点击次数
+ ///
+ [Column(DbType = "int")]
+ public int? ClickCount { get; set; }
+
+ ///
+ /// 点击率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ClickRate { get; set; }
+
+ ///
+ /// 栏目订单
+ ///
+ [Column(DbType = "int")]
+ public int? ColumnOrder { get; set; }
+
+ ///
+ /// 转化率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ConversionRate { get; set; }
+
+ ///
+ /// 收费流量
+ ///
+ [Column(DbType = "int")]
+ public int? CostUv { get; set; }
+
+ ///
+ /// 创建时间
+ ///
+ [Column(DbType = "datetime")]
+ public DateTime CreateTime { get; set; }
+
+ ///
+ /// 盈亏小节
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? EarningsPrice { get; set; }
+
+ ///
+ /// 曝光量
+ ///
+ [Column(DbType = "int")]
+ public int? Exposure { get; set; }
+
+ ///
+ /// 快车点击率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ExposureClickRate { get; set; }
+
+ ///
+ /// 快车点击
+ ///
+ [Column(DbType = "int")]
+ public int? ExpressClick { get; set; }
+
+ ///
+ /// 快车花费
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? ExpressCost { get; set; }
+
+ ///
+ /// 快车展现
+ ///
+
+ public decimal? ExpressExposure { get; set; }
+
+ ///
+ /// 快车订单
+ ///
+ [Column(DbType = "int")]
+ public int? ExpressOrder { get; set; }
+
+ ///
+ /// 快车成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? ExpressPayPrice { get; set; }
+
+ ///
+ /// 快车人均点击
+ ///
+ [Column(DbType = "decimal(11,4)")]
+ public decimal? ExpressPeopleClick { get; set; }
+
+ ///
+ /// 快车访客
+ ///
+ [Column(DbType = "int")]
+ public int? ExpressUv { get; set; }
+
+ ///
+ /// 免费订单
+ ///
+ [Column(DbType = "int")]
+ public int? FreeOrder { get; set; }
+
+ ///
+ /// 免费成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? FreePayPrice { get; set; }
+
+ ///
+ /// 免费流量
+ ///
+ [Column(DbType = "int")]
+ public int? FreeUv { get; set; }
+
+ ///
+ /// 首页访客
+ ///
+ [Column(DbType = "int")]
+ public int? IndexUv { get; set; }
+
+ ///
+ /// 是否收藏
+ ///
+ [Column(DbType = "tinyint")]
+ public sbyte? IsStar { get; set; }
+
+ ///
+ /// 新品交易榜单
+ ///
+ [Column(DbType = "int")]
+ public int? NewSaleTopIndex { get; set; }
+
+ ///
+ /// 新品人气榜单
+ ///
+ [Column(DbType = "int")]
+ public int? NewUvTopIndex { get; set; }
+
+ ///
+ /// 一级类目
+ ///
+ [Column(StringLength = 50)]
+ public string OneCatId { get; set; }
+
+ ///
+ /// 其他订单
+ ///
+ [Column(DbType = "int")]
+ public int? OtherOrder { get; set; }
+
+ ///
+ /// 其他成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? OtherPrice { get; set; }
+
+ ///
+ /// 其他访客
+ ///
+ [Column(DbType = "int")]
+ public int? OtherUv { get; set; }
+
+ ///
+ /// 流量路径
+ ///
+ [Column(StringLength = -2)]
+ public string PathList { get; set; }
+
+ ///
+ /// 下单商品件数
+ ///
+ [Column(DbType = "int")]
+ public int? PayItemCount { get; set; }
+
+ ///
+ /// 下单客户数
+ ///
+ [Column(DbType = "int")]
+ public int? PayMember { get; set; }
+
+ ///
+ /// 下单数
+ ///
+ [Column(DbType = "int")]
+ public int? PayOrder { get; set; }
+
+ ///
+ /// 下单金额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? PayPrice { get; set; }
+
+ ///
+ /// 下单转化率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? PayRate { get; set; }
+
+ ///
+ /// 毛利
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? Profits { get; set; }
+
+ ///
+ /// 流量
+ ///
+ [Column(DbType = "int")]
+ public int? Pv { get; set; }
+
+ ///
+ /// 真实转化率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? RealConversionRate { get; set; }
+
+ ///
+ /// 真实成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? RealPrice { get; set; }
+
+ ///
+ /// 成交客户数
+ ///
+ [Column(DbType = "int")]
+ public int? SaleMember { get; set; }
+
+ ///
+ /// 成交金额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? SalePrice { get; set; }
+
+ ///
+ /// 成交转化率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? SaleRate { get; set; }
+
+ ///
+ /// 成交件数
+ ///
+ [Column(DbType = "int")]
+ public int? Sales { get; set; }
+
+ ///
+ /// 交易榜单排名
+ ///
+ [Column(DbType = "int")]
+ public int? SaleTopIndex { get; set; }
+
+ ///
+ /// 风向标
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ScoreRank { get; set; }
+
+ ///
+ /// 刷单花费
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? SdCost { get; set; }
+
+ ///
+ /// 刷单单量
+ ///
+ [Column(DbType = "int")]
+ public int? SdOrder { get; set; }
+
+ ///
+ /// 刷单成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? SdPrice { get; set; }
+
+ ///
+ /// 搜索访客
+ ///
+ [Column(DbType = "int")]
+ public int? SearchUv { get; set; }
+
+ ///
+ /// 二级类目
+ ///
+ [Column(StringLength = 50)]
+ public string SecondCatId { get; set; }
+
+ ///
+ /// 自主订单
+ ///
+ [Column(DbType = "int")]
+ public int? SelfOrder { get; set; }
+
+ ///
+ /// 店铺ID
+ ///
+ [Column(StringLength = 50)]
+ public string ShopId { get; set; }
+
+ ///
+ /// 海投点击
+ ///
+ [Column(DbType = "int")]
+ public int? ShotgunClick { get; set; }
+
+ ///
+ /// 海投点击率
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ShotgunClickRate { get; set; }
+
+ ///
+ /// 海投花费
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? ShotgunCost { get; set; }
+
+ ///
+ /// 海投展现
+ ///
+ [Column(DbType = "decimal(11,2)")]
+ public decimal? ShotgunExposure { get; set; }
+
+ ///
+ /// 海投订单
+ ///
+ [Column(DbType = "int")]
+ public int? ShotgunOrder { get; set; }
+
+ ///
+ /// 海投成交额
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? ShotgunPayPrice { get; set; }
+
+ ///
+ /// 海投人均点击
+ ///
+ [Column(DbType = "decimal(11,4)")]
+ public decimal? ShotgunPeopleClick { get; set; }
+
+ ///
+ /// 海投访客
+ ///
+ [Column(DbType = "int")]
+ public int? ShotgunUv { get; set; }
+
+ ///
+ /// sku
+ ///
+ [Column(StringLength = 50)]
+ public string Sku { get; set; }
+
+ ///
+ /// Spu
+ ///
+ [Column(StringLength = 50)]
+ public string Spu { get; set; }
+
+ ///
+ /// 推荐访客
+ ///
+ [Column(DbType = "int")]
+ public int? StarUv { get; set; }
+
+ ///
+ /// 三级类目
+ ///
+ [Column(StringLength = 50)]
+ public string ThirdCatId { get; set; }
+
+ ///
+ /// 总花费
+ ///
+ [Column(DbType = "decimal(19,4)")]
+ public decimal? TotalCost { get; set; }
+
+ ///
+ /// 访客
+ ///
+ [Column(DbType = "int")]
+ public int? Uv { get; set; }
+
+ ///
+ /// 人气榜单排名
+ ///
+ [Column(DbType = "int")]
+ public int? UvTopIndex { get; set; }
+
+ }
+
+}
diff --git a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs
index 84f89adb..e2f4c552 100644
--- a/BBWY.Server.Model/Db/Order/OrderCostDetail.cs
+++ b/BBWY.Server.Model/Db/Order/OrderCostDetail.cs
@@ -90,11 +90,11 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal ConsumableAmount { get; set; } = 0.00M;
- ///
- /// 仓储费
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal StorageAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费
+ /////
+ //[Column(DbType = "decimal(20,2)")]
+ //public decimal StorageAmount { get; set; } = 0.00M;
[Column(DbType = "bit")]
public bool IsEnabled { get; set; } = true;
@@ -105,6 +105,12 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal SkuGrossProfit { get; set; } = 0.00M;
+ ///
+ /// 包装人工费
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal PackagingLaborAmount { get; set; } = 0.00M;
+
///
/// 总计(不含发货运费)
///
@@ -113,7 +119,7 @@ namespace BBWY.Server.Model.Db
{
get
{
- return SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + StorageAmount + ConsumableAmount;
+ return SkuAmount + PurchaseFreight + FirstFreight + InStorageAmount + OutStorageAmount + PackagingLaborAmount + ConsumableAmount;
}
}
diff --git a/BBWY.Server.Model/Db/Order/SkuRecentCost.cs b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs
index 3950d1ec..eb3cea6b 100644
--- a/BBWY.Server.Model/Db/Order/SkuRecentCost.cs
+++ b/BBWY.Server.Model/Db/Order/SkuRecentCost.cs
@@ -68,11 +68,11 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal? SingleOutStorageAmount { get; set; } = 0.00M;
- ///
- /// 退货入仓操作费(单件)
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M;
+ /////
+ ///// 退货入仓操作费(单件)
+ /////
+ //[Column(DbType = "decimal(20,2)")]
+ //public decimal? SingleRefundInStorageAmount { get; set; } = 0.00M;
///
/// SKU成本(单件)
@@ -80,15 +80,21 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal? SingleSkuAmount { get; set; }
- ///
- /// 仓储费(单件)
- ///
- [Column(DbType = "decimal(20,2)")]
- public decimal? SingleStorageAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费(单件)
+ /////
+ //[Column(DbType = "decimal(20,2)")]
+ //public decimal? SingleStorageAmount { get; set; } = 0.00M;
[Column(DbType = "datetime")]
public DateTime? UpdateTime { get; set; }
+ ///
+ /// 包装人工单价
+ ///
+ [Column(DbType = "decimal(20,2)")]
+ public decimal SinglePackagingLaborAmount { get; set; } = 0.00M;
+
}
}
diff --git a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs
index af005148..f7ddaaf5 100644
--- a/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs
+++ b/BBWY.Server.Model/Db/PurchaseOrder/PurchaseOrder.cs
@@ -17,29 +17,13 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "datetime")]
public DateTime? CreateTime { get; set; }
- ///
- /// 头程运费
- ///
- //[Column(DbType = "decimal(20,2)")]
- //public decimal FirstFreight { get; set; } = 0.00M;
-
- ///
- /// 采购运费
- ///
- //[Column(DbType = "decimal(20,2)")]
- //public decimal Freight { get; set; } = 0.00M;
-
+
///
/// 产品Id
///
[Column(StringLength = 50)]
public string ProductId { get; set; }
- ///
- /// 采购金额
- ///
- //[Column(DbType = "decimal(20,2)")]
- //public decimal PurchaseAmount { get; set; } = 0.00M;
///
/// 采购方式
@@ -106,11 +90,6 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal SingleFirstFreight { get; set; } = 0.00M;
- ///
- /// 单件操作费
- ///
- //[Column(DbType = "decimal(20,2)")]
- //public decimal SingleOperationAmount { get; set; } = 0.00M;
///
/// 单件入仓操作费
@@ -136,17 +115,23 @@ namespace BBWY.Server.Model.Db
[Column(DbType = "decimal(20,2)")]
public decimal SingleConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 单件仓储费
+ /////
+ //[Column(DbType = "decimal(20,2)")]
+ //public decimal SingleStorageAmount { get; set; } = 0.00M;
+
///
- /// 单件仓储费
+ /// 单件销售(尾程)运费(不参与均价计算)
///
[Column(DbType = "decimal(20,2)")]
- public decimal SingleStorageAmount { get; set; } = 0.00M;
+ public decimal SingleDeliveryFreight { get; set; } = 0.00M;
///
- /// 单件销售运费(不参与均价计算)
+ /// 包装人工单价
///
[Column(DbType = "decimal(20,2)")]
- public decimal SingleDeliveryFreight { get; set; } = 0.00M;
+ public decimal SinglePackagingLaborAmount { get; set; } = 0.00M;
///
@@ -157,7 +142,7 @@ namespace BBWY.Server.Model.Db
{
get
{
- return SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SingleStorageAmount;
+ return SingleSkuAmount + SingleFreight + SingleFirstFreight + SingleInStorageAmount + SingleOutStorageAmount + SingleConsumableAmount + SinglePackagingLaborAmount;
}
}
}
diff --git a/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs b/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs
index 7db49a37..8b65b12e 100644
--- a/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs
+++ b/BBWY.Server.Model/Dto/Request/Order/ManualCalculationCostRequest.cs
@@ -63,12 +63,18 @@ namespace BBWY.Server.Model.Dto
///
public decimal ConsumableAmount { get; set; } = 0.00M;
+ /////
+ ///// 仓储费
+ /////
+ //public decimal StorageAmount { get; set; } = 0.00M;
+
///
- /// 仓储费
+ /// 打包费
///
- public decimal StorageAmount { get; set; } = 0.00M;
+ public decimal PackagingLaborAmount { get; set; } = 0.00M;
+
- public decimal TotalCost { get; set; } = 0M;
+ public decimal TotalCost { get; set; } = 0M;
public decimal UnitCost { get; set; } = 0M;
}
diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs
index e1721e81..0f635a21 100644
--- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs
+++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/AddPurchaseOrderRequest.cs
@@ -60,13 +60,13 @@
///
public decimal SingleConsumableAmount { get; set; } = 0.00M;
- ///
- /// 单件仓储费
- ///
- public decimal SingleStorageAmount { get; set; }
+ /////
+ ///// 单件仓储费
+ /////
+ //public decimal SingleStorageAmount { get; set; }
///
- /// 单件销售运费(不参与均价计算)
+ /// 单件尾程销售运费(不参与均价计算)
///
public decimal SingleDeliveryFreight { get; set; }
@@ -82,8 +82,13 @@
public decimal SingleOutStorageAmount { get; set; } = 0.00M;
///
- /// 退货入仓操作费
+ /// 单间包装人工费
///
- public decimal SingleRefundInStorageAmount { get; set; } = 0.00M;
+ public decimal SinglePackagingLaborAmount { get; set; } = 0.00M;
+
+ /////
+ ///// 退货入仓操作费
+ /////
+ //public decimal SingleRefundInStorageAmount { get; set; } = 0.00M;
}
}
diff --git a/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs b/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs
index 1c021027..a12e0ca5 100644
--- a/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs
+++ b/BBWY.Server.Model/Dto/Request/PurchaseOrder/EditPurchaseOrderRequest.cs
@@ -34,13 +34,13 @@
///
public decimal SingleConsumableAmount { get; set; } = 0.00M;
- ///
- /// 单件仓储费
- ///
- public decimal SingleStorageAmount { get; set; } = 0.00M;
+ /////
+ ///// 单件仓储费
+ /////
+ //public decimal SingleStorageAmount { get; set; } = 0.00M;
///
- /// 单件销售运费(不参与均价计算)
+ /// 单件尾程销售运费(不参与均价计算)
///
public decimal SingleDeliveryFreight { get; set; } = 0.00M;
@@ -56,8 +56,13 @@
public decimal SingleOutStorageAmount { get; set; } = 0.00M;
///
- /// 退货入仓费
+ /// 单间包装人工费
///
- public decimal SingleRefundInStorageAmount { get; set; } = 0.00M;
+ public decimal SinglePackagingLaborAmount { get; set; } = 0.00M;
+
+ /////
+ ///// 退货入仓费
+ /////
+ //public decimal SingleRefundInStorageAmount { get; set; } = 0.00M;
}
}
\ No newline at end of file
diff --git a/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs b/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs
index 2cdae37c..b0bf323b 100644
--- a/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs
+++ b/BBWY.Server.Model/Dto/Response/BillCorrection/BillCorrectionOrderResponse.cs
@@ -61,6 +61,8 @@ namespace BBWY.Server.Model.Dto
///
public decimal ConsumableAmount { get; set; } = 0.00M;
+ public decimal PackagingLaborAmount { get; set; } = 0.00M;
+
///
/// 仓储费
///
diff --git a/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs b/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs
index 2ace70b3..d92d8ee4 100644
--- a/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs
+++ b/BBWY.Server.Model/Dto/Response/Order/ExportOrderResponse.cs
@@ -32,11 +32,6 @@ namespace BBWY.Server.Model.Dto
///
public decimal FirstFreight { get; set; }
- ///
- /// 仓储费
- ///
- public decimal StorageAmount { get; set; }
-
///
/// 发货快递费
///
@@ -94,6 +89,11 @@ namespace BBWY.Server.Model.Dto
///
public decimal ConsumableAmount { get; set; }
+ ///
+ /// 人工打包费
+ ///
+ public decimal PackagingLaborAmount { get; set; }
+
///
/// 入仓操作费
///
diff --git a/BBWY.Test/Program.cs b/BBWY.Test/Program.cs
index af0464aa..eec7bc71 100644
--- a/BBWY.Test/Program.cs
+++ b/BBWY.Test/Program.cs
@@ -68,49 +68,51 @@ namespace BBWY.Test
//var token = "50a4c0f5c55848b5a8a715709e8d6fe0jntb"; //卿卿玩具专营店
var fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "data source=rm-bp1508okrh23710yfao.mysql.rds.aliyuncs.com;port=3306;user id=qyroot;password=kaicn1132+-;initial catalog=bbwy_test;charset=utf8;sslmode=none;").Build();
- var sercvice = new ServiceCollection();
- sercvice.AddHttpClient();
- var servicePriovder = sercvice.BuildServiceProvider();
- var restApiService = new Common.Http.RestApiService(servicePriovder.GetRequiredService());
+ //var sercvice = new ServiceCollection();
+ //sercvice.AddHttpClient();
+ //var servicePriovder = sercvice.BuildServiceProvider();
+ //var restApiService = new Common.Http.RestApiService(servicePriovder.GetRequiredService());
+
+ //var files = System.IO.Directory.GetFiles(@"C:\Users\pengcong001\Desktop\bbwylog");
+ //var startTime = DateTime.Parse("2023-10-16");
+ //var endTime = DateTime.Parse("2023-11-22");
+ //foreach (var file in files)
+ //{
+ // var fileName = file.Substring(file.LastIndexOf("\\") + 1);
+ // Console.WriteLine(file);
+
+ // var lines = System.IO.File.ReadAllLines(file);
+ // var priceModifyMsgList = lines.Where(l => !string.IsNullOrEmpty(l) && l.Contains("ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY")).ToList();
+ // var orderIndex = 0;
+ // foreach (var priceModifyMsg in priceModifyMsgList)
+ // {
+ // orderIndex++;
+ // var poId = JObject.Parse(priceModifyMsg)["data"]["orderId"].ToString();
+ // var orderDropshipping = fsql.Select().Where(o => o.PurchaseOrderId == poId).ToOne();
+ // if (orderDropshipping == null)
+ // continue;
+ // var orderId = orderDropshipping.OrderId;
+ // var shopId = orderDropshipping.ShopId;
+
+ // var result = restApiService.SendRequest("http://bbwytest.qiyue666.com/", "api/test/RepairSkuDetailAndSkuGriooProfit", new
+ // {
+ // StartTime = startTime,
+ // EndTime = endTime,
+ // ShopId = shopId,
+ // OrderId = orderId,
+ // OrderIdList = new List()
+ // }, null, HttpMethod.Post);
+ // Console.WriteLine($"{DateTime.Now} {fileName} {orderIndex}/{priceModifyMsgList.Count()} HttpResult{result.StatusCode}");
+ // Thread.Sleep(2000);
+ // }
+ // try
+ // {
+ // System.IO.File.Delete(file);
+ // }
+ // catch { }
+ //}
+
- var files = System.IO.Directory.GetFiles(@"C:\Users\pengcong001\Desktop\bbwylog");
- var startTime = DateTime.Parse("2023-10-16");
- var endTime = DateTime.Parse("2023-11-22");
- foreach (var file in files)
- {
- var fileName = file.Substring(file.LastIndexOf("\\") + 1);
- Console.WriteLine(file);
-
- var lines = System.IO.File.ReadAllLines(file);
- var priceModifyMsgList = lines.Where(l => !string.IsNullOrEmpty(l) && l.Contains("ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY")).ToList();
- var orderIndex = 0;
- foreach (var priceModifyMsg in priceModifyMsgList)
- {
- orderIndex++;
- var poId = JObject.Parse(priceModifyMsg)["data"]["orderId"].ToString();
- var orderDropshipping = fsql.Select().Where(o => o.PurchaseOrderId == poId).ToOne();
- if (orderDropshipping == null)
- continue;
- var orderId = orderDropshipping.OrderId;
- var shopId = orderDropshipping.ShopId;
-
- var result = restApiService.SendRequest("http://bbwytest.qiyue666.com/", "api/test/RepairSkuDetailAndSkuGriooProfit", new
- {
- StartTime = startTime,
- EndTime = endTime,
- ShopId = shopId,
- OrderId = orderId,
- OrderIdList = new List()
- }, null, HttpMethod.Post);
- Console.WriteLine($"{DateTime.Now} {fileName} {orderIndex}/{priceModifyMsgList.Count()} HttpResult{result.StatusCode}");
- Thread.Sleep(2000);
- }
- try
- {
- System.IO.File.Delete(file);
- }
- catch { }
- }