@Override public ResponseBaseEntity<ReportAnalysisAppVo> getReportAnalysisInfoData( ReportAnalysisAppVo reportAnalysisAppVo, String loginName) { ResponseBaseEntity<ReportAnalysisAppVo> responseBaseEntity = new ResponseBaseEntity<ReportAnalysisAppVo>(); if (StringUtil.isEmpty(reportAnalysisAppVo.getDataTypeBySort()) || StringUtil.isEmpty(reportAnalysisAppVo.getTimeType())) { responseBaseEntity.setErrorCode(AppUtil.EXCEPTION_STATUS_BUSINESS_ERROR); responseBaseEntity.setErrorMessage(AppUtil.REQUEST_PARAMETERS_EXCEPTION); } else { // 自定义报表数据结果 ReportAnalysisAppVo result = new ReportAnalysisAppVo(); // 自定义报表数据 UserEntity currentUser = iLoginService.getUserByLoginName(loginName); Set<String> functions = currentUser.getFunctionCodes(); String deptCode = ""; if (currentUser.getEmpEntity().getDeptEntity() != null) { deptCode = currentUser.getEmpEntity().getDeptEntity().getDeptCode(); } // 当前用户角色 String roleCode = reportAnalysisAppMapper.getRoleCodeByUserCode(loginName); // 是否返回 if (BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { if (BseConstants.REPORT_ANALYSIS_ORGTYPE_BUSINESS.equals( reportAnalysisAppVo.getSupOrgType()) || functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA)) { reportAnalysisAppVo.setOrgCode(BseConstants.GROUPCODE); } else { reportAnalysisAppVo.setOrgCode(deptCode); } result.setIsHidden(BseConstants.YES); } else if (BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn())) { String supOrgCode = reportAnalysisAppMapper.getSupOrgCode(reportAnalysisAppVo.getOrgCode()); reportAnalysisAppVo.setOrgCode(supOrgCode); } // 上级部门编码 if (!StringUtil.isEmpty(reportAnalysisAppVo.getSupOrgCode())) { result.setSupOrgCode(reportAnalysisAppVo.getSupOrgCode()); } else { result.setSupOrgCode(reportAnalysisAppVo.getOrgCode()); } // 区域类型 String[] strs = reportAnalysisAppVo.getDataTypeBySort().split("-"); // 数据类型 String dataType = strs[0]; // 排序规则 String sortType = BseConstants.getSortKey(strs[1]); // 查询参数 Map<String, String> params = new HashMap<String, String>(); params.put("dataType", dataType); params.put("timeType", reportAnalysisAppVo.getTimeType()); params.put("sortType", sortType); if (BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn()) && BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { params.put("orgType", reportAnalysisAppVo.getSupOrgType()); } // 分页 RowBounds rb = new RowBounds(reportAnalysisAppVo.getStart(), reportAnalysisAppVo.getLimit()); if (!BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn())) { params.put("supOrg", reportAnalysisAppVo.getOrgCode()); } else if (StringUtil.isEmpty(reportAnalysisAppVo.getIsHead())) { params.put("supOrg", reportAnalysisAppVo.getOrgCode()); } else if (!functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA) && !BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { params.put("supOrg", reportAnalysisAppVo.getOrgCode()); } else if (!functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA) && BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { params.put("orgParent", reportAnalysisAppVo.getOrgCode()); } // 是否点击 if (BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn()) && !functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA) && this.isDefaultOrgType(reportAnalysisAppVo.getSupOrgType(), roleCode)) { params.put("deptCode", currentUser.getEmpEntity().getDeptEntity().getDeptCode()); } else { params.put("isClick", BseConstants.YES); } // 百分比取值 if (!functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA)) { if (BseConstants.REPORT_ANALYSIS_ORGTYPE_SALE.equals(reportAnalysisAppVo.getOrgType())) { params.put("procName", BseConstants.REPORT_ANALYSIS_PERCENT_EXEC_SALE); } else { params.put("procName", BseConstants.REPORT_ANALYSIS_PERCENT_EXEC); } } if (!BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_1); } else if (BseConstants.YES.equals(reportAnalysisAppVo.getIsHead()) && functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA)) { params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_3); } else if (BseConstants.YES.equals(reportAnalysisAppVo.getIsHead()) && !functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA) && BseConstants.REPORT_ANALYSIS_ORGTYPE_BUSINESS.equals( reportAnalysisAppVo.getOrgType())) { params.put("supOrgCode", BseConstants.GROUPCODE); params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_2); reportAnalysisAppMapper.execPercent(params); } else if (BseConstants.YES.equals(reportAnalysisAppVo.getIsHead()) && !functions.contains(BseConstants.REPORT_ANALYSIS_ALLDATA) && this.isDefaultOrgType(reportAnalysisAppVo.getSupOrgType(), roleCode)) { if (BseConstants.TERMMANAGE_CODE.equals(roleCode) || BseConstants.convertJobCode(BseConstants.MANAGENAME).equals(roleCode)) { params.put("supOrgCode", deptCode); params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_2); } else { params.put("supOrgCode", currentUser.getEmpEntity().getDeptEntity().getSupdeptCode()); params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_2); } reportAnalysisAppMapper.execPercent(params); } else { params.put("supOrgCode", deptCode); params.put("percent", BseConstants.REPORT_ANALYSIS_PERCENT_2); reportAnalysisAppMapper.execPercent(params); } List<ReportAnalysisEntity> list = reportAnalysisAppMapper.getReportAnalysisInfos(params, rb); Set<String> orgTypes = new HashSet<String>(); for (ReportAnalysisEntity obj : list) { if (BseConstants.REPORT_ANALYSIS_ORGTYPE_SALE.equals(obj.getOrgType())) { Map<String, String> saleInfo = reportAnalysisAppMapper.getManagerInfo(obj.getOrgCode()); if (saleInfo != null) { obj.setManagerName(saleInfo.get("empname")); obj.setManagerCellphone(saleInfo.get("mobile")); } obj.setIsClick(BseConstants.NO); } else if (BseConstants.REPORT_ANALYSIS_ORGTYPE_ROAD.equals(obj.getOrgType()) && (BseConstants.REPORT_ANALYSIS_DATATYPE_VISIT_ASC.equals( reportAnalysisAppVo.getDataTypeBySort()) || BseConstants.REPORT_ANALYSIS_DATATYPE_VISIT_DESC.equals( reportAnalysisAppVo.getDataTypeBySort()))) { obj.setIsClick(BseConstants.NO); } else if (BseConstants.REPORT_ANALYSIS_ORGTYPE_STORE.equals(obj.getOrgType())) { obj.setIsClick(BseConstants.NO); } obj.setSortNum( this.getSortNumInMenu( loginName, obj.getOrgType(), "1", reportAnalysisAppVo.getIsHead())); if (BseConstants.YES.equals(reportAnalysisAppVo.getIsHead())) { obj.setHead(BseConstants.YES); } orgTypes.add(obj.getOrgType()); // 人均是否隐藏 if (BseConstants.REPORT_ANALYSIS_ORGTYPE_STORE.equals(obj.getOrgType()) || BseConstants.REPORT_ANALYSIS_ORGTYPE_SALE.equals(obj.getOrgType()) || (BseConstants.REPORT_ANALYSIS_ORGTYPE_ROAD.equals(obj.getOrgType()) && (BseConstants.REPORT_ANALYSIS_DATATYPE_VISIT_ASC.equals( reportAnalysisAppVo.getDataTypeBySort()) || BseConstants.REPORT_ANALYSIS_DATATYPE_VISIT_DESC.equals( reportAnalysisAppVo.getDataTypeBySort())))) { obj.setHidden(BseConstants.YES); } } // 统一返回的管理区域(点击大区,返回值中会有(路区(3)和团队经理(5))) if (list != null && list.size() > 0 && orgTypes.size() == 1) { result.setOrgType(list.get(0).getOrgType()); } else if (orgTypes.size() == 2) { result.setOrgType(BseConstants.REPORT_ANALYSIS_ORGTYPE_ROAD); } if (BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn())) { result.setSupOrgType(Integer.parseInt(reportAnalysisAppVo.getSupOrgType()) - 1 + ""); } else { result.setSupOrgType(reportAnalysisAppVo.getOrgType()); } // 当前列表下次返回是否返回顶部赋值 if (!StringUtil.isEmpty(reportAnalysisAppVo.getSupOrgCode())) { result.setIsHead(BseConstants.YES); } else if (BseConstants.REPORT_ANALYSIS_ISRETURN.equals(reportAnalysisAppVo.getIsReturn()) && (Integer.valueOf(reportAnalysisAppVo.getFirstSort()) - Integer.valueOf(reportAnalysisAppVo.getSupOrgType()) == -1)) { result.setIsHead(BseConstants.YES); } // 组织名称 result.setOrgName(this.getOrgName(reportAnalysisAppVo.getOrgCode())); result.setReportAnalysisEntities(list); result.setTotalCount(reportAnalysisAppMapper.countReportAnalysisInfos(params, rb)); responseBaseEntity.setResult(result); responseBaseEntity.setErrorCode(AppUtil.EXCEPTION_STATUS_SUCCESS); } return responseBaseEntity; }