Explorar o código

精准饲喂+能繁母猪 后台

wwh hai 1 ano
pai
achega
0e0937f1c3
Modificáronse 51 ficheiros con 2138 adicións e 0 borrados
  1. 328 0
      huimv-admin/src/main/java/com/huimv/admin/common/utils/DateUtil.java
  2. 29 0
      huimv-admin/src/main/java/com/huimv/admin/controller/BizBaseStageController.java
  3. 34 0
      huimv-admin/src/main/java/com/huimv/admin/controller/EartagData2Controller.java
  4. 33 0
      huimv-admin/src/main/java/com/huimv/admin/controller/EartagDeviceRegisterController.java
  5. 43 0
      huimv-admin/src/main/java/com/huimv/admin/controller/EartagEartagRegister2Controller.java
  6. 47 0
      huimv-admin/src/main/java/com/huimv/admin/controller/EartagHourActController.java
  7. 20 0
      huimv-admin/src/main/java/com/huimv/admin/controller/FeedingDataController.java
  8. 38 0
      huimv-admin/src/main/java/com/huimv/admin/controller/FeedingEnvController.java
  9. 29 0
      huimv-admin/src/main/java/com/huimv/admin/controller/SysBaseConfigController.java
  10. 37 0
      huimv-admin/src/main/java/com/huimv/admin/entity/BizBaseStage.java
  11. 67 0
      huimv-admin/src/main/java/com/huimv/admin/entity/EartagData2.java
  12. 103 0
      huimv-admin/src/main/java/com/huimv/admin/entity/EartagDeviceRegister.java
  13. 109 0
      huimv-admin/src/main/java/com/huimv/admin/entity/EartagEartagRegister2.java
  14. 44 0
      huimv-admin/src/main/java/com/huimv/admin/entity/EartagHourAct.java
  15. 1 0
      huimv-admin/src/main/java/com/huimv/admin/entity/Farm.java
  16. 82 0
      huimv-admin/src/main/java/com/huimv/admin/entity/FeedingData.java
  17. 97 0
      huimv-admin/src/main/java/com/huimv/admin/entity/FeedingEnv.java
  18. 39 0
      huimv-admin/src/main/java/com/huimv/admin/entity/SysBaseConfig.java
  19. 16 0
      huimv-admin/src/main/java/com/huimv/admin/entity/vo/FeedDataVo.java
  20. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/BizBaseStageMapper.java
  21. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/EartagData2Mapper.java
  22. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/EartagDeviceRegisterMapper.java
  23. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/EartagEartagRegister2Mapper.java
  24. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/EartagHourActMapper.java
  25. 23 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/FeedingDataMapper.java
  26. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/FeedingEnvMapper.java
  27. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/SysBaseConfigMapper.java
  28. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/IBizBaseStageService.java
  29. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/IEartagData2Service.java
  30. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/IEartagDeviceRegisterService.java
  31. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/IEartagEartagRegister2Service.java
  32. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/IEartagHourActService.java
  33. 16 0
      huimv-admin/src/main/java/com/huimv/admin/service/IFeedingDataService.java
  34. 22 0
      huimv-admin/src/main/java/com/huimv/admin/service/IFeedingEnvService.java
  35. 19 0
      huimv-admin/src/main/java/com/huimv/admin/service/ISysBaseConfigService.java
  36. 43 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/BizBaseStageServiceImpl.java
  37. 64 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagData2ServiceImpl.java
  38. 62 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagDeviceRegisterServiceImpl.java
  39. 147 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagEartagRegister2ServiceImpl.java
  40. 56 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagHourActServiceImpl.java
  41. 20 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingDataServiceImpl.java
  42. 153 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingEnvServiceImpl.java
  43. 64 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/SysBaseConfigServiceImpl.java
  44. 5 0
      huimv-admin/src/main/resources/mapper/BizBaseStageMapper.xml
  45. 5 0
      huimv-admin/src/main/resources/mapper/EartagData2Mapper.xml
  46. 5 0
      huimv-admin/src/main/resources/mapper/EartagDeviceRegisterMapper.xml
  47. 5 0
      huimv-admin/src/main/resources/mapper/EartagEartagRegister2Mapper.xml
  48. 5 0
      huimv-admin/src/main/resources/mapper/EartagHourActMapper.xml
  49. 11 0
      huimv-admin/src/main/resources/mapper/FeedingDataMapper.xml
  50. 5 0
      huimv-admin/src/main/resources/mapper/FeedingEnvMapper.xml
  51. 5 0
      huimv-admin/src/main/resources/mapper/SysBaseConfigMapper.xml

+ 328 - 0
huimv-admin/src/main/java/com/huimv/admin/common/utils/DateUtil.java

@@ -0,0 +1,328 @@
+package com.huimv.admin.common.utils;
+
+import cn.hutool.core.date.DateTime;
+import org.springframework.stereotype.Component;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+//@Slf4j
+public class DateUtil {
+
+    public int getNowHour(){
+        Calendar cal = Calendar.getInstance();
+        return cal.get(Calendar.HOUR_OF_DAY);
+    }
+
+    public int setCalendarNewTime(String newTime) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(sdf.parse(newTime));
+        return cal.get(Calendar.HOUR_OF_DAY);
+    }
+
+    public int setCalendarNewTime(Timestamp newTime) throws ParseException {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(newTime);
+        return cal.get(Calendar.HOUR_OF_DAY);
+    }
+
+    //格式化日期(Long --> Date)
+    public String formatLongToDate(Long longDate){
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date= new Date(longDate);
+        return df.format(date);
+    }
+
+    //格式化本年
+    public String getThisYear(){
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        return String.valueOf(year);
+    }
+
+    //格式化本月
+    public String getThisMonth(){
+        Calendar cal = Calendar.getInstance();
+        int month = cal.get(Calendar.MONTH) + 1;
+        if(String.valueOf(month).length()==1)
+        {
+            return "0"+String.valueOf(month);
+        }else{
+            return String.valueOf(month);
+        }
+    }
+
+    //格式化日期时间
+    public String formatDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+
+    //格式化日期时间
+    public String formatDateText(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+//    public String formatDateText(Date date) throws ParseException {
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//        return sdf.format(date);
+//    }
+
+    public Date parseDateTime(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(dateText);
+    }
+
+    public Date parseDate(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(dateText);
+    }
+
+    public Long parseDateTimeTextToLong(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return date.getTime();
+    }
+
+    public Long parseDateTextToLong(String dateText) throws ParseException {
+        if(dateText.indexOf("T") != -1){
+            dateText = dateText.replace("T"," ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = sdf.parse(dateText);
+        return date.getTime();
+    }
+
+    //
+    public Date getTodayDate() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public Date getTodayDatetime() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public String getTodayDateText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(new Date());
+    }
+
+    public java.sql.Date getTodayMySQLDate(){
+        java.sql.Date todayDate = new java.sql.Date(new Date().getTime());
+        return todayDate;
+    }
+
+    public Timestamp getTimestamp(){
+        Timestamp nowTimestamp = new Timestamp(new Date().getTime());
+        return nowTimestamp;
+    }
+
+    public String getTodayText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(new Date());
+    }
+
+    public String formatDateText(Date date) throws ParseException {
+        if(date == null){
+            return "";
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(date);
+    }
+
+    public String formatDatetimeText(Date date) throws ParseException {
+        if(date == null || date.toString().length()==0){
+            return "";
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(date);
+    }
+
+    public String getNowText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayMissionText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+        return sdf.format(new Date());
+    }
+
+    public String getStartDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (cn.hutool.core.date.DateUtil.beginOfMonth(date) + "").substring(0, 10);
+    }
+
+    public String getEndDateInThisMonth(){
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (date + "").substring(0, 10);
+    }
+
+    /**
+     * 获取过去或者未来 任意天内的日期数组
+     * @param intervals      intervals天内
+     * @return              日期数组
+     */
+    public ArrayList<String> test(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        ArrayList<String> fetureDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+            fetureDaysList.add(getFetureDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * @Method      : getPastIntervals
+     * @Description : 返回过去N天日期(倒排序)
+     * @Params      : [intervals]
+     * @Return      : java.util.ArrayList<java.lang.String>
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/7       
+     * @Time        : 15:27
+     */
+    public ArrayList<String> getPastIntervals(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * @Method      : getPastIntervalsASC
+     * @Description : 正排序
+     * @Params      : [intervals]
+     * @Return      : java.util.ArrayList<java.lang.String>
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/7       
+     * @Time        : 16:33
+     */
+    public ArrayList<String> getPastIntervalsASC(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        for (int i = intervals-1; i >=0; i--) {
+            pastDaysList.add(getPastDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * @Method      : getFetureIntervals
+     * @Description : 获取未来N天日期
+     * @Params      : [intervals]
+     * @Return      : java.util.ArrayList<java.lang.String>
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/3/7       
+     * @Time        : 15:28
+     */
+    public ArrayList<String> getFetureIntervals(int intervals ) {
+        ArrayList<String> fetureDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            fetureDaysList.add(getFetureDate(i));
+        }
+        return fetureDaysList;
+    }
+
+
+    /**
+     * 获取过去第几天的日期
+     *
+     * @param past
+     * @return
+     */
+    public String getPastDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    /**
+     * 获取未来 第 past 天的日期
+     * @param past
+     * @return
+     */
+    public String getFetureDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    //重新构建日期
+    public String rebuildDateTime(String text){
+        return text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+    }
+
+    public static void main(String[] args){
+        DateUtil du = new DateUtil();
+        //
+//        du.test1();
+        List<String> pastList = du.getPastIntervalsASC(5);
+        for(String pastDate:pastList){
+            System.out.println("pastDate>>"+pastDate);
+        }
+
+        List<String> fetureList = du.getFetureIntervals(5);
+        for(String fetureDate:fetureList){
+            System.out.println("fetureDate>>"+fetureDate);
+        }
+
+    }
+
+    private void test1() {
+        String text = "20211201104300";
+//        String text = "1234567890abcd";
+        String date = text.substring(0,4)+"-"+text.substring(4,6)+"-"+text.substring(6,8)+" "+text.substring(8,10)+":"+text.substring(10,12)+":"+text.substring(12,14);
+        System.out.println("date="+date);
+    }
+
+    //获取long时间
+    public Long getNowLong(){
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH)-1,0,0,0);
+        return calendar.getTime().getTime();
+    }
+}

+ 29 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/BizBaseStageController.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IBizBaseStageService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@RestController
+@RequestMapping("/biz-base-stage")
+@CrossOrigin
+public class BizBaseStageController {
+    @Resource
+    private IBizBaseStageService bizBaseStageService;
+    @PostMapping("/list")
+    private Result listBizBaseStage(@RequestBody Map<String,String> param){
+        return bizBaseStageService.listBizBaseStage(param);
+    }
+}

+ 34 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EartagData2Controller.java

@@ -0,0 +1,34 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEartagData2Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@RestController
+@RequestMapping("/eartag-data2")
+@CrossOrigin
+public class EartagData2Controller {
+    @Autowired
+    private IEartagData2Service eartagDataService;
+
+    @PostMapping("/getEnvByTime")
+    public Result getEnvByTime(@RequestBody Map<String,String> map, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        map.put("userId",userId+"");
+        return eartagDataService.getEnvByTime(map);
+    }
+}

+ 33 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EartagDeviceRegisterController.java

@@ -0,0 +1,33 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEartagData2Service;
+import com.huimv.admin.service.IEartagDeviceRegisterService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@RestController
+@RequestMapping("/eartag-device-register")
+@CrossOrigin
+public class EartagDeviceRegisterController {
+    @Autowired
+    private IEartagDeviceRegisterService registerService;
+
+    @PostMapping("/listCount")
+    public Result listCount(@RequestBody Map<String,String> map){
+        return registerService.listCount(map);
+    }
+}

+ 43 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EartagEartagRegister2Controller.java

@@ -0,0 +1,43 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEartagEartagRegister2Service;
+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 javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@RestController
+@RequestMapping("/eartag-eartag-register2")
+@CrossOrigin
+public class EartagEartagRegister2Controller {
+    @Autowired
+    private IEartagEartagRegister2Service eartagRegisterService;
+
+   /* @RequestMapping("/listFarmUnitEartagData")
+    public Result listFarmUnitEartagData(@RequestBody Map<String, String> params){
+        return eartagRegisterService.listFarmUnitEartagData(params);
+    }*/
+
+    @RequestMapping("/listFarmUnitEartagData")
+    public Result listFarmUnitEartagData(@RequestBody Map<String, String> params, HttpServletRequest req){
+        Integer userId = TokenSign.getMemberIdByJwtToken(req);
+        params.put("userId",userId+"");
+        return eartagRegisterService.listFarmUnitEartagData(params);
+    }
+}

+ 47 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EartagHourActController.java

@@ -0,0 +1,47 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IEartagHourActService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.ParseException;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@RestController
+@RequestMapping("/eartag-hour-act")
+@CrossOrigin
+public class EartagHourActController {
+    @Autowired
+    private IEartagHourActService eartagHourActService;
+
+    @RequestMapping(value = "/getAct",method = RequestMethod.POST)
+    public Result list(@RequestBody Map<String, Object> paramsMap) throws ParseException {
+        String farmCode = "";
+        if (paramsMap.get("farmId") != null) {
+            farmCode = paramsMap.get("farmId")+"";
+        }
+        String startDate = "";
+        if (paramsMap.get("startDate") != null) {
+            startDate = paramsMap.get("startDate")+"";
+        }
+        String endDate = "";
+        if (paramsMap.get("endDate") != null) {
+            endDate = paramsMap.get("endDate")+"";
+        }
+        String earmark = "";
+        if (paramsMap.get("earmark") != null) {
+            earmark = paramsMap.get("earmark")+"";
+        }
+        return eartagHourActService.getHourAct(farmCode,startDate,endDate,earmark);
+    }
+}

+ 20 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/FeedingDataController.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@RestController
+@RequestMapping("/feeding-data")
+public class FeedingDataController {
+
+}

+ 38 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/FeedingEnvController.java

@@ -0,0 +1,38 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.token.TokenSign;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.IFeedingEnvService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@RestController
+@RequestMapping("/feeding-env")
+@CrossOrigin
+public class FeedingEnvController {
+
+    @Autowired
+    private IFeedingEnvService feedingEnvService;
+
+
+    @PostMapping("/countEnv")
+    public Result countEnv(@RequestBody Map<String,String> map){
+        return feedingEnvService.countEnv(map);
+    }
+    @PostMapping("/listFeed")
+    public Result listFeed(@RequestBody Map<String,String> map){
+        return feedingEnvService.listFeed(map);
+    }
+}

+ 29 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/SysBaseConfigController.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.controller;
+
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.ISysBaseConfigService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@RestController
+@RequestMapping("/sys-base-config")
+@CrossOrigin
+public class SysBaseConfigController {
+    @Resource
+    private ISysBaseConfigService sysBaseConfigService;
+    @PostMapping("/listWarning")
+    public Result listWarning(@RequestBody Map<String,String> paramsMap){
+        return sysBaseConfigService.listWarning(paramsMap);
+    }
+}

+ 37 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/BizBaseStage.java

@@ -0,0 +1,37 @@
+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 2023-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("biz_base_stage")
+public class BizBaseStage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String stageCode;
+
+    private String stageName;
+
+    private Integer sort;
+
+
+}

+ 67 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/EartagData2.java

@@ -0,0 +1,67 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_data2")
+public class EartagData2 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String cmdHeader;
+
+    private String device;
+
+    private String earmark;
+
+    private Integer bat;
+
+    private Integer earTemp;
+
+    private Float earTemp1;
+
+    private Integer envTemp;
+
+    private Float envTemp1;
+
+    private Long act;
+
+    private Long act1;
+
+    private Integer signal1;
+
+    private String askTime;
+
+    private String other;
+
+    private LocalDateTime addTime;
+
+    private LocalDate createDate;
+
+    private String farmId;
+
+    private LocalDate askDate;
+
+
+}

+ 103 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/EartagDeviceRegister.java

@@ -0,0 +1,103 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_device_register")
+public class EartagDeviceRegister implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备编码
+     */
+    private String deviceCode;
+
+    private String chipId;
+
+    private String countyCode;
+
+    private String countyName;
+
+    private String farmId;
+
+    private String farmName;
+
+    private Integer typeF;
+
+    /**
+     * 阶段
+     */
+    private Integer stage;
+
+    /**
+     * 栋舍id
+     */
+    private Integer pigpenId;
+
+    /**
+     * 单元id
+     */
+    private Integer unitId;
+
+    private LocalDateTime registerTime;
+
+    private LocalDateTime lastTime;
+
+    private Integer activeStatus;
+
+    private LocalDateTime activeTime;
+
+    private Integer deviceStatus;
+
+    /**
+     * 设备别名
+     */
+    private String deviceAlias;
+
+    private String location;
+
+    private String remark;
+
+    private LocalDate createDate;
+
+    private String updateType;
+
+    private LocalDateTime syncTime;
+
+    private Integer deviceType;
+
+    private String imei;
+
+    /**
+     * 1升级版  0免费版
+     */
+    private Integer upgrade;
+
+    private Integer farmerId;
+
+    private String farmerName;
+
+
+}

+ 109 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/EartagEartagRegister2.java

@@ -0,0 +1,109 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_eartag_register2")
+public class EartagEartagRegister2 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String earmark;
+
+    private LocalDateTime firstTime;
+
+    private LocalDateTime lastTime;
+
+    private String firstDevice;
+
+    private String belongDevice;
+
+    private String lastDevice;
+
+    private LocalDateTime registerTime;
+
+    private Integer registerType;
+
+    private String remark;
+
+    private String farmId;
+
+    private Integer activeStatus;
+
+    private LocalDateTime activeTime;
+
+    private Integer liveStatus;
+
+    private LocalDate createDate;
+
+    private Integer bat;
+
+    private Integer rebootTimes;
+
+    private Integer onDayAge;
+
+    private Integer dayAge;
+
+    private String stageCode;
+
+    private String stageName;
+
+    private Integer pigpenId;
+
+    private String pigpenName;
+
+    private Integer unitId;
+
+    private String unitName;
+
+    private Integer actRange;
+
+    private Float earTemp1;
+
+    private Float envTemp1;
+
+    private Long act;
+
+    private Integer signal1;
+
+    private String other;
+
+    private String askTime;
+
+    private Integer envAbnormal;
+
+    private Integer earAbnormal;
+
+    /**
+     * 可视码
+     */
+    private String viewCode;
+
+    /**
+     * RFID id号
+     */
+    private String rfidId;
+
+
+}

+ 44 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/EartagHourAct.java

@@ -0,0 +1,44 @@
+package com.huimv.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("eartag_hour_act")
+public class EartagHourAct implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String earmark;
+
+    private Integer hour;
+
+    private Long act;
+
+    private Date addDate;
+
+    private String farmCode;
+
+
+}

+ 1 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/Farm.java

@@ -38,5 +38,6 @@ public class Farm extends Model {
     private String farmMenu;
     private String farmTopMenu;
     private String function;
+    private Integer isShow;
     
 }

+ 82 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/FeedingData.java

@@ -0,0 +1,82 @@
+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.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("feeding_data")
+public class FeedingData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    /**
+     * 0 哺乳  1配怀
+     */
+    private Integer deviceType;
+
+    private String eartag;
+
+    /**
+     * 上传时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date uploadTime;
+
+    /**
+     * 栋舍名称
+     */
+    private String unitName;
+
+    /**
+     * 栋舍id
+     */
+    private Integer unitId;
+
+    /**
+     * 采食量
+     */
+    private String foodIntake;
+
+    /**
+     * 下料量
+     */
+    private String blanking;
+
+    /**
+     * 餐次
+     */
+    private Integer meals;
+
+    /**
+     * 膘体状态
+     */
+    private String bodySize;
+
+    private Integer farmId;
+
+
+}

+ 97 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/FeedingEnv.java

@@ -0,0 +1,97 @@
+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.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("feeding_env")
+public class FeedingEnv implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    /**
+     * 0 哺乳  1配怀
+     */
+    private Integer deviceType;
+
+    private String eartag;
+
+    /**
+     * 0正常 1异常
+     */
+    private Integer deviceStatus;
+
+    /**
+     * 0在线 1离线
+     */
+    private Integer onlineStatus;
+
+    /**
+     * 最后上传时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastTime;
+
+    /**
+     * 栋舍名称
+     */
+    private String unitName;
+
+    /**
+     * 栋舍id
+     */
+    private Integer unitId;
+
+    /**
+     * 采食量
+     */
+    private String foodIntake;
+
+    /**
+     * 0待产 哺乳
+     */
+    private Integer stageStatus;
+
+    /**
+     * 下料量
+     */
+    private String blanking;
+
+    /**
+     * 餐次
+     */
+    private Integer meals;
+
+    /**
+     * 膘体状态
+     */
+    private String bodySize;
+
+    private Integer farmId;
+
+
+}

+ 39 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/SysBaseConfig.java

@@ -0,0 +1,39 @@
+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 2023-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sys_base_config")
+public class SysBaseConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String configName;
+
+    private String configKey;
+
+    private String configValue;
+
+    private String rowId;
+
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/vo/FeedDataVo.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class FeedDataVo {
+    private Double count;
+
+    @JsonFormat(pattern = "MM-dd", timezone = "GMT+8")
+    private Date dateTime;
+
+    private Double bodySize;
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/BizBaseStageMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.BizBaseStage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface BizBaseStageMapper extends BaseMapper<BizBaseStage> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EartagData2Mapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.EartagData2;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface EartagData2Mapper extends BaseMapper<EartagData2> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EartagDeviceRegisterMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.EartagDeviceRegister;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface EartagDeviceRegisterMapper extends BaseMapper<EartagDeviceRegister> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EartagEartagRegister2Mapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.EartagEartagRegister2;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface EartagEartagRegister2Mapper extends BaseMapper<EartagEartagRegister2> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EartagHourActMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.EartagHourAct;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface EartagHourActMapper extends BaseMapper<EartagHourAct> {
+
+}

+ 23 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/FeedingDataMapper.java

@@ -0,0 +1,23 @@
+package com.huimv.admin.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.huimv.admin.entity.EnergyData;
+import com.huimv.admin.entity.FeedingData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.entity.vo.FeedDataVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface FeedingDataMapper extends BaseMapper<FeedingData> {
+    List<FeedDataVo> listFeed(@Param(Constants.WRAPPER) QueryWrapper<FeedingData> queryWrapper);
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/FeedingEnvMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.FeedingEnv;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface FeedingEnvMapper extends BaseMapper<FeedingEnv> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/SysBaseConfigMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.SysBaseConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface SysBaseConfigMapper extends BaseMapper<SysBaseConfig> {
+
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IBizBaseStageService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.BizBaseStage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface IBizBaseStageService extends IService<BizBaseStage> {
+    Result listBizBaseStage(Map<String, String> param);
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEartagData2Service.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.EartagData2;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface IEartagData2Service extends IService<EartagData2> {
+    Result getEnvByTime(Map<String, String> map);
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEartagDeviceRegisterService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.EartagDeviceRegister;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface IEartagDeviceRegisterService extends IService<EartagDeviceRegister> {
+    Result listCount(Map<String,String> paramsMap);
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEartagEartagRegister2Service.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.EartagEartagRegister2;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface IEartagEartagRegister2Service extends IService<EartagEartagRegister2> {
+    Result listFarmUnitEartagData(Map<String, String> params);
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEartagHourActService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.EartagHourAct;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.text.ParseException;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface IEartagHourActService extends IService<EartagHourAct> {
+    Result getHourAct(String farmCode, String startDate, String endDate, String earmark) throws ParseException;
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IFeedingDataService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.entity.FeedingData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface IFeedingDataService extends IService<FeedingData> {
+
+}

+ 22 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IFeedingEnvService.java

@@ -0,0 +1,22 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.FeedingEnv;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+public interface IFeedingEnvService extends IService<FeedingEnv> {
+
+    Result countEnv(Map<String, String> paramsMap);
+
+    Result listFeed(Map<String, String> paramsMap);
+}

+ 19 - 0
huimv-admin/src/main/java/com/huimv/admin/service/ISysBaseConfigService.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.SysBaseConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+public interface ISysBaseConfigService extends IService<SysBaseConfig> {
+    Result listWarning(Map<String, String> paramsMap);
+}

+ 43 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/BizBaseStageServiceImpl.java

@@ -0,0 +1,43 @@
+package com.huimv.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.BizBaseStage;
+import com.huimv.admin.mapper.BizBaseStageMapper;
+import com.huimv.admin.service.IBizBaseStageService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@Service
+public class BizBaseStageServiceImpl extends ServiceImpl<BizBaseStageMapper, BizBaseStage> implements IBizBaseStageService {
+    @Resource
+    private BizBaseStageMapper bizBaseStageMapper;
+    @Override
+    public Result listBizBaseStage(Map<String, String> param) {
+        String pageNo = param.get("pageNo");
+        String pageSize = param.get("pageSize");
+        String stageCode = param.get("stageCode");
+        String stageName = param.get("stageName");
+
+        Page<BizBaseStage> page = new Page<>(Integer.valueOf(pageNo), Integer.valueOf(pageSize));
+        QueryWrapper<BizBaseStage> queryWrapper = new QueryWrapper<>();
+        queryWrapper.like(StringUtils.isNotBlank(stageCode),"stage_code", stageCode);
+        queryWrapper.like(StringUtils.isNotBlank(stageName),"stage_name", stageName);
+        Page<BizBaseStage> bizBaseStagePage = bizBaseStageMapper.selectPage(page, queryWrapper);
+        return new Result(ResultCode.SUCCESS,bizBaseStagePage);
+    }
+}

+ 64 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagData2ServiceImpl.java

@@ -0,0 +1,64 @@
+package com.huimv.admin.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.EartagData2;
+import com.huimv.admin.entity.SysAccountMultilevel;
+import com.huimv.admin.mapper.EartagData2Mapper;
+import com.huimv.admin.service.IEartagData2Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Service
+public class EartagData2ServiceImpl extends ServiceImpl<EartagData2Mapper, EartagData2> implements IEartagData2Service {
+
+    @Override
+    public Result getEnvByTime(Map<String, String> map) {
+        String earmark = map.get("earmark");
+        String startDate = map.get("startDate");
+        String endDate = map.get("endDate");
+//        String userId = map.get("userId");
+        Date now = new Date();
+//        SysAccountMultilevel user = sysAccountMultilevelMapper.selectById(userId);
+        if (StringUtils.isBlank(earmark)) {
+            return new Result(10001, "请选择耳标", false);
+        }
+        QueryWrapper<EartagData2> wrapper = new QueryWrapper<>();
+        wrapper.eq("earmark", earmark);
+        if (StringUtils.isBlank(startDate)) {
+            wrapper.ge("add_time", DateUtil.beginOfDay(now));
+        } else {
+            wrapper.between("add_time", startDate, endDate);
+        }
+        wrapper.orderByAsc("add_time");
+        List<EartagData2> list = this.list(wrapper);
+        //用户数据
+//        if (user.getIsUser() == 0) {
+//            for (EartagData2 eartagData2 : list) {
+//                Float earTemp1 = eartagData2.getEarTemp1();
+//                if (earTemp1 > 40) {
+//                    eartagData2.setEarTemp1(40F);
+//                }
+//                if (earTemp1 < 30) {
+//                    eartagData2.setEarTemp1(30F);
+//                }
+//            }
+//        }
+        return new Result(ResultCode.SUCCESS, list);
+    }
+}

+ 62 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagDeviceRegisterServiceImpl.java

@@ -0,0 +1,62 @@
+package com.huimv.admin.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.EartagDeviceRegister;
+import com.huimv.admin.entity.EartagEartagRegister2;
+import com.huimv.admin.mapper.EartagDeviceRegisterMapper;
+import com.huimv.admin.mapper.EartagEartagRegister2Mapper;
+import com.huimv.admin.service.IEartagDeviceRegisterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@Service
+public class EartagDeviceRegisterServiceImpl extends ServiceImpl<EartagDeviceRegisterMapper, EartagDeviceRegister> implements IEartagDeviceRegisterService {
+
+    @Autowired
+    private EartagDeviceRegisterMapper registerMapper;
+    @Autowired
+    private EartagEartagRegister2Mapper register2Mapper;
+    @Override
+    public Result listCount(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<EartagDeviceRegister> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        QueryWrapper<EartagEartagRegister2> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq("farm_id", farmId);
+        Integer integer = registerMapper.selectCount(queryWrapper);
+        List<EartagEartagRegister2> register2s = register2Mapper.selectList(queryWrapper2);
+        Integer count = register2s.size();
+        Integer count2 = 0;
+        Integer count3 = 0;
+        for (EartagEartagRegister2 register2 : register2s) {
+            if (register2.getLiveStatus() == 1) {
+                count2 = count2 + 1;
+            }
+            if (register2.getLiveStatus() == 0) {
+                count3 = count3 + 1;
+            }
+        }
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("count", count);
+        jsonObject.put("count1", integer);
+        jsonObject.put("count2", count2);
+        jsonObject.put("count3", count3);
+        return new Result(ResultCode.SUCCESS, jsonObject);
+    }
+}

+ 147 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagEartagRegister2ServiceImpl.java

@@ -0,0 +1,147 @@
+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.entity.EartagData2;
+import com.huimv.admin.entity.EartagEartagRegister2;
+import com.huimv.admin.entity.SysAccountMultilevel;
+import com.huimv.admin.mapper.EartagData2Mapper;
+import com.huimv.admin.mapper.EartagEartagRegister2Mapper;
+import com.huimv.admin.mapper.SysAccountMultilevelMapper;
+import com.huimv.admin.service.IEartagEartagRegister2Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.DecimalFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Service
+public class EartagEartagRegister2ServiceImpl extends ServiceImpl<EartagEartagRegister2Mapper, EartagEartagRegister2> implements IEartagEartagRegister2Service {
+
+    @Autowired
+    SysAccountMultilevelMapper sysAccountMultilevelMapper;
+    @Autowired
+    private EartagData2Mapper eartagData2Mapper;
+
+    @Override
+    public Result listFarmUnitEartagData(Map<String, String> params) {
+        String pageSize = params.get("pageSize");
+        String pageNo = params.get("pageNo");
+        String unitId = params.get("unitId");
+        String deviceCode = params.get("deviceCode");
+        String farmId = params.get("farmId");
+        String earmark = params.get("earmark");
+        String liveStatus = params.get("liveStatus");
+        String userId = params.get("userId");
+//        SysAccountMultilevel user = sysAccountMultilevelMapper.selectById(userId);
+        if (StringUtils.isBlank(pageNo)){
+            pageNo="1";
+        }
+        if (StringUtils.isBlank(pageSize)){
+            pageSize="20";
+        }
+        Float maxEarTemp = 0F;
+        Float minEarTemp = 100F;
+        QueryWrapper<EartagEartagRegister2> wrapper = new QueryWrapper<>();
+        //客户数据
+//        if (user.getIsUser() == 0 && !"330727001".equals(farmId)){
+//            wrapper.between("ear_temp1",30,40);
+//            wrapper.le("act",10000);
+//            wrapper.eq("live_status", 1);
+//        }
+        //设备
+        wrapper.like(StringUtils.isNotBlank(deviceCode),"last_device",deviceCode);
+        wrapper.eq("farm_id",farmId);
+        wrapper.eq(StringUtils.isNotBlank(unitId),"unit_id",unitId);
+        wrapper.like(StringUtils.isNotBlank(earmark),"earmark",earmark);
+        wrapper.eq(StringUtils.isNotBlank(liveStatus),"live_status",liveStatus);
+        wrapper.orderByDesc("ask_time");
+        //大堰河牧场过滤
+//        if ("330112004".equals(farmId)){
+//            wrapper.eq("live_status", 1).and( i->i.likeRight("earmark","1332022109003").or().likeRight("earmark","1332022109004"));
+//        }
+//        if ("330727001".equals(farmId)){
+//            wrapper.eq("live_status", 1).like("earmark","31111112222");
+//        }
+        Page<EartagEartagRegister2> page = this.page(new Page<>(Long.parseLong(pageNo), Long.parseLong(pageSize)), wrapper);
+      /*  if (user.getIsUser() == 0){
+            for (EartagEartagRegister2 record : page.getRecords()) {
+                String earmark1 = record.getEarmark();
+                EartagData2 eartagData2 = eartagData2Mapper.selectOne(new QueryWrapper<EartagData2>().eq("earmark",earmark1).orderByDesc("id").last("limit 1"));
+//             EartagData2 eartagData2Temp = eartagData2Mapper.selectOne(new QueryWrapper<EartagData2>().eq("earmark",earmark1).ge("ask_time",DateUtil.beginOfDay(new Date())).orderByDesc("ear_temp1").last("limit 1"));
+//             if (ObjectUtil.isNotEmpty(eartagData2Temp)){
+//                 record.setEarTemp1(eartagData2Temp.getEarTemp1());
+//             }
+                if (ObjectUtil.isNotEmpty(eartagData2)){
+                    record.setAct(eartagData2.getAct());
+                }
+                Float earTemp1 = record.getEarTemp1();
+                Long act = record.getAct();
+                if (earTemp1 >40){
+                    record.setEarTemp1(40F);
+                }
+                if (earTemp1 <30){
+                    double a= new Random().nextInt(32) % (2) + 29;
+                    DecimalFormat df = new DecimalFormat( "0.00" );
+                    String str=df.format( a );
+
+                    record.setEarTemp1(Float.parseFloat(str));
+                }
+                if (act >300){
+                    record.setAct(300L);
+                }
+                if (act<0){
+                    record.setAct(0L);
+                }
+            }
+        }*/
+        Map map = new HashMap();
+        long allCount = this.count(wrapper);
+        //在线
+        if (!"330112004".equals(farmId)){
+            wrapper.eq("live_status", 1);
+        }
+        long onCount = this.count(wrapper);
+        List<EartagEartagRegister2> list = this.list(wrapper);
+        if (list.size() == 0){
+            minEarTemp = 0F;
+        }
+        for (EartagEartagRegister2 record : list) {
+            Float earTemp1 = record.getEarTemp1();
+            //客户数据
+         /*   if (user.getIsUser() == 0){
+                if (earTemp1 >40){
+                    earTemp1 = 40F;
+                }
+                if (earTemp1 <30){
+                    earTemp1 = 30F;
+                }
+            }*/
+            maxEarTemp = Math.max(earTemp1,maxEarTemp);
+            minEarTemp = Math.min(earTemp1,minEarTemp);
+        }
+        map.put("countOff",allCount-onCount);
+        map.put("countOn",onCount);
+        map.put("countAll",allCount);
+        map.put("maxEarTemp",maxEarTemp);
+        map.put("minEarTemp",minEarTemp);
+        map.put("page",page);
+        return new Result(ResultCode.SUCCESS,map);
+    }
+}

+ 56 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EartagHourActServiceImpl.java

@@ -0,0 +1,56 @@
+package com.huimv.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.utils.DateUtil;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.EartagHourAct;
+import com.huimv.admin.mapper.EartagHourActMapper;
+import com.huimv.admin.service.IEartagHourActService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Service
+public class EartagHourActServiceImpl extends ServiceImpl<EartagHourActMapper, EartagHourAct> implements IEartagHourActService {
+    @Autowired
+    private EartagHourActMapper eartagHourActMapper;
+
+    @Override
+    public Result getHourAct(String farmCode, String startDate, String endDate, String earmark) throws ParseException {
+        QueryWrapper<EartagHourAct> queryWrapper= new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
+        queryWrapper.between("add_date",startDate,endDate);
+        queryWrapper.eq(StringUtils.isNotBlank(earmark),"earmark",earmark);
+        List orderByAscList = new ArrayList();
+        orderByAscList.add("add_date");
+        orderByAscList.add("hour");
+//        queryWrapper.orderByAsc(orderByAscList);
+        List<EartagHourAct> eartagHourActList = eartagHourActMapper.selectList(queryWrapper);
+        List resultList = new ArrayList();
+        DateUtil du = new DateUtil();
+        for(EartagHourAct eartagHourAct:eartagHourActList){
+            Map map = new HashMap<>();
+            resultList.add(map);
+            map.put("addDate",du.formatDateText(eartagHourAct.getAddDate()));
+            map.put("hour",eartagHourAct.getHour());
+            map.put("act",eartagHourAct.getAct());
+        }
+        return new Result(ResultCode.SUCCESS,resultList);
+    }
+}

+ 20 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingDataServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.service.impl;
+
+import com.huimv.admin.entity.FeedingData;
+import com.huimv.admin.mapper.FeedingDataMapper;
+import com.huimv.admin.service.IFeedingDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Service
+public class FeedingDataServiceImpl extends ServiceImpl<FeedingDataMapper, FeedingData> implements IFeedingDataService {
+
+}

+ 153 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/FeedingEnvServiceImpl.java

@@ -0,0 +1,153 @@
+package com.huimv.admin.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+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.FeedingData;
+import com.huimv.admin.entity.FeedingEnv;
+import com.huimv.admin.entity.vo.FeedDataVo;
+import com.huimv.admin.mapper.FeedingDataMapper;
+import com.huimv.admin.mapper.FeedingEnvMapper;
+import com.huimv.admin.service.IFeedingEnvService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.DecimalFormat;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-19
+ */
+@Service
+public class FeedingEnvServiceImpl extends ServiceImpl<FeedingEnvMapper, FeedingEnv> implements IFeedingEnvService {
+
+    @Autowired
+    private FeedingEnvMapper feedingEnvMapper;
+    @Autowired
+    private FeedingDataMapper feedingDataMapper;
+
+    @Override
+    public Result countEnv(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String type = paramsMap.get("type");
+        String unitId = paramsMap.get("unitId");
+        String pageNum = paramsMap.get("pageNum");
+        String pageSize = paramsMap.get("pageSize");
+        if ("".equals(pageNum) || null == pageNum) {
+            pageNum = "1";
+        }
+        if ("".equals(pageSize) || null == pageSize) {
+            pageSize = "10";
+        }
+        if ("".equals(type) || null == type) {
+            type = "1";
+        }
+
+        JSONObject jsonObject = new JSONObject();
+        if ("1".equals(type)) {
+            QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId);
+            queryWrapper.in("device_type", 1, 2, 3);
+            List<FeedingEnv> feedingEnvs = feedingEnvMapper.selectList(queryWrapper);
+            Integer count = 0;//配怀母猪
+            Integer count1 = 0;//怀孕母猪
+            Integer count2 = 0;//空怀母猪
+            Integer count3 = 0;//设备数量
+            for (FeedingEnv feedingEnv : feedingEnvs) {
+                if (feedingEnv.getDeviceType() == 1) {
+                    count = count + 1;
+                }
+                if (feedingEnv.getDeviceType() == 2) {
+                    count1 = count1 + 1;
+                }
+                if (feedingEnv.getDeviceType() == 3) {
+                    count2 = count2 + 1;
+                }
+            }
+            count3 = count + count1 + count2;
+            jsonObject.put("count", count);
+            jsonObject.put("count1", count1);
+            jsonObject.put("count2", count2);
+            jsonObject.put("count3", count3);
+        } else if ("2".equals(type)) {
+            QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId);
+            queryWrapper.in("device_type", 0, 4);
+            List<FeedingEnv> feedingEnvs = feedingEnvMapper.selectList(queryWrapper);
+            Integer count = 0;//
+            Integer count1 = 0;//
+            Integer count2 = 0;//
+            Integer count3 = 0;//设备数量
+            for (FeedingEnv feedingEnv : feedingEnvs) {
+                if (feedingEnv.getDeviceType() == 0) {
+                    count = count + 1;
+                    count1 = count1 + 1;
+                }
+                if (feedingEnv.getDeviceType() == 4) {
+                    count2 = count2 + 1;
+                }
+            }
+            count3 = count + count1 + count2;
+            jsonObject.put("count", count);
+            jsonObject.put("count1", count1);
+            jsonObject.put("count2", count2);
+            jsonObject.put("count3", count3);
+        } else if ("3".equals(type)) {
+            QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId);
+            queryWrapper.in("device_type", 0, 1);
+            List<FeedingEnv> feedingEnvs = feedingEnvMapper.selectList(queryWrapper);
+            Integer count = 0;//
+            Integer count1 = 0;//
+            for (FeedingEnv feedingEnv : feedingEnvs) {
+                if (feedingEnv.getDeviceType() == 0) {
+                    count = count + 1;
+                }
+                if (feedingEnv.getDeviceType() == 1) {
+                    count1 = count1 + 1;
+                }
+            }
+            Integer count2 = count + count1;
+            if (count2 != 0) {
+                queryWrapper.eq("online_status", 0);
+                Integer integer = feedingEnvMapper.selectCount(queryWrapper);
+                Double rank = ((double) integer / (double) count2) * 100;
+                DecimalFormat def = new DecimalFormat("0.00");
+                jsonObject.put("count3", def.format(rank));
+            } else {
+                jsonObject.put("count3", 0);
+            }
+            jsonObject.put("count", count2);
+            jsonObject.put("count1", count);
+            jsonObject.put("count2", count1);
+        }
+        QueryWrapper<FeedingEnv> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId);
+        queryWrapper.eq(StringUtils.isNotBlank(unitId), "unit_id", unitId);
+        Page<FeedingEnv> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        Page<FeedingEnv> feedingEnvPage = feedingEnvMapper.selectPage(page, queryWrapper);
+        return new Result(ResultCode.SUCCESS, jsonObject, feedingEnvPage);
+    }
+
+    @Override
+    public Result listFeed(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String earTag = paramsMap.get("earTag");
+        QueryWrapper<FeedingData> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("farm_id", farmId).eq("eartag", earTag);
+        List<FeedDataVo> feedDataVos = feedingDataMapper.listFeed(queryWrapper);
+        queryWrapper.orderByDesc(" upload_time").last(" limit 1");
+        FeedingData feedingData = feedingDataMapper.selectOne(queryWrapper);
+        return new Result(ResultCode.SUCCESS, feedDataVos, feedingData);
+    }
+}

+ 64 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/SysBaseConfigServiceImpl.java

@@ -0,0 +1,64 @@
+package com.huimv.admin.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.SysBaseConfig;
+import com.huimv.admin.mapper.SysBaseConfigMapper;
+import com.huimv.admin.service.ISysBaseConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-09-20
+ */
+@Service
+public class SysBaseConfigServiceImpl extends ServiceImpl<SysBaseConfigMapper, SysBaseConfig> implements ISysBaseConfigService {
+    @Resource
+    private SysBaseConfigMapper sysBaseConfigMapper;
+    @Override
+    public Result listWarning(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        QueryWrapper<SysBaseConfig> wrapper = new QueryWrapper<>();
+        SysBaseConfig baseConfig = sysBaseConfigMapper.selectOne(wrapper.eq("config_value", farmId));
+        Map endMap = new HashMap();
+
+        if (ObjectUtil.isNotEmpty(baseConfig)){
+            wrapper.clear();
+            wrapper.eq("row_id",baseConfig.getRowId()).eq("config_key","eartagOfflineTime");
+            SysBaseConfig eartagOfflineTime = sysBaseConfigMapper.selectOne(wrapper);
+            endMap.put("eartagOfflineTime",eartagOfflineTime.getConfigValue());
+
+            wrapper.clear();
+            wrapper.eq("row_id",baseConfig.getRowId()).eq("config_key","deviceOfflineTime");
+            SysBaseConfig deviceOfflineTime = sysBaseConfigMapper.selectOne(wrapper);
+            endMap.put("deviceOfflineTime",deviceOfflineTime.getConfigValue());
+
+            wrapper.clear();
+            wrapper.eq("row_id",baseConfig.getRowId()).eq("config_key","eartagMaxTem");
+            SysBaseConfig eartagMaxTem = sysBaseConfigMapper.selectOne(wrapper);
+            endMap.put("eartagMaxTem",eartagMaxTem.getConfigValue());
+
+            wrapper.clear();
+            wrapper.eq("row_id",baseConfig.getRowId()).eq("config_key","eartagMinTem");
+            SysBaseConfig eartagMinTem = sysBaseConfigMapper.selectOne(wrapper);
+            endMap.put("eartagMinTem",eartagMinTem.getConfigValue());
+        }else {
+            endMap.put("eartagOfflineTime",120);
+            endMap.put("deviceOfflineTime",1440);
+            endMap.put("eartagMaxTem",40);
+            endMap.put("eartagMinTem",0);
+        }
+        return new Result(ResultCode.SUCCESS,endMap);
+    }
+}

+ 5 - 0
huimv-admin/src/main/resources/mapper/BizBaseStageMapper.xml

@@ -0,0 +1,5 @@
+<?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.BizBaseStageMapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/EartagData2Mapper.xml

@@ -0,0 +1,5 @@
+<?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.EartagData2Mapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/EartagDeviceRegisterMapper.xml

@@ -0,0 +1,5 @@
+<?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.EartagDeviceRegisterMapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/EartagEartagRegister2Mapper.xml

@@ -0,0 +1,5 @@
+<?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.EartagEartagRegister2Mapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/EartagHourActMapper.xml

@@ -0,0 +1,5 @@
+<?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.EartagHourActMapper">
+
+</mapper>

+ 11 - 0
huimv-admin/src/main/resources/mapper/FeedingDataMapper.xml

@@ -0,0 +1,11 @@
+<?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.FeedingDataMapper">
+
+    <select id="listFeed" resultType="com.huimv.admin.entity.vo.FeedDataVo">
+        select IFNULL(sum(food_intake),'0')  'count',upload_time dateTime,body_size bodySize from feeding_data
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(upload_time,'%Y-%m-%d')
+        ORDER BY upload_time ASC
+    </select>
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/FeedingEnvMapper.xml

@@ -0,0 +1,5 @@
+<?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.FeedingEnvMapper">
+
+</mapper>

+ 5 - 0
huimv-admin/src/main/resources/mapper/SysBaseConfigMapper.xml

@@ -0,0 +1,5 @@
+<?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.SysBaseConfigMapper">
+
+</mapper>