Administrator 2 vuotta sitten
vanhempi
commit
e95e83ad29

+ 3 - 0
src/main/java/com/sysu/admin/controller/lz/ns/NsActionRecordRepository.java

@@ -12,4 +12,7 @@ public interface NsActionRecordRepository extends JpaPlusRepository<NsActionReco
     @Query(value = "from NsActionRecord ar where ar.treeId in ?1 and ar.finished = ?2")
     List<NsActionRecord> findAllByTreeIds(List<Integer> treeIds, Integer finished);
 
+    @Query(value = "from NsActionRecord ar where ar.treeId = ?1 and ar.actionId = ?2 and ar.finished = ?3")
+    NsActionRecord findAllByTreeIdAndActionId(Integer treeId,Integer actionId, Integer finished);
+
 }

+ 4 - 0
src/main/java/com/sysu/admin/controller/lz/ns/NsActionRecordService.java

@@ -18,6 +18,10 @@ public class NsActionRecordService extends BaseService<NsActionRecord, Integer>
         return repository.findAllByTreeIds(treeIds, finished);
     }
 
+    public NsActionRecord findAllByTreeIdAndActionId(Integer treeId,Integer actionId, Integer finished){
+        return repository.findAllByTreeIdAndActionId(treeId, actionId, finished);
+    }
+
     @Override
     public JpaPlusRepository<NsActionRecord, Integer> r() {
         return repository;

+ 1 - 0
src/main/java/com/sysu/admin/controller/lz/ns/NsTypeRepository.java

@@ -4,4 +4,5 @@ import com.sysu.admin.controller.lz.ns.bean.NsType;
 import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 
 public interface NsTypeRepository extends JpaPlusRepository<NsType, Integer> {
+
 }

+ 2 - 2
src/main/java/com/sysu/admin/controller/lz/ns/bean/NsActionRecord.java

@@ -28,9 +28,9 @@ public class NsActionRecord {
     private Integer finished;
     private Integer source;
     private Integer treeId;
+    private String content;
 
     @Transient
     private String actionName;
-    @Transient
-    private Integer typeId;
+
 }

+ 1 - 0
src/main/java/com/sysu/admin/controller/lz/ns/bean/NsActionTree.java

@@ -29,6 +29,7 @@ public class NsActionTree {
     private String name;
     private Integer typeId;
 
+
     @Transient
     private List<NsActionTree> childList;
 

+ 47 - 3
src/main/java/com/sysu/admin/controller/lz/ns/site/NsActionRecordController.java

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

+ 2 - 1
src/main/java/com/sysu/admin/controller/lz/ns/site/NsTypeController.java

@@ -8,6 +8,7 @@ import com.xiesx.fastboot.base.result.BaseResult;
 import com.xiesx.fastboot.base.result.R;
 import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -21,6 +22,6 @@ public class NsTypeController {
 
     @RequestMapping("/list")
     public BaseResult list(){
-        return R.succ(nsTypeService.findAll());
+        return R.succ(nsTypeService.findAll(Sort.by("id")));
     }
 }