bug修复

This commit is contained in:
GUO 2024-05-11 09:08:21 +08:00
parent c72a2808ec
commit d7dd028707
7 changed files with 196 additions and 154 deletions

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.video.controller;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTypeCountVO;
import com.zhgd.xmgl.modules.video.service.IAiStatisticService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@ -45,7 +46,7 @@ public class AiStatisticController {
@ApiImplicitParam(name = "sn", value = "公司或项目sn", paramType = "body", required = true, dataType = "String"),
})
@PostMapping("/selectAiAnalyseHardWareAlarmTypeCount")
public Result<Map<String, Object>> selectAiAnalyseHardWareAlarmTypeCount(@RequestBody Map<String, Object> map) {
public Result<AiAnalyseHardWareAlarmTypeCountVO> selectAiAnalyseHardWareAlarmTypeCount(@RequestBody Map<String, Object> map) {
return Result.success(aiStatisticService.selectAiAnalyseHardWareAlarmTypeCount(map));
}

View File

@ -181,5 +181,17 @@ public class AiAnalyseHardWareAlarmRecord implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "AI扣分规则")
private XzAiDeductRule aiDeductRule;
@TableField(exist = false)
@ApiModelProperty(value = "报警数量")
private Integer alarmNum;
@TableField(exist = false)
@ApiModelProperty(value = "日期")
private String date;
@TableField(exist = false)
@ApiModelProperty(value = "今日报警数量")
private Integer alarmNumToday;
@TableField(exist = false)
@ApiModelProperty(value = "今日较昨日报警数量")
private Integer subYesterday;
}

View File

@ -0,0 +1,12 @@
package com.zhgd.xmgl.modules.video.entity.vo;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import lombok.Data;
import java.util.List;
@Data
public class AiAnalyseHardWareAlarmTypeCountVO {
private List<AiAnalyseHardWareAlarmRecord> alarmList;
private Integer totalAlarmNum;
}

View File

@ -6,7 +6,6 @@ import com.zhgd.annotation.DataScope;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
@ -36,7 +35,7 @@ public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper<AiAnalyse
List<SectorOneVo> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
List<Map<String, Object>> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);
List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);
List<Map<String, Object>> selectProjectAiAlarmCountList(Map<String, Object> map);

View File

@ -9,21 +9,21 @@
<select id="queryAiAnalyseHardWareAlarmPageListTwo"
resultMap="queryAiAnalyseHardWareAlarmPageListTwoRm">
SELECT a.*,
'安全部' as department_name,
s.real_name,
group_concat(wi.worker_name) as worker_info_str
'安全部' as department_name,
s.real_name,
group_concat(wi.worker_name) as worker_info_str
FROM ai_analyse_hard_ware_alarm_record a
LEFT JOIN system_user s ON a.rectification_person_id = s.user_id
LEFT join department_info di on s.department = di.department_name
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
witaahwar.ai_analyse_hard_ware_alarm_record_id
left join worker_info wi on wi.id = witaahwar.worker_info_id
LEFT JOIN system_user s ON a.rectification_person_id = s.user_id
LEFT join department_info di on s.department = di.department_name
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
witaahwar.ai_analyse_hard_ware_alarm_record_id
left join worker_info wi on wi.id = witaahwar.worker_info_id
WHERE a.project_sn = #{param.projectSn}
<if test="param.pushPersonId != null">
and find_in_set(#{param.pushPersonId}, a.push_person_ids)
</if>
<if test="param.hardwareId != null and param.hardwareId != ''">
and a.hardware_id like concat('%',#{param.hardwareId},'%')
and a.hardware_id like concat('%', #{param.hardwareId}, '%')
</if>
<if test="param.id != null and param.id != ''">
and a.id = #{param.id}
@ -47,24 +47,31 @@
AND a.create_time &lt;= #{param.endTime}
</if>
<if test="param.enterpriseId != null and param.enterpriseId != ''">
and a.hardware_id in (
select ai_analyse_hard_ware_record.hardware_id from ai_analyse_hard_ware_record where id in (
select distinct qrtaah.ai_analyse_hard_ware_record_id from quality_region_to_ai_analyse_hard qrtaah join
quality_region_to_enterprise qrte on qrte.quality_region_id=qrtaah.quality_region_id
where qrte.enterprise_id = #{param.enterpriseId} OR qrte.enterprise_id IN ( SELECT DISTINCT t.enterprise_id
FROM
(SELECT t.id FROM project_enterprise t WHERE t.enterprise_id = #{param.enterpriseId}) t2 join
project_enterprise
t on find_in_set( t2.id, ancestors ) )
))
and a.hardware_id in (select ai_analyse_hard_ware_record.hardware_id
from ai_analyse_hard_ware_record
where id in (select distinct qrtaah.ai_analyse_hard_ware_record_id
from quality_region_to_ai_analyse_hard qrtaah
join
quality_region_to_enterprise qrte
on qrte.quality_region_id = qrtaah.quality_region_id
where qrte.enterprise_id = #{param.enterpriseId}
OR qrte.enterprise_id IN (SELECT DISTINCT t.enterprise_id
FROM (SELECT t.id
FROM project_enterprise t
WHERE t.enterprise_id = #{param.enterpriseId}) t2
join
project_enterprise t
on find_in_set(t2.id, ancestors))))
</if>
<if test="param.qualityRegionId != null and param.qualityRegionId != ''">
and a.hardware_id in(
select ai_analyse_hard_ware_record.hardware_id from ai_analyse_hard_ware_record where id in (
select distinct h.ai_analyse_hard_ware_record_id from quality_region_to_ai_analyse_hard h where
h.quality_region_id = #{param.qualityRegionId} OR h.quality_region_id IN ( SELECT t.id FROM quality_region t
WHERE find_in_set(#{param.qualityRegionId}, ancestors) ))
)
and a.hardware_id in (select ai_analyse_hard_ware_record.hardware_id
from ai_analyse_hard_ware_record
where id in (select distinct h.ai_analyse_hard_ware_record_id
from quality_region_to_ai_analyse_hard h
where h.quality_region_id = #{param.qualityRegionId}
OR h.quality_region_id IN (SELECT t.id
FROM quality_region t
WHERE find_in_set(#{param.qualityRegionId}, ancestors))))
</if>
<if test="param.handleDone != null and param.handleDone != '' or param.handleDone == true">
AND a.handle_done = #{param.handleDone}
@ -138,14 +145,14 @@
</select>
<select id="selectAiAnalyseHardWareAlarmList"
resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord">
SELECT a.*,group_concat(wi.worker_name) workerInfoStr
SELECT a.*, group_concat(wi.worker_name) workerInfoStr
FROM ai_analyse_hard_ware_alarm_record a
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
witaahwar.ai_analyse_hard_ware_alarm_record_id
left join worker_info wi on wi.id = witaahwar.worker_info_id
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
witaahwar.ai_analyse_hard_ware_alarm_record_id
left join worker_info wi on wi.id = witaahwar.worker_info_id
where a.project_sn = #{projectSn}
<if test="workerName != null and workerName != ''">
and wi.worker_name like concat('%',#{workerName},'%')
and wi.worker_name like concat('%', #{workerName}, '%')
</if>
<include refid="queryAlarmTime">
</include>
@ -170,25 +177,27 @@
<select id="getAiAnalyseHardWareAlarmTotal"
resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
SELECT di.name,
count(a.id) count,
di.data enumType
count(a.id) count,
di.data enumType
FROM dictionary_item di
LEFT JOIN ai_analyse_hard_ware_alarm_record a on a.alarm_type = di.data and a.project_sn = #{projectSn}
LEFT JOIN ai_analyse_hard_ware_alarm_record a on a.alarm_type = di.data and a.project_sn = #{projectSn}
<include refid="queryAlarmTime">
</include>
where di.dictionary_encoding = 'ai_analyse_hard_ware_alarm_record_type'
group by di.data
order by count desc
</select>
<select id="selectAiAnalyseHardWareAlarmTypeCount" resultType="java.util.Map" parameterType="java.util.Map">
<select id="selectAiAnalyseHardWareAlarmTypeCount"
resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord" parameterType="java.util.Map">
SELECT w1.alarm_type alarmType,
COUNT(1) alarmNum
COUNT(1) alarmNum,
DATE_FORMAT(w1.create_time, '%Y-%m-%d') date
from ai_analyse_hard_ware_alarm_record w1
INNER JOIN project a ON w1.project_sn = a.project_sn
LEFT JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
where w1.create_time &gt;= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
INNER JOIN project a ON w1.project_sn = a.project_sn
LEFT JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
where w1.create_time &gt;= CONCAT(DATE_FORMAT(DATE_SUB(now(), interval 1 day), '%Y-%m-%d'), ' 00:00:00')
<if test="companyType == '1'.toString()">
and f.headquarters_sn = #{sn}
</if>
@ -204,20 +213,20 @@
<if test="companyType == '5'.toString()">
and cp.company_sn = #{sn}
</if>
group by w1.alarm_type
group by w1.alarm_type, DATE_FORMAT(w1.create_time, '%Y-%m-%d')
</select>
<select id="selectProjectAiAlarmCountList" resultType="java.util.Map" parameterType="java.util.Map">
SELECT a.project_sn projectSn,
a.project_name projectName,
IFNULL(tp.alarm_num, 0) alarmNum
SELECT a.project_sn projectSn,
a.project_name projectName,
IFNULL(tp.alarm_num, 0) alarmNum
FROM project a
INNER JOIN company cp ON a.company_sn = cp.company_sn
Left JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON a.project_sn = tp.project_sn
INNER JOIN company cp ON a.company_sn = cp.company_sn
Left JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON a.project_sn = tp.project_sn
<where>
<if test="companyType == '1'.toString()">
and f.headquarters_sn = #{sn}
@ -255,16 +264,16 @@
, c.project_name name
</if>
FROM company a
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
<if test="companyType == '1'.toString()">
WHERE a.headquarters_sn = #{sn}
AND a.company_type = 2
AND a.company_type = 2
GROUP BY a.company_id
</if>
<if test="companyType == '2'.toString()">
@ -287,10 +296,10 @@
<select id="selectAiAlarmRecordList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
SELECT w1.*, a.project_name
from ai_analyse_hard_ware_alarm_record w1
INNER JOIN project a ON w1.project_sn = a.project_sn
LEFT JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
INNER JOIN project a ON w1.project_sn = a.project_sn
LEFT JOIN company cp ON a.company_sn = cp.company_sn
INNER JOIN company b ON cp.parent_id = b.company_id
Left JOIN company f ON b.parent_id = f.company_id
<where>
<if test="companyType == '1'.toString()">
and f.headquarters_sn = #{sn}
@ -315,16 +324,16 @@
<select id="selectTotalAiAlarmCount" resultType="java.lang.Integer">
SELECT IFNULL(SUM(IFNULL(tp.alarm_num, 0)), 0) alarmNum
FROM company a
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
<if test="companyType == '1'.toString()">
WHERE a.headquarters_sn = #{sn}
AND a.company_type = 2
AND a.company_type = 2
</if>
<if test="companyType == '2'.toString()">
WHERE a.company_sn=#{sn}
@ -341,23 +350,22 @@
</select>
<select id="selectTotalAiDevCount" resultType="java.util.Map">
SELECT IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalVideoDev,
IFNULL(SUM(IFNULL(d.aiDevNum, 0)), 0) aiDevNum
IFNULL(SUM(IFNULL(d.aiDevNum, 0)), 0) aiDevNum
FROM company a
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT t2.project_sn,
COUNT(1) totalDev,
SUM((case when t1.device_state = 1 then 1 else 0 end)) devOnline,
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
FROM video_item t1
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
WHERE t2.is_enable = 1
GROUP BY t2.project_sn
) d ON c.project_sn = d.project_sn
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT t2.project_sn,
COUNT(1) totalDev,
SUM((case when t1.device_state = 1 then 1 else 0 end)) devOnline,
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
FROM video_item t1
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
WHERE t2.is_enable = 1
GROUP BY t2.project_sn) d ON c.project_sn = d.project_sn
<if test="companyType == '1'.toString()">
WHERE a.headquarters_sn = #{sn}
AND a.company_type = 2
AND a.company_type = 2
</if>
<if test="companyType == '2'.toString()">
WHERE a.company_sn=#{sn}
@ -374,41 +382,40 @@
order by totalDev desc
</select>
<select id="selectProjectAiStatisticList" resultType="java.util.Map">
SELECT IFNULL(tp.alarm_num, 0) alarmNum,
IFNULL(d.videoDevNum, 0) videoDevNum,
IFNULL(d.aiDevNum, 0) aiDevNum,
round(IFNULL(TRUNCATE(IFNULL(d.aiDevNum, 0) / IFNULL(d.videoDevNum, 0), 4), 0) * 100, 2) ratioValue,
c.project_name projectName
SELECT IFNULL(tp.alarm_num, 0) alarmNum,
IFNULL(d.videoDevNum, 0) videoDevNum,
IFNULL(d.aiDevNum, 0) aiDevNum,
round(IFNULL(TRUNCATE(IFNULL(d.aiDevNum, 0) / IFNULL(d.videoDevNum, 0), 4), 0) * 100, 2) ratioValue,
c.project_name projectName
<if test="companyType == '1'.toString()">
,
a.company_name companyName
a.company_name companyName
</if>
<if test="companyType == '2'.toString()">
,
b.company_name companyName
b.company_name companyName
</if>
<if test="companyType == '3'.toString()">
,
cp.company_name companyName
cp.company_name companyName
</if>
<if test="companyType == '4'.toString() or companyType == '5'.toString()">
,
cp.company_name companyName
cp.company_name companyName
</if>
FROM company a
INNER JOIN company b ON b.parent_id = a.company_id
INNER JOIN company cp ON b.company_id = cp.parent_id
INNER JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT t2.project_sn,
COUNT(1) videoDevNum,
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
FROM video_item t1
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
WHERE t2.is_enable = 1
GROUP BY t2.project_sn
) d ON c.project_sn = d.project_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
INNER JOIN company b ON b.parent_id = a.company_id
INNER JOIN company cp ON b.company_id = cp.parent_id
INNER JOIN project c ON cp.company_sn = c.company_sn
LEFT JOIN (SELECT t2.project_sn,
COUNT(1) videoDevNum,
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
FROM video_item t1
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
WHERE t2.is_enable = 1
GROUP BY t2.project_sn) d ON c.project_sn = d.project_sn
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
from ai_analyse_hard_ware_alarm_record
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
<if test="alarmType != null and alarmType != ''">
and alarm_type = #{alarmType}
@ -417,7 +424,7 @@
<where>
<if test="companyType == '1'.toString()">
and a.headquarters_sn = #{sn}
AND a.company_type = 2
AND a.company_type = 2
</if>
<if test="projectName != null and projectName != ''">
and c.project_name like CONCAT(CONCAT('%', #{projectName}), '%')
@ -480,19 +487,19 @@
SELECT id,
project_sn,
hardware_name,
hardware_id,
image_url,
alarm_type,
location,
create_time,
rectification_person_id,
status,
request_rectification_date,
update_date,
push_person_ids,
correct_time,
correct_image,
correct_remark
hardware_id,
image_url,
alarm_type,
location,
create_time,
rectification_person_id,
status,
request_rectification_date,
update_date,
push_person_ids,
correct_time,
correct_image,
correct_remark
from ai_analyse_hard_ware_alarm_record
WHERE location = #{location}
ORDER BY id DESC
@ -500,19 +507,20 @@
</select>
<select id="getViolatorList" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
select wi.* from worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar
join worker_info wi on wi.id = witaahwar.worker_info_id
where witaahwar.ai_analyse_hard_ware_alarm_record_id=#{aiAnalyseHardWareAlarmRecordId}
select wi.*
from worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar
join worker_info wi on wi.id = witaahwar.worker_info_id
where witaahwar.ai_analyse_hard_ware_alarm_record_id = #{aiAnalyseHardWareAlarmRecordId}
</select>
<select id="violatorListSort" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
select wi.worker_name,count(*) count
select wi.worker_name, count(*) count
from worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar
join worker_info wi on wi.id = witaahwar.worker_info_id
join worker_info wi on wi.id = witaahwar.worker_info_id
<if test="handleResult != null and handleResult != ''">
join ai_analyse_hard_ware_alarm_record aahwar on aahwar.id = witaahwar.ai_analyse_hard_ware_alarm_record_id
</if>
where wi.project_sn=#{projectSn}
where wi.project_sn = #{projectSn}
<if test="handleResult != null and handleResult != ''">
and aahwar.handle_result = #{handleResult}
</if>
@ -523,22 +531,21 @@
<!--@mbg.generated-->
insert into ai_analyse_hard_ware_alarm_record
(id, project_sn, hardware_name, hardware_id, image_url, alarm_type, `location`, create_time,
rectification_person_id, push_person_ids, `status`, correct_image, correct_remark,
correct_time, request_rectification_date, update_date, handle_result, `desc`, handle_done
)
rectification_person_id, push_person_ids, `status`, correct_image, correct_remark,
correct_time, request_rectification_date, update_date, handle_result, `desc`, handle_done)
values
<foreach collection="list" item="item" separator=",">
(#{item.id,jdbcType=BIGINT}, #{item.projectSn,jdbcType=VARCHAR}, #{item.hardwareName,jdbcType=VARCHAR},
#{item.hardwareId,jdbcType=VARCHAR}, #{item.imageUrl,jdbcType=VARCHAR}, #{item.alarmType,jdbcType=TINYINT},
#{item.location,jdbcType=VARCHAR}, #{item.createTime,jdbcType=VARCHAR},
#{item.rectificationPersonId,jdbcType=BIGINT},
#{item.pushPersonIds,jdbcType=VARCHAR}, #{item.status,jdbcType=TINYINT},
#{item.correctImage,jdbcType=VARCHAR},
#{item.correctRemark,jdbcType=VARCHAR}, #{item.correctTime,jdbcType=VARCHAR},
#{item.requestRectificationDate,jdbcType=VARCHAR},
#{item.updateDate,jdbcType=TIMESTAMP}, #{item.handleResult,jdbcType=INTEGER},
#{item.desc,jdbcType=LONGVARCHAR},
#{item.handleDone,jdbcType=INTEGER})
#{item.hardwareId,jdbcType=VARCHAR}, #{item.imageUrl,jdbcType=VARCHAR}, #{item.alarmType,jdbcType=TINYINT},
#{item.location,jdbcType=VARCHAR}, #{item.createTime,jdbcType=VARCHAR},
#{item.rectificationPersonId,jdbcType=BIGINT},
#{item.pushPersonIds,jdbcType=VARCHAR}, #{item.status,jdbcType=TINYINT},
#{item.correctImage,jdbcType=VARCHAR},
#{item.correctRemark,jdbcType=VARCHAR}, #{item.correctTime,jdbcType=VARCHAR},
#{item.requestRectificationDate,jdbcType=VARCHAR},
#{item.updateDate,jdbcType=TIMESTAMP}, #{item.handleResult,jdbcType=INTEGER},
#{item.desc,jdbcType=LONGVARCHAR},
#{item.handleDone,jdbcType=INTEGER})
</foreach>
</insert>
</mapper>

View File

@ -1,6 +1,7 @@
package com.zhgd.xmgl.modules.video.service;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTypeCountVO;
import java.util.List;
import java.util.Map;
@ -9,7 +10,7 @@ public interface IAiStatisticService {
Map<String,Object> selectAiDevCount(Map<String, Object> map);
Map<String,Object> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);
AiAnalyseHardWareAlarmTypeCountVO selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);
List<Map<String, Object>> selectProjectAiAlarmCountList(Map<String, Object> map);

View File

@ -1,12 +1,14 @@
package com.zhgd.xmgl.modules.video.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
import com.zhgd.xmgl.modules.basicdata.service.impl.DictionaryItemServiceImpl;
import com.zhgd.xmgl.modules.basicdata.service.impl.DictionaryServiceImpl;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTypeCountVO;
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.video.service.IAiStatisticService;
@ -16,9 +18,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @program: wisdomSite
@ -62,20 +67,25 @@ public class AiStatisticServiceImpl implements IAiStatisticService {
DictionaryItemServiceImpl dictionaryItemService;
@Override
public Map<String, Object> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> param) {
Map<String, Object> data = new HashMap<>();
public AiAnalyseHardWareAlarmTypeCountVO selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> param) {
Map<String, Object> map = companyService.getCompanyType(param);
//dictionaryService.queryList()
List<Map<String, Object>> alarmList = aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmTypeCount(map);
List<AiAnalyseHardWareAlarmRecord> alarmList = aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmTypeCount(map);
Map<String, List<AiAnalyseHardWareAlarmRecord>> dateMap = alarmList.stream().collect(Collectors.groupingBy(AiAnalyseHardWareAlarmRecord::getDate));
List<AiAnalyseHardWareAlarmRecord> todayList = dateMap.get(DateUtil.today());
List<AiAnalyseHardWareAlarmRecord> yesterdayList = dateMap.get(DateUtil.formatDate(DateUtil.offsetDay(new Date(), -1)));
Map<Integer, AiAnalyseHardWareAlarmRecord> todayMap = todayList.stream().collect(Collectors.toMap(AiAnalyseHardWareAlarmRecord::getAlarmType, Function.identity(), (aiAnalyseHardWareAlarmRecord, aiAnalyseHardWareAlarmRecord2) -> aiAnalyseHardWareAlarmRecord));
Map<Integer, AiAnalyseHardWareAlarmRecord> yesterdayMap = yesterdayList.stream().collect(Collectors.toMap(AiAnalyseHardWareAlarmRecord::getAlarmType, Function.identity(), (aiAnalyseHardWareAlarmRecord, aiAnalyseHardWareAlarmRecord2) -> aiAnalyseHardWareAlarmRecord));
Integer totalAlarmNum = 0;
if (CollUtil.isNotEmpty(alarmList)) {
for (Map<String, Object> dev : alarmList) {
totalAlarmNum = totalAlarmNum + MapUtils.getInteger(dev, "alarmNum");
for (AiAnalyseHardWareAlarmRecord dev : alarmList) {
totalAlarmNum = totalAlarmNum + dev.getAlarmNum();
}
}
data.put("alarmList", alarmList);
data.put("totalAlarmNum", totalAlarmNum);
return data;
AiAnalyseHardWareAlarmTypeCountVO vo = new AiAnalyseHardWareAlarmTypeCountVO();
vo.setAlarmList(alarmList);
vo.setTotalAlarmNum(totalAlarmNum);
return vo;
}
@Override