bug修复
This commit is contained in:
parent
c72a2808ec
commit
d7dd028707
@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.video.controller;
|
|||||||
|
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
import com.zhgd.jeecg.common.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
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 com.zhgd.xmgl.modules.video.service.IAiStatisticService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
@ -45,7 +46,7 @@ public class AiStatisticController {
|
|||||||
@ApiImplicitParam(name = "sn", value = "公司或项目sn", paramType = "body", required = true, dataType = "String"),
|
@ApiImplicitParam(name = "sn", value = "公司或项目sn", paramType = "body", required = true, dataType = "String"),
|
||||||
})
|
})
|
||||||
@PostMapping("/selectAiAnalyseHardWareAlarmTypeCount")
|
@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));
|
return Result.success(aiStatisticService.selectAiAnalyseHardWareAlarmTypeCount(map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -181,5 +181,17 @@ public class AiAnalyseHardWareAlarmRecord implements Serializable {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "AI扣分规则")
|
@ApiModelProperty(value = "AI扣分规则")
|
||||||
private XzAiDeductRule aiDeductRule;
|
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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
@ -6,7 +6,6 @@ import com.zhgd.annotation.DataScope;
|
|||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
||||||
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
|
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 com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||||
import org.apache.ibatis.annotations.MapKey;
|
import org.apache.ibatis.annotations.MapKey;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
@ -36,7 +35,7 @@ public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper<AiAnalyse
|
|||||||
|
|
||||||
List<SectorOneVo> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
|
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);
|
List<Map<String, Object>> selectProjectAiAlarmCountList(Map<String, Object> map);
|
||||||
|
|
||||||
|
|||||||
@ -9,21 +9,21 @@
|
|||||||
<select id="queryAiAnalyseHardWareAlarmPageListTwo"
|
<select id="queryAiAnalyseHardWareAlarmPageListTwo"
|
||||||
resultMap="queryAiAnalyseHardWareAlarmPageListTwoRm">
|
resultMap="queryAiAnalyseHardWareAlarmPageListTwoRm">
|
||||||
SELECT a.*,
|
SELECT a.*,
|
||||||
'安全部' as department_name,
|
'安全部' as department_name,
|
||||||
s.real_name,
|
s.real_name,
|
||||||
group_concat(wi.worker_name) as worker_info_str
|
group_concat(wi.worker_name) as worker_info_str
|
||||||
FROM ai_analyse_hard_ware_alarm_record a
|
FROM ai_analyse_hard_ware_alarm_record a
|
||||||
LEFT JOIN system_user s ON a.rectification_person_id = s.user_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 department_info di on s.department = di.department_name
|
||||||
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
|
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
|
||||||
witaahwar.ai_analyse_hard_ware_alarm_record_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 wi on wi.id = witaahwar.worker_info_id
|
||||||
WHERE a.project_sn = #{param.projectSn}
|
WHERE a.project_sn = #{param.projectSn}
|
||||||
<if test="param.pushPersonId != null">
|
<if test="param.pushPersonId != null">
|
||||||
and find_in_set(#{param.pushPersonId}, a.push_person_ids)
|
and find_in_set(#{param.pushPersonId}, a.push_person_ids)
|
||||||
</if>
|
</if>
|
||||||
<if test="param.hardwareId != null and param.hardwareId != ''">
|
<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>
|
||||||
<if test="param.id != null and param.id != ''">
|
<if test="param.id != null and param.id != ''">
|
||||||
and a.id = #{param.id}
|
and a.id = #{param.id}
|
||||||
@ -47,24 +47,31 @@
|
|||||||
AND a.create_time <= #{param.endTime}
|
AND a.create_time <= #{param.endTime}
|
||||||
</if>
|
</if>
|
||||||
<if test="param.enterpriseId != null and param.enterpriseId != ''">
|
<if test="param.enterpriseId != null and param.enterpriseId != ''">
|
||||||
and a.hardware_id in (
|
and a.hardware_id in (select ai_analyse_hard_ware_record.hardware_id
|
||||||
select ai_analyse_hard_ware_record.hardware_id from ai_analyse_hard_ware_record where id in (
|
from ai_analyse_hard_ware_record
|
||||||
select distinct qrtaah.ai_analyse_hard_ware_record_id from quality_region_to_ai_analyse_hard qrtaah join
|
where id in (select distinct qrtaah.ai_analyse_hard_ware_record_id
|
||||||
quality_region_to_enterprise qrte on qrte.quality_region_id=qrtaah.quality_region_id
|
from quality_region_to_ai_analyse_hard qrtaah
|
||||||
where qrte.enterprise_id = #{param.enterpriseId} OR qrte.enterprise_id IN ( SELECT DISTINCT t.enterprise_id
|
join
|
||||||
FROM
|
quality_region_to_enterprise qrte
|
||||||
(SELECT t.id FROM project_enterprise t WHERE t.enterprise_id = #{param.enterpriseId}) t2 join
|
on qrte.quality_region_id = qrtaah.quality_region_id
|
||||||
project_enterprise
|
where qrte.enterprise_id = #{param.enterpriseId}
|
||||||
t on find_in_set( t2.id, ancestors ) )
|
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>
|
||||||
<if test="param.qualityRegionId != null and param.qualityRegionId != ''">
|
<if test="param.qualityRegionId != null and param.qualityRegionId != ''">
|
||||||
and a.hardware_id in(
|
and a.hardware_id in (select ai_analyse_hard_ware_record.hardware_id
|
||||||
select ai_analyse_hard_ware_record.hardware_id from ai_analyse_hard_ware_record where id in (
|
from ai_analyse_hard_ware_record
|
||||||
select distinct h.ai_analyse_hard_ware_record_id from quality_region_to_ai_analyse_hard h where
|
where id in (select distinct h.ai_analyse_hard_ware_record_id
|
||||||
h.quality_region_id = #{param.qualityRegionId} OR h.quality_region_id IN ( SELECT t.id FROM quality_region t
|
from quality_region_to_ai_analyse_hard h
|
||||||
WHERE find_in_set(#{param.qualityRegionId}, ancestors) ))
|
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>
|
||||||
<if test="param.handleDone != null and param.handleDone != '' or param.handleDone == true">
|
<if test="param.handleDone != null and param.handleDone != '' or param.handleDone == true">
|
||||||
AND a.handle_done = #{param.handleDone}
|
AND a.handle_done = #{param.handleDone}
|
||||||
@ -138,14 +145,14 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectAiAnalyseHardWareAlarmList"
|
<select id="selectAiAnalyseHardWareAlarmList"
|
||||||
resultType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord">
|
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
|
FROM ai_analyse_hard_ware_alarm_record a
|
||||||
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
|
left join worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar on a.id =
|
||||||
witaahwar.ai_analyse_hard_ware_alarm_record_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 wi on wi.id = witaahwar.worker_info_id
|
||||||
where a.project_sn = #{projectSn}
|
where a.project_sn = #{projectSn}
|
||||||
<if test="workerName != null and workerName != ''">
|
<if test="workerName != null and workerName != ''">
|
||||||
and wi.worker_name like concat('%',#{workerName},'%')
|
and wi.worker_name like concat('%', #{workerName}, '%')
|
||||||
</if>
|
</if>
|
||||||
<include refid="queryAlarmTime">
|
<include refid="queryAlarmTime">
|
||||||
</include>
|
</include>
|
||||||
@ -170,25 +177,27 @@
|
|||||||
<select id="getAiAnalyseHardWareAlarmTotal"
|
<select id="getAiAnalyseHardWareAlarmTotal"
|
||||||
resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
|
resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
|
||||||
SELECT di.name,
|
SELECT di.name,
|
||||||
count(a.id) count,
|
count(a.id) count,
|
||||||
di.data enumType
|
di.data enumType
|
||||||
FROM dictionary_item di
|
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 refid="queryAlarmTime">
|
||||||
</include>
|
</include>
|
||||||
where di.dictionary_encoding = 'ai_analyse_hard_ware_alarm_record_type'
|
where di.dictionary_encoding = 'ai_analyse_hard_ware_alarm_record_type'
|
||||||
group by di.data
|
group by di.data
|
||||||
order by count desc
|
order by count desc
|
||||||
</select>
|
</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,
|
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
|
from ai_analyse_hard_ware_alarm_record w1
|
||||||
INNER JOIN project a ON w1.project_sn = a.project_sn
|
INNER JOIN project a ON w1.project_sn = a.project_sn
|
||||||
LEFT JOIN company cp ON a.company_sn = cp.company_sn
|
LEFT JOIN company cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
where w1.create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
where w1.create_time >= CONCAT(DATE_FORMAT(DATE_SUB(now(), interval 1 day), '%Y-%m-%d'), ' 00:00:00')
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and f.headquarters_sn = #{sn}
|
and f.headquarters_sn = #{sn}
|
||||||
</if>
|
</if>
|
||||||
@ -204,20 +213,20 @@
|
|||||||
<if test="companyType == '5'.toString()">
|
<if test="companyType == '5'.toString()">
|
||||||
and cp.company_sn = #{sn}
|
and cp.company_sn = #{sn}
|
||||||
</if>
|
</if>
|
||||||
group by w1.alarm_type
|
group by w1.alarm_type, DATE_FORMAT(w1.create_time, '%Y-%m-%d')
|
||||||
</select>
|
</select>
|
||||||
<select id="selectProjectAiAlarmCountList" resultType="java.util.Map" parameterType="java.util.Map">
|
<select id="selectProjectAiAlarmCountList" resultType="java.util.Map" parameterType="java.util.Map">
|
||||||
SELECT a.project_sn projectSn,
|
SELECT a.project_sn projectSn,
|
||||||
a.project_name projectName,
|
a.project_name projectName,
|
||||||
IFNULL(tp.alarm_num, 0) alarmNum
|
IFNULL(tp.alarm_num, 0) alarmNum
|
||||||
FROM project a
|
FROM project a
|
||||||
INNER JOIN company cp ON a.company_sn = cp.company_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 b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
||||||
from ai_analyse_hard_ware_alarm_record
|
from ai_analyse_hard_ware_alarm_record
|
||||||
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
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
|
GROUP BY project_sn) tp ON a.project_sn = tp.project_sn
|
||||||
<where>
|
<where>
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and f.headquarters_sn = #{sn}
|
and f.headquarters_sn = #{sn}
|
||||||
@ -255,16 +264,16 @@
|
|||||||
, c.project_name name
|
, c.project_name name
|
||||||
</if>
|
</if>
|
||||||
FROM company a
|
FROM company a
|
||||||
LEFT JOIN company b ON b.parent_id = a.company_id
|
LEFT JOIN company b ON b.parent_id = a.company_id
|
||||||
LEFT JOIN company cp ON b.company_id = cp.parent_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 project c ON cp.company_sn = c.company_sn
|
||||||
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
||||||
from ai_analyse_hard_ware_alarm_record
|
from ai_analyse_hard_ware_alarm_record
|
||||||
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
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
|
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
WHERE a.headquarters_sn = #{sn}
|
WHERE a.headquarters_sn = #{sn}
|
||||||
AND a.company_type = 2
|
AND a.company_type = 2
|
||||||
GROUP BY a.company_id
|
GROUP BY a.company_id
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '2'.toString()">
|
<if test="companyType == '2'.toString()">
|
||||||
@ -287,10 +296,10 @@
|
|||||||
<select id="selectAiAlarmRecordList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
<select id="selectAiAlarmRecordList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
|
||||||
SELECT w1.*, a.project_name
|
SELECT w1.*, a.project_name
|
||||||
from ai_analyse_hard_ware_alarm_record w1
|
from ai_analyse_hard_ware_alarm_record w1
|
||||||
INNER JOIN project a ON w1.project_sn = a.project_sn
|
INNER JOIN project a ON w1.project_sn = a.project_sn
|
||||||
LEFT JOIN company cp ON a.company_sn = cp.company_sn
|
LEFT JOIN company cp ON a.company_sn = cp.company_sn
|
||||||
INNER JOIN company b ON cp.parent_id = b.company_id
|
INNER JOIN company b ON cp.parent_id = b.company_id
|
||||||
Left JOIN company f ON b.parent_id = f.company_id
|
Left JOIN company f ON b.parent_id = f.company_id
|
||||||
<where>
|
<where>
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and f.headquarters_sn = #{sn}
|
and f.headquarters_sn = #{sn}
|
||||||
@ -315,16 +324,16 @@
|
|||||||
<select id="selectTotalAiAlarmCount" resultType="java.lang.Integer">
|
<select id="selectTotalAiAlarmCount" resultType="java.lang.Integer">
|
||||||
SELECT IFNULL(SUM(IFNULL(tp.alarm_num, 0)), 0) alarmNum
|
SELECT IFNULL(SUM(IFNULL(tp.alarm_num, 0)), 0) alarmNum
|
||||||
FROM company a
|
FROM company a
|
||||||
LEFT JOIN company b ON b.parent_id = a.company_id
|
LEFT JOIN company b ON b.parent_id = a.company_id
|
||||||
LEFT JOIN company cp ON b.company_id = cp.parent_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 project c ON cp.company_sn = c.company_sn
|
||||||
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
||||||
from ai_analyse_hard_ware_alarm_record
|
from ai_analyse_hard_ware_alarm_record
|
||||||
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
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
|
GROUP BY project_sn) tp ON c.project_sn = tp.project_sn
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
WHERE a.headquarters_sn = #{sn}
|
WHERE a.headquarters_sn = #{sn}
|
||||||
AND a.company_type = 2
|
AND a.company_type = 2
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '2'.toString()">
|
<if test="companyType == '2'.toString()">
|
||||||
WHERE a.company_sn=#{sn}
|
WHERE a.company_sn=#{sn}
|
||||||
@ -341,23 +350,22 @@
|
|||||||
</select>
|
</select>
|
||||||
<select id="selectTotalAiDevCount" resultType="java.util.Map">
|
<select id="selectTotalAiDevCount" resultType="java.util.Map">
|
||||||
SELECT IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalVideoDev,
|
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
|
FROM company a
|
||||||
LEFT JOIN company b ON b.parent_id = a.company_id
|
LEFT JOIN company b ON b.parent_id = a.company_id
|
||||||
LEFT JOIN company cp ON b.company_id = cp.parent_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 project c ON cp.company_sn = c.company_sn
|
||||||
LEFT JOIN (SELECT t2.project_sn,
|
LEFT JOIN (SELECT t2.project_sn,
|
||||||
COUNT(1) totalDev,
|
COUNT(1) totalDev,
|
||||||
SUM((case when t1.device_state = 1 then 1 else 0 end)) devOnline,
|
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
|
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
|
||||||
FROM video_item t1
|
FROM video_item t1
|
||||||
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
|
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
|
||||||
WHERE t2.is_enable = 1
|
WHERE t2.is_enable = 1
|
||||||
GROUP BY t2.project_sn
|
GROUP BY t2.project_sn) d ON c.project_sn = d.project_sn
|
||||||
) d ON c.project_sn = d.project_sn
|
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
WHERE a.headquarters_sn = #{sn}
|
WHERE a.headquarters_sn = #{sn}
|
||||||
AND a.company_type = 2
|
AND a.company_type = 2
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '2'.toString()">
|
<if test="companyType == '2'.toString()">
|
||||||
WHERE a.company_sn=#{sn}
|
WHERE a.company_sn=#{sn}
|
||||||
@ -374,41 +382,40 @@
|
|||||||
order by totalDev desc
|
order by totalDev desc
|
||||||
</select>
|
</select>
|
||||||
<select id="selectProjectAiStatisticList" resultType="java.util.Map">
|
<select id="selectProjectAiStatisticList" resultType="java.util.Map">
|
||||||
SELECT IFNULL(tp.alarm_num, 0) alarmNum,
|
SELECT IFNULL(tp.alarm_num, 0) alarmNum,
|
||||||
IFNULL(d.videoDevNum, 0) videoDevNum,
|
IFNULL(d.videoDevNum, 0) videoDevNum,
|
||||||
IFNULL(d.aiDevNum, 0) aiDevNum,
|
IFNULL(d.aiDevNum, 0) aiDevNum,
|
||||||
round(IFNULL(TRUNCATE(IFNULL(d.aiDevNum, 0) / IFNULL(d.videoDevNum, 0), 4), 0) * 100, 2) ratioValue,
|
round(IFNULL(TRUNCATE(IFNULL(d.aiDevNum, 0) / IFNULL(d.videoDevNum, 0), 4), 0) * 100, 2) ratioValue,
|
||||||
c.project_name projectName
|
c.project_name projectName
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
,
|
,
|
||||||
a.company_name companyName
|
a.company_name companyName
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '2'.toString()">
|
<if test="companyType == '2'.toString()">
|
||||||
,
|
,
|
||||||
b.company_name companyName
|
b.company_name companyName
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '3'.toString()">
|
<if test="companyType == '3'.toString()">
|
||||||
,
|
,
|
||||||
cp.company_name companyName
|
cp.company_name companyName
|
||||||
</if>
|
</if>
|
||||||
<if test="companyType == '4'.toString() or companyType == '5'.toString()">
|
<if test="companyType == '4'.toString() or companyType == '5'.toString()">
|
||||||
,
|
,
|
||||||
cp.company_name companyName
|
cp.company_name companyName
|
||||||
</if>
|
</if>
|
||||||
FROM company a
|
FROM company a
|
||||||
INNER JOIN company b ON b.parent_id = a.company_id
|
INNER JOIN company b ON b.parent_id = a.company_id
|
||||||
INNER JOIN company cp ON b.company_id = cp.parent_id
|
INNER JOIN company cp ON b.company_id = cp.parent_id
|
||||||
INNER JOIN project c ON cp.company_sn = c.company_sn
|
INNER JOIN project c ON cp.company_sn = c.company_sn
|
||||||
LEFT JOIN (SELECT t2.project_sn,
|
LEFT JOIN (SELECT t2.project_sn,
|
||||||
COUNT(1) videoDevNum,
|
COUNT(1) videoDevNum,
|
||||||
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
|
SUM((case when t1.ai_function_type = 1 then 1 else 0 end)) aiDevNum
|
||||||
FROM video_item t1
|
FROM video_item t1
|
||||||
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
|
INNER JOIN project_video_config t2 ON t2.id = t1.video_id
|
||||||
WHERE t2.is_enable = 1
|
WHERE t2.is_enable = 1
|
||||||
GROUP BY t2.project_sn
|
GROUP BY t2.project_sn) d ON c.project_sn = d.project_sn
|
||||||
) d ON c.project_sn = d.project_sn
|
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
||||||
LEFT JOIN (SELECT project_sn, COUNT(1) alarm_num
|
from ai_analyse_hard_ware_alarm_record
|
||||||
from ai_analyse_hard_ware_alarm_record
|
|
||||||
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
WHERE create_time >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00')
|
||||||
<if test="alarmType != null and alarmType != ''">
|
<if test="alarmType != null and alarmType != ''">
|
||||||
and alarm_type = #{alarmType}
|
and alarm_type = #{alarmType}
|
||||||
@ -417,7 +424,7 @@
|
|||||||
<where>
|
<where>
|
||||||
<if test="companyType == '1'.toString()">
|
<if test="companyType == '1'.toString()">
|
||||||
and a.headquarters_sn = #{sn}
|
and a.headquarters_sn = #{sn}
|
||||||
AND a.company_type = 2
|
AND a.company_type = 2
|
||||||
</if>
|
</if>
|
||||||
<if test="projectName != null and projectName != ''">
|
<if test="projectName != null and projectName != ''">
|
||||||
and c.project_name like CONCAT(CONCAT('%', #{projectName}), '%')
|
and c.project_name like CONCAT(CONCAT('%', #{projectName}), '%')
|
||||||
@ -480,19 +487,19 @@
|
|||||||
SELECT id,
|
SELECT id,
|
||||||
project_sn,
|
project_sn,
|
||||||
hardware_name,
|
hardware_name,
|
||||||
hardware_id,
|
hardware_id,
|
||||||
image_url,
|
image_url,
|
||||||
alarm_type,
|
alarm_type,
|
||||||
location,
|
location,
|
||||||
create_time,
|
create_time,
|
||||||
rectification_person_id,
|
rectification_person_id,
|
||||||
status,
|
status,
|
||||||
request_rectification_date,
|
request_rectification_date,
|
||||||
update_date,
|
update_date,
|
||||||
push_person_ids,
|
push_person_ids,
|
||||||
correct_time,
|
correct_time,
|
||||||
correct_image,
|
correct_image,
|
||||||
correct_remark
|
correct_remark
|
||||||
from ai_analyse_hard_ware_alarm_record
|
from ai_analyse_hard_ware_alarm_record
|
||||||
WHERE location = #{location}
|
WHERE location = #{location}
|
||||||
ORDER BY id DESC
|
ORDER BY id DESC
|
||||||
@ -500,19 +507,20 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getViolatorList" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
|
<select id="getViolatorList" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
|
||||||
select wi.* from worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar
|
select wi.*
|
||||||
join worker_info wi on wi.id = witaahwar.worker_info_id
|
from worker_info_to_ai_analyse_hard_ware_alarm_record witaahwar
|
||||||
where witaahwar.ai_analyse_hard_ware_alarm_record_id=#{aiAnalyseHardWareAlarmRecordId}
|
join worker_info wi on wi.id = witaahwar.worker_info_id
|
||||||
|
where witaahwar.ai_analyse_hard_ware_alarm_record_id = #{aiAnalyseHardWareAlarmRecordId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="violatorListSort" resultType="com.zhgd.xmgl.modules.worker.entity.WorkerInfo">
|
<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
|
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 != ''">
|
<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
|
join ai_analyse_hard_ware_alarm_record aahwar on aahwar.id = witaahwar.ai_analyse_hard_ware_alarm_record_id
|
||||||
</if>
|
</if>
|
||||||
where wi.project_sn=#{projectSn}
|
where wi.project_sn = #{projectSn}
|
||||||
<if test="handleResult != null and handleResult != ''">
|
<if test="handleResult != null and handleResult != ''">
|
||||||
and aahwar.handle_result = #{handleResult}
|
and aahwar.handle_result = #{handleResult}
|
||||||
</if>
|
</if>
|
||||||
@ -523,22 +531,21 @@
|
|||||||
<!--@mbg.generated-->
|
<!--@mbg.generated-->
|
||||||
insert into ai_analyse_hard_ware_alarm_record
|
insert into ai_analyse_hard_ware_alarm_record
|
||||||
(id, project_sn, hardware_name, hardware_id, image_url, alarm_type, `location`, create_time,
|
(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,
|
rectification_person_id, push_person_ids, `status`, correct_image, correct_remark,
|
||||||
correct_time, request_rectification_date, update_date, handle_result, `desc`, handle_done
|
correct_time, request_rectification_date, update_date, handle_result, `desc`, handle_done)
|
||||||
)
|
|
||||||
values
|
values
|
||||||
<foreach collection="list" item="item" separator=",">
|
<foreach collection="list" item="item" separator=",">
|
||||||
(#{item.id,jdbcType=BIGINT}, #{item.projectSn,jdbcType=VARCHAR}, #{item.hardwareName,jdbcType=VARCHAR},
|
(#{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.hardwareId,jdbcType=VARCHAR}, #{item.imageUrl,jdbcType=VARCHAR}, #{item.alarmType,jdbcType=TINYINT},
|
||||||
#{item.location,jdbcType=VARCHAR}, #{item.createTime,jdbcType=VARCHAR},
|
#{item.location,jdbcType=VARCHAR}, #{item.createTime,jdbcType=VARCHAR},
|
||||||
#{item.rectificationPersonId,jdbcType=BIGINT},
|
#{item.rectificationPersonId,jdbcType=BIGINT},
|
||||||
#{item.pushPersonIds,jdbcType=VARCHAR}, #{item.status,jdbcType=TINYINT},
|
#{item.pushPersonIds,jdbcType=VARCHAR}, #{item.status,jdbcType=TINYINT},
|
||||||
#{item.correctImage,jdbcType=VARCHAR},
|
#{item.correctImage,jdbcType=VARCHAR},
|
||||||
#{item.correctRemark,jdbcType=VARCHAR}, #{item.correctTime,jdbcType=VARCHAR},
|
#{item.correctRemark,jdbcType=VARCHAR}, #{item.correctTime,jdbcType=VARCHAR},
|
||||||
#{item.requestRectificationDate,jdbcType=VARCHAR},
|
#{item.requestRectificationDate,jdbcType=VARCHAR},
|
||||||
#{item.updateDate,jdbcType=TIMESTAMP}, #{item.handleResult,jdbcType=INTEGER},
|
#{item.updateDate,jdbcType=TIMESTAMP}, #{item.handleResult,jdbcType=INTEGER},
|
||||||
#{item.desc,jdbcType=LONGVARCHAR},
|
#{item.desc,jdbcType=LONGVARCHAR},
|
||||||
#{item.handleDone,jdbcType=INTEGER})
|
#{item.handleDone,jdbcType=INTEGER})
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.zhgd.xmgl.modules.video.service;
|
package com.zhgd.xmgl.modules.video.service;
|
||||||
|
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
|
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTypeCountVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -9,7 +10,7 @@ public interface IAiStatisticService {
|
|||||||
|
|
||||||
Map<String,Object> selectAiDevCount(Map<String, Object> map);
|
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);
|
List<Map<String, Object>> selectProjectAiAlarmCountList(Map<String, Object> map);
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
package com.zhgd.xmgl.modules.video.service.impl;
|
package com.zhgd.xmgl.modules.video.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.ICompanyService;
|
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.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.AiAnalyseHardWareAlarmRecordMapper;
|
||||||
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
|
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
|
||||||
import com.zhgd.xmgl.modules.video.service.IAiStatisticService;
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @program: wisdomSite
|
* @program: wisdomSite
|
||||||
@ -62,20 +67,25 @@ public class AiStatisticServiceImpl implements IAiStatisticService {
|
|||||||
DictionaryItemServiceImpl dictionaryItemService;
|
DictionaryItemServiceImpl dictionaryItemService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> param) {
|
public AiAnalyseHardWareAlarmTypeCountVO selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> param) {
|
||||||
Map<String, Object> data = new HashMap<>();
|
|
||||||
Map<String, Object> map = companyService.getCompanyType(param);
|
Map<String, Object> map = companyService.getCompanyType(param);
|
||||||
//dictionaryService.queryList()
|
List<AiAnalyseHardWareAlarmRecord> alarmList = aiAnalyseHardWareAlarmRecordMapper.selectAiAnalyseHardWareAlarmTypeCount(map);
|
||||||
List<Map<String, Object>> 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;
|
Integer totalAlarmNum = 0;
|
||||||
if (CollUtil.isNotEmpty(alarmList)) {
|
if (CollUtil.isNotEmpty(alarmList)) {
|
||||||
for (Map<String, Object> dev : alarmList) {
|
for (AiAnalyseHardWareAlarmRecord dev : alarmList) {
|
||||||
totalAlarmNum = totalAlarmNum + MapUtils.getInteger(dev, "alarmNum");
|
totalAlarmNum = totalAlarmNum + dev.getAlarmNum();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
data.put("alarmList", alarmList);
|
AiAnalyseHardWareAlarmTypeCountVO vo = new AiAnalyseHardWareAlarmTypeCountVO();
|
||||||
data.put("totalAlarmNum", totalAlarmNum);
|
vo.setAlarmList(alarmList);
|
||||||
return data;
|
vo.setTotalAlarmNum(totalAlarmNum);
|
||||||
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user