From 5e873863bc7324894c89b0a0fc77a6202c91cd64 Mon Sep 17 00:00:00 2001
From: wzp <516075396@qq.com>
Date: 星期二, 06 四月 2021 10:35:42 +0800
Subject: [PATCH] 20210406

---
 src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java |  316 +++++++++++++++++-----------------------------------
 1 files changed, 104 insertions(+), 212 deletions(-)

diff --git a/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
index 4629005..bf215da 100644
--- a/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
+++ b/src/main/java/com/ots/project/exam/service/impl/TExamReportServiceImpl.java
@@ -1,6 +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;
@@ -36,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;
@@ -45,7 +46,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
 import javax.imageio.ImageIO;
 import java.awt.*;
 import java.awt.image.BufferedImage;
@@ -61,141 +61,87 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-/**
- * 璇勬祴鎶ュ憡Service涓氬姟灞傚鐞�
- *
- * @author ots
- * @date 2019-12-26
- */
 @Service
+@Slf4j
 public class TExamReportServiceImpl implements ITExamReportService {
     @Autowired
     private TExamReportMapper tExamReportMapper;
-
     @Autowired
     private IDictDataService dictDataService;
-
     @Autowired
     private SysUserExtendMapper sysUserExtendMapper;
-
     @Autowired
     BarChart barChart;
-
     @Autowired
     IEntDemographyInfoService entDemographyInfoService;
-
     @Autowired
     IEntDemographyParamService entDemographyParamService;
-
     @Autowired
     private ITReportTemplateService itReportTemplateService;
-
     @Autowired
     private IEntTestMemberService entTestMemberService;
-
     private static final Logger logger = LoggerFactory.getLogger(Threads.class);
-
     @Autowired
     private MemberService memberService;
-
-
-    /**
-     * 鏌ヨ璇勬祴鎶ュ憡
-     *
-     * @param id 璇勬祴鎶ュ憡ID
-     * @return 璇勬祴鎶ュ憡
-     */
+    
     @Override
     public TExamReport selectTExamReportById(Long id) {
         return tExamReportMapper.selectTExamReportById(id);
     }
-
-    /**
-     * 鏌ヨ璇勬祴鎶ュ憡鍒楄〃
-     *
-     * @param tExamReport 璇勬祴鎶ュ憡
-     * @return 璇勬祴鎶ュ憡
-     */
+    
     @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) {
         return tExamReportMapper.selectViewReportList(tExamReport);
     }
-
-    /**
-     * 鏂板璇勬祴鎶ュ憡
-     *
-     * @param tExamReport 璇勬祴鎶ュ憡
-     * @return 缁撴灉
-     */
+    
     @Override
     public int insertTExamReport(TExamReport tExamReport) {
         tExamReport.setCreateTime(DateUtils.getNowDate());
         return tExamReportMapper.insertTExamReport(tExamReport);
     }
-
-    /**
-     * 淇敼璇勬祴鎶ュ憡
-     *
-     * @param tExamReport 璇勬祴鎶ュ憡
-     * @return 缁撴灉
-     */
+    
     @Override
     public int updateTExamReport(TExamReport tExamReport) {
         tExamReport.setUpdateTime(DateUtils.getNowDate());
         return tExamReportMapper.updateTExamReport(tExamReport);
     }
-
     @Override
     @Transactional
     public int updateTExamReportStatus(TExamReport tExamReport) {
         tExamReport.setUpdateTime(DateUtils.getNowDate());
         return tExamReportMapper.updateTExamReportStatus(tExamReport);
     }
-
     @Override
     public int updateTExamReportByTokenId(TExamReport tExamReport) {
         tExamReport.setUpdateTime(DateUtils.getNowDate());
         return tExamReportMapper.updateTExamReportByTokenId(tExamReport);
     }
-
     @Override
     public int updateTExamReportDeleteLastOneByTokenId(TExamReport tExamReport) {
         tExamReport.setUpdateTime(DateUtils.getNowDate());
         return tExamReportMapper.updateTExamReportDeleteLastOneByTokenId(tExamReport);
     }
-
-
-    /**
-     * 鍒犻櫎璇勬祴鎶ュ憡瀵硅薄
-     *
-     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
-     * @return 缁撴灉
-     */
+    
     @Override
     public int deleteTExamReportByIds(String ids) {
         return tExamReportMapper.deleteTExamReportByIds(Convert.toStrArray(ids));
     }
-
-    /**
-     * 鍒犻櫎璇勬祴鎶ュ憡淇℃伅
-     *
-     * @param id 璇勬祴鎶ュ憡ID
-     * @return 缁撴灉
-     */
+    
     public int deleteTExamReportById(Long id) {
         return tExamReportMapper.deleteTExamReportById(id);
     }
-
     @Override
     public int changeStatus(TExamReport tExamReport) {
         return tExamReportMapper.updateTExamReport(tExamReport);
     }
-
     @Override
     public int updateTexamReportByIds(String ids, String downloadTimes) {
         Map params = new HashMap<>();
@@ -204,20 +150,17 @@
         params.put("downloadTimes", downloadTimes);
         return tExamReportMapper.updateTExamReportByIds(params);
     }
-
     @Override
     public List<TExamReport> selectTExamReportByTokenList(String[] tokenIds) {
         return tExamReportMapper.selectTExamReportByTokenList(tokenIds);
     }
-
     @Override
     public List<TExamReport> selectTExamReportByIds(String[] ids) {
         return tExamReportMapper.selectTExamReportByIds(ids);
     }
-
     @Override
     public List<DictData> getType(Long id) {
-        // 鏌ヨ瀛楀吀鍏�
+        
         List<DictData> dictDataList = dictDataService.selectDictDataByType("lang_type");
         SysUserExtend sysUserExtend = sysUserExtendMapper.selectSysUserExtendById(id);
         String langType = sysUserExtend.getLangType();
@@ -229,9 +172,6 @@
         }
         return dictDataListResult;
     }
-
-
-
     @Override
     public TReportTemplate getReportTemplate(String questionTemplateId, String langType, String templateType) {
         TReportTemplate tReportTemplate = new TReportTemplate();
@@ -241,69 +181,57 @@
         tReportTemplate.setReportType(productTypeMap.get(questionTemplateId));
         return tReportTemplate;
     }
-
-    // 妯℃嫙璋冪敤鎺ュ彛鎶藉彇鍒版湇鍔″眰
+    
     @Override
     public void setTextPicture(TExamReport tExamReport, ReportResultData reportResultData, List<String> deleteStrList, LangTypeEnum langType, Map<String, Object> textMap) {
-        // begin 璋冪敤鎺ュ彛鐨勪唬鐮佸潡
-
-        // 杩欓噷鏄痯ut鏄犲皠锛宼extMap鍜寃ord鏂囨。瀵瑰簲
+        
+        
         setTextMap(tExamReport, reportResultData, textMap);
-
-        // begin 閫犺繘搴︽潯鐨勬暟鎹�
-        // setProgressPicture(deleteStrList, langType, thaiCalculationMap, textMap);
-        // end 閫犺繘搴︽潯鐨勬暟鎹�
-
-        // 澶勭悊姘存淮
+        
+        
+        
+        
         setWaterDropPicture(reportResultData, deleteStrList, textMap, tExamReport);
-
-        // 澶勭悊url鐨勫浘鐗�
+        
         setIconPicture(reportResultData, textMap);
     }
-
     @Override
     public void setExportBaseOrDetailReportData(List<TExamReport> tExamReportList, List<String> deleteStrList, List<String> fileNameList, TReportTemplate tReportTemplate) {
-        // begin 浠巈xcel鍙栨暟鎹�
+        
         Map<String, Map<String, String>> excelMap = new HashMap<>();
-        // end 浠巈xcel鍙栨暟鎹�
-
-        // 澶勭悊娉板浗鍥㈤槦鏁版嵁
+        
+        
         dealTaiData(tExamReportList, excelMap);
-
-        // 鐢熸垚绠�鍗曠増鏈拰璇︾粏鐗�
+        
         getBaseAndDetailReport(deleteStrList, fileNameList, tReportTemplate, excelMap);
     }
-
     private void getBaseAndDetailReport(List<String> deleteStrList, List<String> fileNameList, TReportTemplate tReportTemplate, Map<String, Map<String, String>> excelMap) {
         List<ReportResultData> reportResultDataList = new ArrayList<>();
         List<TExamReport> tExamReportList = new ArrayList<>();
         getBaseAndDetailRportDataList(tReportTemplate, excelMap, reportResultDataList, tExamReportList);
         getReportFile(deleteStrList, fileNameList, tReportTemplate, reportResultDataList, tExamReportList);
     }
-
     private void getReportFile(List<String> deleteStrList, List<String> fileNameList, TReportTemplate tReportTemplate, List<ReportResultData> reportResultDataList, List<TExamReport> tExamReportList) {
         Map<String, Object> textMap = new HashMap<>();
         String path = itReportTemplateService.selectTReportTemplateFilePath(tReportTemplate);
         for (int i = 0; i < tExamReportList.size(); i++) {
             setTextPicture(tExamReportList.get(i), reportResultDataList.get(i), deleteStrList, LangTypeEnum.codeOf(tReportTemplate.getLangType()), textMap);
-            // 鐢熸垚鎶ュ憡鏂囦欢锛岃繖涓槸鍙傝�冭缁嗙増
-            // String fileName = "/2020/04/13/7e57e1cb61e24c7cfc894fa55bf385d5.docx";
+            
+            
             WordUtil wordUtil = new WordUtil();
             String zipFileName = wordUtil.makeReportFile(path, tReportTemplate, textMap, new HashMap<>(), deleteStrList);
             fileNameList.add(zipFileName);
-
             wordUtil.deleteFileByStr(deleteStrList);
             textMap.clear();
         }
     }
-
     public void getBaseAndDetailRportDataList(TReportTemplate tReportTemplate, Map<String, Map<String, String>> excelMap, List<ReportResultData> reportResultDataList, List<TExamReport> tExamQueryReportList) {
         for (Map.Entry<String, Map<String, String>> entry : excelMap.entrySet()) {
             ReportResultData resultData = null;
             TExamReport tExamReport = new TExamReport();
-            // if else MAQ SAQ CAQ
+            
             String reportType = tReportTemplate.getReportType();
-            // SAQ鐨勬姤鍛�
+            
             reportType = getTypeIfIsSAQ(tReportTemplate, reportType);
             String langType = tReportTemplate.getLangType();
             resultData = getReportResultData(reportType, langType, entry, tExamReport);
@@ -311,14 +239,12 @@
             reportResultDataList.add(resultData);
         }
     }
-
     private String getTypeIfIsSAQ(TReportTemplate tReportTemplate, String reportType) {
         if (Objects.equals(tReportTemplate.getTemplateType(), TemplateTypeEnum.SAQ.getCode())) {
             reportType = TemplateTypeEnum.SAQ.getCode();
         }
         return reportType;
     }
-
     @Override
     public ReportResultData getReportResultData(String reportType,String langType, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
         ReportResultData resultData = null;
@@ -330,19 +256,20 @@
             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);
         }
         return resultData;
     }
-
     public void dealTaiData(List<TExamReport> tExamReportList, Map<String, Map<String, String>> excelMap) {
         for (TExamReport tExamReport : tExamReportList) {
             List<ReportAPIResult> reportAPIResultList = JsonUtil.parseArray(tExamReport.getInterfaceContent(), ReportAPIResult.class);
             Map dataMap = new HashMap();
             try {
                 reportAPIResultList.stream().forEach(reportAPIResult -> {
-                    // 闇�瑕佸皢绗竴娆¤皟鐢ㄦ嘲鍥藉洟闃熷拰绗簩娆¤皟鐢ㄧ殑鍔犺捣鏉�
+                    
                     Map<String, String> data = reportAPIResult.getData();
                     for (Map.Entry<String, String> entry : data.entrySet()) {
                         try {
@@ -360,13 +287,10 @@
             } catch (Exception e) {
                 logger.error("id:" + tExamReport.getId() + "  memberName:" + tExamReport.getMemberName() + "  " + tExamReport.getInterfaceContent());
             }
-
-            // 鎶ュ憡棰濆鍊�
+            
             setExcelMapextraValue(tExamReport, dataMap);
-
-            // 鍙栦汉鍙e鍙橀噺濉殑閭d釜濮撳悕
+            
             String name = getDemographicName(tExamReport);
-
             if (StringUtils.isNotEmpty(name)) {
                 excelMap.put(name, dataMap);
             } else {
@@ -374,11 +298,11 @@
             }
         }
     }
-
     public void setExcelMapextraValue(TExamReport tExamReport, Map dataMap) {
         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()));
@@ -386,12 +310,13 @@
         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);
-
-        // 閬嶅巻鎶ュ憡閲岄潰鐨勫�兼斁杩涘幓
+        
         setPExtro(dataMap, interfaceContentList);
-
         if (ExamUtil.isListNotEmpty(interfaceContentList)) {
             dataMap.put("Signal", interfaceContentList.get(0).getSignal());
         }
@@ -399,34 +324,28 @@
         questionReports.stream().forEach(questionReport -> {
             dataMap.put(questionReport.getPermanentId(), questionReport.getAnswer());
         });
-
-        // 鍙戦偖浠剁殑閭d釜鍚嶅瓧
-        // 鍙栦汉鍙e鍙橀噺濉殑閭d釜濮撳悕
+        
+        
         String name = getDemographicName(tExamReport);
         if (StringUtils.isNotEmpty(name)) {
             dataMap.put("sendEmailFileName", name.replaceAll(" ", "_"));
         } else {
             dataMap.put("sendEmailFileName", tExamReport.getMemberName().replaceAll(" ", "_"));
         }
-
-        // 娴嬭瘯浜哄憳閭
+        
         dataMap.put("testEmail", tExamReport.getMemberEmail());
-
-        // 娴嬭瘯寮�濮嬪拰缁撴潫鏃堕棿
+        
         dataMap.put("beginTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, tExamReport.getCreateTime()));
         dataMap.put("endTime", DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, entTestMember.getEndTime()));
-
         RelatedParty relatedParty = memberService.queryProdidByToken(tExamReport.getTokenId());
-
-        // 鏁板瓧琛ㄥご閭i噷鐢�
+        
         dataMap.put("Phone", relatedParty.getMemberPhone());
         dataMap.put("Department", relatedParty.getMemberDept());
         dataMap.put("AccessCode", tExamReport.getTokenId());
         dataMap.put("Position", relatedParty.getPosition());
         dataMap.put("Occupation Category", relatedParty.getProfessionalCategory());
         dataMap.put("Superior Position", relatedParty.getSuperiorPosition());
-
-        // 鎶妌ull寮勬帀
+        
         Set dataKeySet = dataMap.keySet();
         for (Object dataKey : dataKeySet) {
             if (Objects.isNull(dataMap.get(dataKey))) {
@@ -434,7 +353,6 @@
             }
         }
     }
-
     private void setPExtro(Map dataMap, List<ReportAPIResult> interfaceContentList) {
         if (CollUtil.isEmpty(interfaceContentList)) {
             return;
@@ -450,7 +368,6 @@
             }
         }
     }
-
     @Override
     public String getDemographicName(TExamReport tExamReport) {
         EntDemographyInfo entDemographyInfo = new EntDemographyInfo();
@@ -459,25 +376,34 @@
         if (ExamUtil.isListEmpty(entDemographyInfos)) {
             return "";
         }
-        // 浜哄彛瀛︾殑key
+        
         Map<String, String> entDemographyMap = entDemographyInfos.stream().collect(
                 Collectors.toMap(EntDemographyInfo::getParamId, EntDemographyInfo::getParamValue));
-
-        //浼佷笟鐨勯偅涓弬鏁�
+        
         String  paramIds = entDemographyInfos.stream().map(it -> {
             return it.getParamId();
         }).collect(Collectors.joining(","));
-
         List<EntDemographyParam> entDemographyParams = entDemographyParamService.selectEntDemographyParamListByParamIn(paramIds);
         for (EntDemographyParam entDemographyParam : entDemographyParams) {
             if (Objects.equals(entDemographyParam.getParamCode(), "name")) {
                return entDemographyMap.get(entDemographyParam.getParamId().toString());
             }
         }
-
         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();
         report.setQuestionnaireTaker(entry.getKey());
@@ -487,13 +413,11 @@
         ReportResultData resultData = report.getTemplateParameters(entry.getValue(), reportTypeEnum, LangTypeEnum.codeOf(langType));
         return resultData;
     }
-
     public ReportResultData getJAQReportData(Map textMap) {
         ReportResultData reportResultData = new ReportResultData();
         reportResultData.setTextMap(textMap);
         return reportResultData;
     }
-
     public ReportResultData getSAQReportData(String langType, ReportTypeEnum reportTypeEnum, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
         SAQReport report = new SAQReport();
         report.setQuestionnaireTaker(entry.getKey());
@@ -503,7 +427,6 @@
         ReportResultData resultData = report.getTemplateParameters(entry.getValue(), reportTypeEnum, LangTypeEnum.codeOf(langType));
         return resultData;
     }
-
     public ReportResultData getCAQReportData(String langType, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
         ReportResultData resultData = null;
         CAQReport report = new CAQReport();
@@ -516,7 +439,6 @@
         resultData.setTextMap(templateParameterMap);
         return resultData;
     }
-
     public ReportResultData getRuilinReportData(String langType, Map.Entry<String, Map<String, String>> entry, TExamReport tExamReport) {
         ReportResultData resultData;
         RuilinMAQReport report = new RuilinMAQReport();
@@ -531,13 +453,11 @@
         resultData.setTextMap(templateParameterMap);
         return resultData;
     }
-
     private void setIconPicture(ReportResultData reportResultData, Map<String, Object> textMap) {
         Map<String, String> iconMap = reportResultData.getIconMap();
         if (Objects.isNull(iconMap) || iconMap.isEmpty()) {
             return;
         }
-
         for (Map.Entry<String, String> entry : iconMap.entrySet()) {
             WordParam wordParam = new WordParam();
             wordParam.setContent(EssConfig.getUploadPath() + entry.getValue());
@@ -545,108 +465,93 @@
             textMap.put(entry.getKey(), wordParam);
         }
     }
-
     public void setTextMap(TExamReport tExamReport, ReportResultData reportResultData, Map<String, Object> textMap) {
         textMap.putAll(reportResultData.getTextMap());
         textMap.put("reportId", tExamReport.getId().toString());
     }
-
     private void setWaterDropPicture(ReportResultData reportResultData, List<String> deleteStrList, Map<String, Object> textMap, TExamReport tExamReport) {
-        // 绗簩涓浘鐗�
+        
         if (Objects.isNull(reportResultData.getImageMap())) {
             return;
         }
-
         Map<String, String> pictureMap = reportResultData.getImageMap();
 
-//        // begin 璋冭瘯鐨勪复鏃朵唬鐮�
-//        pictureMap.put("Flexibility_1_waterDrops", "100");
-//        pictureMap.put("Creativity_2_waterDrops", "0");
-//        pictureMap.put("ResponseFidelityDiagnosis_waterDrops1", "100");
-//        pictureMap.put("ResponseFidelityDiagnosis_waterDrops2", "0");
-//        System.out.println("--ResponseFidelityDiagnosis_waterDrops1--" + pictureMap.get("ResponseFidelityDiagnosis_waterDrops1"));
-//        // end 璋冭瘯鐨勪复鏃朵唬鐮�
+
+
+
+
+
+
         for (Map.Entry<String, String> entry : pictureMap.entrySet()) {
-            // setWaterDrop(textMap, entry, deleteStrList);
-            setWaterDropCreatePic(textMap, entry, deleteStrList, tExamReport.getId().toString()); // 鐢熸垚鍥剧墖鐨勬柟寮�
+            
+            setWaterDropCreatePic(textMap, entry, deleteStrList, tExamReport.getId().toString()); 
         }
     }
-
-    // 璁剧疆姘存淮
+    
     private void setWaterDrop(Map<String, Object> textMap, Map.Entry<String, String> entry, List<String> deleteStrList) {
-
         String[] strValue = entry.getValue().toString().split("\\.");
         BufferedImage bufferedImage = saveNumberPicture(strValue[0]);
-
-        // 寰楀埌鍥剧墖鍦板潃
+        
         String path = getUploadPicturePath(entry.getKey()+ "_number.png");
-
         try {
             File file = new File(path);
-            ImageIO.write(bufferedImage, "png", file);//鍐欏叆鏂囦欢
+            ImageIO.write(bufferedImage, "png", file);
         } catch (IOException e) {
             e.printStackTrace();
         }
-
         deleteStrList.add(path);
         double retreat = 465;
-
-        // double posistionValue = Double.valueOf(entry.getValue()) * 5 - retreat;
-        // 姘存淮鐨勬暟瀛楀浘鐗�
+        
+        
         double posistionValue = (Double.valueOf(entry.getValue()) / 100) * retreat;
         double offsetNumX = -3;
         double offsetNumY = 2;
         WordParam wordParamWaterDorpNumber = new WordParam(posistionValue > 0 ? posistionValue + offsetNumX : offsetNumX, offsetNumY, 20, 20, path);
         wordParamWaterDorpNumber.setTopPosition(1);
         textMap.put(entry.getKey()+ "_number", wordParamWaterDorpNumber);
-
         WordParam wordParam = new WordParam();
         wordParam.setX(posistionValue > 0 ? posistionValue : 0);
-
         String[] watherDropPictrues = entry.getKey().split("_");
-
-        // 涓嶅悓棰滆壊鐨勬按婊�
+        
         wordParam.setContent(WordUtil.getTemplatePicture(ExamUtil.getWaterDropPictureMap(watherDropPictrues[0])));
-
-        // 姘存淮鏀惧ぇ涓�鍊�
+        
         wordParam.setPicWidth(15);
         wordParam.setPicHeight(25);
         textMap.put(entry.getKey(), wordParam);
     }
-
-    // 璁剧疆姘存淮
+    
     private void setWaterDropCreatePic(Map<String, Object> textMap, Map.Entry<String, String> entry, List<String> deleteStrList, String id) {
-
         String[] strValue = entry.getValue().toString().split("\\.");
         String key = entry.getKey();
-
         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;
         }
-
         WordParam wordParam = new WordParam();
-
         Float floatValue = Float.valueOf(strValue[0]);
-
         String suffixDate = DateTimeUtil.dateMillisecondFormat(new Date());
-
         ImageUtil.creteWaterDropPic(key, waterDropName, floatValue, id, suffixDate);
-
-        // 鍥犱负鏄悓涓�涓洰褰曪紝鐢ㄥ悗缂�鍖轰竴涓嬪浘鐗�
+        
         wordParam.setContent(EssConfig.getProfile() + "/" + key + "_" + id + "_" + floatValue.toString() + "_" + suffixDate + ".png");
-
         deleteStrList.add(EssConfig.getProfile() + "/" + key + "_" + id + "_" + floatValue.toString() + "_" + suffixDate + ".png");
-
-        // 姘存淮鏀惧ぇ涓�鍊�
+        
         if (StringUtils.equals(key.split("_")[0], "ResponseFidelityDiagnosis")) {
-            wordParam.setPicWidth(446);
-            wordParam.setPicHeight(33); // 鐜板湪鐢�500/888 鍏跺疄鏄�445/888
-        } 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);
@@ -655,33 +560,25 @@
             wordParam.setPicHeight(35);
             wordParam.setX(-13.75);
         }
-
         textMap.put(entry.getKey(), wordParam);
-
     }
-
     private BufferedImage saveNumberPicture(String textNumber) {
         int width = 200;
         int heigth = 150;
-        Font font = new Font("", Font.BOLD, 60);//瀛椾綋
+        Font font = new Font("", Font.BOLD, 60);
         return ImageUtil.waterMarkByText(width, heigth, textNumber, Color.black, font, null,
                 0.8f);
     }
-
-    // 缁熶竴璺緞
+    
     private String getUploadPicturePath(String name) {
         return EssConfig.getUploadPath() + name;
     }
-
-
     @Override
     public boolean getBaseAndComleteSendMailFile(List<TExamReport> tExamReportList, TExamReport tExamReportResult, List<String> fileNameResult, List<String> deleteStrList, TReportTemplate tReportTemplate) {
         try {
             List<String> fileNameList = new ArrayList<>();
 
-//            setExportBaseOrDetailReportData(tExamReportList, deleteStrList, fileNameList, path, tReportTemplate, tReportTemplate.getLangType(), reportType, reportTypeEnumMap.get(tReportTemplate.getTemplateType()));
             setExportBaseOrDetailReportData(tExamReportList, deleteStrList, fileNameList, tReportTemplate);
-
             for (String fileNameTemp : fileNameList) {
                 if (StringUtils.isEmpty(fileNameTemp)) {
                     continue;
@@ -689,34 +586,29 @@
                 fileNameResult.add(EssConfig.getProfile() + "/" + fileNameTemp);
             }
         } catch (Exception e) {
+        	log.error("鍙戠敓寮傚父:{}", e);
             return false;
         }
-
         return true;
     }
-
-    // 鐢熸垚鎶ュ憡鐨勫叆鍙�
+    
     @Override
     public TExamReport getReportFromTemplate(TExamReport tExamReport, List<String> fileNameResult, List<String> deleteStrList) {
         List<TExamReport> tExamReportList = selectTExamReportList(tExamReport);
         TExamReport tExamReportResult = tExamReportList.get(0);
-
-        // 瓒呮椂
+        
         if (Objects.isNull(tExamReportResult.getFinish()) || tExamReportResult.getFinish() == 0) {
             return null;
         }
-
-        // 瀵煎嚭鍩虹鐗堟湰
+        
         List<TReportTemplate> tReportTemplateList = itReportTemplateService.selectTReportTemplates(tExamReportResult.getReportTemplateId());
         for (TReportTemplate tReportTemplate : tReportTemplateList) {
-            // 鍒ゆ柇涓嶆槸璇█鐨勬ā鐗堜笉瀵煎嚭锛屽悗鏉ュ張璇磋瀵煎嚭
-//            if (!Objects.equals(tReportTemplate.getLangType(), tExamReportResult.getLangType())) {
-//                continue;
-//            }
+            
+
+
 
             getBaseAndComleteSendMailFile(tExamReportList, tExamReportResult, fileNameResult, deleteStrList, tReportTemplate);
         }
         return tExamReportResult;
     }
-
 }

--
Gitblit v1.9.1