bug
zhangzeli
2022-01-10 601d2f9df6efa3de3bbc261d5f63628d8e8be6a9
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/AddOilController.java
@@ -1,22 +1,34 @@
package cn.exrick.xboot.your.controller;
import cn.exrick.xboot.core.common.utils.ExcelUtil;
import cn.exrick.xboot.core.common.utils.PageUtil;
import cn.exrick.xboot.core.common.utils.ResultUtil;
import cn.exrick.xboot.core.common.vo.PageVo;
import cn.exrick.xboot.core.common.vo.Result;
import cn.exrick.xboot.your.entity.AddOil;
import cn.exrick.xboot.your.service.IAddOilService;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jodd.net.URLCoder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @author zhangzeli
@@ -39,19 +51,73 @@
        return new ResultUtil<AddOil>().setData(addOil);
    }
    @RequestMapping(value = "/getExcel", method = RequestMethod.GET)
    @ApiOperation(value = "通过车辆id获取")
    public Result<List<AddOil>> getExcel(String beginTime,String endTime) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        if (beginTime!=null && beginTime==""){
            //获取当前月第一天:
            Calendar c = Calendar.getInstance();
            c.add(Calendar.MONTH, 0);
            c.set(Calendar.DAY_OF_MONTH,1);
            beginTime = format.format(c.getTime());
        }
        if (endTime!=null && endTime==""){
            //获取当前月最后一天
            Calendar ca = Calendar.getInstance();
            ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
            endTime = format.format(ca.getTime());
        }
        QueryWrapper<AddOil> wrapper = new QueryWrapper<>();
        wrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime);
        wrapper.le(endTime!=null && endTime!="","add_date",endTime);
        List<AddOil> list = iAddOilService.getAddOil(wrapper);
        List<AddOil> addOilList = new ArrayList<>();
        Map<String, List<AddOil>> map = list.stream().collect(Collectors.groupingBy(AddOil::getCarNo));
        map.forEach((key, value) -> {
            for (AddOil addOil:
                    value) {
                addOilList.add(addOil);
            }
            AddOil addOil = new AddOil();
            java.text.DecimalFormat   df   =new   java.text.DecimalFormat("#.00");
            addOil.setCarNo("合计");
            addOil.setAmount(value.stream().map(e -> e.getAmount()).reduce(Double::sum).get());
            addOil.setMileage(value.stream().map(e -> e.getMileage()).reduce(Integer::sum).get());
            addOil.setMoney(value.stream().map(e -> e.getMoney()).reduce(Double::sum).get());
            Double f = addOil.getAmount()/addOil.getMileage()*100;
            BigDecimal b = new BigDecimal(f);
            addOil.setOilWear(b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
            addOilList.add(addOil);
            addOilList.add(new AddOil());
            addOilList.add(new AddOil());
            addOilList.add(new AddOil());
        });
        return new ResultUtil<List<AddOil>>().setData(addOilList);
    }
    @RequestMapping(value = "/getAll", method = RequestMethod.GET)
    @ApiOperation(value = "获取全部数据")
    public Result<List<AddOil>> getAll() {
        List<AddOil> list = iAddOilService.list();
        return new ResultUtil<List<AddOil>>().setData(list);
    }
    @RequestMapping(value = "/getByPage", method = RequestMethod.GET)
    @ApiOperation(value = "分页获取")
    public Result<IPage<AddOil>> getByPage(PageVo page) {
        IPage<AddOil> data = iAddOilService.page(PageUtil.initMpPage(page));
    public Result<IPage<AddOil>> getByPage(PageVo page,String carNo) {
        QueryWrapper<AddOil> wrapper = new QueryWrapper<>();
        if(!StrUtil.isEmpty(carNo))
            wrapper.like("b.car_no","%"+carNo+"%");
        IPage<AddOil> data = iAddOilService.page2(PageUtil.initMpPage(page),wrapper);
        return new ResultUtil<IPage<AddOil>>().setData(data);
    }
@@ -74,4 +140,5 @@
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}