package com.product.server.report.controller; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.product.core.config.CoreConst; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.FieldSetEntity; import com.product.core.entity.RequestParameterEntity; import com.product.core.exception.BaseException; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.module.data.config.CmnCode; import com.product.module.data.config.CmnConst; import com.product.module.data.service.SystemDataExportService; import com.product.module.sys.version.ApiVersion; import com.product.server.report.config.ReportCode; import com.product.server.report.config.SystemCode; import com.product.server.report.entity.ReportColumn; import com.product.server.report.entity.ReportEntity; import com.product.server.report.service.DataListReportService; import com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.TimeZone; import java.util.stream.Collectors; /** * Copyright © 6c * * @Date: 2021-05-18 18:26 * @Author: 6c * @Description: */ @RestController @RequestMapping("/api/report/data-list") public class DataListReportController extends AbstractBaseController { @Autowired private DataListReportService dataListReportService; /** * 6c-test-设置报表缓存 * * @param request * @return */ @RequestMapping(value = "/set-report-cache/{version}", method = RequestMethod.POST) @ApiVersion(1) public String setReportCache(HttpServletRequest request) { try { FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } if (bean == null || fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } if (!"1".equals(fse.getString("is_all"))) { dataListReportService.setConfig(fse.getUUID()); } else { dataListReportService.setAllConfig(); } return OK(); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e.getCode(), e.getMessageInfo()); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); e.printStackTrace(); return error(ReportCode.GET_REPORT_FAIL.getValue(), ReportCode.GET_REPORT_FAIL.getText()); } } /** * 获取报表 * * @param request * @return */ @RequestMapping(value = "/get-report/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getReport(HttpServletRequest request) { try { FieldSetEntity fse = null; Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } if (bean == null || fse == null) { SpringMVCContextHolder.getSystemLogger().error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } return BaseUtil.success(dataListReportService.getReportEntity(fse)); } catch (BaseException e) { SpringMVCContextHolder.getSystemLogger().error(e); return this.error(e.getCode(), e.getMessageInfo()); } catch (Exception e) { SpringMVCContextHolder.getSystemLogger().error(e); e.printStackTrace(); return error(ReportCode.GET_REPORT_FAIL.getValue(), ReportCode.GET_REPORT_FAIL.getText()); } } @PostMapping("report-export/{version}") @ApiVersion(1) public String reportDataExport(HttpServletRequest request, HttpServletResponse response) { try { FieldSetEntity fse = BaseUtil.getFieldSetEntity(request); //是否当前页 boolean exportCurrentPage = fse.getBoolean("exportCurrentPage"); if (!exportCurrentPage) { //当前页号 int pageIndex = fse.getInteger(CmnConst.CPAGE); fse.setValue(CmnConst.CPAGE, pageIndex); } else { fse.setValue(CmnConst.CPAGE, 1); fse.setValue(CmnConst.PAGESIZE, Integer.MAX_VALUE); } dataListReportService.outReportExcel(response,fse); return OK(); } catch (BaseException e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return error(e); } catch (Exception e) { e.printStackTrace(); SpringMVCContextHolder.getSystemLogger().error(e); return error(CmnCode.EXPORT_GENERAL_LIST_DATA_IMPORT_FIAL.getValue(), CmnCode.EXPORT_GENERAL_LIST_DATA_IMPORT_FIAL.getText() + e.getMessage()); } } }