|
@@ -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);
|
|
|
}
|
|
|
}
|
|
|
}
|