Prechádzať zdrojové kódy

2021/8/6 更新数据分析和对接电信平台接口

yinhao 3 rokov pred
rodič
commit
72efd2bbb5
33 zmenil súbory, kde vykonal 476 pridanie a 114 odobranie
  1. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/resources/application-dev.yml
  2. 9 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/Main.java
  3. 5 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/CollectorRegisterController.java
  4. 20 14
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/DailyTabulateDataController.java
  5. 2 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/controller/DataAnalysisController.java
  6. 44 20
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/dto/DataAnalysisDto.java
  7. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/CollectorRegisterService.java
  8. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/DailyTabulateDataService.java
  9. 3 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/DataAnalysisService.java
  10. 61 28
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/CollectorRegisterServiceImpl.java
  11. 25 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DailyTabulateDataServiceImpl.java
  12. 3 2
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/service/impl/DataAnalysisServiceImpl.java
  13. 7 0
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/utils/Constant.java
  14. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/application-dev.yml
  15. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/configuration/InterceptorConfig.java
  16. 54 13
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/controller/PigDataProcessingController.java
  17. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/FarmEartagChangeEntity.java
  18. 4 5
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/BaseForm.java
  19. 33 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/NewAndOffLineForm.java
  20. 4 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/PigStockForm.java
  21. 3 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/vo/ChangeEartagDataVo.java
  22. 28 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/vo/OffLineEartagsVo.java
  23. 2 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/interceptor/JWTInterceptor.java
  24. 4 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/mapper/EartagDataDao.java
  25. 4 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/FarmEartagChangeService.java
  26. 4 2
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/impl/DailyTabulateDataServiceImpl.java
  27. 5 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/impl/EartagDataServiceImpl.java
  28. 79 8
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/impl/FarmEartagChangeServiceImpl.java
  29. 7 7
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/task/DataProcessingTask.java
  30. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/utils/TokenUtil.java
  31. 2 0
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/application-dev.yml
  32. 1 1
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/mapper/transmission/DailyTabulateDataDao.xml
  33. 51 3
      smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/mapper/transmission/EartagDataDao.xml

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-acquisition/src/main/resources/application-dev.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8210
+  port: 9500
 
 spring:
   datasource:

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

@@ -22,9 +22,17 @@ public class Main {
         long cal1 = System.currentTimeMillis();
         //执行代码
         Calendar calendar = Calendar.getInstance();
-        calendar.add(Calendar.MONTH, -1);
         Date time = calendar.getTime();
+        int month = time.getMonth();
+        System.out.println(month);
+//        System.out.println(time);
+        calendar.add(Calendar.MONTH, -1);
+        Date time2 = calendar.getTime();
+//        System.out.println(time2);
+        int i = calendar.get(Calendar.MONTH);
+        System.out.println(i);
         System.out.println(Constant.SDF_YMD.format(time));
+
 //        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 //        //System.out.println(sdf.format(new Date()));
 //        System.out.println(DateUtil.format(new Date(), "yyyy-MM-dd"));

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

@@ -108,6 +108,11 @@ public class CollectorRegisterController {
         return R.ok().put("data", map);
     }
 
+    @GetMapping("/everyStatusCollectors")
+    public R selectEveryStatusCollectors(@RequestParam("farmCode") String farmCode) {
+        return collectorRegisterService.selectEveryStatusCollectors(farmCode);
+    }
+
 
 
 }

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

@@ -1,4 +1,4 @@
- package com.huimv.manager.controller;
+package com.huimv.manager.controller;
 
 import java.util.Arrays;
 import java.util.List;
@@ -32,8 +32,8 @@ public class DailyTabulateDataController {
      * 列表
      */
     @RequestMapping("/listByFarm")
-    public R listByFarm(@RequestParam Map<String, Object> params){
-         DailyTabulateDataEntity dataEntity = dailyTabulateDataService.listByFarm(params);
+    public R listByFarm(@RequestParam Map<String, Object> params) {
+        DailyTabulateDataEntity dataEntity = dailyTabulateDataService.listByFarm(params);
 
         return R.ok().put("page", dataEntity);
     }
@@ -42,7 +42,7 @@ public class DailyTabulateDataController {
      * 列表
      */
     @RequestMapping("/list")
-    public R list(@RequestParam Map<String, Object> params){
+    public R list(@RequestParam Map<String, Object> params) {
         PageUtils page = dailyTabulateDataService.queryPage(params);
 
         return R.ok().put("page", page);
@@ -52,8 +52,8 @@ public class DailyTabulateDataController {
      * 信息
      */
     @RequestMapping("/info/{id}")
-    public R info(@PathVariable("id") Integer id){
-		DailyTabulateDataEntity dailyTabulateData = dailyTabulateDataService.getById(id);
+    public R info(@PathVariable("id") Integer id) {
+        DailyTabulateDataEntity dailyTabulateData = dailyTabulateDataService.getById(id);
 
         return R.ok().put("dailyTabulateData", dailyTabulateData);
     }
@@ -62,8 +62,8 @@ public class DailyTabulateDataController {
      * 保存
      */
     @RequestMapping("/save")
-    public R save(@RequestBody DailyTabulateDataEntity dailyTabulateData){
-		dailyTabulateDataService.save(dailyTabulateData);
+    public R save(@RequestBody DailyTabulateDataEntity dailyTabulateData) {
+        dailyTabulateDataService.save(dailyTabulateData);
 
         return R.ok();
     }
@@ -72,8 +72,8 @@ public class DailyTabulateDataController {
      * 修改
      */
     @RequestMapping("/update")
-    public R update(@RequestBody DailyTabulateDataEntity dailyTabulateData){
-		dailyTabulateDataService.updateById(dailyTabulateData);
+    public R update(@RequestBody DailyTabulateDataEntity dailyTabulateData) {
+        dailyTabulateDataService.updateById(dailyTabulateData);
 
         return R.ok();
     }
@@ -82,8 +82,8 @@ public class DailyTabulateDataController {
      * 删除
      */
     @RequestMapping("/delete")
-    public R delete(@RequestBody Integer[] ids){
-		dailyTabulateDataService.removeByIds(Arrays.asList(ids));
+    public R delete(@RequestBody Integer[] ids) {
+        dailyTabulateDataService.removeByIds(Arrays.asList(ids));
 
         return R.ok();
     }
@@ -92,7 +92,7 @@ public class DailyTabulateDataController {
      * 存栏变化
      */
     @RequestMapping("/countAllChange")
-    public R countAll(@RequestParam Map<String, Object> params){
+    public R countAll(@RequestParam Map<String, Object> params) {
         List list = dailyTabulateDataService.countAllChange(params);
 
         return R.ok().put("page", list);
@@ -102,10 +102,16 @@ public class DailyTabulateDataController {
      * 母猪总存栏等
      */
     @RequestMapping("/countAllsow")
-    public R countAllsow(@RequestParam Map<String, Object> params){
+    public R countAllsow(@RequestParam Map<String, Object> params) {
         Map list = dailyTabulateDataService.countAllsow(params);
 
         return R.ok().put("data", list);
     }
 
+
+    @GetMapping("/everyDaySowStock")
+    public R everydaySowTotalStockByFarmCode(@RequestParam("farmCode") String farmCode) {
+        return dailyTabulateDataService.selectEverydaySowTotalStockByFarmCode(farmCode);
+    }
+
 }

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

@@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.text.ParseException;
 
 
 /**
@@ -26,7 +27,7 @@ public class DataAnalysisController {
     private DataAnalysisService dataAnalysisService;
 
     @PostMapping("/getPigStockByRegionCode")
-    public R getDayPigStockByRegionCode(@Validated @RequestBody DataAnalysisDto dataAnalysisDto) {
+    public R getDayPigStockByRegionCode(@Validated @RequestBody DataAnalysisDto dataAnalysisDto) throws ParseException {
         return dataAnalysisService.getDayPigStockByRegionCode(dataAnalysisDto);
     }
 

+ 44 - 20
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/entity/dto/DataAnalysisDto.java

@@ -1,5 +1,6 @@
 package com.huimv.manager.entity.dto;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.huimv.manager.utils.Constant;
 import lombok.Data;
@@ -7,6 +8,7 @@ import org.apache.commons.lang.StringUtils;
 import org.hibernate.validator.constraints.Range;
 
 import javax.validation.constraints.NotBlank;
+import java.text.ParseException;
 import java.util.Date;
 
 /**
@@ -27,7 +29,7 @@ public class DataAnalysisDto {
 
     private String end;
 
-    @Range(min = 1, max = 3,message = "请传递指定的type参数!")
+    @Range(min = 1, max = 3, message = "请传递指定的type参数!")
     private Integer type;
 
     public String getStart() {
@@ -47,47 +49,69 @@ public class DataAnalysisDto {
     }
 
 
-    public String getDayStart() {
-        if (StringUtils.isEmpty(start)) {
+    public String getDayStart() throws ParseException {
+        if (StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) {
             return Constant.SDF_YMD.format(DateUtil.offsetMonth(DateUtil.date(), -1));
+        } else if (StringUtils.isEmpty(start) && StringUtils.isNotEmpty(end)) {
+            return Constant.SDF_YMD.format(DateUtil.offsetMonth(Constant.SDF_YMD.parse(end), -1));
+        } else {
+            return start;
         }
-        return start;
     }
 
-    public String getDayEnd() {
-        if (StringUtils.isEmpty(end)) {
-            return Constant.SDF_YMD.format(new Date());
+    public String getDayEnd() throws ParseException {
+        Date nowDate = new Date();
+        if (StringUtils.isEmpty(end) && StringUtils.isEmpty(start)) {
+            return Constant.SDF_YMD.format(nowDate);
+        } else if (StringUtils.isEmpty(end) && StringUtils.isNotEmpty(start)) {
+            DateTime time = DateUtil.offsetMonth(Constant.SDF_YMD.parse(start), 1);
+            return time.getTime() > nowDate.getTime() ? Constant.SDF_YMD.format(nowDate) : Constant.SDF_YMD.format(time);
+        } else {
+            return end;
         }
-        return end;
     }
 
-    public String getMonthStart() {
-        if (StringUtils.isEmpty(start)) {
+    public String getMonthStart() throws ParseException {
+        if (StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) {
             return Constant.SDF_YM.format(DateUtil.offsetMonth(new Date(), -12)) + "-01";
+        } else if (StringUtils.isEmpty(start) && StringUtils.isNotEmpty(end)) {
+            return Constant.SDF_YM.format(DateUtil.offsetMonth(Constant.SDF_YM.parse(end), -12)) + "-01";
+        } else {
+            return start + "-01";
         }
-        return start + "-01";
     }
 
-    public String getMonthEnd() {
+    public String getMonthEnd() throws ParseException {
         Date nowDate = new Date();
-        if (StringUtils.isEmpty(end) || end.equals(Constant.SDF_YM.format(nowDate))) {
+        if (Constant.SDF_YM.format(nowDate).equals(end) || (StringUtils.isEmpty(end) && StringUtils.isEmpty(start))) {
             return Constant.SDF_YMD.format(nowDate);
+        } else if (StringUtils.isEmpty(end) && StringUtils.isNotEmpty(start)) {
+            DateTime time = DateUtil.offsetMonth(Constant.SDF_YM.parse(start), 12);
+            return time.getTime() > nowDate.getTime() ? Constant.SDF_YMD.format(nowDate) : Constant.SDF_YMD.format(time);
+        } else {
+            return Constant.SDF_YMD.format(DateUtil.endOfMonth(DateUtil.parse(end, Constant.DATE_FORMAT_YM)));
         }
-        return Constant.SDF_YMD.format(DateUtil.endOfMonth(DateUtil.parse(end, Constant.DATE_FORMAT_YM)));
     }
 
-    public String getYearStart() {
-        if (StringUtils.isEmpty(start)) {
+    public String getYearStart() throws ParseException {
+        if (StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) {
             return DateUtil.offsetMonth(new Date(), -60).year() + "-01-01";
+        } else if (StringUtils.isEmpty(start) && StringUtils.isNotEmpty(end)) {
+            return DateUtil.offsetMonth(Constant.SDF_Y.parse(end), -60).year() + "-01-01";
+        } else {
+            return start + "-01-01";
         }
-        return start + "-01-01";
     }
 
-    public String getYearEnd() {
+    public String getYearEnd() throws ParseException {
         Date nowDate = new Date();
-        if (StringUtils.isEmpty(end) || end.equals(DateUtil.format(nowDate, Constant.DATE_FORMAT_Y))) {
+        if (Constant.SDF_Y.format(nowDate).equals(end) || (StringUtils.isEmpty(end) && StringUtils.isEmpty(start))) {
             return Constant.SDF_YMD.format(nowDate);
+        } else if (StringUtils.isEmpty(end) && StringUtils.isNotEmpty(start)) {
+            DateTime time = DateUtil.offsetMonth(Constant.SDF_Y.parse(start), 60);
+            return time.getTime() > nowDate.getTime() ? Constant.SDF_YMD.format(nowDate) : Constant.SDF_YMD.format(time);
+        } else {
+            return Constant.SDF_YMD.format(DateUtil.endOfYear(DateUtil.parse(end, Constant.DATE_FORMAT_Y)));
         }
-        return Constant.SDF_YMD.format(DateUtil.endOfYear(DateUtil.parse(end, Constant.DATE_FORMAT_Y)));
     }
 }

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

@@ -1,6 +1,7 @@
 package com.huimv.manager.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.manager.result.R;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.entity.CollectorRegisterEntity;
 
@@ -19,5 +20,7 @@ public interface CollectorRegisterService extends IService<CollectorRegisterEnti
     PageUtils queryPage(Map<String, Object> params);
 
     Map countState(Map<String, Object> params);
+
+    R selectEveryStatusCollectors(String farmCode);
 }
 

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

@@ -2,6 +2,7 @@ package com.huimv.manager.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.manager.entity.vo.DailySowVo;
+import com.huimv.manager.result.R;
 import com.huimv.manager.utils.PageUtils;
 import com.huimv.manager.entity.DailyTabulateDataEntity;
 
@@ -24,5 +25,7 @@ public interface DailyTabulateDataService extends IService<DailyTabulateDataEnti
     List countAllChange(Map<String, Object> params);
 
     Map countAllsow(Map<String, Object> params);
+
+    R selectEverydaySowTotalStockByFarmCode(String farmCode);
 }
 

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

@@ -3,6 +3,8 @@ package com.huimv.manager.service;
 import com.huimv.manager.entity.dto.DataAnalysisDto;
 import com.huimv.manager.result.R;
 
+import java.text.ParseException;
+
 /**
  * <p>
  *
@@ -12,7 +14,7 @@ import com.huimv.manager.result.R;
  * @date 2021/7/28 14:16
  */
 public interface DataAnalysisService {
-    R getDayPigStockByRegionCode(DataAnalysisDto dataAnalysisDto);
+    R getDayPigStockByRegionCode(DataAnalysisDto dataAnalysisDto) throws ParseException;
 
     R getChildPigStockByRegionCode(String regionCode);
 }

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

@@ -1,16 +1,21 @@
 package com.huimv.manager.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.manager.entity.vo.CollectorRegisterVo;
 import com.huimv.manager.mapper.CollectorRegisterDao;
+import com.huimv.manager.result.R;
 import com.huimv.manager.result.RRException;
+import com.huimv.manager.utils.Constant;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 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;
@@ -21,8 +26,6 @@ import com.huimv.manager.entity.CollectorRegisterEntity;
 import com.huimv.manager.service.CollectorRegisterService;
 
 /**
- * 
- *
  * @author yinhao
  * @version ${version}
  * @date 2021-07-24 16:29:33
@@ -31,36 +34,35 @@ 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 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));
         }
-        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);
     }
@@ -68,21 +70,52 @@ 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;
     }
+
+    @Override
+    public R selectEveryStatusCollectors(String farmCode) {
+        LambdaQueryWrapper<CollectorRegisterEntity> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(CollectorRegisterEntity::getFarmCode, farmCode)
+                .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::getFarmCode, farmCode)
+                .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::getFarmCode, farmCode)
+                .eq(CollectorRegisterEntity::getCanStatus, Constant.ABNORMAL)
+                .eq(CollectorRegisterEntity::getDelStatus, Constant.NORMAL);
+        map.put("logout", count(lambdaQuery));
+
+        return R.ok().put("data", map);
+    }
 }

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

@@ -1,7 +1,10 @@
 package com.huimv.manager.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.manager.entity.BaseFarmInfoEntity;
 import com.huimv.manager.entity.vo.DailySowVo;
 import com.huimv.manager.entity.vo.DailyVo;
@@ -9,6 +12,7 @@ import com.huimv.manager.mapper.BaseFarmInfoDao;
 import com.huimv.manager.mapper.DailyTabulateDataDao;
 import com.huimv.manager.result.R;
 import com.huimv.manager.result.RRException;
+import com.huimv.manager.utils.Constant;
 import jdk.nashorn.internal.ir.IfNode;
 import net.bytebuddy.implementation.bytecode.Throw;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -215,4 +219,25 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
 
         return map;
     }
+
+
+    @Override
+    public R selectEverydaySowTotalStockByFarmCode(String farmCode) {
+        LambdaQueryWrapper<DailyTabulateDataEntity> lambdaQuery = Wrappers.lambdaQuery();
+        Date today = new Date();
+        lambdaQuery.eq(DailyTabulateDataEntity::getFarmCode, farmCode)
+                .ge(DailyTabulateDataEntity::getStatisticDate, Constant.SDF_YMD.format(DateUtil.offsetDay(today, -7)))
+                .le(DailyTabulateDataEntity::getStatisticDate, Constant.SDF_YMD.format(today));
+
+        List<DailyTabulateDataEntity> list = list(lambdaQuery);
+        List<String> dateList = new ArrayList<>();
+        List<Integer> stockList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(list)) {
+            for (DailyTabulateDataEntity entity : list) {
+                dateList.add(Constant.SDF_MD.format(entity.getStatisticDate()));
+                stockList.add(entity.getStockTotal());
+            }
+        }
+        return Objects.requireNonNull(R.ok().put("dateList", dateList)).put("stockList", stockList);
+    }
 }

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

@@ -17,6 +17,7 @@ import com.huimv.manager.utils.AnalysisConstant;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -38,7 +39,7 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
     private DailyTabulateDataDao dailyTabulateDataDao;
 
     @Override
-    public R getDayPigStockByRegionCode(DataAnalysisDto dataAnalysisDto) {
+    public R getDayPigStockByRegionCode(DataAnalysisDto dataAnalysisDto) throws ParseException {
 
         String regionCode = dataAnalysisDto.getRegionCode();
         BaseRegionEntity baseRegionEntity = selectBaseRegion(regionCode);
@@ -87,7 +88,7 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
         }
     }
 
-    private R buildBackData(DataAnalysisDto dataAnalysisDto, String countField, String typeGroupField) {
+    private R buildBackData(DataAnalysisDto dataAnalysisDto, String countField, String typeGroupField) throws ParseException {
         QueryWrapper<DayStockVo> query = Wrappers.query();
 
 

+ 7 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/java/com/huimv/manager/utils/Constant.java

@@ -139,9 +139,16 @@ public class Constant {
      */
     public static final String DATE_FORMAT_Y = "yyyy";
 
+    public static final String DATE_FORMAT_MD = "MM-dd";
+
     public static final SimpleDateFormat SDF_YMD = new SimpleDateFormat(DATE_FORMAT_YMD);
     public static final SimpleDateFormat SDF_YM = new SimpleDateFormat(DATE_FORMAT_YM);
     public static final SimpleDateFormat SDF_Y = new SimpleDateFormat(DATE_FORMAT_Y);
+    public static final SimpleDateFormat SDF_MD = new SimpleDateFormat(DATE_FORMAT_MD);
+
+    public static final Integer NORMAL = 1;
+    public static final Integer ACQ_ABNORMAL = 2;
+    public static final Integer ABNORMAL = 0;
 
     /**
      * 私钥

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-manager/src/main/resources/application-dev.yml

@@ -3,7 +3,7 @@ server:
 
 spring:
   datasource:
-    url: jdbc:mysql://115.238.57.190:3306/smart_eartag_data_platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://115.238.57.190:3306/smart_eartag_data_platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&&failOverReadOnly=false&serverTimezone=Asia/Shanghai
     username: root
     password: hm123456
     driver-class-name: com.mysql.cj.jdbc.Driver

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/configuration/InterceptorConfig.java

@@ -22,7 +22,7 @@ public class InterceptorConfig implements WebMvcConfigurer {
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(jwtInterceptor()).
-                excludePathPatterns("/getToken").
+                excludePathPatterns("/pig/getAccessToken").
                 excludePathPatterns("/").
                 excludePathPatterns("/*.ico").
                 excludePathPatterns("/js/**").

+ 54 - 13
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/controller/PigDataProcessingController.java

@@ -7,7 +7,6 @@ import com.huimv.transmission.service.DailyTabulateDataService;
 import com.huimv.transmission.service.DataPushService;
 import com.huimv.transmission.service.EartagDataService;
 import com.huimv.transmission.service.FarmEartagChangeService;
-import com.huimv.transmission.utils.Constant;
 import com.huimv.transmission.utils.PageUtils;
 import com.huimv.transmission.utils.TokenUtil;
 import org.apache.commons.codec.binary.Hex;
@@ -24,7 +23,7 @@ import java.util.Date;
 
 /**
  * <p>
- * 数据推送
+ * 电信智慧养殖云平台接口
  * </p>
  *
  * @author yinhao
@@ -48,6 +47,12 @@ public class PigDataProcessingController {
     private FarmEartagChangeService farmEartagChangeService;
 
 
+    /**
+     * 1. 申请 AccessToken 令牌
+     * @param tokenForm
+     * @return
+     * @throws NoSuchAlgorithmException
+     */
     @GetMapping("/getAccessToken")
     public R getAccessToken(@Validated TokenForm tokenForm) throws NoSuchAlgorithmException {
 
@@ -62,6 +67,7 @@ public class PigDataProcessingController {
         String oneSign = Hex.encodeHexString(md.digest(data.getBytes(StandardCharsets.UTF_8)));
         oneSign = oneSign + "zhejiangxumu";
         String twoSign = Hex.encodeHexString(md.digest(oneSign.getBytes(StandardCharsets.UTF_8)));
+        System.out.println(twoSign);
 
         if (!tokenForm.getSign().equals(twoSign)) {
             throw new RRException("签名验证失败!", 10003);
@@ -74,45 +80,80 @@ public class PigDataProcessingController {
         return R.ok().put("accessToken", token).put("expireTime", expireTime);
     }
 
+    /**
+     * 2. 生猪存栏数读取接口
+     * @param pigStockForm
+     * @return
+     */
     @GetMapping("/getPigStock")
     public R getPigStock(PigStockForm pigStockForm) {
         PageUtils page = dailyTabulateDataService.getPigStock(pigStockForm);
         return R.ok().put("resultData", page);
     }
 
-    @GetMapping("/getNewPigStock")
-    public R getNewPigStock(PigStockForm pigStockForm) {
-        PageUtils page = farmEartagChangeService.getChangePigStock(pigStockForm, Constant.NEW_EARTAG_TYPE);
+    /**
+     * 3. 新增生猪耳标号读取接口
+     * @param newAndOffLineForm
+     * @return
+     */
+    @GetMapping("/getNewEartagNo")
+    public R getNewPigStock(NewAndOffLineForm newAndOffLineForm) {
+        PageUtils page = farmEartagChangeService.getChangePigStock(newAndOffLineForm);
         return R.ok().put("resultData", page);
     }
 
-    @GetMapping("/getOffLinePigStock")
-    public R getOffLinePigStock() {
-        PageUtils page = dataPushService.getOffLinePigStock(1, 10);
+    /**
+     * 4. 离线生猪耳标号读取接口
+     * @param newAndOffLineForm
+     * @return
+     */
+    @GetMapping("/getEliminateEartagNo")
+    public R getOffLinePigStock(NewAndOffLineForm newAndOffLineForm) {
+        PageUtils page = farmEartagChangeService.getOffLinePigStock(newAndOffLineForm);
         return R.ok().put("resultData", page);
     }
 
-    @PostMapping("/recive")
-    public void receiveData(@RequestBody String body) {
-        System.out.println(body);
-    }
-
 
+    /**
+     * 5. 智能耳标接口
+     * @param eartagForm
+     * @return
+     */
     @GetMapping("/getEartag")
     public R getEartag(@Validated EartagForm eartagForm) {
         PageUtils page = eartagDataService.getEartag(eartagForm);
         return R.ok().put("resultData", page);
     }
 
+    /**
+     * 6. 耳标明细数据读取接口
+     * @param eartagDetailForm
+     * @return
+     */
     @GetMapping("/getEartagDetails")
     public R getEartagDetails(@Validated EartagDetailForm eartagDetailForm) {
         PageUtils page = eartagDataService.getEartagDetails(eartagDetailForm);
         return R.ok().put("resultData", page);
     }
 
+    /**
+     * 7. 每日存栏统计读取接口
+     * @param baseForm
+     * @return
+     */
     @GetMapping("/getPigStockByDay")
     public R getPigStockByDay(@Validated BaseForm baseForm) {
         PageUtils page = dailyTabulateDataService.getPigStockByDay(baseForm);
         return R.ok().put("resultData", page);
     }
+
+
+    /**
+     * 测试接收推送数据接口
+     * @param body
+     */
+    @PostMapping("/recive")
+    public void receiveData(@RequestBody String body) {
+        System.out.println(body);
+    }
 }

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

@@ -1,5 +1,6 @@
 package com.huimv.transmission.entity;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -13,6 +14,7 @@ import java.io.Serializable;
  * @date 2021/7/26 17:18
  */
 @Data
+@TableName("farm_eartag_change")
 public class FarmEartagChangeEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 4 - 5
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/BaseForm.java

@@ -45,11 +45,10 @@ public class BaseForm {
     }
 
     public Date getEndDate() {
-        Date date = new Date();
-        if (Constant.SDF_YMD.format(endDate).equals(Constant.SDF_YMD.format(date))) {
-            return endDate = date;
-        } else {
-            return DateUtil.offsetDay(endDate, 1);
+        if (endDate != null) {
+            Date date = new Date();
+            return Constant.SDF_YMD.format(endDate).equals(Constant.SDF_YMD.format(date)) ? date : DateUtil.offsetDay(endDate, 1);
         }
+        return null;
     }
 }

+ 33 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/NewAndOffLineForm.java

@@ -0,0 +1,33 @@
+package com.huimv.transmission.entity.form;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/8/3 16:17
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class NewAndOffLineForm extends BaseForm implements Serializable {
+    private static final long serialVersionUID = -5462646837332791519L;
+
+    private Integer stage;
+
+    @Override
+    public Date getStartDate() {
+        return startDate == null ? new Date() : startDate;
+    }
+
+    @Override
+    public Date getEndDate() {
+        return endDate == null ? new Date() : endDate;
+    }
+}

+ 4 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/form/PigStockForm.java

@@ -4,6 +4,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
 
 /**
  * <p>
@@ -27,4 +29,6 @@ public class PigStockForm extends BaseForm implements Serializable {
     public PigStockForm(Integer pageNo, Integer pageSize) {
         super(pageNo, pageSize);
     }
+
+
 }

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

@@ -2,6 +2,8 @@ package com.huimv.transmission.entity.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.annotation.JSONType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -24,6 +26,7 @@ public class ChangeEartagDataVo implements Serializable {
 
     private List<String> newEartagNo;
 
+    @JsonIgnore
     @JSONField(serialize = false)
     private Integer type;
 }

+ 28 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/entity/vo/OffLineEartagsVo.java

@@ -0,0 +1,28 @@
+package com.huimv.transmission.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author yinhao
+ * @date 2021/8/3 14:50
+ */
+@Data
+public class OffLineEartagsVo implements Serializable {
+    private static final long serialVersionUID = 6897456478389794661L;
+
+    /**
+     * 牧场编码
+     */
+    private String farmID;
+    /**
+     * 离线耳标列表
+     */
+    private List<String> eliminateEartagNo;
+}

+ 2 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/interceptor/JWTInterceptor.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.huimv.transmission.result.R;
 import com.huimv.transmission.utils.TokenUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpStatus;
 import org.springframework.web.method.HandlerMethod;
 import org.springframework.web.servlet.HandlerInterceptor;
 
@@ -28,7 +29,7 @@ public class JWTInterceptor implements HandlerInterceptor {
             return true;
         }
 
-        if (response.getStatus() == 404 || response.getStatus() == 500) {
+        if (response.getStatus() == HttpStatus.SC_NOT_FOUND || response.getStatus() == HttpStatus.SC_INTERNAL_SERVER_ERROR) {
             return false;
         }
 

+ 4 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/mapper/EartagDataDao.java

@@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -24,7 +25,9 @@ import java.util.List;
 @Repository
 public interface EartagDataDao extends BaseMapper<EartagDataEntity> {
 
-    List<NewAndOffLineEartagEntity> selectChangeEartagList();
+    List<NewAndOffLineEartagEntity> selectNowDayChangeEartagList();
+
+    IPage<NewAndOffLineEartagEntity> selectChangeEartagList(@Param("page") IPage page, @Param("startDate") Date startDate, @Param("endDate") Date endDate, @Param("farmCode") String farmCode, @Param("stage") Integer stage);
 
     IPage<EartagDataVo> selectByConditions(@Param("page") IPage<EartagDataVo> ipage, @Param(Constants.WRAPPER) LambdaQueryWrapper<EartagDataEntity> lambdaQuery);
 

+ 4 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/FarmEartagChangeService.java

@@ -3,6 +3,7 @@ package com.huimv.transmission.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.huimv.transmission.entity.FarmEartagChangeEntity;
+import com.huimv.transmission.entity.form.NewAndOffLineForm;
 import com.huimv.transmission.entity.form.PigStockForm;
 import com.huimv.transmission.entity.vo.ChangeEartagDataVo;
 import com.huimv.transmission.utils.PageUtils;
@@ -18,5 +19,7 @@ import com.huimv.transmission.utils.PageUtils;
 public interface FarmEartagChangeService extends IService<FarmEartagChangeEntity> {
     IPage<ChangeEartagDataVo> getPigStockByChangeType(Integer currPage, Integer pageSize, Integer type);
 
-    PageUtils getChangePigStock(PigStockForm pigStockForm,Integer type);
+    PageUtils getChangePigStock(NewAndOffLineForm newAndOffLineForm);
+
+    PageUtils getOffLinePigStock(NewAndOffLineForm newAndOffLineForm);
 }

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

@@ -68,9 +68,10 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
         }
 
         LambdaQueryWrapper<DailyTabulateDataEntity> lambdaQuery = Wrappers.lambdaQuery();
-        lambdaQuery.eq(DailyTabulateDataEntity::getFarmCode, farmID)
+        lambdaQuery.eq(StringUtils.isNotEmpty(farmID), DailyTabulateDataEntity::getFarmCode, farmID)
                 .ge(baseForm.getStartDate() != null, DailyTabulateDataEntity::getStatisticDate, baseForm.getStartDate())
-                .le(baseForm.getEndDate() != null, DailyTabulateDataEntity::getStatisticDate, baseForm.getEndDate());
+                .le(baseForm.getEndDate() != null, DailyTabulateDataEntity::getStatisticDate, baseForm.getEndDate())
+                .orderByDesc(DailyTabulateDataEntity::getStatisticDate);
 
         IPage<DayPigStockVo> iPage = new Page<>(baseForm.getPageNo(), baseForm.getPageSize());
         IPage<DayPigStockVo> page = baseMapper.getPigStockByDay(iPage, lambdaQuery);
@@ -88,5 +89,6 @@ public class DailyTabulateDataServiceImpl extends ServiceImpl<DailyTabulateDataD
         IPage<DailyTabulateDataVo> iPage = new Page<>(pigStockForm.getPageNo(), pigStockForm.getPageSize());
         IPage<DailyTabulateDataVo> page = baseMapper.getPigStockPage(iPage, lambdaQuery);
         return new PageUtils(page);
+
     }
 }

+ 5 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/impl/EartagDataServiceImpl.java

@@ -46,7 +46,7 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
     @Override
     @Transactional(rollbackFor = Throwable.class)
     public void handleNewAndOffLineEartag() {
-        List<NewAndOffLineEartagEntity> list = baseMapper.selectChangeEartagList();
+        List<NewAndOffLineEartagEntity> list = baseMapper.selectNowDayChangeEartagList();
         HashSet<String> todaySet = new HashSet<>();
         HashSet<String> todaySetTemp = new HashSet<>();
         HashSet<String> beforeSet = new HashSet<>();
@@ -82,6 +82,10 @@ public class EartagDataServiceImpl extends ServiceImpl<EartagDataDao, EartagData
             if (CollUtil.isNotEmpty(beforeSet)) {
                 farmEartagChangeDao.batchInsertNewEartags(farmCode, 2, beforeSet);
             }
+
+            todaySet.clear();
+            beforeSet.clear();
+            todaySetTemp.clear();
         }
     }
 

+ 79 - 8
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/service/impl/FarmEartagChangeServiceImpl.java

@@ -1,13 +1,18 @@
 package com.huimv.transmission.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.transmission.entity.EartagDataEntity;
 import com.huimv.transmission.entity.FarmEartagChangeEntity;
+import com.huimv.transmission.entity.NewAndOffLineEartagEntity;
+import com.huimv.transmission.entity.form.NewAndOffLineForm;
 import com.huimv.transmission.entity.form.PigStockForm;
 import com.huimv.transmission.entity.vo.ChangeEartagDataVo;
+import com.huimv.transmission.entity.vo.OffLineEartagsVo;
 import com.huimv.transmission.mapper.BaseFarmInfoDao;
 import com.huimv.transmission.mapper.EartagDataDao;
 import com.huimv.transmission.mapper.FarmEartagChangeDao;
@@ -15,9 +20,16 @@ import com.huimv.transmission.service.EartagDataService;
 import com.huimv.transmission.service.FarmEartagChangeService;
 import com.huimv.transmission.utils.PageUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  *
@@ -33,7 +45,7 @@ public class FarmEartagChangeServiceImpl extends ServiceImpl<FarmEartagChangeDao
     private BaseFarmInfoDao baseFarmInfoDao;
 
     @Autowired
-    private EartagDataService eartagDataService;
+    private EartagDataDao eartagDataDao;
 
     @Override
     public IPage<ChangeEartagDataVo> getPigStockByChangeType(Integer currPage, Integer pageSize, Integer type) {
@@ -44,16 +56,75 @@ public class FarmEartagChangeServiceImpl extends ServiceImpl<FarmEartagChangeDao
     }
 
     @Override
-    public PageUtils getChangePigStock(PigStockForm pigStockForm, Integer type) {
-        String farmID = pigStockForm.getFarmID();
+    public PageUtils getChangePigStock(NewAndOffLineForm newAndOffLineForm) {
+
+        IPage<NewAndOffLineEartagEntity> page = selectNewAndOffLineEartags(newAndOffLineForm);
+        List<NewAndOffLineEartagEntity> records = page.getRecords();
+
+        List<ChangeEartagDataVo> collect = records.stream().map(entity -> {
+            ChangeEartagDataVo changeEartagDataVo = new ChangeEartagDataVo();
+            String beforeEartags = entity.getBeforeEartags();
+            String todayEartags = entity.getTodayEartags();
+            List<String> list = buildList(todayEartags, beforeEartags);
+            changeEartagDataVo.setFarmID(entity.getFarmCode());
+            changeEartagDataVo.setNewEartagNo(list);
+            return changeEartagDataVo;
+        }).collect(Collectors.toList());
+
+        IPage<ChangeEartagDataVo> newEartagPage = new Page<>();
+        buildPage(page, newEartagPage);
+        newEartagPage.setRecords(collect);
+
+        return new PageUtils(newEartagPage);
+    }
+
+    @Override
+    public PageUtils getOffLinePigStock(NewAndOffLineForm newAndOffLineForm) {
+
+        IPage<NewAndOffLineEartagEntity> page = selectNewAndOffLineEartags(newAndOffLineForm);
+        List<NewAndOffLineEartagEntity> records = page.getRecords();
+
+        List<OffLineEartagsVo> collect = records.stream().map(entity -> {
+            OffLineEartagsVo offLineEartagsVo = new OffLineEartagsVo();
+            String todayEartags = entity.getTodayEartags();
+            String beforeEartags = entity.getBeforeEartags();
+            List<String> list = buildList(beforeEartags, todayEartags);
+            offLineEartagsVo.setFarmID(entity.getFarmCode());
+            offLineEartagsVo.setEliminateEartagNo(list);
+            return offLineEartagsVo;
+        }).collect(Collectors.toList());
+
+        IPage<OffLineEartagsVo> eliminateEartagPage = new Page<>();
+        buildPage(page, eliminateEartagPage);
+        eliminateEartagPage.setRecords(collect);
+        return new PageUtils(eliminateEartagPage);
+    }
+
+    private IPage<NewAndOffLineEartagEntity> selectNewAndOffLineEartags(NewAndOffLineForm newAndOffLineForm) {
+        String farmID = newAndOffLineForm.getFarmID();
         if (StringUtils.isNotEmpty(farmID)) {
             EartagDataServiceImpl.checkFarmCode(farmID, baseFarmInfoDao);
         }
+        IPage<NewAndOffLineEartagEntity> iPage = new Page<>(newAndOffLineForm.getPageNo(), newAndOffLineForm.getPageSize());
+        return eartagDataDao.selectChangeEartagList(iPage, newAndOffLineForm.getStartDate(), newAndOffLineForm.getEndDate(), newAndOffLineForm.getFarmID(), newAndOffLineForm.getStage());
+    }
+
+    private List<String> buildList(String first, String second) {
+        List<String> list = new ArrayList<>();
+        if (StringUtils.isNotEmpty(first)) {
+            list.addAll(Arrays.asList(first.split(",")));
+        }
+        if (StringUtils.isNotEmpty(second)) {
+            list.removeAll(Arrays.asList(second.split(",")));
+        }
+        return list;
+    }
+
 
-//        LambdaQueryWrapper<FarmEartagChangeEntity> lambdaQuery = Wrappers.lambdaQuery();
-//        lambdaQuery.eq(StringUtils.isNotEmpty(farmID), FarmEartagChangeEntity::getFarmId, farmID)
-//                .ge(pigStockForm.getStartDate() != null,)
-//                .eq(FarmEartagChangeEntity::getChangeType, type)
-        return null;
+    private void buildPage(IPage source, IPage target) {
+        target.setPages(source.getPages());
+        target.setTotal(source.getTotal());
+        target.setCurrent(source.getCurrent());
+        target.setSize(source.getSize());
     }
 }

+ 7 - 7
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/task/DataProcessingTask.java

@@ -27,7 +27,7 @@ import java.nio.charset.Charset;
  * @author yinhao
  * @date 2021/7/27 8:39
  */
-@EnableAsync
+//@EnableAsync
 @Configuration
 public class DataProcessingTask {
 
@@ -38,8 +38,8 @@ public class DataProcessingTask {
     private EartagDataService eartagDataService;
 
 
-    @Async
-    @Scheduled(cron = "0 0 0 * * ?")
+//    @Async
+//    @Scheduled(cron = "0 0 0 * * ?")
     public void getNewEartagList() {
 
         CloseableHttpClient httpClient = null;
@@ -72,8 +72,8 @@ public class DataProcessingTask {
         }
     }
 
-    @Async
-    @Scheduled(cron = "0 0 0 * * ?")
+//    @Async
+//    @Scheduled(cron = "0 0 0 * * ?")
     public void getOffLineEartagList() {
         CloseableHttpClient httpClient = null;
         try {
@@ -119,8 +119,8 @@ public class DataProcessingTask {
         httpClient.execute(httpPost);
     }
 
-    @Async
-    @Scheduled(cron = "0 0 0 * * ?")
+//    @Async
+//    @Scheduled(cron = "0 0 0 * * ?")
     public void pushPigStock() {
 
         CloseableHttpClient httpClient = null;

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/java/com/huimv/transmission/utils/TokenUtil.java

@@ -10,7 +10,7 @@ import java.util.Date;
 
 public class TokenUtil {
 
-    private static final long EXPIRE_TIME =  24L * 60L * 60L * 1000L;  //有效时长
+    private static final long EXPIRE_TIME = 24L * 60L * 60L * 1000L;  //有效时长
     private static final String TOKEN_SECRET = "ben";       // 秘钥
 
     /**

+ 2 - 0
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/application-dev.yml

@@ -24,6 +24,8 @@ spring:
     view:
       prefix: /
       suffix: .html
+#    format:
+#      date: yyyy-MM-dd
   main:
     allow-bean-definition-overriding: true
 #  redis:

+ 1 - 1
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/mapper/transmission/DailyTabulateDataDao.xml

@@ -11,7 +11,7 @@
           statistic_date time,
           stock_total quantity,
           stock_new new_count,
-          offline_no eliminate,
+          offline_no eliminate
         FROM daily_tabulate_data
         ${ew.customSqlSegment}
     </select>

+ 51 - 3
smart.eartag.data.platform/huimv-smart-eartag-data-transmission/src/main/resources/mapper/transmission/EartagDataDao.xml

@@ -39,9 +39,15 @@
             GROUP_CONCAT( DISTINCT ed.eartag_no ) AS today_eartags
             FROM
             eartag_data ed
-            WHERE
-            DATE_FORMAT( ed.time, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
+            WHERE DATE_FORMAT( ed.time, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endDate}, '%Y-%m-%d' )
+            AND DATE_FORMAT( ed.time, '%Y-%m-%d' ) &gt;= DATE_FORMAT( #{startDate}, '%Y-%m-%d' )
             AND farm_code IS NOT NULL
+            <if test="farmCode != null and farmCode != ''">
+                AND farm_code = #{farmCode}
+            </if>
+            <if test="stage != null">
+                AND stage = #{stage}
+            </if>
             GROUP BY
             ed.farm_code
             ) today
@@ -53,7 +59,14 @@
             FROM
             eartag_data ed
             WHERE
-            DATE_FORMAT( ed.time, '%Y-%m-%d' ) &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
+            DATE_FORMAT( ed.time, '%Y-%m-%d' ) &lt; DATE_FORMAT( #{startDate}, '%Y-%m-%d' )
+            AND farm_code IS NOT NULL
+            <if test="farmCode != null and farmCode != ''">
+                AND farm_code = #{farmCode}
+            </if>
+            <if test="stage != null">
+                AND stage = #{stage}
+            </if>
             GROUP BY
             ed.farm_code
             ) old
@@ -100,4 +113,39 @@
     </select>
 
 
+    <select id="selectNowDayChangeEartagList" resultType="com.huimv.transmission.entity.NewAndOffLineEartagEntity">
+        SELECT
+            today.farm_code,
+            today.today_eartags,
+            old.before_eartags
+        FROM
+            (
+            SELECT
+                ed.farm_code,
+                GROUP_CONCAT( DISTINCT ed.eartag_no ) AS today_eartags
+            FROM
+              eartag_data ed
+            WHERE
+              DATE_FORMAT( ed.time, '%Y-%m-%d' ) = DATE_FORMAT( NOW(), '%Y-%m-%d' )
+              AND farm_code IS NOT NULL
+            GROUP BY
+            ed.farm_code
+            ) today
+        LEFT JOIN
+            (
+            SELECT
+              ed.farm_code,
+              GROUP_CONCAT( DISTINCT ed.eartag_no ) AS before_eartags
+            FROM
+              eartag_data ed
+            WHERE
+              DATE_FORMAT( ed.time, '%Y-%m-%d' ) &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
+            AND farm_code IS NOT NULL
+            GROUP BY
+              ed.farm_code
+            ) old
+        ON today.farm_code = old.farm_code
+    </select>
+
+
 </mapper>