| 
														
															@@ -2,8 +2,10 @@ package com.sysu.admin.controller.lz.ns.site; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.lz.ns.NsActionRecordService; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.lz.ns.NsActionRecordService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.lz.ns.NsActionTreeService; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.lz.ns.NsActionTreeService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.sysu.admin.controller.lz.ns.NsTaskService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.lz.ns.bean.NsActionRecord; 
														 | 
														
														 | 
														
															 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.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.NsType; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.lz.tree.LzTree; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.lz.tree.LzTree; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.lz.tree.LzTreeService; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.lz.tree.LzTreeService; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -28,40 +30,37 @@ public class NsActionRecordController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private NsActionTreeService actionTreeService; 
														 | 
														
														 | 
														
															     private NsActionTreeService actionTreeService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private LzTreeService lzTreeService; 
														 | 
														
														 | 
														
															     private LzTreeService lzTreeService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private NsTaskService nsTaskService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @RequestMapping("/list") 
														 | 
														
														 | 
														
															     @RequestMapping("/list") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public BaseResult list(@RequestBody CommonVo commonVo){ 
														 | 
														
														 | 
														
															     public BaseResult list(@RequestBody CommonVo commonVo){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<LzTree> treeList = lzTreeService.findListByAreaId(commonVo.getAreaId()); 
														 | 
														
														 | 
														
															         List<LzTree> treeList = lzTreeService.findListByAreaId(commonVo.getAreaId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Integer> ids = new ArrayList<>(treeList.size()); 
														 | 
														
														 | 
														
															         List<Integer> ids = new ArrayList<>(treeList.size()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         treeList.stream().forEach(lzTree -> ids.add(lzTree.getId())); 
														 | 
														
														 | 
														
															         treeList.stream().forEach(lzTree -> ids.add(lzTree.getId())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<NsTask> nsTaskList = nsTaskService.findAll(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<NsActionRecord> res = nsActionRecordService.findAllByTreeIds(ids, commonVo.getFinished()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<NsActionTree> nsActionTrees = actionTreeService.findAll(); 
														 | 
														
														 | 
														
															         List<NsActionTree> nsActionTrees = actionTreeService.findAll(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Map<Integer, NsActionTree>  integerNsActionTreeMap =  listToMap(nsActionTrees); 
														 | 
														
														 | 
														
															         Map<Integer, NsActionTree>  integerNsActionTreeMap =  listToMap(nsActionTrees); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<NsActionRecord> res = nsActionRecordService.findAllByTreeIds(ids, commonVo.getFinished()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return R.succ(cast(res, integerNsActionTreeMap)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        //把NsActionRecord 与 NsTask 合并 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        merge(nsTaskList, res, integerNsActionTreeMap ); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return R.succ(cast(nsTaskList)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     /** 
														 | 
														
														 | 
														
															     /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     * 把农事记录 List<NsActionRecord> 转换成 Map<TreeId, Map<NsTypeId, List<NsActionRecord>>> 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     * @param res 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-     * @param integerNsActionTreeMap 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+     * 把农事记录 List<NsActionRecord> 转换成 Map<TreeId, List<NsTask>> 
														 | 
													
												
											
												
													
														| 
														 | 
														
															      * @return 
														 | 
														
														 | 
														
															      * @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); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private Map<String, List<NsTask>> cast( List<NsTask> nsTaskList){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Map<String, List<NsTask>> resMap = new HashMap<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        nsTaskList.stream().forEach(nsTask -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            List<NsTask> taskList = resMap.get(nsTask.getTreeId().toString()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if(taskList == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                taskList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                resMap.put(nsTask.getTreeId().toString(), taskList); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nsActionRecordList.add(nsActionRecord); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            nsActionRecord.setActionName(actionTree.getName()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            taskList.add(nsTask); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }); 
														 | 
														
														 | 
														
															         }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return resMap; 
														 | 
														
														 | 
														
															         return resMap; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -74,6 +73,19 @@ public class NsActionRecordController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return map; 
														 | 
														
														 | 
														
															         return map; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public void merge(List<NsTask> nsTaskList, List<NsActionRecord> res, Map<Integer, NsActionTree>  integerNsActionTreeMap){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+         Map<String, NsTask>  nsTaskMap  = new HashMap<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        nsTaskList.stream().forEach(nsTask -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTaskMap.put(nsTask.getId().toString(), nsTask); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        res.stream().forEach(nsActionRecord -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            String actionName = integerNsActionTreeMap.get(nsActionRecord.getActionId()).getName(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsActionRecord.setActionName(actionName); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            NsTask nsTask = nsTaskMap.get(nsActionRecord.getTaskId().toString()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.getRecordList().add(nsActionRecord); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @RequestMapping("/save") 
														 | 
														
														 | 
														
															     @RequestMapping("/save") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public BaseResult save(@RequestBody ActionRecordVo actionRecordVo){ 
														 | 
														
														 | 
														
															     public BaseResult save(@RequestBody ActionRecordVo actionRecordVo){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -81,12 +93,27 @@ public class NsActionRecordController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Date now = new Date(); 
														 | 
														
														 | 
														
															         Date now = new Date(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
														 | 
														
														 | 
														
															         List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         treeList.stream().forEach(tree -> { 
														 | 
														
														 | 
														
															         treeList.stream().forEach(tree -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            //先查有没有 同树 未完成的 同typeId 的任务 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            NsTask nsTask = nsTaskService.findByTreeIdAndNsTypeIdAndStatus(tree.getId(), actionRecordVo.getTypeId(), 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if(nsTask == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                nsTask = new NsTask(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setCreateDate(now); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setContent(actionRecordVo.getContent()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setUserId(-1); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setNsTypeId(actionRecordVo.getTypeId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setStatus(0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setTreeId(tree.getId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTask.setTitle(actionRecordVo.getTitle()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            nsTaskService.saveAndFlush(nsTask); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            Integer taskId = nsTask.getId(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             actionRecordVo.getActionIds().stream().forEach(actionId -> { 
														 | 
														
														 | 
														
															             actionRecordVo.getActionIds().stream().forEach(actionId -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                //先查有没有 未完成的 同actionId 的农事 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
														 | 
														
														 | 
														
															                 NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(nsActionRecord == null){ 
														 | 
														
														 | 
														
															                 if(nsActionRecord == null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     nsActionRecord = new NsActionRecord(); 
														 | 
														
														 | 
														
															                     nsActionRecord = new NsActionRecord(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                nsActionRecord.setTaskId(taskId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 nsActionRecord.setTreeId(tree.getId()); 
														 | 
														
														 | 
														
															                 nsActionRecord.setTreeId(tree.getId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 nsActionRecord.setActionId(actionId); 
														 | 
														
														 | 
														
															                 nsActionRecord.setActionId(actionId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 nsActionRecord.setFinished(actionRecordVo.getFinished()); 
														 | 
														
														 | 
														
															                 nsActionRecord.setFinished(actionRecordVo.getFinished()); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -104,16 +131,19 @@ public class NsActionRecordController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public BaseResult remove(@RequestBody ActionRecordVo actionRecordVo){ 
														 | 
														
														 | 
														
															     public BaseResult remove(@RequestBody ActionRecordVo actionRecordVo){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<LzTree> treeList = lzTreeService.findListByCodes(actionRecordVo.getCodes()); 
														 | 
														
														 | 
														
															         List<LzTree> treeList = lzTreeService.findListByCodes(actionRecordVo.getCodes()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
														 | 
														
														 | 
														
															         List<NsActionRecord> nsActionRecordList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        Set<Integer> taskIdSet = new HashSet<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         treeList.stream().forEach(tree -> { 
														 | 
														
														 | 
														
															         treeList.stream().forEach(tree -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             actionRecordVo.getActionIds().stream().forEach(actionId -> { 
														 | 
														
														 | 
														
															             actionRecordVo.getActionIds().stream().forEach(actionId -> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //先查有没有 未完成的 同actionId 的农事 
														 | 
														
														 | 
														
															                 //先查有没有 未完成的 同actionId 的农事 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
														 | 
														
														 | 
														
															                 NsActionRecord nsActionRecord = nsActionRecordService.findAllByTreeIdAndActionId(tree.getId(), actionId, 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(nsActionRecord != null){ 
														 | 
														
														 | 
														
															                 if(nsActionRecord != null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     nsActionRecordList.add(nsActionRecord); 
														 | 
														
														 | 
														
															                     nsActionRecordList.add(nsActionRecord); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    taskIdSet.add(nsActionRecord.getTaskId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }); 
														 | 
														
														 | 
														
															             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }); 
														 | 
														
														 | 
														
															         }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         nsActionRecordService.deleteAll(nsActionRecordList); 
														 | 
														
														 | 
														
															         nsActionRecordService.deleteAll(nsActionRecordList); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        nsTaskService.delete(taskIdSet.toArray(new Integer[0])); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return R.succ(); 
														 | 
														
														 | 
														
															         return R.succ(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |