瀏覽代碼

栋舍树查询

Newspaper 1 年之前
父節點
當前提交
5ef68f8e4a

+ 5 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseBuildingController.java

@@ -75,6 +75,11 @@ public class BaseBuildingController {
         return baseBuildingService.listTreeBuilding(map);
     }
 
+    @PostMapping("/listTreeDuckBuilding")
+    public Result listTreeDuckBuilding(@RequestBody Map<String, String> map){
+        return baseBuildingService.listTreeDuckBuilding(map);
+    }
+
 //    @PostMapping("/list")
 //    public Result list(@RequestBody Map<String, Object> paramsMap) {
 //        System.out.println("paramsMap>>"+paramsMap.toString());

+ 3 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseDuckInfoController.java

@@ -140,6 +140,9 @@ public class BaseDuckInfoController {
             return new Result(10001, "该笼位无鸭只", false);
         }
         Map resultMap = new HashMap();
+        resultMap.put("chiNum", baseDuckInfo.getChiNum());
+        resultMap.put("jiaoNum", baseDuckInfo.getJiaoNum());
+        resultMap.put("batchNum", baseDuckInfo.getBatchNum());
         resultMap.put("unitName", baseDuckInfo.getUnitName());
         resultMap.put("duckNum", baseDuckInfo.getDuckNum());
         return new Result(ResultCode.SUCCESS, resultMap);

+ 15 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/EggProductionController.java

@@ -37,7 +37,21 @@ public class EggProductionController {
         String farmId = paramsMap.get("farmId");
         List<EggProduction> eggProductions = eggProductionService.list(new QueryWrapper<EggProduction>().eq("farm_id", farmId).orderByAsc("event_type"));
         if (CollUtil.isEmpty(eggProductions)){
-            return new Result(ResultCode.SUCCESS,new ArrayList());
+            eggProductions = new ArrayList<>();
+            EggProduction eggProduction1 = new EggProduction();
+            eggProduction1.setStartTime(LocalTime.MIN);
+            eggProduction1.setEndTime(LocalTime.NOON.minusSeconds(1));
+            eggProduction1.setEventType(0);
+            eggProduction1.setFarmId(Integer.valueOf(farmId));
+            eggProductions.add(eggProduction1);
+
+            EggProduction eggProduction2 = new EggProduction();
+            eggProduction2.setStartTime(LocalTime.NOON);
+            eggProduction2.setEndTime(LocalTime.MAX);
+            eggProduction2.setEventType(1);
+            eggProduction2.setFarmId(Integer.valueOf(farmId));
+            eggProductions.add(eggProduction1);
+            eggProductionService.saveBatch(eggProductions);
         }
         return new Result(ResultCode.SUCCESS,eggProductions);
     }

+ 9 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/BaseBuildingVo.java

@@ -0,0 +1,9 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import com.huimv.guowei.admin.entity.BaseBuilding;
+import lombok.Data;
+
+@Data
+public class BaseBuildingVo extends BaseBuilding {
+    private String chiNum;
+}

+ 39 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/vo/TreeBaseBuildingVo.java

@@ -0,0 +1,39 @@
+package com.huimv.guowei.admin.entity.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TreeBaseBuildingVo implements Comparable<TreeBaseBuildingVo> {
+    private static final long serialVersionUID=1L;
+
+    private String id;
+
+    private String buildName;
+
+    private Integer parentId;
+
+    private Integer fType;
+
+    private String chiNum;
+
+    private Integer farmCode;
+
+    private Integer stageCode;
+
+    private Integer sort;
+
+
+    private List<TreeBaseBuildingVo> childNode;
+
+
+    @Override
+    public int compareTo(TreeBaseBuildingVo o) {
+        return Integer.compare(Integer.parseInt(this.id), Integer.parseInt(o.id));
+    }
+}

+ 3 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/BaseBuildingMapper.java

@@ -2,6 +2,7 @@ package com.huimv.guowei.admin.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.guowei.admin.entity.BaseBuilding;
+import com.huimv.guowei.admin.entity.vo.BaseBuildingVo;
 import com.huimv.guowei.admin.entity.vo.ScreenDuckVo;
 import com.huimv.guowei.admin.entity.vo.ScreenEnergyVo;
 import com.huimv.guowei.admin.entity.vo.ScreenFeedVo;
@@ -29,4 +30,6 @@ public interface BaseBuildingMapper extends BaseMapper<BaseBuilding> {
     List<ScreenFeedVo> listScreenFeed();
 
     List<ScreenDuckVo> listScreenDuck(String farmId);
+
+    List<BaseBuildingVo> listTreeDuckBuilding(String farmId);
 }

+ 2 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/IBaseBuildingService.java

@@ -39,4 +39,6 @@ public interface IBaseBuildingService extends IService<BaseBuilding> {
     Result listScreenFeed(Map<String, String> map);
 
     Result listScreenDuck(Map<String, String> map);
+
+    Result listTreeDuckBuilding(Map<String, String> map);
 }

+ 45 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseBuildingServiceImpl.java

@@ -285,6 +285,15 @@ public class BaseBuildingServiceImpl extends ServiceImpl<BaseBuildingMapper, Bas
         return new Result(ResultCode.SUCCESS,resultMap);
     }
 
+    @Override
+    public Result listTreeDuckBuilding(Map<String, String> map) {
+        String farmId = map.get("farmId");
+        List<BaseBuildingVo> baseBuildings = baseBuildingMapper.listTreeDuckBuilding(farmId);
+        List<TreeBaseBuildingVo> treeBaseBuildings = parseBizBaseDuckArea(baseBuildings);
+        Collections.sort(treeBaseBuildings);
+        return new Result(ResultCode.SUCCESS,treeBaseBuildings);
+    }
+
 
 //    @Override
 //    public Result list(String farmCode, String buildName, String stageCode) {
@@ -338,4 +347,40 @@ public class BaseBuildingServiceImpl extends ServiceImpl<BaseBuildingMapper, Bas
         });
         return roots;
     }
+
+
+    private List<TreeBaseBuildingVo> parseBizBaseDuckArea(List<BaseBuildingVo> bizBaseAreas){
+        //构建需要展示的树形节点结构
+        Map<String, TreeBaseBuildingVo> nodeMap = bizBaseAreas.stream().map(baseBuilding -> {
+            TreeBaseBuildingVo baseVo = new TreeBaseBuildingVo();
+            baseVo.setId(baseBuilding.getId()+"");
+            baseVo.setFarmCode(baseBuilding.getFarmId());
+            baseVo.setParentId(baseBuilding.getParentId());
+            baseVo.setSort(baseBuilding.getSort());
+            baseVo.setChiNum(baseBuilding.getChiNum());
+            baseVo.setStageCode(baseBuilding.getStageCode());
+            baseVo.setBuildName(baseBuilding.getBuildName());
+            baseVo.setFType(baseBuilding.getFType());
+            baseVo.setChildNode(new ArrayList<>());
+            return baseVo;
+        }).collect(Collectors.toMap(TreeBaseBuildingVo::getId, b -> b,(k1, k2)->k1));
+        //创建数组存父亲节点
+        ArrayList<TreeBaseBuildingVo> 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);
+            }
+        });
+        roots.forEach(parent -> {
+            List<TreeBaseBuildingVo> childNodes = parent.getChildNode();
+            childNodes.sort(Comparator.comparingInt(o -> Integer.parseInt(o.getId())));
+        });
+        return roots;
+    }
 }

+ 7 - 0
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/BaseBuildingMapper.xml

@@ -96,4 +96,11 @@ GROUP BY d.duck_num
 ORDER BY duck_num
     </select>
 
+    <select id="listTreeDuckBuilding" resultType="com.huimv.guowei.admin.entity.vo.BaseBuildingVo">
+        SELECT b.*, d.chi_num
+        FROM `base_building` b
+        LEFT JOIN `base_duck_info` d ON b.id = d.unit_id AND d.is_cage = 0 AND b.farm_id = #{farmId}
+        ORDER BY b.id ASC
+    </select>
+
 </mapper>