You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.1 KiB

2 years ago
using BBWYB.Common.Log;
using BBWYB.Common.Models;
using BBWYB.Server.Model.Db;
using FreeSql;
using Yitter.IdGenerator;
namespace BBWYB.Server.Business
{
public class DataRepairBusiness : BaseBusiness, IDenpendency
{
private KuaiDi100Manager kuaiDi100Manager;
public DataRepairBusiness(IFreeSql fsql, NLogManager nLogManager, IIdGenerator idGenerator, KuaiDi100Manager kuaiDi100Manager) : base(fsql, nLogManager, idGenerator)
2 years ago
{
this.kuaiDi100Manager = kuaiDi100Manager;
2 years ago
}
public void RepairPurchaseExpressOrder()
{
var purchaseExpressOrderList = fsql.Select<PurchaseExpressOrder>().Where(peo => !string.IsNullOrEmpty(peo.PurchaseOrderId)).ToList();
var wayBillNos = purchaseExpressOrderList.Select(peo => peo.WaybillNo).ToList();
var relationList = fsql.Select<ExpressOrderRelationInfo>().Where(eori => wayBillNos.Contains(eori.WayBillNo)).ToList();
List<ExpressOrderRelationInfo> insertExpressOrderRelationInfoList = new List<ExpressOrderRelationInfo>();
foreach (var peo in purchaseExpressOrderList)
{
var relation = relationList.FirstOrDefault(r => r.WayBillNo == peo.WaybillNo && r.PurchaseOrderId == peo.PurchaseOrderId);
if (relation != null)
continue;
insertExpressOrderRelationInfoList.Add(new ExpressOrderRelationInfo()
{
Id = idGenerator.NewLong(),
CreateTime = DateTime.Now,
OrderId = peo.OrderId,
PurchaseOrderId = peo.PurchaseOrderId,
ShopId = peo.ShopId,
WayBillNo = peo.WaybillNo
});
}
fsql.Transaction(() =>
{
fsql.Insert(insertExpressOrderRelationInfoList).ExecuteAffrows();
});
2 years ago
}
public void SubscribeKD100(string waybillNo, string targetCompanyCode)
{
kuaiDi100Manager.SubscribeKuaiDi100(waybillNo, targetCompanyCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish");
}
2 years ago
}
}