Commit bba291a6 by 泽锋 李

fix

parent 97c683dd
...@@ -7,7 +7,8 @@ using Dapper; ...@@ -7,7 +7,8 @@ using Dapper;
using System.Linq; using System.Linq;
using AutoTurnOver.Models; using AutoTurnOver.Models;
using AutoTurnOver.Utility; using AutoTurnOver.Utility;
using AutoTurnOver.Models.Base;
using AutoTurnOver.DB.Base;
namespace AutoTurnOver.DB namespace AutoTurnOver.DB
{ {
...@@ -694,5 +695,110 @@ namespace AutoTurnOver.DB ...@@ -694,5 +695,110 @@ namespace AutoTurnOver.DB
etime = ((data3 > data4 ? data3 : data4) ?? DateTime.Now.AddDays(7)).ToString("yyyy-MM-dd") etime = ((data3 > data4 ? data3 : data4) ?? DateTime.Now.AddDays(7)).ToString("yyyy-MM-dd")
}; };
} }
public static List<dc_report_cash_flow_log_dto> Export(dc_report_cash_flow_log_export_forecast_task_search_dto search)
{
if (search.btime == null || search.etime == null)
{
throw new Exception("时间范围必选");
}
if (search.type == null)
{
throw new Exception("时间类型必选");
}
var sql = " select t1.*,t2.warehouse_name from dc_report_cash_flow_forecast_task_log as t1 left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code where t1.is_delete=0 and `val`!=0 ";
DynamicParameters parameters = new DynamicParameters();
if (search.type == 1)
{
sql += " and t1.occur_time>=@btime ";
sql += " and t1.occur_time<=@etime ";
}
else
{
sql += " and t1.pay_time>=@btime ";
sql += " and t1.pay_time<=@etime ";
}
parameters.Add("btime", search.btime.Value.ToDayHome());
parameters.Add("etime", search.etime.Value.ToDayEnd());
if (search.data_type != null && search.data_type.Count >= 0)
{
sql += " and t1.data_type in @data_type ";
parameters.Add("data_type", search.data_type);
}
return _connection.Query<dc_report_cash_flow_log_dto>(sql, parameters).AsList();
}
public static Page<dc_report_cash_flow_log_dto> LogPage(dc_report_cash_flow_log_export_forecast_task_search_dto search)
{
if (search.btime == null || search.etime == null)
{
throw new Exception("时间范围必选");
}
if (search.type == null)
{
throw new Exception("时间类型必选");
}
var sql = $" select t1.*,t2.warehouse_name ,{search.type ?? 2} as 'type' from dc_report_cash_flow_forecast_task_log as t1 left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code where t1.is_delete=0 and `val`!=0 ";
if (search.issum)
{
sql = $" select sum(`val`) as 'val' from dc_report_cash_flow_forecast_task_log as t1 where t1.is_delete=0 and `val`!=0 ";
}
else
{
if (search.view_type == 2)
{
sql = $@" select t1.data_type,t1.pay_type,sum(`val`) as 'val'
from dc_report_cash_flow_forecast_task_log as t1 left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code where t1.is_delete=0 and `val`!=0 ";
}
}
DynamicParameters parameters = new DynamicParameters();
if (search.type == 1)
{
sql += " and t1.occur_time>=@btime ";
sql += " and t1.occur_time<=@etime ";
}
else
{
sql += " and t1.pay_time>=@btime ";
sql += " and t1.pay_time<=@etime ";
}
parameters.Add("btime", search.btime.Value.ToDayHome());
parameters.Add("etime", search.etime.Value.ToDayEnd());
if (search.data_type != null && search.data_type.Count >= 0)
{
sql += " and t1.data_type in @data_type ";
parameters.Add("data_type", search.data_type);
}
if (search.view_type == 2)
{
sql += "group by t1.data_type ";
}
if (search.issum)
{
return new Page<dc_report_cash_flow_log_dto>()
{
Items = new List<dc_report_cash_flow_log_dto> { _connection.QuerySingleOrDefault<dc_report_cash_flow_log_dto>(sql, parameters) }
};
}
else
{
if (search.view_type == 2)
{
return new Page<dc_report_cash_flow_log_dto>()
{
Items = _connection.Query<dc_report_cash_flow_log_dto>(sql, parameters).ToList()
};
}
else
{
return _connection.Page<dc_report_cash_flow_log_dto>(sql, search, parameters);
}
}
}
} }
} }
...@@ -110,6 +110,21 @@ namespace AutoTurnOver.Models.Report ...@@ -110,6 +110,21 @@ namespace AutoTurnOver.Models.Report
} }
public class dc_report_cash_flow_log_export_forecast_task_search_dto: page_search_dto
{
public DateTime? btime { get; set; }
public bool issum { get; set; }
public DateTime? etime { get; set; }
public List<int> data_type { get; set; }
/// <summary>
/// 1 = 根据发生时间查询
/// 2 = 根据支付时间查询
/// </summary>
public int? type { get; set; }
public int? task_id { get; set; }
public int? view_type { get; set; }
}
public class dc_report_cash_flow_forecast_task_dto: dc_report_cash_flow_forecast_task public class dc_report_cash_flow_forecast_task_dto: dc_report_cash_flow_forecast_task
{ {
......
...@@ -25,7 +25,7 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -25,7 +25,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
//Console.WriteLine($"开始同步sku刊登状态,线程Id:{Thread.CurrentThread.ManagedThreadId},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); //Console.WriteLine($"开始同步sku刊登状态,线程Id:{Thread.CurrentThread.ManagedThreadId},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
//report_cash_flow_forecast_dao.Calculation(); //report_cash_flow_forecast_dao.Calculation();
//Console.WriteLine($"结束同步sku刊登状态,线程Id:{Thread.CurrentThread.ManagedThreadId},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); //Console.WriteLine($"结束同步sku刊登状态,线程Id:{Thread.CurrentThread.ManagedThreadId},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
daily.SynchroPPSSkuStatus(); //daily.SynchroPPSSkuStatus();
var builder = new HostBuilder().ConfigureServices((hostContext, services) => var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{ {
services.AddHostedService<AverageTargetBackgrounService>(); services.AddHostedService<AverageTargetBackgrounService>();
......
using AutoTurnOver.Models; using AutoTurnOver.DB;
using AutoTurnOver.Models;
using AutoTurnOver.Models.Base;
using AutoTurnOver.Models.Report; using AutoTurnOver.Models.Report;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -74,5 +76,15 @@ namespace AutoTurnOver.Services ...@@ -74,5 +76,15 @@ namespace AutoTurnOver.Services
{ {
return DB.report_cash_flow_forecast_dao.GetDate(id); return DB.report_cash_flow_forecast_dao.GetDate(id);
} }
public List<dc_report_cash_flow_log_dto> Export(dc_report_cash_flow_log_export_forecast_task_search_dto search)
{
return report_cash_flow_forecast_dao.Export(search);
}
public Page<dc_report_cash_flow_log_dto> LogPage(dc_report_cash_flow_log_export_forecast_task_search_dto search)
{
return report_cash_flow_forecast_dao.LogPage(search);
}
} }
} }
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using AutoTurnOver.Common;
using AutoTurnOver.Models.Report; using AutoTurnOver.Models.Report;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
...@@ -88,5 +91,128 @@ namespace AutoTurnOver.Controllers ...@@ -88,5 +91,128 @@ namespace AutoTurnOver.Controllers
return new JsonResult(m); return new JsonResult(m);
} }
public FileResult Export(DateTime? btime, DateTime? etime, string data_type = null, int? type = null, int? view_type = 1,int? task_id= null)
{
var m = new dc_report_cash_flow_log_export_forecast_task_search_dto
{
data_type = string.IsNullOrWhiteSpace(data_type) ? new List<int> { } : data_type.Split(',').Select(s => int.Parse(s)).ToList(),
btime = btime,
etime = etime,
type = type,
task_id = task_id,
page = 1,
rows = int.MaxValue,
issum = false,
view_type = view_type
};
var service = new Services.ForecastTaskServices();
var list = service.LogPage(m).Items;
DataTable table = new DataTable();
string[] cols = new string[] { "Sku","仓库编码","仓库名称","平台","站点","数据类型","金额","时间","相关单号","备注"
};
foreach (var item in cols)
{
table.Columns.Add(item);
}
foreach (var itemData in list)
{
DataRow row = table.NewRow();
row["Sku"] = itemData.bailun_sku;
row["仓库编码"] = itemData.warehouse_code;
row["仓库编码"] = itemData.warehouse_code;
row["仓库名称"] = itemData.warehouse_name;
row["平台"] = itemData.platform_type;
row["平台"] = itemData.web_site;
row["数据类型"] = itemData.data_type_str;
row["时间"] = itemData.show_time;
row["相关单号"] = itemData.no;
row["备注"] = itemData.remarks;
row["金额"] = itemData.val;
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");
}
[HttpGet]
public JsonResult LogPage(int limit, int offset, string order, string sort, DateTime? btime, DateTime? etime, string data_type = null, int? type = null, int? view_type = 1,int? task_id = null)
{
try
{
var m = new dc_report_cash_flow_log_export_forecast_task_search_dto
{
data_type = string.IsNullOrWhiteSpace(data_type) ? new List<int> { } : data_type.Split(',').Select(s => int.Parse(s)).ToList(),
btime = btime,
etime = etime,
type = type,
task_id = task_id,
page = (offset / limit) + 1,
rows = limit,
issum = false,
sord = order,
sidx = sort,
view_type = view_type
};
var service = new Services.ForecastTaskServices();
var list = service.LogPage(m);
var total = list.TotalItems;
return new JsonResult(new
{
rows = list.Items,
total = total,
pagecount = list.TotalPages
});
}
catch (Exception ex)
{
return new JsonResult(new
{
message = ex.Message,
stack_trace = ex.StackTrace
});
}
}
public JsonResult LogPageSumFooter(DateTime? btime, DateTime? etime, string data_type = null, int? type = null, int? task_id = null)
{
var m = new dc_report_cash_flow_log_export_forecast_task_search_dto
{
data_type = string.IsNullOrWhiteSpace(data_type) ? new List<int> { } : data_type.Split(',').Select(s => int.Parse(s)).ToList(),
btime = btime,
etime = etime,
type = type,
task_id = task_id,
page = 1,
rows = 1,
issum = true
};
var total = 0;
var service = new Services.ForecastTaskServices();
var list = service.LogPage(m);
return new JsonResult(list == null || list.Items.Count <= 0 ? new Models.dc_report_cash_flow_log_dto() : list.Items[0]);
}
} }
} }
\ No newline at end of file
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