From ea94079e74182be590b9fff356c97f522d9a7828 Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期二, 18 十月 2022 09:26:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/LightTimeSynchronizationSchedule.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/LightTimeSynchronizationSchedule.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/LightTimeSynchronizationSchedule.java
new file mode 100644
index 0000000..bd5a5a4
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/LightTimeSynchronizationSchedule.java
@@ -0,0 +1,87 @@
+package com.sandu.ximon.admin.schedule;
+
+import com.alibaba.fastjson.JSONObject;
+import com.sandu.common.util.SpringContextHolder;
+import com.sandu.ximon.admin.service.LightService;
+import com.sandu.ximon.admin.service.LightTaskPoleRelationService;
+import com.sandu.ximon.dao.domain.Light;
+import com.sandu.ximon.dao.domain.LightTask;
+import com.sandu.ximon.dao.domain.LightTaskPoleRelation;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * 鍗曠伅鍚屾鏃堕棿瀹氭椂
+ */
+
+@Component
+@Slf4j
+@AllArgsConstructor
+@EnableScheduling
+public class LightTimeSynchronizationSchedule {
+    private final LightService lightService;
+    private final LightTaskPoleRelationService lightTaskPoleRelationService;
+
+    //姣忓ぉ02:00 寮�濮嬫墽琛�
+    @Scheduled(cron = "0 0 2 * * ? ")
+    public void UserSubjectRefund() {
+        //鎵�鏈夊崟鐏暟鎹�
+        List<Light> lightList = lightService.list();
+
+        //鍗曠伅浠诲姟
+        List<LightTaskPoleRelation> lightTaskPoleRelationList =
+                lightTaskPoleRelationService.list();
+
+        /**
+         * 鍘婚櫎鏃犳晥鏁版嵁
+         */
+        lightTaskPoleRelationList = lightTaskPoleRelationList.stream().filter(bean -> bean.getDeviceScheduled() != null).collect(Collectors.toList());
+
+        Map<String, LightTask> map = new HashMap<>();
+        for (LightTaskPoleRelation bean : lightTaskPoleRelationList) {
+            LightTask lightTask = JSONObject.parseObject(bean.getDeviceScheduled(), LightTask.class);
+            map.put(bean.getDeviceCode() + bean.getLightAddress(), lightTask);
+        }
+
+        for (Light light : lightList) {
+            //TODO
+            if (!light.getDeviceCode().equals("32313243305007ff8711ffff")) {
+                continue;
+            }
+            if (map.get(light.getDeviceCode() + "0001") != null) {
+                /**
+                 * 鍙傛暟1锛氬崟鐏俊鎭�
+                 * 鍙傛暟2锛氬崟鐏换鍔�
+                 */
+                lightService.timeSynchronization(light, "0001", map.get(light.getDeviceCode() + "0001"));
+            } else {
+                /**
+                 * 鍙傛暟1锛氬崟鐏俊鎭�
+                 * 鍙傛暟2锛氫换鍔′负null
+                 */
+                lightService.timeSynchronization(light, "0001", null);
+            }
+
+            if (map.get(light.getDeviceCode() + "0002") != null) {
+                /**
+                 * 鍙傛暟1锛氬崟鐏俊鎭�
+                 * 鍙傛暟2锛氬崟鐏换鍔�
+                 */
+                lightService.timeSynchronization(light, "0002", map.get(light.getDeviceCode() + "0002"));
+            } else {
+                /**
+                 * 鍙傛暟1锛氬崟鐏俊鎭�
+                 * 鍙傛暟2锛氫换鍔′负null
+                 */
+                lightService.timeSynchronization(light, "0002", null);
+            }
+        }
+    }
+}

--
Gitblit v1.9.3