ai企业也推送报警

This commit is contained in:
guoshengxiong 2025-12-20 15:17:23 +08:00
parent dc39ae8141
commit 1494821878
7 changed files with 53 additions and 8 deletions

View File

@ -1,5 +1,6 @@
package com.zhgd.xmgl.async;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -16,11 +17,14 @@ import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyConfigService;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.basicdata.service.impl.DictionaryItemServiceImpl;
import com.zhgd.xmgl.modules.basicdata.service.impl.NoticeServiceImpl;
import com.zhgd.xmgl.modules.project.entity.EnableMessageDevRule;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.service.IEnableMessageDevRuleService;
import com.zhgd.xmgl.modules.project.service.IProjectService;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
import com.zhgd.xmgl.modules.xz.entity.XzAiDeductRule;
@ -88,6 +92,9 @@ public class AsyncAiAnalyse {
@Lazy
@Autowired
private IXzAiDeductRuleService xzAiDeductRuleService;
@Lazy
@Autowired
IProjectService projectService;
/**
* @param record
@ -113,6 +120,12 @@ public class AsyncAiAnalyse {
}
// sendAppNotice(record.getProjectSn(), title, msg, systemUserList, "/pages/potentialRisk/potentialRisk?id=" + record.getId());
}
List<Long> companyUserIds = systemUserService.getCompanyUserIdsByProjectSn(record.getProjectSn());
Project project = projectService.getOne(new LambdaQueryWrapper<Project>()
.eq(Project::getProjectSn, record.getProjectSn()));
if (CollUtil.isNotEmpty(companyUserIds)) {
noticeService.addUsersNotice(companyUserIds, title, project.getProjectName() + "," + msg, "8");
}
sendMessage(typeName, record.getLocation(), record.getProjectSn(), record.getHardwareId(), record.getAlarmType());
} catch (Exception e) {
log.error("error", e);

View File

@ -0,0 +1,20 @@
package com.zhgd.xmgl.modules.basicdata.entity.bo;
import lombok.Data;
@Data
public class CompanySnsByProjectSn {
private String projectName;
private String projectSn;
private String companySn4;
private String companySn3;
private String companySn2;
private String companySn1;
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wflow.bean.vo.OrgTreeVo;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanySnsByProjectSn;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -125,7 +126,7 @@ public interface CompanyMapper extends BaseMapper<Company> {
* @param projectSn
* @return
*/
EntityMap getCompanyInfosByProjectSn(String projectSn);
CompanySnsByProjectSn getCompanyInfosByProjectSn(String projectSn);
/**
* 根据用户id查询企业

View File

@ -232,12 +232,13 @@
</where>
</select>
<select id="getCompanyInfosByProjectSn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
<select id="getCompanyInfosByProjectSn" resultType="com.zhgd.xmgl.modules.basicdata.entity.bo.CompanySnsByProjectSn">
SELECT a.project_name project_name,
a.project_sn project_sn,
cp.company_sn company_sn4,
b.company_sn company_sn3,
f.company_sn company_sn2
f.company_sn company_sn2,
f.headquarters_sn company_sn1
FROM project a
INNER JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanySnsByProjectSn;
import com.zhgd.xmgl.modules.basicdata.entity.vo.GetOrgSnListVo;
import java.util.HashMap;
@ -215,4 +216,6 @@ public interface ICompanyService extends IService<Company> {
boolean hasProjectSnAccessBy4(Long userId, String sn);
List<String> getProjectSnsBySn(String sn, Integer accountType);
CompanySnsByProjectSn getCompanyInfosByProjectSn(String projectSn);
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanySnsByProjectSn;
import com.zhgd.xmgl.modules.basicdata.entity.dto.LoginInfoByTokenDto;
import java.util.HashMap;

View File

@ -27,6 +27,7 @@ import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.entity.XzSystemUserToCompanyProject;
import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanySnsByProjectSn;
import com.zhgd.xmgl.modules.basicdata.entity.vo.GetOrgSnListVo;
import com.zhgd.xmgl.modules.basicdata.enums.CompanyTypeEnum;
import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum;
@ -978,15 +979,15 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
if (CollUtil.isEmpty(clJa)) {
return null;
}
EntityMap snMap = companyMapper.getCompanyInfosByProjectSn(project.getProjectSn());
CompanySnsByProjectSn snMap = companyMapper.getCompanyInfosByProjectSn(project.getProjectSn());
if (snMap == null) {
return null;
}
Map<String, Object> existSnMap = new HashMap<>(16);
existSnMap.put(snMap.get("companySn2"), 0);
existSnMap.put(snMap.get("companySn3"), 0);
existSnMap.put(snMap.get("companySn4"), 0);
existSnMap.put(snMap.get("projectSn"), 0);
existSnMap.put(snMap.getCompanySn2(), 0);
existSnMap.put(snMap.getCompanySn3(), 0);
existSnMap.put(snMap.getCompanySn4(), 0);
existSnMap.put(snMap.getProjectSn(), 0);
for (int i = 0; i < clJa.size(); i++) {
JSONObject clJo = clJa.getJSONObject(i);
recursionFilterData(existSnMap, clJo, rtJa);
@ -1083,6 +1084,11 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
return baseMapper.getProjectSnsBySn(sn, accountType);
}
@Override
public CompanySnsByProjectSn getCompanyInfosByProjectSn(String projectSn) {
return baseMapper.getCompanyInfosByProjectSn(projectSn);
}
private void recursionFilterData(Map<String, Object> existSnMap, JSONObject clJo, JSONArray rtJa) {
String sn = getSn(clJo);
if (!existSnMap.containsKey(sn)) {