linzhijie
2021-04-12 3a8e1524dcf0eeb610d38123d5f0a3ef838379cd
src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java
@@ -1,8 +1,9 @@
package com.ots.project.exam.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ots.common.enums.LangTypeEnum;
import com.ots.common.enums.ReportTitle;
import com.ots.common.enums.SenderCode;
import com.ots.common.enums.UserTypeEnum;
import com.ots.common.utils.DateUtils;
@@ -32,6 +33,7 @@
import com.ots.project.tool.report.reportCalculation.request.*;
import com.ots.project.tool.report.reportCalculation.response.ReportAPIResult;
import lombok.extern.slf4j.Slf4j;
import org.apache.velocity.runtime.directive.Foreach;
import org.modelmapper.ModelMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,10 +41,8 @@
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.ots.project.tool.report.reportCalculation.request.CalculationTypeEnum.*;
import static com.ots.project.tool.report.reportCalculation.request.ReportTypeEnum.firstPath;
import static com.ots.project.tool.report.reportCalculation.request.ReportTypeEnum.secondPath;
@@ -859,14 +859,21 @@
        }
        // 调用发送程序发给用户
        String title = tExamReportResult.getMemberName() + MessageUtils.message("jsp.exam.quesiton.reportTilte");
        //String title = tExamReportResult.getMemberName() + MessageUtils.message("jsp.exam.quesiton.reportTilte");
        String title = getTitle(tExamReportResult);
        log.error("报告标题:{}",title);
        String content = tExamReportResult.getMailContent();
        //测试者接收报告模板优先使用测试包保存的报告模板
        String memberContent = tExamReportResult.getMemberTemplate();
        StringBuilder remark = new StringBuilder();
        remark.append("失败邮箱:");
        if (justMember) {
            // 用户发邮件
            sendMemberEmail(tExamReport, fileNameResult, tExamReportResult, title, content, remark);
            sendMemberEmail(tExamReport, fileNameResult, tExamReportResult, title, memberContent, remark);
        }
        if (justHr) {
            // 发送给Hr,但取testEmail
@@ -1246,4 +1253,40 @@
    }
    /***
     * 获取报告填写语言,返回标题
     */
    private String getTitle(TExamReport tExamReportResult){
        String title = tExamReportResult.getMemberName() + MessageUtils.message("jsp.exam.quesiton.reportTilte");
        //报告内容跟测试产品名称不为空
        if(StringUtils.isNotEmpty(tExamReportResult.getContent()) && StringUtils.isNotEmpty(tExamReportResult.getProductName())){
            JSONArray content = JSONObject.parseArray(tExamReportResult.getContent());
            //获取语言
            String langType = content.getJSONObject(0).getString("langType");
            String field = ReportTitle.getField(langType);
            String name = "";
            for (int i = 0; i < content.size(); i++) {
                JSONObject jsonObject = content.getJSONObject(i);
                if(StringUtils.isNotEmpty(field) && field.equals(jsonObject.getString("field"))){
                    name = jsonObject.getString("value");
                    break;
                }
            }
            //获取产品名称
            JSONObject productNameObj = JSONObject.parseObject(tExamReportResult.getProductName());
            String productName = productNameObj.getString(langType);
            if(StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(productName) && StringUtils.isNotEmpty(langType)){
                //泰文是先报告名称后姓名 其他相反
                if(langType.equals(LangTypeEnum.Thai.getCode())){
                    title = String.format(ReportTitle.getReportTitle(langType),productName,name);
                }else{
                    title = String.format(ReportTitle.getReportTitle(langType),name,productName);
                }
            }
        }
        return title;
    }
}