|  | @@ -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();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |