Commit 1006eb60 by lizefeng

新增站点销量导入计算

parent b66bfff5
...@@ -1994,6 +1994,50 @@ and start_date<=@end_date and end_date>=@start_date ...@@ -1994,6 +1994,50 @@ and start_date<=@end_date and end_date>=@start_date
return ex.Message; return ex.Message;
} }
} }
public static string SaveSalesDayConfig2(sales_day_config_input_dto2 m, UserData user, bool is_reset_data = true)
{
try
{
var data = new dc_ana_deviation_sales_day_config()
{
sales = m.sales,
create_date = DateTime.Now,
date_str = m.date.ToString("yyyy-MM-dd"),
bailun_sku = m.bailun_sku,
site = m.site_code,
create_user = user.UserName,
date = m.date,
update_date = DateTime.Now,
update_user = user.UserName,
project = m.project
};
var odlData = _connection.QueryFirstOrDefault<sales_day_config>(" select * from dc_ana_deviation_sales_day_config where `site`=@site and bailun_sku=@bailun_sku and date_str=@date_str ", new
{
site = data.site,
bailun_sku = data.bailun_sku,
date_str = data.date_str
});
if (odlData != null)
{
data.id = odlData.id;
data.create_user = odlData.create_user;
data.create_date = odlData.create_date;
_connection.Update(data);
}
else
{
_connection.Insert(data);
}
return "";
}
catch (Exception ex)
{
return ex.Message;
}
}
public static string BatchSaveSalesDayConfig(batch_sales_day_config_input_dto m, UserData user) public static string BatchSaveSalesDayConfig(batch_sales_day_config_input_dto m, UserData user)
{ {
......
...@@ -27,8 +27,7 @@ namespace AutoTurnOver.Models.auto ...@@ -27,8 +27,7 @@ namespace AutoTurnOver.Models.auto
public int id { get; set; } public int id { get; set; }
public string project { get; set; } public string project { get; set; }
public string bailun_sku { get; set; } public string bailun_sku { get; set; }
public string warehouse_code { get; set; } public string site { get; set; }
public string bailun_sku_warehouse_code { get; set; }
public DateTime date { get; set; } public DateTime date { get; set; }
public string date_str { get; set; } public string date_str { get; set; }
public decimal sales { get; set; } public decimal sales { get; set; }
...@@ -45,6 +44,15 @@ namespace AutoTurnOver.Models.auto ...@@ -45,6 +44,15 @@ namespace AutoTurnOver.Models.auto
public DateTime date { get; set; } public DateTime date { get; set; }
public decimal sales { get; set; } public decimal sales { get; set; }
} }
public class sales_day_config_input_dto2
{
public string bailun_sku { get; set; }
public string project { get; set; }
public string site_code { get; set; }
public DateTime date { get; set; }
public decimal sales { get; set; }
}
public class batch_sales_day_config_input_dto public class batch_sales_day_config_input_dto
{ {
......
...@@ -870,6 +870,91 @@ namespace AutoTurnOver.Services ...@@ -870,6 +870,91 @@ namespace AutoTurnOver.Services
return table; return table;
} }
public DataTable SalesDayConfigImport2(Stream fileInfo, UserData user)
{
var data_set = EPPlusHelper.ReadExcel(fileInfo);
var table = data_set.Tables[0];
if (!table.Columns.Contains("导入结果")) table.Columns.Add("导入结果");
if (!table.Columns.Contains("导入异常")) table.Columns.Add("导入异常");
var warehouse_list = DB.common.ListWareHouse(null, null);
DateTime now = DateTime.Now;
int index = 1;
foreach (DataRow row in table.Rows)
{
index++;
try
{
var bailun_sku = row["SKU"].ToString();
var site_code = row["站点"].ToString();
if (string.IsNullOrWhiteSpace(bailun_sku)) throw new Exception("SKU必填");
if (string.IsNullOrWhiteSpace(site_code)) throw new Exception("站点必填");
{
var cols = table.Columns;
foreach (DataColumn col in cols)
{
if (col.ColumnName.Contains("销量") && col.ColumnName.Length > 20)
{
decimal sales = 0;
var salesObj = row[col.ColumnName];
if (salesObj != null)
{
if (!decimal.TryParse(salesObj.ToString(), out sales))
{
throw new Exception("销量格式异常");
}
// 取开始结束时间
var btime = DateTime.Parse(col.ColumnName.Substring(2, 10));
var etime = DateTime.Parse(col.ColumnName.Substring(13, 10));
var s_sales = (sales / ((int)Math.Ceiling((etime - btime).TotalDays + 1)));
while (btime.ToDayHome() <= etime.ToDayEnd())
{
var new_data = new sales_day_config_input_dto2
{
bailun_sku = bailun_sku,
site_code = site_code,
sales = s_sales,
date = btime
};
DB.db_config.SaveSalesDayConfig2(new_data, user, false);
btime = btime.AddDays(1);
}
}
}
}
}
row["导入结果"] = "成功";
row["导入异常"] = "";
}
catch (Exception ex)
{
row["导入结果"] = "失败";
row["导入异常"] = ex.Message;
}
}
return table;
}
/// <summary> /// <summary>
/// 默认头程方式 /// 默认头程方式
/// </summary> /// </summary>
......
...@@ -1114,7 +1114,7 @@ namespace AutoTurnOver.Controllers ...@@ -1114,7 +1114,7 @@ namespace AutoTurnOver.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[UseAction] [UseAction]
[BrowseLog("Bailun_aims", "触发【百伦自动周转系统】->【周转表】->【销量导入】->【导入】操作", 1)] [BrowseLog("Bailun_aims", "触发【百伦自动周转系统】->【周转表】->【销量导入(仓库)】->【导入】操作", 1)]
public async Task<ActionResult<RequestResultDto>> SalesDayConfigImport(IFormFile file) public async Task<ActionResult<RequestResultDto>> SalesDayConfigImport(IFormFile file)
{ {
try try
...@@ -1142,6 +1142,42 @@ namespace AutoTurnOver.Controllers ...@@ -1142,6 +1142,42 @@ namespace AutoTurnOver.Controllers
} }
} }
/// <summary>
/// 导入
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
[HttpPost]
[UseAction]
[BrowseLog("Bailun_aims", "触发【百伦自动周转系统】->【周转表】->【销量导入(站点)】->【导入】操作", 1)]
public async Task<ActionResult<RequestResultDto>> SalesDayConfigImport2(IFormFile file)
{
try
{
var user = AutoUtility.GetUser();
var dataTable = new Services.ConfigServices().SalesDayConfigImport2(file.OpenReadStream(), user);
var fileName = AppContext.BaseDirectory + $@"Result\销量(手动)导入结果.csv";
CsvFileHelper.SaveCSV(dataTable, fileName);
var memory = new MemoryStream();
using (var stream = new FileStream(fileName, FileMode.Open))
{
stream.CopyTo(memory);
}
memory.Position = 0;
var fileData = await QiNiuCloudHelper.UploadAsync(memory, $"{user.UserName}-{DateTime.Now.ToString("yyyyMMddHHmmss")}销量(手动)导入结果.csv");
return new RequestResultDto { success = true, data = fileData };
}
catch (Exception ex)
{
return new RequestResultDto { success = false, message = ex.Message, err_data = ex.StackTrace };
}
}
/// <summary> /// <summary>
/// 导入 /// 导入
......
...@@ -11,7 +11,7 @@ namespace ResetOutofstock ...@@ -11,7 +11,7 @@ namespace ResetOutofstock
class DeviationRabbitBackgroundService : RabbitWorkerBase<t_task_queue> class DeviationRabbitBackgroundService : RabbitWorkerBase<t_task_queue>
{ {
public DeviationRabbitBackgroundService() : base("差异分析服务", "aims:deviation:input", 1) public DeviationRabbitBackgroundService() : base("差异分析服务", "aims:deviation-v2:input", 1)
{ {
} }
...@@ -27,7 +27,7 @@ namespace ResetOutofstock ...@@ -27,7 +27,7 @@ namespace ResetOutofstock
} }
catch (Exception e) catch (Exception e)
{ {
RabbitMQHelper.EnqueneMsg("aims:deviation:input", taskDto); RabbitMQHelper.EnqueneMsg("aims:deviation-v2:input", taskDto);
Console.WriteLine($"差异分析服务 数据异常,异常原因为:{e.Message},异常堆栈为:{e.StackTrace}"); Console.WriteLine($"差异分析服务 数据异常,异常原因为:{e.Message},异常堆栈为:{e.StackTrace}");
} }
......
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