1821349743@qq.com
2023-04-17 1156a6e9619864201de922f4cfa93f6db989ff2e
src/main/java/com/product/server/report/controller/DataListReportController.java
@@ -1,22 +1,35 @@
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
@@ -28,75 +41,104 @@
@RestController
@RequestMapping("/api/report/data-list")
public class DataListReportController extends AbstractBaseController {
    @Autowired
    private DataListReportService dataListReportService;
   @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());
      }
   }
    /**
     * 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());
      }
   }
    /**
     * 获取报表
     *
     * @param request
     * @return
     */
    @RequestMapping(value = "/get-report/{version}", method = RequestMethod.POST)
    @ApiVersion(1)
    public String getTableInfo(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());
      }
   }
}