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)