Procházet zdrojové kódy

母猪总存栏等

523096025 před 3 roky
rodič
revize
fc01662951
20 změnil soubory, kde provedl 885 přidání a 40 odebrání
  1. 38 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java
  2. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagDataController.java
  3. 11 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/FarmStockController.java
  4. 85 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/RegionStockDayController.java
  5. 5 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java
  6. 80 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/RegionStockDayEntity.java
  7. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EartagDataCountVo.java
  8. 19 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/RegionStockDayDao.java
  9. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/CollectorRegisterService.java
  10. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagDataService.java
  11. 4 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/FarmStockService.java
  12. 20 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/RegionStockDayService.java
  13. 67 25
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/CollectorRegisterServiceImpl.java
  14. 5 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DailyTabulateDataServiceImpl.java
  15. 18 4
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagDataServiceImpl.java
  16. 2 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EnvironmentDataServiceImpl.java
  17. 464 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/FarmStockServiceImpl.java
  18. 34 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/RegionStockDayServiceImpl.java
  19. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagDataDao.xml
  20. 25 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/RegionStockDayDao.xml

+ 38 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java

@@ -1,12 +1,18 @@
  package com.huimv.manager.controller;
 
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.huimv.manager.entity.BasePigpenEntity;
 import com.huimv.manager.entity.EartagDataEntity;
+import com.huimv.manager.mapper.BasePigpenDao;
+import com.huimv.manager.mapper.BasePigpenMapper;
 import com.huimv.manager.result.RRException;
+import com.huimv.manager.service.BasePigpenService;
 import com.huimv.manager.service.EartagDataService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -33,6 +39,8 @@ public class CollectorRegisterController {
     @Autowired
     private EartagDataService eartagDataService;
 
+    @Autowired
+    private BasePigpenService basePigpenService;
     /**
      * 列表
      */
@@ -52,8 +60,31 @@ public class CollectorRegisterController {
     @RequestMapping("/info/{id}")
     public R info(@PathVariable("id") Integer id){
 		CollectorRegisterEntity collectorRegister = collectorRegisterService.getById(id);
-
-        return R.ok().put("collectorRegister", collectorRegister);
+        BasePigpenEntity pigpen = basePigpenService.getById(collectorRegister.getPigpenId());
+        BasePigpenEntity unit = basePigpenService.getById(collectorRegister.getUnitId());
+        Map map = new HashMap();
+        map.put("acqStatus",collectorRegister.getAcqStatus());
+        map.put("canStatus",collectorRegister.getCanStatus());
+        map.put("countyCode",collectorRegister.getCountyCode());
+        map.put("countyName",collectorRegister.getCountyName());
+        map.put("delStatus",collectorRegister.getDelStatus());
+        map.put("deviceCode",collectorRegister.getDeviceCode());
+        map.put("farmCode",collectorRegister.getFarmCode());
+        map.put("farmName",collectorRegister.getFarmName());
+        map.put("id",collectorRegister.getId());
+        map.put("lastTime",collectorRegister.getLastTime());
+        map.put("networkStatus",collectorRegister.getNetworkStatus());
+        map.put("pigpenId",collectorRegister.getPigpenId());
+        map.put("port",collectorRegister.getPort());
+        map.put("registerTime",collectorRegister.getRegisterTime());
+        map.put("serverIp",collectorRegister.getServerIp());
+        map.put("stage",collectorRegister.getStage());
+        map.put("typeF",collectorRegister.getTypeF());
+        map.put("unitId",collectorRegister.getUnitId());
+        map.put("registeCode",collectorRegister.getRegisteCode());
+        map.put("pigpenName",pigpen.getPigpenName());
+        map.put("unitName",unit.getPigpenName());
+        return R.ok().put("collectorRegister", map);
     }
 
     /**
@@ -113,6 +144,11 @@ public class CollectorRegisterController {
         return collectorRegisterService.selectEveryStatusCollectors(farmCode);
     }
 
+    @GetMapping("/selectPcEveryStatusCollectors")
+    public R selectEveryStatusCollectors() {
+        return collectorRegisterService.selectPcEveryStatusCollectors();
+    }
+
 
 
 }

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagDataController.java

@@ -85,7 +85,7 @@ public class EartagDataController {
      */
     @RequestMapping("/countByTime")
     public R countByTime(@RequestParam Map<String, Object> params){
-       List list =  eartagDataService.countByTime(params);
+        Map list =  eartagDataService.countByTime(params);
 
         return R.ok().put("data",list);
     }

+ 11 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/FarmStockController.java

@@ -8,6 +8,7 @@ import com.huimv.manager.result.R;
 import com.huimv.manager.service.FarmStockService;
 import com.huimv.manager.utils.PageUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -53,6 +54,16 @@ public class FarmStockController {
          return R.ok().put("page", list);
      }
 
+
+     /*
+     * 定时更新regionStockDay表
+     */
+     @Scheduled(cron = "1 10 * * * ?")
+    public void updateRegionStockDay(){
+         farmStockService.updateRegionStockDay();
+
+    }
+
     /**
      * 信息
      */

+ 85 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/RegionStockDayController.java

@@ -0,0 +1,85 @@
+ package com.huimv.manager.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.huimv.manager.entity.RegionStockDayEntity;
+import com.huimv.manager.result.R;
+import com.huimv.manager.service.RegionStockDayService;
+import com.huimv.manager.utils.PageUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+
+
+
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-05 18:46:23
+ */
+@RestController
+@RequestMapping("management/regionstockday")
+public class RegionStockDayController {
+    @Autowired
+    private RegionStockDayService regionStockDayService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = regionStockDayService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Integer id){
+		RegionStockDayEntity regionStockDay = regionStockDayService.getById(id);
+
+        return R.ok().put("regionStockDay", regionStockDay);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    public R save(@RequestBody RegionStockDayEntity regionStockDay){
+		regionStockDayService.save(regionStockDay);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    public R update(@RequestBody RegionStockDayEntity regionStockDay){
+		regionStockDayService.updateById(regionStockDay);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    public R delete(@RequestBody Integer[] ids){
+		regionStockDayService.removeByIds(Arrays.asList(ids));
+
+        return R.ok();
+    }
+
+}

+ 5 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/CollectorRegisterEntity.java

@@ -26,6 +26,11 @@ public class CollectorRegisterEntity implements Serializable {
     private String deviceCode;
 
     /**
+     * 盒子的芯片编码
+     */
+    private String registeCode;
+
+    /**
      * 地县编码
      */
     private String countyCode;

+ 80 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/RegionStockDayEntity.java

@@ -0,0 +1,80 @@
+package com.huimv.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-05 18:46:23
+ */
+@Data
+@TableName("region_stock_day")
+public class RegionStockDayEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 
+	 */
+	@TableId
+	private Integer id;
+	/**
+	 * 行政区划代码
+	 */
+	private String regionCode;
+	/**
+	 * 行政区划名称
+	 */
+	private String regionName;
+	/**
+	 * 母猪总存栏
+	 */
+	private Integer sowTotalStock;
+	/**
+	 * 母猪新增
+	 */
+	private Integer eartagNew;
+	/**
+	 * 耳标离线
+	 */
+	private Integer eartagOffone;
+	/**
+	 * 能繁母猪存栏
+	 */
+	private Integer sowStock;
+	/**
+	 * 配怀存栏
+	 */
+	private Integer stock1;
+	/**
+	 * 分娩存栏
+	 */
+	private Integer stock2;
+	/**
+	 * 空怀存栏
+	 */
+	private Integer stock3;
+	/**
+	 * 后备存栏
+	 */
+	private Integer stock4;
+	/**
+	 * 公猪存栏
+	 */
+	private Integer stock5;
+	/**
+	 * 日期
+	 */
+	private Integer date;
+	/**
+	 * 上级行政区划代码
+	 */
+	private String parentCode;
+
+}

+ 3 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/vo/EartagDataCountVo.java

@@ -16,4 +16,7 @@ public class EartagDataCountVo {
 
 
     private String countTime;
+
+
+    private Double envTemp;
 }

+ 19 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/RegionStockDayDao.java

@@ -0,0 +1,19 @@
+package com.huimv.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.manager.entity.RegionStockDayEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 
+ * 
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-05 18:46:23
+ */
+@Mapper
+@Repository
+public interface RegionStockDayDao extends BaseMapper<RegionStockDayEntity> {
+	
+}

+ 2 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/CollectorRegisterService.java

@@ -22,5 +22,7 @@ public interface CollectorRegisterService extends IService<CollectorRegisterEnti
     Map countState(Map<String, Object> params);
 
     R selectEveryStatusCollectors(String farmCode);
+
+    R selectPcEveryStatusCollectors();
 }
 

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/EartagDataService.java

@@ -18,7 +18,7 @@ public interface EartagDataService extends IService<EartagDataEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
 
-    List countByTime(Map<String, Object> params);
+    Map countByTime(Map<String, Object> params);
 
 
     void updateDailyData();

+ 4 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/FarmStockService.java

@@ -18,8 +18,12 @@ public interface FarmStockService extends IService<FarmStockEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
 
+    void updateRegionStockDay();
+
     List countAll(Map<String, Object> params);
 
     List cityCountAll(Map<String, Object> params);
+
+//    List cityCountAll(Map<String, Object> params);
 }
 

+ 20 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/RegionStockDayService.java

@@ -0,0 +1,20 @@
+package com.huimv.manager.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.manager.entity.RegionStockDayEntity;
+import com.huimv.manager.utils.PageUtils;
+
+import java.util.Map;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-05 18:46:23
+ */
+public interface RegionStockDayService extends IService<RegionStockDayEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+}
+

+ 67 - 25
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/CollectorRegisterServiceImpl.java

@@ -26,6 +26,8 @@ import com.huimv.manager.entity.CollectorRegisterEntity;
 import com.huimv.manager.service.CollectorRegisterService;
 
 /**
+ * 
+ *
  * @author yinhao
  * @version ${version}
  * @date 2021-07-24 16:29:33
@@ -34,35 +36,47 @@ import com.huimv.manager.service.CollectorRegisterService;
 public class CollectorRegisterServiceImpl extends ServiceImpl<CollectorRegisterDao, CollectorRegisterEntity> implements CollectorRegisterService {
 
 
+
     @Override
     public PageUtils queryPage(Map<String, Object> params) {
         QueryWrapper<CollectorRegisterEntity> wrapper = new QueryWrapper<>();
-        String farmCode = (String) params.get("farmCode");
+        String farmCode = (String)params.get("farmCode");
 //        if (StringUtils.isBlank(farmCode)){
 //            throw new RRException("牧场未选择");
 //        }
-        String registerStartTime = (String) params.get("registerStartTime");
-        String registerEndTime = (String) params.get("registerEndTime");
-        String deviceCode = (String) params.get("deviceCode");
-        String countyName = (String) params.get("countyName");
-        String farmName = (String) params.get("farmName");
-        String state = (String) params.get("acqStatus");
-
-        wrapper.like(StringUtils.isNotBlank(deviceCode), "register.device_code", deviceCode)
-                .or().like(StringUtils.isNotBlank(countyName), "register.county_name", countyName)
-                .or().like(StringUtils.isNotBlank(farmName), "register.farm_name", farmName);
-        wrapper.eq(StringUtils.isNotBlank(farmCode), "register.farm_code", farmCode);
-        if (StringUtils.isNotBlank(state)) {
-            wrapper.eq("state", Integer.parseInt(state));
+        String registerStartTime = (String)params.get("registerStartTime");
+        String registerEndTime = (String)params.get("registerEndTime");
+        String deviceCode = (String)params.get("deviceCode");
+        String countyName = (String)params.get("countyName");
+        String farmName = (String)params.get("farmName");
+        String acqStatus = (String)params.get("acqStatus");
+        String canStatus = (String)params.get("canStatus");
+        String networkStatus = (String)params.get("networkStatus");
+
+        wrapper.like(StringUtils.isNotBlank(deviceCode),"register.device_code",deviceCode);
+        wrapper.like(StringUtils.isNotBlank(countyName),"county_name",countyName);
+        wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
+
+        wrapper.eq(StringUtils.isNotBlank(farmCode),"register.farm_code",farmCode);
+        if (StringUtils.isNotBlank(acqStatus)){
+            wrapper.eq("acq_status",Integer.parseInt(acqStatus));
+        }
+
+        if (StringUtils.isNotBlank(canStatus)){
+            wrapper.eq("can_status",Integer.parseInt(canStatus));
+        }
+
+        if (StringUtils.isNotBlank(networkStatus)){
+            wrapper.eq("network_status",Integer.parseInt(networkStatus));
         }
-        wrapper.le(StringUtils.isNotBlank(registerEndTime), "rregister.egister_time", registerEndTime);
-        wrapper.ge(StringUtils.isNotBlank(registerEndTime), "register.register_time", registerStartTime);
+        wrapper.le(StringUtils.isNotBlank(registerEndTime),"rregister.egister_time",registerEndTime);
+        wrapper.ge(StringUtils.isNotBlank(registerEndTime),"register.register_time",registerStartTime);
 
         wrapper.apply("register.del_status  = 1");
 
-        String sortord = (String) params.get("sortord");
+        String sortord = (String)params.get("sortord");
         wrapper.orderByDesc(sortord);
-        IPage<CollectorRegisterVo> page = baseMapper.page(new Query<>().getPage(params), wrapper);
+        IPage<CollectorRegisterVo> page = baseMapper.page(new Query<>().getPage(params),wrapper);
 
         return new PageUtils(page);
     }
@@ -70,20 +84,20 @@ public class CollectorRegisterServiceImpl extends ServiceImpl<CollectorRegisterD
     @Override
     public Map countState(Map<String, Object> params) {
 
-        String farmCode = (String) params.get("farmCode");
-        if (StringUtils.isBlank(farmCode)) {
+        String farmCode = (String)params.get("farmCode");
+        if (StringUtils.isBlank(farmCode)){
             throw new RRException("牧场未选择");
         }
 
         QueryWrapper<CollectorRegisterEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq("farm_code", farmCode);
+        wrapper.eq("farm_code",farmCode);
 
         List<CollectorRegisterEntity> collectorRegisterEntities = baseMapper.selectList(wrapper);
         Map map = new HashMap();
-        map.put("allCount", collectorRegisterEntities.size());
-        map.put("normalStatus", collectorRegisterEntities.stream().filter(o -> o.getNetworkStatus().equals(1) && o.getAcqStatus().equals(1) && o.getCanStatus().equals(1)).count());
-        map.put("abnormalStatus", collectorRegisterEntities.stream().filter(o -> o.getAcqStatus().equals(0)).count());
-        map.put("cancelStatus", collectorRegisterEntities.stream().filter(o -> o.getCanStatus().equals(0)).count());
+        map.put("allCount",collectorRegisterEntities.size());
+        map.put("normalStatus",collectorRegisterEntities.stream().filter(o->o.getNetworkStatus().equals(1) && o.getAcqStatus().equals(1) && o.getCanStatus().equals(1)).count());
+        map.put( "abnormalStatus",collectorRegisterEntities.stream().filter(o->o.getAcqStatus().equals(0)).count());
+        map.put("cancelStatus",collectorRegisterEntities.stream().filter(o->o.getCanStatus().equals(0)).count());
 
         return map;
     }
@@ -118,4 +132,32 @@ public class CollectorRegisterServiceImpl extends ServiceImpl<CollectorRegisterD
 
         return R.ok().put("data", map);
     }
+
+    @Override
+    public R selectPcEveryStatusCollectors() {
+        LambdaQueryWrapper<CollectorRegisterEntity> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(CollectorRegisterEntity::getDelStatus, Constant.NORMAL);
+
+        Map<String, Integer> map = new LinkedHashMap<>();
+
+        map.put("total", count(lambdaQuery));
+
+        lambdaQuery.eq(CollectorRegisterEntity::getNetworkStatus, Constant.NORMAL)
+                .eq(CollectorRegisterEntity::getAcqStatus, Constant.NORMAL)
+                .eq(CollectorRegisterEntity::getCanStatus, Constant.NORMAL);
+        map.put("normal", count(lambdaQuery));
+
+        lambdaQuery.clear();
+        lambdaQuery.eq(CollectorRegisterEntity::getNetworkStatus, Constant.ABNORMAL)
+                .or().eq(CollectorRegisterEntity::getAcqStatus, Constant.ACQ_ABNORMAL)
+                .eq(CollectorRegisterEntity::getDelStatus, Constant.NORMAL);
+        map.put("abnormal", count(lambdaQuery));
+
+        lambdaQuery.clear();
+        lambdaQuery.eq(CollectorRegisterEntity::getCanStatus, Constant.ABNORMAL)
+                .eq(CollectorRegisterEntity::getDelStatus, Constant.NORMAL);
+        map.put("logout", count(lambdaQuery));
+
+        return R.ok().put("data", map);
+    }
 }

+ 5 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DailyTabulateDataServiceImpl.java

@@ -76,6 +76,7 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
 
         wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
         wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        wrapper.orderByDesc("statistic_date");
 
 
         IPage<DailyTabulateDataEntity> page = this.page(
@@ -186,14 +187,16 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
 
         QueryWrapper<DailyTabulateDataEntity> wrapper1 = new QueryWrapper<>();
 
-        wrapper1.in(farmCodeList != null && farmCodeList.size() >0,"farm_code",farmCodeList).or().eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
+        wrapper1.in(farmCodeList != null && farmCodeList.size() >0,"farm_code",farmCodeList);
+        wrapper1.eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
         wrapper1.eq("statistic_date", DateUtil.beginOfDay(new Date()));
         DailySowVo dailySowVo = baseMapper.counSowAll(wrapper1);
 
 
         wrapper1.clear();
-        wrapper1.in(farmCodeList != null && farmCodeList.size() >0,"farm_code",farmCodeList).or().or().eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
+        wrapper1.in(farmCodeList != null && farmCodeList.size() >0,"farm_code",farmCodeList);
         wrapper1.eq("statistic_date", DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),-1));
+        wrapper1.eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
         DailySowVo yestDayDailySowVo = baseMapper.counSowAll(wrapper1);
         Integer sowTotalStock = dailySowVo.getStockTotal();
         Integer yestdayTotalSowStock = yestDayDailySowVo.getStockTotal();

+ 18 - 4
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagDataServiceImpl.java

@@ -54,20 +54,34 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
     }
 
     @Override
-    public List countByTime(Map<String, Object> params) {
+    public Map countByTime(Map<String, Object> params) {
         String startTime = (String) params.get("startTime");
         String endTime = (String) params.get("endTime");
         String deviceCode = (String) params.get("deviceCode");
 
 
         QueryWrapper<EartagDataEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq("device_code", deviceCode);
+        wrapper.eq(StringUtils.isNotBlank(deviceCode),"device_code", deviceCode);
         wrapper.ge(StringUtils.isNotBlank(startTime), "time", startTime);
         wrapper.le(StringUtils.isNotBlank(endTime), "time", endTime);
         wrapper.groupBy("count_time");
-        List<EartagDataCountVo> list = baseMapper.countByTime(wrapper);
+        List<EartagDataCountVo> eartagDataCountVos = baseMapper.countByTime(wrapper);
+
+        List timeList = new ArrayList();
+        List envTempList = new ArrayList();
+        List count = new ArrayList();
+        for (EartagDataCountVo eartagDataCountVo : eartagDataCountVos) {
+           timeList.add(eartagDataCountVo.getCountTime());
+           envTempList.add(eartagDataCountVo.getEnvTemp());
+           count.add(eartagDataCountVo.getUploadCount());
+        }
+        Map map = new HashMap();
+        map.put("time",timeList);
+        map.put("envTemp",envTempList);
+        map.put("count",count);
+
 
-        return list;
+        return map;
     }
 
 

+ 2 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EnvironmentDataServiceImpl.java

@@ -51,13 +51,13 @@ public class EnvironmentDataServiceImpl extends ServiceImpl<EnvironmentDataDao,
 
         QueryWrapper<EnvironmentDataEntity> wrapper = new QueryWrapper<>();
 //        wrapper.eq(StringUtils.isNotBlank(farmCode),"farm_code",farmCode);
-        wrapper.eq("device_code",deviceCode);
+        wrapper.eq(StringUtils.isNotBlank(deviceCode),"device_code",deviceCode);
         wrapper.ge(StringUtils.isNotBlank(startTime),"acq_date",startTime);
         wrapper.le(StringUtils.isNotBlank(endTime),"acq_date",endTime);
 
 
        wrapper.groupBy("acq");
-        List<EnvironmentDataEntity> environmentDataEntities = baseMapper.selectList(wrapper);
+//        List<EnvironmentDataEntity> environmentDataEntities = baseMapper.selectList(wrapper);
         List<EnvironmentDataVo> list = baseMapper.countEnvironmentTemperature(wrapper);
 
 

+ 464 - 2
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/FarmStockServiceImpl.java

@@ -1,11 +1,15 @@
 package com.huimv.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.manager.entity.BaseRegionEntity;
 import com.huimv.manager.entity.FarmStockEntity;
 import com.huimv.manager.entity.InterfaceRegisterEntity;
+import com.huimv.manager.entity.RegionStockDayEntity;
 import com.huimv.manager.mapper.BaseRegionDao;
 import com.huimv.manager.mapper.FarmStockDao;
+import com.huimv.manager.mapper.RegionStockDayDao;
+import com.huimv.manager.result.R;
 import com.huimv.manager.service.FarmStockService;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.utils.Query;
@@ -19,6 +23,7 @@ import java.util.stream.Stream;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import sun.jvm.hotspot.debugger.Page;
 
 
 /**
@@ -78,12 +83,20 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
 
     @Autowired
     private BaseRegionDao baseRegionDao;
-    @Override
+   /* @Override
     public List countAll(Map<String, Object> params) {
         QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
         List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
 
+
         String countyCode =(String) params.get("countyCode");
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (baseRegionEntity.getRegionCode().equals(countyCode)){
+                if (baseRegionEntity.getParentCode() == null){
+                    countyCode =null;
+                }
+            }
+        }
 
         String farmName = (String) params.get("farmName");
         String minStockTotal =(String) params.get("minStockTotal");
@@ -115,7 +128,7 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
 
 
         List<FarmStockEntity> farmStockEntities = baseMapper.selectList(wrapper);
-        List list = new ArrayList();
+        List<Map> list = new ArrayList();
 
         for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
             if (baseRegionEntity.getParentCode() ==null){
@@ -150,6 +163,10 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
                         map.put("code",regionEntity.getRegionCode());
                         map.put("children",getChildren(regionEntity.getRegionCode(),farmStockEntities,baseRegionEntities));
                         map.put("type",1);
+
+                        RegionStockDayEntity regionStockDayEntity = new RegionStockDayEntity();
+//                        regionStockDayEntity.set
+
                         list.add(map);
                     }
 
@@ -319,5 +336,450 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
             }
         }
         return endList;
+    }*/
+   @Autowired
+   private RegionStockDayDao regionStockDayDao;
+   @Override
+   public void updateRegionStockDay() {
+       QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
+       List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
+
+       QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
+//       wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
+
+       wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
+
+
+       List<FarmStockEntity> farmStockEntities = baseMapper.selectList(wrapper);
+
+       for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+           if (baseRegionEntity.getParentCode() ==null){
+               for (BaseRegionEntity regionEntity : baseRegionEntities) {
+                   if(baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())){
+                       Integer sowTotalStock = 0,eartagNew = 0,eartagOffone =0,sowStock =0,stock1=0,stock2=0,stock3=0,stock4=0,stock5=0;
+
+                       Map map =new HashMap();
+                       for (FarmStockEntity farmStockEntity : farmStockEntities) {
+                           if (farmStockEntity.getCityCode().equals(regionEntity.getRegionCode())){
+                               sowTotalStock += farmStockEntity.getSowTotalStock();
+                               eartagNew += farmStockEntity.getEartagNew();
+                               eartagOffone += farmStockEntity.getEartagOffone();
+                               sowStock += farmStockEntity.getSowStock();
+                               stock1 += farmStockEntity.getStock1();
+                               stock2 += farmStockEntity.getStock2();
+                               stock3 += farmStockEntity.getStock3();
+                               stock4 += farmStockEntity.getStock4();
+                               stock5 += farmStockEntity.getStock5();
+                           }
+                       }
+
+
+                       QueryWrapper<RegionStockDayEntity> regionStockDayEntityQueryWrapper = new QueryWrapper<>();
+                       regionStockDayEntityQueryWrapper.eq("region_code",regionEntity.getRegionCode());
+                       RegionStockDayEntity regionStockDayEntity = regionStockDayDao.selectOne(regionStockDayEntityQueryWrapper);
+                       if (regionStockDayEntity == null){
+                           regionStockDayEntity = new RegionStockDayEntity();
+                       }
+                       regionStockDayEntity.setEartagNew(eartagNew);
+                       regionStockDayEntity.setSowTotalStock(sowTotalStock);
+                       regionStockDayEntity.setEartagOffone(eartagOffone);
+                       regionStockDayEntity.setSowStock(sowStock);
+                       regionStockDayEntity.setStock1(stock1);
+                       regionStockDayEntity.setStock2(stock2);
+                       regionStockDayEntity.setStock3(stock3);
+                       regionStockDayEntity.setStock4(stock4);
+                       regionStockDayEntity.setStock5(stock5);
+                       regionStockDayEntity.setRegionCode(regionEntity.getRegionCode());
+                       regionStockDayEntity.setParentCode(regionEntity.getParentCode());
+                       regionStockDayEntity.setRegionName(regionEntity.getRegionName());
+                       if (regionStockDayEntity.getId() == null){
+                           regionStockDayDao.insert(regionStockDayEntity);
+                       }else {
+                           regionStockDayDao.updateById(regionStockDayEntity);
+                       }
+
+                       cityCountAll();
+
+                   }
+
+               }
+           }
+       }
+
+
+   }
+
+
+
+
+    public void cityCountAll() {
+        QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
+
+        QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
+
+        wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
+
+
+        List<FarmStockEntity> farmStockEntities = baseMapper.selectList(wrapper);
+        List list = new ArrayList();
+
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (baseRegionEntity.getParentCode() ==null){
+                for (BaseRegionEntity regionEntity : baseRegionEntities) {
+                    if(baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())) {
+                        for (BaseRegionEntity regionEntity1 : baseRegionEntities) {
+                            if (regionEntity.getRegionCode().equals(regionEntity1.getParentCode())) {
+                                Integer sowTotalStock = 0, eartagNew = 0, eartagOffone = 0, sowStock = 0, stock1 = 0, stock2 = 0, stock3 = 0, stock4 = 0, stock5 = 0;
+                                for (FarmStockEntity farmStockEntity : farmStockEntities) {
+                                    if (farmStockEntity.getCountyCode().equals(regionEntity1.getRegionCode())) {
+                                        sowTotalStock += farmStockEntity.getSowTotalStock();
+                                        eartagNew += farmStockEntity.getEartagNew();
+                                        eartagOffone += farmStockEntity.getEartagOffone();
+                                        sowStock += farmStockEntity.getSowStock();
+                                        stock1 += farmStockEntity.getStock1();
+                                        stock2 += farmStockEntity.getStock2();
+                                        stock3 += farmStockEntity.getStock3();
+                                        stock4 += farmStockEntity.getStock4();
+                                        stock5 += farmStockEntity.getStock5();
+                                    }
+                                }
+                                QueryWrapper<RegionStockDayEntity> regionStockDayEntityQueryWrapper = new QueryWrapper<>();
+                                regionStockDayEntityQueryWrapper.eq("region_code",regionEntity1.getRegionCode());
+                                RegionStockDayEntity regionStockDayEntity = regionStockDayDao.selectOne(regionStockDayEntityQueryWrapper);
+                                if (regionStockDayEntity == null){
+                                    regionStockDayEntity = new RegionStockDayEntity();
+                                }
+                                regionStockDayEntity.setEartagNew(eartagNew);
+                                regionStockDayEntity.setSowTotalStock(sowTotalStock);
+                                regionStockDayEntity.setEartagOffone(eartagOffone);
+                                regionStockDayEntity.setSowStock(sowStock);
+                                regionStockDayEntity.setStock1(stock1);
+                                regionStockDayEntity.setStock2(stock2);
+                                regionStockDayEntity.setStock3(stock3);
+                                regionStockDayEntity.setStock4(stock4);
+                                regionStockDayEntity.setStock5(stock5);
+                                regionStockDayEntity.setRegionCode(regionEntity1.getRegionCode());
+                                regionStockDayEntity.setParentCode(regionEntity1.getParentCode());
+                                regionStockDayEntity.setRegionName(regionEntity1.getRegionName());
+                                if (regionStockDayEntity.getId() == null){
+                                    regionStockDayDao.insert(regionStockDayEntity);
+                                }else {
+                                    regionStockDayDao.updateById(regionStockDayEntity);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+
+
+    public List countAll11(Map<String, Object> params) {
+
+        String countyCode =(String) params.get("countyCode");
+
+        QueryWrapper<BaseRegionEntity> baseRegionEntityQueryWrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionEntityQueryWrapper);
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (countyCode.equals(baseRegionEntity.getRegionCode())){
+                if (baseRegionEntity.getParentCode() == null){
+                    countyCode = null;
+                    break;
+                }
+            }
+        }
+
+        String minStockTotal =(String) params.get("minStockTotal");
+        String maxStockTotal =(String) params.get("maxStockTotal");
+        String minStockNew =(String) params.get("minStockNew");
+        String maxStockNew =(String) params.get("maxStockNew");
+        String minOfflineNo =(String) params.get("minOfflineNo");
+        String maxOfflineNo =(String) params.get("maxOfflineNo");
+        String minSowStock =(String) params.get("minSowStock");
+        String maxSowStock =(String) params.get("maxSowStock");
+
+        QueryWrapper<RegionStockDayEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"region_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"parent_code",countyCode);
+
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"sow_total_stock",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"sow_total_stock",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"eartag_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"eartag_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"eartag_offone",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"eartag_offone",maxOfflineNo);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        List<RegionStockDayEntity> regionStockDayEntities = regionStockDayDao.selectList(wrapper);
+
+
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (baseRegionEntity.getParentCode() == null){
+                for (RegionStockDayEntity regionStockDayEntity : regionStockDayEntities) {
+                    if (regionStockDayEntity.getParentCode().equals(baseRegionEntity.getRegionCode())){
+
+                    }
+                }
+            }
+        }
+
+
+        return null;
+    }
+
+    @Override
+    public List countAll(Map<String, Object> params) {
+
+        String countyCode =(String) params.get("countyCode");
+
+        QueryWrapper<BaseRegionEntity> baseRegionEntityQueryWrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionEntityQueryWrapper);
+
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (baseRegionEntity.getParentCode()== null){
+                for (BaseRegionEntity regionEntity : baseRegionEntities) {
+                    if (baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())){
+                        for (BaseRegionEntity entity : baseRegionEntities) {
+                            if (regionEntity.getRegionCode().equals(entity.getParentCode())){
+
+                                String regionCode = entity.getRegionCode();
+                                if (regionCode.equals(countyCode)){
+                                  /*  Map map = new HashMap();
+                                    map.put("countyCode",regionCode);
+                                    PageUtils pageUtils = queryPage(map);
+                                    return   pageUtils.getList();*/
+                                    QueryWrapper<RegionStockDayEntity> regionStockDayEntityQueryWrapper = new QueryWrapper<>();
+                                    regionStockDayEntityQueryWrapper.eq("region_code",regionCode);
+                                    RegionStockDayEntity regionStockDayEntity = regionStockDayDao.selectOne(regionStockDayEntityQueryWrapper);
+                                    Map map = new HashMap();
+                                    map.put("code",regionStockDayEntity.getRegionCode());
+                                    map.put("eartagNew",regionStockDayEntity.getEartagNew());
+                                    map.put("eartagOffone",regionStockDayEntity.getEartagOffone());
+                                    map.put("name",regionStockDayEntity.getRegionName());
+                                    map.put("sowStock",regionStockDayEntity.getSowStock());
+                                    map.put("sowTotalStock",regionStockDayEntity.getSowTotalStock());
+                                    map.put("stock1",regionStockDayEntity.getStock1());
+                                    map.put("stock2",regionStockDayEntity.getStock2());
+                                    map.put("stock3",regionStockDayEntity.getStock3());
+                                    map.put("stock4",regionStockDayEntity.getStock4());
+                                    map.put("stock5",regionStockDayEntity.getStock5());
+                                    map.put("children",null);
+                                    map.put("type",2);
+                                    List list = new ArrayList();
+                                    list.add(map);
+                                    return list;
+                                }
+
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (baseRegionEntity.getRegionCode().equals(countyCode)){
+                if (baseRegionEntity.getParentCode() == null){
+                    countyCode = null;
+                    break;
+                }
+            }
+        }
+
+        String minStockTotal =(String) params.get("minStockTotal");
+        String maxStockTotal =(String) params.get("maxStockTotal");
+        String minStockNew =(String) params.get("minStockNew");
+        String maxStockNew =(String) params.get("maxStockNew");
+        String minOfflineNo =(String) params.get("minOfflineNo");
+        String maxOfflineNo =(String) params.get("maxOfflineNo");
+        String minSowStock =(String) params.get("minSowStock");
+        String maxSowStock =(String) params.get("maxSowStock");
+
+        QueryWrapper<RegionStockDayEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"region_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"parent_code",countyCode);
+
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"sow_total_stock",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"sow_total_stock",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"eartag_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"eartag_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"eartag_offone",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"eartag_offone",maxOfflineNo);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        List<RegionStockDayEntity> regionStockDayEntities = regionStockDayDao.selectList(wrapper);
+
+
+        return getChildren(regionStockDayEntities);
+    }
+
+
+    @Override
+    public List cityCountAll(Map<String, Object> params) {
+        String countyCode =(String) params.get("countyCode");
+        QueryWrapper<BaseRegionEntity> baseRegionEntityQueryWrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionEntityQueryWrapper);
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (countyCode.equals(baseRegionEntity.getRegionCode())){
+                if (baseRegionEntity.getParentCode() == null){
+                    countyCode = null;
+                    break;
+                }
+            }
+        }
+
+        String minStockTotal =(String) params.get("minStockTotal");
+        String maxStockTotal =(String) params.get("maxStockTotal");
+        String minStockNew =(String) params.get("minStockNew");
+        String maxStockNew =(String) params.get("maxStockNew");
+        String minOfflineNo =(String) params.get("minOfflineNo");
+        String maxOfflineNo =(String) params.get("maxOfflineNo");
+        String minSowStock =(String) params.get("minSowStock");
+        String maxSowStock =(String) params.get("maxSowStock");
+
+        QueryWrapper<RegionStockDayEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"region_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"parent_code",countyCode);
+
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"sow_total_stock",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"sow_total_stock",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"eartag_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"eartag_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"eartag_offone",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"eartag_offone",maxOfflineNo);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        List<RegionStockDayEntity> regionStockDayEntities = regionStockDayDao.selectList(wrapper);
+
+
+        return getCityChildren(regionStockDayEntities);
+    }
+
+    private List getCityChildren(List<RegionStockDayEntity> regionStockDayEntities) {
+
+        QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
+        List endList = new ArrayList();
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if(baseRegionEntity.getParentCode() == null){
+                for (BaseRegionEntity regionEntity : baseRegionEntities) {
+                    if (baseRegionEntity.getRegionCode().equals(regionEntity.getParentCode())){
+                        for (RegionStockDayEntity regionStockDayEntity : regionStockDayEntities) {
+                            if (regionStockDayEntity.getParentCode().equals(regionEntity.getRegionCode())){
+                                Map map = new HashMap();
+                                map.put("code",regionStockDayEntity.getRegionCode());
+                                map.put("eartagNew",regionStockDayEntity.getEartagNew());
+                                map.put("eartagOffone",regionStockDayEntity.getEartagOffone());
+                                map.put("name",regionStockDayEntity.getRegionName());
+                                map.put("sowStock",regionStockDayEntity.getSowStock());
+                                map.put("sowTotalStock",regionStockDayEntity.getSowTotalStock());
+                                map.put("stock1",regionStockDayEntity.getStock1());
+                                map.put("stock2",regionStockDayEntity.getStock2());
+                                map.put("stock3",regionStockDayEntity.getStock3());
+                                map.put("stock4",regionStockDayEntity.getStock4());
+                                map.put("stock5",regionStockDayEntity.getStock5());
+                                map.put("type",2);
+                                List childreList = new ArrayList();
+                                QueryWrapper<FarmStockEntity> farmStockEntityQueryWrapper = new QueryWrapper<>();
+                                farmStockEntityQueryWrapper.eq("330110",regionStockDayEntity.getRegionCode());
+                                farmStockEntityQueryWrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
+                                List<FarmStockEntity> farmStockEntities = baseMapper.selectList(farmStockEntityQueryWrapper);
+                                for (FarmStockEntity farmStockEntity : farmStockEntities) {
+                                    Map childrMap = new HashMap();
+                                    childrMap.put("code",farmStockEntity.getFarmCode());
+                                    childrMap.put("eartagNew",farmStockEntity.getEartagNew());
+                                    childrMap.put("eartagOffone",farmStockEntity.getEartagOffone());
+                                    childrMap.put("name",farmStockEntity.getFarmName());
+                                    childrMap.put("sowStock",farmStockEntity.getSowStock());
+                                    childrMap.put("sowTotalStock",farmStockEntity.getSowTotalStock());
+                                    childrMap.put("stock1",farmStockEntity.getStock1());
+                                    childrMap.put("stock2",farmStockEntity.getStock2());
+                                    childrMap.put("stock3",farmStockEntity.getStock3());
+                                    childrMap.put("stock4",farmStockEntity.getStock4());
+                                    childrMap.put("stock5",farmStockEntity.getStock5());
+                                    childrMap.put("type",4);
+                                    childrMap.put("children",null);
+                                    childreList.add(childrMap);
+                                }
+
+                                map.put("children",childreList);
+                                endList.add(map);
+                            }
+                      }
+                   }
+                }
+            }
+        }
+
+
+        return  endList;
+
+    }
+
+
+    private List getChildren(List<RegionStockDayEntity> regionStockDayEntities) {
+        QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
+       List endList = new ArrayList();
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if(baseRegionEntity.getParentCode() == null){
+                for (RegionStockDayEntity regionStockDayEntity : regionStockDayEntities) {
+                    if (regionStockDayEntity.getParentCode().equals(baseRegionEntity.getRegionCode())){
+                        Map map = new HashMap();
+                        map.put("code",regionStockDayEntity.getRegionCode());
+                        map.put("eartagNew",regionStockDayEntity.getEartagNew());
+                        map.put("eartagOffone",regionStockDayEntity.getEartagOffone());
+                        map.put("name",regionStockDayEntity.getRegionName());
+                        map.put("sowStock",regionStockDayEntity.getSowStock());
+                        map.put("sowTotalStock",regionStockDayEntity.getSowTotalStock());
+                        map.put("stock1",regionStockDayEntity.getStock1());
+                        map.put("stock2",regionStockDayEntity.getStock2());
+                        map.put("stock3",regionStockDayEntity.getStock3());
+                        map.put("stock4",regionStockDayEntity.getStock4());
+                        map.put("stock5",regionStockDayEntity.getStock5());
+                        map.put("type",1);
+                        List childreList = new ArrayList();
+
+                        for (RegionStockDayEntity stockDayEntity : regionStockDayEntities) {
+                            if (stockDayEntity.getParentCode().equals(regionStockDayEntity.getRegionCode())){
+                                Map childrMap = new HashMap();
+                                childrMap.put("code",stockDayEntity.getRegionCode());
+                                childrMap.put("eartagNew",stockDayEntity.getEartagNew());
+                                childrMap.put("eartagOffone",stockDayEntity.getEartagOffone());
+                                childrMap.put("name",stockDayEntity.getRegionName());
+                                childrMap.put("sowStock",stockDayEntity.getSowStock());
+                                childrMap.put("sowTotalStock",stockDayEntity.getSowTotalStock());
+                                childrMap.put("stock1",stockDayEntity.getStock1());
+                                childrMap.put("stock2",stockDayEntity.getStock2());
+                                childrMap.put("stock3",stockDayEntity.getStock3());
+                                childrMap.put("stock4",stockDayEntity.getStock4());
+                                childrMap.put("stock5",stockDayEntity.getStock5());
+                                childrMap.put("type",2);
+                                childrMap.put("children",null);
+                                childreList.add(childrMap);
+                            }
+                        }
+                        map.put("children",childreList);
+                        endList.add(map);
+                    }
+
+                }
+            }
+        }
+
+
+       return  endList;
     }
 }

+ 34 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/RegionStockDayServiceImpl.java

@@ -0,0 +1,34 @@
+package com.huimv.manager.service.impl;
+
+import com.huimv.manager.entity.RegionStockDayEntity;
+import com.huimv.manager.mapper.RegionStockDayDao;
+import com.huimv.manager.service.RegionStockDayService;
+import com.huimv.manager.utils.PageUtils;
+import com.huimv.manager.utils.Query;
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * 
+ *
+ * @author yinhao
+ * @version ${version}
+ * @date 2021-08-05 18:46:23
+ */
+@Service("regionStockDayService")
+public class RegionStockDayServiceImpl extends ServiceImpl<RegionStockDayDao, RegionStockDayEntity> implements RegionStockDayService {
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<RegionStockDayEntity> page = this.page(
+                new Query<RegionStockDayEntity>().getPage(params),
+                new QueryWrapper<RegionStockDayEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/EartagDataDao.xml

@@ -28,7 +28,7 @@
     </resultMap>
     <select id="countByTime" resultType="com.huimv.manager.entity.vo.EartagDataCountVo">
          SELECT
-          DATE_FORMAT(`time`,"%y-%m-%d %H") count_time,COUNT(*) upload_count
+          DATE_FORMAT(`time`,"%y-%m-%d %H") count_time,COUNT(*) upload_count, CAST(AVG(env_temp) AS DECIMAL(10,2)) envTemp
 	        FROM `eartag_data`
 	        ${ew.customSqlSegment}
     </select>

+ 25 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/RegionStockDayDao.xml

@@ -0,0 +1,25 @@
+<?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.manager.mapper.RegionStockDayDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.huimv.manager.entity.RegionStockDayEntity" id="regionStockDayMap">
+        <result property="id" column="id"/>
+        <result property="regionCode" column="region_code"/>
+        <result property="regionName" column="region_name"/>
+        <result property="sowTotalStock" column="sow_total_stock"/>
+        <result property="eartagNew" column="eartag_new"/>
+        <result property="eartagOffone" column="eartag_offone"/>
+        <result property="sowStock" column="sow_stock"/>
+        <result property="stock1" column="stock1"/>
+        <result property="stock2" column="stock2"/>
+        <result property="stock3" column="stock3"/>
+        <result property="stock4" column="stock4"/>
+        <result property="stock5" column="stock5"/>
+        <result property="date" column="date"/>
+        <result property="parentCode" column="parent_code"/>
+    </resultMap>
+
+
+</mapper>