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.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));
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -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.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);
|
||||
|
||||
|
||||
@ -47,24 +47,31 @@
|
||||
AND a.create_time <= #{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}
|
||||
@ -180,15 +187,17 @@
|
||||
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 >= 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()">
|
||||
and f.headquarters_sn = #{sn}
|
||||
</if>
|
||||
@ -204,7 +213,7 @@
|
||||
<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,
|
||||
@ -353,8 +362,7 @@
|
||||
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
|
||||
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
|
||||
@ -405,8 +413,7 @@
|
||||
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
|
||||
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')
|
||||
@ -500,7 +507,8 @@
|
||||
</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
|
||||
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>
|
||||
@ -524,8 +532,7 @@
|
||||
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
|
||||
)
|
||||
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},
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user