Commit 3138a294 authored by 高建强's avatar 高建强

item:人员数据同步迁移plan6分支

parent 739083d6
package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
@Data
public class OrgUsrSyncDto {
private Long sequenceNbr;
}
package com.yeejoin.amos.boot.module.common.api.enums;
public enum DataSyncTopicEnum {
EQM_PATROL_CREATED("user", "emq.user.created"),
ORG_USR("orgUsr", "user/sync/orgUsr");
private String type;
private String topic;
DataSyncTopicEnum(String type, String topic) {
this.type = type;
this.topic = topic;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getTopic() {
return topic;
}
public void setTopic(String topic) {
this.topic = topic;
}
}
......@@ -133,4 +133,6 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
List<DynamicFormInstance> checkCertificatesNumber(String certificatesNumber, Long orgUserId);
OrgUsr queryByCompanyCode(@Param("companyCode") String companyCode);
List<OrgUsrSyncDto> getOrgUsrSyncDataList(Map<String, Object> map);
}
package com.yeejoin.amos.boot.module.common.api.service;
/**
* <h1>数据消息数据同步</h1>
*
* @Author Jianqiang Gao
* @Date 2022-11-03 14:27
*/
public interface IDataSyncService {
void OrgUsrSyncDtoDataSync(Long id);
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrSyncDto;
import com.yeejoin.amos.boot.module.common.api.enums.DataSyncTopicEnum;
import com.yeejoin.amos.boot.module.common.api.mapper.OrgUsrMapper;
import com.yeejoin.amos.boot.module.common.api.service.IDataSyncService;
import com.yeejoin.amos.component.rule.config.RuleConfig;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.component.emq.EmqKeeper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Async
@Slf4j
public class DataSyncServiceImpl implements IDataSyncService {
@Autowired
private EmqKeeper emqKeeper;
@Autowired
private OrgUsrMapper orgUsrMapper;
@Override
public void OrgUsrSyncDtoDataSync(Long id) {
try {
if (id != null) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
List<OrgUsrSyncDto> list = orgUsrMapper.getOrgUsrSyncDataList(map);
if (CollectionUtils.isNotEmpty(list)) {
for (OrgUsrSyncDto x : list) {
String message = buildSyncMessage(DataSyncTopicEnum.ORG_USR.getTopic(), x);
emqKeeper.getMqttClient().publish(DataSyncTopicEnum.EQM_PATROL_CREATED.getTopic(), message.getBytes(), RuleConfig.DEFAULT_QOS, false);
emqKeeper.getMqttClient().publish(DataSyncTopicEnum.ORG_USR.getTopic(), JSONObject.toJSONString(x).getBytes(), RuleConfig.DEFAULT_QOS, false);
}
} else {
// 同步删除人员信息
OrgUsrSyncDto orgUsrSyncDto = new OrgUsrSyncDto();
orgUsrSyncDto.setSequenceNbr(id);
String message = buildSyncMessage(DataSyncTopicEnum.ORG_USR.getTopic(), orgUsrSyncDto);
emqKeeper.getMqttClient().publish(DataSyncTopicEnum.EQM_PATROL_CREATED.getTopic(), message.getBytes(), RuleConfig.DEFAULT_QOS, false);
emqKeeper.getMqttClient().publish(DataSyncTopicEnum.ORG_USR.getTopic(), JSONObject.toJSONString(orgUsrSyncDto).getBytes(), RuleConfig.DEFAULT_QOS, false);
}
}
} catch (Exception e) {
log.error("站端与中心级人员数据【OrgUsrSyncDto】同步推送失败-----------" + e.getMessage());
}
}
public String buildSyncMessage(String topic, Object object) {
Map<String, Object> map = new HashMap<>();
map.put("topic", topic);
map.put("data", object);
return JSONObject.toJSONString(map);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment