package com.product.server.report.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.product.core.cache.DataPoolCacheImpl; import com.product.module.sys.version.ApiVersion; 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 com.product.common.lang.StringUtils; import com.product.core.config.CoreConst; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.entity.RequestParameterEntity; import com.product.core.exception.BaseException; import com.product.server.report.config.ReportCode; import com.product.server.report.config.CmnConst; import com.product.server.report.config.SystemCode; import com.product.server.report.service.ReportConfigService; import com.product.server.report.service.idel.IReportConfigService; @RestController @RequestMapping("/api/report-config") public class ReportConfigController extends AbstractBaseController { @Autowired ReportConfigService reportConfigService; @PostMapping("/get-button-upload-param/{version}") @ApiVersion(1) public String getButton(HttpServletRequest request) { try { FieldSetEntity fse = null; Object bean = request.getAttribute("requestPara"); if (bean != null) { RequestParameterEntity reqp = (RequestParameterEntity) bean; fse = reqp.getFormData(); } if (bean == null || fse == null || fse.getString("uuid") == null) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } DataTableEntity dt = DataPoolCacheImpl.getInstance().getCacheData("所有按钮按功能分组", new String[]{fse.getUUID()}); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return error(e); } catch (Exception e) { return error(ReportCode.GET_FUNCTION_BUTTON_FAIL.getValue(), ReportCode.GET_FUNCTION_BUTTON_FAIL.getText() + (e.getMessage() != null ? e.getMessage() : "")); } } /** * 报表配置列表 * * @param response * @param request * @return */ @RequestMapping(value = "/list-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String listReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } DataTableEntity dt = reportConfigService.listReportConfig(fse.getInteger("cpage"), fse.getInteger("pageSize"), fse); return OK_List(dt); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表配置详情 * * @param response * @param request * @return */ @RequestMapping(value = "/find-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String findReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //uuid是否为空 if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } FieldSetEntity resultFse = reportConfigService.findReportConfig(fse.getUUID()); return OK_List(resultFse); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表配置新增 * * @param response * @param request * @return */ @RequestMapping(value = "/add-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String addReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } IReportConfigService service = (IReportConfigService) getProxyInstance(reportConfigService); String uuid = service.addReportConfig(fse); return OK_Add(uuid); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表配置修改 * * @param response * @param request * @return */ @RequestMapping(value = "/update-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String updateReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //uuid是否为空 if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } IReportConfigService service = (IReportConfigService) getProxyInstance(reportConfigService); boolean succ = service.updateReportConfig(fse); if (succ) { return OK(); } else { return this.error(ReportCode.REPORT_CONFIG_ERROR.getValue(), ReportCode.REPORT_CONFIG_ERROR.getText()); } } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表配置删除 * * @param response * @param request * @return */ @RequestMapping(value = "/delete-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String deleteReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //uuid是否为空 if (StringUtils.isEmpty(fse.getUUID())) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } IReportConfigService service = (IReportConfigService) getProxyInstance(reportConfigService); boolean succ = service.deleteReportConfig(fse.getUUID()); if (succ) { return OK(); } else { return this.error(ReportCode.REPORT_CONFIG_ERROR.getValue(), ReportCode.REPORT_CONFIG_ERROR.getText()); } } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表发布 * * @param response * @param request * @return */ @RequestMapping(value = "/release-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String releaseConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //判断传参是否正常 if (StringUtils.isEmpty(CmnConst.UUID) || StringUtils.isEmpty(CmnConst.TRICODE_PARENT) || StringUtils.isEmpty(CmnConst.ROLE_UUID)) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } IReportConfigService service = (IReportConfigService) getProxyInstance(reportConfigService); boolean succ = service.releaseConfig(fse); if (succ) { return OK(); } else { return this.error(ReportCode.REPORT_CONFIG_ERROR.getValue(), ReportCode.REPORT_CONFIG_ERROR.getText()); } } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表发布 * * @param response * @param request * @return */ @RequestMapping(value = "/cancel-release-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String cancelReleaseConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } //判断传参是否正常 if (StringUtils.isEmpty(CmnConst.UUID) || StringUtils.isEmpty(CmnConst.TRICODE_PARENT) || StringUtils.isEmpty(CmnConst.ROLE_UUID)) { return this.error(SystemCode.SYSTEM_FORM_COUNT.getValue(), SystemCode.SYSTEM_FORM_COUNT.getText()); } IReportConfigService service = (IReportConfigService) getProxyInstance(reportConfigService); boolean succ = service.cancelRelease(fse); if (succ) { return OK(); } else { return this.error(ReportCode.REPORT_CONFIG_ERROR.getValue(), ReportCode.REPORT_CONFIG_ERROR.getText()); } } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 报表复制 * * @param response * @param request * @return */ @RequestMapping(value = "/copy-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String copyConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } String uuid = reportConfigService.copyConfig(fse.getUUID()); return OK_Add(uuid); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_DATASOURCE_ERROR.getValue(), ReportCode.REPORT_DATASOURCE_ERROR.getText() + e.getMessage()); } } /** * 配置报表-引用 * * @param response * @param request * @return */ @RequestMapping(value = "/quote-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String quoteReportConfig(HttpServletResponse response, 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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return OK_List(reportConfigService.quoteReportConfig(fse)); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.REPORT_QUOTE_FAIL.getValue(), ReportCode.REPORT_QUOTE_FAIL.getText() + e.getMessage()); } } /** * 获取报表发布信息-发布 * * @param request * @return */ @RequestMapping(value = "/get-report-release-info/{version}", method = RequestMethod.POST) @ApiVersion(1) public String getReportReleaseInfo(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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } JSONArray jsonArray = reportConfigService.getReportReleaseInfo(); return BaseUtil.success(jsonArray, null); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.GET_REPORT_RELEASE_ROLE_PERMISSION_FAIL.getValue(), ReportCode.GET_REPORT_RELEASE_ROLE_PERMISSION_FAIL.getText() + e.getMessage()); } } /** * 获取报表发布信息-发布后查看信息 * * @param request * @return */ @RequestMapping(value = "/view-report-release-info/{version}", method = RequestMethod.POST) @ApiVersion(1) public String viewReportReleaseInfo(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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } JSONObject resultObj = reportConfigService.viewReportReleaseInfo(fse); return BaseUtil.success(resultObj, null); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getValue(), ReportCode.GET_REPORT_RELEASE_INFO_FAIL.getText() + e.getMessage()); } } /** * 已发布列表界面 * * @param request * @return */ @RequestMapping(value = "/released-list-report-config/{version}", method = RequestMethod.POST) @ApiVersion(1) public String releasedListReportConfig(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) { return this.error(SystemCode.SYSTEM_FORM_NODATA.getValue(), SystemCode.SYSTEM_FORM_NODATA.getText()); } //判断表名是否正常 if (!CmnConst.PRODUCT_SYS_REPORT_CONFIG.equals(fse.getTableName())) { return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText()); } return OK_List(reportConfigService.releasedListReportConfig(fse)); } catch (BaseException e) { e.printStackTrace(); return this.error(e.getCode(), e.getMessage()); } catch (Exception e) { e.printStackTrace(); return this.error(ReportCode.GET_REPORT_RELEASED_LIST_FAIL.getValue(), ReportCode.GET_REPORT_RELEASED_LIST_FAIL.getText() + e.getMessage()); } } }