wjli
2023-05-11 a067fdbf6b1374a1402096c722257575916eab99
xboot-modules/xboot-your/src/main/java/cn/exrick/xboot/your/controller/AddOilController.java
@@ -1,22 +1,36 @@
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.entity.Car;
import cn.exrick.xboot.your.service.IAddOilService;
import cn.exrick.xboot.your.service.ICarService;
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
@@ -30,6 +44,8 @@
    @Autowired
    private IAddOilService iAddOilService;
    @Autowired
    private ICarService iCarService;
    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
    @ApiOperation(value = "通过id获取")
@@ -39,10 +55,62 @@
        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("#.##");
            addOil.setCarNo("合计");
            addOil.setAmount(Double.parseDouble(df.format(value.stream().map(e -> e.getAmount()).reduce(Double::sum).get())));
            addOil.setMileage(value.stream().map(e -> e.getMileage()).reduce(Integer::sum).get());
            addOil.setMoney(Double.parseDouble(df.format(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);
    }
@@ -61,6 +129,11 @@
    @ApiOperation(value = "编辑或更新数据")
    public Result<AddOil> saveOrUpdate(AddOil addOil) {
        if(StrUtil.isNotEmpty(addOil.getCarId())&&StrUtil.isEmpty(addOil.getAddOilCode())){
            Car byId = iCarService.getById(addOil.getCarId());
            addOil.setAddOilCode(byId.getAddOilCode());
        }
        if (iAddOilService.saveOrUpdate(addOil)) {
            return new ResultUtil<AddOil>().setData(addOil);
        }
@@ -76,4 +149,5 @@
        }
        return ResultUtil.success("批量通过id删除数据成功");
    }
}