From 909718510d4ec0916916bc213141babec54c1584 Mon Sep 17 00:00:00 2001 From: xiaocui <1334950895@qq.com> Date: Thu, 15 Apr 2021 11:51:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=82=E7=AB=99=E8=BF=90=E8=BE=93=E9=87=8F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=B7=BB=E5=8A=A0=E5=8F=91=E7=A5=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cowr/ssjygl/prepay/PrepayService.java | 13 +++- .../ssjygl/stat/sale/OrderStatService.java | 78 +++++++++++++++---- .../local/ssjygl/prepay/PrepayController.java | 6 +- 3 files changed, 76 insertions(+), 21 deletions(-) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java index d99c41d..4a27ffb 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java @@ -165,7 +165,7 @@ public class PrepayService { * @param etm * @return */ - public List consumption(Integer customer_id, Integer supermarket_id, String stm, String etm, String truck_license) { + public List consumption(Integer customer_id, Integer supermarket_id, String stm, String etm, String truck_license,Integer invoice_type) { String sale_sql = " select t.sn, t.supermarket_id, t.truck_license, t.weight, t.total_price, t.paid, t.customer_id, t.customer_name, t.create_time \n" + " from order_sale t \n" + " left join customer c on c.id = t.customer_id \n" + @@ -201,6 +201,13 @@ public class PrepayService { tempList.add(supermarket_id); } + if (invoice_type!=null) { + sale_sql += " and t.invoice_type = ?"; + saleList.add(invoice_type); + temp_sql += " and t.invoice_type = ?"; + tempList.add(invoice_type); + } + if (customer_id != null && customer_id > 0) { sale_sql += " and t.customer_id = ?"; saleList.add(customer_id); @@ -244,7 +251,7 @@ public class PrepayService { return Db.find(sql, paraList.toArray()); } - public Workbook consumptionExport(Integer customer_id, Integer supermarket_id, String stm, String etm, String truck_license) { + public Workbook consumptionExport(Integer customer_id, Integer supermarket_id, String stm, String etm, String truck_license,Integer invoice_type) { Customer customer = Customer.dao.findById(customer_id); String cname = ""; @@ -252,7 +259,7 @@ public class PrepayService { cname = customer.getName(); } - List list = consumption(customer_id, supermarket_id, stm, etm, truck_license); + List list = consumption(customer_id, supermarket_id, stm, etm, truck_license,invoice_type); list.sort(new Comparator() { public int compare(Record o1, Record o2) { diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java index baff025..cbe3500 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/stat/sale/OrderStatService.java @@ -1839,8 +1839,8 @@ public class OrderStatService { return wb; } - public Workbook trafficStatisticsOfEachSandStationExport(String stm, String etm){ - List list=trafficStatisticsOfEachSandStation(stm, etm); + public Workbook trafficStatisticsOfEachSandStationExport(String stm, String etm,Integer invoice_type){ + List list=trafficStatisticsOfEachSandStation(stm, etm,invoice_type); Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet(stm.substring(0, 10) + " ~ " + etm.substring(0, 10) + "各砂站运输量统计表"); @@ -1953,22 +1953,22 @@ public class OrderStatService { /** * 各砂站运输量统计表 */ - public List trafficStatisticsOfEachSandStation( String stm, String etm){ + public List trafficStatisticsOfEachSandStation( String stm, String etm,Integer invoice_type){ List dataList = new ArrayList<>(); //零散用户统计 - Record scattered=scatteredUsersAreNotClassified(stm,etm); + Record scattered=scatteredUsersAreNotClassified(stm,etm,invoice_type); if(scattered.getBigDecimal("weight").compareTo(new BigDecimal("0"))>0||scattered.getBigDecimal("total_price").compareTo(new BigDecimal("0"))>0){ - Record scatteredSandStation=scatteredUsersClassificationStatistics(stm,etm); + Record scatteredSandStation=scatteredUsersClassificationStatistics(stm,etm,invoice_type); scattered.setColumns(scatteredSandStation); dataList.add(scattered); } //固定用户统计 - List recordList = fixedUserUnclassified(stm,etm); + List recordList = fixedUserUnclassified(stm,etm,invoice_type); if(recordList!=null&&!recordList.isEmpty()){ for (Record record : recordList) { if(record.getBigDecimal("weight").compareTo(new BigDecimal("0"))>0||record.getBigDecimal("total_price").compareTo(new BigDecimal("0"))>0){ Integer customer_id=record.getInt("customer_id"); - Record sandStation=fixedUserClassificationStatistics(stm, etm,customer_id); + Record sandStation=fixedUserClassificationStatistics(stm, etm,customer_id,invoice_type); record.setColumns(sandStation); } } @@ -1982,7 +1982,11 @@ public class OrderStatService { /** * 固定用户不分类统计:统计各个固定用户在所有砂站的销量和销售额 */ - public List fixedUserUnclassified(String stm, String etm){ + public List fixedUserUnclassified(String stm, String etm,Integer invoice_type){ + String paramsSql=""; + if(invoice_type!=null){ + paramsSql="and t.invoice_type=?\n"; + } String sql="SELECT\n" + "a.customer_name,\n" + " a.customer_id,\n" + @@ -2003,6 +2007,7 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 1 UNION\n" + "SELECT\n" + "t.sn,t.customer_id,\n" + @@ -2017,12 +2022,20 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 1 \n" + ") a\n" + " JOIN customer c ON c.id = a.customer_id \n" + "GROUP BY\n" + "a.customer_id,a.customer_name"; - List recordList = Db.find(sql, stm, etm, stm, etm); + + List recordList; + if(invoice_type!=null){ + recordList = Db.find(sql, stm, etm,invoice_type, stm, etm,invoice_type); + }else { + recordList = Db.find(sql, stm, etm, stm, etm); + } + return recordList; } @@ -2030,7 +2043,11 @@ public class OrderStatService { * 固定用户分类统计:统计各个固定用户在不同砂站的销量以及销售额 * @return */ - public Record fixedUserClassificationStatistics(String stm, String etm,Integer customer_id){ + public Record fixedUserClassificationStatistics(String stm, String etm,Integer customer_id,Integer invoice_type){ + String paramsSql=""; + if(invoice_type!=null){ + paramsSql="and t.invoice_type=?\n"; + } String sql="SELECT\n" + "ifnull( sum( CASE g.id WHEN 1 THEN g.weight END ), 0.00 ) zw_xsl,\n" + "ifnull( sum( CASE g.id WHEN 1 THEN g.total_price END ), 0.00 ) zw_xse,\n" + @@ -2081,6 +2098,7 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 1 UNION\n" + "SELECT\n" + "t.sn,t.supermarket_id AS id,\n" + @@ -2096,6 +2114,7 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 1 \n" + ") a\n" + "JOIN customer c ON c.id = a.customer_id \n" + @@ -2107,13 +2126,22 @@ public class OrderStatService { ") g \n" + "GROUP BY\n" + "g.customer_id"; - Record record = Db.findFirst(sql, stm,etm, stm,etm, customer_id); + Record record; + if(invoice_type!=null){ + record = Db.findFirst(sql, stm,etm,invoice_type, stm,etm,invoice_type, customer_id); + }else { + record = Db.findFirst(sql, stm,etm, stm,etm, customer_id); + } return total(record); } /** * 零散用户不分类统计:统计所有零散用户在所有砂站的销量和销售额 */ - public Record scatteredUsersAreNotClassified(String stm, String etm){ + public Record scatteredUsersAreNotClassified(String stm, String etm,Integer invoice_type){ + String paramsSql=""; + if(invoice_type!=null){ + paramsSql="and t.invoice_type=?\n"; + } String sql="SELECT '零散用户' customer_name, 0 customer_id,\n" + "ifnull(sum( a.weight ),0) weight,\n" + "ifnull(sum( a.total_price ),0) total_price\n" + @@ -2129,6 +2157,7 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=?\n" + "AND t.create_time <=?\n" + + paramsSql+ "AND t.isprepaid = 0 UNION\n" + "SELECT\n" + "t.sn,t.weight,\n" + @@ -2140,9 +2169,16 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=?\n" + "AND t.create_time <=?\n" + + paramsSql+ "AND t.isprepaid = 0 \n" + ") a"; - Record record = Db.findFirst(sql, stm, etm, stm, etm); + Record record; + if(invoice_type!=null){ + record = Db.findFirst(sql, stm, etm,invoice_type, stm, etm,invoice_type); + }else { + record = Db.findFirst(sql, stm, etm, stm, etm); + } + return record; } @@ -2152,7 +2188,11 @@ public class OrderStatService { * @param etm * @return */ - public Record scatteredUsersClassificationStatistics(String stm, String etm){ + public Record scatteredUsersClassificationStatistics(String stm, String etm,Integer invoice_type){ + String paramsSql=""; + if(invoice_type!=null){ + paramsSql="and t.invoice_type=?\n"; + } String sql="select \n" + "ifnull( sum( CASE g.id WHEN 1 THEN IFNULL( g.weight, 0 ) END ), 0 ) zw_xsl,\n" + "ifnull( sum( CASE g.id WHEN 1 THEN IFNULL( g.total_price, 0 ) END ), 0 ) zw_xse,\n" + @@ -2185,6 +2225,7 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 0 UNION\n" + "SELECT\n" + "t.sn,t.supermarket_id AS id,\n" + @@ -2196,9 +2237,16 @@ public class OrderStatService { "t.state = 5 \n" + "AND t.create_time >=? \n" + "AND t.create_time <=? \n" + + paramsSql+ "AND t.isprepaid = 0 ) n on m.id=n.id\n" + ") g"; - Record record = Db.findFirst(sql, stm,etm, stm,etm); + + Record record; + if(invoice_type!=null) { + record = Db.findFirst(sql, stm,etm,invoice_type, stm,etm,invoice_type); + }else { + record = Db.findFirst(sql, stm,etm, stm,etm); + } return total(record); } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/prepay/PrepayController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/prepay/PrepayController.java index f52ff0c..6b15631 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/prepay/PrepayController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/prepay/PrepayController.java @@ -30,11 +30,11 @@ public class PrepayController extends BaseController { String stm = get("stm"); String etm = get("etm"); String truck_license = get("truck_license"); - + Integer invoice_type = getInt("invoice_type"); if (export == 0) { - renderJson(Result.success(PrepayService.me.consumption(customer_id, supermarket_id, stm, etm, truck_license))); + renderJson(Result.success(PrepayService.me.consumption(customer_id, supermarket_id, stm, etm, truck_license,invoice_type))); } else { - Workbook wb = PrepayService.me.consumptionExport(customer_id, supermarket_id, stm, etm, truck_license); + Workbook wb = PrepayService.me.consumptionExport(customer_id, supermarket_id, stm, etm, truck_license,invoice_type); render(new ExcelRender("消费记录_" + System.currentTimeMillis() + ".xlsx", wb)); } }