ai推送相应的人

This commit is contained in:
guoshengxiong 2024-05-25 15:56:29 +08:00
parent 3ba4de4414
commit 915422a8d3
11 changed files with 61 additions and 54 deletions

View File

@ -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);

View File

@ -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")

View File

@ -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";
}

View 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";
}

View File

@ -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
*/

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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");

View File

@ -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");
}
}
}

View File

@ -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);