Jelajahi Sumber

提交流程相关代码

chenken 8 tahun lalu
induk
melakukan
3f1abdb3df

+ 55 - 26
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -1,6 +1,7 @@
 package com.qmth.cqb.paper.service;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -16,6 +17,10 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
 
 import com.google.gson.Gson;
+import com.mongodb.BasicDBList;
+import com.mongodb.BasicDBObject;
+import com.mongodb.DBObject;
+import com.qmth.cqb.flow.enums.PassEnum;
 import com.qmth.cqb.flow.model.DataMapModel;
 import com.qmth.cqb.flow.service.ComTaskService;
 import com.qmth.cqb.flow.service.DataMapModelService;
@@ -100,7 +105,19 @@ public class PaperService {
         importPaper.setPaperType(PaperType.IMPORT);
         return paperRepo.findAll(Example.of(importPaper), new PageRequest(curPage - 1, pageSize));
     }
-
+    
+    /**
+     * 根据条件查询  
+     * @param paperSearchInfo
+     * @return
+     */
+    public List<Paper> getImportPapersBySearch(PaperSearchInfo paperSearchInfo) {
+        formatPaperSearchInfo(paperSearchInfo);
+        Paper importPaper = BeanCopierUtil.copyProperties(paperSearchInfo, Paper.class);
+        importPaper.setPaperType(PaperType.IMPORT);
+        return paperRepo.findAll(Example.of(importPaper));
+    }
+    
     /**
      * 保存试卷
      *
@@ -108,23 +125,33 @@ public class PaperService {
      * @return
      * @throws Exception 
      */
-    public Paper savePaper(PaperExp paperExp) throws Exception {
+    public Paper savePaper(AccessUser user,PaperExp paperExp) throws Exception {
         Paper paper = BeanCopierUtil.copyProperties(paperExp, Paper.class);
+        paper.setOrgId(user.getOrgId()+"");
         formatPaper(paper);
         DataMapModel dataMapModel = dataMapModelService.findDataMapModel(paper.getId());
     	String processInstanceId = dataMapModel.getProcessInstanceId();
-    	paper = paperRepo.save(paper);
+    	//在流程中
     	if(StringUtils.isNotBlank(processInstanceId)){
-    		/*
-    		 Map<String, Object> variables = new HashMap<String,Object>();
-    		  variables.put("assignee", "admin1");
-    		  if("管理员"){
-    		  		variables.put("condition", 1);
-    		  }else{
-    		  		variables.put("condition", 0);
-    		  }
-    		  comTaskService.completeTaskByProcInstId(processInstanceId, variables);
+    		Map<String, Object> variables = new HashMap<String,Object>();
+    		/**
+    		 * 审核人员和非审核人员都可以点击保存试卷
+    		 * 如果是 审核人员点击保存,试卷状态为通过
+    		 * 如果不是 审核人员点击保存,试卷状态为待审核
     		 */
+    		variables.put("assignee", "admin1");
+        	variables.put("condition", PassEnum.PASS.getValue());
+        	paper.setPaperStatus(PaperStatus.PASS);
+        	/**
+        	 * 非审核人员保存试卷
+        	 * variables.put("assignee", "admin2");		
+        	 * variables.put("condition", PassEnum.NOPASS.getValue());			
+        	 * paper.setPaperStatus(PaperStatus.DRAFT);	
+        	 */
+        	paper = paperRepo.save(paper);
+        	comTaskService.completeTaskByProcInstIdAndAssignee(processInstanceId, variables);
+    	}else{//不在流程中
+    		paper = paperRepo.save(paper);
     	}
         return paper;
     }
@@ -252,22 +279,23 @@ public class PaperService {
      * @param paperIds
      * @throws Exception 
      */
-    public void passPapers(List<String> paperIds) throws Exception {
+    public void passPapers(AccessUser user,List<String> paperIds) throws Exception {
         List<Paper> papers = CommonUtils.toList(paperRepo.findAll(paperIds));
-        papers.stream().forEach(paper -> {
-            paper.setPaperStatus(PaperStatus.PASS);
-        });
         for(int i = 0;i<papers.size();i++){
+        	Paper paper = papers.get(i);
+        	paper.setPaperStatus(PaperStatus.PASS);
+        	paperRepo.save(paper);
+        	
         	DataMapModel dataMapModel = dataMapModelService.findDataMapModel(papers.get(i).getId());
         	String processInstanceId = dataMapModel.getProcessInstanceId();
         	if(StringUtils.isNotBlank(processInstanceId)){
         		Map<String, Object> variables = new HashMap<String,Object>();
         		variables.put("assignee", "admin1");
-        		variables.put("condition", 1);
-        		comTaskService.completeTaskByProcInstId(processInstanceId, variables);
+        		variables.put("condition", PassEnum.PASS.getValue());
+        		comTaskService.completeTaskByProcInstIdAndAssignee(processInstanceId, variables);
         	}
         }
-        paperRepo.save(papers);
+       
     }
 
     /**
@@ -276,22 +304,23 @@ public class PaperService {
      * @param paperIds
      * @throws Exception 
      */
-    public void noPassPapers(List<String> paperIds) throws Exception {
+    public void noPassPapers(AccessUser user,List<String> paperIds) throws Exception {
         List<Paper> papers = CommonUtils.toList(paperRepo.findAll(paperIds));
-        papers.stream().forEach(paper -> {
-            paper.setPaperStatus(PaperStatus.NOPASS);
-        });
+        paperRepo.save(papers);
         for(int i = 0;i<papers.size();i++){
+        	Paper paper = papers.get(i);
+        	paper.setPaperStatus(PaperStatus.NOPASS);
+        	paperRepo.save(paper);
+        	
         	DataMapModel dataMapModel = dataMapModelService.findDataMapModel(papers.get(i).getId());
         	String processInstanceId = dataMapModel.getProcessInstanceId();
         	if(StringUtils.isNotBlank(processInstanceId)){
         		Map<String, Object> variables = new HashMap<String,Object>();
         		variables.put("assignee", "admin1");
-        		variables.put("condition", 0);
-        		comTaskService.completeTaskByProcInstId(processInstanceId, variables);
+        		variables.put("condition", PassEnum.NOPASS.getValue());
+        		comTaskService.completeTaskByProcInstIdAndAssignee(processInstanceId, variables);
         	}
         }
-        paperRepo.save(papers);
     }
 
     /**

+ 10 - 10
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -55,33 +55,33 @@ public class ExtractConfigController {
 	
 	@ApiOperation(value = "保存调卷规则", notes = "保存调卷规则")
     @PutMapping(value = "/extractConfig")
-	public Map<String,Object> saveExtractConfig(HttpServletRequest request,@RequestBody ExtractConfig extractConfig){
+	public ResponseEntity<Map<String,Object>> saveExtractConfig(HttpServletRequest request,@RequestBody ExtractConfig extractConfig){
 		Map<String,Object> paramsMap = new HashedMap<String,Object>();
 		try{
 			AccessUser user = (AccessUser) request.getAttribute("accessUser");
 			extractConfig.setOrgId(user.getOrgId()+"");
 			extractConfigService.saveExtractConfig(extractConfig);
-			paramsMap.put("errMsg", "保存成功");
+			paramsMap.put("returnMsg", "保存成功");
 			paramsMap.put("status", "success");
 		}catch(Exception e){
-			paramsMap.put("errMsg", "保存失败");
+			paramsMap.put("returnMsg", "保存失败");
 			paramsMap.put("status", "failed");
 		}
-		return paramsMap;
+		return new ResponseEntity<Map<String,Object>>(paramsMap,HttpStatus.OK);
 	}
 	
 	@ApiOperation(value = "根据调卷规则生成试卷", notes = "根据调卷规则生成试卷")
-    @PutMapping(value = "/makePaperByConfig")
-	public Map<String,Object> makePaperByConfig(String id){
+    @PutMapping(value = "/makePaperByConfig/{configId}")
+	public ResponseEntity<Map<String,Object>> makePaperByConfig(@PathVariable String configId){
 		Map<String,Object> paramsMap = new HashedMap<String,Object>();
 		try{
-			extractConfigService.makePaperByConfig(id);
-			paramsMap.put("errMsg", "试卷生成成功");
+			extractConfigService.makePaperByConfig(configId);
+			paramsMap.put("returnMsg", "试卷生成成功");
 			paramsMap.put("status", "success");
 		}catch(Exception e){
-			paramsMap.put("errMsg", "试卷生成失败");
+			paramsMap.put("returnMsg", "试卷生成失败");
 			paramsMap.put("status", "failed");
 		}
-		return paramsMap;
+		return new ResponseEntity<Map<String,Object>>(paramsMap,HttpStatus.OK);
 	}
 }	

+ 16 - 6
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -83,8 +83,9 @@ public class PaperController {
      */
     @ApiOperation(value = "保存试卷", notes = "保存试卷")
     @PutMapping(value = "/paper")
-    public ResponseEntity savePaperById(@RequestBody PaperExp paper) throws Exception {
-        return new ResponseEntity(paperService.savePaper(paper), HttpStatus.OK);
+    public ResponseEntity savePaperById(HttpServletRequest request,@RequestBody PaperExp paper) throws Exception {
+    	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+        return new ResponseEntity(paperService.savePaper(user,paper), HttpStatus.OK);
     }
 
     /**
@@ -105,6 +106,13 @@ public class PaperController {
         paperSearchInfo.setOrgId(user.getOrgId().toString());
         return new ResponseEntity(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
+    
+    @ApiOperation(value = "根据条件查询导入试卷", notes = "根据条件查询导入试卷")
+    @GetMapping(value = "/getImportPaper")
+    public ResponseEntity<List<Paper>> getImportPapersBySearch(@ModelAttribute PaperSearchInfo paperSearchInfo){
+    	return new ResponseEntity<List<Paper>>(paperService.getImportPapersBySearch(paperSearchInfo), HttpStatus.OK);
+    }
+    
 
     /**
      * 查询所有已组试卷
@@ -154,9 +162,10 @@ public class PaperController {
      */
     @ApiOperation(value = "批量通过试卷", notes = "批量通过试卷")
     @PutMapping(value = "/paper/pass")
-    public ResponseEntity passPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity passPapers(HttpServletRequest request,@RequestBody PaperSearchInfo paperSearchInfo) {
         try {
-			paperService.passPapers(Arrays.asList(paperSearchInfo.getPaperIds()));
+        	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+			paperService.passPapers(user,Arrays.asList(paperSearchInfo.getPaperIds()));
 		} catch (Exception e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
@@ -172,9 +181,10 @@ public class PaperController {
      */
     @ApiOperation(value = "批量不通过试卷", notes = "批量不通过试卷")
     @PutMapping(value = "/paper/noPass")
-    public ResponseEntity noPassPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity noPassPapers(HttpServletRequest request,@RequestBody PaperSearchInfo paperSearchInfo) {
         try {
-			paperService.noPassPapers(Arrays.asList(paperSearchInfo.getPaperIds()));
+        	AccessUser user = (AccessUser) request.getAttribute("accessUser");
+			paperService.noPassPapers(user,Arrays.asList(paperSearchInfo.getPaperIds()));
 		} catch (Exception e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();