Browse Source

修复shu举

yijia
shanji 2 years ago
parent
commit
2df5e36aba
  1. 8
      BBWYB.Server.API/Controllers/DataRepairController.cs
  2. 63
      BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs
  3. 3
      BBWYB.Server.Business/Extensions/OrderStateExtension.cs
  4. 3
      BBWYB.Server.Business/Order/OrderBusiness.cs
  5. 2
      BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs

8
BBWYB.Server.API/Controllers/DataRepairController.cs

@ -62,5 +62,13 @@ namespace BBWYB.Server.API.Controllers
[HttpPost]
public void RepairOrderState() { dataRepairBusiness.RepairOrderState(); }
[HttpPost]
public void SyncCCancelOrder()
{ dataRepairBusiness.SyncCCancelOrder(); }
[HttpPost]
public void SelectBExistsAndCNotExists()
{ dataRepairBusiness.SelectBExistsAndCNotExists(); }
}
}

63
BBWYB.Server.Business/DataRepair/DataRepairBusiness.cs

@ -14,11 +14,13 @@ namespace BBWYB.Server.Business
private KuaiDi100Manager kuaiDi100Manager;
private PurchaseSchemeBusiness purchaseSchemeBusiness;
private PurchaseOrderBusiness purchaseOrderBusiness;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness) : base(fsql, nLogManager, idGenerator)
private FreeSqlMultiDBManager freeSqlMultiDBManager;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager, PurchaseSchemeBusiness purchaseSchemeBusiness, PurchaseOrderBusiness purchaseOrderBusiness, FreeSqlMultiDBManager freeSqlMultiDBManager) : base(fsql, nLogManager, idGenerator)
{
this.kuaiDi100Manager = kuaiDi100Manager;
this.purchaseSchemeBusiness = purchaseSchemeBusiness;
this.purchaseOrderBusiness = purchaseOrderBusiness;
this.freeSqlMultiDBManager = freeSqlMultiDBManager;
}
@ -282,17 +284,50 @@ namespace BBWYB.Server.Business
public void RepairOrderState()
{
var orderStateList = new List<Enums.OrderState?>() { Enums.OrderState., Enums.OrderState., Enums.OrderState., Enums.OrderState., Enums.OrderState., Enums.OrderState. };
var orderList = fsql.Select<Order>().Where(o => orderStateList.Contains(o.OrderState)).ToList();
var orderStateList = new List<Enums.OrderState?>() { Enums.OrderState., Enums.OrderState. };
var orderList = fsql.Select<Order>().Where(o => orderStateList.Contains(o.OrderState)).OrderByDescending(o => o.StartTime).ToList();
var orderIdLIst = orderList.Select(o => o.Id).ToList();
var orderSkuList = fsql.Select<OrderSku>().Where(osku => orderIdLIst.Contains(osku.OrderId)).ToList();
var poList = fsql.Select<OrderPurchaseInfo>().Where(opi => orderIdLIst.Contains(opi.OrderId) && opi.IsEnabled == true).ToList();
var purchaseExpressOrderList = fsql.Select<ExpressOrderRelationInfo, PurchaseExpressOrder>()
.InnerJoin((eori, peo) => eori.WayBillNo == peo.WaybillNo)
.Where((eori, peo) => orderIdLIst.Contains(eori.OrderId)).ToList((eori, peo) => new PurchaseExpressOrder
{
CreateTime = peo.CreateTime,
ExpressContent = peo.ExpressContent,
ExpressChangedTime = peo.ExpressChangedTime,
ExpressState = peo.ExpressState,
IsSubscribeKD100 = peo.IsSubscribeKD100,
OrderId = eori.OrderId,
PurchaseOrderId = eori.PurchaseOrderId,
ShopId = eori.ShopId.Value,
SourceExpressId = peo.SourceExpressId,
SourceExpressName = peo.SourceExpressName,
TargetExpressId = peo.TargetExpressId,
TargetExpressName = peo.TargetExpressName,
WaybillNo = peo.WaybillNo
});
var updateOrderQueue = new Queue<IUpdate<Order>>();
foreach (var order in orderList)
{
if (order.IntoStoreType == null)
order.IntoStoreType = Enums.IntoStoreType.;
var oskuList = orderSkuList.Where(osku => osku.OrderId == order.Id).ToList();
var polist1 = poList.Where(p => p.OrderId == order.Id).ToList();
foreach (var po in polist1)
{
if (po.OrderState == null)
{
var peoList = purchaseExpressOrderList.Where(peo => peo.OrderId == po.OrderId && po.PurchaseOrderId == po.PurchaseOrderId).ToList();
if (peoList.Count() > 0 && peoList.Count(peo => peo.ExpressState == "QianShou") == peoList.Count())
{
po.OrderState = Enums.PurchaseOrderState.;
}
}
}
var oldState = order.OrderState;
order.CalculationOrderState(fsql, oskuList, polist1);
if (oldState != order.OrderState)
@ -333,10 +368,30 @@ namespace BBWYB.Server.Business
updateOrderList.Clear();
Console.WriteLine($"最后执行数据库 {DateTime.Now}");
}
}
public void SyncCCancelOrder()
{
var c_cancel_orderlist = freeSqlMultiDBManager.BBWYCfsql.Select<Model.Db.BBWY.PurchaseOrderV2>().Where(p => p.OrderState == Enums.OrderState.).ToList();
var c_cancel_orderIdlist = c_cancel_orderlist.Select(p => p.Id).ToList();
if (c_cancel_orderIdlist.Count() > 0)
{
fsql.Transaction(() =>
{
fsql.Update<Order>(c_cancel_orderIdlist).Set(o => o.OrderState, Enums.OrderState.).ExecuteAffrows();
});
}
}
public void SelectBExistsAndCNotExists()
{
var cIds = freeSqlMultiDBManager.BBWYCfsql.Select<Model.Db.BBWY.PurchaseOrderV2>().OrderByDescending(p => p.Id).ToList(p => p.Id);
var bIds = fsql.Select<Order>().OrderByDescending(o => o.Id).ToList(o => o.Id);
var bexceptIdList = bIds.Except(cIds).ToList();
var cexceptIdList = cIds.Except(bIds).ToList();
Console.WriteLine($"B端在而C端不在的数量有 {bexceptIdList.Count()}");
Console.WriteLine($"C端在而B端不在的数量有 {cexceptIdList.Count()}");
}
}
}

3
BBWYB.Server.Business/Extensions/OrderStateExtension.cs

@ -21,8 +21,7 @@ namespace BBWYB.Server.Business
IList<OrderPurchaseInfo> orderPurchaseInfoList = null)
{
if (order.OrderState == Enums.OrderState. ||
order.OrderState == Enums.OrderState. ||
order.OrderState == Enums.OrderState.)
order.OrderState == Enums.OrderState.) //order.OrderState == Enums.OrderState.待付款
return;
if (orderSkuList == null)

3
BBWYB.Server.Business/Order/OrderBusiness.cs

@ -12,6 +12,7 @@ using Newtonsoft.Json;
using SDKAdapter;
using SDKAdapter.OperationPlatform.Client;
using SDKAdapter.OperationPlatform.Models;
using System.Collections.Concurrent;
using System.Linq.Expressions;
using System.Security.Cryptography;
using Yitter.IdGenerator;
@ -550,7 +551,7 @@ namespace BBWYB.Server.Business
}
catch
{
}
//var sql = $"update purchaseorderv2 set OrderState=6 where Id='{request.OrderId}'";

2
BBWYB.Server.Model/Db/BBWY/PurchaseOrderV2.cs

@ -116,7 +116,7 @@ namespace BBWYB.Server.Model.Db.BBWY
/// 采购单状态(待付款=0,待发货=1,待收货=2,待质检=3,待打包=4,待结算=5,已完成=6)
/// </summary>
[Column(MapType = typeof(int?))]
public Enums.PurchaseOrderState? OrderState { get; set; }
public Enums.OrderState? OrderState { get; set; }
/// <summary>
/// 支付时间

Loading…
Cancel
Save