Ver código fonte

修改环控同步设备

523096025 2 anos atrás
pai
commit
a771b1a6b7

+ 3 - 7
huimv-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java

@@ -7,13 +7,6 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.web.client.RestTemplate;
 
-/**
- * @Package : com.huimv.biosafety.uface.controller
- * @Description : TODO
- * @Version : 1.0
- * @Author : ZhuoNing
- * @Create : 2020-12-25
- **/
 @SpringBootApplication
 @MapperScan("com.huimv.admin.mapper")
 @EnableScheduling
@@ -26,4 +19,7 @@ public class HuimvAdminApplication {
     public static RestTemplate getRestTemplate(){
         return new RestTemplate();
     }
+
+
+
 }

+ 2 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/EnvDeviceMapper.java

@@ -20,4 +20,6 @@ import java.util.List;
 @Repository
 public interface EnvDeviceMapper extends BaseMapper<EnvDevice> {
     DeviceDto getCount(@Param("farmId") String farmId);
+
+    List<String>  selectDeviceCodeByfarmId(@Param("farmId") Integer farmId);
 }

+ 25 - 7
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnvDeviceServiceImpl.java

@@ -1,6 +1,8 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.codec.Base64;
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -36,10 +38,9 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.NumberFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -307,7 +308,6 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
     @Transactional
     public Result sync(Map<String, Integer> params) throws Exception {
         Integer farmId = params.get("farmId");
-        this.remove(new QueryWrapper<EnvDevice>().eq("farm_id",farmId));
         //获取所有栏舍
         Map<String, Object> map = new HashMap<String, Object>();
         String s = HttpClientSSLUtils.doPost("https://yzwlw.loongk.com/mobile/login?username=江西增鑫&password=21218cca77804d2ba1922c33e0151105", JSON.toJSONString(map));
@@ -319,9 +319,27 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         headers.add("Authorization",encode);
         HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
         List<DataShacks> shacks = loginDto.getData().getShacks();
-        for (DataShacks shack : shacks) {
-            syncConfig(shack.getId(),requestEntity,farmId);
+        // 不能删除,需做比较
+        List<String> zengXinDeviceId = shacks.stream().map(DataShacks::getId).collect(Collectors.toList());
+        List<String> huatongDeviceId = envDeviceMapper.selectDeviceCodeByfarmId(farmId);
+
+        CopyOnWriteArrayList<String> zengXinDeviceIdCopy = ListUtil.toCopyOnWriteArrayList(zengXinDeviceId);
+        CopyOnWriteArrayList<String> huatongDeviceIdCopy = ListUtil.toCopyOnWriteArrayList(huatongDeviceId);
+        //新增的设备
+        zengXinDeviceIdCopy.removeAll(huatongDeviceId);
+        //新增
+        if (zengXinDeviceIdCopy.size() >0){
+            for (String deviceId : zengXinDeviceIdCopy) {
+                syncConfig(deviceId,requestEntity,farmId);
+            }
+        }
+        //需要删除的设备
+        huatongDeviceIdCopy.removeAll(zengXinDeviceId);
+        if (huatongDeviceIdCopy.size() >0){
+            this.remove(new QueryWrapper<EnvDevice>().in("device_code",huatongDeviceIdCopy));
         }
+        System.out.println("zengxin:"+zengXinDeviceIdCopy);
+        System.out.println(huatongDeviceIdCopy);
         return new Result(10000,"同步成功",false);
     }
 

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

@@ -24,4 +24,9 @@
          from env_device
          where device_status=1 and farm_id=#{farmId}
     </select>
+    <select id="selectDeviceCodeByfarmId" resultType="java.lang.String">
+          select device_code
+         from env_device
+         where farm_id=#{farmId}
+    </select>
 </mapper>