wzp
2021-04-06 5e873863bc7324894c89b0a0fc77a6202c91cd64
src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
@@ -1,5 +1,6 @@
package com.ots.project.exam.service.impl;
import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j;
import com.ots.common.enums.LangTypeEnum;
import com.ots.common.enums.ReportTypeEnum;
import com.ots.common.enums.TemplateTypeEnum;
@@ -35,6 +36,7 @@
import com.ots.project.tool.exam.JsonUtil;
import com.ots.project.tool.report.CAQ.CAQReport;
import com.ots.project.tool.report.MAQ.MAQReport;
import com.ots.project.tool.report.MAQNEW.MAQReport_V2;
import com.ots.project.tool.report.ReportResultData;
import com.ots.project.tool.report.RuilinMAQ.RuilinMAQReport;
import com.ots.project.tool.report.SAQ.SAQReport;
@@ -60,6 +62,7 @@
import java.util.stream.Collectors;
@Service
@Slf4j
public class TExamReportServiceImpl implements ITExamReportService {
    @Autowired
    private TExamReportMapper tExamReportMapper;
@@ -89,6 +92,10 @@
    @Override
    public List<TExamReport> selectTExamReportList(TExamReport tExamReport) {
        return tExamReportMapper.selectTExamReportList(tExamReport);
    }
    @Override
    public List<TExamReport> selectTExamReportNoStatusList(TExamReport tExamReport) {
        return tExamReportMapper.selectTExamReportNoStatusList(tExamReport);
    }
    @Override
    public List<TExamReport> selectViewReportList(TExamReport tExamReport) {
@@ -249,6 +256,8 @@
            resultData = getSAQReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
        } else if (Objects.equals(reportType, ReportTypeEnum.JAQ.getCode())) {
            resultData = getJAQReportData(entry.getValue());
        } else if(Objects.equals(reportType, ReportTypeEnum.MAQV2.getCode())){
            resultData = getMAQ_V2ReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
        } else {
            resultData = getMAQReportData(langType, ReportTypeEnum.codeOf(reportType), entry, tExamReport);
        }
@@ -293,6 +302,7 @@
        dataMap.put("password", tExamReport.getTokenId());
        dataMap.put("reportId", tExamReport.getId().toString());
        dataMap.put("userName", tExamReport.getUserName());
        dataMap.put("memberName", tExamReport.getMemberName());
        dataMap.put("reportTemplateId", tExamReport.getReportTemplateId());
        dataMap.put("Begin Time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, tExamReport.getCreateTime()));
        dataMap.put("End Time", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, tExamReport.getUpdateTime()));
@@ -300,6 +310,9 @@
        dataMap.put("Test Package", ExamUtil.getLangString(tExamReport.getLangType(), tExamReport.getTestName()));
        dataMap.put("Test", ExamUtil.getLangString(tExamReport.getLangType(), tExamReport.getProductName()));
        EntTestMember entTestMember = entTestMemberService.selectEntTestMemberById(tExamReport.getMemberId().longValue());
        if (Objects.isNull(entTestMember)) {
            return;
        }
        dataMap.put("reportGenerationDate", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, entTestMember.getEndTime()));
        List<ReportAPIResult> interfaceContentList = JsonUtil.parseArray(tExamReport.getInterfaceContent(), ReportAPIResult.class);
        
@@ -377,6 +390,19 @@
            }
        }
        return "";
    }
    public ReportResultData getMAQ_V2ReportData(String langType, ReportTypeEnum reportTypeEnum, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
        MAQReport_V2 report = new MAQReport_V2();
        report.setQuestionnaireTaker(entry.getValue().get("memberName"));
        report.setQuestionnaireID(entry.getValue().get("password"));
        report.setReportGenerationDate(entry.getValue().get("reportGenerationDate"));
        report.setQuestionnaireEmail(entry.getValue().get("testEmail"));
        report.setUserName(entry.getValue().get("userName"));
        report.setQuestionnaireStartTime(entry.getValue().get("beginTime"));
        report.setQuestionnaireEndTime(entry.getValue().get("endTime"));
        tExamReport.setId(Long.valueOf(entry.getValue().get("reportId")));
        ReportResultData resultData = report.getTemplateParameters(entry.getValue(), reportTypeEnum, LangTypeEnum.codeOf(langType));
        return resultData;
    }
    public ReportResultData getMAQReportData(String langType, ReportTypeEnum reportTypeEnum, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
        MAQReport report = new MAQReport();
@@ -500,6 +526,9 @@
        String[] waterDropPicture = key.split("_");
        
        String waterDropName =StringUtils.isNotEmpty(ExamUtil.getWaterDropPictureMap(waterDropPicture[0])) ? ExamUtil.getWaterDropPictureMap(waterDropPicture[0]) : ExamUtil.getWaterDropPictureMap(key);
        if(waterDropPicture[1].equals("V2")){
           waterDropName = ExamUtil.getWaterDropPictureMap("ResponseFidelityDiagnosis_V2");
        }
        if (StringUtils.isEmpty(waterDropName)) {
            return;
        }
@@ -512,9 +541,17 @@
        deleteStrList.add(EssConfig.getProfile() + "/" + key + "_" + id + "_" + floatValue.toString() + "_" + suffixDate + ".png");
        
        if (StringUtils.equals(key.split("_")[0], "ResponseFidelityDiagnosis")) {
            wordParam.setPicWidth(446);
            wordParam.setPicHeight(33);
        } else if (StringUtils.equals(key.split("_")[0], "RuilinTestResultValidityDiagnosisContext")) {
           if(StringUtils.equals(key.split("_")[1], "V2")){
             wordParam.setPicWidth(210);
             wordParam.setPicHeight(50);
           }else{
              wordParam.setPicWidth(446);
              wordParam.setPicHeight(33);
           }
        } else if (StringUtils.equals(key.split("_")[0], "ResponseFidelityDiagnosisV2")){
           wordParam.setPicWidth(210);
          wordParam.setPicHeight(33);
        }else if (StringUtils.equals(key.split("_")[0], "RuilinTestResultValidityDiagnosisContext")) {
            wordParam.setPicWidth(450);
            wordParam.setPicHeight(35);
            wordParam.setX(-13.75);
@@ -549,6 +586,7 @@
                fileNameResult.add(EssConfig.getProfile() + "/" + fileNameTemp);
            }
        } catch (Exception e) {
           log.error("发生异常:{}", e);
            return false;
        }
        return true;