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 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
|
*/
|
@Slf4j
|
@RestController
|
@Api(tags = "加油记录管理接口")
|
@RequestMapping("/xboot/addOil")
|
@Transactional
|
public class AddOilController {
|
|
@Autowired
|
private IAddOilService iAddOilService;
|
|
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
|
@ApiOperation(value = "通过id获取")
|
public Result<AddOil> get(@PathVariable String id) {
|
|
AddOil addOil = iAddOilService.getById(id);
|
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,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);
|
}
|
|
@RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
|
@ApiOperation(value = "编辑或更新数据")
|
public Result<AddOil> saveOrUpdate(AddOil addOil) {
|
|
if (iAddOilService.saveOrUpdate(addOil)) {
|
return new ResultUtil<AddOil>().setData(addOil);
|
}
|
return new ResultUtil<AddOil>().setErrorMsg("操作失败");
|
}
|
|
@RequestMapping(value = "/delByIds", method = RequestMethod.POST)
|
@ApiOperation(value = "批量通过id删除")
|
public Result<Object> delAllByIds(@RequestParam String[] ids) {
|
|
for (String id : ids) {
|
iAddOilService.removeById(id);
|
}
|
return ResultUtil.success("批量通过id删除数据成功");
|
}
|
|
}
|