diff --git a/BBWYB.Server.API/Controllers/DataRepairController.cs b/BBWYB.Server.API/Controllers/DataRepairController.cs
index 4581b91..47ab484 100644
--- a/BBWYB.Server.API/Controllers/DataRepairController.cs
+++ b/BBWYB.Server.API/Controllers/DataRepairController.cs
@@ -20,6 +20,12 @@ namespace BBWYB.Server.API.Controllers
dataRepairBusiness.RepairPurchaseExpressOrder();
}
+ [HttpPost]
+ public void ClearCancelOrderData()
+ {
+ dataRepairBusiness.ClearCancelOrderData();
+ }
+
///
/// 手动订阅快递100
///
diff --git a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
index 205657e..8931e91 100644
--- a/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
+++ b/BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
@@ -16,6 +16,8 @@ namespace BBWYB.Server.Business
public void RepairPurchaseExpressOrder()
{
+
+ #region 修复快递单
var purchaseExpressOrderList = fsql.Select().Where(peo => !string.IsNullOrEmpty(peo.PurchaseOrderId)).ToList();
var wayBillNos = purchaseExpressOrderList.Select(peo => peo.WaybillNo).ToList();
var relationList = fsql.Select().Where(eori => wayBillNos.Contains(eori.WayBillNo)).ToList();
@@ -40,6 +42,35 @@ namespace BBWYB.Server.Business
{
fsql.Insert(insertExpressOrderRelationInfoList).ExecuteAffrows();
});
+ #endregion
+ }
+
+ ///
+ /// 批量清理取消单数据
+ ///
+ public void ClearCancelOrderData()
+ {
+ var cancelOrderList = fsql.Select().Where(o => o.OrderState == Model.Enums.OrderState.已取消).ToList();
+ var cancelOrderIds = cancelOrderList.Select(o => o.Id);
+
+ //var noUsingExpressOrderList = fsql.Select().Where(peo => !fsql.Select()
+ // .As("b")
+ // .ToList(b => b.WayBillNo)
+ // .Contains(peo.WaybillNo))
+ // .ToList();
+
+
+ /*
+ select * from purchaseexpressorder peo where not exists (select r.waybillno from expressorderrelationinfo r where peo.WaybillNo=r.WaybillNo);
+ */
+ fsql.Transaction(() =>
+ {
+ fsql.Delete().Where(opi => cancelOrderIds.Contains(opi.OrderId)).ExecuteAffrows();
+ fsql.Delete().Where(posku => cancelOrderIds.Contains(posku.OrderId)).ExecuteAffrows();
+ fsql.Delete().Where(opri => cancelOrderIds.Contains(opri.OrderId)).ExecuteAffrows();
+ fsql.Delete().Where(oc => cancelOrderIds.Contains(oc.OrderId)).ExecuteAffrows();
+ fsql.Delete().Where(ocd => cancelOrderIds.Contains(ocd.OrderId)).ExecuteAffrows();
+ });
}
public void SubscribeKD100(string waybillNo, string targetCompanyCode)