| 
					
				 | 
			
			
				@@ -1,22 +1,28 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.sysu.admin.controller.lz.ns.site; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.querydsl.core.types.dsl.BooleanExpression; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.NsActionRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.NsActionTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.NsTaskService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.NsTypeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.sysu.admin.controller.lz.ns.bean.NsActionRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.sysu.admin.controller.lz.ns.bean.NsActionTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.sysu.admin.controller.lz.ns.bean.NsTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.sysu.admin.controller.lz.ns.bean.NsType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.controller.lz.ns.bean.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.controller.lz.ns.site.vo.LzTaskVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.site.vo.LzUserVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.site.CommonVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.support.system.user.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.support.system.user.UserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.support.system.user_role.UserRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.support.system.user_role.UserRoleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.xiesx.fastboot.base.pagination.PaginationHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.xiesx.fastboot.base.pagination.PaginationResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.xiesx.fastboot.base.pagination.PaginationVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xiesx.fastboot.base.result.BaseResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.xiesx.fastboot.base.result.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.ObjectUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.data.domain.Pageable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.domain.Sort; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -43,13 +49,35 @@ public class NsTaskController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private NsActionTreeService actionTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping("/list") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public BaseResult list(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PaginationResult list(@RequestBody LzTaskVo lzTaskVo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<NsActionTree> nsActionTrees = actionTreeService.findAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 分页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Pageable pageable = PageRequest.of(lzTaskVo.getPage(), lzTaskVo.getLimit(), Sort.by(Sort.Direction.DESC, User.FIELDS.createDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, NsActionTree> integerNsActionTreeMap =  listToMap(nsActionTrees); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<NsTask> nsTaskList = nsTaskService.findAll(Sort.by("id")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        QNsTask qNsTask = QNsTask.nsTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BooleanExpression expression = qNsTask.nsTypeId.eq(lzTaskVo.getTypeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(lzTaskVo.getStatus() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            expression = expression.and(qNsTask.status.eq(lzTaskVo.getStatus())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<NsTask> nullTasks = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page<NsTask>  nsTaskList = get(expression, pageable, integerNsActionTreeMap, nullTasks); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(nullTasks.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nsTaskService.deleteAll(nullTasks); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nsTaskList = get(expression, pageable, integerNsActionTreeMap, nullTasks); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return PaginationHelper.create(nsTaskList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        nsTaskList.forEach(nsTask -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            nsTask.setRecordList(nsActionRecordService.findAllByTaskId(nsTask.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Page<NsTask> get(BooleanExpression expression, Pageable pageable, Map<Integer, NsActionTree> integerNsActionTreeMap, List<NsTask> nullTasks){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page<NsTask> nsTaskList = nsTaskService.findAll(expression, pageable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nsTaskList.toList().forEach(nsTask -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<NsActionRecord> nsActionRecordList = nsActionRecordService.findAllByTaskId(nsTask.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(nsActionRecordList.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nullTasks.add(nsTask); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nsTask.setRecordList(nsActionRecordList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             StringBuffer ns = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             nsTask.getRecordList().stream().forEach(nsActionRecord -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 NsActionTree a = integerNsActionTreeMap.get(nsActionRecord.getActionId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,8 +88,11 @@ public class NsTaskController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             User user = userService.findOne(nsTask.getUserId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             nsTask.setUserName(user.getNickname()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return R.succ(nsTaskList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return nsTaskList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Map<Integer, NsActionTree> listToMap(List<NsActionTree> nsActionTrees){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, NsActionTree> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         nsActionTrees.forEach(nsActionTree -> { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -83,9 +114,15 @@ public class NsTaskController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping("/audit") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public BaseResult audit(@RequestBody CommonVo commonVo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        NsTask nsTask = nsTaskService.findOne(commonVo.getId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        nsTask.setStatus(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        nsTaskService.save(nsTask); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return R.succ(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(ObjectUtils.isNotEmpty(commonVo.getIds())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            commonVo.getIds().stream().forEach(aLong -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NsTask nsTask = nsTaskService.findOne(aLong.intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsTask.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsTaskService.save(nsTask); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return R.succ(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw new RuntimeException("没有ids"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |