|
|
@ -21,6 +21,7 @@ using TaskJob.Interfaces; |
|
|
|
using Volo.Abp.Application.Services; |
|
|
|
using Volo.Abp.DependencyInjection; |
|
|
|
using Volo.Abp.Domain.Entities; |
|
|
|
using Volo.Abp.Emailing; |
|
|
|
using Volo.Abp.Uow; |
|
|
|
using Win.Sfs.SettleAccount.Constant; |
|
|
|
using Win.Sfs.SettleAccount.Entities.BQ.Vmi; |
|
|
@ -33,12 +34,16 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
|
|
|
|
protected readonly SettleAccountDbContext _dbcontext; |
|
|
|
|
|
|
|
private readonly IEmailSender _emailSender; |
|
|
|
|
|
|
|
public PendingDeductionService( |
|
|
|
SettleAccountDbContext dbcontext |
|
|
|
SettleAccountDbContext dbcontext, |
|
|
|
|
|
|
|
|
|
|
|
IEmailSender emailSender |
|
|
|
) |
|
|
|
{ |
|
|
|
_emailSender = emailSender; |
|
|
|
_dbcontext = dbcontext; |
|
|
|
|
|
|
|
} |
|
|
@ -49,6 +54,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
var billList = property.Where(p => p.Name == "BillNumList").FirstOrDefault().Value; |
|
|
|
var type = property.Where(p => p.Name == "Type").FirstOrDefault().Value; |
|
|
|
var isout = property.Where(p => p.Name == "IsOut").FirstOrDefault().Value; |
|
|
|
var email = property.Where(p => p.Name == "CurrentUserEmail").FirstOrDefault().Value; |
|
|
|
var list = billList.Split(","); |
|
|
|
var projectList = _dbcontext.Set<CodeSetting>().Where(p => p.Project == "库位"); |
|
|
|
|
|
|
@ -76,7 +82,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC顺义").Description; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(jisdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); |
|
|
|
Sync(jisdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); |
|
|
|
} |
|
|
|
//
|
|
|
|
var mdetail = _dbcontext.Set<BBAC_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianBBAC);//买单件
|
|
|
@ -93,7 +99,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "JisBBAC顺义").Description; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); |
|
|
|
Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); |
|
|
|
} |
|
|
|
|
|
|
|
var detailist1 = _dbcontext.Set<PUB_PD_DETAIL>().Where(p => list.Contains(p.BillNum) ).ToList(); |
|
|
@ -112,7 +118,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "ZhiGongJianBBAC顺义").Description; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(zgbbaclist, EnumDeliverBjBmpBillType.JIT直供件, isout == "out" ? true : false); |
|
|
|
Sync(zgbbaclist, EnumDeliverBjBmpBillType.JIT直供件,email, isout == "out" ? true : false); |
|
|
|
var ydlist = detailist1.Where(p => p.BusinessType == EnumBusinessType.YinDuJian).ToList(); |
|
|
|
if (ydlist.Count > 0) |
|
|
|
{ |
|
|
@ -123,7 +129,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "YinDuJian").Description; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(ydlist, EnumDeliverBjBmpBillType.印度件, isout == "out" ? true : false); |
|
|
|
Sync(ydlist, EnumDeliverBjBmpBillType.印度件, email,isout == "out" ? true : false); |
|
|
|
} |
|
|
|
var bjlist = detailist1.Where(p => p.BusinessType == EnumBusinessType.BeiJian).ToList(); |
|
|
|
if (bjlist.Count > 0) |
|
|
@ -135,12 +141,8 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = projectList.FirstOrDefault(p => p.Value == "BeiJian").Description; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(bjlist, EnumDeliverBjBmpBillType.北汽4S备件, isout == "out" ? true : false); |
|
|
|
Sync(bjlist, EnumDeliverBjBmpBillType.北汽4S备件,email ,isout == "out" ? true : false); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
else if (type == "JisHBPO" || type == "ZhiGongJianHBPO" || type == "MaiDanJianHBPO") |
|
|
@ -153,7 +155,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = "CC017"; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(detailist, EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); |
|
|
|
Sync(detailist, EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); |
|
|
|
var mdetail = _dbcontext.Set<HBPO_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianHBPO);//买单件
|
|
|
|
foreach (var itm in mdetail) |
|
|
|
{ |
|
|
@ -162,7 +164,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = "CC017"; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件, isout == "out" ? true : false); |
|
|
|
Sync(mdetail.ToList(), EnumDeliverBjBmpBillType.JIS件,email ,isout == "out" ? true : false); |
|
|
|
var detailist1 = _dbcontext.Set<PUB_PD_DETAIL>().Where(p => list.Contains(p.BillNum)).ToList(); |
|
|
|
var zgbbaclist = detailist1.Where(p => p.BusinessType == EnumBusinessType.ZhiGongJianHBPO).ToList(); |
|
|
|
foreach (var itm in zgbbaclist) |
|
|
@ -172,28 +174,28 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
itm.Extend2 = "CC017"; |
|
|
|
} |
|
|
|
} |
|
|
|
Sync(detailist, EnumDeliverBjBmpBillType.JIT直供件, isout == "out" ? true : false); |
|
|
|
Sync(detailist, EnumDeliverBjBmpBillType.JIT直供件,email,isout == "out" ? true : false); |
|
|
|
} |
|
|
|
|
|
|
|
return id.ToString(); |
|
|
|
} |
|
|
|
public List<T> GetPagedData<T>(List<T> dataList, int pageNumber, int pageSize) |
|
|
|
{ |
|
|
|
int startIndex = (pageNumber - 1) * pageSize; |
|
|
|
//public List<T> GetPagedData<T>(List<T> dataList, int pageNumber, int pageSize)
|
|
|
|
//{
|
|
|
|
// int startIndex = (pageNumber - 1) * pageSize;
|
|
|
|
|
|
|
|
return dataList.Skip(startIndex).Take(pageSize).ToList(); |
|
|
|
} |
|
|
|
public int CalculatePageCount(int totalCount, int pageSize) |
|
|
|
{ |
|
|
|
int pageCount = totalCount / pageSize; |
|
|
|
if (totalCount % pageSize != 0) |
|
|
|
{ |
|
|
|
pageCount += 1; |
|
|
|
} |
|
|
|
return pageCount; |
|
|
|
} |
|
|
|
// return dataList.Skip(startIndex).Take(pageSize).ToList();
|
|
|
|
//}
|
|
|
|
//public int CalculatePageCount(int totalCount, int pageSize)
|
|
|
|
//{
|
|
|
|
// int pageCount = totalCount / pageSize;
|
|
|
|
// if (totalCount % pageSize != 0)
|
|
|
|
// {
|
|
|
|
// pageCount += 1;
|
|
|
|
// }
|
|
|
|
// return pageCount;
|
|
|
|
//}
|
|
|
|
|
|
|
|
public void Sync<T>(List<T> p_ls, EnumDeliverBjBmpBillType bussinessType, bool flag=true) where T : PD_BASE,new() |
|
|
|
public void Sync<T>(List<T> p_ls, EnumDeliverBjBmpBillType bussinessType,string p_email ,bool flag=true) where T : PD_BASE,new() |
|
|
|
{ |
|
|
|
var query = from itm in p_ls |
|
|
|
select new VmiLog() |
|
|
@ -218,8 +220,6 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
ErpToLoc = itm.Extend2, //寄售库
|
|
|
|
}; |
|
|
|
var ls = query.ToList(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (var itm in ls) |
|
|
|
{ |
|
|
|
itm.SetId(GuidGenerator.Create()); |
|
|
@ -232,11 +232,7 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
// 执行批量数据操作
|
|
|
|
if (ls != null && ls.Count > 0) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
var messagelist = new List<VmiMessage>(); |
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in ls) |
|
|
|
{ |
|
|
|
var message = new VmiMessage |
|
|
@ -245,41 +241,127 @@ public class PendingDeductionService : ApplicationService, ITransientDependency, |
|
|
|
}; |
|
|
|
messagelist.Add(message); |
|
|
|
} |
|
|
|
|
|
|
|
_dbcontext.BulkInsert(messagelist); |
|
|
|
_dbcontext.BulkInsert(ls, new BulkConfig() { }); |
|
|
|
var billList = p_ls.Select(p => p.BillNum).Distinct().ToList(); |
|
|
|
var pdList = _dbcontext.Set<PUB_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (pdList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in pdList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(pdList); |
|
|
|
} |
|
|
|
var bbacList = _dbcontext.Set<BBAC_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (bbacList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in bbacList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(bbacList); |
|
|
|
} |
|
|
|
var hbpoList = _dbcontext.Set<HBPO_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (hbpoList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in hbpoList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(hbpoList); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var count = CalculatePageCount(ls.Count, 2000);
|
|
|
|
//for (int pagenumber = 0; pagenumber < count; pagenumber++)
|
|
|
|
//{
|
|
|
|
// var lst = GetPagedData(ls, pagenumber++, 2000);
|
|
|
|
// var messagelist= new List<VmiMessage>();
|
|
|
|
// foreach (var item in lst)
|
|
|
|
// {
|
|
|
|
// var message = new VmiMessage
|
|
|
|
// {
|
|
|
|
// Message = System.Text.Json.JsonSerializer.Serialize(item),
|
|
|
|
// };
|
|
|
|
// messagelist.Add(message);
|
|
|
|
// }
|
|
|
|
// _dbcontext.BulkInsert(messagelist);
|
|
|
|
// _dbcontext.BulkInsert(lst,new BulkConfig() { });
|
|
|
|
// Task.Delay(500);
|
|
|
|
//}
|
|
|
|
} |
|
|
|
// _emailSender.SendAsync(e)
|
|
|
|
|
|
|
|
// 提交事务
|
|
|
|
transaction.Commit(); |
|
|
|
} |
|
|
|
catch (Exception) |
|
|
|
{ |
|
|
|
var billList = p_ls.Select(p => p.BillNum).Distinct().ToList(); |
|
|
|
var pdList = _dbcontext.Set<PUB_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (pdList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in pdList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(pdList); |
|
|
|
} |
|
|
|
var bbacList = _dbcontext.Set<BBAC_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (bbacList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in bbacList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(bbacList); |
|
|
|
} |
|
|
|
var hbpoList = _dbcontext.Set<HBPO_PD>().Where(p => billList.Contains(p.BillNum)).ToList(); |
|
|
|
if (hbpoList.Count > 0) |
|
|
|
{ |
|
|
|
foreach (var item in hbpoList) |
|
|
|
{ |
|
|
|
if (flag == true) |
|
|
|
{ |
|
|
|
item.State = SettleBillState.客户已收票; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
item.State = SettleBillState.已扣减; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
_dbcontext.BulkUpdate(hbpoList); |
|
|
|
} |
|
|
|
// 回滚事务
|
|
|
|
transaction.Rollback(); |
|
|
|
throw; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|