Commit 503903de by 泽锋 李

第三方海外仓统计表

parent 38141ab7
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.Report
{
public class report_stock_week_view_dto
{
public string web_site { get; set; }
/// <summary>
/// 指标
/// </summary>
public string tag { get; set; }
public List<week> weeks { get; set; }
public class week
{
public string tag { get; set; }
public decimal val { get; set; }
public decimal ratio { get; set; }
public string ratio_str { get{
return ratio.ToString("p");
} }
}
}
public class report_stock_week_view_search_dto
{
public DateTime? btime { get; set; }
public DateTime? etime { get; set; }
}
public class dc_report_stock_week
{
public int id { get; set; }
public int stock { get; set; }
public string week_tag { get; set; }
public string warehouse_code { get; set; }
public string bailun_sku { get; set; }
public DateTime first_day_date { get; set; }
public string web_site { get; set; }
public string sku_tag { get; set; }
public decimal stock_amount { get; set; }
public int is_order { get; set; }
}
}
......@@ -698,6 +698,7 @@ namespace AutoTurnOver.Services
}
return datas;
}
/// <summary>
/// 获取缺货数据
......
......@@ -871,7 +871,32 @@ namespace AutoTurnOver.Services
return base_sku_dao.GetPage(search);
}
public List<dynamic> ReportStockWeekView(report_stock_week_view_search_dto search_data)
{
var order_list = report.ReportStockWeekView(search_data);
List<dynamic> datas = new List<dynamic>();
foreach (var item in order_list)
{
dynamic o = new ExpandoObject();
o.web_site = item.web_site;
o.tag = item.tag;
foreach (var dat_item in item.weeks)
{
var dic = (IDictionary<string, object>)o;
dic["val_" + (dat_item.tag)] = Math.Round(dat_item.val, 2);
dic["ratio_" + (dat_item.tag)] = dat_item.ratio_str;
}
datas.Add(o);
}
return datas;
}
public List<string> ReportStockWeekViewGetWeekList(report_stock_week_view_search_dto search)
{
return report.ReportStockWeekViewGetWeekList(search);
}
}
}
......@@ -651,7 +651,93 @@ namespace AutoTurnOver.Controllers
total = 0,
});
}
[BrowseLog("Bailun_aims", "访问【百伦自动周转系统】->【报表】->【第三方海外仓统计表】->【搜索】页面", 0)]
public JsonResult ReportStockWeekView(DateTime? btime, DateTime? etime)
{
report_stock_week_view_search_dto search_data = new report_stock_week_view_search_dto
{
etime = etime,
btime = btime
};
var list = new ReportServices().ReportStockWeekView(search_data);
return new JsonResult(new
{
rows = list,
total = 0,
});
}
[BrowseLog("Bailun_aims", "访问【百伦自动周转系统】->【报表】->【第三方海外仓统计表】->【导出】", 0)]
public FileResult ExportTableReportStockWeekView(DateTime? btime, DateTime? etime)
{
report_stock_week_view_search_dto search_data = new report_stock_week_view_search_dto
{
etime = etime,
btime = btime
};
var list = new ReportServices().ReportStockWeekView(search_data);
var time_list = new ReportServices().ReportStockWeekViewGetWeekList(search_data);
DataTable table = new DataTable();
string[] cols = new string[] { "站点", "标签" };
foreach (var item in cols)
{
table.Columns.Add(item);
}
foreach (var item in time_list)
{
table.Columns.Add($"{item}-值");
table.Columns.Add($"{item}-占比");
}
foreach (var itemDataD in list)
{
DataRow row = table.NewRow();
var itemData = (IDictionary<string, object>)itemDataD;
row["站点"] = itemData["web_site"];
row["标签"] = itemData["tag"];
foreach (var item in time_list)
{
row[$"{item}-值"] = itemData["val_" + $"{item}"];
row[$"{item}-占比"] = itemData["ratio_" + $"{item}"];
}
table.Rows.Add(row);
}
var fileName = AppContext.BaseDirectory + @"Result\RealtimeStock\第三方海外仓统计表.csv";
DataTableHelper.SaveCSV(table, fileName);
var memory = new MemoryStream();
using (var stream = new FileStream(fileName, FileMode.Open))
{
stream.CopyTo(memory);
}
memory.Position = 0;
return File(memory, "text/csv", "第三方海外仓统计表.csv");
}
public JsonResult ReportStockWeekViewGetWeekList(DateTime? btime, DateTime? etime)
{
report_stock_week_view_search_dto search_data = new report_stock_week_view_search_dto
{
etime = etime,
btime = btime
};
var list = new ReportServices().ReportStockWeekViewGetWeekList(search_data);
return new JsonResult(list);
}
public JsonResult GetSkuWarehouseSales(string platform_type,string warehousetype, int? warehousearea, string warehousecode,DateTime? btime,DateTime? etime)
{
bailun_sku_website_sales_search_dto search_data = new bailun_sku_website_sales_search_dto {
......
......@@ -16,6 +16,7 @@ namespace ResetOutofstock
try
{
var now = DateTime.Now;
//report.StockWeekBackUp();
//report_cash_flow_dao.CalculationTransferOrder(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
//report_cash_flow_dao.SynchroTransferCost();
}
......@@ -30,6 +31,7 @@ namespace ResetOutofstock
{
services.AddHostedService<ResetOutofstockBackgrounService>();
services.AddHostedService<CaseFlowBackgrounService>();
services.AddHostedService<StockBackgrounService>();
});
await builder.RunConsoleAsync();
......
using AutoTurnOver.DB;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ResetOutofstock
{
public class StockBackgrounService : BackgroundService
{
private Timer _timer;
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
_timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
return Task.CompletedTask;
}
private void DoWork(object state)
{
var now = DateTime.Now;
if (now.DayOfWeek == DayOfWeek.Monday)
{
if (now.Hour == 0 && now.Minute == 10)
{
Console.WriteLine($"开始 备份上周库存,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.StockWeekBackUp();
Console.WriteLine($"结束 备份上周库存,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
}
public override void Dispose()
{
base.Dispose();
_timer?.Dispose();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment