|
@@ -188,7 +188,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response,String loginName) throws Exception {
|
|
|
|
|
|
+ public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response,String loginName,String orgName) throws Exception {
|
|
String tempDir = loginName + System.currentTimeMillis();
|
|
String tempDir = loginName + System.currentTimeMillis();
|
|
String downloadDir = downloadDirectory +"/"+ tempDir;
|
|
String downloadDir = downloadDirectory +"/"+ tempDir;
|
|
String downZipDir = zipDirectory +"/"+ tempDir;
|
|
String downZipDir = zipDirectory +"/"+ tempDir;
|
|
@@ -230,7 +230,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
String groupCode = entry.getKey();
|
|
String groupCode = entry.getKey();
|
|
String paperId = entry.getValue();
|
|
String paperId = entry.getValue();
|
|
if(groupCode.equals(examFile.getGroupCode())){
|
|
if(groupCode.equals(examFile.getGroupCode())){
|
|
- downloadAudio(paperId,examFile,downloadDir);
|
|
|
|
|
|
+ downloadAudio(paperId,examFile,downloadDir,orgName);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -251,25 +251,39 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
* 下载试卷音频文件
|
|
* 下载试卷音频文件
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
- private void downloadAudio(String paperId,ExamFile examFile,String downloadDir) throws Exception{
|
|
|
|
- Paper paper = paperRepo.findOne(paperId);
|
|
|
|
|
|
+ private void downloadAudio(String paperId,ExamFile examFile,String downloadDir,String orgName) throws Exception{
|
|
|
|
+ //Paper paper = paperRepo.findOne(paperId);
|
|
|
|
+ ExportServiceManage esm = exportServiceManageRepo.findByOrgName(orgName);
|
|
|
|
+ if(esm == null){
|
|
|
|
+ esm = exportServiceManageRepo.findByOrgName("陕西师范大学");
|
|
|
|
+ }
|
|
|
|
+ ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
|
|
|
|
+ PaperExp paperExp = exportPaperAbstractService.initPaperExp(paperId);
|
|
//下载考试说明
|
|
//下载考试说明
|
|
- if(StringUtils.isNotBlank(paper.getExamRemark())){
|
|
|
|
- downExamRemark(paper,downloadDir);
|
|
|
|
|
|
+ if(StringUtils.isNotBlank(paperExp.getExamRemark())){
|
|
|
|
+ downExamRemark(paperExp,downloadDir,examFile);
|
|
}
|
|
}
|
|
- List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
|
- for(PaperDetailUnit unit:paperDetailUnits){
|
|
|
|
- if(unit.getQuestion().getHasAudio()!=null&&unit.getQuestion().getHasAudio()){
|
|
|
|
- List<QuestionAudio> questionAudios = questionAudioService.findQuestionAudiosByQuestionId(unit.getQuestion().getId());
|
|
|
|
- for(QuestionAudio audio:questionAudios){
|
|
|
|
- String audioFileName = examFile.getCourseName()
|
|
|
|
- +"_"+examFile.getCourseId()
|
|
|
|
- +"_试卷_"+examFile.getGroupCode()
|
|
|
|
- +"_"+getAudioFileName(audio,unit);
|
|
|
|
- UpYun upyun = new UpYun(bucketName,userName,password);
|
|
|
|
- File file = new File(downloadDir+File.separator+audioFileName);
|
|
|
|
- upyun.readFile(audio.getFileUrl(), file);
|
|
|
|
- logger.info(audioFileName+"音频下载完成后返回");
|
|
|
|
|
|
+ //取到所有大题
|
|
|
|
+ List<PaperDetailExp> paperDetailExps = paperExp.getPaperDetails();
|
|
|
|
+ if(paperDetailExps != null && paperDetailExps.size()>0){
|
|
|
|
+ for(PaperDetailExp paperDetailExp:paperDetailExps){
|
|
|
|
+ //取到所有小题
|
|
|
|
+ List<PaperDetailUnitExp> paperDetailUnitExps = paperDetailExp.getPaperDetailUnits();
|
|
|
|
+ if(paperDetailUnitExps != null && paperDetailUnitExps.size()>0){
|
|
|
|
+ for(PaperDetailUnitExp unit:paperDetailUnitExps){
|
|
|
|
+ if(unit.getQuestion().getHasAudio()!=null&&unit.getQuestion().getHasAudio()){
|
|
|
|
+ List<QuestionAudio> questionAudios = questionAudioService.findQuestionAudiosByQuestionId(unit.getQuestion().getId());
|
|
|
|
+ for(QuestionAudio audio:questionAudios){
|
|
|
|
+ String audioFileName = examFile.getCourseName()
|
|
|
|
+ +"_"+examFile.getCourseId()
|
|
|
|
+ +"_试卷_"+examFile.getGroupCode()
|
|
|
|
+ +"_"+exportPaperAbstractService.getAudioFileName(audio,unit,paperDetailExp);
|
|
|
|
+ UpYun upyun = new UpYun(bucketName,userName,password);
|
|
|
|
+ File file = new File(downloadDir+File.separator+audioFileName);
|
|
|
|
+ upyun.readFile(audio.getFileUrl(), file);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -281,14 +295,14 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
* @param zipFileName
|
|
* @param zipFileName
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
- public void downExamRemark(Paper paper,String zipFileName) throws Exception {
|
|
|
|
|
|
+ public void downExamRemark(PaperExp paperExp,String zipFileName,ExamFile examFile) throws Exception {
|
|
//1.考试说明html转成word
|
|
//1.考试说明html转成word
|
|
String title = "<p style=\"text-align:center\"><span style=\"font-size:26px\"><span style=\"font-family:宋体\">考 试 说 明</span></span></p>";
|
|
String title = "<p style=\"text-align:center\"><span style=\"font-size:26px\"><span style=\"font-family:宋体\">考 试 说 明</span></span></p>";
|
|
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
|
|
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
|
|
- String html = title + ImageUtils.reSizeImg(paper.getExamRemark());
|
|
|
|
|
|
+ String html = title + ImageUtils.reSizeImg(paperExp.getExamRemark());
|
|
DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(html));
|
|
DocxProcessUtil.html2Docx(wordMLPackage, CommonUtils.formatHtml(html));
|
|
//2.导出考试说明word
|
|
//2.导出考试说明word
|
|
- File file = new File(zipFileName+File.separator+paper.getCourse().getCode()+TEMP_FILE_NAME);
|
|
|
|
|
|
+ File file = new File(zipFileName+File.separator+paperExp.getName()+"_"+paperExp.getCourse().getName()+"_"+paperExp.getCourse().getCode()+"_"+examFile.getGroupCode()+TEMP_FILE_NAME);
|
|
Docx4J.save(wordMLPackage, file);
|
|
Docx4J.save(wordMLPackage, file);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -300,9 +314,9 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
*/
|
|
*/
|
|
private String getAudioFileName(QuestionAudio audio,PaperDetailUnit unit){
|
|
private String getAudioFileName(QuestionAudio audio,PaperDetailUnit unit){
|
|
String questionAudioId = audio.getId();
|
|
String questionAudioId = audio.getId();
|
|
- StringBuffer audioFileName = new StringBuffer(unit.getNumber()+"_");
|
|
|
|
|
|
+ StringBuffer audioFileName = new StringBuffer(unit.getPaperDetail().getNumber()+"_"+unit.getNumber()+"_");
|
|
Question question = unit.getQuestion();
|
|
Question question = unit.getQuestion();
|
|
- List<String> idvaluesBody = CommonUtils.getAttrValueFromString(question.getQuesBody(),"a","id");
|
|
|
|
|
|
+ List<String> idvaluesBody = CommonUtils.getTagANames(question.getQuesBody());
|
|
if(idvaluesBody.contains(questionAudioId)){
|
|
if(idvaluesBody.contains(questionAudioId)){
|
|
audioFileName.append("1");//题干
|
|
audioFileName.append("1");//题干
|
|
audioFileName.append("_");
|
|
audioFileName.append("_");
|
|
@@ -312,7 +326,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
|
|
List<QuesOption> options = question.getQuesOptions();
|
|
List<QuesOption> options = question.getQuesOptions();
|
|
if(options!=null&&options.size()>0){
|
|
if(options!=null&&options.size()>0){
|
|
for(QuesOption option:options){
|
|
for(QuesOption option:options){
|
|
- List<String> idvaluesOption = CommonUtils.getAttrValueFromString(option.getOptionBody(),"a","id");
|
|
|
|
|
|
+ List<String> idvaluesOption = CommonUtils.getTagANames(option.getOptionBody());
|
|
if(idvaluesOption.contains(questionAudioId)){
|
|
if(idvaluesOption.contains(questionAudioId)){
|
|
audioFileName.append("2");//选项
|
|
audioFileName.append("2");//选项
|
|
audioFileName.append("_");
|
|
audioFileName.append("_");
|