Browse Source

Merge remote-tracking branch 'origin/test' into test

Ritchie 1 year ago
parent
commit
5588807f8a

+ 11 - 4
src/main/java/com/szwl/controller/IndexController.java

@@ -1369,6 +1369,12 @@ public class IndexController {
         if (eqeStatus != null) {
             equipment.setEqeStatus(eqeStatus);
             equipment.setModifyDate(new Date());
+            if (eqeStatus == 0) {
+                equipment.setCabinetTm("0");
+                equipment.setCabinetHd("0");
+                equipment.setFurnaceTm("0");
+                equipment.setFurnaceSp("0");
+            }
             equipmentService.updateById(equipment);
         }
         return "修改成功";
@@ -1399,6 +1405,7 @@ public class IndexController {
         if (eqeStatus != null) {
             equipment.setNetwork(netTime);
             equipment.setEqeStatus(eqeStatus);
+            equipment.setModifyDate(new Date());
             // 查询是否有绑定微信
             LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
             wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
@@ -1417,10 +1424,10 @@ public class IndexController {
                 }
             }
             if (eqeStatus == 0) {
-                equipment.setCabinetTm("");
-                equipment.setCabinetHd("");
-                equipment.setFurnaceTm("");
-                equipment.setFurnaceSp("");
+                equipment.setCabinetTm("0");
+                equipment.setCabinetHd("0");
+                equipment.setFurnaceTm("0");
+                equipment.setFurnaceSp("0");
             }
             equipmentService.updateById(equipment);
         }

+ 9 - 1
src/main/java/com/szwl/controller/ScheduledService.java

@@ -146,13 +146,21 @@ public class ScheduledService {
     }
 
     // 设备状态检测
-    @Scheduled(cron = "0 */30 * * * ?")
+//    @Scheduled(cron = "0 */30 * * * 0")
+    @Scheduled(cron = "0 0,30 * * * *")
     public void checkEquipmentStatus() {
         if (isDo()) {
             equipmentService.checkEquipmentStatus();
         }
     }
 
+    @Scheduled(cron = "0 3,33 * * * *")
+    public void checkAgEquipmentStatus() {
+        if (isDo()) {
+            equipmentService.checkAgEquipmentStatus();
+        }
+    }
+
     /**
      *  定时更新access_token
      */

+ 3 - 9
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -1114,19 +1114,13 @@ public class TEquipmentController {
     }
 
     @ApiOperation(value = "获取机器开关机状态")
-    @PostMapping("/onoffStatus")
-    public ResponseEntity<?> onoffStatus(@RequestBody StatisticsParam param) {
+    @PostMapping("/onOffStatus")
+    public ResponseModel<?> onOffStatus(@RequestBody StatisticsParam param) {
         String equipmentId = param.getEquipmentId();
         Long id = Long.valueOf(equipmentId);
         TEquipment equipments = tEquipmentService.getById(id);
         tEquipmentService.sentMessage(equipments.getClientId(), PushUtils.buildJson("onoffstatus", "0").toString());
-//        PushUtils.push(equipments.getGtClientId(), "", "", PushUtils.buildJson("onoffstatus", "0").toString());
-        return ResponseEntity
-                .status(HttpStatus.OK)
-                .body(new ResultMessage()
-                        .setCode(true)
-                        .setData("SUCCESS")
-                        .setMessage("SUCCESS"));
+        return R.ok();
     }
 
     @ApiOperation(value = "获取所有机器开关机状态")

+ 6 - 0
src/main/java/com/szwl/service/TEquipmentService.java

@@ -35,9 +35,15 @@ public interface TEquipmentService extends MyIService<TEquipment> {
     void checkEquipmentStatus();
 
     /**
+     * 再次检查已发送信号的设备
+     */
+    void checkAgEquipmentStatus();
+
+    /**
      * 通知客户重置花型价格
      * @param adminId
      * @param deviceId
      */
     void informClient(Long adminId, String deviceId);
+
 }

+ 95 - 58
src/main/java/com/szwl/service/impl/TEquipmentServiceImpl.java

@@ -2,19 +2,21 @@ package com.szwl.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.szwl.feign.bean.SyncOldFeign;
+import com.szwl.mapper.TEquipmentMapper;
 import com.szwl.model.bo.R;
 import com.szwl.model.entity.TAdmin;
 import com.szwl.model.entity.TEquipment;
-import com.szwl.mapper.TEquipmentMapper;
+import com.szwl.model.entity.TEquipmentDesc;
 import com.szwl.model.entity.TWechat;
 import com.szwl.model.query.StatisticsParam;
 import com.szwl.model.utils.MailUtil;
 import com.szwl.model.utils.PushUtils;
 import com.szwl.model.utils.YunPianSms;
 import com.szwl.service.TAdminService;
+import com.szwl.service.TEquipmentDescService;
 import com.szwl.service.TEquipmentService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.szwl.service.TWechatService;
 import com.szwl.util.WechatSendUtil;
 import org.apache.commons.lang.StringUtils;
@@ -56,6 +58,9 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
     @Resource
     TEquipmentService equipmentService;
 
+    @Autowired
+    TEquipmentDescService equipmentDescService;
+
     @Resource
     TWechatService wechatService;
 
@@ -230,8 +235,6 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
             equipment.setEndDate(endDate);
             equipment.setFlowers(flowers);
             equipment.setMachineType(machineType);
-//                equipment.setApkVersion();
-//                equipment.setCouponStatus();
             equipment.setCompanyType(companyType);
             equipment.setPaymentType(paymentType);
 
@@ -264,79 +267,113 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
 
     @Override
     public void checkEquipmentStatus() {
+        // 检查处于开机状态的机器
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getEqeStatus, 1);
         List<TEquipment> equipmentList = equipmentService.list(query);
-        if (equipmentList.size() > 0) {
+        if (!equipmentList.isEmpty()) {
             // 获取当前时间,并检查设备状态是否过期
             long nowTime = System.currentTimeMillis();
             for (TEquipment equipment : equipmentList) {
                 if (equipment.getModifyDate() != null) {
                     // 如果设备的最后刷新时间超过480秒前,则清除设备状态信息,更改为关机状态
                     long updateTime = equipment.getModifyDate().getTime();
-                    if (nowTime > updateTime && (nowTime - updateTime) > 720000) {
-                        equipment.setCabinetTm("0");
-                        equipment.setCabinetHd("0");
-                        equipment.setFurnaceTm("0");
-                        equipment.setFurnaceSp("0");
-                        equipment.setEqeStatus(0);
-                        equipmentService.updateById(equipment);
-                        // 说明机器没有上传信号,判断为网络不好或者关机,发送信号通知客户 查机器归属国内还是国外
-                        TAdmin admin = adminService.getById(equipment.getAdminId());
-                        String ifForeign = admin.getIfForeign();
-                        String timeZone = admin.getTimeZone();
-                        timeZone = StringUtils.isEmpty(timeZone) ? "Asia/Shanghai" : timeZone;
-                        // 查询是申泽还是七云的
-                        String companyType = admin.getCompanyType();
-                        LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
-                        wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
-                        TWechat wechat = wechatService.getOne(wechatQuery);
-                        // 设备名称
-                        String name = equipment.getName();
-                        // 如果为空就拿设备编号后六位
-                        if(StringUtils.isEmpty(name)) {
-                            name = equipment.getClientId().substring(equipment.getClientId().length() - 6);
+                    if (nowTime > updateTime && (nowTime - updateTime) > 600000) {
+                        // 发送上传心跳信号
+                        equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("onoffstatus", "0").toString());
+                        // 添加标志
+                        TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+                        if (equipmentDesc != null) {
+                            equipmentDesc.setNote("1");
+                            equipmentDescService.updateById(equipmentDesc);
+                        } else {
+                            TEquipmentDesc newEquipmentDesc = new TEquipmentDesc();
+                            newEquipmentDesc.setEquipmentId(equipment.getId());
+                            newEquipmentDesc.setNote("1");
+                            equipmentDescService.save(newEquipmentDesc);
                         }
-                        if(wechat != null) {
-                            // 有绑定微信的话发公众号
-                            String openId = wechat.getOpenId();
-                            wechatService.sendNetworkMessage(openId,equipment.getClientId(),name, 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, name, timeZone);
-                                    }
-                                } else {
-                                    if(StringUtils.isNotEmpty(admin.getEmail())){
-                                        WechatSendUtil.sentEmail(admin.getEmail(), name, timeZone);
-                                    }
+                    }
+                }
+            }
+        }
+    }
+
+    @Override
+    public void checkAgEquipmentStatus() {
+        LambdaQueryWrapper<TEquipmentDesc> query = Wrappers.lambdaQuery();
+        query.eq(TEquipmentDesc::getNote, "1");
+        List<TEquipmentDesc> list = equipmentDescService.list(query);
+        if (!list.isEmpty()) {
+            // 获取当前时间,并检查设备状态是否过期
+            long nowTime = System.currentTimeMillis();
+            for (TEquipmentDesc equipmentDesc : list) {
+                TEquipment equipment = equipmentService.getById(equipmentDesc.getEquipmentId());
+                long updateTime = equipment.getModifyDate().getTime();
+                if (nowTime > updateTime && (nowTime - updateTime) > 600000) {
+                    // 判断为异常关机或者断网,通知客户
+                    equipment.setCabinetTm("0");
+                    equipment.setCabinetHd("0");
+                    equipment.setFurnaceTm("0");
+                    equipment.setFurnaceSp("0");
+                    equipment.setEqeStatus(0);
+                    equipmentService.updateById(equipment);
+                    // 说明机器没有上传信号,判断为网络不好或者关机,发送信号通知客户 查机器归属国内还是国外
+                    TAdmin admin = adminService.getById(equipment.getAdminId());
+                    String ifForeign = admin.getIfForeign();
+                    String timeZone = admin.getTimeZone();
+                    timeZone = StringUtils.isEmpty(timeZone) ? "Asia/Shanghai" : timeZone;
+                    // 查询是申泽还是七云的
+                    String companyType = admin.getCompanyType();
+                    LambdaQueryWrapper<TWechat> wechatQuery = Wrappers.lambdaQuery();
+                    wechatQuery.eq(TWechat::getAdminId, equipment.getAdminId());
+                    TWechat wechat = wechatService.getOne(wechatQuery);
+                    // 设备名称
+                    String name = equipment.getName();
+                    // 如果为空就拿设备编号后六位
+                    if(StringUtils.isEmpty(name)) {
+                        name = equipment.getClientId().substring(equipment.getClientId().length() - 6);
+                    }
+                    if(wechat != null) {
+                        // 有绑定微信的话发公众号
+                        String openId = wechat.getOpenId();
+                        wechatService.sendNetworkMessage(openId,equipment.getClientId(),name, ifForeign, companyType);
+                        if ("1".equals(ifForeign)) {
+                            // 国外再发邮件
+                            String messageReceiver = equipment.getMessageReceiver();
+                            if(StringUtils.isNotEmpty(messageReceiver)) {
+                                String[] split = messageReceiver.split(",");
+                                for (String s : split) {
+                                    WechatSendUtil.sentEmail(s, name, timeZone);
+                                }
+                            } else {
+                                if(StringUtils.isNotEmpty(admin.getEmail())){
+                                    WechatSendUtil.sentEmail(admin.getEmail(), name, timeZone);
                                 }
                             }
+                        }
+                    } else {
+                        // 0或空:国内,1:国外
+                        if ("0".equals(ifForeign) || ifForeign.isEmpty()) {
+                            //TODO 国内发短信
                         } else {
-                            // 0或空:国内,1:国外
-                            if (ifForeign.equals("0") || ifForeign.isEmpty()) {
-                                //TODO 国内发短信
+                            // 国外发送邮件
+                            String messageReceiver = equipment.getMessageReceiver();
+                            if(StringUtils.isNotEmpty(messageReceiver)) {
+                                String[] split = messageReceiver.split(",");
+                                for (String s : split) {
+                                    WechatSendUtil.sentEmail(s, name, timeZone);
+                                }
                             } else {
-                                // 国外发送邮件
-                                String messageReceiver = equipment.getMessageReceiver();
-                                if(StringUtils.isNotEmpty(messageReceiver)) {
-                                    String[] split = messageReceiver.split(",");
-                                    for (String s : split) {
-                                        WechatSendUtil.sentEmail(s, name, timeZone);
-                                    }
-                                } else {
-                                    if(StringUtils.isNotEmpty(admin.getEmail())){
-                                        WechatSendUtil.sentEmail(admin.getEmail(), name, timeZone);
-                                    }
+                                if(StringUtils.isNotEmpty(admin.getEmail())){
+                                    WechatSendUtil.sentEmail(admin.getEmail(), name, timeZone);
                                 }
-
                             }
+
                         }
                     }
                 }
+                equipmentDesc.setNote("0");
+                equipmentDescService.updateById(equipmentDesc);
             }
         }
     }