varliststock=cn.Query<Models.Warehouse.mWarehouseRedundancy>($@"select t1.bailun_sku,t1.warehouse_code,t1.usable_stock,t2.sku_title_cn,t2.unit_price,t3.warehouse_name,t4.quantity,t5.quantity_out_stock,t6.oneday_total_sales,t6.threeday_total_sales,t6.sevenday_total_sales,t6.fourteenday_total_sales,t6.thirtyday_total_sales,t6.threeday_average_sales,t6.sevenday_average_sales,t6.fourteenday_average_sales,t6.thirtyday_average_sales from dc_base_stock t1
varliststock=cn.Query<Models.Warehouse.mWarehouseRedundancy>($@"select t1.bailun_sku,t1.warehouse_code,t1.usable_stock,t2.sku_title_cn,t2.unit_price,t3.warehouse_name,t4.quantity,t5.quantity_out_stock,t6.oneday_total_sales,t6.threeday_total_sales,t6.sevenday_total_sales,t6.fourteenday_total_sales,t6.thirtyday_total_sales,t6.threeday_average_sales,t6.sevenday_average_sales,t6.fourteenday_average_sales,t6.thirtyday_average_sales,t7.quantity_purchase,t7.quantity_transfer from dc_base_stock t1
join dc_base_sku t2 on t1.bailun_sku=t2.bailun_sku
join dc_base_warehouse t3 on t1.warehouse_code=t3.warehouse_code
left join dc_auto_forecast_fluctuation t4 on t1.bailun_sku=t4.bailun_sku and t4.type=3 and t1.warehouse_code=t4.warehouse_code -- 仓库冗余
left join dc_mid_transit t5 on t1.bailun_sku=t5.bailun_sku and t1.warehouse_code=t5.warehouse_code
left join dc_daily_sales t6 on t1.bailun_sku=t6.bailun_sku and t6.record_date='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.warehouse_code=t6.warehouse_code limit {strlimit}",null,null,true,30*60);
left join dc_daily_sales t6 on t1.bailun_sku=t6.bailun_sku and t6.record_date='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.warehouse_code=t6.warehouse_code
left join dc_daily_transit t7 on t1.bailun_sku=t7.bailun_sku and t1.warehouse_code=t7.warehouse_code and t7.record_time='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}'
varsql1="select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by redundancy_amount desc limit 100";
varsql1="select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate,onway_count from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by redundancy_amount desc limit 100";
//前100冗余个数sku分析
varsql2="select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by redundancy_product_count desc limit 100";
varsql2="select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate,onway_count from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by redundancy_product_count desc limit 100";
//前100个数动销最快sku分析
varsql3="select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by productsale_rate desc limit 100";
varsql3="select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout,onway_count from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by productsale_rate desc limit 100";
//前100金额动销最快sku分析
varsql4="select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by saleamount_rate desc limit 100";
varsql4="select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout,onway_count from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+"' and day='"+day.ToString("yyyy-MM-dd")+"' order by saleamount_rate desc limit 100";