debug
This commit is contained in:
parent
feeb63fed0
commit
88882831c8
smart-switch-ruoyi/smart-switch-common/src/main/java/com/ruoyi/common/core/domain/entity
smart-switch-service/src/main/java/com/ruoyi/ss/device
|
@ -1,25 +1,25 @@
|
|||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonView;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Sensitive;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.domain.JsonViewProfile;
|
||||
import com.ruoyi.common.core.domain.ValidGroup;
|
||||
import com.ruoyi.common.enums.DesensitizedType;
|
||||
import com.ruoyi.common.utils.RegexpUtils;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 普通用户信息对象 sm_user
|
||||
|
@ -64,6 +64,7 @@ public class SmUser extends BaseEntity
|
|||
@Sensitive(desensitizedType = DesensitizedType.PHONE)
|
||||
@JsonView(JsonViewProfile.App.class)
|
||||
@NotNull(message = "手机号码不允许为空", groups = {ValidGroup.Create.class})
|
||||
@Pattern(regexp = RegexpUtils.MOBILE_PHONE_REGEXP, message = "请输入正确格式的手机号")
|
||||
private String phonenumber;
|
||||
|
||||
/** 出生日期 */
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.ruoyi.ss.device.domain.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
|
@ -13,7 +12,10 @@ import lombok.Getter;
|
|||
public enum DeviceUserOperaType {
|
||||
|
||||
OPEN("1", "开启"),
|
||||
CLOSE("2", "关闭");
|
||||
CLOSE("2", "关闭"),
|
||||
TIME("3", "时长"),
|
||||
ELE("4", "电量"),
|
||||
RESET("5", "归零");
|
||||
|
||||
private final String type;
|
||||
private final String msg;
|
||||
|
|
|
@ -478,17 +478,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
(expire_ele is null) or (total_electri_quantity > expire_time),
|
||||
total_electri_quantity + #{amount},
|
||||
expire_ele + #{amount}
|
||||
)
|
||||
),
|
||||
user_opera_type = '4'
|
||||
where device_id = #{deviceId} and deleted = false
|
||||
</update>
|
||||
|
||||
<update id="addTime">
|
||||
update sm_device
|
||||
set expire_time = IF (
|
||||
(expire_time is null) or (now() > expire_time),
|
||||
DATE_ADD(now(),INTERVAL #{num} SECOND),
|
||||
DATE_ADD(expire_time,INTERVAL #{num} SECOND)
|
||||
)
|
||||
(expire_time is null) or (now() > expire_time),
|
||||
DATE_ADD(now(),INTERVAL #{num} SECOND),
|
||||
DATE_ADD(expire_time,INTERVAL #{num} SECOND)
|
||||
),
|
||||
user_opera_type = '3'
|
||||
where device_id = #{deviceId} and deleted = false
|
||||
</update>
|
||||
|
||||
|
|
|
@ -1166,6 +1166,9 @@ public class DeviceServiceImpl implements DeviceService
|
|||
data.setSurplusEle(BigDecimal.ZERO);
|
||||
data.setExpireEle(device.getTotalElectriQuantity());
|
||||
}
|
||||
data.setUserOperaType(DeviceUserOperaType.RESET.getType());
|
||||
data.setUserOperaEle(device.getTotalElectriQuantity());
|
||||
data.setUserOperaTime(LocalDateTime.now());
|
||||
int update = deviceMapper.updateSmDevice(data);
|
||||
ServiceUtil.assertion(update != 1, "更新设备%s信息失败", device.getDeviceNo());
|
||||
|
||||
|
@ -1315,13 +1318,6 @@ public class DeviceServiceImpl implements DeviceService
|
|||
}
|
||||
DeviceVO device = selectById(deviceId);
|
||||
|
||||
// 若设备剩余电量大于0,则补偿电量充值
|
||||
// if (device.getSurplusEle().compareTo(BigDecimal.ZERO) > 0) {
|
||||
// res = iotService.setEle(device, amount.add(device.getSurplusEle()), reason);
|
||||
// } else {
|
||||
// res = iotService.setEle(device, amount, reason);
|
||||
// }
|
||||
|
||||
return iotService.setEle(device, device.getSurplusEleDb(), reason);
|
||||
}
|
||||
|
||||
|
@ -1362,18 +1358,42 @@ public class DeviceServiceImpl implements DeviceService
|
|||
}
|
||||
|
||||
// 若当前设备数据库的时长并且电量<=0,且在这之后用户没有发open命令,则执行一次同步(关闭)
|
||||
boolean hasOpen = DeviceUserOperaType.OPEN.getType().equals(device.getUserOperaType()); // 是否开启过
|
||||
LocalDateTime lastOperaTime = device.getUserOperaTime(); // 上次开启的时间
|
||||
BigDecimal lastOperaEle = device.getUserOperaEle(); // 上次开启的总用电量
|
||||
// boolean hasOpen = DeviceUserOperaType.OPEN.getType().equals(device.getUserOperaType()); // 是否开启过
|
||||
// LocalDateTime lastOperaTime = device.getUserOperaTime(); // 上次操作的时间
|
||||
// BigDecimal lastOperaEle = device.getUserOperaEle(); // 上次开启的总用电量
|
||||
//
|
||||
//
|
||||
// BigDecimal expireEle = device.getExpireEle(); // 过期电量
|
||||
// boolean hasOperaAfterExpireEle = lastOperaEle != null && ( expireEle == null || lastOperaEle.compareTo(expireEle) > 0); // 是否在结束电量后操作
|
||||
// boolean hasOpenAfterExpireEle = hasOpen && hasOperaAfterExpireEle; // 是否在结束电量后开启
|
||||
// boolean hasEle = device.getSurplusEleDb().compareTo(BigDecimal.ZERO) > 0; // 剩余电量
|
||||
// if (!hasTime && !hasEle && !hasOpenAfterExpireTime && !hasOpenAfterExpireEle && !isClose) {
|
||||
// this.switchDevice(device, DevicePowerStatus.OFF, "设备监控-发现异常未关闭设备");
|
||||
// }
|
||||
|
||||
boolean hasOpenAfterExpireTime = hasOpen && lastOperaTime != null && lastOperaTime.isAfter(device.getExpireTime()); // 是否在时间结束后开启
|
||||
boolean hasTime = device.getSurplusSecondsDb() > 0; // 剩余时间
|
||||
boolean hasOpenAfterExpireEle = hasOpen && lastOperaEle != null && lastOperaEle.compareTo(device.getExpireEle()) > 0; // 是否在结束电量后开启
|
||||
boolean hasEle = device.getSurplusEleDb().compareTo(BigDecimal.ZERO) > 0; // 剩余电量
|
||||
// 根据上一次用户的操作来判断该怎么关闭设备
|
||||
// 若上次操作为充值时间,则判断是否还有剩余时间
|
||||
boolean isClose = DevicePowerStatus.OFF.getStatus().equals(device.getPowerStatus()); // 是否关闭
|
||||
if (!hasTime && !hasEle && !hasOpenAfterExpireTime && !hasOpenAfterExpireEle && !isClose) {
|
||||
this.switchDevice(device, DevicePowerStatus.OFF, "设备监控-发现异常未关闭设备");
|
||||
if (DeviceUserOperaType.TIME.getType().equals(device.getUserOperaType())) {
|
||||
boolean hasTime = device.getSurplusSecondsDb() > 0; // 剩余时间
|
||||
if (!isClose && !hasTime) {
|
||||
this.switchDevice(device, DevicePowerStatus.OFF, "设备监控-发现异常未关闭设备(时长)");
|
||||
}
|
||||
}
|
||||
// 若上次操作为充值电量,则判断是否还有剩余电量
|
||||
else if (DeviceUserOperaType.ELE.getType().equals(device.getUserOperaType())) {
|
||||
boolean hasEle = device.getSurplusEleDb().compareTo(BigDecimal.ZERO) > 0; // 剩余电量
|
||||
if (!isClose && !hasEle) {
|
||||
this.switchDevice(device, DevicePowerStatus.OFF, "设备监控-发现异常未关闭设备(电量)");
|
||||
}
|
||||
}
|
||||
// 若上次操作为归零,则判断是否关闭
|
||||
else if (DeviceUserOperaType.RESET.getType().equals(device.getUserOperaType())) {
|
||||
if (!isClose) {
|
||||
this.switchDevice(device, DevicePowerStatus.OFF, "设备监控-发现异常未关闭设备(归零)");
|
||||
}
|
||||
}
|
||||
|
||||
},0, TimeUnit.SECONDS);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user