refactor(sis):
- 第三方数据添加失败通过mq回写信息 refactor(property): - 仪表sse推送,增加水表消息推送
This commit is contained in:
@@ -167,4 +167,6 @@ public class ResidentPersonVo implements Serializable {
|
||||
|
||||
private Date updateTime;
|
||||
|
||||
private String tenantId;
|
||||
|
||||
}
|
||||
|
@@ -43,6 +43,7 @@ public class RemoteResidentPersonServiceImpl implements RemoteResidentPersonServ
|
||||
remoteResidentPersonVo.setAuthGroupId(vo.getAuthGroupId());
|
||||
remoteResidentPersonVo.setAuthBegDate(vo.getAuthBegDate());
|
||||
remoteResidentPersonVo.setAuthEndDate(vo.getAuthEndDate());
|
||||
remoteResidentPersonVo.setTenantId(vo.getTenantId());
|
||||
return remoteResidentPersonVo;
|
||||
}).toList();
|
||||
}
|
||||
@@ -53,6 +54,7 @@ public class RemoteResidentPersonServiceImpl implements RemoteResidentPersonServ
|
||||
ResidentPersonBo bo = new ResidentPersonBo();
|
||||
bo.setId(personId);
|
||||
bo.setEEightId(e8Id);
|
||||
bo.setRemark("");
|
||||
return residentPersonService.updateByBo(bo);
|
||||
}
|
||||
|
||||
|
@@ -9,10 +9,16 @@ public interface RocketMqConstants {
|
||||
// mq topic
|
||||
String TOPIC = "SmartParks";
|
||||
|
||||
// mq GROUP
|
||||
// 仪表消费组
|
||||
String METER_GROUP = "METER_GROUP";
|
||||
|
||||
// 授权记录消费组
|
||||
String AUTH_GROUP = "AUTH_GROUP";
|
||||
|
||||
/*-----------------------------------消息tag------------------------------------*/
|
||||
// 仪表记录
|
||||
String METER_RECORD = "METER_RECORD_TAG";
|
||||
// 授权记录
|
||||
String AUTH_RECORD = "AUTH_MESSAGE_REPORT";
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,9 @@
|
||||
package org.dromara.property.rocketmq.consumer;
|
||||
|
||||
/**
|
||||
* @author lsm
|
||||
* @apiNote AuthRecordConsumer
|
||||
* @since 2025/9/10
|
||||
*/
|
||||
public class AuthRecordConsumer {
|
||||
}
|
@@ -726,6 +726,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
|
||||
|
||||
assert add != null;
|
||||
add.setOrderName("工单名称");
|
||||
add.setProcessingWeight(typeVo.getProcessingWeight());
|
||||
add.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr());
|
||||
add.setStatus(WorkOrderStatusEnum.CREATE_ORDER.getValue());
|
||||
add.setReportingType(OrderReportingTypeEnum.PHONE_REPORT.getValue());
|
||||
|
@@ -246,7 +246,8 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
List<TbMeterInfoVo> meterInfoVos = this.queryList(bo);
|
||||
if (isMeter) {
|
||||
if (meterInfoVos != null && !meterInfoVos.isEmpty()) {
|
||||
List<TreeNode<Long>> l4 = meterInfoVos.stream().map(item -> {
|
||||
List<TbMeterInfoVo> sortList = meterSort(meterInfoVos);
|
||||
List<TreeNode<Long>> l4 = sortList.stream().map(item -> {
|
||||
TreeNode<Long> node = new TreeNode<>();
|
||||
node.setLevel(4);
|
||||
node.setCode(item.getId());
|
||||
@@ -278,20 +279,22 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
// 获取当前登录用户
|
||||
LoginUser user = LoginHelper.getLoginUser();
|
||||
String tokenValue = StpUtil.getTokenValue();
|
||||
String meter = meterType == 1L ? "power" : meterType == 2L ? "water" : meterType == 3L ? "gas" : "";
|
||||
if (user == null) {
|
||||
heartbeatTasks.stopTask(tokenValue);
|
||||
heartbeatTasks.stopTask(tokenValue + meter);
|
||||
return;
|
||||
}
|
||||
|
||||
// 参数校验
|
||||
if (meterType == 0L || floorId == 0L) {
|
||||
heartbeatTasks.stopTask(tokenValue);
|
||||
heartbeatTasks.stopTask(tokenValue + meter);
|
||||
return;
|
||||
}
|
||||
|
||||
// 初始化WebSocket消息
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("type", "meter");
|
||||
jsonObject.put("meterType", meterType);
|
||||
|
||||
// 查询仪表信息
|
||||
TbMeterInfoBo meterInfoBo = new TbMeterInfoBo();
|
||||
@@ -301,7 +304,7 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
|
||||
// 如果没有仪表信息,直接返回
|
||||
if (meterInfoVoList.isEmpty()) {
|
||||
heartbeatTasks.stopTask(tokenValue);
|
||||
heartbeatTasks.stopTask(tokenValue + meter);
|
||||
jsonObject.put("readingTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
||||
jsonObject.put("data", new ArrayList<>());
|
||||
remoteMessageService.sendMessage(user.getUserId(), tokenValue, jsonObject.toString());
|
||||
@@ -320,7 +323,7 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
}
|
||||
|
||||
// 启动定时任务
|
||||
heartbeatTasks.startHeartbeatTask(tokenValue, () -> {
|
||||
heartbeatTasks.startHeartbeatTask(tokenValue + meter, () -> {
|
||||
jsonObject.put("readingTime", DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
List<MeterResult> meterResults;
|
||||
@@ -349,8 +352,8 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
// 创建比较器
|
||||
Comparator<TbMeterInfoVo> comparator = (m1, m2) -> {
|
||||
// 提取楼层和编号数值
|
||||
int[] parts1 = extractNumbers(m1.getMeterName());
|
||||
int[] parts2 = extractNumbers(m2.getMeterName());
|
||||
int[] parts1 = extractNumbers(m1.getMeterName(), m1.getMeterType());
|
||||
int[] parts2 = extractNumbers(m2.getMeterName(), m2.getMeterType());
|
||||
|
||||
// 先比较楼层
|
||||
if (parts1[0] != parts2[0]) {
|
||||
@@ -366,11 +369,13 @@ public class TbMeterInfoServiceImpl implements ITbMeterInfoService {
|
||||
/**
|
||||
* 从字符串提取数字(返回[楼层, 编号])
|
||||
*
|
||||
* @param name 仪表名称
|
||||
* @param name 仪表名称
|
||||
* @param meterType 水电气类型
|
||||
* @return int[]
|
||||
*/
|
||||
private int[] extractNumbers(String name) {
|
||||
Pattern pattern = Pattern.compile("(\\d+)楼电表(\\d+)号");
|
||||
private int[] extractNumbers(String name, Long meterType) {
|
||||
String meter = meterType == 1L ? "电" : meterType == 2L ? "水" : "气";
|
||||
Pattern pattern = Pattern.compile("(\\d+)楼" + meter + "表(\\d+)号");
|
||||
Matcher matcher = pattern.matcher(name);
|
||||
if (matcher.find()) {
|
||||
return new int[]{Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2))};
|
||||
|
Reference in New Issue
Block a user