浏览代码

提交使用原卷功能

chenken 8 年之前
父节点
当前提交
bec2c47456

+ 42 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -1,7 +1,9 @@
 package com.qmth.cqb.paper.service;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -22,6 +24,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
 
 import com.google.gson.Gson;
 import com.qmth.cqb.paper.dao.ExamPaperRepo;
@@ -46,6 +49,7 @@ import com.qmth.cqb.utils.BeanCopierUtil;
 import com.qmth.cqb.utils.CommonUtils;
 import com.qmth.cqb.utils.enums.PaperStatus;
 import com.qmth.cqb.utils.enums.PaperType;
+import com.sun.org.apache.bcel.internal.generic.NEW;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
@@ -746,5 +750,42 @@ public class PaperService {
         return paperRepo.findByIdNotInAndCourseNoAndOrgIdAndPaperType(selectedIds, paperSearchInfo.getCourseNo(),
                 paperSearchInfo.getOrgId(), PaperType.IMPORT, page);
     }
-
+    /**
+     * 将选中的导入试卷复制为卷库试卷
+     */
+    public void useBasePaper(String selectedPaperIds,String userId){
+    	Assert.hasLength(selectedPaperIds, "试卷id不能为空!");
+    	String[] paperIds = selectedPaperIds.split(",");
+    	for(int i = 0;i<paperIds.length;i++){
+    		Paper oldpaper = paperRepo.findOne(paperIds[i]);
+    		List<PaperDetail> paperDetails = paperDetailRepo.findByPaper(oldpaper);
+    		oldpaper.setId(null);
+    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    		String createTime = sdf.format(new Date());
+    		oldpaper.setCreateTime(createTime);
+    		oldpaper.setCreator(userId);
+    		oldpaper.setLastModifyName(userId);
+    		oldpaper.setPaperType(PaperType.GENERATE);//试卷类型 修改为组卷
+    		Paper newPaper = paperRepo.save(oldpaper);
+    		for(int j = 0;j<paperDetails.size();j++){
+    			PaperDetail paperDetail = paperDetails.get(j);
+    			List<PaperDetailUnit> paperDetailUnits = paperDetailUnitService.getUnitsByPaperDetail(paperDetail);
+    			paperDetail.setPaper(newPaper);//关联新Paper
+    			paperDetail.setId(null);
+    			paperDetail.setCreateTime(createTime);
+    			paperDetail.setCreator(userId);
+    			PaperDetail newPaperDetail = paperDetailRepo.save(paperDetail);//保存新的paperDetail
+    			for(int k = 0;k<paperDetailUnits.size();k++){
+    				//重新设置保存PaperDetailUnit
+    				PaperDetailUnit paperDetailUnit = paperDetailUnits.get(k);
+    				paperDetailUnit.setPaper(newPaper);				//关联新Paper
+    				paperDetailUnit.setPaperDetail(newPaperDetail); //关联新paperDetail
+    				paperDetailUnit.setId(null);
+    				paperDetailUnit.setCreateTime(createTime);
+    				paperDetailUnit.setCreator(userId);
+    				paperDetailUnitRepo.save(paperDetailUnit);//保存新的paperDetailUnit
+    			}
+    		}
+    	}
+    }
 }

+ 17 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -508,4 +508,21 @@ public class PaperController {
         return new ResponseEntity(paperRepo.findAll(Example.of(importPaper)), HttpStatus.OK);
 
     }
+    /**
+     * 使用原卷
+     * @param selectedPaperIds
+     * @return
+     */
+    @ApiOperation(value = "复制导入试卷为组卷", notes = "复制导入试卷为组卷")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @PutMapping(value = "/useBasePaper/{paperIds}")
+    public ResponseEntity useBasePaper(HttpServletRequest request,@PathVariable String paperIds){
+    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+    	try{
+    		paperService.useBasePaper(paperIds, user.getLoginName());
+    		return new ResponseEntity(HttpStatus.OK);
+    	}catch(Exception e){
+    		return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
+    	}
+    }
 }