|
|
@ -225,6 +225,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
|
[HttpPost] |
|
|
|
public async Task<string> BalanceExport(RequestDto input) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var connectionString = this._serviceProvider.GetRequiredService<IConfiguration>().GetConnectionString("SettleAccountService"); |
|
|
|
var options = new DbContextOptionsBuilder<SettleAccountDbContext>().UseSqlServer(connectionString).Options; |
|
|
|
using var db = new SettleAccountDbContext(options); |
|
|
@ -419,6 +422,24 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
|
[HttpPost] |
|
|
|
public async Task<PagedResultDto<VmiLog>> Log(LogRequestDto input) |
|
|
|
{ |
|
|
|
//var accountday = _codeRepository.FirstOrDefault(p => p.Project == "库存账期").Value;
|
|
|
|
//var begin= input.Filters.FirstOrDefault(p => p.Column == "BillTime" && p.Action == EnumFilterAction.BiggerThanOrEqual);
|
|
|
|
//if(begin != null){
|
|
|
|
// var begintime=DateTime.Parse(begin.Value);
|
|
|
|
// int version=GetVersionByBillTime(begintime, accountday);
|
|
|
|
// input.Filters.Add(new FilterCondition("Version",version.ToString(), EnumFilterAction.BiggerThanOrEqual,EnumFilterLogic.And));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
//var end = input.Filters.FirstOrDefault(p => p.Column == "BillTime" && p.Action == EnumFilterAction.SmallThan);
|
|
|
|
//if(end != null) {
|
|
|
|
// var endtime = DateTime.Parse(end.Value);
|
|
|
|
// int version = GetVersionByBillTime(endtime, accountday);
|
|
|
|
// input.Filters.Add(new FilterCondition("Version", version.ToString(), EnumFilterAction.SmallThan, EnumFilterLogic.And)); ;
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
//if (input.UseHistory)
|
|
|
|
//{
|
|
|
|
// return await Log2(input).ConfigureAwait(false);
|
|
|
@ -581,35 +602,10 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
|
) on new { temp1.VinCode, temp1.RealPartCode } equals new { temp2.VinCode, temp2.RealPartCode } |
|
|
|
where temp1.ChangedQty > 0 |
|
|
|
select temp1).ToList(); |
|
|
|
//var temp2 = (from a in _logRepository
|
|
|
|
// where (int)a.LogType == 200
|
|
|
|
// group a by new { a.VinCode, a.RealPartCode } into g
|
|
|
|
// let SumChangedQty = g.Sum(log => log.ChangedQty)
|
|
|
|
// let MinChangedTime = g.Min(log => log.ChangedTime)
|
|
|
|
// select new
|
|
|
|
// {
|
|
|
|
// VinCode = g.Key.VinCode,
|
|
|
|
// RealPartCode = g.Key.RealPartCode,
|
|
|
|
// SumChangedQty,
|
|
|
|
// MinChangedTime
|
|
|
|
// } into a
|
|
|
|
// join b in (from log in _logRepository
|
|
|
|
// where (int)log.LogType == 100
|
|
|
|
// group log by new { log.VinCode, log.RealPartCode } into g
|
|
|
|
// let SumChangedQty = g.Sum(log => log.ChangedQty)
|
|
|
|
// let MinChangedTime = g.Min(log => log.ChangedTime)
|
|
|
|
// select new
|
|
|
|
// {
|
|
|
|
// VinCode = g.Key.VinCode,
|
|
|
|
// RealPartCode = g.Key.RealPartCode,
|
|
|
|
// SumChangedQty,
|
|
|
|
// MinChangedTime
|
|
|
|
// }) on new { a.VinCode, a.RealPartCode } equals new { b.VinCode, b.RealPartCode }
|
|
|
|
// where a.MinChangedTime < b.MinChangedTime && a.SumChangedQty <= b.SumChangedQty
|
|
|
|
// select b);
|
|
|
|
|
|
|
|
|
|
|
|
var entities = result.Where(p => p.BillTime >= DateTime.Parse(beginDate) && p.BillTime <= DateTime.Parse(endDate) && p.LogType == VmiLogType.Type100).ToList(); |
|
|
|
// IQueryable<VmiLog> query = _logRepository.WhereIf(input.Filters?.Count != 0, input.Filters.ToLambda<VmiLog>());
|
|
|
|
|
|
|
|
var fileName = $"补货数据_{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}.xlsx"; |
|
|
|
var content = this.GetContent(entities, "补货数据_"); |
|
|
|
await _fileContainer.SaveAsync(fileName, content, true).ConfigureAwait(false); |
|
|
@ -754,26 +750,80 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
|
log.ChangedBy = this._currentUser.UserName; |
|
|
|
} |
|
|
|
|
|
|
|
//private int GetVersionByTimeSpan(DateTime p_begintime,DateTime p_endtime, string p_day)
|
|
|
|
//{
|
|
|
|
|
|
|
|
// var before = p_billtime.Year;
|
|
|
|
// var last = before - 1;
|
|
|
|
// DateTime lastYear = DateTime.ParseExact(string.Format("{0}-12-{1} 08:00:00", last, p_day), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);//上期时间
|
|
|
|
// DateTime beforeYear = DateTime.ParseExact(string.Format("{0}-12-{1} 07:59:59", before, p_day), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);//这期时间
|
|
|
|
|
|
|
|
// //var result = seDetails
|
|
|
|
// // .Select(log =>
|
|
|
|
// // {
|
|
|
|
// string version = null;
|
|
|
|
|
|
|
|
// if (p_billtime >= lastYear && p_billtime <= lastYear.AddMonths(1))
|
|
|
|
// {
|
|
|
|
// version = $"{before.ToString()}01";
|
|
|
|
// }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(1) && p_billtime <= lastYear.AddMonths(2))
|
|
|
|
// { version = $"{before.ToString()}02"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(2) && p_billtime <= lastYear.AddMonths(3))
|
|
|
|
// { version = $"{before.ToString()}03"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(3) && p_billtime <= lastYear.AddMonths(4))
|
|
|
|
// { version = $"{before.ToString()}04"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(4) && p_billtime <= lastYear.AddMonths(5))
|
|
|
|
// { version = $"{before.ToString()}05"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(5) && p_billtime <= lastYear.AddMonths(6))
|
|
|
|
// { version = $"{before.ToString()}06"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(6) && p_billtime <= lastYear.AddMonths(7))
|
|
|
|
// { version = $"{before.ToString()}07"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(7) && p_billtime <= lastYear.AddMonths(8))
|
|
|
|
// { version = $"{before.ToString()}08"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(8) && p_billtime <= lastYear.AddMonths(9))
|
|
|
|
// { version = $"{before.ToString()}09"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(9) && p_billtime <= lastYear.AddMonths(10))
|
|
|
|
// { version = $"{before.ToString()}10"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(10) && p_billtime <= lastYear.AddMonths(11))
|
|
|
|
// { version = $"{before.ToString()}11"; }
|
|
|
|
// else if (p_billtime >= lastYear.AddMonths(11) && p_billtime <= beforeYear)
|
|
|
|
// { version = $"{before.ToString()}12"; }
|
|
|
|
|
|
|
|
|
|
|
|
// if (string.IsNullOrEmpty(version))
|
|
|
|
// {
|
|
|
|
// return 200802;//找不到的数据默认写到这个区间
|
|
|
|
// }
|
|
|
|
// return int.Parse(version);
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private int GetVersionByBillTime(DateTime p_billtime, string p_day) |
|
|
|
{ |
|
|
|
|
|
|
|
var before = p_billtime.Year; |
|
|
|
var last = before - 1; |
|
|
|
var next = before + 1; |
|
|
|
DateTime lastYear = DateTime.ParseExact(string.Format("{0}-12-{1} 08:00:00", last, p_day), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);//上期时间
|
|
|
|
DateTime beforeYear = DateTime.ParseExact(string.Format("{0}-12-{1} 07:59:59", before, p_day), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);//这期时间
|
|
|
|
|
|
|
|
//var result = seDetails
|
|
|
|
// .Select(log =>
|
|
|
|
// {
|
|
|
|
|
|
|
|
string version = null; |
|
|
|
|
|
|
|
if (p_billtime >= lastYear && p_billtime <= lastYear.AddMonths(1)) |
|
|
|
if (p_billtime >= DateTime.ParseExact(string.Format("{0}-12-{1} 08:00:00", last, p_day), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) && p_billtime <= lastYear.AddMonths(1)) |
|
|
|
{ |
|
|
|
version = $"{before.ToString()}01"; |
|
|
|
} |
|
|
|
else if (p_billtime >= lastYear.AddMonths(1) && p_billtime <= lastYear.AddMonths(2)) |
|
|
|
{ version = $"{before.ToString()}02"; } |
|
|
|
{ |
|
|
|
version = $"{before.ToString()}02"; |
|
|
|
} |
|
|
|
else if (p_billtime >= lastYear.AddMonths(2) && p_billtime <= lastYear.AddMonths(3)) |
|
|
|
{ version = $"{before.ToString()}03"; } |
|
|
|
else if (p_billtime >= lastYear.AddMonths(3) && p_billtime <= lastYear.AddMonths(4)) |
|
|
@ -792,8 +842,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ |
|
|
|
{ version = $"{before.ToString()}10"; } |
|
|
|
else if (p_billtime >= lastYear.AddMonths(10) && p_billtime <= lastYear.AddMonths(11)) |
|
|
|
{ version = $"{before.ToString()}11"; } |
|
|
|
else if (p_billtime >= lastYear.AddMonths(11) && p_billtime <= beforeYear) |
|
|
|
{ version = $"{before.ToString()}12"; } |
|
|
|
else if (p_billtime >= lastYear.AddMonths(11) && p_billtime <= |
|
|
|
DateTime.ParseExact(string.Format("{0}-01-{1} 07:59:59", next.ToString(), 01), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture) |
|
|
|
) |
|
|
|
{ |
|
|
|
version = $"{before.ToString()}12"; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(version)) |
|
|
|