From 8f781f3cb17187a7ee58f41632c25fbb2aa81cc7 Mon Sep 17 00:00:00 2001 From: linzhijie <19970921lzj> Date: 星期二, 16 三月 2021 19:57:24 +0800 Subject: [PATCH] 补充环境配置 --- src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java | 463 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 342 insertions(+), 121 deletions(-) diff --git a/src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java index f3a50b1..7a54b0a 100644 --- a/src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java +++ b/src/main/java/com/ots/project/exam/service/impl/TExamPaperServiceImpl.java @@ -1,4 +1,5 @@ package com.ots.project.exam.service.impl; + import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -38,62 +39,103 @@ 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; +/** + * 浜у搧鍖呭垪琛⊿ervice涓氬姟灞傚鐞� + * + * @author ots + * @date 2019-11-20 + */ @Service("examPaper") @Slf4j public class TExamPaperServiceImpl implements ITExamPaperService { @Autowired private TExamPaperMapper tExamPaperMapper; + @Autowired private TTextContentMapper tTextContentMapper; + @Autowired private TExamLevelMapper tExamLevelMapper; + @Autowired private TQuestionMapper questionMapper; + @Autowired private ITQuestionService tQuestionService; + @Autowired private IDictDataService dictDataService; + @Autowired private DictService dictService; + @Autowired private ITTextContentService tTextContentService; + @Autowired private TExamPaperQuestionMapper tExamPaperQuestionMapper; + @Autowired private ITExamPaperService tExamPaperService; + @Autowired private ISysUserPaperService userPaperService; + @Autowired private IExamUtilService examUtilService; + protected final static ModelMapper modelMapper = ModelMapperSingle.Instance(); + @Autowired private ITReportTemplateService itReportTemplateService; + @Autowired private ITExamReportService examReportService; + @Autowired private EntTestMemberMapper entTestMemberMapper; + @Autowired EmailMessage emailMessage; + @Autowired ReportCalculationServices calculationServices; + private static final Logger logger = LoggerFactory.getLogger(Threads.class); - + + + /** + * 鏌ヨ浜у搧鍖呭垪琛� + * + * @param id 浜у搧鍖呭垪琛↖D + * @return 浜у搧鍖呭垪琛� + */ @Override public TExamPaper selectTExamPaperById(Long id) { return tExamPaperMapper.selectTExamPaperById(id); } - + + /** + * 鏌ヨ浜у搧鍖呭垪琛ㄥ垪琛� + * + * @param tExamPaper 浜у搧鍖呭垪琛� + * @return 浜у搧鍖呭垪琛� + */ @Override public List<TExamPaper> selectTExamPaperList(TExamPaper tExamPaper) { + List<TExamPaper> tExamPaperList = tExamPaperMapper.selectTExamPaperList(tExamPaper); List<TExamPaper> tExamPaperResultList = new ArrayList<>(); - + + // 閬嶅巻鍑哄悇绉嶈瑷� for (TExamPaper tExamPaperTemp : tExamPaperList) { Map<String, String> nameMap = JsonUtil.toJsonObject(tExamPaperTemp.getName(), HashMap.class); if (Objects.isNull(nameMap)) { @@ -115,16 +157,24 @@ }); } } - + + // 杩欐牱鎵嶈兘缈婚〉 tExamPaperList.clear(); tExamPaperList.addAll(tExamPaperResultList); return tExamPaperList; } - + + /** + * 鏂板浜у搧鍖呭垪琛� + * + * @param tExamPaper 浜у搧鍖呭垪琛� + * @return 缁撴灉 + */ @Override @Transactional public int insertTExamPaper(TExamPaper tExamPaper) { - + + // 娣诲姞鐗堟湰鍙� if (Objects.nonNull(tExamPaper.getVersionId())) { String maxVersion = tExamPaperMapper.selectEPaperMaxVBypermanentId(tExamPaper); if (StringUtils.isEmpty(maxVersion) && StringUtils.isNotEmpty(tExamPaper.getVersionId())) { @@ -139,31 +189,40 @@ } else { setVersion(tExamPaper); } - + + // 鎺у埗璇█ tExamPaper.setLangType(examUtilService.getLocalLangType(tExamPaper.getLangType())); + tExamPaper.setCreateTime(DateUtils.getNowDate()); - + + //鎷艰t_text_content锛宼Question鍙傛暟鐨勫睘鎬т篃鏄細鍦ㄦ鏂规硶鍐呴儴淇敼 TTextContent textContent = new TTextContent(); - + + // 璁剧疆浜у搧鍖呭悕绉板拰鎸囧璇� setInserPerperNameAndGuide(tExamPaper); - + + // 璁剧疆浜у搧鍖呯殑content鐨勫唴瀹�,鍏_exam_paper_question琛� setInsertPaperContent(tExamPaper, textContent); - + + //鍏ュ簱t_text_content tTextContentMapper.insertTTextContent(textContent); tExamPaper.setFrameTextContentId(textContent.getId()); - - + + //璁$畻璇曞嵎鎬诲垎 + // SetExamPaperAttribute(tExamPaper); setQuestionContentJson(tExamPaper); tExamPaperMapper.insertTExamPaper(tExamPaper); - + // 鏈�鍚庡叆t_exam_paper_question琛� return setExamPaperQuestion(tExamPaper); } + private void setVersion(TExamPaper tExamPaper) { tExamPaper.setVersionId(UUID.randomUUID().toString().replaceAll("-", "")); tExamPaper.setVersion("V1"); } + private void setInsertPaperContent(TExamPaper tExamPaper, TTextContent textContent) { - + // 澶氳瑷�2銆乧ontent琛ㄩ噷闈㈢殑锛孧ultilingual涓嶄负绌鸿〃绀哄凡缁忓仛浜嗗璇█ if (StringUtils.isNotEmpty(tExamPaper.getMultilingual())) { String content = tExamPaper.getQuestions(); content = setPartsContent(tExamPaper, content); @@ -179,6 +238,7 @@ textContent.setContent(JsonUtil.toJSONString(examPaperTitleItemList)); } } + private String setPartsContent(TExamPaper tExamPaper, String content) { List<ExamPaperTitleItem> examPaperTitleItemList = JsonUtil.parseArray(content, ExamPaperTitleItem.class); List<QuestionPart> parts = examPaperTitleItemList.get(0).getParts(); @@ -186,7 +246,8 @@ content = JsonUtil.toJSONString(examPaperTitleItemList); return content; } - + + // 澶氳瑷� private void setPartLangsData(TExamPaper tExamPaper, List<QuestionPart> parts) { if (ExamUtil.isListNotEmpty(parts)) { for (QuestionPart questionPart : parts) { @@ -197,6 +258,7 @@ } } } + private int setExamPaperQuestion(TExamPaper tExamPaper) { List<ExamPaperTitleItem> examPaperTitleItemList = JsonUtil.toJsonListObject(tExamPaper.getQuestions(), ExamPaperTitleItem.class); int size = examPaperTitleItemList.size(); @@ -211,20 +273,22 @@ tExamPaperQuestionMapper.insertTExamPaperQuestion(tExamPaperQuestion); }); } + return 1; } + private void setInserPerperNameAndGuide(TExamPaper tExamPaper) { - - + // 澶氳瑷� + // 澶氳瑷�1銆� 棰樼洰杞寲涓哄璇█,鎵归噺瀵煎叆鐨勪笉杞寲 Map<String, String> nameMap = new HashMap<>(); Map<String, String> guideMap = new HashMap<>(); if (StringUtils.isNotEmpty(tExamPaper.getMultilingual())) { - + // 鎵归噺瀵煎叆 setInserPerperBatch(tExamPaper, nameMap, guideMap); - + // 鍚嶇О鍜屾寚瀵艰 setProductNameAndGuide(tExamPaper, nameMap, guideMap); - } else { - + } else { // 闈炴壒閲忓鍏� + // 濡傛灉鏄彃鍏ョ殑瑕嗙洊 if (tExamPaper.isCreate() && Objects.nonNull(tExamPaper.getId())) { TExamPaper tExamPaperLast = tExamPaperMapper.selectTExamPaperById(tExamPaper.getId()); String nameMapJson = ExamUtil.getStringMapJson(tExamPaper.getLangType(), tExamPaper.getName(), tExamPaperLast.getName()); @@ -238,15 +302,16 @@ nameMap.put(tExamPaper.getLangType(), tExamPaper.getName()); guideMap.put(tExamPaper.getLangType(), tExamPaper.getGuide()); } - + // 鍚嶇О鍜屾寚瀵艰 setProductNameAndGuide(tExamPaper, nameMap, guideMap); } } - + + // 鎵归噺瀵煎叆鎻掑叆 private void setInserPerperBatch(TExamPaper tExamPaper, Map<String, String> nameMap, Map<String, String> guideMap) { List<String> multilingualList = JsonUtil.toJsonListObject(tExamPaper.getMultilingual(), String.class); for (int i = 0; i < multilingualList.size(); i++) { - + // 濡傛灉閫夋嫨浜嗗璇█鑰屽鍏ョ殑涓嶆槸鏈湴鍥介檯鍖栫殑閭g璇█ if (StringUtils.equals(tExamPaper.getLangType(), "ALL") && !multilingualList.contains(dictService.getLangType(LocaleContextHolder.getLocale().toString()))) { nameMap.put(multilingualList.get(i), tExamPaper.getName()); guideMap.put(multilingualList.get(i), tExamPaper.getGuide()); @@ -259,12 +324,14 @@ } } } - + + // 璁剧疆浜у搧鍖呯殑鍚嶇О鍜屾寚瀵艰 private void setProductNameAndGuide(TExamPaper tExamPaper, Map<String, String> nameMap, Map<String, String> guideMap) { tExamPaper.setName(JsonUtil.toJsonStr(nameMap)); tExamPaper.setGuide(JsonUtil.toJsonStr(guideMap)); } - + + // 娣诲姞鍒皅uesitonContent瀛楁锛屼笓闂ㄤ负棰樼洰鎼滅储锛岀┖闂存崲鏃堕棿锛岃褰曞皬棰橈紝涓嶆槸澶ч private void setQuestionContentJson(TExamPaper tExamPaper) { String langType = tExamPaper.getLangType(); tExamPaper.setLangType(""); @@ -282,61 +349,81 @@ tExamPaper.setQuestionContent(JsonUtil.toJsonStr(questionContentList)); tExamPaper.setLangType(langType); } + private void SetExamPaperAttribute(TExamPaper tExamPaper) { - + // begin 璁$畻鏁翠釜浜у搧鍖呯殑鍒嗘暟 List<ExamPaperTitleItemObject> examPaperTitleItemObjectList = JSONArray.parseArray(tExamPaper.getQuestions(), ExamPaperTitleItemObject.class); - + //灏嗘暟鎹墦妯啀杞琹ist[(1,2,3),(4,5,6)] ->(1,2,3,4,5,6) ->[(1),(2),(3),(4),(5),(6)] List<Integer> questionIds = examPaperTitleItemObjectList.stream().flatMap(t -> t.getQuestionItems().stream().map(q -> q.getId())).collect(Collectors.toList()); Integer[] ids = questionIds.toArray(new Integer[questionIds.size()]); List<TQuestion> tQuestionList = questionMapper.selectTQuestionScore(ids); - - + //sql璇彞鏄痵um(),閮芥槸1鏉� + //tExamPaper.setScore(tQuestionList.get(0).getScore()); tExamPaper.setScore(0l); - - + // end 璁$畻鏁翠釜浜у搧鍖呯殑鍒嗘暟 + + //棰樼洰鎬绘暟 tExamPaper.setQuestionCount(Long.valueOf(questionIds.size())); } - + + /** + * 淇敼浜у搧鍖呭垪琛� + * + * @param tExamPaper 浜у搧鍖呭垪琛� + * @return 缁撴灉 + */ @Override @Transactional public int updateTExamPaper(TExamPaper tExamPaper) { - + // 澶氳瑷�鐨勬儏鍐� if (StringUtils.isEmpty(tExamPaper.getVersion())) { setVersion(tExamPaper); updateTExamPaperVersion(tExamPaper); } + if (tExamPaper.isCreate()) { insertTExamPaper(tExamPaper); } updateLangProduct(tExamPaper); return setExamPaperQuestion(tExamPaper); } - + + // 鏇存柊浜у搧鍖呯殑鐗堟湰 public int updateTExamPaperVersion(TExamPaper tExamPaper) { return tExamPaperMapper.updateTExamPaperVersion(tExamPaper); } + private int updateLangProduct(TExamPaper tExamPaper) { - + // 浜у搧鍖呭悕绉板璇█ TExamPaper tExamPaperForUpdate = selectTExamPaperById(tExamPaper.getId()); - + + // 鏇存柊浜у搧鍖呯殑鍐呭 setExamPaperInfor(tExamPaper, tExamPaperForUpdate); - + + // 澶勭悊content閲岄潰鐨勶紝鏃х殑content鎷兼柊鐨刢ontent TTextContent textContent = tTextContentMapper.selectTTextContentById(tExamPaperForUpdate.getFrameTextContentId()); + textContent.setContent(tExamPaper.getQuestions()); textContent.setUpdateTime(DateUtils.getNowDate()); tTextContentMapper.updateTTextContent(textContent); tExamPaperForUpdate.setUpdateTime(DateUtils.getNowDate()); return tExamPaperMapper.updateTExamPaper(tExamPaperForUpdate); } + private void setExamPaperInfor(TExamPaper tExamPaper, TExamPaper tExamPaperForUpdate) { tExamPaperForUpdate.setName(ExamUtil.getStringMapJson(tExamPaper.getLangType(), tExamPaper.getName(), tExamPaperForUpdate.getName())); - + + // 鎸囧璇璇█ tExamPaperForUpdate.setGuide(ExamUtil.getStringMapJson(tExamPaper.getLangType(), tExamPaper.getGuide(), tExamPaperForUpdate.getGuide())); + tExamPaperForUpdate.setSuggestTime(tExamPaper.getSuggestTime()); + tExamPaperForUpdate.setReportTemplateId(tExamPaper.getReportTemplateId()); - + + // 璁剧疆鍒嗘鐨勫璇█ setLangsPart(tExamPaper, tExamPaperForUpdate); } + private void setLangsPart(TExamPaper tExamPaper, TExamPaper tExamPaperForUpdate) { try { List<ExamPaperTitleItem> examPaperTitleItemListNew = JsonUtil.parseArray(tExamPaper.getQuestions(), ExamPaperTitleItem.class); @@ -353,33 +440,39 @@ } tExamPaper.setQuestions(JsonUtil.toJSONString(examPaperTitleItemListNew)); } catch (Exception e) { + } } + @Override public int deleteProductContent(TExamPaper tExamPaper) { - + // 浜у搧鍖呭悕绉板璇█ TExamPaper tExamPaperForUpdate = selectTExamPaperById(tExamPaper.getId()); tExamPaperForUpdate.setName(ExamUtil.deleteLangString(tExamPaper.getLangType(), tExamPaperForUpdate.getName())); - + + // 鎸囧璇璇█ tExamPaperForUpdate.setGuide(ExamUtil.deleteLangString(tExamPaper.getLangType(), tExamPaperForUpdate.getGuide())); - + + // 澶勭悊content閲岄潰鐨勶紝鏃х殑content鎷兼柊鐨刢ontent TTextContent textContent = tTextContentMapper.selectTTextContentById(tExamPaperForUpdate.getFrameTextContentId()); List<ExamPaperTitleItem> examPaperTitleItemUpdateList = JsonUtil.toJsonListObject(textContent.getContent(), ExamPaperTitleItem.class); int questionNum = 0; for (ExamPaperTitleItem examPaperTitleItem : examPaperTitleItemUpdateList) { - + // 涓洪棶棰樼殑姣忎竴椤规坊鍔犲璇█ examPaperTitleItem.setName(ExamUtil.deleteLangString(tExamPaper.getLangType(), examPaperTitleItem.getName())); examPaperTitleItem.setGuide(ExamUtil.deleteLangString(tExamPaper.getLangType(), examPaperTitleItem.getGuide())); examPaperTitleItem.setDescription(ExamUtil.deleteLangString(tExamPaper.getLangType(), examPaperTitleItem.getDescription())); } + textContent.setContent(JsonUtil.toJsonStr(examPaperTitleItemUpdateList)); textContent.setUpdateTime(DateUtils.getNowDate()); - + // 鍒犻櫎鍒嗘鐨勫璇█ deleteLangParts(tExamPaper, textContent); tTextContentMapper.updateTTextContent(textContent); tExamPaperForUpdate.setUpdateTime(DateUtils.getNowDate()); return tExamPaperMapper.updateTExamPaper(tExamPaperForUpdate); } + private void deleteLangParts(TExamPaper tExamPaper, TTextContent textContent) { try { List<ExamPaperTitleItem> examPaperTitleItemForPartList = JsonUtil.parseArray(textContent.getContent(), ExamPaperTitleItem.class); @@ -393,27 +486,46 @@ textContent.setContent(JsonUtil.toJSONString(examPaperTitleItemForPartList)); } } catch (Exception e) { + } } - + + /** + * 鍒犻櫎浜у搧鍖呭垪琛ㄥ璞� + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID + * @return 缁撴灉 + */ @Override public int deleteTExamPaperByIds(String ids) { - + // 鍒犻櫎绱㈠紩鐨勮〃 tExamPaperQuestionMapper.deleteTExamPaperQuestionByIds(Convert.toStrArray(ids)); - + // 鍒犻櫎content琛紝鐪佺┖闂� return tExamPaperMapper.updateByDelete(Convert.toStrArray(ids)); } - + + /** + * 鍒犻櫎浜у搧鍖呭垪琛ㄤ俊鎭� + * + * @param id 浜у搧鍖呭垪琛↖D + * @return 缁撴灉 + */ public int deleteTExamPaperById(Long id) { return tExamPaperMapper.deleteTExamPaperById(id); } + @Override public List<TExamPaper> selectProdByDeleteList(List<Long> deletes) { Map map = new HashMap<>(); map.put("deleteds", deletes); return tExamPaperMapper.selectProdByDeleteList(map); } - + + /** + * 鎵�鏈夊彲閫変骇鍝佸寘 + * + * @return 鎵�鏈夊彲閫変骇鍝佸寘 + */ public List<Ztree> selectProdTree(String testType) { List<Ztree> ztrees = new ArrayList<>(); List<TExamPaper> dictList = getUserPapers(); @@ -428,8 +540,10 @@ continue; } String questionTemplateId = tExamLevel.getQuestionTemplateId(); + if (!Objects.equals(testType, questionTemplateId)) { if (Objects.equals("questionnaire",testType) && Objects.equals("job",questionTemplateId)) { + } else { continue; } @@ -442,13 +556,14 @@ } return ztrees; } + public List<TExamPaper> getUserPapers() { User sysUser = ShiroUtils.getSysUser(); List<TExamPaper> dictList; if (Objects.equals(UserTypeEnum.SYS_USER.getUserType(), sysUser.getUserType())) { TExamPaper tExamPaper = new TExamPaper(); dictList = tExamPaperService.selectTExamPaperList(tExamPaper); - } + }//鍏朵粬鐢ㄦ埛灞曠ずsys_user_paper鍒嗛厤鐨勪骇鍝佸寘 else { SysUserPaper sysUserPaper = new SysUserPaper(); sysUserPaper.setUserId(sysUser.getUserId()); @@ -460,38 +575,46 @@ return paper; }).collect(Collectors.toList()); } - + + //鍙栫湡瀹炲悕绉� dictList.stream().forEach(p -> { p.setName(ExamUtil.getStringByLang(p.getLangType(), p.getName())); }); + return dictList; } + @Override public int updateDeleted(TExamPaper tExamPaper) { return tExamPaperMapper.updateTExamPaper(tExamPaper); } + @Transactional @Override public List<TQuestion> updateInsertQuestion(List<TQuestion> questionList, String multilingual) { questionList.stream().forEach(question -> { - + // 鏇存柊鏃х殑 question.setMultilingual(multilingual); tQuestionService.updateTQuestion(question); }); return questionList; } - + + // 濡傛灉鏈鐩凡缁忔湁浜嗚绉嶈瑷�锛屽氨涓嶈灞曠ず锛宔dit-*.html浣跨敤 @Override public List<DictData> getType(Long id) { - + + // 鏌ヨ瀛楀吀鍏� List<DictData> dictDataList = dictDataService.selectDictDataByType("lang_type"); - + + // 鏌ョ湅宸茬粡瀛樺湪鐨勯鐩� if (Objects.nonNull(id)) { TExamPaper tExamPaper = selectTExamPaperById(id); Map<String, String> titleMap = JsonUtil.toJsonObject(tExamPaper.getName(), HashMap.class); if (Objects.isNull(titleMap)) { return dictDataList; } + List<DictData> dictDataListResult = new ArrayList<>(); for (DictData dictData : dictDataList) { if (StringUtils.isEmpty(titleMap.get(dictData.getDictValue()))) { @@ -503,29 +626,35 @@ return dictDataList; } } + @Override public void recallThaiInterface(TExamReport tExamReportResult, String reportType) { TExamReport tExamReportUpdate = new TExamReport(); tExamReportUpdate.setId(tExamReportResult.getId()); tExamReportUpdate.setTokenId(tExamReportResult.getTokenId()); - + // 鍘绘帀鍘熸潵鐨勯偅浜涘唴瀹� tExamReportResult.setInterfaceContent(""); - + + // Maq鍜孲AQ閲嶆柊鎺� recallMaqAndSaqThaiInterface(tExamReportResult, reportType, tExamReportUpdate); + recallCaqThaiInterface(tExamReportResult, reportType, tExamReportUpdate); } + private void recallCaqThaiInterface(TExamReport tExamReportResult, String reportType, TExamReport tExamReportUpdate) { if (Objects.equals("CAQ", reportType)) { ExamPaperSubmitVM examPaperSubmitVM = new ExamPaperSubmitVM(); - + // 鏄惁鏄噸鏂拌皟鐢ㄦ嘲鍥藉洟闃� examPaperSubmitVM.setRecallThaiInterface(true); - + // 璧版墜鍔ㄦ彁浜ょ殑鏂瑰紡璧嬪�� examPaperSubmitVM.setSubmitClick(true); + if (!recallThaiInterfaceForMAQAndCAQ(tExamReportResult, tExamReportUpdate, examPaperSubmitVM, 2)) { return; } } } + private void recallMaqAndSaqThaiInterface(TExamReport tExamReportResult, String reportType, TExamReport tExamReportUpdate) { List<QuestionReport> questionReports = JsonUtil.parseArray(tExamReportResult.getQuestionReport(), QuestionReport.class); if (Objects.equals("MAQ", reportType) || Objects.equals("SAQ", reportType)) { @@ -534,7 +663,7 @@ for (Integer partOrder : partOrderSet) { ExamPaperSubmitVM examPaperSubmitVM = new ExamPaperSubmitVM(); examPaperSubmitVM.setPartOrder(partOrder); - + // 鏄惁鏄噸鏂拌皟鐢ㄦ嘲鍥藉洟闃� examPaperSubmitVM.setRecallThaiInterface(true); if (!recallThaiInterfaceForMAQAndCAQ(tExamReportResult, tExamReportUpdate, examPaperSubmitVM, examPaperSubmitVM.getPartOrder())) { return; @@ -542,6 +671,7 @@ } } } + private boolean recallThaiInterfaceForMAQAndCAQ(TExamReport tExamReportResult, TExamReport tExamReportUpdate, ExamPaperSubmitVM examPaperSubmitVM, Integer partOrder2) { ReportAPIResult reportAPIResult = getTaiInterface(examPaperSubmitVM, tExamReportResult, tExamReportUpdate); if (Objects.equals(reportAPIResult.getCode(), "fail")) { @@ -549,32 +679,43 @@ examReportService.updateTExamReportByTokenId(tExamReportUpdate); return false; } - + + // 鏇存柊娉板浗鎺ュ彛鏁版嵁锛屼繚瀛樻嘲鍥芥帴鍙f暟鎹� updateTaiInterfaceContent(tExamReportUpdate, tExamReportResult, reportAPIResult, partOrder2); tExamReportResult.setInterfaceContent(tExamReportUpdate.getInterfaceContent()); return true; } + @Override public List<ExamPaperTitleItem> getExamPaperTitleContent(TExamPaper tExamPaper) { - + //琛ㄧず杩樻病鏈夋坊鍔犻鐩� if (Objects.isNull(tExamPaper.getFrameTextContentId())) { return null; } + TTextContent tTextContent = tTextContentService.selectTTextContentById(tExamPaper.getFrameTextContentId()); - + + //澶ф爣棰橈紝绗竴娈垫煡t_exam_paper鐨則_text_content List<ExamPaperTitleItemObject> examPaperTitleItemObjectList = JSONArray.parseArray(tTextContent.getContent(), ExamPaperTitleItemObject.class); - + + // 宸ヤ綔鍒嗘瀽闂嵎鍘诲幓question鐨勯鐩綔涓哄睍绀� examUtilService.setTitleName(tExamPaper, examPaperTitleItemObjectList); - + + //鏍囬銆侀骞�=>閫夐」 鍚嶅瓧锛歯ame,棰樼洰锛歲uestionItems锛屽ぇ鏍囬 List<ExamPaperTitleItem> examPaperTitleItemList = new ArrayList<>(); - + + // 璁剧疆question鐨勫�� setPaperQuestion(tExamPaper, examPaperTitleItemObjectList, examPaperTitleItemList); - + + // 鍒嗙墖鐨勮繑鍥� examPaperTitleItemList.get(0).setParts(examPaperTitleItemObjectList.get(0).getParts()); - + + // 澶勭悊鍒嗙墖澶氳瑷� getPartsmultiLanguage(tExamPaper, examPaperTitleItemList); + return examPaperTitleItemList; } + private void getPartsmultiLanguage(TExamPaper tExamPaper, List<ExamPaperTitleItem> examPaperTitleItemList) { List<QuestionPart> parts = examPaperTitleItemList.get(0).getParts(); if (CollUtil.isEmpty(parts)) { @@ -587,39 +728,47 @@ }); } } + private void setPaperQuestion(TExamPaper tExamPaper, List<ExamPaperTitleItemObject> examPaperTitleItemObjectList, List<ExamPaperTitleItem> examPaperTitleItemList) { - + //ExamPaperTitleItem->QuestionItem->QuestionEditItem->(A,B,C) for (ExamPaperTitleItemObject examPaperTitleItemObject : examPaperTitleItemObjectList) { - + //鏍囬銆侀骞�=>閫夐」锛堝崟涓級 ExamPaperTitleItem examPaperTitleItem = new ExamPaperTitleItem(); + examPaperTitleItem.setName(ExamUtil.getLangString(tExamPaper.getLangType(), examPaperTitleItemObject.getName())); - + + //澶ф爣棰樹笅闈㈡湁澶氬皯涓锛屾煡t_question List<ExamPaperQuestionItemObject> examPaperQuestionList = examPaperTitleItemObject.getQuestionItems(); - + + //map淇濆瓨棰樼洰鐨勯『搴� Map<Integer, ExamPaperQuestionItemObject> questionOrder = new HashMap<>(); List<String> ids = new ArrayList<String>(); for (ExamPaperQuestionItemObject examPaperQuestionItemObject : examPaperQuestionList) { ids.add(examPaperQuestionItemObject.getId().toString()); questionOrder.put(examPaperQuestionItemObject.getId(), examPaperQuestionItemObject); } + if (ExamUtil.isListEmpty(ids)) { continue; } - + + //begin 鏌ヨ鍑烘瘡涓�涓爣棰樼殑棰樼洰{"analyze":"杩欎釜鏄В鏋�","correct":"C","questionItemObjects":[{"content":"<p>B閫夐」</p>","prefix":"B","score":500},{"content":"A閫夐」","prefix":"A","score":500},{"content":"C閫夐」","prefix":"C","score":500},{"content":"D閫夐」鐨勭瓟妗�","prefix":"D","score":500}],"titleContent":"璇烽棶娴锋磱鏈�澶氱殑鏄粈涔�"} List<TTextContentAndQuestion> tTextContents = tTextContentService.selectTextContentAndQuestion(ids.toArray(new String[ids.size()])); List<QuestionItem> questionItemList = tTextContents.stream().map(i -> { QuestionItem questionItem = new QuestionItem(); - + + //begin 鑾峰彇棰樺共鍐呭 QuestionObject questionObject = JSONObject.parseObject(i.getContent(), QuestionObject.class); - + // 澶氳瑷� questionItem.setTitle(ExamUtil.getLangString(tExamPaper.getLangType(), questionObject.getTitleContent())); questionItem.setId(i.getId().intValue()); questionItem.setQuestionId(i.getQuestionId().intValue()); questionItem.setItemOrder(questionOrder.get(i.getQuestionId().intValue()).getItemOrder()); questionItem.setPermanentId(i.getPermanentId()); questionItem.setPartOrder(questionOrder.get(i.getQuestionId().intValue()).getPartOrder()); - - + //end 鑾峰彇棰樺共鍐呭 + + //begin 鑾峰彇閲岄潰鐨勯�夐」锛屽鏋滈�夐」涓虹┖锛屽氨缁欎竴涓粯璁ゅ�硷紝鍚﹀垯鏅哄姏棰樹細鎶ラ敊 if (Objects.nonNull(questionObject.getQuestionItemObjects())) { List<QuestionEditItem> items = questionObject.getQuestionItemObjects().stream().map(val -> { QuestionEditItem questionEditItem = modelMapper.map(val, QuestionEditItem.class); @@ -635,32 +784,46 @@ questionEditItem.setScore(0); items.add(questionEditItem); questionItem.setItems(items); + } - + //end 鑾峰彇閲岄潰鐨勯�夐」 + return questionItem; }).collect(Collectors.toList()); - - + //end 鏌ヨ鍑烘瘡涓�涓爣棰樼殑棰樼洰 + + //澶ф爣棰橀噷闈㈢殑棰樼洰 examPaperTitleItem.setQuestionItems(questionItemList); + examPaperTitleItem.setDescription(ExamUtil.getLangString(tExamPaper.getLangType(), examPaperTitleItemObject.getDescription())); + examPaperTitleItem.setGuide(ExamUtil.getLangString(tExamPaper.getLangType(), examPaperTitleItemObject.getGuide())); + examPaperTitleItem.setPermanentId(examPaperTitleItemObject.getPermanentId()); + examPaperTitleItem.setQuestionId(examPaperTitleItemObject.getQuestionId()); + examPaperTitleItemList.add(examPaperTitleItem); } } + public RestResponse<SignalObject> getSignalObjectRestResponse(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReport, List<TExamReport> tExamReportList, String langType) { - + // 鏌ヨ缁撴灉 TExamReport tExamReportResult = tExamReportList.get(0); - + + // 璋冪敤娉板浗鎺ュ彛 ReportAPIResult reportAPIResult = getTaiInterface(examPaperSubmitVM, tExamReportResult, tExamReport); - + + // 鏇存柊娉板浗鎺ュ彛鏁版嵁锛屼繚瀛樻嘲鍥芥帴鍙f暟鎹� updateTaiInterfaceContent(tExamReport, tExamReportResult, reportAPIResult, examPaperSubmitVM.getPartOrder()); - + + // 鍙戦�侀偖浠朵釜鐢ㄦ埛鍜孒R sendHRAndMemberEmail(tExamReport, true, true); - + + // 杩斿洖鎻愮ず缁欏墠鍙� return getSignalObject(examPaperSubmitVM.getPartOrder(), tExamReportResult, reportAPIResult, langType); } + private RestResponse<SignalObject> getSignalObject(int partOrder, TExamReport tExamReportResult, ReportAPIResult reportAPIResult, String langType) { TExamPaper tExamPaper = selectTExamPaperById(tExamReportResult.getProductId()); List<ExamPaperTitleItem> examPaperTitleItemList = JsonUtil.parseArray(tExamPaper.getContent(), ExamPaperTitleItem.class); @@ -682,72 +845,88 @@ signalObject.setMessage(reportAPIResult.getMessage()); return RestResponse.ok(signalObject); } - + + // 鍙戦�侀檮浠剁粰HR public void sendHRAndMemberEmail(TExamReport tExamReport, boolean justHr, boolean justMember) { - + // 闄勪欢鐨勪綅缃�,鍏蜂綋閭欢闄勪欢鐨勪綅缃� List<String> fileNameResult = new ArrayList<>(); - + // 瑕佸垹闄ょ殑鏂囦欢 List<String> deleteStrList = new ArrayList<>(); + TExamReport tExamReportResult = examReportService.getReportFromTemplate(tExamReport, fileNameResult, deleteStrList); if (tExamReportResult == null) { return; } - + + // 璋冪敤鍙戦�佺▼搴忓彂缁欑敤鎴� String title = tExamReportResult.getMemberName() + MessageUtils.message("jsp.exam.quesiton.reportTilte"); String content = tExamReportResult.getMailContent(); StringBuilder remark = new StringBuilder(); remark.append("澶辫触閭锛�"); + if (justMember) { - + // 鐢ㄦ埛鍙戦偖浠� sendMemberEmail(tExamReport, fileNameResult, tExamReportResult, title, content, remark); } if (justHr) { - + // 鍙戦�佺粰Hr,浣嗗彇testEmail sendHrEmail(tExamReport, fileNameResult, tExamReportResult, title, content, remark); } - + + // 鏇存柊鍙戦�佺姸鎬侊紝鍘嗗彶閭欢鍦板潃 tExamReport.setReportAddress(JsonUtil.toJSONString(fileNameResult)); - + + // 鏀句竴涓綋鍓嶉偖浠剁殑鍦板潃 tExamReport.setReportAddressNew(JsonUtil.toJSONString(fileNameResult)); examReportService.updateTExamReportByTokenId(tExamReport); - - + + // 鑺傜渷绌洪棿鍒犻櫎鏂囦欢 + // deleteStrList.addAll(fileNameResult); WordUtil wordUtil = new WordUtil(); wordUtil.deleteFileByStr(deleteStrList); } + public void sendHrEmail(TExamReport tExamReport, List<String> fileNameResult, TExamReport tExamReportResult, String title, String content, StringBuilder remark) { - + // 濡傛灉鍒涘缓娴嬭瘯鍖呯殑鏃跺�欐病鏈夊~閭锛岄偅涔堝氨鐢ㄩ泦鍥㈢殑鍙朒R閭閭 List<String> hrEmailList = null; try { hrEmailList = Arrays.asList(tExamReportResult.getTestEmail().split(",")); } catch (Exception ex) { + } if (ExamUtil.isListEmpty(hrEmailList)) { try { hrEmailList = Arrays.asList(tExamReportResult.getHrEmail().split(",")); } catch (Exception ex) { + } } + if (Objects.isNull(hrEmailList)) { throw new RuntimeException("Hr Email Is Not Configured"); } - + + //鏇挎崲鍏徃鍚嶇О String userName = ExamUtil.getLangString(tExamReportResult.getLangType(), tExamReportResult.getUserName()); - + //鏇挎崲鐢ㄦ埛鍚嶇О String fullName = ExamUtil.getLangString(tExamReportResult.getLangType(), tExamReportResult.getMemberName()); String productName = ExamUtil.getLangString(tExamReportResult.getLangType(), tExamReportResult.getProductName()); if (StringUtils.isEmpty(content)) { + content = loadReportHrDefaultTemplate(fullName, userName, productName); } + content = content.replace("{Company}", StringUtils.isNotEmpty(userName) ? userName : ""); content = content.replace("{fullName}", StringUtils.isNotEmpty(fullName) ? fullName : ""); content = content.replace("{prodName}", StringUtils.isNotEmpty(productName) ? productName : ""); + for (String email : hrEmailList) { + String hrEmailStatus = "1"; RushMailResult rushMailResult = emailMessage.sendEmailwithAttachment(email, title, content, fileNameResult.stream().toArray(String[]::new)); if (rushMailResult.isResult()) { tExamReport.setSendHrStatus(SenderCode.success.getCode()); - } else { + } else { // 鍙戦�佹垚鍔燂紝鍙戦�佸け璐ュ鐞� remark.append(tExamReportResult.getMemberEmail() + ","); tExamReport.setSendHrStatus(SenderCode.fail.getCode()); hrEmailStatus = "2"; @@ -757,7 +936,7 @@ tExamReport.setHrSendTime(new Date()); tExamReport.setHrUpdateTime(new Date()); try { - + //鏇存柊鐢ㄦ埛琛ㄥ彂閫丠R閭欢鐘舵�� EntTestMember entTestMember = entTestMemberMapper.selectEntTestMemberById(Long.valueOf(tExamReportResult.getMemberId())); entTestMember.setHrEmailStatus(hrEmailStatus); entTestMember.setHrEmailTime(new Date()); @@ -765,23 +944,33 @@ } catch (Exception ex) { log.error("update HrEmailStatus error:{}", ex.getMessage(), ex); } + } + tExamReport.setRemark(remark.toString()); } + private String loadReportHrDefaultTemplate(String fullName, String userName, String productName) { StringBuilder builder = new StringBuilder(); + builder.append("浜茬埍鐨剓Company}浜哄姏璧勬簮閮紝").append("<br>"); builder.append("Dear HR Staff at {Company},").append("<br><br>"); + builder.append("闄勪欢鏄瘂fullName}鏈�杩戝畬鎴愮殑{prodName}娴嬭瘎鎶ュ憡銆�").append("<br>"); builder.append("Attached please find the assessment report on ({prodName}) of ({fullName}).").append("<br><br>"); + builder.append("濡傛湁鐤戦棶锛岃涓庡鏈嶈仈绯伙紝閭鏄細support@tai-online.com銆�").append("<br>"); builder.append("Should you have questions, please contact our customer service at support@tai-online.com. ").append("<br><br><br>"); + builder.append("璋㈣阿锛�").append("<br>"); builder.append("All the best,").append("<br><br><br>"); + builder.append("TAI鍏徃瀹㈡埛鏈嶅姟閮�").append("<br>"); builder.append("Customer Service Dept., TAI, LLC").append("<br><br><br>"); + return builder.toString(); } + private String loadReportMemberDefaultTemplate(String fullName, String userName, String productName) { StringBuilder builder = new StringBuilder(); builder.append("Subject Line: Your assessment report is attached (鎮ㄧ殑娴嬭瘎鎶ュ憡闄勪笂浜�)"); @@ -807,28 +996,35 @@ builder.append(userName); return builder.toString(); } + + private void sendMemberEmail(TExamReport tExamReport, List<String> fileNameResult, TExamReport tExamReportResult, String title, String content, StringBuilder remark) { + if (StringUtils.isEmpty(content)) { - + //鏇挎崲鍏徃鍚嶇О String userName = tExamReportResult.getUserName(); - + //鏇挎崲鐢ㄦ埛鍚嶇О String fullName = tExamReportResult.getMemberName(); String productName = ExamUtil.getLangString(tExamReportResult.getLangType(), tExamReportResult.getProductName()); content = loadReportMemberDefaultTemplate(fullName, userName, productName); } + if (Objects.nonNull(tExamReportResult.getAutoSendReport()) && tExamReportResult.getAutoSendReport() == 1) { boolean result = emailMessage.sendEmailwithAttachment(tExamReportResult.getMemberEmail(), title, content, fileNameResult.stream().toArray(String[]::new)).isResult(); if (result) { tExamReport.setSendTesterStatus(SenderCode.success.getCode()); - } else { + } else { // 鍙戦�佹垚鍔燂紝鍙戦�佸け璐ュ鐞� remark.append(tExamReportResult.getMemberEmail() + ","); tExamReport.setSendTesterStatus(SenderCode.fail.getCode()); } } else { tExamReport.setSendTesterStatus(SenderCode.noSend.getCode()); } + tExamReport.setRemark(remark.toString()); } + + private void updateTaiInterfaceContent(TExamReport tExamReportUpdate, TExamReport tExamReportResult, ReportAPIResult reportAPIResult, int partOrder) { List<ReportAPIResult> reportAPIResultList = JsonUtil.parseArray(tExamReportResult.getInterfaceContent(), ReportAPIResult.class); if (CollUtil.isNotEmpty(reportAPIResultList)) { @@ -837,21 +1033,25 @@ reportAPIResultList.remove(reportAPIResultList.size() - 1); } } + if (ExamUtil.isListEmpty(reportAPIResultList)) { reportAPIResultList = new ArrayList<>(); } else { int size = reportAPIResultList.size(); int deletNum = size - (partOrder - 1); - + + // 濡傛灉鍓嶅彴鍙互璺冲埌涓婁竴棰橈紝鍒欒鍒犻櫎鍘熸潵鍏ュ簱鐨� for (int i = size - 1; i >= 0 && deletNum > 0; i--, deletNum--) { reportAPIResultList.remove(i); } + logger.info("reportAPIResultList:鐨勪釜鏁�" + reportAPIResultList.size()); } reportAPIResultList.add(reportAPIResult); tExamReportUpdate.setInterfaceContent(JsonUtil.toJSONString(reportAPIResultList)); examReportService.updateTExamReportByTokenId(tExamReportUpdate); } + private ReportAPIResult getTaiInterface(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReportResult, TExamReport tExamReportUpdate) { Map<Integer, ReportTypeEnum> reportTypeEnumMap = new HashMap<>(); reportTypeEnumMap.put(1, firstPath); @@ -862,13 +1062,16 @@ if ("SAQ".equals(tReportTemplate.getTemplateType()) || Objects.equals("SAQ", tReportTemplate.getReportType())) { calculationTypeEnum = SAQ; } + if ("RuiLin".equals(tReportTemplate.getReportType())) { calculationTypeEnum = RUILIN; } + if ("CAQ".equals(tReportTemplate.getReportType())) { calculationTypeEnum = CAQ; } } + HolderInfo info = new HolderInfo(); info.setAccessCode(tExamReportResult.getTokenId()); info.setFullName(tExamReportResult.getMemberName()); @@ -881,10 +1084,11 @@ return getReportAPIMAQResult(examPaperSubmitVM, tExamReportResult, tExamReportUpdate, reportTypeEnumMap, info); } } + private ReportAPIResult getReportAPICAQResult(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReportResult, TExamReport tExamReport, HolderInfo info) { Map data = new HashMap(); - - + // 閫犳暟鎹� + // createMAQAndCAQData(examPaperSubmitVM, CAQ, data); getWaitTaiData(examPaperSubmitVM, tExamReportResult, data); CaqRequest request = new CaqRequest(); request.setInfo(info); @@ -896,8 +1100,9 @@ } return reportAPIResult; } + public SignalObject callTaiData(String tokenId, String langType, ExamPaperSubmitVM examPaperSubmitVM) { - + // 鏌ユ壘褰撳墠鐨勭瓟棰樿褰� TExamReport tExamReport = new TExamReport(); tExamReport.setTokenId(tokenId); List<TExamReport> tExamReportList = examReportService.selectTExamReportList(tExamReport); @@ -909,9 +1114,11 @@ if (ExamUtil.isListEmpty(questionReportList)) { return getEmptySignalObjectResult(); } + try { - + // 璋冪敤娉板浗鍥㈤槦涔嬪悗鏇存柊鎶ヨ〃璁板綍,鍙戦�佺粰HR閭欢 RestResponse<SignalObject> signalObject = getSignalObjectRestResponse(examPaperSubmitVM, tExamReport, tExamReportList, langType); + if (Objects.nonNull(signalObject)) { return signalObject.getResponse(); } @@ -919,19 +1126,23 @@ updateChoice(examPaperSubmitVM, tExamReport, tExamReportOldResult); throw e; } + return getEmptySignalObjectResult(); } + private SignalObject getEmptySignalObjectResult() { SignalObject signalObject = new SignalObject(); signalObject.setSignalDescription(""); return signalObject; } + private void updateChoice(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReport, TExamReport tExamReportOldResult) { tExamReport.setFinish(0); if (StringUtils.isEmpty(tExamReport.getTokenId()) || StringUtils.isEmpty(examPaperSubmitVM.getItemOrder())) { examReportService.updateTExamReportByTokenId(tExamReport); return; } + String choice = tExamReportOldResult.getChoice(); LinkedHashMap<String, String> linkedHashMap = JsonUtil.parseObject(choice, LinkedHashMap.class); Iterator<String> iterator = linkedHashMap.keySet().iterator(); @@ -947,17 +1158,19 @@ tExamReport.setRemark(tExamReport.getRemark() + ",itemOrder:" + examPaperSubmitVM.getItemOrder()); examReportService.updateTExamReportByTokenId(tExamReport); } - + + // 閫犳暟鎹嚱鏁板叆鍙� private void createMAQAndCAQData(ExamPaperSubmitVM examPaperSubmitVM, CalculationTypeEnum calculationTypeEnum, Map data) { if (calculationTypeEnum == CAQ) { - + // 閫燙AQ鐨勬暟鎹� simulationCAQTaiData(examPaperSubmitVM.getPartOrder(), data); } else { - + // 閫犳暟鎹�,MAQ锛屼笉闇�瑕侊紝涓婄嚎鐨勬椂鍊欒娉ㄩ噴鎺� simulationTaiData(examPaperSubmitVM.getPartOrder(), data); } } - + + // 妯℃嫙娉板浗鍥㈤槦 private void simulationTaiData(int partOrder, Map data) { String topics = "MAQ0001,MAQ0003,MAQ0006,MAQ0009,MAQ0013,MAQ0020,MAQ0041,MAQ0048,MAQ0088,MAQ0094,MAQ0098,MAQ0112,MAQ0117,MAQ0133,MAQ0145,MAQ0163,MAQ0172,MAQ0174,MAQ0175,MAQ0183,MAQ0194,MAQ0203,MAQ0209,MAQ0212,MAQ0224,MAQ0232,MAQ0233,MAQ0235,MAQ0236,MAQ0241,MAQ0244,MAQ0249,MAQ0250,MAQ0251,MAQ0004,MAQ0005,MAQ0007,MAQ0010,MAQ0011,MAQ0014,MAQ0015,MAQ0019,MAQ0021,MAQ0024,MAQ0025,MAQ0026,MAQ0027,MAQ0028,MAQ0029,MAQ0030,MAQ0034,MAQ0035,MAQ0036,MAQ0038,MAQ0039,MAQ0040,MAQ0042,MAQ0044,MAQ0045,MAQ0046,MAQ0047,MAQ0049,MAQ0051,MAQ0053,MAQ0055,MAQ0058,MAQ0059,MAQ0060,MAQ0061,MAQ0062,MAQ0064,MAQ0065,MAQ0067,MAQ0069,MAQ0070,MAQ0071,MAQ0072,MAQ0073,MAQ0074,MAQ0076,MAQ0077,MAQ0078,MAQ0079,MAQ0080,MAQ0081,MAQ0082,MAQ0084,MAQ0085,MAQ0086,MAQ0087,MAQ0089,MAQ0090,MAQ0091,MAQ0092,MAQ0095,MAQ0097,MAQ0099,MAQ0100,MAQ0101,MAQ0103,MAQ0104,MAQ0106,MAQ0107,MAQ0110,MAQ0111,MAQ0113,MAQ0115,MAQ0118,MAQ0119,MAQ0120,MAQ0124,MAQ0126,MAQ0127,MAQ0129,MAQ0130,MAQ0131,MAQ0132,MAQ0134,MAQ0135,MAQ0136,MAQ0138,MAQ0140,MAQ0141,MAQ0142,MAQ0143,MAQ0144,MAQ0146,MAQ0147,MAQ0149,MAQ0150,MAQ0151,MAQ0152,MAQ0156,MAQ0157,MAQ0158,MAQ0159,MAQ0160,MAQ0161,MAQ0162,MAQ0164,MAQ0165,MAQ0166,MAQ0167,MAQ0168,MAQ0169,MAQ0170,MAQ0171,MAQ0173,MAQ0176,MAQ0178,MAQ0179,MAQ0180,MAQ0181,MAQ0182,MAQ0184,MAQ0185,MAQ0187,MAQ0190,MAQ0191,MAQ0192,MAQ0193,MAQ0195,MAQ0197,MAQ0199,MAQ0200,MAQ0201,MAQ0202,MAQ0204,MAQ0205,MAQ0206,MAQ0207,MAQ0208,MAQ0210,MAQ0211,MAQ0213,MAQ0214,MAQ0216,MAQ0218,MAQ0219,MAQ0220,MAQ0221,MAQ0223,MAQ0225,MAQ0226,MAQ0227,MAQ0228,MAQ0229,MAQ0230,MAQ0231,MAQ0234,MAQ0237,MAQ0240,MAQ0242,MAQ0243,MAQ0245,MAQ0247,MAQ0248,MAQ0253,MAQ0254,MAQ0255"; if (partOrder == 1) { @@ -968,7 +1181,8 @@ data.put(item, "5"); }); } - + + // 妯℃嫙CAQ鐨勬暟鎹� private void simulationCAQTaiData(int partOrder, Map data) { String topics = "CAQ1010,CAQ1020,CAQ1030,CAQ1040,CAQ1050,CAQ1060,CAQ1070,CAQ1080,CAQ1090,CAQ1100,CAQ1110,CAQ1120,CAQ1130,CAQ1140,CAQ1150,CAQ2010,CAQ2020,CAQ2030,CAQ2040,CAQ2050,CAQ2060,CAQ2070,CAQ2080,CAQ2090,CAQ2100,CAQ2110,CAQ2120,CAQ2130,CAQ2140,CAQ2150,CAQ2160,CAQ2170,CAQ2180,CAQ2190,CAQ2200"; if (partOrder == 1) { @@ -979,30 +1193,34 @@ data.put(item, "5"); }); } + private void setNormalSubmit(ExamPaperSubmitVM examPaperSubmitVM, Map data, List<QuestionReport> questionReportList) { for (QuestionReport questionReport : questionReportList) { - + // PermanentId 绛変簬0鏄櫤鍔涢鐨勫ぇ棰橈紝闂瓟棰橈紝椤轰究鍒ゆ柇涓虹┖ if (questionReport.getPartOrder() > examPaperSubmitVM.getPartOrder() || Objects.isNull(questionReport.getPermanentId()) || Objects.equals(questionReport.getPermanentId(), "0")) { continue; } data.put(questionReport.getPermanentId(), questionReport.getAnswer()); } } + private void setManSubmit(Map data, List<QuestionReport> questionReportList) { for (QuestionReport questionReport : questionReportList) { - + // PermanentId 绛変簬0鏄櫤鍔涢鐨勫ぇ棰橈紝闂瓟棰橈紝椤轰究鍒ゆ柇涓虹┖ if (StringUtils.isNotEmpty(questionReport.getPermanentId()) && !Objects.equals(questionReport.getPermanentId(), "0")) { data.put(questionReport.getPermanentId(), questionReport.getAnswer()); } } } + private ReportAPIResult getReportAPISAQResult(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReportResult, TExamReport tExamReport, Map<Integer, ReportTypeEnum> reportTypeEnumMap, HolderInfo info) { return getReportAPIMAQResult(examPaperSubmitVM, tExamReportResult, tExamReport, reportTypeEnumMap, info); } + private ReportAPIResult getReportAPIMAQResult(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReportResult, TExamReport tExamReport, Map<Integer, ReportTypeEnum> reportTypeEnumMap, HolderInfo info) { Map data = new HashMap(); - - + // 閫犳暟鎹� +// createMAQAndCAQData(examPaperSubmitVM, MAQ, data); getWaitTaiData(examPaperSubmitVM, tExamReportResult, data); MaqRequest request = new MaqRequest(); request.setInfo(info); @@ -1010,19 +1228,22 @@ request.setData(data); ReportAPIResult reportAPIResult = calculationServices.stageCalculation(request); reportAPIResult.setAnswerData(data); - + // 閲嶆柊璋冪敤娉板浗鍥㈤槦鐨勬帴鍙g殑璇濓紝涓嶉渶瑕佹洿鏂伴鐩簡 if (Objects.equals(reportAPIResult.getCode(), "fail") && !examPaperSubmitVM.isRecallThaiInterface()) { updateChoice(examPaperSubmitVM, tExamReport, tExamReportResult); } return reportAPIResult; } + private void getWaitTaiData(ExamPaperSubmitVM examPaperSubmitVM, TExamReport tExamReportResult, Map data) { List<QuestionReport> questionReportList = JsonUtil.parseArray(tExamReportResult.getQuestionReport(), QuestionReport.class); if (examPaperSubmitVM.isSubmitClick()) { - + // 鑷繁鎻愪氦鐨勯偅绉嶏紝濡傛櫤鍔涢 setManSubmit(data, questionReportList); } else { setNormalSubmit(examPaperSubmitVM, data, questionReportList); } } + + } -- Gitblit v1.9.1