| | |
| | | import com.ots.project.exam.dto.QuestionObject; |
| | | import com.ots.project.exam.dto.QuestionReport; |
| | | import com.ots.project.exam.dto.RelatedParty; |
| | | import com.ots.project.exam.mapper.TExamPaperQuestionMapper; |
| | | import com.ots.project.exam.service.IEntDemographyInfoService; |
| | | import com.ots.project.exam.service.IEntTestPackageService; |
| | | import com.ots.project.exam.service.ISysUserExtendService; |
| | |
| | | private IExamUtilService iExamUtilService; |
| | | @Autowired |
| | | private IEntTestPackageService entTestPackageService; |
| | | |
| | | @Autowired |
| | | private ITExamPaperService itExamPaperService; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 测评列表 |
| | | * @return |
| | | */ |
| | | @RequiresPermissions("exam:evaluation_report:view") |
| | | @GetMapping("/reportView/evaluationReport") |
| | | public String evaluationReport(ModelMap mmap) { |
| | | //返回所有产品 |
| | | List<TExamPaper> dictList = itExamPaperService.getUserPapers(); |
| | | mmap.put("dictList",dictList); |
| | | return prefix + "/evaluationReport"; |
| | | } |
| | | |
| | | /** |
| | | * 查询评测报告列表(头部) |
| | | */ |
| | | @RequiresPermissions("exam:hrEmailReport:view") |
| | |
| | | List<Map<String, String>> filedList = new ArrayList<>(); |
| | | filedList.add(title); |
| | | return getDataTable(filedList); |
| | | } |
| | | |
| | | /** |
| | | * 查询评测报告列表(数据列) |
| | | * 根据用户角色显示不同列表 |
| | | * @param tExamReport |
| | | * @return |
| | | */ |
| | | @RequiresPermissions("exam:report:list") |
| | | @PostMapping("/newListData") |
| | | @ResponseBody |
| | | public TableDataInfo newListData(TExamReport tExamReport) { |
| | | startPage(); |
| | | List<TExamReport> list = new ArrayList<>(); |
| | | // 完成的 |
| | | tExamReport.setFinish(1); |
| | | //根据权限返回不同测评人员列表 |
| | | User sysUser = ShiroUtils.getSysUser(); |
| | | String userType = sysUser.getUserType(); |
| | | if (UserTypeEnum.ENT_USER.getUserType().equals(userType)) { |
| | | tExamReport.setUserId(sysUser.getUserId()); |
| | | } |
| | | //分销商可以看到分销商下的企业信息 |
| | | if (UserTypeEnum.DIS_USER.getUserType().equals(userType)) { |
| | | SysUserExtend sysUserExtend = new SysUserExtend(); |
| | | sysUserExtend.setParentUserId(sysUser.getUserId()); |
| | | List<SysUserExtend> sysUserExtends = sysUserExtendService.selectSysUserExtendList(sysUserExtend); |
| | | List<Long> collect = sysUserExtends.stream().map(extend -> extend.getUserId()).collect(Collectors.toList()); |
| | | collect.add(sysUser.getUserId()); |
| | | tExamReport.setUserIds(collect); |
| | | } |
| | | |
| | | list = tExamReportService.selectViewReportList(tExamReport); |
| | | // 多语言翻译 |
| | | for (TExamReport tExamReportTemp : list) { |
| | | tExamReportTemp.setProductName(examUtilService.getLangOrLocalLangString("", tExamReportTemp.getProductName())); |
| | | } |
| | | |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | // 拼接生成report的键值对 |
| | | User sysUser = ShiroUtils.getSysUser(); |
| | | boolean isRight = Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType()); |
| | | // 人口学变量 |
| | | // 三行 |
| | | DataReportHead dataReportHead = new DataReportHead(); |
| | | String fileNameResult = EssConfig.getDownloadPath() + examUtilService.getLangOrLocalLangString("", tExamReportList.get(0).getProductName()) + "_DateReport.xlsx"; |
| | | |
| | | // 把sheet放在map里面 |
| | | Map<String, List<List<Object>>> reportResultMap = new HashMap<>(); |
| | | |
| | | Map<String, Map<String, String>> demograpyMap = new HashMap<>(); |
| | | |
| | | // 人口学 |
| | | setDemograyMap(tExamReportList, dataReportHead, demograpyMap); |
| | | |
| | | // 报告类型 |
| | | String reportType = getReportType(tExamReport); |
| | | |
| | | // 模版的内容 |
| | | setDataReportHeader(dataReportHead, reportResultMap, reportType, isRight); |
| | | |
| | | // Map<sheet名, Map<姓名, Map<key, value>>> 数据 |
| | | Map<String, Map<String, Map<String, String>>> sheetExcelMap = new HashMap<>(); |
| | | |
| | | // 如果是JAQ要调用泰国团队的接口,如果不是,去表里面找 |
| | | setDealTaiData(ids, tExamReportList, reportType, sheetExcelMap); |
| | | |
| | | // 构造值 |
| | | setRportListValue(reportResultMap, demograpyMap, sheetExcelMap, reportType); |
| | | |
| | | // 弄成和他们原来一样 |
| | | setSysHeadToEnglish(tExamReportList, reportResultMap, reportType); |
| | | |
| | | // 写文件 |
| | | writeFile(fileNameResult, reportResultMap); |
| | | |
| | | // 返回下载 |
| | | return AjaxResult.success(examUtilService.getLangOrLocalLangString("", tExamReportList.get(0).getProductName()) + "_DateReport.xlsx"); |
| | | } |
| | | |
| | | // 导出数据报告 |
| | | @RequiresPermissions("exam:report:export") |
| | | @PostMapping("/exportEvaluationReport") |
| | | @ResponseBody |
| | | public AjaxResult exportReport(TExamReport tExamReport) throws IOException { |
| | | // 完成的 |
| | | tExamReport.setFinish(1); |
| | | //根据权限返回不同测评人员列表 |
| | | User sysUser = ShiroUtils.getSysUser(); |
| | | String userType = sysUser.getUserType(); |
| | | if (UserTypeEnum.ENT_USER.getUserType().equals(userType)) { |
| | | tExamReport.setUserId(sysUser.getUserId()); |
| | | } |
| | | //分销商可以看到分销商下的企业信息 |
| | | if (UserTypeEnum.DIS_USER.getUserType().equals(userType)) { |
| | | SysUserExtend sysUserExtend = new SysUserExtend(); |
| | | sysUserExtend.setParentUserId(sysUser.getUserId()); |
| | | List<SysUserExtend> sysUserExtends = sysUserExtendService.selectSysUserExtendList(sysUserExtend); |
| | | List<Long> collect = sysUserExtends.stream().map(extend -> extend.getUserId()).collect(Collectors.toList()); |
| | | collect.add(sysUser.getUserId()); |
| | | tExamReport.setUserIds(collect); |
| | | } |
| | | //查询当前筛选结果集 |
| | | List<TExamReport> tExamReportList = tExamReportService.selectViewReportList(tExamReport); |
| | | //List<Long> getIds = tExamReportList.stream().map(TExamReport::getId).collect(Collectors.toList()); |
| | | List<String> getIds = tExamReportList.stream().map(t -> t.getId().toString()).collect(Collectors.toList()); |
| | | String[] ids = getIds.stream().toArray(String[]::new); |
| | | |
| | | // 拼接生成report的键值对 |
| | | //User sysUser = ShiroUtils.getSysUser(); |
| | | boolean isRight = Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType()); |
| | | // 人口学变量 |
| | | // 三行 |
| | |
| | | } |
| | | |
| | | private void setDataReportHeader(DataReportHead dataReportHead, Map<String, List<List<Object>>> reportResultMap, String reportType, boolean isRight) { |
| | | //如果为空重新获取 |
| | | if(Objects.isNull(reportType)){ |
| | | |
| | | } |
| | | if (Objects.equals(reportType, ReportTypeEnum.RuiLin.getCode())) { |
| | | setDataReportHeaderRuilin(dataReportHead, reportResultMap, isRight); |
| | | } else if (Objects.equals(reportType, ReportTypeEnum.CAQ.getCode())) { |