Quellcode durchsuchen

fix:“优化设备离线提醒功能“

soobin vor 1 Jahr
Ursprung
Commit
7e8631b1bc

+ 6 - 0
src/main/java/com/szwl/controller/IndexController.java

@@ -1502,6 +1502,12 @@ public class IndexController {
         if (eqeStatus != null) {
             equipment.setNetwork(netTime);
             equipment.setEqeStatus(eqeStatus);
+            if (eqeStatus == 0) {
+                equipment.setCabinetTm("");
+                equipment.setCabinetHd("");
+                equipment.setFurnaceTm("");
+                equipment.setFurnaceSp("");
+            }
             equipmentService.updateById(equipment);
         }
         return "修改成功";

+ 66 - 47
src/main/java/com/szwl/service/impl/TEquipmentServiceImpl.java

@@ -256,64 +256,67 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
     public void checkEquipmentStatus() {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getEqeStatus, 1);
+        query.eq(TEquipment::getAdminId, 34);
         List<TEquipment> equipmentList = equipmentService.list(query);
         if (equipmentList.size() > 0) {
             // 获取当前时间,并检查设备状态是否过期
             long nowTime = System.currentTimeMillis();
             for (TEquipment equipment : equipmentList) {
-                // 如果设备的最后刷新时间超过480秒前,则清除设备状态信息,更改为关机状态
-                long updateTime = equipment.getLastUpdateTime().getTime();
-                if (nowTime > updateTime && (nowTime - updateTime) > 480000) {
-                    equipment.setCabinetTm("");
-                    equipment.setCabinetHd("");
-                    equipment.setFurnaceTm("");
-                    equipment.setFurnaceSp("");
-                    equipment.setEqeStatus(0);
-                    equipmentService.updateById(equipment);
-                    // 说明机器没有上传信号,判断为网络不好或者关机,发送信号通知客户 查机器归属国内还是国外
-                    TAdmin admin = adminService.getById(equipment.getAdminId());
-                    String ifForeign = admin.getIfForeign();
-                    // 查询是申泽还是七云的
-                    String companyType = admin.getCompanyType();
-                    LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
-                    wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
-                    TWechat wechat = wechatService.getOne(wechatQuery);
-                    if(wechat != null) {
-                        // 有绑定微信的话发公众号
-                        String openId = wechat.getOpenId();
-                        wechatService.sendNoworkMessage(openId,equipment.getClientId(),equipment.getName(), ifForeign, companyType);
-                        if (ifForeign.equals("1")) {
-                            // 国外再发邮件
-                            String messageReceiver = equipment.getMessageReceiver();
-                            if(StringUtils.isNotEmpty(messageReceiver)) {
-                                String[] split = messageReceiver.split(",");
-                                for (String s : split) {
-                                    WechatSendUtil.sentEmail(s,equipment.getName());
-                                }
-                            } else {
-                                if(StringUtils.isNotEmpty(admin.getEmail())){
-                                    WechatSendUtil.sentEmail(admin.getEmail(),equipment.getName());
+                if (equipment.getModifyDate() != null) {
+                    // 如果设备的最后刷新时间超过480秒前,则清除设备状态信息,更改为关机状态
+                    long updateTime = equipment.getModifyDate().getTime();
+                    if (nowTime > updateTime && (nowTime - updateTime) > 480000) {
+                        equipment.setCabinetTm("");
+                        equipment.setCabinetHd("");
+                        equipment.setFurnaceTm("");
+                        equipment.setFurnaceSp("");
+                        equipment.setEqeStatus(0);
+                        equipmentService.updateById(equipment);
+                        // 说明机器没有上传信号,判断为网络不好或者关机,发送信号通知客户 查机器归属国内还是国外
+                        TAdmin admin = adminService.getById(equipment.getAdminId());
+                        String ifForeign = admin.getIfForeign();
+                        // 查询是申泽还是七云的
+                        String companyType = admin.getCompanyType();
+                        LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
+                        wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
+                        TWechat wechat = wechatService.getOne(wechatQuery);
+                        if(wechat != null) {
+                            // 有绑定微信的话发公众号
+                            String openId = wechat.getOpenId();
+                            wechatService.sendNoworkMessage(openId,equipment.getClientId(),equipment.getName(), ifForeign, companyType);
+                            if (ifForeign.equals("1")) {
+                                // 国外再发邮件
+                                String messageReceiver = equipment.getMessageReceiver();
+                                if(StringUtils.isNotEmpty(messageReceiver)) {
+                                    String[] split = messageReceiver.split(",");
+                                    for (String s : split) {
+                                        WechatSendUtil.sentEmail(s,equipment.getName());
+                                    }
+                                } else {
+                                    if(StringUtils.isNotEmpty(admin.getEmail())){
+                                        WechatSendUtil.sentEmail(admin.getEmail(),equipment.getName());
+                                    }
                                 }
                             }
-                        }
-                    } else {
-                        // 0或空:国内,1:国外
-                        if (ifForeign.equals("0") || ifForeign.equals("")) {
-                            //TODO 国内发短信
                         } else {
-                            // 国外发送邮件
-                            String messageReceiver = equipment.getMessageReceiver();
-                            if(StringUtils.isNotEmpty(messageReceiver)) {
-                                String[] split = messageReceiver.split(",");
-                                for (String s : split) {
-                                    WechatSendUtil.sentEmail(s,equipment.getName());
-                                }
+                            // 0或空:国内,1:国外
+                            if (ifForeign.equals("0") || ifForeign.equals("")) {
+                                //TODO 国内发短信
                             } else {
-                                if(StringUtils.isNotEmpty(admin.getEmail())){
-                                    WechatSendUtil.sentEmail(admin.getEmail(),equipment.getName());
+                                // 国外发送邮件
+                                String messageReceiver = equipment.getMessageReceiver();
+                                if(StringUtils.isNotEmpty(messageReceiver)) {
+                                    String[] split = messageReceiver.split(",");
+                                    for (String s : split) {
+                                        WechatSendUtil.sentEmail(s,equipment.getName());
+                                    }
+                                } else {
+                                    if(StringUtils.isNotEmpty(admin.getEmail())){
+                                        WechatSendUtil.sentEmail(admin.getEmail(),equipment.getName());
+                                    }
                                 }
-                            }
 
+                            }
                         }
                     }
                 }
@@ -321,4 +324,20 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
         }
     }
 
+    /**
+     * 根据经度获取时区
+     * @param currentLon
+     * @return
+     */
+    public static int lateTimeZone(double currentLon) {
+        int timeZone ;
+        int shangValue = (int)(currentLon / 15);
+        double yushuValue =  Math.abs(currentLon % 15);
+        if (yushuValue <= 7.5) {
+            timeZone = shangValue;
+        } else {
+            timeZone = shangValue +(currentLon > 0 ?  1 :-1);
+        }
+        return timeZone;
+    }
 }

+ 3 - 0
src/main/java/com/szwl/util/WechatSendUtil.java

@@ -3,6 +3,7 @@ package com.szwl.util;
 import com.alibaba.fastjson.JSONObject;
 import com.szwl.constant.ConfigConsts;
 import com.szwl.model.utils.MailUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 
 import java.io.BufferedReader;
@@ -13,6 +14,7 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.util.Date;
 
+@Slf4j
 public class WechatSendUtil {
 
     private static final String appId="wxcd5b1b2636c9f611";
@@ -62,6 +64,7 @@ public class WechatSendUtil {
                 stringBuffer.append(line);
             }
             JSONObject jsonObject = JSONObject.parseObject(stringBuffer.toString());
+            log.info("获取token:{}",jsonObject.toString());
             jsonObject.getString("access_token");
             return jsonObject.getString("access_token");