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 get(@PathVariable String id) { AddOil addOil = iAddOilService.getById(id); return new ResultUtil().setData(addOil); } @RequestMapping(value = "/getExcel", method = RequestMethod.GET) @ApiOperation(value = "通过车辆id获取") public Result> 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 wrapper = new QueryWrapper<>(); wrapper.ge(beginTime!=null && beginTime!="","add_date",beginTime); wrapper.le(endTime!=null && endTime!="","add_date",endTime); List list = iAddOilService.getAddOil(wrapper); List addOilList = new ArrayList<>(); Map> 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>().setData(addOilList); } @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "获取全部数据") public Result> getAll() { List list = iAddOilService.list(); return new ResultUtil>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result> getByPage(PageVo page,String carNo) { QueryWrapper wrapper = new QueryWrapper<>(); if(!StrUtil.isEmpty(carNo)) wrapper.like("b.car_no","%"+carNo+"%"); IPage data = iAddOilService.page2(PageUtil.initMpPage(page),wrapper); return new ResultUtil>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result saveOrUpdate(AddOil addOil) { if (iAddOilService.saveOrUpdate(addOil)) { return new ResultUtil().setData(addOil); } return new ResultUtil().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iAddOilService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } }