Browse Source

更新代码

master
学 赵 1 year ago
parent
commit
5f46c42938
  1. 11
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_PD_SERVICE.cs
  2. 192
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs
  3. 16
      code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs
  4. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs
  5. 9
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_SE_EDI.cs
  6. 1
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs
  7. 1
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs
  8. 17
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
  9. 4
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
  10. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/VmiLog.cs
  11. 12
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Code/CodeSettingRepository.cs
  12. 1
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/PendingDeduction/PendingDeductionDapperRepository.cs

11
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_PD_SERVICE.cs

@ -20,6 +20,7 @@ using Win.Sfs.SettleAccount.Entities.BQ.Syncs;
using Win.Sfs.SettleAccount.Entities.BQ.Vmi;
using Win.Sfs.Shared.RepositoryBase;
using Win.Sfs.SettleAccount.Entities.TaskJobs;
using Volo.Abp.Uow;
namespace Win.Sfs.SettleAccount.Entities.BQ
{
@ -43,24 +44,18 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
_service = service;
}
public override async Task<string> ApprovalPassed(List<string> p_list)
{
var detailist = _detailRepository.Where(p => p_list.Contains(p.BillNum)).ToList();
List<CustomCondition> customConditionList = new List<CustomCondition>();
customConditionList.Add(new CustomCondition() { Name = "BillNumList", Value =string.Join(",",p_list) });
customConditionList.Add(new CustomCondition() { Name = "Type", Value = EnumBusinessType.JisBBAC.ToString() });
customConditionList.Add(new CustomCondition() { Name = "IsOut", Value ="out"});
var _taskid = await _service.ExportEnqueueAsync("BBAC待扣减任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyyMM"), string.Empty, CurrentUser, typeof(PendingDeductionService), customConditionList, (rs) =>
{
});
return _taskid;
}
}
}

192
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/PendingDeductionService.cs

@ -8,123 +8,62 @@ using System.Threading.Tasks;
using EFCore.BulkExtensions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Nito.AsyncEx;
using NPOI.SS.Formula.Functions;
using SettleAccount.Bases;
using SettleAccount.Domain.BQ;
using TaskJob.EventArgs;
using TaskJob.Interfaces;
using Volo.Abp.Application.Services;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Uow;
using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ.Vmi;
using Win.Sfs.SettleAccount.Entities.CodeSettings;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ.Syncs;
public class PendingDeductionService : ITransientDependency, IExportJob
public class PendingDeductionService : ApplicationService, ITransientDependency, IExportJob
{
protected readonly VmiAppService _vimservice;
protected readonly INormalEfCoreRepository<BBAC_SEC_DETAIL, Guid> _bbacSecRepository;
protected readonly INormalEfCoreRepository<HBPO_SEC_DETAIL, Guid> _hbpoSecRepository;
protected readonly INormalEfCoreRepository<PUB_SEC_DETAIL, Guid> _pubSecRepository;
protected readonly INormalEfCoreRepository<BBAC_PD_DETAIL, Guid> _bbacRepository;
protected readonly INormalEfCoreRepository<HBPO_PD_DETAIL, Guid> _hbpoRepository;
protected readonly INormalEfCoreRepository<PUB_PD_DETAIL, Guid> _pubRepository;
protected readonly INormalEfCoreRepository<CodeSetting, Guid> _codesetRepository;
protected readonly INormalEfCoreRepository<VmiLog, Guid> _vmiRepository;
protected readonly SettleAccountDbContext _dbcontext;
public PendingDeductionService(
INormalEfCoreRepository<BBAC_SEC_DETAIL, Guid> bbacSecRepository,
INormalEfCoreRepository<HBPO_SEC_DETAIL, Guid> hbpoSecRepository,
INormalEfCoreRepository<PUB_SEC_DETAIL, Guid> pubSecRepository,
INormalEfCoreRepository<BBAC_PD_DETAIL, Guid> bbacRepository,
INormalEfCoreRepository<HBPO_PD_DETAIL, Guid> hbpoRepository,
INormalEfCoreRepository<PUB_PD_DETAIL, Guid> pubRepository,
INormalEfCoreRepository<CodeSetting, Guid> codesetRepository,
INormalEfCoreRepository<VmiLog, Guid> vmiRepository,
VmiAppService vimservice
SettleAccountDbContext dbcontext
)
{
_hbpoRepository = hbpoRepository;
_bbacRepository= bbacRepository;
_pubRepository= pubRepository;
_bbacSecRepository = bbacSecRepository;
_hbpoSecRepository= hbpoSecRepository;
_pubSecRepository= pubSecRepository;
_vimservice =vimservice;
_codesetRepository = codesetRepository;
_vmiRepository = vmiRepository;
_dbcontext = dbcontext;
}
public string ExportFile(Guid id, List<string> exportName, List<CustomCondition> property)
{
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 list = billList.Split(",");
var projectList = _codesetRepository.Where(p => p.Project == "库位");
var projectList = _dbcontext.Set<CodeSetting>().Where(p => p.Project == "库位");
if (type == "JisBBAC")
{
var jisdetail = _bbacRepository.Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.JisBBAC);//jis
Sync(jisdetail.ToList());
var mdetail = _bbacRepository.Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianBBAC);//买单件
Sync(mdetail.ToList());
var jisdetail = _dbcontext.Set<BBAC_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.JisBBAC);//jis
Sync(jisdetail.ToList(),isout=="out"?true:false);
var mdetail = _dbcontext.Set<BBAC_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianBBAC);//买单件
Sync(mdetail.ToList(), isout == "out" ? true : false);
}
else if (type == "JisHBPO")
{
var detailist = _hbpoRepository.Where(p => list.Contains(p.BillNum) && p.BusinessType== EnumBusinessType.JisHBPO).ToList();
Sync(detailist);
var mdetail = _bbacRepository.Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianHBPO);//买单件
Sync(mdetail.ToList());
var detailist = _dbcontext.Set<HBPO_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType== EnumBusinessType.JisHBPO).ToList();
Sync(detailist, isout == "out" ? true : false);
var mdetail = _dbcontext.Set<HBPO_PD_DETAIL>().Where(p => list.Contains(p.BillNum) && p.BusinessType == EnumBusinessType.MaiDanJianHBPO);//买单件
Sync(mdetail.ToList(),isout == "out" ? true : false);
}
else
{
var detailist = _hbpoRepository.Where(p => list.Contains(p.BillNum)).ToList();
Sync(detailist);
////switch (type)
////{
//// case "ZhiGongJianBBAC":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
//// case "ZhiGongJianHBPO":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
//// case "MaiDanJianBBAC":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
//// case "MaiDanJianHBPO":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
//// case "BeiJian":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
//// case "YinDuJian":
//// if (detailist != null && detailist.Count > 0)
//// {
//// }
//// break;
////}
//if (detailist != null && detailist.Count > 0)
//{
// foreach (var itm in detailist)
// {
// }
//}
var detailist = _dbcontext.Set<PUB_PD_DETAIL>().Where(p => list.Contains(p.BillNum)).ToList();
Sync(detailist, isout == "out" ? true : false);
}
return id.ToString();
}
@ -144,42 +83,91 @@ public class PendingDeductionService : ITransientDependency, IExportJob
return pageCount;
}
public void Sync<T>(List<T> p_ls) where T : PD_BASE,new()
public void Sync<T>(List<T> p_ls,bool flag=true) where T : PD_BASE,new()
{
var query = from itm in p_ls
select new
select new VmiLog()
{
BillTime = DateTime.Now,
ChangedTime = DateTime.Now,
Qty = itm.Qty,
DeliverTime = itm.CreationTime,
RealPartCode=itm.RELU,
RealCode=itm.RELU,
LogType = Entities.BQ.Vmi.VmiLogType.Type200,
ChangedQty = itm.Qty,
ChangedQty =(flag==true)? -itm.Qty:itm.Qty,
ChangedType = VmiType.Out,
//SubBillType = EnumDeliverSubBillType.小件BBAC,
//BillType = EnumDeliverBjBmpBillType.JIS件,
PartCode = itm.LU,
CustPartCode = itm.LU,
SettlementVinCode = itm.PN,
PartCode2 = itm.LU,
CustomerPartCode = string.IsNullOrEmpty(itm.Extend4) ? string.Empty : itm.Extend4,
VinCode = itm.PN,
OrderNum = itm.GroupNum,
ErpToLoc = itm.Extend2,
ErpToLoc = string.IsNullOrEmpty(itm.Extend2)?string.Empty:itm.Extend2,
};
var ls = query.ToList();
if (ls != null && ls.Count > 0)
var _first= p_ls.FirstOrDefault();
using (var transaction =_dbcontext.Database.BeginTransaction())
{
var count = CalculatePageCount(ls.Count, 2000);
for (int pagenumber = 0; pagenumber < count; pagenumber++)
try
{
// 执行批量数据操作
if (ls != null && ls.Count > 0)
{
var count = CalculatePageCount(ls.Count, 2000);
for (int pagenumber = 0; pagenumber < count; pagenumber++)
{
ls = GetPagedData(ls, pagenumber, 2000);
foreach (var item in ls)
{
item.SetId(GuidGenerator.Create());
}
_dbcontext.BulkInsert(ls);
Task.Delay(500);
}
}
// 提交事务
transaction.Commit();
}
catch (Exception)
{
ls = GetPagedData(ls, pagenumber, 2000);
_vmiRepository.DbContext.BulkInsert(ls);
Task.Delay(500);
// 回滚事务
transaction.Rollback();
throw;
}
}
;
}

16
code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationModule.cs

@ -102,22 +102,6 @@ namespace Win.Sfs.SettleAccount
}; return accesor;
});
//context.Services.AddTransient(implementationFactory =>
//{
// Func<string, IExportJob> accesor = key =>
// {
// if (key.Equals(typeof(PendingDeductionService).FullName))
// {
// return implementationFactory.GetService<PendingDeductionService>();
// }
// else
// {
// throw new ArgumentException($"Not Support key:{key}");
// }
// };
// return accesor;
//});
}
private static void ConfigureJson(ServiceConfigurationContext context)

4
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs

@ -407,10 +407,6 @@ namespace SettleAccount.Bases
protected SA_CAN_BASE() { }
public SA_CAN_BASE(Guid id) : base(id) { Id = id; }
/// <summary>
/// 期间
/// </summary>

9
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_SE_EDI.cs

@ -38,10 +38,12 @@ public class BBAC_SE_EDI:FullAuditedAggregateRoot<Guid>
[Display(Name = "工厂")]
public string Site { get; set; }
[Display(Name = "生产码类型")]
public string Extend1 { set; get; }
public string Extend2 { set; get; }
[Display(Name = "生产码序列号")]
public string Extend3 { set; get; }
[Display(Name ="车型")]
public string Extend4 { set; get; }
/// <summary>
@ -50,6 +52,11 @@ public class BBAC_SE_EDI:FullAuditedAggregateRoot<Guid>
[Display(Name = "是否有发运数据")]
public bool IsHaveSeData { get; set; }
[Display(Name ="生产线")]
public string LineStationCode { set; get; }
public BBAC_SE_EDI()
{ }
public BBAC_SE_EDI(Guid guid, string keyCode, string version, string lU, string pN, string seqNumber, string assemblyCode, string injectionCode, decimal qty, DateTime beginDate

1
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs

@ -94,6 +94,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invbillnum: string.Empty,
partcode:itm.PartCode
);
_detailEntity.RealPartCode = itm.RealPartCode;
_entityList.Add(_detailEntity);
}
await _repository.DbContext.BulkDeleteAsync(p_list);

1
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs

@ -98,6 +98,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
invbillnum: string.Empty,
partcode:itm.PartCode
);
_detailEntity.RealPartCode = itm.RealPartCode;
_entityList.Add(_detailEntity);
}
await _notRepository.DbContext.BulkDeleteAsync(p_list);

17
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs

@ -551,7 +551,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);//厂内实际零件号
detail.RELU = itm.RealPartCode;//厂内替换零件号
detail.RELU = string.IsNullOrEmpty(itm.RealPartCode) ? itm.PartCode : itm.RealPartCode;//厂内替换零件号
detail.Extend2 = itm.ErpLoc;//ERP库位
bbacDetail.Add(detail);
}
@ -700,7 +700,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);
entity.RELU = itm.RealPartCode;//厂内替换零件号
entity.RELU = string.IsNullOrEmpty(itm.RealPartCode) ? itm.PartCode : itm.RealPartCode;//厂内替换零件号
entity.Extend2 = itm.ErpLoc;//ERP库位
bbacDetail.Add(entity
@ -852,7 +852,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);
entity.RELU = itm.RealPartCode;//厂内替换零件号
entity.RELU =string.IsNullOrEmpty(itm.RealPartCode)?itm.PartCode:itm.RealPartCode;//厂内替换零件号
entity.Extend2 = itm.ErpLoc;//ERP库位
bbacDetail.Add(entity
);
@ -1449,16 +1449,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
if (salist.Count > 0)
{
//foreach (var itm in invoiceMap)//分组影响和
//{
// var key = itm.Key;//发票票号
// var ls = itm.Value;//结算分组号列表
// string str = $" EXEC [p_Invoice_generation_change] @invbillnum = {"'" + key + "'"},@groupNum = {"'" + string.Join(",", ls) + "'"},@businessType = NULL";
// await _repository.DbContext.Database.ExecuteSqlRawAsync(str);
//}
await _repository.DbContext.BulkUpdateAsync(salist,new BulkConfig() { BatchSize=10000 });
}

4
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs

@ -124,7 +124,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
partcode: itm.PartCode,
pobillnum:string.Empty
);
_detailEntity.RealPartCode = itm.RealPartCode;
_entityList.Add(_detailEntity);
}
await _repository.DbContext.BulkDeleteAsync(p_list);
@ -164,7 +164,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
partcode: itm.PartCode,
pobillnum: string.Empty
);
_detailEntity.RealPartCode =string.IsNullOrEmpty(itm.RealPartCode)?itm.PartCode:itm.RealPartCode;
_entityList.Add(_detailEntity);
}
// _repository.DbContext.Database.BeginTransaction();

2
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/VmiLog.cs

@ -12,7 +12,7 @@ public class VmiLog : VmiBalanceBase
{
ConcurrencyStamp = Guid.NewGuid().ToString("N");
}
public VmiLog(Guid id) : base(id)
{
ConcurrencyStamp = Guid.NewGuid().ToString("N");

12
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Code/CodeSettingRepository.cs

@ -1,4 +1,4 @@
using EFCore.BulkExtensions;
using EFCore.BulkExtensions;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
@ -13,7 +13,7 @@ using Win.Sfs.SettleAccount.Entities.Invoices;
namespace Win.Sfs.SettleAccount.Repository.Code
{
public class CodeSettingRepository: EfCoreRepository<SettleAccountDbContext, CodeSetting>, ITransientDependency
public class CodeSettingRepository:EfCoreRepository<SettleAccountDbContext, CodeSetting>, ITransientDependency
{
public CodeSettingRepository(IDbContextProvider<SettleAccountDbContext> dbContextProvider) : base(dbContextProvider)
{
@ -35,6 +35,14 @@ namespace Win.Sfs.SettleAccount.Repository.Code
}
return _list;
}
}
}

1
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/PendingDeduction/PendingDeductionDapperRepository.cs

@ -439,6 +439,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
/// <returns></returns>
public virtual INVOICE_GRP GetInvoice(string inv_bill)
{
return DbConnection.QueryFirst<INVOICE_GRP>(string.Format("select * from set_INVOICE_GRP where InvbillNum='{0}'",inv_bill));
}

Loading…
Cancel
Save