varliststock=cn.Query<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,t5.quantity_purchase,t5.quantity_transfer,t2.product_code,t2.bailun_category_id,t2.bailun_category_name,t7.status as 'monitorstatus',t8.tortstatus
varliststock=cn.Query<mWarehouseRedundancy>($@"select t1.bailun_sku,t1.warehouse_code,t1.usable_stock,t1.sku_title_cn,t1.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,t5.quantity_purchase,t5.quantity_transfer,t1.product_code,t1.bailun_category_id,t1.bailun_category_name,t7.status as 'monitorstatus',t8.tortstatus
from dc_base_stock t1
from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.sku_title_cn,t02.unit_price,t02.product_code,t02.bailun_category_id,t02.bailun_category_name from dc_base_stock t01
join dc_base_sku t2 on t1.bailun_sku=t2.bailun_sku
join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1
join dc_base_warehouse t3 on t1.warehouse_code=t3.warehouse_code
limit {strlimit}) t1
left join dc_auto_daily_redundance t4 on t4.record_time='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.bailun_sku=t4.bailun_sku and t1.warehouse_code=t4.warehouse_code -- 仓库冗余
join dc_base_warehouse t3 on t1.warehouse_code=t3.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_auto_daily_redundance t4 on t4.record_time='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.bailun_sku=t4.bailun_sku and t1.warehouse_code=t4.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
left join dc_mid_transit t5 on t1.bailun_sku=t5.bailun_sku and t1.warehouse_code=t5.warehouse_code
left join dc_auto_config_sku_warehouse t7 on t7.bailun_sku=t1.bailun_sku and t7.warehouse_code=t1.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
left join dc_sku_monitor t8 on t8.sku=t1.bailun_sku and t8.warehousecode=t1.warehouse_code
left join dc_auto_config_sku_warehouse t7 on t7.bailun_sku=t1.bailun_sku and t7.warehouse_code=t1.warehouse_code
limit {strlimit}",null,null,true,30*60);
left join dc_sku_monitor t8 on t8.sku=t1.bailun_sku and t8.warehousecode=t1.warehouse_code
select warehouse_code, warehouse_name, SUM(productcount) as skucount, count(bailun_sku) as productcount, sum(amount_total) as amount_total, sum(daily_productsale_count) as skusales_count, (sum(daily_productsale_count) / sum(productcount)) as skusales_rate, Count(if (daily_productsale_count > 0,1,null)) as daily_productsale_count,(count(if (daily_productsale_count > 0,1,null))/ count(bailun_sku)) as productsale_rate,sum(dailysale_amount) as dailysale_amount,(sum(dailysale_amount) / sum(amount_total)) as saleamount_rate,sum(redundancy_product_count) as redundancy_sku_count,(sum(redundancy_product_count) / SUM(productcount)) as redundancy_sku_rate,count(if (redundancy_product_count > 0,1,null)) as redundancy_product_count,(count(if (redundancy_product_count > 0,1,null))/ count(bailun_sku)) as redundancy_product_rate,sum(redundancy_amount) as redundancy_amount,(sum(redundancy_amount) / sum(amount_total)) as redundancy_amount_rate,`day`,sum(onway_count) as onway_count
from dc_mid_skuwarehouse_redundancy where `day`= '{DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}' group by warehouse_code; ",null,null,6*60);