package cn.exrick.xboot.your.controller; 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.common.ExcelFillCellMergeStrategy; import cn.exrick.xboot.your.entity.OrderStatusCount; import cn.exrick.xboot.your.entity.QueryRequest; import cn.exrick.xboot.your.entity.SignCount; import cn.exrick.xboot.your.service.ISignCountService; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; 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 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.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.List; /** * @author whj */ @Slf4j @RestController @Api(tags = "状态统计报表接口") @RequestMapping("/xboot/signCount") @Transactional public class SignCountController { @Autowired private ISignCountService iSignCountService; @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @ApiOperation(value = "通过id获取") public Result get(@PathVariable String id) { SignCount signCount = iSignCountService.getById(id); return new ResultUtil().setData(signCount); } @RequestMapping(value = "/getAll", method = RequestMethod.GET) @ApiOperation(value = "获取全部数据") public Result> getAll() { List list = iSignCountService.list(); return new ResultUtil>().setData(list); } @RequestMapping(value = "/getByPage", method = RequestMethod.GET) @ApiOperation(value = "分页获取") public Result> getByPage(PageVo page) { IPage data = iSignCountService.page(PageUtil.initMpPage(page)); return new ResultUtil>().setData(data); } @RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST) @ApiOperation(value = "编辑或更新数据") public Result saveOrUpdate(SignCount signCount) { if (iSignCountService.saveOrUpdate(signCount)) { return new ResultUtil().setData(signCount); } return new ResultUtil().setErrorMsg("操作失败"); } @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过id删除") public Result delAllByIds(@RequestParam String[] ids) { for (String id : ids) { iSignCountService.removeById(id); } return ResultUtil.success("批量通过id删除数据成功"); } @GetMapping("/outExcels") @ApiOperation(value = "导出签收统计信息表", notes = "导出签收统计信息表") public void export1(OrderStatusCount orderStatusCount, HttpServletResponse response) throws IOException { List orderStatus = this.iSignCountService.signCounts2New(orderStatusCount); System.out.println(orderStatus); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("签收数量统计报表", "UTF-8"); String fileName2 = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // response.setHeader("Content-dispostion", "attachment;filename="+fileName+".xls"); response.setHeader("Content-disposition", "attachment;filename=" + fileName2 + ".xlsx"); EasyExcel.write(response.getOutputStream(),OrderStatusCount.class) .registerWriteHandler(new ExcelFillCellMergeStrategy(1,new int[]{0,1,2,9})) // 基于 column 长度,自动适配。最大 255 宽度 .sheet(0).doWrite(orderStatus); } @GetMapping(value = "/selectBySign") public Result> signCounts(OrderStatusCount orderStatusCount,QueryRequest queryRequest) { IPage data = this.iSignCountService.signCounts(orderStatusCount,queryRequest); return new ResultUtil>().setData(data); } @GetMapping(value = "/selectBySignNew") public Result> signCountsNew(OrderStatusCount orderStatusCount,QueryRequest queryRequest) { IPage data = this.iSignCountService.signCountsNew(orderStatusCount,queryRequest); return new ResultUtil>().setData(data); } }