| 
					
				 | 
			
			
				@@ -4,6 +4,7 @@ import com.sysu.admin.controller.lz.ns.NsActionRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.ns.NsActionTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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.NsType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.tree.LzTree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.lz.tree.LzTreeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.site.CommonVo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -36,12 +37,33 @@ public class NsActionRecordController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<NsActionTree> nsActionTrees = actionTreeService.findAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, NsActionTree>  integerNsActionTreeMap =  listToMap(nsActionTrees); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<NsActionRecord> res = nsActionRecordService.findAllByTreeIds(ids, commonVo.getFinished()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.succ(cast(res, integerNsActionTreeMap)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 把农事记录 List<NsActionRecord> 转换成 Map<TreeId, Map<NsTypeId, List<NsActionRecord>>> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param res 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param integerNsActionTreeMap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Map<String, Map<String,List<NsActionRecord>>> cast(List<NsActionRecord> res, Map<Integer, NsActionTree>  integerNsActionTreeMap){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String, Map<String,List<NsActionRecord>>> resMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         res.stream().forEach(nsActionRecord -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             NsActionTree actionTree = integerNsActionTreeMap.get(nsActionRecord.getActionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, List<NsActionRecord>> nsTypeMap = resMap.get(nsActionRecord.getTreeId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(nsTypeMap == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsTypeMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resMap.put(nsActionRecord.getTreeId().toString(), nsTypeMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<NsActionRecord> nsActionRecordList = nsTypeMap.get(actionTree.getTypeId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(nsActionRecordList == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsActionRecordList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsTypeMap.put(actionTree.getTypeId().toString(), nsActionRecordList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nsActionRecordList.add(nsActionRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             nsActionRecord.setActionName(actionTree.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            nsActionRecord.setTypeId(actionTree.getTypeId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return R.succ(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return resMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Map<Integer, NsActionTree> listToMap(List<NsActionTree> nsActionTrees){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,16 +82,38 @@ public class NsActionRecordController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         treeList.stream().forEach(tree -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             actionRecordVo.getActionIds().stream().forEach(actionId -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                NsActionRecord nsActionRecord = new NsActionRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //先查有没有 未完成的 同actionId 的农事 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(nsActionRecord == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    nsActionRecord = new NsActionRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecord.setTreeId(tree.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecord.setActionId(actionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecord.setFinished(actionRecordVo.getFinished()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecord.setSource(actionRecordVo.getSource()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecord.setCreateDate(now); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                nsActionRecord.setContent(actionRecordVo.getContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 nsActionRecordList.add(nsActionRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         nsActionRecordService.saveAll(nsActionRecordList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return R.succ(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @RequestMapping("/remove") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public BaseResult remove(@RequestBody ActionRecordVo actionRecordVo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<LzTree> treeList = lzTreeService.findListByCodes(actionRecordVo.getCodes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        treeList.stream().forEach(tree -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            actionRecordVo.getActionIds().stream().forEach(actionId -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //先查有没有 未完成的 同actionId 的农事 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(nsActionRecord != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    nsActionRecordList.add(nsActionRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nsActionRecordService.deleteAll(nsActionRecordList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.succ(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |