From 421e01bc2af7515bb67df5f7f81652710b403067 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期五, 10 二月 2023 16:41:24 +0800 Subject: [PATCH] 增加功能 --- xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskMapper.xml | 6 + xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java | 2 xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ICarService.java | 4 + xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ICarServiceImpl.java | 9 ++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/CarMapper.java | 11 +++ xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java | 30 +++++++++- xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java | 51 +++++++++++------ xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml | 35 ++++++----- 8 files changed, 105 insertions(+), 43 deletions(-) diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java index df00ea4..e5a0da8 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/CarController.java @@ -129,25 +129,40 @@ public Result<List<Car>> getInfo(String beginTime,String endTime) { java.text.DecimalFormat df =new java.text.DecimalFormat("#.##"); - QueryWrapper<Car> wrapper = new QueryWrapper<>(); - wrapper.ge(beginTime!=null && beginTime!="","a.add_date",beginTime); - wrapper.le(endTime!=null && endTime!="","a.add_date",endTime); - wrapper.groupBy("car_no"); - List<Car> list2 = iCarService.getCarInfo2(wrapper); - List<Car> list = iCarService.getCarInfo(); - for (Car car:list2){ - for (Car car1:list){ - if (car.getId().equals(car1.getId())){ - car1.setAmount(Double.parseDouble(df.format(car.getAmount()))); - car1.setMileage(Double.parseDouble(df.format(car.getMileage()))); - car1.setMoney(Double.parseDouble(df.format(car.getMoney()))); - car1.setAllAmount(Double.parseDouble(df.format(car1.getAllAmount()))); - car1.setAllMileage(Double.parseDouble(df.format(car1.getAllMileage()))); - car1.setAllMoney(Double.parseDouble(df.format(car1.getAllMoney()))); - continue; - } - } + QueryWrapper<AddOil> wrapper = new QueryWrapper<>(); + wrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime); + wrapper.le(endTime!=null && endTime!="","add_date",endTime); +// wrapper.groupBy("car_id"); + List<AddOil> addOilList = iAddOilService.list(wrapper); + List<Car> list = new ArrayList<>(); + Map<String, List<AddOil>> collect = addOilList.stream().collect(Collectors.groupingBy(AddOil::getCarId)); + for (Map.Entry<String, List<AddOil>> stringListEntry : collect.entrySet()) { + String key = stringListEntry.getKey(); + Car car = iCarService.getById(key); + Car carInfoByCarId = iCarService.getCarInfoByCarId(key); + car.setAmount(Double.parseDouble(df.format(carInfoByCarId.getAmount()))); + car.setMileage(Double.parseDouble(df.format(carInfoByCarId.getMileage()))); + car.setMoney(Double.parseDouble(df.format(carInfoByCarId.getMoney()))); + car.setAllAmount(Double.parseDouble(df.format(carInfoByCarId.getAllAmount()))); + car.setAllMileage(Double.parseDouble(df.format(carInfoByCarId.getAllMileage()))); + car.setAllMoney(Double.parseDouble(df.format(carInfoByCarId.getAllMoney()))); + list.add(car); } +// List<Car> list2 = iCarService.getCarInfo2(wrapper); +// List<Car> list = iCarService.getCarInfo(); +// for (Car car:list2){ +// for (Car car1:list){ +// if (car.getId().equals(car1.getId())){ +// car1.setAmount(Double.parseDouble(df.format(car.getAmount()))); +// car1.setMileage(Double.parseDouble(df.format(car.getMileage()))); +// car1.setMoney(Double.parseDouble(df.format(car.getMoney()))); +// car1.setAllAmount(Double.parseDouble(df.format(car1.getAllAmount()))); +// car1.setAllMileage(Double.parseDouble(df.format(car1.getAllMileage()))); +// car1.setAllMoney(Double.parseDouble(df.format(car1.getAllMoney()))); +// continue; +// } +// } +// } return new ResultUtil<List<Car>>().setData(list); } diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java index e687fdc..f85d9b6 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/entity/OrderStatusCount.java @@ -80,4 +80,6 @@ private String fiveBatch; @ExcelIgnore private String sendMonth; + @ExcelIgnore + private Integer proportionInt; } diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/CarMapper.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/CarMapper.java index 0f88580..1db91a0 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/CarMapper.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/mapper/CarMapper.java @@ -58,4 +58,13 @@ "from t_car") Month getCarCount(@Param("year")Integer year); -} \ No newline at end of file + @Select("SELECT\n" + + "\t( MAX( amount ) - MIN( amount ) ) AS amount,\n" + + "\tSUM( money ) AS money,\n" + + "\t( MAX( mileage ) - MIN( mileage ) ) AS mileage, \n" + + "\tSUM(amount) AS allAmount,SUM(money) AS allMoney,(MAX(mileage)) AS allMileage \n"+ + "FROM\n" + + "\t t_add_oil a\n" + + "\t WHERE a.car_id = #{carId}") + Car getCarInfoByCarId(@Param("carId")String carId); +} diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ICarService.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ICarService.java index 3f1d827..86c8fca 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ICarService.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/service/ICarService.java @@ -24,4 +24,6 @@ List<Car> getCarInfo2(QueryWrapper<Car> wrapper); Month getCarCount(Integer year); -} \ No newline at end of file + + Car getCarInfoByCarId(String carId); +} diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ICarServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ICarServiceImpl.java index fe0b165..c4c529c 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ICarServiceImpl.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ICarServiceImpl.java @@ -37,10 +37,12 @@ return carMapper.getAll2(initMpPage); } + @Override public List<Car> getCarInfo(){ return carMapper.getCarInfo(); } + @Override public List<Car> getCarInfo2(QueryWrapper<Car> wrapper){ return carMapper.getCarInfo2(wrapper); } @@ -49,4 +51,9 @@ public Month getCarCount(Integer year) { return carMapper.getCarCount(year); } -} \ No newline at end of file + + @Override + public Car getCarInfoByCarId(String carId) { + return carMapper.getCarInfoByCarId(carId); + } +} diff --git a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java index 34fd295..ca87496 100644 --- a/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java +++ b/xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/serviceimpl/ISignCountServiceImpl.java @@ -6,6 +6,7 @@ import cn.exrick.xboot.your.entity.SignCount; import cn.exrick.xboot.your.service.ISignCountService; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jodd.util.StringUtil; @@ -13,10 +14,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 鐘舵�佺粺璁¤〃鎺ュ彛瀹炵幇 @@ -41,9 +43,31 @@ page.setSize(-1); } if(StringUtil.isNotBlank(orderStatusCount.getStatisticalType())){ + IPage<OrderStatusCount> orderStatusCountIPage = this.signCountMapper.signCounts(orderStatusCount, page); + List<OrderStatusCount> records = orderStatusCountIPage.getRecords(); + Map<String, List<OrderStatusCount>> collect = records.stream().collect(Collectors.groupingBy(OrderStatusCount::getCarName)); + for (Map.Entry<String, List<OrderStatusCount>> stringListEntry : collect.entrySet()) { + for (Map.Entry<String, List<OrderStatusCount>> listEntry : stringListEntry.getValue().stream().collect(Collectors.groupingBy(OrderStatusCount::getBatch)).entrySet()) { + for (Map.Entry<String, List<OrderStatusCount>> listEntry1 : listEntry.getValue().stream().collect(Collectors.groupingBy(OrderStatusCount::getSendDate)).entrySet()) { + if(listEntry1.getValue().size() > 0){ + List<OrderStatusCount> value = listEntry1.getValue(); + OrderStatusCount orderStatusCount1 = value.get(0); + Double prodouble = value.stream().collect(Collectors.averagingInt(OrderStatusCount::getProportionInt)); + prodouble = (double)Math.round(prodouble*100)/100; + orderStatusCount1.setProportion(prodouble + "%"); + value.clear(); + value.add(orderStatusCount1); + listEntry1.setValue(value); + } + } - return this.signCountMapper.signCounts(orderStatusCount,page); + } + + } + List<OrderStatusCount> collect1 = records.stream().filter(f -> f.getProportion() != null).collect(Collectors.toList()); + orderStatusCountIPage.setRecords(collect1); + return orderStatusCountIPage; } return this.signCountMapper.signCount(orderStatusCount,page); } -} \ No newline at end of file +} diff --git a/xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskMapper.xml b/xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskMapper.xml index 638c0d3..0fc3dcd 100644 --- a/xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskMapper.xml +++ b/xboot-modules/xboot-your/src/main/resources/mapper/OrderTaskMapper.xml @@ -71,9 +71,11 @@ b.car_no, c.NAME, d.NAME, - a.send_date + a.send_date, + e.nickname, + a.id ORDER BY c.NAME ASC, a.send_date asc </select> -</mapper> \ No newline at end of file +</mapper> diff --git a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml index 7e2b84c..6ff70ab 100644 --- a/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml +++ b/xboot-modules/xboot-your/src/main/resources/mapper/SignCountMapper.xml @@ -21,7 +21,7 @@ sum(abnormal_sign) AS abnormalSign, sum(not_sign_count) AS notSignCount, sum(sign_count )AS signCount, - CONCAT_WS( '',ROUND(AVG(proportion),0), '%') as proportion, + ROUND(AVG(proportion),0) as proportionInt, </if> <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '4'.toString()"> YEAR(DATE_FORMAT(DATE_SUB(send_date,INTERVAL 1 DAY),'%Y-%m-%d')) sendDate, @@ -62,21 +62,16 @@ </if> </where> GROUP BY - <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '1'.toString()"> - DATE(send_date), - </if> - <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '2'.toString()"> - WEEK(send_date,1), - </if> - <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '3'.toString()"> - MONTH(send_date), - </if> - <if test="bo.StatisticalType!=null and bo.StatisticalType !='' and bo.StatisticalType == '4'.toString()"> - YEAR(send_date), - </if> + send_date, car_name, line, - batch + batch, + amount, + abnormal_sign, + not_sign_count, + sign_count, + proportion, + user_name ORDER BY line ASC, send_date asc @@ -128,12 +123,18 @@ </if> </where> GROUP BY - DATE(send_date), + send_date, car_name, line, - batch + batch, + amount, + abnormal_sign, + not_sign_count, + sign_count, + proportion, + user_name ORDER BY line ASC, send_date asc </select> -</mapper> \ No newline at end of file +</mapper> -- Gitblit v1.9.1