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