Commit e73cd2ab by 泽锋 李

fix

parent def558a6
using AutoTurnOver.Models;
using Dapper;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -125,7 +126,7 @@ namespace AutoTurnOver.DB
{
continue;
}
var old_data = conn.QueryFirstOrDefault<dc_base_prod_order>(" select * from dc_base_prod_order where `purchase_no`=@purchase_no and bailun_sku=@bailun_sku ", new
var old_data = MyMySqlConnection._connection.QueryFirstOrDefault<dc_base_prod_order>(" select * from dc_base_prod_order where `purchase_no`=@purchase_no and bailun_sku=@bailun_sku ", new
{
purchase_no = db_data.purchase_no,
bailun_sku = db_data.bailun_sku,
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.Report
{
/// <summary>
/// 供应链采购在途
/// </summary>
public class full_link_purchase_dto
{
public string bailun_sku { get; set; }
public string warehouse_code { get; set; }
public string warehouse_name { get; set; }
public string product_title { get; set; }
public string buyer_name { get; set; }
public string product_type_desc { get; set; }
public decimal? stock { get; set; }
public decimal? quantity_transfer { get; set; }
public decimal? quantity_transfer_order { get; set; }
public decimal? quantity_transfer_temp_schedule { get; set; }
public decimal? quantity_transfer_temporary_storage { get; set; }
public decimal? history_sevenday_sales { get; set; }
public decimal? history_fourteenday_sales { get; set; }
public decimal? history_thirtyday_sales { get; set; }
public int? forecast_type { get; set; }
public string forecast_type_str { get {
if (forecast_type == null)
{
return "";
}
else
{
return ((forecast_type_enum)forecast_type).ToString();
}
} }
public enum forecast_type_enum
{
实际缺货=1,预计缺货=2,实际冗余=3,预计冗余=4,断货=5
}
public string purchase_id { get; set; }
public decimal quantity_purchase { get; set; }
public decimal quantity_not_inbound { get; set; }
public int purchase_status { get; set; }
public DateTime? last_signtime { get; set; }
public DateTime? purchase_arrivaldate { get; set; }
public decimal quantity_arrival { get; set; }
public decimal quantity_inbound { get; set; }
public string prod_status { get; set; }
public decimal? prod_distribution_quantity { get; set; }
public decimal? prod_not_distribution_quantity { get; set; }
public decimal? prod_quantity { get; set; }
}
}
using AutoTurnOver.Models;
using AutoTurnOver.Models.ApiDto;
using AutoTurnOver.Models.Report;
using AutoTurnOver.Utility;
using System;
using System.Collections.Generic;
......@@ -48,6 +49,15 @@ namespace AutoTurnOver.Services
}
return DB.daily.RealtimeList(search_data, categoryModels, ref total);
}
public List<full_link_purchase_dto> FullLinkPurchaseList(dc_base_stock_search_dto search_data,ref int total)
{
List<bailun_category_new_dto> categoryModels = null;
if (!string.IsNullOrWhiteSpace(search_data.categoryIds))
{
categoryModels = ApiServices.GetNewClientNodesByIds(search_data.categoryIds.Split(',').Select(s => int.Parse(s)).ToList());
}
return DB.daily.FullLinkPurchaseList(search_data, categoryModels, ref total);
}
public List<dc_base_stock_fba_dto> RealtimeFbaList(dc_base_stock_search_dto search_data,ref int total)
{
......@@ -489,6 +499,92 @@ namespace AutoTurnOver.Services
}
public string FullLinkPurchaseExport(dc_base_stock_search_dto search_data)
{
try
{
export_count++;
var services = new DailyServices();
var fileName = AppContext.BaseDirectory + $@"供应链采购在途-{DateTime.Now.ToString("yyyyMMddHHmmss")}{Guid.NewGuid()}.csv";
int page = 1;
int rows = 50000;
if (export_count == 1)
{
rows = 250000;
}
while (true)
{
int total = 0;
search_data.offset = (page - 1)* rows;
search_data.limit = rows;
var list = services.FullLinkPurchaseList(search_data,ref total);
if (list == null || list.Count <= 0) break;
DataTable table = new DataTable();
string[] cols = new string[] { "仓库名称","仓库编码","产品名称","可用库存","采购在途数","调拨在途数","暂存区数","临时在途数","调拨单在途数"
,"商品来源","采购员","过去7天日均","过去14天日均","过去30天日均","sku状态"
,"采购单号","采购数量","采购单状态","预计到货时间","最后签收时间","已到货数量","已入库数量","生产分配状态","待分配生产数","已分配生产数","已生产数"
};
foreach (var item in cols)
{
table.Columns.Add(item);
}
foreach (var itemData in list)
{
DataRow row = table.NewRow();
row["仓库名称"] = itemData.warehouse_name;
row["仓库编码"] = itemData.warehouse_code;
row["产品名称"] = itemData.product_title;
row["可用库存"] = itemData.stock;
row["采购在途数"] = itemData.quantity_not_inbound;
row["调拨在途数"] = itemData.quantity_transfer;
row["暂存区数"] = itemData.quantity_transfer_temporary_storage;
row["临时在途数"] = itemData.quantity_transfer_temp_schedule;
row["调拨单在途数"] = itemData.quantity_transfer_order;
row["商品来源"] = itemData.product_type_desc;
row["采购员"] = itemData.buyer_name;
row["过去7天日均"] = itemData.history_sevenday_sales;
row["过去14天日均"] = itemData.history_fourteenday_sales;
row["过去30天日均"] = itemData.history_thirtyday_sales;
row["sku状态"] = itemData.forecast_type_str;
row["采购单号"] = itemData.purchase_id;
row["采购数量"] = itemData.quantity_purchase;
row["采购单状态"] = itemData.purchase_status;
row["预计到货时间"] = itemData.purchase_arrivaldate;
row["最后签收时间"] = itemData.last_signtime == null ? "" : itemData.last_signtime.Value.ToString("yyyy-MM-dd HH:mm:ss");
row["已到货数量"] = itemData.quantity_arrival;
row["已入库数量"] = itemData.quantity_inbound;
row["生产分配状态"] = itemData.prod_status;
row["待分配生产数"] = itemData.prod_not_distribution_quantity;
row["已分配生产数"] = itemData.prod_distribution_quantity;
row["已生产数"] = itemData.prod_quantity;
table.Rows.Add(row);
}
CsvFileHelper.SaveCSV(table, fileName, page == 1);
page++;
}
return fileName;
}
catch (Exception)
{
export_count--;
throw;
}
}
public async void GenerateData()
{
try
......
......@@ -59,6 +59,9 @@ namespace AutoTurnOver.Services
case "退货汇总":
item.result_file_url = await DownloadReturnGoods(item.parameter, item);
break;
case "供应链采购在途":
item.result_file_url = await DownloadFullLinkPurchase(item.parameter, item);
break;
default: throw new Exception("无法识别的任务");
}
item.end_date = DateTime.Now;
......@@ -164,6 +167,20 @@ namespace AutoTurnOver.Services
return fileData;
}
/// <summary>
/// 下载供应链采购在途
/// </summary>
public async Task<string> DownloadFullLinkPurchase(string par_json, dc_task_download download_data)
{
dc_base_stock_search_dto search_data = par_json.ToObject<dc_base_stock_search_dto>();
Console.WriteLine("DownloadStock - 开始生成文件");
var memory = new DailyServices().FullLinkPurchaseExport(search_data);
Console.WriteLine("DownloadStock - 开始生成上传文件");
var fileData = await AutoTurnOver.Utility.QiNiuCloudHelper.UploadSectioningAsync(memory);
Console.WriteLine("DownloadStock - 上传完毕");
return fileData;
}
/// <summary>
/// 下载库存
/// </summary>
public async Task<string> DownloadFbaStock(string par_json, dc_task_download download_data)
......
......@@ -87,7 +87,46 @@ namespace AutoTurnOver.Controllers
});
}
}
/// <summary>
/// <summary>
/// 供应链采购在途
/// </summary>
/// <param name="sku"></param>
/// <param name="warehousecode"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <returns></returns>
[UseAction]
[BrowseLog("Bailun_aims", "访问【百伦自动周转系统】->【实时数据】->【供应链采购在途】->【搜索】页面", 0)]
public JsonResult FullLinkPurchaseList([FromQuery]dc_base_stock_search_dto search_data)
{
try
{
var services = new DailyServices();
var total = 0;
var list = services.FullLinkPurchaseList(search_data, ref total);
return new JsonResult(new
{
rows = list,
total = total,
});
}
catch (Exception ex)
{
return new JsonResult(new
{
message = ex.Message,
stack_trace = ex.StackTrace
});
}
} /// <summary>
/// 实时库存
/// </summary>
/// <param name="sku"></param>
......@@ -331,9 +370,26 @@ namespace AutoTurnOver.Controllers
return new JsonResult(new { success = false,message = ex.Message });
}
//int total = 0;
//var memory = new DailyServices().Export(user, monitor_status, searchType, key_words, warehousecode, supplier_name, offset, limit, ref total, warehousetype, warehousearea, has_tort: has_tort, buyer_name: buyer_name, start_date: start_date, end_date: end_date, f_start_date: f_start_date, f_end_date: f_end_date);
//return File(memory, "text/csv", $"{user.UserAccount}实时库存.csv");
}
public JsonResult ExportFullLinkPurchase([FromQuery]dc_base_stock_search_dto search_data)
{
try
{
var user = AutoUtility.GetUser();
search_data.limit = int.MaxValue;
dc_task_download_dao.PushData<dc_base_stock_search_dto>(new dc_task_download
{
parameter = search_data.ToJson(),
task_name = "供应链采购在途"
}, user);
return new JsonResult(new { success = true });
}
catch (Exception ex)
{
return new JsonResult(new { success = false,message = ex.Message });
}
}
/// <summary>
......
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