mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
Merge remote-tracking branch 'origin/5.X' into 5.X
This commit is contained in:
commit
aca38a70eb
@ -30,14 +30,14 @@ import org.dromara.common.websocket.utils.WebSocketUtils;
|
||||
import org.dromara.system.domain.bo.SysTenantBo;
|
||||
import org.dromara.system.domain.vo.SysClientVo;
|
||||
import org.dromara.system.domain.vo.SysTenantVo;
|
||||
import org.dromara.system.service.ISysClientService;
|
||||
import org.dromara.system.service.ISysConfigService;
|
||||
import org.dromara.system.service.ISysSocialService;
|
||||
import org.dromara.system.service.ISysTenantService;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.*;
|
||||
import org.dromara.web.domain.bo.EqUserConfigBo;
|
||||
import org.dromara.web.domain.vo.LoginTenantVo;
|
||||
import org.dromara.web.domain.vo.LoginVo;
|
||||
import org.dromara.web.domain.vo.TenantListVo;
|
||||
import org.dromara.web.service.IAuthStrategy;
|
||||
import org.dromara.web.service.IEqUserConfigService;
|
||||
import org.dromara.web.service.SysLoginService;
|
||||
import org.dromara.web.service.SysRegisterService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -63,6 +63,7 @@ import java.util.concurrent.TimeUnit;
|
||||
@RequestMapping("/auth")
|
||||
public class AuthController {
|
||||
|
||||
private final ISysUserService userService;
|
||||
private final SocialProperties socialProperties;
|
||||
private final SysLoginService loginService;
|
||||
private final SysRegisterService registerService;
|
||||
@ -71,6 +72,7 @@ public class AuthController {
|
||||
private final ISysSocialService socialUserService;
|
||||
private final ISysClientService clientService;
|
||||
private final ScheduledExecutorService scheduledExecutorService;
|
||||
private final IEqUserConfigService iEqUserConfigService;
|
||||
|
||||
|
||||
/**
|
||||
@ -103,7 +105,7 @@ public class AuthController {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
scheduledExecutorService.schedule(() -> {
|
||||
WebSocketMessageDto dto = new WebSocketMessageDto();
|
||||
dto.setMessage("欢迎登录RuoYi-Vue-Plus后台管理系统");
|
||||
dto.setMessage("欢迎登录莫克后台管理系统");
|
||||
dto.setSessionKeys(List.of(userId));
|
||||
WebSocketUtils.publishMessage(dto);
|
||||
}, 3, TimeUnit.SECONDS);
|
||||
@ -185,6 +187,15 @@ public class AuthController {
|
||||
return R.fail("当前系统没有开启注册功能!");
|
||||
}
|
||||
registerService.register(user);
|
||||
SysUserVo sysUserVo = userService.selectUserByUserName(user.getUsername());
|
||||
EqUserConfigBo bo = new EqUserConfigBo();
|
||||
bo.setUserId(sysUserVo.getUserId());
|
||||
bo.setLanguageType("zh-CN");
|
||||
bo.setTimezoneType("1");//默认 UTC+08:00
|
||||
bo.setTimeFormat("YYYY-MM-DD");
|
||||
bo.setCreateBy(sysUserVo.getUserId());
|
||||
bo.setUpdateBy(sysUserVo.getUserId());
|
||||
iEqUserConfigService.insertByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@ -1,8 +1,12 @@
|
||||
package org.dromara.web.controller.app;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MessageUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
@ -19,8 +23,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* app 设备业务
|
||||
@ -34,6 +42,10 @@ import java.util.Date;
|
||||
@RequestMapping("/app/device")
|
||||
public class EqDeviceController extends BaseController {
|
||||
|
||||
private final HttpServletRequest request;
|
||||
|
||||
|
||||
|
||||
private final IEqAreaService eqAreaService;
|
||||
|
||||
private final IEqEquipmentService eqEquipmentService;
|
||||
@ -101,13 +113,38 @@ public class EqDeviceController extends BaseController {
|
||||
* 获取日志
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
* @return todo
|
||||
*/
|
||||
@GetMapping("/getDeviceLogs")
|
||||
public TableDataInfo<EqEquipmentLogVo> getDeviceLogs(EqAppHomeBo bo,PageQuery pageQuery){
|
||||
public Map<String, List<EqEquipmentLogVo>> getDeviceLogs(EqAppHomeBo bo,PageQuery pageQuery){
|
||||
if (bo.getEquipmentId() == null) throw new ServiceException("设备ID不能为空");
|
||||
if (bo.getZoneId() == null) throw new ServiceException("时区zoneId(如 UTC+08:00)不能为空");
|
||||
EqEquipmentLogBo eqEquipmentLogBo = new EqEquipmentLogBo();
|
||||
eqEquipmentLogBo.setEquipmentId(bo.getEquipmentId());
|
||||
return logService.queryPageList(eqEquipmentLogBo, pageQuery);
|
||||
TableDataInfo<EqEquipmentLogVo> data = logService.queryPageList(eqEquipmentLogBo, pageQuery);
|
||||
List<EqEquipmentLogVo> rows = data.getRows();
|
||||
if (CollUtil.isEmpty(rows)) return new HashMap<>();
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String defaultZone = "UTC+08:00";
|
||||
String targetZone = bo.getZoneId();
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
List<EqEquipmentLogVo> rowsData = rows.stream().peek(x -> {
|
||||
Integer status = x.getStatus();
|
||||
x.setLogStatus(MessageUtils.message("logStatus.name" + status));
|
||||
if(defaultZone.equals(targetZone)){
|
||||
String dateTimeStr = simpleDateFormat.format(x.getCreateTime());
|
||||
LocalDateTime localDateTime = LocalDateTime.parse(dateTimeStr, formatter);
|
||||
ZoneId utc08 = ZoneId.of(defaultZone);// 默认指定原始时区UTC+08:00
|
||||
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, utc08);// 转换为ZonedDateTime对象
|
||||
ZoneId utc = ZoneId.of(targetZone);
|
||||
String targetUtc = formatter.format(zonedDateTime.withZoneSameInstant(utc));
|
||||
x.setCreatedYearSecond(targetUtc);
|
||||
x.setCreatedYearDay(targetUtc.split(" ")[0]);
|
||||
x.setCreatedYearSecond(targetUtc.split(" ")[1]);
|
||||
//zc 字典中数据多语言按照录入
|
||||
}
|
||||
}).toList();
|
||||
return rowsData.stream().collect(Collectors.groupingBy(EqEquipmentLogVo::getCreatedYearDay));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -4,14 +4,12 @@ import cn.dev33.satoken.secure.BCrypt;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MessageUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.web.config.CommonYmlConfig;
|
||||
import org.dromara.web.domain.bo.*;
|
||||
import org.dromara.web.domain.vo.*;
|
||||
import org.dromara.web.service.*;
|
||||
@ -19,7 +17,6 @@ import org.dromara.web.domain.bo.EqAppHomeBo;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@ -39,10 +36,17 @@ public class EqHomeController extends BaseController {
|
||||
|
||||
private final IEqEquipmentService eqEquipmentService;
|
||||
|
||||
private final IEqEquipmentLogService logService;
|
||||
|
||||
private final IEqShareService shareService;
|
||||
private final ISysUserService userService;
|
||||
private final IEqUserConfigService eqUserConfigService;
|
||||
|
||||
/**
|
||||
* 获取用户配置
|
||||
*/
|
||||
@GetMapping("/userConfig")
|
||||
public R<EqUserConfigVo> userConfig() {
|
||||
return R.ok(eqUserConfigService.userConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询家庭主体
|
||||
@ -126,50 +130,7 @@ public class EqHomeController extends BaseController {
|
||||
return R.ok(BCrypt.checkpw(bo.getPassword(), sysUserVo.getPassword()));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
/** todo
|
||||
* 设备状态实时获取
|
||||
* @param bo
|
||||
* @return
|
||||
*//*
|
||||
|
||||
@GetMapping("/getDeviceStatus")
|
||||
public R<EqEquipmentStatusVo> getDeviceStatus(EqAppHomeBo bo){
|
||||
EqEquipmentStatusVo result = new EqEquipmentStatusVo();
|
||||
|
||||
|
||||
return R.ok(result);
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
/**
|
||||
* 获取日志
|
||||
* @param bo
|
||||
* @param pageQuery
|
||||
* @return
|
||||
*//*
|
||||
|
||||
@GetMapping("/getDeviceLogs")
|
||||
public TableDataInfo<EqEquipmentLogVo> getDeviceLogs(EqAppHomeBo bo,PageQuery pageQuery){
|
||||
EqEquipmentLogBo eqEquipmentLogBo = new EqEquipmentLogBo();
|
||||
eqEquipmentLogBo.setEquipmentId(bo.getEquipmentId());
|
||||
return logService.queryPageList(eqEquipmentLogBo, pageQuery);
|
||||
}
|
||||
|
||||
*/
|
||||
/**
|
||||
* 保存日志
|
||||
* @param eqEquipmentLogBo
|
||||
*//*
|
||||
|
||||
@GetMapping("/saveDeviceLogs")
|
||||
public void saveDeviceLogs(EqEquipmentLogBo eqEquipmentLogBo){
|
||||
logService.insertByBo(eqEquipmentLogBo);
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -35,17 +35,17 @@ public class EqUserConfig extends BaseEntity {
|
||||
/**
|
||||
* 时区类型
|
||||
*/
|
||||
private Integer timezoneType;
|
||||
private String timezoneType;
|
||||
|
||||
/**
|
||||
* 时间格式
|
||||
*/
|
||||
private Integer timeFormat;
|
||||
private String timeFormat;
|
||||
|
||||
/**
|
||||
* 语言种类
|
||||
*/
|
||||
private Integer languageType;
|
||||
private String languageType;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -36,5 +36,10 @@ public class EqAppHomeBo extends BaseEntity{
|
||||
* 密码(密码校验时使用)
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 时区zoneId 用于日志 (传入字典eq_timezone_type 中的remark值 如:UTC+08:00)
|
||||
*/
|
||||
private String zoneId;
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
* 状态 eq_status_log_type
|
||||
* 0.停止中 stop
|
||||
* 1.关闭中 closing
|
||||
* 2.开启中 openning
|
||||
@ -76,6 +76,8 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer status;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 故障状态
|
||||
* 10.无异常 none
|
||||
@ -119,6 +121,4 @@ public class EqEquipmentLogBo extends BaseEntity {
|
||||
*/
|
||||
@NotNull(message = "星期几不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer dayOfWeek;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -36,19 +36,19 @@ public class EqUserConfigBo extends BaseEntity {
|
||||
* 时区类型
|
||||
*/
|
||||
@NotNull(message = "时区类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer timezoneType;
|
||||
private String timezoneType;
|
||||
|
||||
/**
|
||||
* 时间格式
|
||||
*/
|
||||
@NotNull(message = "时间格式不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer timeFormat;
|
||||
private String timeFormat;
|
||||
|
||||
/**
|
||||
* 语言种类
|
||||
*/
|
||||
@NotNull(message = "语言种类不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer languageType;
|
||||
private String languageType;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -72,6 +72,7 @@ public class EqEquipmentDetailVo implements Serializable {
|
||||
* 80.打开80%
|
||||
* 90.打开90%
|
||||
* 100.打开100%
|
||||
* 故障状态
|
||||
*/
|
||||
private String openStatusText;
|
||||
|
||||
|
||||
@ -55,12 +55,41 @@ public class EqEquipmentLogVo implements Serializable {
|
||||
private String equipmentCode;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
* 状态 eq_status_log_type
|
||||
* 0.停止中 stop
|
||||
* 1.关闭中 closing
|
||||
* 2.开启中 openning
|
||||
*
|
||||
* 10.无异常 none
|
||||
* 11.红外故障 irException
|
||||
* 12.电机运转故障 motorRunException
|
||||
* 13.电机维护故障 motorMaintainException
|
||||
* 14.设备故障 deviceException
|
||||
*
|
||||
* 101.烟雾报警
|
||||
* 102.红外触发报警
|
||||
* 103.电机运行报警
|
||||
* 104.电机维修报警
|
||||
* 105.非APP开门提醒
|
||||
* 106.非APP关门提醒
|
||||
* 107.关门故障报警
|
||||
* 108.开门故障报警
|
||||
* 109.开门运行提醒
|
||||
* 110.关门运行提醒
|
||||
* 111.忘记关门提醒
|
||||
* 112.门体手动开启提醒
|
||||
* 113.半开门运行提醒
|
||||
* 114.门体停止运行提醒
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "eq_status_type")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 日志状态文本
|
||||
*/
|
||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
||||
private String logStatus;
|
||||
|
||||
/**
|
||||
* 故障状态
|
||||
*/
|
||||
@ -75,6 +104,17 @@ public class EqEquipmentLogVo implements Serializable {
|
||||
@ExcelDictFormat(dictType = "eq_line_status")
|
||||
private Integer lineStatus;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 年月日时分秒
|
||||
*/
|
||||
@ExcelProperty(value = "年月日时分秒")
|
||||
private String createdYearSecond;
|
||||
|
||||
/**
|
||||
* 年月日
|
||||
*/
|
||||
|
||||
@ -45,21 +45,21 @@ public class EqUserConfigVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "时区类型", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "eq_timezone_type")
|
||||
private Integer timezoneType;
|
||||
private String timezoneType;
|
||||
|
||||
/**
|
||||
* 时间格式
|
||||
*/
|
||||
@ExcelProperty(value = "时间格式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "eq_time_format_type")
|
||||
private Integer timeFormat;
|
||||
private String timeFormat;
|
||||
|
||||
/**
|
||||
* 语言种类
|
||||
*/
|
||||
@ExcelProperty(value = "语言种类", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "eq_language_type")
|
||||
private Integer languageType;
|
||||
private String languageType;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -65,4 +65,6 @@ public interface IEqUserConfigService {
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
EqUserConfigVo userConfig();
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.system.domain.SysOperLog;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.web.domain.bo.EqEquipmentLogBo;
|
||||
import org.dromara.web.domain.vo.EqEquipmentLogVo;
|
||||
@ -80,6 +81,9 @@ public class EqEquipmentLogServiceImpl implements IEqEquipmentLogService {
|
||||
lqw.eq(bo.getCreatedYearDay() != null, EqEquipmentLog::getCreatedYearDay, bo.getCreatedYearDay());
|
||||
lqw.eq(bo.getCreatedHourSecond() != null, EqEquipmentLog::getCreatedHourSecond, bo.getCreatedHourSecond());
|
||||
lqw.eq(bo.getDayOfWeek() != null, EqEquipmentLog::getDayOfWeek, bo.getDayOfWeek());
|
||||
lqw.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||
EqEquipmentLog::getCreateTime, params.get("beginTime"), params.get("endTime"));
|
||||
lqw.orderByDesc(EqEquipmentLog::getCreateTime);
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.web.domain.bo.EqUserConfigBo;
|
||||
import org.dromara.web.domain.vo.EqUserConfigVo;
|
||||
@ -129,4 +130,11 @@ public class EqUserConfigServiceImpl implements IEqUserConfigService {
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EqUserConfigVo userConfig() {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
LambdaQueryWrapper<EqUserConfig> wrapper = Wrappers.lambdaQuery();
|
||||
return baseMapper.selectVoOne(wrapper.eq(EqUserConfig::getUserId, userId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -258,3 +258,11 @@ justauth:
|
||||
client-id: 10**********6
|
||||
client-secret: 1f7d08**********5b7**********29e
|
||||
redirect-uri: ${justauth.address}/social-callback?source=gitlab
|
||||
|
||||
iot:
|
||||
baseurl: http://8.219.157.97:8080
|
||||
url:
|
||||
scopeAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes/{scope}
|
||||
telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries
|
||||
operate: /api/plugins/rpc/oneway/{deviceId}
|
||||
device: /api/device/{deviceId}
|
||||
|
||||
@ -124,6 +124,7 @@ security:
|
||||
# actuator 监控配置
|
||||
- /actuator
|
||||
- /actuator/**
|
||||
- /app/text/**
|
||||
|
||||
# 多租户配置
|
||||
tenant:
|
||||
|
||||
@ -61,25 +61,6 @@ tenant.blocked=Sorry, your tenant is disabled. Please contact the administrator
|
||||
tenant.expired=Sorry, your tenant has expired. Please contact the administrator.
|
||||
|
||||
|
||||
noinit.name0= details
|
||||
noinit.name1= Stroke uncalibrated
|
||||
noinit.name2= If the device is not calibrated, the device cannot be controlled
|
||||
noinit.name3= Stroke calibration tutorial
|
||||
noinit.name4= Please perform the operation on the device
|
||||
noinit.name5= Set the opening position:
|
||||
noinit.name6= 1. Hold down the SET key
|
||||
noinit.name7= Observation: The display displays "1" flashing
|
||||
noinit.name8= 2. Press the "SET" key again
|
||||
noinit.name9= Observe: The monitor is "1" on
|
||||
noinit.name10= 3. Long press the "UP" button to make the door to the maximum opening position and then release the hand to stop
|
||||
noinit.name11= Observation: The door runs in the direction of opening the door, when the door reaches the maximum opening position
|
||||
noinit.name12= Set the door closing position:
|
||||
noinit.name13= 4. Press the "SET" button again
|
||||
noinit.name14= Observe: The display is "2" steady on
|
||||
noinit.name15= 5. Press and hold the Down key to close the button and release
|
||||
noinit.name16= Observation: The door runs in the direction of closing, and stops when the door reaches the closed position
|
||||
noinit.name17= Automatic check:
|
||||
noinit.name18= 6. Press the "SET" button again
|
||||
|
||||
|
||||
## "Login"
|
||||
@ -210,6 +191,28 @@ setCommon.alert= alert
|
||||
setCommon.cancel= cancel
|
||||
setCommon.confirm= Confirm
|
||||
|
||||
##《未设置详情》noinit
|
||||
noinit.name0= details
|
||||
noinit.name1= Stroke uncalibrated
|
||||
noinit.name2= If the device is not calibrated, the device cannot be controlled
|
||||
noinit.name3= Stroke calibration tutorial
|
||||
noinit.name4= Please perform the operation on the device
|
||||
noinit.name5= Set the opening position:
|
||||
noinit.name6= 1. Hold down the SET key
|
||||
noinit.name7= Observation: The display displays "1" flashing
|
||||
noinit.name8= 2. Press the "SET" key again
|
||||
noinit.name9= Observe: The monitor is "1" on
|
||||
noinit.name10= 3. Long press the "UP" button to make the door to the maximum opening position and then release the hand to stop
|
||||
noinit.name11= Observation: The door runs in the direction of opening the door, when the door reaches the maximum opening position
|
||||
noinit.name12= Set the door closing position:
|
||||
noinit.name13= 4. Press the "SET" button again
|
||||
noinit.name14= Observe: The display is "2" steady on
|
||||
noinit.name15= 5. Press and hold the Down key to close the button and release
|
||||
noinit.name16= Observation: The door runs in the direction of closing, and stops when the door reaches the closed position
|
||||
noinit.name17= Automatic check:
|
||||
noinit.name18= 6. Press the "SET" button again
|
||||
|
||||
|
||||
## "Change Device Name"
|
||||
setEqname.name0= Changes the device name
|
||||
setEqname.name1= Please enter a name
|
||||
|
||||
@ -60,69 +60,51 @@ tenant.not.exists=对不起, 您的租户不存在,请联系管理员
|
||||
tenant.blocked=对不起,您的租户已禁用,请联系管理员
|
||||
tenant.expired=对不起,您的租户已过期,请联系管理员
|
||||
|
||||
noinit.name0=详情
|
||||
noinit.name1=行程未校准
|
||||
noinit.name2=设备未校准行程,将不能进行设备控制
|
||||
noinit.name3=行程校准教程
|
||||
noinit.name4=请在设备上操作
|
||||
noinit.name5=设置开门位置:
|
||||
noinit.name6=1.请长按“SET”键
|
||||
noinit.name7=观察:显示器显示”1”闪烁
|
||||
noinit.name8=2.再次按下"SET"键
|
||||
noinit.name9=观察:显示器显示为”1”常亮
|
||||
noinit.name10=3.长按"UP"键,使门至最大开门位置后松手停止
|
||||
noinit.name11=观察:门向开门方向运行,当门达到最大开门位置后
|
||||
noinit.name12=设置关门位置:
|
||||
noinit.name13=4.再次按下”SET"键
|
||||
noinit.name14=观察:显示器显示为”2”常亮
|
||||
noinit.name15=5.长按“向下”键至关闭位置后松手
|
||||
noinit.name16=观察:门向关门方向运行,当门达到关闭位置后停止
|
||||
noinit.name17=自动校验:
|
||||
noinit.name18=6.再次按下"SET"键
|
||||
|
||||
|
||||
##《登录》
|
||||
|
||||
##《登录》login
|
||||
login.name0=登录
|
||||
login.name1=请输入账号
|
||||
login.name2=请输入密码
|
||||
login.name3=我已阅读并同意签署
|
||||
login.name4=立即注册
|
||||
##《注册》
|
||||
##《注册》register
|
||||
register.name0=注册
|
||||
register.name1=注册账号
|
||||
register.name2=请输入账号
|
||||
register.name3=请输入密码
|
||||
register.name4=请再次输入密码
|
||||
##《注册成功》
|
||||
##《注册成功》registerSuccess
|
||||
registerSuccess.name0=注册成功
|
||||
registerSuccess.name1=您的登录账号
|
||||
registerSuccess.name2=您的密码
|
||||
registerSuccess.name3=立即登录
|
||||
##《首页》
|
||||
##《首页》homepage
|
||||
homepage.name0=首页
|
||||
homepage.name1=状态
|
||||
homepage.name2=已关闭
|
||||
homepage.name3=打开
|
||||
##《关门提醒》
|
||||
##《关门提醒》warningClose
|
||||
warningClose.name0=关门提醒
|
||||
warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门
|
||||
warningClose.name2=关门
|
||||
warningClose.name3=我知道了
|
||||
##《添加设备》
|
||||
##《添加设备》add
|
||||
add.name0=添加设备
|
||||
add.name1=请输入设备编码
|
||||
add.name2=请输入
|
||||
add.name3=添加
|
||||
## 《添加成功》
|
||||
## 《添加成功》addSuccess
|
||||
addSuccess.name0=添加成功
|
||||
addSuccess.name1=返回
|
||||
addSuccess.name2=继续搜索
|
||||
##《添加失败》
|
||||
##《添加失败》addFailure
|
||||
addFailure.name0=添加失败
|
||||
addFailure.name1=请正确的设备编号后再试
|
||||
addFailure.name2=返回
|
||||
addFailure.name3=重新添加
|
||||
##《设备详情》
|
||||
##《设备详情》detail
|
||||
detail.name0=详情
|
||||
##(已关闭 打开10% 打开100%)
|
||||
detail.name1=状态
|
||||
@ -143,11 +125,11 @@ detail.name15=操作次数
|
||||
detail.name16=数据日志
|
||||
detail.name17=清码
|
||||
detail.name18=对码
|
||||
##《倒计时设置》
|
||||
##《倒计时设置》countdown
|
||||
countdown.name0=倒计时设置
|
||||
countdown.name1=取消
|
||||
countdown.name2=确认
|
||||
##《数据日志》
|
||||
##《数据日志》log
|
||||
log.name0=数据日志
|
||||
log.name1=选择日期
|
||||
log.name2=今天
|
||||
@ -159,12 +141,12 @@ log.name7=周四
|
||||
log.name8=周五
|
||||
log.name9=周六
|
||||
log.name10=开门提醒
|
||||
##《对码》
|
||||
##《对码》checkcode
|
||||
checkcode.name0=对码
|
||||
checkcode.name1=对码中
|
||||
checkcode.name2=对码成功
|
||||
checkcode.name3=对码失败请重试
|
||||
##《清码》
|
||||
##《清码》clearcode
|
||||
clearcode.name0=提示
|
||||
clearcode.name1=请输入登录密码
|
||||
clearcode.name2=请输入登录密码才能进行设备清码
|
||||
@ -172,11 +154,11 @@ clearcode.name3=取消
|
||||
clearcode.name4=确认
|
||||
clearcode.name5=密码错误请重试
|
||||
|
||||
##《设备掉线详情》
|
||||
##《设备掉线详情》offDetail
|
||||
offDetail.name0=详情
|
||||
offDetail.name1=设备已离线
|
||||
|
||||
##《优化-设置》
|
||||
##《优化-设置》set
|
||||
set.name0=设置
|
||||
set.name1=设备名称
|
||||
set.name2=设备位置
|
||||
@ -200,7 +182,7 @@ set.name19=模组版本
|
||||
set.name20=MCU版本
|
||||
set.name21=删除设备
|
||||
|
||||
##《通用》
|
||||
##《通用》setCommon
|
||||
setCommon.detail=详情
|
||||
setCommon.add=添加
|
||||
setCommon.edit=编辑
|
||||
@ -209,30 +191,52 @@ setCommon.alert=提示
|
||||
setCommon.cancel=取消
|
||||
setCommon.confirm=确认
|
||||
|
||||
##《修改设备名称》
|
||||
##《未设置详情》noinit
|
||||
noinit.name0=详情
|
||||
noinit.name1=行程未校准
|
||||
noinit.name2=设备未校准行程,将不能进行设备控制
|
||||
noinit.name3=行程校准教程
|
||||
noinit.name4=请在设备上操作
|
||||
noinit.name5=设置开门位置:
|
||||
noinit.name6=1.请长按“SET”键
|
||||
noinit.name7=观察:显示器显示”1”闪烁
|
||||
noinit.name8=2.再次按下"SET"键
|
||||
noinit.name9=观察:显示器显示为”1”常亮
|
||||
noinit.name10=3.长按"UP"键,使门至最大开门位置后松手停止
|
||||
noinit.name11=观察:门向开门方向运行,当门达到最大开门位置后
|
||||
noinit.name12=设置关门位置:
|
||||
noinit.name13=4.再次按下”SET"键
|
||||
noinit.name14=观察:显示器显示为”2”常亮
|
||||
noinit.name15=5.长按“向下”键至关闭位置后松手
|
||||
noinit.name16=观察:门向关门方向运行,当门达到关闭位置后停止
|
||||
noinit.name17=自动校验:
|
||||
noinit.name18=6.再次按下"SET"键
|
||||
|
||||
|
||||
##《修改设备名称》setEqname
|
||||
setEqname.name0=修改设备名称
|
||||
setEqname.name1=请输入名称
|
||||
setEqname.name2=上一页
|
||||
setEqname.name3=确认
|
||||
##《设备位置修改》
|
||||
##《设备位置修改》setEqarea
|
||||
setEqarea.name0=修改设备位置
|
||||
setEqarea.name1=上一页
|
||||
setEqarea.name2=确认
|
||||
##《反弹力设置》
|
||||
##《反弹力设置》setRebound
|
||||
setRebound.name0=电机反弹力
|
||||
setRebound.name1=调节反弹力
|
||||
setRebound.name2=电机在开门时,若开门的力超出设定范围值,门会立即停止开门;
|
||||
setRebound.name3=若关门的力超出设定范围值,门会立即停止关闭并开门,此功能可以调整开/关门感应力的范围值。
|
||||
##《删除设备》
|
||||
##《删除设备》setDelete
|
||||
setDelete.name0=删除设备
|
||||
setDelete.name1=提示
|
||||
setDelete.name2=删除设备后,将不能管理设备请谨慎操作!
|
||||
setDelete.name3=取消
|
||||
setDelete.name4=确认删除
|
||||
##《时区设置》
|
||||
##《时区设置》setZone
|
||||
setZone.name0=时区
|
||||
setZone.name1=时间格式
|
||||
##《wifi网络》
|
||||
##《wifi网络》setWifi
|
||||
setWifi.name0=wifi网络
|
||||
setWifi.name1=提示
|
||||
setWifi.name2=已链接WiFi:XXXXXXXX
|
||||
@ -253,5 +257,31 @@ runStatus.name12=电机运转故障
|
||||
runStatus.name13=电机维护故障
|
||||
runStatus.name14=设备故障
|
||||
|
||||
## 日志状态
|
||||
## 《运行状态》
|
||||
logStatus.name0=停止中
|
||||
logStatus.name1=关闭中
|
||||
logStatus.name2=开启中
|
||||
## 《故障状态》
|
||||
logStatus.name10=无异常
|
||||
logStatus.name11=红外故障
|
||||
logStatus.name12=电机运转故障
|
||||
logStatus.name13=电机维护故障
|
||||
logStatus.name14=设备故障
|
||||
## 《故障状态》
|
||||
logStatus.name101=烟雾报警
|
||||
logStatus.name102=红外触发报警
|
||||
logStatus.name103=电机运行报警
|
||||
logStatus.name104=电机维修报警
|
||||
logStatus.name105=非APP开门提醒
|
||||
logStatus.name106=非APP关门提醒
|
||||
logStatus.name107=关门故障报警
|
||||
logStatus.name108=开门故障报警
|
||||
logStatus.name109=开门运行提醒
|
||||
logStatus.name110=关门运行提醒
|
||||
logStatus.name111=忘记关门提醒
|
||||
logStatus.name112=门体手动开启提醒
|
||||
logStatus.name113=半开门运行提醒
|
||||
logStatus.name114=门体停止运行提醒
|
||||
|
||||
message.fault.device.notfound = 设备不存在
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package org.dromara.test;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
|
||||
public class TimeZoneConversion {
|
||||
private static String getTimeWithZone(String dateTimeStr, String zoneId){
|
||||
// 定义日期时间格式
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
// 将字符串解析为LocalDateTime
|
||||
LocalDateTime localDateTime = LocalDateTime.parse(dateTimeStr, formatter);
|
||||
// 默认指定原始时区UTC+08:00
|
||||
ZoneId utc08 = ZoneId.of("UTC+08:00");
|
||||
// 转换为ZonedDateTime对象
|
||||
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, utc08);
|
||||
// 定义目标时区
|
||||
ZoneId utc = ZoneId.of(zoneId);
|
||||
return formatter.format(zonedDateTime.withZoneSameInstant(utc));
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 给定的时间字符串
|
||||
String dateTimeStr = "2024-11-03 00:30:00";
|
||||
String zoneId = "UTC+07:00";
|
||||
String timeWithZone = getTimeWithZone(dateTimeStr, zoneId);
|
||||
System.out.println(timeWithZone);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -20,7 +20,7 @@ import org.springframework.web.socket.server.HandshakeInterceptor;
|
||||
* @author zendwang
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ConditionalOnProperty(value = "websocket.enabled", havingValue = "true")
|
||||
@ConditionalOnProperty(value = "websocket.enabled", havingValue = "true")// zc
|
||||
@EnableConfigurationProperties(WebSocketProperties.class)
|
||||
@EnableWebSocket
|
||||
public class WebSocketConfig {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user