Commit 56df504e authored by suhuiguang's avatar suhuiguang

1.由于平台规则不支持共享主题,分步式环境消息重复,故调整为api接口

parent e2e4bc65
......@@ -11,6 +11,8 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.component.rule.RuleTrigger;
import com.yeejoin.amos.feign.rule.Rule;
import com.yeejoin.amos.feign.rule.model.FactBaseModel;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -22,6 +24,9 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.PostConstruct;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
......@@ -109,7 +114,7 @@ public class InspectionOrgRefreshListener extends EmqxListener {
inspectionEquipInfo.setInspectionType(equipInfoModel.getInspectionType());
inspectionEquipInfo.setRecord(equipInfoModel.getRecord());
inspectionEquipInfo.setBizType(getCategoryByType(JYJCTypeEnum.of(inspectionEquipInfo.getInspectionType())));
touchRule(inspectionEquipInfo);
touchRuleWithApi(inspectionEquipInfo);
}
private RegistrationInfo fetchRegistrationInfo(String record) {
......@@ -119,7 +124,7 @@ public class InspectionOrgRefreshListener extends EmqxListener {
.eq(RegistrationInfo::getRecord, record));
}
private void touchRule(InspectionEquipInfo inspectionEquipInfo) {
private void touchRuleWithMsg(InspectionEquipInfo inspectionEquipInfo) {
if (log.isInfoEnabled()) {
log.info("发送规则的消息对象:{}", toJSONString(inspectionEquipInfo));
}
......@@ -134,4 +139,31 @@ public class InspectionOrgRefreshListener extends EmqxListener {
log.error("调用规则触发风险模型失败", e);
}
}
private void touchRuleWithApi(InspectionEquipInfo inspectionEquipInfo) {
if (log.isInfoEnabled()) {
log.info("发送规则的消息对象:{}", toJSONString(inspectionEquipInfo));
}
try {
RequestContext.setToken(amosRequestContext.getToken());
RequestContext.setAppKey(amosRequestContext.getAppKey());
RequestContext.setProduct(amosRequestContext.getProduct());
HashMap<String, byte[]> factMap = new HashMap<>();
List<Object> factList = new ArrayList<>();
factList.add(inspectionEquipInfo);
for (Object fact : factList) {
factMap.put(fact.getClass().getName(), toJSONString(fact).getBytes());
}
FactBaseModel factBaseModel = new FactBaseModel();
factBaseModel.setFactMap(factMap);
factBaseModel.setPackageId(ruleName + "/" + inspectionEquipInfo.getBizType());
factBaseModel.setProcessIds(null);
if (log.isInfoEnabled()) {
log.info("发送规则的消息对象:{},\n变量对象:{}", toJSONString(factBaseModel), toJSONString(factBaseModel));
}
Rule.ruleClient.fireRule(factBaseModel);
} catch (Exception e) {
log.error("调用规则触发风险模型失败", e);
}
}
}
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