各取土场运输量统计
parent
4e79a6fbc0
commit
ca995fd7de
|
|
@ -3237,47 +3237,51 @@ public class OrderStatService {
|
||||||
List<Record> sups = Db.find("select t.* from supermarket t \n" +
|
List<Record> sups = Db.find("select t.* from supermarket t \n" +
|
||||||
" where t.type = 1"); //取土场
|
" where t.type = 1"); //取土场
|
||||||
|
|
||||||
|
if(sups == null || sups.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String dynamicSql = "";
|
||||||
|
for (int s = 0; s < sups.size(); s++) {
|
||||||
|
Integer id = sups.get(s).getInt("id");
|
||||||
|
dynamicSql += "ifnull( sum( CASE WHEN g.sandfarm_id = " + id+ " THEN g.count END ), 0 ) xsc_"+ id +",\n" +
|
||||||
|
" ifnull( sum( CASE WHEN g.sandfarm_id = " + id+ " THEN g.source_weight END ), 0 ) xss_"+ id +",\n" +
|
||||||
|
" ifnull( sum( CASE WHEN g.sandfarm_id = " + id+ " THEN g.weight END ), 0 ) xsw_"+ id +",\n" +
|
||||||
|
" ifnull( sum( CASE WHEN g.sandfarm_id = " + id+ " THEN g.trans_price END ), 0 ) xst_"+ id +",\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
String sql = "SELECT\n" +
|
String sql = "SELECT\n" +
|
||||||
" g.trans_co_id,\n" +
|
" g.trans_co_id,\n" +
|
||||||
" g.license,\n" +
|
" g.license,\n" +
|
||||||
" ifnull( sum( g.count ), 0 ) count,\n" +
|
" ifnull( sum( g.count ), 0 ) count,\n" +
|
||||||
" ifnull( sum( g.source_weight ), 0 ) source_weight,\n" +
|
" ifnull( sum( g.source_weight ), 0 ) source_weight,\n" +
|
||||||
" ifnull( sum( g.weight ), 0 ) weight,\n" +
|
" ifnull( sum( g.weight ), 0 ) weight,\n" +
|
||||||
" ifnull( sum( g.trans_price ), 0 ) total_price,\n" +
|
dynamicSql +
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 2 THEN g.count END ), 0 ) xsc_2,\n" +
|
" ifnull( sum( g.trans_price ), 0 ) trans_price\n" +
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 2 THEN g.source_weight END ), 0 ) xss_2,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 2 THEN g.weight END ), 0 ) xsw_2,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 2 THEN g.trans_price END ), 0 ) xst_2\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 3 THEN g.count END ), 0 ) xsc_3,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 3 THEN g.source_weight END ), 0 ) xss_3,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 3 THEN g.weight END ), 0 ) xsw_3,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 3 THEN g.trans_price END ), 0 ) xst_3,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 4 THEN g.count END ), 0 ) xsc_4,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 4 THEN g.source_weight END ), 0 ) xss_4,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 4 THEN g.weight END ), 0 ) xsw_4,\n" +
|
|
||||||
" ifnull( sum( CASE WHEN g.supermarket_id = 4 THEN g.trans_price END ), 0 ) xst_4\n" +
|
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" (\n" +
|
" (\n" +
|
||||||
" SELECT\n" +
|
" SELECT\n" +
|
||||||
" ifnull( t.trans_co_id, ifnull( ot.trans_co_id, 0 ) ) trans_co_id,\n" +
|
" ifnull( ot.trans_co_id, ifnull( ot.trans_co_id, 0 ) ) trans_co_id,\n" +
|
||||||
" t.supermarket_id,\n" +
|
" ot.sandfarm_id,\n" +
|
||||||
" t.truck_license license,\n" +
|
" ot.truck_license license,\n" +
|
||||||
" ifnull( count( ot.sn ), 0 ) count,\n" +
|
" ifnull( count( ot.sn ), 0 ) count,\n" +
|
||||||
" ifnull( sum( t.weight ), 0 ) weight,\n" +
|
" ifnull( sum( t.weight ), 0 ) weight,\n" +
|
||||||
" ifnull( sum( ot.weight ), 0 ) source_weight,\n" +
|
" ifnull( sum( ot.weight ), 0 ) source_weight,\n" +
|
||||||
" ifnull( sum( ot.trans_price ), 0 ) trans_price \n" +
|
" ifnull( sum( ot.trans_price ), 0 ) trans_price \n" +
|
||||||
" FROM\n" +
|
" FROM\n" +
|
||||||
" order_temp t \n" +
|
" order_transfer ot \n" +
|
||||||
" LEFT JOIN order_transfer ot ON ot.old_sn = t.sn " +
|
" LEFT JOIN order_temp t ON ot.old_sn = t.sn " +
|
||||||
" WHERE\n" +
|
" WHERE\n" +
|
||||||
" t.create_time >= ? \n" +
|
" ot.create_time >= ? \n" +
|
||||||
" AND t.create_time <= ? \n" +
|
" AND ot.create_time <= ? \n" +
|
||||||
" AND t.state = 5 " +
|
" AND ot.state = 5 " +
|
||||||
" GROUP BY\n" +
|
" GROUP BY\n" +
|
||||||
" t.trans_co_id,\n" +
|
" ot.trans_co_id,\n" +
|
||||||
" t.truck_license,\n" +
|
" ot.truck_license,\n" +
|
||||||
" t.supermarket_id\n" +
|
" ot.sandfarm_id\n" +
|
||||||
" ) g LEFT JOIN supermarket s ON s.id = g.supermarket_id \n" +
|
" ) g LEFT JOIN supermarket s ON s.id = g.sandfarm_id \n" +
|
||||||
" WHERE s.type = 1 \n" +
|
" WHERE s.type = 1 \n" +
|
||||||
"GROUP BY\n" +
|
"GROUP BY\n" +
|
||||||
" g.trans_co_id," +
|
" g.trans_co_id," +
|
||||||
|
|
@ -3335,22 +3339,6 @@ public class OrderStatService {
|
||||||
|
|
||||||
List<Record> typelist = Db.find("select id trans_co_id, name trans_name from transport_company ORDER BY ID ");
|
List<Record> typelist = Db.find("select id trans_co_id, name trans_name from transport_company ORDER BY ID ");
|
||||||
|
|
||||||
double all_count = 0.0;
|
|
||||||
double all_weight = 0.0;
|
|
||||||
double all_trans_price = 0.0;
|
|
||||||
double all_xst_2 = 0.0;
|
|
||||||
double all_xsc_2 = 0.0;
|
|
||||||
double all_xss_2 = 0.0;
|
|
||||||
double all_xsw_2 = 0.0;
|
|
||||||
double all_xst_3 = 0.0;
|
|
||||||
double all_xsc_3 = 0.0;
|
|
||||||
double all_xss_3 = 0.0;
|
|
||||||
double all_xsw_3 = 0.0;
|
|
||||||
double all_xst_4 = 0.0;
|
|
||||||
double all_xsc_4 = 0.0;
|
|
||||||
double all_xss_4 = 0.0;
|
|
||||||
double all_xsw_4 = 0.0;
|
|
||||||
|
|
||||||
typelist.add(new Record().set("trans_co_id", 0).set("trans_name", "未分类"));
|
typelist.add(new Record().set("trans_co_id", 0).set("trans_name", "未分类"));
|
||||||
|
|
||||||
for (Record record : typelist) {
|
for (Record record : typelist) {
|
||||||
|
|
@ -3360,71 +3348,17 @@ public class OrderStatService {
|
||||||
List<Record> list = typemap.get(trans_co_id);
|
List<Record> list = typemap.get(trans_co_id);
|
||||||
record.set("children", list);
|
record.set("children", list);
|
||||||
|
|
||||||
double count = 0.0;
|
record.set("count", list.stream().map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double weight = 0.0;
|
record.set("source_weight", list.stream().map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double trans_price = 0.0;
|
record.set("trans_price", list.stream().map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double xst_2 = 0.0; // 运输费(元)
|
for (Record sup : sups) {
|
||||||
double xsc_2 = 0.0; // 车次
|
Integer id = sup.getInt("id");
|
||||||
double xss_2 = 0.0; // 总进场(吨)
|
record.set("xsc_"+id, list.stream().map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double xsw_2 = 0.0; // 总出场(吨)
|
record.set("xst_"+id, list.stream().map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double xst_3 = 0.0;
|
record.set("xss_"+id, list.stream().map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double xsc_3 = 0.0;
|
record.set("xsw_"+id, list.stream().map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
double xss_3 = 0.0;
|
|
||||||
double xsw_3 = 0.0;
|
|
||||||
double xst_4 = 0.0;
|
|
||||||
double xsc_4 = 0.0;
|
|
||||||
double xss_4 = 0.0;
|
|
||||||
double xsw_4 = 0.0;
|
|
||||||
|
|
||||||
for (Record r : list) {
|
|
||||||
count += DataUtil.getDefaultByRecord(r, "count");
|
|
||||||
weight += DataUtil.getDefaultByRecord(r, "weight");
|
|
||||||
trans_price += DataUtil.getDefaultByRecord(r, "trans_price");
|
|
||||||
xsc_2 += DataUtil.getDefaultByRecord(r, "xsc_2");
|
|
||||||
xst_2 += DataUtil.getDefaultByRecord(r, "xst_2");
|
|
||||||
xss_2 += DataUtil.getDefaultByRecord(r, "xss_2");
|
|
||||||
xsw_2 += DataUtil.getDefaultByRecord(r, "xsw_2");
|
|
||||||
xsc_3 += DataUtil.getDefaultByRecord(r, "xsc_3");
|
|
||||||
xst_3 += DataUtil.getDefaultByRecord(r, "xst_3");
|
|
||||||
xss_3 += DataUtil.getDefaultByRecord(r, "xss_3");
|
|
||||||
xsw_3 += DataUtil.getDefaultByRecord(r, "xse_3");
|
|
||||||
xsc_4 += DataUtil.getDefaultByRecord(r, "xsc_4");
|
|
||||||
xst_4 += DataUtil.getDefaultByRecord(r, "xst_4");
|
|
||||||
xss_4 += DataUtil.getDefaultByRecord(r, "xss_4");
|
|
||||||
xsw_4 += DataUtil.getDefaultByRecord(r, "xse_4");
|
|
||||||
|
|
||||||
all_count += DataUtil.getDefaultByRecord(r, "count");
|
|
||||||
all_weight += DataUtil.getDefaultByRecord(r, "weight");
|
|
||||||
all_trans_price += DataUtil.getDefaultByRecord(r, "trans_price");
|
|
||||||
all_xsc_2 += DataUtil.getDefaultByRecord(r, "xsc_2");
|
|
||||||
all_xst_2 += DataUtil.getDefaultByRecord(r, "xst_2");
|
|
||||||
all_xss_2 += DataUtil.getDefaultByRecord(r, "xss_2");
|
|
||||||
all_xsw_2 += DataUtil.getDefaultByRecord(r, "xsw_2");
|
|
||||||
all_xsc_3 += DataUtil.getDefaultByRecord(r, "xsc_3");
|
|
||||||
all_xst_3 += DataUtil.getDefaultByRecord(r, "xst_3");
|
|
||||||
all_xss_3 += DataUtil.getDefaultByRecord(r, "xss_3");
|
|
||||||
all_xsw_3 += DataUtil.getDefaultByRecord(r, "xse_3");
|
|
||||||
all_xsc_4 += DataUtil.getDefaultByRecord(r, "xsc_4");
|
|
||||||
all_xst_4 += DataUtil.getDefaultByRecord(r, "xst_4");
|
|
||||||
all_xss_4 += DataUtil.getDefaultByRecord(r, "xss_4");
|
|
||||||
all_xsw_4 += DataUtil.getDefaultByRecord(r, "xse_4");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
record.set("count", count);
|
|
||||||
record.set("weight", weight);
|
|
||||||
record.set("trans_price", trans_price);
|
|
||||||
record.set("xsc_2", xsc_2);
|
|
||||||
record.set("xst_2", xst_2);
|
|
||||||
record.set("xss_2", xss_2);
|
|
||||||
record.set("xsw_2", xsw_2);
|
|
||||||
record.set("xst_3", xst_3);
|
|
||||||
record.set("xsc_3", xsc_3);
|
|
||||||
record.set("xss_3", xss_3);
|
|
||||||
record.set("xsw_3", xsw_3);
|
|
||||||
record.set("xst_4", xst_4);
|
|
||||||
record.set("xsc_4", xsc_4);
|
|
||||||
record.set("xss_4", xss_4);
|
|
||||||
record.set("xsw_4", xsw_4);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3436,21 +3370,16 @@ public class OrderStatService {
|
||||||
|
|
||||||
record.set("trans_co_id", -1);
|
record.set("trans_co_id", -1);
|
||||||
record.set("trans_name", "合计");
|
record.set("trans_name", "合计");
|
||||||
record.set("count", all_count);
|
record.set("count", trans_co_list.stream().map(o->o.getBigDecimal("count")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("weight", all_weight);
|
record.set("source_weight", trans_co_list.stream().map(o->o.getBigDecimal("source_weight")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("trans_price", all_trans_price);
|
record.set("trans_price", trans_co_list.stream().map(o->o.getBigDecimal("trans_price")).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("xst_2", all_xst_2);
|
for (Record sup : sups) {
|
||||||
record.set("xsc_2", all_xsc_2);
|
Integer id = sup.getInt("id");
|
||||||
record.set("xss_2", all_xss_2);
|
record.set("xsc_"+id, trans_co_list.stream().map(o->o.getBigDecimal("xsc_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("xsw_2", all_xsw_2);
|
record.set("xst_"+id, trans_co_list.stream().map(o->o.getBigDecimal("xst_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("xsc_3", all_xsc_3);
|
record.set("xss_"+id, trans_co_list.stream().map(o->o.getBigDecimal("xss_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("xst_3", all_xst_3);
|
record.set("xsw_"+id, trans_co_list.stream().map(o->o.getBigDecimal("xsw_"+id)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||||
record.set("xss_3", all_xss_3);
|
}
|
||||||
record.set("xsw_3", all_xsw_3);
|
|
||||||
record.set("xsc_4", all_xsc_4);
|
|
||||||
record.set("xst_4", all_xst_4);
|
|
||||||
record.set("xss_4", all_xss_4);
|
|
||||||
record.set("xsw_4", all_xsw_4);
|
|
||||||
|
|
||||||
|
|
||||||
typelist.add(record);
|
typelist.add(record);
|
||||||
|
|
@ -5199,3 +5128,4 @@ public class OrderStatService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -556,6 +556,7 @@ public class OrderStatController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 固定、零散配额指定年的销售统计汇总数据
|
* 固定、零散配额指定年的销售统计汇总数据
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue