Commit 52935b09 by 泽锋 李

新增供应链调拨在途查询

parent 25ce5a8f
...@@ -1616,27 +1616,33 @@ left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code ...@@ -1616,27 +1616,33 @@ left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code
sql = @" sql = @"
select select
sum(ifnull(t1.quantity_purchase,0)) as 'quantity_purchase', sum(ifnull(t2.deliverycount - t2.storagecount,0)) as 'not_storage',
sum(ifnull(t1.`quantity_arrival`,0)) as 'quantity_arrival',
sum(ifnull(t1.`quantity_inbound`,0)) as 'quantity_inbound',
sum(ifnull(t1.`quantity_not_inbound`,0)) as 'quantity_not_inbound'
from dc_base_purchase_details as t1 from dc_base_transfer_info as t1
left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code left join dc_base_transfer_info_skus as t2 on t1.dataid =t2.dataid
left join dc_base_warehouse as t3 on t1.targetwareno =t3.warehouse_code
left join dc_base_sku as t4 on t2.sku = t4.bailun_sku
left join dc_base_stock as t5 on t2.sku = t5.bailun_sku and t1.targetwareno = t5.warehouse_code
left join dc_auto_turnover as t6 on t2.sku = t6.bailun_sku and t1.targetwareno = t6.warehouse_code
left join dc_auto_forecast_fluctuation as t7 on t2.sku = t7.bailun_sku and t1.targetwareno = t7.warehouse_code
left join dc_lms_order_transfer_current_node as t8 on t1.dataid = t8.data_id and t2.sku = t8.sku
"; ";
if ((categoryModels != null && categoryModels.Count >= 1) || !string.IsNullOrWhiteSpace(search_data.buyer_name) || search_data.product_type > 0) if ((categoryModels != null && categoryModels.Count >= 1) || !string.IsNullOrWhiteSpace(search_data.buyer_name) || search_data.product_type > 0)
{ {
sql += " left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku "; sql += " left join dc_base_sku as t4 on t2.sku = t4.bailun_sku ";
} }
if (search_data.has_tort != null) if (search_data.has_tort != null)
{ {
sql += " left join dc_base_tort as t9 on t1.bailun_sku = t9.bailun_sku "; sql += " left join dc_base_tort as t9 on t2.sku = t9.bailun_sku ";
} }
if (search_data.monitor_status != null) if (search_data.monitor_status != null)
{ {
sql += " left join dc_auto_config_sku_warehouse as t10 on t1.bailun_sku = t10.bailun_sku and t1.warehouse_code = t10.warehouse_code "; sql += " left join dc_auto_config_sku_warehouse as t10 on t2.sku = t10.bailun_sku and t1.warehouse_code = t10.warehouse_code ";
} }
sql += " where t1.`status` not in (-1,4) and t1.has_delete =0 and t1.quantity_not_inbound > 0 ";
sql += " t1.stateid !=5 and t2.deliverycount > t2.storagecount and t1.isdeleted=0 ";
} }
else else
{ {
...@@ -1669,7 +1675,8 @@ t8.node_name, ...@@ -1669,7 +1675,8 @@ t8.node_name,
t8.surplus_node_days, t8.surplus_node_days,
t8.expectarrivaltime as 'node_expectarrivaltime', t8.expectarrivaltime as 'node_expectarrivaltime',
t8.logistics_code, t8.logistics_code,
t8.logistics_name t8.logistics_name,
t8.sign_exe
from dc_base_transfer_info as t1 from dc_base_transfer_info as t1
left join dc_base_transfer_info_skus as t2 on t1.dataid =t2.dataid left join dc_base_transfer_info_skus as t2 on t1.dataid =t2.dataid
...@@ -1714,7 +1721,7 @@ left join dc_base_stock as t5 on t2.sku = t5.bailun_sku and t1.targetwareno = t5 ...@@ -1714,7 +1721,7 @@ left join dc_base_stock as t5 on t2.sku = t5.bailun_sku and t1.targetwareno = t5
countSql += " left join dc_auto_config_sku_warehouse as t10 on t2.sku = t10.bailun_sku and t1.warehouse_code = t10.warehouse_code "; countSql += " left join dc_auto_config_sku_warehouse as t10 on t2.sku = t10.bailun_sku and t1.warehouse_code = t10.warehouse_code ";
} }
countSql += " where t1.`status` not in (-1,4) and t1.has_delete =0 and t1.quantity_not_inbound > 0 "; countSql += " t1.stateid !=5 and t2.deliverycount > t2.storagecount and t1.isdeleted=0 ";
......
...@@ -21,6 +21,26 @@ namespace AutoTurnOver.Models ...@@ -21,6 +21,26 @@ namespace AutoTurnOver.Models
public string buyer_name { get; set; } public string buyer_name { get; set; }
public string product_type_desc { get; set; } public string product_type_desc { get; set; }
public int? forecast_type { get; set; } public int? forecast_type { get; set; }
public int? sign_exe { 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 order_no { get; set; } public string order_no { get; set; }
public string transporttype { get; set; } public string transporttype { get; set; }
public string dataid { get; set; } public string dataid { get; set; }
......
...@@ -58,6 +58,15 @@ namespace AutoTurnOver.Services ...@@ -58,6 +58,15 @@ namespace AutoTurnOver.Services
} }
return DB.daily.FullLinkPurchaseList(search_data, categoryModels, ref total); return DB.daily.FullLinkPurchaseList(search_data, categoryModels, ref total);
} }
public List<order_transfer_full_link_dto> FullLinkTransferList(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.FullLinkTransferList(search_data, categoryModels, ref total);
}
public List<dc_base_stock_fba_dto> RealtimeFbaList(dc_base_stock_search_dto search_data,ref int total) public List<dc_base_stock_fba_dto> RealtimeFbaList(dc_base_stock_search_dto search_data,ref int total)
{ {
...@@ -585,6 +594,89 @@ namespace AutoTurnOver.Services ...@@ -585,6 +594,89 @@ namespace AutoTurnOver.Services
} }
} }
public string FullLinkTransferExport(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.FullLinkTransferList(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.sku;
row["仓库名称"] = itemData.warehouse_name;
row["仓库编码"] = itemData.warehouse_code;
row["中文信息"] = itemData.sku_name;
row["可用库存"] = itemData.stock;
row["调拨在途数"] = itemData.not_storage;
row["过去7天日均"] = itemData.history_sevenday_sales;
row["过去14天日均"] = itemData.history_fourteenday_sales;
row["过去30天日均"] = itemData.history_thirtyday_sales;
row["商品来源"] = itemData.product_type_desc;
row["采购员"] = itemData.buyer_name;
row["sku状态"] = itemData.forecast_type_str;
row["调拨单号"] = itemData.order_no;
row["物流跟踪号"] = itemData.trackingno;
row["物流转单号"] = itemData.transfer_no;
row["头程方式"] = itemData.transporttype;
row["调拨单状态"] = itemData.dataid;
row["物流渠道"] = itemData.logistics_name;
row["物流渠道编码"] = itemData.logistics_code;
row["物流节点状态"] = itemData.node_name;
row["物流节点时间"] = itemData.node_date;
row["物流异常"] = itemData.sign_exe==1?"有异常":"无异常";
row["目标到货"] = itemData.expectarrivaltime==null ? "" : itemData.expectarrivaltime.Value.ToString("yyyy-MM-dd HH:mm:ss");
row["预计到货"] = itemData.node_expectarrivaltime==null ? "" : itemData.node_expectarrivaltime.Value.ToString("yyyy-MM-dd HH:mm:ss");
table.Rows.Add(row);
}
CsvFileHelper.SaveCSV(table, fileName, page == 1);
page++;
}
return fileName;
}
catch (Exception)
{
export_count--;
throw;
}
}
public async void GenerateData() public async void GenerateData()
{ {
......
...@@ -62,6 +62,9 @@ namespace AutoTurnOver.Services ...@@ -62,6 +62,9 @@ namespace AutoTurnOver.Services
case "供应链采购在途": case "供应链采购在途":
item.result_file_url = await DownloadFullLinkPurchase(item.parameter, item); item.result_file_url = await DownloadFullLinkPurchase(item.parameter, item);
break; break;
case "供应链调拨在途":
item.result_file_url = await DownloadFullLinkTransfer(item.parameter, item);
break;
default: throw new Exception("无法识别的任务"); default: throw new Exception("无法识别的任务");
} }
item.end_date = DateTime.Now; item.end_date = DateTime.Now;
...@@ -181,6 +184,20 @@ namespace AutoTurnOver.Services ...@@ -181,6 +184,20 @@ namespace AutoTurnOver.Services
return fileData; return fileData;
} }
/// <summary> /// <summary>
/// 下载供应链调拨在途
/// </summary>
public async Task<string> DownloadFullLinkTransfer(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().FullLinkTransferExport(search_data);
Console.WriteLine("DownloadStock - 开始生成上传文件");
var fileData = await AutoTurnOver.Utility.QiNiuCloudHelper.UploadSectioningAsync(memory);
Console.WriteLine("DownloadStock - 上传完毕");
return fileData;
}
/// <summary>
/// 下载库存 /// 下载库存
/// </summary> /// </summary>
public async Task<string> DownloadFbaStock(string par_json, dc_task_download download_data) public async Task<string> DownloadFbaStock(string par_json, dc_task_download download_data)
......
...@@ -91,7 +91,6 @@ namespace AutoTurnOver.Controllers ...@@ -91,7 +91,6 @@ namespace AutoTurnOver.Controllers
} }
/// <summary> /// <summary>
/// <summary>
/// 供应链采购在途 /// 供应链采购在途
/// </summary> /// </summary>
/// <param name="sku"></param> /// <param name="sku"></param>
...@@ -124,7 +123,42 @@ namespace AutoTurnOver.Controllers ...@@ -124,7 +123,42 @@ namespace AutoTurnOver.Controllers
}); });
} }
} /// <summary> }
/// <summary>
/// 供应链调拨在途
/// </summary>
/// <param name="sku"></param>
/// <param name="warehousecode"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <returns></returns>
[BrowseLog("Bailun_aims", "访问【百伦自动周转系统】->【实时数据】->【供应链调拨在途】->【搜索】页面", 0)]
public JsonResult FullLinkTransferList([FromQuery]dc_base_stock_search_dto search_data)
{
try
{
var services = new DailyServices();
var total = 0;
var list = services.FullLinkTransferList(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
});
}
}
/// 实时库存 /// 实时库存
...@@ -193,6 +227,17 @@ namespace AutoTurnOver.Controllers ...@@ -193,6 +227,17 @@ namespace AutoTurnOver.Controllers
return new JsonResult(list == null || list.Count <= 0 ? new full_link_purchase_dto() : list[0]); return new JsonResult(list == null || list.Count <= 0 ? new full_link_purchase_dto() : list[0]);
} }
public JsonResult FullLinkTransferSumFooter([FromQuery]dc_base_stock_search_dto search_data)
{
var services = new DailyServices();
var total = 0;
search_data.isSum = true;
var list = services.FullLinkTransferList(search_data, ref total);
return new JsonResult(list == null || list.Count <= 0 ? new order_transfer_full_link_dto() : list[0]);
}
/// <summary> /// <summary>
/// 缺货推送记录 /// 缺货推送记录
...@@ -382,6 +427,25 @@ namespace AutoTurnOver.Controllers ...@@ -382,6 +427,25 @@ namespace AutoTurnOver.Controllers
} }
public JsonResult ExportFullLinkTransfer([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 });
}
}
public JsonResult ExportFullLinkPurchase([FromQuery]dc_base_stock_search_dto search_data) public JsonResult ExportFullLinkPurchase([FromQuery]dc_base_stock_search_dto search_data)
{ {
try try
......
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