diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/bo/CompanyUsersByProjectSnBo.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/bo/CompanyUsersByProjectSnBo.java new file mode 100644 index 000000000..c098a69cf --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/entity/bo/CompanyUsersByProjectSnBo.java @@ -0,0 +1,29 @@ +package com.zhgd.xmgl.modules.basicdata.entity.bo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CompanyUsersByProjectSnBo { + /** + *总企业用户ids(多个,分割) + */ + @ApiModelProperty("总企业用户ids(多个,分割)") + private String uids0; + /** + *一级企业用户ids(多个,分割) + */ + @ApiModelProperty("一级企业用户ids(多个,分割)") + private String uids1; + /** + *二级企业用户ids(多个,分割) + */ + @ApiModelProperty("二级企业用户ids(多个,分割)") + private String uids2; + /** + *三级企业用户ids(多个,分割) + */ + @ApiModelProperty("三级企业用户ids(多个,分割)") + private String uids3; + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/SystemUserMapper.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/SystemUserMapper.java index 9879ad3ce..bb155681b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/SystemUserMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/SystemUserMapper.java @@ -8,6 +8,7 @@ import com.wflow.bean.do_.UserDeptDo; import com.wflow.bean.vo.OrgTreeVo; import com.zhgd.annotation.DataScope; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; +import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanyUsersByProjectSnBo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -272,4 +273,6 @@ public interface SystemUserMapper extends BaseMapper { */ @DataScope(includeTable = {"system_user"}) void updateRealNameFromWorker(@Param("workerId") Long workerId, @Param("workerName") String workerName); + + CompanyUsersByProjectSnBo getCompanyUsersByProjectSn(String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/SystemUserMapper.xml b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/SystemUserMapper.xml index 4fa3b1559..d8dda0451 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/SystemUserMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/mapper/xml/SystemUserMapper.xml @@ -388,4 +388,18 @@ update system_user set real_name=#{workerName} where worker_id = #{workerId} + + diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java index 26522d05a..35531ac80 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/ISystemUserService.java @@ -388,4 +388,6 @@ public interface ISystemUserService extends IService { * @return */ Map verifyLogin(Map map); + + List getCompanyUserIdsByProjectSn(String projectSn); } diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java index e9dba96e6..be7194383 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/SystemUserServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.basicdata.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.*; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; @@ -27,6 +28,7 @@ import com.zhgd.redis.lock.RedisRepository; import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.entity.sj.JwtPayloadUserInfo; import com.zhgd.xmgl.modules.basicdata.entity.*; +import com.zhgd.xmgl.modules.basicdata.entity.bo.CompanyUsersByProjectSnBo; import com.zhgd.xmgl.modules.basicdata.entity.dto.LoginInfoByTokenDto; import com.zhgd.xmgl.modules.basicdata.enums.SystemUserAccountTypeEnum; import com.zhgd.xmgl.modules.basicdata.mapper.*; @@ -1956,4 +1958,22 @@ public class SystemUserServiceImpl extends ServiceImpl getCompanyUserIdsByProjectSn(String projectSn) { + CompanyUsersByProjectSnBo bo = baseMapper.getCompanyUsersByProjectSn(projectSn); + ArrayList list = new ArrayList<>(); + addAllCompanyUserIds(list, bo.getUids0()); + addAllCompanyUserIds(list, bo.getUids1()); + addAllCompanyUserIds(list, bo.getUids2()); + addAllCompanyUserIds(list, bo.getUids3()); + return list; + } + + private void addAllCompanyUserIds(ArrayList list, String uids0) { + if (StrUtil.isNotBlank(uids0)) { + List ids = StrUtil.split(uids0, ",").stream().map(Convert::toLong).collect(Collectors.toList()); + list.addAll(ids); + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IEnableMessageDevRuleService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IEnableMessageDevRuleService.java index 2785f6dc5..c73779f64 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IEnableMessageDevRuleService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IEnableMessageDevRuleService.java @@ -94,8 +94,7 @@ public interface IEnableMessageDevRuleService extends IService companyUsers = systemUserService.getCompanyUserIdsByProjectSn(rule.getProjectSn()); + if (CollUtil.isNotEmpty(companyUsers)) { + ids.addAll(companyUsers); + } + List systemUsers = systemUserService.getSystemUsersBySn(new MapBuilder().put(Cts.SN, rule.getProjectSn()).put(Cts.QUERY_TYPE, Cts.PROJECT_LEVEL).build()); + if (CollUtil.isNotEmpty(systemUsers)) { + List userIdSet = systemUsers.stream().map(SystemUser::getUserId).collect(Collectors.toList()); + ids.addAll(userIdSet); + } for (Long id : ids) { - noticeService.addUserNoticeAndApp(id, "设备报警通知", rule.getMessageTemplateContent(), type, tone); + noticeService.addUserNoticeAndApp(id, title, msg, type, tone); } } } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java index 44c272667..1d456178e 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/impl/AiAnalyseHardWareAlarmRecordServiceImpl.java @@ -38,18 +38,18 @@ import com.zhgd.xmgl.modules.project.entity.ProjectJqmDev; import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo; import com.zhgd.xmgl.modules.project.service.IProjectService; import com.zhgd.xmgl.modules.project.service.ProjectJqmDevService; -import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; -import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord; -import com.zhgd.xmgl.modules.video.entity.VideoItem; -import com.zhgd.xmgl.modules.video.entity.WorkerInfoToAiAnalyseHardWareAlarmRecord; +import com.zhgd.xmgl.modules.video.entity.*; import com.zhgd.xmgl.modules.video.entity.bo.AiAnalyseHardWareAlarmRecordNoticeBo; +import com.zhgd.xmgl.modules.video.entity.bo.Recent10DayRecordsBo; import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTotalVo; import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo; +import com.zhgd.xmgl.modules.video.entity.vo.Recent10DayRecordsVo; import com.zhgd.xmgl.modules.video.enums.AiAnalyseHardWareAlarmRecordHandleResultEnum; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper; import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareRecordMapper; import com.zhgd.xmgl.modules.video.mapper.WorkerInfoToAiAnalyseHardWareAlarmRecordMapper; import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; +import com.zhgd.xmgl.modules.video.service.IVideoGroupService; import com.zhgd.xmgl.modules.video.service.IVideoItemService; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; @@ -142,6 +142,10 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl queryAiAnalyseHardWareAlarmPageList(Map map) { int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString()); @@ -201,28 +205,36 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(AiAnalyseHardWareRecord::getHardwareId, body.getString("hardwareId")); - AiAnalyseHardWareRecord aiAnalyseHardWareRecord = aiAnalyseHardWareRecordMapper.selectOne(queryWrapper); - if (aiAnalyseHardWareRecord == null) { - throw new OpenAlertException(MessageUtil.get("EquipmentNumIncorrectErr")); - } + String projectSn = null; AiAnalyseHardWareAlarmRecord aiAnalyseHardWareAlarmRecord = new AiAnalyseHardWareAlarmRecord(); - aiAnalyseHardWareAlarmRecord.setCreateTime(body.getString("datetime")); - aiAnalyseHardWareAlarmRecord.setAlarmType(body.getInteger("type")); - aiAnalyseHardWareAlarmRecord.setHardwareId(aiAnalyseHardWareRecord.getHardwareId()); - aiAnalyseHardWareAlarmRecord.setHardwareName(aiAnalyseHardWareRecord.getHardwareName()); - aiAnalyseHardWareAlarmRecord.setLocation(body.getString("location")); try { if(StringUtils.isNotBlank(body.getString("remark"))) { VideoItem videoItem = videoItemService.getOne(Wrappers.lambdaQuery() .eq(VideoItem::getSerialNumber, body.getString("remark"))); if (videoItem != null) { aiAnalyseHardWareAlarmRecord.setLocation(videoItem.getVideoName()); + VideoGroup videoGroup = videoGroupService.getById(videoItem.getGroupId()); + projectSn = videoGroup == null ? null : videoGroup.getProjectSn(); + aiAnalyseHardWareAlarmRecord.setProjectSn(projectSn); } } } catch (Exception e) {} - aiAnalyseHardWareAlarmRecord.setProjectSn(aiAnalyseHardWareRecord.getProjectSn()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (projectSn != null) { + queryWrapper.lambda().eq(AiAnalyseHardWareRecord::getProjectSn, projectSn); + } + queryWrapper.lambda().eq(AiAnalyseHardWareRecord::getHardwareId, body.getString("hardwareId")); + AiAnalyseHardWareRecord aiAnalyseHardWareRecord = aiAnalyseHardWareRecordMapper.selectOne(queryWrapper); + if (aiAnalyseHardWareRecord == null) { + throw new OpenAlertException(MessageUtil.get("EquipmentNumIncorrectErr")); + } + aiAnalyseHardWareAlarmRecord.setCreateTime(body.getString("datetime")); + aiAnalyseHardWareAlarmRecord.setAlarmType(body.getInteger("type")); + aiAnalyseHardWareAlarmRecord.setHardwareId(aiAnalyseHardWareRecord.getHardwareId()); + aiAnalyseHardWareAlarmRecord.setHardwareName(aiAnalyseHardWareRecord.getHardwareName()); + aiAnalyseHardWareAlarmRecord.setLocation(body.getString("location")); + +// aiAnalyseHardWareAlarmRecord.setProjectSn(aiAnalyseHardWareRecord.getProjectSn()); aiAnalyseHardWareAlarmRecord.setStatus(1); if (StringUtils.isNotEmpty(body.getString(IMAGE))) { String base64data = ""; @@ -755,6 +767,30 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl getRecent10DayRecords(Map param) { + List records = baseMapper.getRecent10DayRecords(param); + // 按日期分组 + Map> groupedRecords = records.stream() + .collect(Collectors.groupingBy( + Recent10DayRecordsBo::getDate, + LinkedHashMap::new, // 保持日期顺序 + Collectors.mapping(bo -> { + return BeanUtil.toBean(bo, AiAnalyseHardWareAlarmRecord.class); + }, Collectors.toList()) + )); + + // 转换为 Vo 对象 + return groupedRecords.entrySet().stream() + .map(entry -> { + Recent10DayRecordsVo vo = new Recent10DayRecordsVo(); + vo.setDate(entry.getKey()); + vo.setRecords(entry.getValue()); + return vo; + }) + .collect(Collectors.toList()); + } + private Integer getAlarmType(Integer algorithmId) { /* 4 行人闯入 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index cbe5d37ec..37d027373 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -66,7 +66,7 @@ mqtt.username=admin mqtt.password=public #mqtt.url=tcp://139.159.226.224:1883 #mqtt.url=ws://139.159.226.224:8083/mqtt -mqtt.url=tcp://jxj.zhgdyun.com:1883 +mqtt.url=wss://gszhdz.crpower.com.cn:8084/mqtt # 消费者和提供者对应的客户端id以及默认topic mqtt.producer.clientId=mqttProd0729 mqtt.producer.defaultTopic=topic1