wwh пре 9 месеци
родитељ
комит
72bce04fae

+ 50 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/BaseBuildingController.java

@@ -0,0 +1,50 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.BaseBuilding;
+import com.huimv.admin.service.IBaseBuildingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-15
+ */
+@RestController
+@RequestMapping("/base-building")
+@CrossOrigin
+public class BaseBuildingController {
+    @Autowired
+    private IBaseBuildingService baseBuildingService;
+
+    @PostMapping("/addBuilding")
+    public Result addBuilding(@RequestBody BaseBuilding baseBuilding) {
+        return baseBuildingService.addBuilding(baseBuilding);
+    }
+    @PostMapping("/updateBuilding")
+    public Result updateBuilding(@RequestBody BaseBuilding baseBuilding) {
+        return  baseBuildingService.updateBuilding(baseBuilding);
+    }
+
+    @PostMapping("/deleteBuilding")
+    public Result deleteBuilding(@RequestBody Map<String,Integer> map) {
+        return  baseBuildingService.deleteBuilding(map);
+    }
+
+    @PostMapping("/listBuilding")
+    public Result listBuilding(@RequestBody Map<String, String> map){
+        return baseBuildingService.listBuilding(map);
+    }
+
+    @PostMapping("/listTreeBuilding")
+    public Result listTreeBuilding(@RequestBody Map<String, String> map){
+        return baseBuildingService.listTreeBuilding(map);
+    }
+}

+ 3 - 3
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtBatchController.java

@@ -3,6 +3,7 @@ package com.huimv.admin.controller;
 
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.ProtVaccination;
+import com.huimv.admin.entity.vo.ProtBatchAddVo;
 import com.huimv.admin.service.IProtBatchService;
 import com.huimv.admin.service.IProtVaccinationService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,8 +38,7 @@ public class ProtBatchController {
     }
 
     @RequestMapping("/add")
-    public Result add(@RequestBody Map<String, String> paramsMap) {
-
-        return new Result(10000, "新增成功!", true);
+    public Result add(@RequestBody ProtBatchAddVo batchAddVo) {
+        return batchService.addBatch(batchAddVo);
     }
 }

+ 15 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/controller/ProtSheepInfoController.java

@@ -1,10 +1,17 @@
 package com.huimv.admin.controller;
 
 
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IProtSheepInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  * 单个羊只信息 前端控制器
@@ -15,6 +22,14 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/prot-sheep-info")
+@CrossOrigin
 public class ProtSheepInfoController {
 
+    @Autowired
+    private IProtSheepInfoService sheepInfoService;
+
+    @RequestMapping("/listPage")
+    public Result listPage(@RequestBody Map<String, String> paramsMap) {
+        return sheepInfoService.listPage(paramsMap);
+    }
 }

+ 69 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/BaseBuilding.java

@@ -0,0 +1,69 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("base_building")
+public class BaseBuilding implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 栋舍名字
+     */
+    private String buildName;
+
+    /**
+     * 父级
+     */
+    private Integer parentId;
+
+    /**
+     * 1栋 2舍
+     */
+    private Integer fType;
+
+    /**
+     * 栋舍数量
+     */
+    private Integer cageNum;
+
+    /**
+     * 阶段
+     */
+    private Integer stageCode;
+
+    private Integer farmId;
+
+    private Integer sort;
+
+    /**
+     * 栋舍名字
+     */
+    private String cageName;
+
+    private String other2;
+
+    private String other3;
+
+
+}

+ 4 - 1
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/ProtSheepInfo.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -78,7 +79,9 @@ public class ProtSheepInfo implements Serializable {
     private Integer farmId;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
-    private LocalDateTime createTime;
+    private Date createTime;
 
+    private String earmark;
 
+    private Integer isLeave;
 }

+ 3 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/vo/ProtBatchAddVo.java

@@ -1,5 +1,6 @@
 package com.huimv.admin.entity.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.huimv.admin.entity.ProtSheepInfo;
 import lombok.Data;
 
@@ -12,5 +13,7 @@ public class ProtBatchAddVo {
     private String registerUser;
     private String batchNum;
     private List<ProtSheepInfo> sheepInfos;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
     private Date createTime;
 }

+ 38 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/entity/vo/TreeBaseBuilding.java

@@ -0,0 +1,38 @@
+package com.huimv.admin.entity.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TreeBaseBuilding implements Comparable<TreeBaseBuilding> {
+
+    private static final long serialVersionUID=1L;
+
+    private String id;
+
+    private String buildName;
+
+    private Integer parentId;
+
+    private Integer fType;
+
+    private Integer farmCode;
+
+    private Integer stageCode;
+
+    private Integer sort;
+
+    private List<TreeBaseBuilding> childNode;
+
+    @Override
+    public int compareTo(TreeBaseBuilding o) {
+        // 根据年龄进行升序排序
+        return Integer.compare(Integer.valueOf(this.id), Integer.valueOf(o.id));
+    }
+}

+ 20 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/mapper/BaseBuildingMapper.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.BaseBuilding;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-15
+ */
+public interface BaseBuildingMapper extends BaseMapper<BaseBuilding> {
+
+    List<Integer> getCageById(@Param("id") Integer id);
+}

+ 29 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IBaseBuildingService.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.BaseBuilding;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-15
+ */
+public interface IBaseBuildingService extends IService<BaseBuilding> {
+
+    Result addBuilding(BaseBuilding baseBuilding);
+
+    Result updateBuilding(BaseBuilding baseBuilding);
+
+    Result deleteBuilding(Map<String, Integer> map);
+
+    //给其他地方使用的栋舍列表
+    Result listBuilding(Map<String, String> map);
+
+    Result listTreeBuilding(Map<String, String> map);
+}

+ 4 - 1
huimv-huyang-admin/src/main/java/com/huimv/admin/service/IProtSheepInfoService.java

@@ -1,8 +1,11 @@
 package com.huimv.admin.service;
 
+import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.ProtSheepInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 单个羊只信息 服务类
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2024-08-14
  */
 public interface IProtSheepInfoService extends IService<ProtSheepInfo> {
-
+    Result listPage(Map<String,String> paramsMap);
 }

+ 106 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/BaseBuildingServiceImpl.java

@@ -0,0 +1,106 @@
+package com.huimv.admin.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.common.utils.ResultUtil;
+import com.huimv.admin.entity.BaseBuilding;
+import com.huimv.admin.entity.ProtSheepInfo;
+import com.huimv.admin.entity.vo.TreeBaseBuilding;
+import com.huimv.admin.mapper.BaseBuildingMapper;
+import com.huimv.admin.mapper.ProtSheepInfoMapper;
+import com.huimv.admin.service.IBaseBuildingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2024-08-15
+ */
+@Service
+public class BaseBuildingServiceImpl extends ServiceImpl<BaseBuildingMapper, BaseBuilding> implements IBaseBuildingService {
+
+    @Autowired
+    private BaseBuildingMapper baseBuildingMapper;
+    @Autowired
+    private ProtSheepInfoMapper sheepInfoMapper;
+
+    @Override
+    @Transactional
+    public Result addBuilding(BaseBuilding baseBuilding) {
+        if (this.count(new QueryWrapper<BaseBuilding>().eq("build_name",baseBuilding.getBuildName())) != 0) {
+            return new Result(10001,"栋舍名已存在",false);
+        }
+        baseBuilding.setParentId(0);
+        baseBuilding.setFType(1);
+        this.save(baseBuilding);
+        return Result.SUCCESS();
+    }
+
+    @Override
+    @Transactional
+    public Result updateBuilding(BaseBuilding baseBuilding) {
+        if (this.count(new QueryWrapper<BaseBuilding>().eq("build_name",baseBuilding.getBuildName()).ne("id",baseBuilding.getId())) != 0) {
+            return new Result(10001,"栋舍名已存在",false);
+        }
+        //TODO:后面补充羊只和设备的名称修改
+        baseBuildingMapper.updateById(baseBuilding);
+        return ResultUtil.updateResult(1);
+    }
+
+    @Override
+    @Transactional
+    public Result deleteBuilding(Map<String, Integer> map) {
+        Integer id = map.get("id");
+        List<Integer> cageIds = baseBuildingMapper.getCageById(id);
+        //TODO:后面再进行补充羊只和设备情况
+//        if (ObjectUtil.isNotEmpty(cageIds)){
+//            if (ObjectUtil.isNotEmpty(baseDuckInfoMapper.selectList(new QueryWrapper<BaseDuckInfo>().in("unit_id",cageIds)))) {
+//                return new Result(10001,"删除失败,该栋舍下属笼中存在鸭只",false);
+//            }
+//            if (ObjectUtil.isNotEmpty(envDeviceMapper.selectList(new QueryWrapper<EnvDevice>().in("unit_id",cageIds)))) {
+//                return new Result(10001,"删除失败,该栋舍下属笼中存在设备",false);
+//            }
+//        }
+//        if (ObjectUtil.isNotEmpty(envDeviceMapper.selectList(new QueryWrapper<EnvDevice>().eq("unit_id",id)))) {
+//            return new Result(10001,"删除失败,该栋舍存在设备",false);
+//        }
+        if (this.removeById(id) && this.removeByIds(cageIds)){
+            return new Result(10000, "删除成功", true);
+        }else {
+            return new Result(10001, "删除失败", true);
+        }
+    }
+
+    @Override
+    public Result listBuilding(Map<String, String> map) {
+        String farmId = map.get("farmId");
+        QueryWrapper<BaseBuilding> queryWrapper = new QueryWrapper<BaseBuilding>()
+                .eq("farm_id", farmId)
+                .eq("f_type", 1);
+        return new Result(ResultCode.SUCCESS,baseBuildingMapper.selectList(queryWrapper));
+    }
+
+    @Override
+    public Result listTreeBuilding(Map<String, String> map) {
+        String farmId = map.get("farmId");
+        List<BaseBuilding> baseBuildings = this.list(new QueryWrapper<BaseBuilding>()
+                .eq("farm_id", farmId)
+                .orderByAsc("id"));
+        return new Result(ResultCode.SUCCESS,baseBuildings);
+    }
+
+}

+ 26 - 0
huimv-huyang-admin/src/main/java/com/huimv/admin/service/impl/ProtSheepInfoServiceImpl.java

@@ -1,11 +1,19 @@
 package com.huimv.admin.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.ProtSheepInfo;
 import com.huimv.admin.mapper.ProtSheepInfoMapper;
 import com.huimv.admin.service.IProtSheepInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Map;
+
 /**
  * <p>
  * 单个羊只信息 服务实现类
@@ -17,4 +25,22 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProtSheepInfoServiceImpl extends ServiceImpl<ProtSheepInfoMapper, ProtSheepInfo> implements IProtSheepInfoService {
 
+    @Autowired
+    private ProtSheepInfoMapper sheepInfoMapper;
+
+    @Override
+    public Result listPage(Map<String, String> paramsMap) {
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        String farmId = paramsMap.get("farmId");
+        String sheepId = paramsMap.get("sheepId");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+            pageSize = "20";
+        }
+        Page<ProtSheepInfo> page = new Page(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        QueryWrapper<ProtSheepInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(sheepId), "sheep_id", sheepId);
+        return new Result(ResultCode.SUCCESS, sheepInfoMapper.selectPage(page, queryWrapper));
+    }
 }

+ 8 - 0
huimv-huyang-admin/src/main/resources/mapper/BaseBuildingMapper.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.admin.mapper.BaseBuildingMapper">
+
+    <select id="getCageById" resultType="integer">
+   select id from `base_building` where parent_id = #{id}
+</select>
+</mapper>