Sfoglia il codice sorgente

【fix】新建栋舍返回树结构

chengjing 2 anni fa
parent
commit
f2e8c02448

+ 1 - 9
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/controller/BasePigpenController.java

@@ -26,14 +26,6 @@ public class BasePigpenController {
     @RequestMapping(value = "/list",method = RequestMethod.POST)
     public Result list(@RequestBody Map<String, Object> paramsMap) {
         System.out.println("paramsMap>>"+paramsMap.toString());
-        String pageNo = paramsMap.get("pageNo")+"";
-        if (pageNo == null) {
-            pageNo = "1";
-        }
-        String pageSize = paramsMap.get("pageSize")+"";
-        if (pageSize == null) {
-            pageSize = "10";
-        }
         String farmCode = "";
         if (paramsMap.get("farmCode") != null) {
             farmCode = paramsMap.get("farmCode")+"";
@@ -46,7 +38,7 @@ public class BasePigpenController {
         if (paramsMap.get("pigpenName") != null) {
             pigpenName = paramsMap.get("pigpenName")+"";
         }
-        return basePigpenService.list(farmCode,pigpenName,stageCode,Integer.parseInt(pageNo), Integer.parseInt(pageSize));
+        return basePigpenService.list(farmCode,pigpenName,stageCode);
     }
 
 

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/BasePigpenService.java

@@ -24,5 +24,5 @@ public interface BasePigpenService extends IService<BasePigpen> {
 
     Result editUnit(String id, String parentId, String unitName, String unitCode, String stageCode, Integer sort, Integer type);
 
-    Result list(String farmCode, String pigpenName, String stageCode, Integer pageNo, Integer pageSize);
+    Result list(String farmCode, String pigpenName, String stageCode);
 }

+ 51 - 7
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/BasePigpenServiceImpl.java

@@ -10,10 +10,16 @@ import com.huimv.eartag2.manage2.service.BasePigpenService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.eartag2.manage2.utils.IDUtil;
 import com.huimv.eartag2.manage2.utils.ResultUtil;
+import com.huimv.eartag2.manage2.vo.TreeBasePigpen;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *  服务实现类
@@ -101,18 +107,56 @@ public class BasePigpenServiceImpl extends ServiceImpl<BasePigpenMapper, BasePig
     }
 
     @Override
-    public Result list(String farmCode, String pigpenName, String stageCode, Integer pageNo, Integer pageSize) {
-        if(pageNo == 0){
-            pageNo = 1;
-        }
-        Page<BasePigpen> page = new Page<>(pageNo, pageSize);
+    public Result list(String farmCode, String pigpenName, String stageCode) {
         QueryWrapper<BasePigpen> queryWrapper = new QueryWrapper<>();
         queryWrapper.like(StringUtils.isNotBlank(pigpenName),"pigpen_name", pigpenName);
         queryWrapper.like(StringUtils.isNotBlank(stageCode),"stage_code", stageCode);
         queryWrapper.eq(StringUtils.isNotBlank(farmCode),"farm_code", farmCode);
         //创建排序
 //        queryWrapper.orderByAsc("sort");
-        Page<BasePigpen> pageBasePigpen = basePigpenMapper.selectPage(page, queryWrapper);
-        return new Result(ResultCode.SUCCESS,pageBasePigpen);
+        List<BasePigpen> basePigpens = basePigpenMapper.selectList(queryWrapper);
+        //Page<BasePigpen> pageBasePigpen = basePigpenMapper.selectPage(page, queryWrapper);
+
+        //将结果List改为树
+        List<TreeBasePigpen> treeBasePigpens = parseBizBaseArea(basePigpens);
+        return new Result(ResultCode.SUCCESS,treeBasePigpens);
+    }
+
+
+
+    /**
+     * 查询结果 转换成树形结构
+     * @param bizBaseAreas 原始数据
+     * @return 树
+     */
+    private List<TreeBasePigpen> parseBizBaseArea(List<BasePigpen> bizBaseAreas){
+        //构建需要展示的树形节点结构
+        Map<String, TreeBasePigpen> nodeMap = bizBaseAreas.stream().map(basePigpen -> {
+            TreeBasePigpen  baseVo = new TreeBasePigpen();
+            baseVo.setId(basePigpen.getId()+"");
+            baseVo.setFarmCode(basePigpen.getFarmCode());
+            baseVo.setPigpenCode(basePigpen.getPigpenCode());
+            baseVo.setParentId(basePigpen.getParentId());
+            baseVo.setSort(basePigpen.getSort());
+            baseVo.setPigpenName(basePigpen.getPigpenName());
+            baseVo.setStageCode(basePigpen.getStageCode());
+            baseVo.setType(basePigpen.getType());
+            baseVo.setChildNode(new ArrayList<>());
+            return baseVo;
+        }).collect(Collectors.toMap(TreeBasePigpen::getId, b -> b,(k1, k2)->k1));
+        //创建数组存父亲节点
+        ArrayList<TreeBasePigpen> roots = new ArrayList<>();
+        //构建树形
+        nodeMap.values().forEach(item->{
+            String parentCode = item.getParentId()+"";
+            if (nodeMap.get(parentCode) == null){
+                //父节点为空,说明当前节点就已经是父节点了 将该节点存起来
+                roots.add(item);
+            }else {
+                //父节点 不为空,说明有父节点,拿到该节点的父节点的孩子节点(就是我自己),将该节点存起来
+                nodeMap.get(parentCode).getChildNode().add(item);
+            }
+        });
+        return roots;
     }
 }

+ 40 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/vo/TreeBasePigpen.java

@@ -0,0 +1,40 @@
+package com.huimv.eartag2.manage2.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: TODO
+ * @Author: 静静
+ * @CreateTime: 2022-07-25  09:33
+ * @Version: 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TreeBasePigpen  implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    private String id;
+
+    private String pigpenCode;
+
+    private String pigpenName;
+
+    private Integer parentId;
+
+    private Integer type;
+
+    private String farmCode;
+
+    private  int sort;
+
+    private String stageCode;
+
+    private List<TreeBasePigpen> childNode;
+}