ai预警修改

This commit is contained in:
guo 2023-10-25 09:05:41 +08:00
parent 361424d12c
commit bf52d51843
12 changed files with 120 additions and 43 deletions

View File

@ -21,7 +21,7 @@ public class SectorOneVo {
@ApiModelProperty("百分比")
@JsonInclude(JsonInclude.Include.NON_NULL)
private String percent;
@ApiModelProperty("枚举类型")
@ApiModelProperty("枚举类型和字典类型")
@JsonInclude(JsonInclude.Include.NON_NULL)
private Integer enumType;

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.base.entity.vo;
import cn.hutool.core.util.NumberUtil;
import com.zhgd.xmgl.enums.BaseEnum;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -13,6 +14,9 @@ import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 扇形图表
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ -39,7 +43,14 @@ public class SectorVo {
}
public static SectorVo getSectorVo(List<SectorOneVo> list, BaseEnum[] enums) {
/**
* 获取扇形图表
*
* @param list
* @param enums
* @return
*/
public static SectorVo getSectorVoByEnum(List<SectorOneVo> list, BaseEnum[] enums) {
SectorVo vo = new SectorVo();
List<SectorOneVo> rtList = new ArrayList<>();
Map<Integer, SectorOneVo> map = list.stream().collect(Collectors.toMap(SectorOneVo::getEnumType, Function.identity()));
@ -59,6 +70,33 @@ public class SectorVo {
return vo;
}
/**
* 获取扇形图表
*
* @param list
* @param dictionaryItems
* @return
*/
public static SectorVo getSectorVoByDict(List<SectorOneVo> list, List<DictionaryItem> dictionaryItems) {
SectorVo vo = new SectorVo();
List<SectorOneVo> rtList = new ArrayList<>();
Map<Integer, SectorOneVo> map = list.stream().collect(Collectors.toMap(SectorOneVo::getEnumType, Function.identity()));
for (DictionaryItem type : dictionaryItems) {
SectorOneVo vo1 = map.get(Integer.valueOf(type.getData()));
if (vo1 == null) {
vo1 = new SectorOneVo();
vo1.setCount("0");
}
vo1.setName(type.getName());
vo1.setEnumType(Integer.valueOf(type.getData()));
rtList.add(vo1);
}
vo.setData(rtList);
vo.setCount(String.valueOf(rtList.stream().map(o -> Integer.parseInt(o.getCount())).mapToInt(value -> value).sum()));
calPercent(vo);
return vo;
}
/**
* 计算总count
*

View File

@ -0,0 +1,5 @@
package com.zhgd.xmgl.constant;
public interface DictConstant {
String AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE = "ai_analyse_hard_ware_alarm_record_type";
}

View File

@ -62,15 +62,7 @@ public class DictionaryItemController {
@GetMapping(value = "/list")
public Result<List<DictionaryItem>> queryList(DictionaryItem dictionaryItem,
HttpServletRequest req) {
Result<List<DictionaryItem>> result = new Result<>();
QueryWrapper<DictionaryItem> queryWrapper = QueryGenerator.initQueryWrapper(dictionaryItem, req.getParameterMap(), null,
RefUtil.fieldNames(DictionaryItem::getName))
.orderByAsc(RefUtil.fieldNameUlc(DictionaryItem::getOrderNum));
queryWrapper.eq(RefUtil.fieldNameUlc(DictionaryItem::getIsEnable), 1);
List<DictionaryItem> pageList = dictionaryItemService.list(queryWrapper);
result.setSuccess(true);
result.setResult(pageList);
return result;
return Result.success(dictionaryItemService.queryList(dictionaryItem, req));
}
/**

View File

@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.basicdata.entity.DictionariesRecord;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
public interface IDictionaryItemService extends IService<DictionaryItem> {
public List<DictionaryItem> getDictList(String dictionaryEncoding);
void add(DictionaryItem dictionaryItem);
List<DictionaryItem> listEnableByConstructionStage(String projectConstructionStage);
List<DictionaryItem> queryList(DictionaryItem dictionaryItem, HttpServletRequest req);
}

View File

@ -1,17 +1,23 @@
package com.zhgd.xmgl.modules.basicdata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.basicdata.constant.DictionaryItemConstant;
import com.zhgd.xmgl.modules.basicdata.entity.Dictionary;
import com.zhgd.xmgl.modules.basicdata.entity.DictionaryItem;
import com.zhgd.xmgl.modules.basicdata.mapper.DictionaryItemMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.DictionaryMapper;
import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService;
import com.zhgd.xmgl.util.RefUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@ -22,6 +28,19 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
@Autowired
private DictionaryMapper dictionaryMapper;
/**
* 获取字典列表
*
* @param dictionaryEncoding
* @return
*/
public List<DictionaryItem> getDictList(String dictionaryEncoding) {
DictionaryItem di = new DictionaryItem();
di.setDictionaryEncoding(dictionaryEncoding);
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return queryList(di, request);
}
@Override
public void add(DictionaryItem dictionaryItem) {
Long dictionaryId = dictionaryItem.getDictionaryId();
@ -40,4 +59,14 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
.eq(DictionaryItem::getIsEnable, 1)
);
}
@Override
public List<DictionaryItem> queryList(DictionaryItem dictionaryItem, HttpServletRequest req) {
QueryWrapper<DictionaryItem> queryWrapper = QueryGenerator.initQueryWrapper(dictionaryItem, req.getParameterMap(), null,
RefUtil.fieldNames(DictionaryItem::getName))
.orderByAsc(RefUtil.fieldNameUlc(DictionaryItem::getOrderNum));
queryWrapper.eq(RefUtil.fieldNameUlc(DictionaryItem::getIsEnable), 1);
List<DictionaryItem> pageList = list(queryWrapper);
return pageList;
}
}

View File

@ -25,6 +25,6 @@ public class PartyMemberManageServiceImpl extends ServiceImpl<PartyMemberManageM
@Override
public Result<SectorVo> countPartyMemberManagePoliticalStatus(HashMap<String, Object> paramMap) {
List<SectorOneVo> list = baseMapper.countPartyMemberManagePoliticalStatus(paramMap);
return Result.success(SectorVo.getSectorVo(list, ParamEnum.PartyMemberManagePoliticalStatusEnum.values()));
return Result.success(SectorVo.getSectorVoByEnum(list, ParamEnum.PartyMemberManagePoliticalStatusEnum.values()));
}
}

View File

@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.enums.ParamEnum;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
@ -22,7 +22,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
@ -125,7 +128,7 @@ public class AiAnalyseHardWareAlarmRecordController {
@ApiImplicitParam(name = "selectType", value = "查询类型1近七天2最近30天3今日4、24小时", paramType = "query", required = false, dataType = "String"),
})
@PostMapping(value = "/getAiAnalyseHardWareAlarmTotal")
public Result<AiAnalyseHardWareAlarmTrendVo> getAiAnalyseHardWareAlarmTotal(@RequestBody Map<String, Object> map) {
public Result<SectorVo> getAiAnalyseHardWareAlarmTotal(@RequestBody Map<String, Object> map) {
return Result.success(aiAnalyseHardWareAlarmRecordService.getAiAnalyseHardWareAlarmTotal(map));
}

View File

@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.video.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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 org.apache.ibatis.annotations.MapKey;
@ -31,7 +32,7 @@ public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper<AiAnalyse
List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map);
AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
List<SectorOneVo> getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
List<Map<String, Object>> selectAiAnalyseHardWareAlarmTypeCount(Map<String, Object> map);

View File

@ -116,19 +116,16 @@
</if>
</sql>
<select id="getAiAnalyseHardWareAlarmTotal"
resultType="com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTrendVo">
SELECT count(1) totalNum,
IFNULL(SUM((CASE WHEN a.alarm_type = 1 THEN 1 ELSE 0 END)), 0) alarmTypeNum1,
IFNULL(SUM((CASE WHEN a.alarm_type = 2 THEN 1 ELSE 0 END)), 0) alarmTypeNum2,
IFNULL(SUM((CASE WHEN a.alarm_type = 3 THEN 1 ELSE 0 END)), 0) alarmTypeNum3,
IFNULL(SUM((CASE WHEN a.alarm_type = 4 THEN 1 ELSE 0 END)), 0) alarmTypeNum4,
IFNULL(SUM((CASE WHEN a.alarm_type = 5 THEN 1 ELSE 0 END)), 0) alarmTypeNum5,
IFNULL(SUM((CASE WHEN a.alarm_type = 6 THEN 1 ELSE 0 END)), 0) alarmTypeNum6,
IFNULL(SUM((CASE WHEN a.alarm_type = 7 THEN 1 ELSE 0 END)), 0) alarmTypeNum7
FROM ai_analyse_hard_ware_alarm_record a
where a.project_sn = #{projectSn}
resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
SELECT di.name,
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}
<include refid="queryAlarmTime">
</include>
where di.dictionary_encoding = 'ai_analyse_hard_ware_alarm_record_type'
group by di.data
</select>
<select id="selectAiAnalyseHardWareAlarmTypeCount" resultType="java.util.Map" parameterType="java.util.Map">
SELECT w1.alarm_type alarmType,
@ -441,16 +438,16 @@
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,
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

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.video.entity.vo.AiAnalyseHardWareAlarmTotalVo;
@ -28,7 +29,7 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService<AiAnalyse
List<AiAnalyseHardWareAlarmRecord> selectAiAnalyseHardWareAlarmList(Map<String, Object> map);
AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
SectorVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map);
void saveAiAnalyseAlarmData(JSONArray array);

View File

@ -13,11 +13,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncAiAnalyse;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.base.entity.vo.SectorVo;
import com.zhgd.xmgl.constant.DictConstant;
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.mapper.CompanyConfigMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.service.IDictionaryItemService;
import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService;
import com.zhgd.xmgl.modules.basicdata.service.UploadFileService;
import com.zhgd.xmgl.modules.project.entity.Project;
@ -65,6 +69,8 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
private AsyncAiAnalyse asyncAiAnalyse;
@Autowired
private ISystemUserService systemUserService;
@Autowired
private IDictionaryItemService dictionaryItemService;
@Autowired
private IProjectService projectService;
@ -185,8 +191,9 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
}
@Override
public AiAnalyseHardWareAlarmTrendVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
return aiAnalyseHardWareAlarmRecordMapper.getAiAnalyseHardWareAlarmTotal(map);
public SectorVo getAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
List<SectorOneVo> list = aiAnalyseHardWareAlarmRecordMapper.getAiAnalyseHardWareAlarmTotal(map);
return SectorVo.getSectorVoByDict(list, dictionaryItemService.getDictList(DictConstant.AI_ANALYSE_HARD_WARE_ALARM_RECORD_TYPE));
}
/**
@ -341,11 +348,11 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
public AiAnalyseHardWareAlarmTotalVo countAiAnalyseHardWareAlarmTotal(Map<String, Object> map) {
AiAnalyseHardWareAlarmTotalVo vo = new AiAnalyseHardWareAlarmTotalVo();
map.put("selectType", 3);
vo.setTodayAlarmNum(this.getAiAnalyseHardWareAlarmTotal(map).getTotalNum());
vo.setTodayAlarmNum(Integer.valueOf(this.getAiAnalyseHardWareAlarmTotal(map).getCount()));
map.put("selectType", 1);
vo.setPast7AlarmNum(this.getAiAnalyseHardWareAlarmTotal(map).getTotalNum());
vo.setPast7AlarmNum(Integer.valueOf(this.getAiAnalyseHardWareAlarmTotal(map).getCount()));
map.put("selectType", 2);
vo.setPast30AlarmNum(this.getAiAnalyseHardWareAlarmTotal(map).getTotalNum());
vo.setPast30AlarmNum(Integer.valueOf(this.getAiAnalyseHardWareAlarmTotal(map).getCount()));
return vo;
}
}