ai推送相应的人
This commit is contained in:
parent
3ba4de4414
commit
915422a8d3
@ -1,8 +1,8 @@
|
||||
package com.zhgd.xmgl.async;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.zhgd.mqtt.bean.PushPayload;
|
||||
import com.zhgd.mqtt.server.IMqttSender;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
|
||||
@ -14,6 +14,7 @@ import com.zhgd.xmgl.modules.basicdata.service.impl.DictionaryItemServiceImpl;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
|
||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
||||
import com.zhgd.xmgl.push.service.UniPushService;
|
||||
import com.zhgd.xmgl.util.MapBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -22,7 +23,6 @@ import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -53,28 +53,28 @@ public class AsyncAiAnalyse {
|
||||
@Value("${mqtt-scope}")
|
||||
private String scope;
|
||||
|
||||
/**
|
||||
* @param record
|
||||
*/
|
||||
@Async("taskExecutor")
|
||||
public void sendAiAnalyse(AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord) {
|
||||
public void sendAiAnalyse(AiAnalyseHardWareAlarmRecord record, String type) {
|
||||
try {
|
||||
String title = getTitleByAlarmType(aiAnalyseHardWareAlarmRecord.getAlarmType(), aiAnalyseHardWareAlarmRecord.getProjectSn());
|
||||
String title = getTitleByAlarmType(record.getAlarmType(), record.getProjectSn());
|
||||
title = title == null ? "其他类型" : title;
|
||||
String msg = title + ",位置" + aiAnalyseHardWareAlarmRecord.getLocation();
|
||||
List<SystemUser> systemUserList = systemUserService.list(Wrappers.<SystemUser>lambdaQuery().eq(SystemUser::getSn, aiAnalyseHardWareAlarmRecord.getProjectSn())
|
||||
.in(SystemUser::getAccountType, Arrays.asList(5, 6)));
|
||||
String msg = title + ",位置" + record.getLocation();
|
||||
List<SystemUser> systemUserList;
|
||||
if (type.equals(Cts.PROJECT_LEVEL)) {
|
||||
systemUserList = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put(Cts.SN, record.getProjectSn()).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build());
|
||||
} else {
|
||||
systemUserList = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put(Cts.SN, record.getProjectSn()).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL_AND_CHILDREN).build());
|
||||
}
|
||||
title = "AI分析" + title;
|
||||
//向项目管理员和子账号推送通知
|
||||
if (systemUserList.size() > 0) {
|
||||
for (SystemUser systemUser : systemUserList) {
|
||||
PushPayload pushMessage = PushPayload.getPushPayloadBuider().setAccountId(systemUser.getUserId().toString())
|
||||
.setTitle(title)
|
||||
.setContent(msg)
|
||||
.setType("8")
|
||||
.setItemType(aiAnalyseHardWareAlarmRecord.getAlarmType().toString())
|
||||
.bulid();
|
||||
String kdTopic = scope + systemUser.getUserId();
|
||||
noticeService.addUserNotice(systemUser.getUserId(), msg, title, "8");
|
||||
}
|
||||
sendAppNotice(aiAnalyseHardWareAlarmRecord.getProjectSn(), title, msg, systemUserList, "/pages/potentialRisk/potentialRisk?id=" + aiAnalyseHardWareAlarmRecord.getId());
|
||||
sendAppNotice(record.getProjectSn(), title, msg, systemUserList, "/pages/potentialRisk/potentialRisk?id=" + record.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("error:", e);
|
||||
|
||||
@ -18,6 +18,7 @@ import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.async.AsyncAiAnalyse;
|
||||
import com.zhgd.xmgl.base.*;
|
||||
import com.zhgd.xmgl.call.entity.ChargeDeletionParam;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
|
||||
import com.zhgd.xmgl.modules.car.entity.CarCamera;
|
||||
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
||||
@ -378,7 +379,7 @@ public class HikvisionCall {
|
||||
aiAnalyseHardWareAlarmRecord.setImageUrl(saveToLocal(imageUrl));
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord);
|
||||
//将数据通过MQTT转发到前台
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord);
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
|
||||
@Async("saveEventCallbackCarPassRecord")
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
package com.zhgd.xmgl.constant;
|
||||
|
||||
public interface CommonConstant {
|
||||
String ASC = "asc";
|
||||
String DESC = "desc";
|
||||
String ORDER = "order";
|
||||
String DEFAULT_PASSWORD = "a!12345678";
|
||||
}
|
||||
13
src/main/java/com/zhgd/xmgl/constant/Cts.java
Normal file
13
src/main/java/com/zhgd/xmgl/constant/Cts.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.zhgd.xmgl.constant;
|
||||
|
||||
public interface Cts {
|
||||
String ASC = "asc";
|
||||
String DESC = "desc";
|
||||
String ORDER = "order";
|
||||
String DEFAULT_PASSWORD = "a!12345678";
|
||||
String QUERY_TYPE = "queryType";
|
||||
String DEFAULT = "default";
|
||||
String SN = "sn";
|
||||
String PROJECT_LEVEL_AND_CHILDREN = "projectLevelAndChildren";
|
||||
String PROJECT_LEVEL = "projectLevel";
|
||||
}
|
||||
@ -2,24 +2,17 @@ package com.zhgd.xmgl.modules.basicdata.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wflow.bean.do_.DeptDo;
|
||||
import com.wflow.bean.do_.UserDeptDo;
|
||||
import com.wflow.bean.vo.OrgTreeVo;
|
||||
import com.zhgd.annotation.DataScope;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.springframework.security.core.parameters.P;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 账号
|
||||
@ -30,9 +23,9 @@ import java.util.Set;
|
||||
@Mapper
|
||||
public interface SystemUserMapper extends BaseMapper<SystemUser> {
|
||||
|
||||
List<SystemUser> getSystemUserBySn(@Param("param") Map<String, Object> map);
|
||||
List<SystemUser> getSystemUsersBySn(@Param("param") Map<String, Object> map);
|
||||
|
||||
Page<SystemUser> getSystemUserBySn(@Param("param") Map<String, Object> map, Page<SystemUser> page);
|
||||
Page<SystemUser> getSystemUsersBySn(@Param("param") Map<String, Object> map, Page<SystemUser> page);
|
||||
|
||||
SystemUser findByUsername(@Param("account") String account);
|
||||
|
||||
@ -101,6 +94,7 @@ public interface SystemUserMapper extends BaseMapper<SystemUser> {
|
||||
|
||||
/**
|
||||
* 通过拼音搜索用户,全拼和拼音首字母模糊搜索
|
||||
*
|
||||
* @param py 拼音
|
||||
* @return 搜索的用户列表 type为固定值user
|
||||
*/
|
||||
|
||||
@ -59,18 +59,18 @@
|
||||
qrtu.quality_region_id = #{param.qualityRegionId}
|
||||
</if>
|
||||
</sql>
|
||||
<select id="getSystemUserBySn" resultType="com.zhgd.xmgl.modules.basicdata.entity.SystemUser" parameterType="map">
|
||||
<select id="getSystemUsersBySn" resultType="com.zhgd.xmgl.modules.basicdata.entity.SystemUser" parameterType="map">
|
||||
SELECT a.*, jb.job_name
|
||||
from system_user a
|
||||
LEFT JOIN organization_job jb ON a.job_id = jb.id
|
||||
WHERE 1=1
|
||||
<if test="param.accountType != null and param.accountType != ''">
|
||||
and a.account_type = #{param.accountType}
|
||||
</if>
|
||||
<if test="param.queryType == 'default'.toString()">
|
||||
and a.sn = #{param.sn}
|
||||
and a.account_type in (1, 2, 3, 4, 5, 7)
|
||||
</if>
|
||||
<if test="param.accountType != null and param.accountType != ''">
|
||||
and a.account_type = #{param.accountType}
|
||||
</if>
|
||||
<if test="param.queryType == 'projectLevel'.toString()">
|
||||
and ((a.account_type = 5 and a.sn = #{param.sn}) or ( a.account_type = 10 and a.user_id in (select distinct
|
||||
t.user_id from
|
||||
|
||||
@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
@ -191,6 +192,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
|
||||
return list;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
SystemUserServiceImpl systemUserService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getChildCompanyProjectList(Map<String, Object> map) {
|
||||
@ -198,8 +201,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
|
||||
map.put("companyType", "4");
|
||||
List<EntityMap> list = companyMapper.getChildCompanyList(map);
|
||||
List<EntityMap> projectList = projectMapper.getProjectListBySn(map);
|
||||
map.put("queryType", "default");
|
||||
List<SystemUser> sysList1 = systemUserMapper.getSystemUserBySn(map);
|
||||
map.put("queryType", Cts.DEFAULT);
|
||||
List<SystemUser> sysList1 = systemUserService.getSystemUsersBySn(map);
|
||||
List<SystemUser> sysList2 = systemUserMapper.getChildComapnySystemUserList(map);
|
||||
List<SystemUser> sysList3 = systemUserMapper.getChildComapnyProjectSystemUserList(map);
|
||||
List<EntityMap> projectList2 = projectMapper.getChildProjectListBySn(map);
|
||||
|
||||
@ -68,6 +68,8 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.zhgd.xmgl.constant.Cts.*;
|
||||
|
||||
/**
|
||||
* @Description: 账号
|
||||
* @author: pds
|
||||
@ -733,8 +735,8 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
||||
|
||||
@Override
|
||||
public List<SystemUser> getSystemUsersBySn(Map<String, Object> map) {
|
||||
MapUtil.putIfNotBlank(map, "queryType", "default");
|
||||
return systemUserMapper.getSystemUserBySn(map);
|
||||
MapUtil.putIfNotBlank(map, QUERY_TYPE, DEFAULT);
|
||||
return systemUserMapper.getSystemUsersBySn(map);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1449,9 +1451,9 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
|
||||
|
||||
@Override
|
||||
public Page<SystemUser> getSystemUserBySnPage(Map<String, Object> map) {
|
||||
MapUtil.putIfNotBlank(map, "queryType", "default");
|
||||
MapUtil.putIfNotBlank(map, QUERY_TYPE, DEFAULT);
|
||||
Page<SystemUser> page = PageUtil.getPage(map);
|
||||
return systemUserMapper.getSystemUserBySn(map, page);
|
||||
return systemUserMapper.getSystemUsersBySn(map, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
@ -124,7 +125,7 @@ public class DangerousEngineeringRecordServiceImpl extends ServiceImpl<Dangerous
|
||||
|
||||
@Override
|
||||
public void noticeBigScreen(String projectSn, String time, Boolean isSuperDanger, String format) {
|
||||
List<SystemUser> systemUsers = systemUserMapper.getSystemUserBySn(new MapBuilder<String, Object>().put("sn", projectSn).put("type", "projectLevel").build());
|
||||
List<SystemUser> systemUsers = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put(Cts.SN, projectSn).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build());
|
||||
for (SystemUser systemUser : systemUsers) {
|
||||
Notice notice = new Notice();
|
||||
notice.setType("32");
|
||||
|
||||
@ -18,6 +18,7 @@ import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.async.AsyncAiAnalyse;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
|
||||
@ -184,7 +185,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
}
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord);
|
||||
//将数据通过MQTT转发到前台
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord);
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -223,7 +224,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
aiAnalyseHardWareAlarmRecord.setLocation(body.getString("alarmDesc"));
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord);
|
||||
//将数据通过MQTT转发到前台
|
||||
//asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord);
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -365,7 +366,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
|
||||
aiAnalyseHardWareAlarmRecordMapper.insert(aiAnalyseHardWareAlarmRecord);
|
||||
//将数据通过MQTT转发到前台
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord);
|
||||
asyncAiAnalyse.sendAiAnalyse(aiAnalyseHardWareAlarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -572,7 +573,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
alarmRecord.setCreateTime(DateUtil.formatDateTime(new Date(timestamp * 1000)));
|
||||
baseMapper.insert(alarmRecord);
|
||||
//将数据通过MQTT转发到前台
|
||||
asyncAiAnalyse.sendAiAnalyse(alarmRecord);
|
||||
asyncAiAnalyse.sendAiAnalyse(alarmRecord, Cts.PROJECT_LEVEL_AND_CHILDREN);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -601,10 +602,6 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
for (String noticeUserId : noticeUserIds) {
|
||||
noticeService.addUserNotice(Long.valueOf(noticeUserId), "您有一条AI预警数据需要处置,请及时查看。", "AI预警通知", "8");
|
||||
}
|
||||
List<SystemUser> users = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put("type", "projectLevel").put("sn", record.getProjectSn()).build());
|
||||
for (SystemUser systemUser : users) {
|
||||
noticeService.addUserNotice(systemUser.getUserId(), "有一条AI预警数据已处置推送", "AI预警通知", "8");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -19,11 +19,13 @@ import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.TrendOneVo;
|
||||
import com.zhgd.xmgl.call.SanjiangDataCall;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.enums.ParamEnum;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
||||
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
|
||||
import com.zhgd.xmgl.modules.dangerous.entity.DangerousEngineeringRecord;
|
||||
import com.zhgd.xmgl.modules.dangerous.mapper.DangerousEngineeringRecordMapper;
|
||||
import com.zhgd.xmgl.modules.quality.entity.QualityRegion;
|
||||
@ -100,6 +102,8 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
|
||||
@Autowired
|
||||
WorkerInfoServiceImpl workerInfoService;
|
||||
@Autowired
|
||||
SystemUserServiceImpl systemUserService;
|
||||
@Autowired
|
||||
private QualityRegionMapper qualityRegionMapper;
|
||||
@Autowired
|
||||
private EnterpriseInfoMapper enterpriseInfoMapper;
|
||||
@ -752,7 +756,7 @@ public class XzSecurityXzSecurityQualityInspectionRecordServiceImpl extends Serv
|
||||
|
||||
@Override
|
||||
public void noticeBigScreen(String type, XzSecurityQualityInspectionRecord qualityInspectionRecord, String time, String format) {
|
||||
List<SystemUser> systemUsers = systemUserMapper.getSystemUserBySn(new MapBuilder<String, Object>().put("sn", qualityInspectionRecord.getProjectSn()).put("type", "projectLevel").build());
|
||||
List<SystemUser> systemUsers = systemUserService.getSystemUsersBySn(new MapBuilder<String, Object>().put(Cts.SN, qualityInspectionRecord.getProjectSn()).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build());
|
||||
for (SystemUser systemUser : systemUsers) {
|
||||
Notice notice = new Notice();
|
||||
notice.setType(type);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user