فهرست منبع

设备管理,汇总数据,牧场概况

523096025 3 سال پیش
والد
کامیت
5309c85af2
15فایلهای تغییر یافته به همراه406 افزوده شده و 77 حذف شده
  1. 15 14
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BaseFarmInfoController.java
  2. 39 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BasePigpenController.java
  3. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BaseRegionController.java
  4. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java
  5. 2 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagDataController.java
  6. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/EartagOffineController.java
  7. 29 16
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/FarmStockController.java
  8. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/BasePigpenEntity.java
  9. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/BaseRegionDao.java
  10. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/CollectorRegisterDao.java
  11. 9 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/FarmStockDao.java
  12. 5 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/FarmStockService.java
  13. 33 34
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/EartagDataServiceImpl.java
  14. 259 5
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/FarmStockServiceImpl.java
  15. 5 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/mapper/manager/FarmStockDao.xml

+ 15 - 14
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/BaseFarmInfoController.java

@@ -8,24 +8,19 @@ import com.huimv.manager.result.R;
 import com.huimv.manager.service.BaseFarmInfoService;
 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;
+import org.springframework.web.bind.annotation.*;
 
 
-
-
-/**
- * 
- *
- * @author yinhao
- * @version ${version}
- * @date 2021-07-27 14:50:11
- */
+ /**
+  *
+  *
+  * @author yinhao
+  * @version ${version}
+  * @date 2021-07-27 14:50:11
+  */
 @RestController
 @RequestMapping("management/basefarminfo")
+@CrossOrigin
 public class BaseFarmInfoController {
     @Autowired
     private BaseFarmInfoService baseFarmInfoService;
@@ -80,5 +75,11 @@ public class BaseFarmInfoController {
 
         return R.ok();
     }
+    @RequestMapping("/findAll")
+    public R findAll(){
+
+        return R.ok().put("data",baseFarmInfoService.list());
+    }
+
 
 }

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

@@ -1,7 +1,6 @@
  package com.huimv.manager.controller;
 
-import java.util.Arrays;
-import java.util.Map;
+import java.util.*;
 
 import com.huimv.manager.result.R;
 import com.huimv.manager.utils.PageUtils;
@@ -78,4 +77,42 @@ public class BasePigpenController {
         return R.ok();
     }
 
+    @RequestMapping("/listAll")
+    public R countAll(){
+        List endList = new ArrayList();
+        List<BasePigpenEntity> list = basePigpenService.list();
+        for (BasePigpenEntity basePigpenEntity : list) {
+            if (basePigpenEntity.getParentId() ==null){
+                Map map =new HashMap();
+                map.put("id",basePigpenEntity.getId());
+                map.put("farmCode",basePigpenEntity.getFarmCode());
+                map.put("parentId",basePigpenEntity.getParentId());
+                map.put("pigpenName",basePigpenEntity.getPigpenName());
+                map.put("type",basePigpenEntity.getType());
+                map.put("children",getChildren(basePigpenEntity.getId(),list));
+                endList.add(map);
+            }
+
+        }
+        return R.ok().put("page", endList);
+    }
+
+    private List getChildren(Integer id, List<BasePigpenEntity> list) {
+        List endList = new ArrayList();
+        for (BasePigpenEntity basePigpenEntity : list) {
+            if (id.equals( basePigpenEntity.getParentId())){
+                Map map =new HashMap();
+                map.put("id",basePigpenEntity.getId());
+                map.put("farmCode",basePigpenEntity.getFarmCode());
+                map.put("parentId",basePigpenEntity.getParentId());
+                map.put("pigpenName",basePigpenEntity.getPigpenName());
+                map.put("type",basePigpenEntity.getType());
+                map.put("children",getChildren(basePigpenEntity.getId(),list));
+                endList.add(map);
+            }
+        }
+        return  endList;
+    }
+
+
 }

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

@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2021-07-28 10:39:17
  */
 @RestController
-@RequestMapping("management/baseregion")
+@RequestMapping("manager/baseregion")
 public class BaseRegionController {
     @Autowired
     private BaseRegionService baseRegionService;

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

@@ -82,6 +82,9 @@ public class CollectorRegisterController {
     @RequestMapping("/delete")
     public R delete(@RequestBody Integer[] ids){
 
+        if (ids == null || ids.length == 0){
+            return R.error("未选择");
+        }
         for (Integer id : ids) {
             CollectorRegisterEntity  collectorRegisterEntity= collectorRegisterService.getById(id);
             String deviceCode = collectorRegisterEntity.getDeviceCode();

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

@@ -93,8 +93,8 @@ public class EartagDataController {
     /*
     * 获取每日数据统计
     */
-//    @Scheduled(cron = "0 0 0/1 * * ? ")
-    @RequestMapping("/test")
+    @Scheduled(cron = "0 0 0 1/1 * ? ")
+//    @RequestMapping("/test")
     private void updateDailyData(){
         eartagDataService.updateDailyData();
     }

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

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2021-07-27 14:50:11
  */
 @RestController
-@RequestMapping("management/eartagoffine")
+@RequestMapping("manager/eartagoffine")
 public class EartagOffineController {
     @Autowired
     private EartagOffineService eartagOffineService;

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

@@ -1,30 +1,26 @@
  package com.huimv.manager.controller;
 
-import java.util.Arrays;
-import java.util.Map;
+import java.util.*;
 
+import com.huimv.manager.entity.BasePigpenEntity;
 import com.huimv.manager.entity.FarmStockEntity;
 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.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;
+import org.springframework.web.bind.annotation.*;
 
 
-
-/**
- * 
- *
- * @author yinhao
- * @version ${version}
- * @date 2021-07-28 10:39:17
- */
+ /**
+  *
+  *
+  * @author yinhao
+  * @version ${version}
+  * @date 2021-07-28 10:39:17
+  */
 @RestController
-@RequestMapping("management/farmstock")
+@RequestMapping("manager/farmstock")
+@CrossOrigin
 public class FarmStockController {
     @Autowired
     private FarmStockService farmStockService;
@@ -39,6 +35,23 @@ public class FarmStockController {
         return R.ok().put("page", page);
     }
 
+    /**
+     * 全部
+     */
+    @RequestMapping("/countAll")
+    public R countAll(@RequestParam Map<String, Object> params){
+        List list = farmStockService.countAll(params);
+        return R.ok().put("page", list);
+    }
+
+     /**
+      * 市全部
+      */
+     @RequestMapping("/cityCountAll")
+     public R cityCountAll(@RequestParam Map<String, Object> params){
+         List list = farmStockService.cityCountAll(params);
+         return R.ok().put("page", list);
+     }
 
     /**
      * 信息

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

@@ -36,4 +36,6 @@ public class BasePigpenEntity implements Serializable {
      */
     private Integer type;
 
+    private String farmCode;
+
 }

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

@@ -3,6 +3,7 @@ package com.huimv.manager.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.huimv.manager.entity.BaseRegionEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * 
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
  * @date 2021-07-28 10:39:17
  */
 @Mapper
+@Repository
 public interface BaseRegionDao extends BaseMapper<BaseRegionEntity> {
 	
 }

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/CollectorRegisterDao.java

@@ -19,5 +19,5 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface CollectorRegisterDao extends BaseMapper<CollectorRegisterEntity> {
 
-    IPage<CollectorRegisterVo> page(IPage<Object> page,@Param(Constants.WRAPPER) QueryWrapper<CollectorRegisterEntity> wrapper);
+    IPage<CollectorRegisterVo> page(@Param("page")IPage page,@Param(Constants.WRAPPER) QueryWrapper<CollectorRegisterEntity> wrapper);
 }

+ 9 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/mapper/FarmStockDao.java

@@ -1,10 +1,17 @@
 package com.huimv.manager.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.huimv.manager.entity.CollectorRegisterEntity;
 import com.huimv.manager.entity.FarmStockEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Map;
+
 /**
  * 
  * 
@@ -15,5 +22,6 @@ import org.springframework.stereotype.Repository;
 @Mapper
 @Repository
 public interface FarmStockDao extends BaseMapper<FarmStockEntity> {
-	
+
+    IPage<FarmStockEntity> page(@Param("page")IPage page,@Param(Constants.WRAPPER) QueryWrapper<FarmStockEntity> wrapper);
 }

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.manager.entity.FarmStockEntity;
 import com.huimv.manager.utils.PageUtils;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,5 +17,9 @@ import java.util.Map;
 public interface FarmStockService extends IService<FarmStockEntity> {
 
     PageUtils queryPage(Map<String, Object> params);
+
+    List countAll(Map<String, Object> params);
+
+    List cityCountAll(Map<String, Object> params);
 }
 

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

@@ -163,39 +163,40 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             Integer stock1 = 0 ,stock2 = 0,stock3= 0,stock4 = 0,stock5=0;
             for (EartagDataEntity eartagDataEntity : eartagDataEntities) {
                 Integer dayAge = eartagDataEntity.getDayAge2();
-                if (dayAge>250 &&  dayAge < 1000 ){
-                    ratio1++;
+                if (dayAge != null ){
+                    if (dayAge>250 &&  dayAge < 1000 ){
+                        ratio1++;
+                    }
+
+                    if (dayAge >=1000 &&  dayAge < 1700 ){
+                        ratio2++;
+                    }
+
+                    if (dayAge >= 1700 &&  dayAge < 2400 ){
+                        ratio3++;
+                    }
+
+                    if (dayAge >= 2400 ){
+                        ratio4++;
+                    }
+
+                    Integer stage = eartagDataEntity.getStage();
+                    if (stage== 1){
+                        stock1++;
+                    }
+                    if (stage== 2){
+                        stock2++;
+                    }
+                    if (stage== 3){
+                        stock3++;
+                    }
+                    if (stage== 4){
+                        stock4++;
+                    }
+                    if (stage== 5){
+                        stock5++;
+                    }
                 }
-
-                if (dayAge >=1000 &&  dayAge < 1700 ){
-                    ratio2++;
-                }
-
-                if (dayAge >= 1700 &&  dayAge < 2400 ){
-                    ratio3++;
-                }
-
-                if (dayAge >= 2400 ){
-                    ratio4++;
-                }
-
-                Integer stage = eartagDataEntity.getStage();
-                if (stage== 1){
-                    stock1++;
-                }
-                if (stage== 2){
-                    stock2++;
-                }
-                if (stage== 3){
-                    stock3++;
-                }
-                if (stage== 4){
-                    stock4++;
-                }
-                if (stage== 5){
-                    stock5++;
-                }
-
             }
             String ratioStr1 = CalculateUtil(BigDecimal.valueOf(ratio1), BigDecimal.valueOf(allSow));
             String ratioStr2 = CalculateUtil(BigDecimal.valueOf(ratio2),BigDecimal.valueOf(allSow));
@@ -203,8 +204,6 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             String ratioStr4 = CalculateUtil(BigDecimal.valueOf(ratio4),BigDecimal.valueOf(allSow));
 
 
-
-
             //新数据
             QueryWrapper<DailyTabulateDataEntity> dailyWrapper = new QueryWrapper<>();
             dailyWrapper.eq("statistic_date",DateUtil.beginOfDay(now));

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

@@ -1,13 +1,21 @@
 package com.huimv.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.manager.entity.BaseRegionEntity;
 import com.huimv.manager.entity.FarmStockEntity;
+import com.huimv.manager.entity.InterfaceRegisterEntity;
+import com.huimv.manager.mapper.BaseRegionDao;
 import com.huimv.manager.mapper.FarmStockDao;
 import com.huimv.manager.service.FarmStockService;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.utils.Query;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.Map;
+
+import java.util.*;
+import java.util.stream.Collectors;
+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;
@@ -22,10 +30,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service("farmStockService")
 public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEntity> implements FarmStockService {
 
+    @Autowired
+    private FarmStockDao farmStockDao;
+
     @Override
     public PageUtils queryPage(Map<String, Object> params) {
 
-        String county = (String)params.get("county");
+        String countyCode =(String) params.get("countyCode");
+
         String farmName = (String) params.get("farmName");
         String minStockTotal =(String) params.get("minStockTotal");
         String maxStockTotal =(String) params.get("maxStockTotal");
@@ -37,7 +49,8 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
         String maxSowStock =(String) params.get("maxSowStock");
 
         QueryWrapper<FarmStockEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(county),"county_code",county);
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
+
         wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
 
         wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
@@ -51,8 +64,7 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
 
         wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
         wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
-
-
+        wrapper.apply("id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)");
 
 
         IPage<FarmStockEntity> page = this.page(
@@ -63,4 +75,246 @@ public class FarmStockServiceImpl extends ServiceImpl<FarmStockDao, FarmStockEnt
         return new PageUtils(page);
     }
 
+    @Autowired
+    private BaseRegionDao baseRegionDao;
+    @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");
+
+        String farmName = (String) params.get("farmName");
+        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<FarmStockEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
+
+        wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"stock_total",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"stock_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"stock_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"offline_no",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"offline_no",maxOfflineNo);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        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())){
+                        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();
+                            }
+                        }
+                        map.put("sowTotalStock",sowTotalStock);
+                        map.put("eartagNew",eartagNew);
+                        map.put("sowStock",sowStock);
+                        map.put("eartagOffone",eartagOffone);
+                        map.put("stock1",stock1);
+                        map.put("stock2",stock2);
+                        map.put("stock3",stock3);
+                        map.put("stock4",stock4);
+                        map.put("stock5",stock5);
+                        map.put("name",regionEntity.getRegionName());
+                        map.put("code",regionEntity.getRegionCode());
+                        map.put("children",getChildren(regionEntity.getRegionCode(),farmStockEntities,baseRegionEntities));
+                        map.put("type",1);
+                        list.add(map);
+                    }
+
+                }
+            }
+        }
+
+
+        return list;
+    }
+
+    //县级
+    private List getChildren(String cityCode, List<FarmStockEntity> farmStockEntities,List<BaseRegionEntity> baseRegionEntities) {
+
+
+        List endList = new ArrayList();
+        for (BaseRegionEntity baseRegionEntity : baseRegionEntities) {
+            if (cityCode.equals(baseRegionEntity.getParentCode())){
+                String countyCode = baseRegionEntity.getRegionCode();
+
+                Integer sowTotalStock = 0,eartagNew = 0,sowStock =0,eartagOffone =0,stock1=0,stock2=0,stock3=0,stock4=0,stock5=0;
+                Map map =new HashMap();
+                for (FarmStockEntity farmStockEntity : farmStockEntities) {
+                    if (countyCode.equals(farmStockEntity.getCountyCode())){
+                        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();
+                    }
+                }
+                map.put("sowTotalStock",sowTotalStock);
+                map.put("eartagNew",eartagNew);
+                map.put("eartagOffone",eartagOffone);
+                map.put("sowStock",sowStock);
+                map.put("stock1",stock1);
+                map.put("stock2",stock2);
+                map.put("stock3",stock3);
+                map.put("stock4",stock4);
+                map.put("stock5",stock5);
+                map.put("name",baseRegionEntity.getRegionName());
+                map.put("code",baseRegionEntity.getRegionCode());
+                map.put("children",null);
+                map.put("type",2);
+                endList.add(map);
+            }
+        }
+
+        return  endList;
+    }
+
+    @Override
+    public List cityCountAll(Map<String, Object> params) {
+
+        QueryWrapper<BaseRegionEntity> baseRegionwrapper = new QueryWrapper<>();
+        List<BaseRegionEntity> baseRegionEntities = baseRegionDao.selectList(baseRegionwrapper);
+
+        String countyCode =(String) params.get("countyCode");
+
+        String farmName = (String) params.get("farmName");
+        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<FarmStockEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(countyCode),"county_code",countyCode).or().eq(StringUtils.isNotBlank(countyCode),"city_code",countyCode);
+
+        wrapper.like(StringUtils.isNotBlank(farmName),"farm_name",farmName);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockTotal),"stock_total",minStockTotal);
+        wrapper.le(StringUtils.isNotBlank(maxStockTotal),"stock_total",maxStockTotal);
+
+        wrapper.ge(StringUtils.isNotBlank(minStockNew),"stock_new",minStockNew);
+        wrapper.le(StringUtils.isNotBlank(maxStockNew),"stock_new",maxStockNew);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"offline_no",minOfflineNo);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"offline_no",maxOfflineNo);
+
+        wrapper.ge(StringUtils.isNotBlank(minOfflineNo),"sow_stock",minSowStock);
+        wrapper.le(StringUtils.isNotBlank(maxOfflineNo),"sow_stock",maxSowStock);
+        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;
+                                Map map = new HashMap();
+                                for (FarmStockEntity farmStockEntity : farmStockEntities) {
+                                    if (farmStockEntity.getCityCode().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();
+                                    }
+                                }
+                                map.put("sowTotalStock", sowTotalStock);
+                                map.put("eartagNew", eartagNew);
+                                map.put("sowStock", sowStock);
+                                map.put("eartagOffone", eartagOffone);
+                                map.put("stock1", stock1);
+                                map.put("stock2", stock2);
+                                map.put("stock3", stock3);
+                                map.put("stock4", stock4);
+                                map.put("stock5", stock5);
+                                map.put("name", regionEntity1.getRegionName());
+                                map.put("code", regionEntity1.getRegionCode());
+                                map.put("children", getChildren1(regionEntity1, farmStockEntities));
+                                list.add(map);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+        return list;
+    }
+
+    private List getChildren1(BaseRegionEntity regionCode, List<FarmStockEntity> farmStockEntities) {
+        List endList = new ArrayList();
+        for (FarmStockEntity farmStockEntity : farmStockEntities) {
+            Map map = new HashMap();
+            if (regionCode.getRegionCode().equals(farmStockEntity.getCountyCode())){
+                map.put("id", farmStockEntity.getId());
+                map.put("farmCode", farmStockEntity.getFarmCode());
+//                map.put("farmName", farmStockEntity.getFarmName());
+                map.put("month", farmStockEntity.getMonth());
+                map.put("year", farmStockEntity.getYear());
+
+                map.put("sowTotalStock", farmStockEntity.getSowTotalStock());
+                map.put("eartagNew", farmStockEntity.getEartagNew());
+                map.put("sowStock", farmStockEntity.getSowStock());
+                map.put("eartagOffone", farmStockEntity.getEartagOffone());
+                map.put("stock1", farmStockEntity.getStock1());
+                map.put("stock2", farmStockEntity.getStock1());
+                map.put("stock3", farmStockEntity.getStock1());
+                map.put("stock4", farmStockEntity.getStock1());
+                map.put("stock5", farmStockEntity.getStock1());
+                map.put("name", farmStockEntity.getFarmName());
+                map.put("code", regionCode.getRegionCode());
+                map.put("children",null);
+                endList.add(map);
+            }
+        }
+        return endList;
+    }
 }

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

@@ -22,6 +22,11 @@
         <result property="cityCode" column="city_code"/>
         <result property="countyCode" column="county_code"/>
     </resultMap>
+    <select id="page" resultType="com.huimv.manager.entity.FarmStockEntity">
+
+        SELECT * FROM  `farm_stock`  WHERE id IN( SELECT MAX(id) FROM `farm_stock` GROUP BY farm_code)
+
+    </select>
 
 
 </mapper>