Commit 2d5a80b2 authored by 麻笑宇's avatar 麻笑宇

应急处置 / 即时警情列表

检验检测 / 业务办理量/办结率统计(近30天) 代码提交
parent 5756be0e
......@@ -18,6 +18,11 @@ public class DPFilterParamForDetailDto {
private String cityCode;
/**
* 机构
*/
private String orgCode;
/**
* 业务类型
*/
private String businessType;
......@@ -107,5 +112,62 @@ public class DPFilterParamForDetailDto {
* 业务状态
*/
private String status;
/**
* 工单编号
*/
private String workOrderNumber;
/**
* 接警人
*/
private String recUserName;
/**
* 求援人
*/
private String emergencyPerson;
/**
* 求援开始事件
*/
private String emergencyStartTime;
/**
* 求援结束事件
*/
private String emergencyEndTime;
/**
* 求援电话
*/
private String emergencyCall;
/**
* 电梯识别码
*/
private String deviceId;
/**
* 警情状态
*/
private String alertStatus;
/**
* 处置环节
*/
private String alertStage;
/**
* 检测结果
*/
private String inspectionConclusion;
/**
* 发起单位
*/
private String applicationUnitName;
/**
* 接受单位
*/
private String inspectionUnitName;
}
package com.yeejoin.amos.boot.module.common.api.enums;
import java.util.*;
/**
* 警情枚举类
*/
public enum AlertCallEnum {
//警情类型
KRJY("960","困人救援","JQLX", false),
GZWX("961","故障维修","JQLX", false),
TSZX("962","投诉咨询","JQLX", false),
//警情来源类型
DHBJ("963","电话报警","JQLYLX", true),
WLJR("1014","物联接入","JQLYLX", true),
YDDSB("1015","移动端上报","JQLYLX", true),
//处置环节
YJJ("860", "已接警", "CZHJ", true),
YPQ("861", "已派遣", "CZHJ", true),
YDS("862", "已到达", "CZHJ", true),
WBYDD("863", "维保已到达", "CZHJ", true),
JYWC("864", "救援完成", "CZHJ", true),
JYHF("865", "救援回访", "CZHJ", true),
WXWC("866", "维修完成", "CZHJ", true),
BXRYFK("867", "报修人已反馈", "CZHJ", true),
WBYCZ("868", "维保已处置", "CZHJ", true),
TSRYFK("869", "投诉人已反馈", "CZHJ", true),
WJA("0", "未结案", "WCZT", true),
YJA("1", "已结案", "WCZT", true),
;
private AlertCallEnum(String code, String name, String type,Boolean isSearch){
this.code=code;
this.name=name;
this.type=type;
this.isSearch=isSearch;
}
private String code;
private String name;
private String type;
private Boolean isSearch;
public String getCode() {
return code;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public Boolean getSearch() {
return isSearch;
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (AlertCallEnum testEnum : EnumSet.allOf(AlertCallEnum.class)) {
if(!testEnum.getSearch()) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
list.add(map);
}
}
return list;
}
public static Map<String,List<Map<String,Object>>> getSearchEnumList() {
Map<String,List<Map<String,Object>>> searchMap = new HashMap<>();
for (AlertCallEnum testEnum : EnumSet.allOf(AlertCallEnum.class)) {
if(testEnum.getSearch()) {
// 检查 searchMap 中是否存在 testEnum.type 对应的值
List existingList = searchMap.get(testEnum.type);
// 如果不存在,则创建一个新的 ArrayList
if (existingList == null) {
existingList = new ArrayList<>();
searchMap.put(testEnum.type, existingList);
}
// 创建一个 map 并添加到 list 中
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
existingList.add(map);
}
}
return searchMap;
}
}
package com.yeejoin.amos.boot.module.common.api.enums;
import java.util.*;
/**
* 警情枚举类
*/
public enum JYJCResultEnum {
//警情类型
KRJY("960","困人救援","JQLX", false),
GZWX("961","故障维修","JQLX", false),
TSZX("962","投诉咨询","JQLX", false),
//检测结果
HG("6040","合格","YYJG", true),
BHG("6041","不合格","YYJG", true),
FJHG("6042","复检合格","YYJG", true),
FJBHG("6043","复检不合格","YYJG", true),
QT("6044","其他","YYJG", true),
ZGHHG("6045","整改后合格","YYJG", true),
FY("6046","符合","YYJG", true),
BFH("6047","不符合","YYJG", true),
FHYQ("6048","符合要求","YYJG", true),
JBFHYQ("6049","基本符合要求","YYJG", true),
BFHYQ("6050","不符合要求","YYJG", true),
YXSY("6051","允许使用","YYJG", true),
JYSY("6052","降压使用","YYJG", true),
JXHYSYPJ("6053","进行合于使用评价","YYJG", true),
;
private JYJCResultEnum(String code, String name, String type, Boolean isSearch){
this.code=code;
this.name=name;
this.type=type;
this.isSearch=isSearch;
}
private String code;
private String name;
private String type;
private Boolean isSearch;
public String getCode() {
return code;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public Boolean getSearch() {
return isSearch;
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (JYJCResultEnum testEnum : EnumSet.allOf(JYJCResultEnum.class)) {
if(!testEnum.getSearch()) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
list.add(map);
}
}
return list;
}
public static Map<String,List<Map<String,Object>>> getSearchEnumList() {
Map<String,List<Map<String,Object>>> searchMap = new HashMap<>();
for (JYJCResultEnum testEnum : EnumSet.allOf(JYJCResultEnum.class)) {
if(testEnum.getSearch()) {
// 检查 searchMap 中是否存在 testEnum.type 对应的值
List existingList = searchMap.get(testEnum.type);
// 如果不存在,则创建一个新的 ArrayList
if (existingList == null) {
existingList = new ArrayList<>();
searchMap.put(testEnum.type, existingList);
}
// 创建一个 map 并添加到 list 中
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.name);
map.put("value", testEnum.code);
existingList.add(map);
}
}
return searchMap;
}
}
package com.yeejoin.amos.boot.module.jyjc.api.enums;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -48,4 +48,15 @@ public enum JYJCTypeEnum {
}
return Arrays.stream(JYJCTypeEnum.values()).filter(e -> e.getBizType().equals(bizType)).collect(Collectors.toList());
}
public static List<HashMap<String,Object>> getTypeEnumList() {
List<HashMap<String, Object>> list = new ArrayList<>();
for (JYJCTypeEnum testEnum : EnumSet.allOf(JYJCTypeEnum.class)) {
HashMap<String, Object> map = new HashMap<>();
map.put("title", testEnum.getName());
map.put("value", testEnum.getCode());
list.add(map);
}
return list;
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipDto;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionApplicationEquipModel;
......@@ -96,6 +97,16 @@ public interface JyjcInspectionApplicationMapper extends BaseMapper<JyjcInspecti
Page<Map<String, Object>> getInspectDetailList(@Param("page") Page<Map<String, Object>> page, @Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto filterParamDto, @Param("businessType") String businessType);
Page<Map<String, Object>> getInspectBusinessList(@Param("page") Page<Map<String, Object>> page, @Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto filterParamDto, @Param("businessType") String businessType);
Long queryQualifiedCount(@Param("orgCode") String orgCode, @Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
Page<Map<String, Object>> queryAllList( @Param("page") Page page,@Param("orgCode") String orgCode, @Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllFlowingAndFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllPendingAndFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long queryAllFinishedCountForDetail(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
}
......@@ -120,6 +120,52 @@ public class JYJCDPStatisticsController {
return ResponseHelper.buildResponse(statisticsService.endRate(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻图表", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻图表")
@PostMapping(value = "/endRateDetail")
public ResponseModel<Map<String, Object>> endRateDetail(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateDetail(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻列表", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻列表")
@PostMapping(value = "/endRateList")
public ResponseModel<Page<Map<String, Object>>> endRateList(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result,
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
Page<Map<String, Object>> page = new Page<>(current,size);
return ResponseHelper.buildResponse(statisticsService.endRateList(dpFilterParamForDetailDto,page));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻类型", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻类型")
@PostMapping(value = "/endRateType")
public ResponseModel<List<Map<String, Object>>> endRateType(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateType(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计下钻筛选类型", notes = "大屏-检验检测-近30日业务办理量/办结率统计下钻筛选类型")
@PostMapping(value = "/endRateSearch")
public ResponseModel<Map<String,List<Map<String,Object>>>> endRateSearch(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRateSearch(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名")
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
......@@ -111,6 +112,42 @@ public class YJDPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表", notes = "大屏-应急-即时警情下钻列表")
@PostMapping(value = "/instantAlertList")
public ResponseModel<Page<Map<String,Object>>> instantAlertList(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result,
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
Page<Map<String, Object>> page = new Page<>(current,size);
return ResponseHelper.buildResponse(statisticsService.instantAlertList(dpFilterParamForDetailDto,page));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表类型", notes = "大屏-应急-即时警情下钻列表类型")
@PostMapping(value = "/getAlertCallType")
public ResponseModel<List<Map<String, Object>>> getAlertCallType(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getAlertCallType(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-即时警情下钻列表筛选", notes = "大屏-应急-即时警情下钻列表筛选")
@PostMapping(value = "/getAlertCallSearch")
public ResponseModel<Map<String,List<Map<String,Object>>>> getAlertCallSearch(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.getAlertCallSearch(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-月度困人故障高发使用单位(默认上月度)", notes = "大屏-应急-月度困人故障高发使用单位")
@PostMapping(value = "/trappedUserHighCompanyCount")
public ResponseModel<List<AlertUseUnitStatisticsDto>> trappedUserHighCompanyCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
......
......@@ -10,7 +10,9 @@ import com.yeejoin.amos.boot.biz.common.dto.JyjcInspectionApplicationDto;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCBusinessTypeEnum;
import com.yeejoin.amos.boot.module.common.api.enums.JYJCResultEnum;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectTimeCountDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.PublicityInspectOrgInfoDto;
......@@ -43,6 +45,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
......@@ -828,12 +831,18 @@ public class JYJCDPStatisticsServiceImpl {
//检验完成
Long finshCount = inspectionApplicationMapper.queryAllFinishedCount(orgCode, dpFilterParamDto);
ydata.add(finshCount);
//检验合格数量
Long qualifiedCount = inspectionApplicationMapper.queryQualifiedCount(orgCode, dpFilterParamDto);
// 计算比率
double completionRate = 0.0;
if (pendingCount != 0 && finshCount != 0) {
completionRate = (double) finshCount / pendingCount;
}
double qualifiedRate = 0.0;
if (finshCount != 0 && qualifiedCount != 0) {
qualifiedRate = (double) qualifiedCount / finshCount;
}
String[] xdata = {
"报检",
"受理",
......@@ -843,10 +852,108 @@ public class JYJCDPStatisticsServiceImpl {
// 格式化比率
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedCompletionRate = df.format(completionRate);
String formattedQualifiedRate = df.format(qualifiedRate);
result.put("xdata",xdata);
result.put("ydata",ydata);
result.put("completionRate",formattedCompletionRate);
result.put("qualifiedRate",formattedQualifiedRate);
return result;
}
public Map<String,Object> endRateDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
DPFilterParamForDetailDto filterParamDto = new DPFilterParamForDetailDto();
BeanUtils.copyProperties(dpFilterParamForDetailDto, filterParamDto);
filterParamDto.setCityCode(r.getRegionCode()+"");
filterParamDto.setOrgCode(orgCode);
Map<String, Object> itemResult = endRateForDetail(filterParamDto);
itemResult.put("xdata",r.getRegionName());
return itemResult;
}).collect(Collectors.toList());
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey","allCount");
map.put("value","总数");
map.put("chartType","bar");
}else{
map.put("dataKey","completionRate");
map.put("value","完结率");
map.put("chartType","line");
}
legendData.add(map);
}
returnMap.put("legendData",legendData);
List xdata = new ArrayList();
List allCount = new ArrayList();
List completionRate = new ArrayList();
for(int i = 0;i<result.size();i++){
xdata.add(result.get(i).get("xdata"));
allCount.add(result.get(i).get("allCount"));
completionRate.add(result.get(i).get("completionRate"));
}
returnMap.put("xdata",xdata);
returnMap.put("finishedNum",allCount);
returnMap.put("percentData",completionRate);
return returnMap;
}
private Map<String, Object> endRateForDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,Object> result = new HashMap<>();
//报检数量
Long allCount = inspectionApplicationMapper.queryAllFlowingAndFinishedCountForDetail(dpFilterParamForDetailDto);
//受理数量
Long pendingCount = inspectionApplicationMapper.queryAllPendingAndFinishedCountForDetail(dpFilterParamForDetailDto);
//检验完成
Long finshCount = inspectionApplicationMapper.queryAllFinishedCountForDetail(dpFilterParamForDetailDto);
// 计算比率
double completionRate = 0.0;
if (pendingCount != 0 && finshCount != 0) {
completionRate = (double) finshCount / pendingCount;
}
// 格式化比率
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedCompletionRate = df.format(completionRate);
result.put("allCount",allCount);
result.put("completionRate",formattedCompletionRate);
return result;
}
public Page<Map<String,Object>> endRateList(DPFilterParamForDetailDto dpFilterParamForDetailDto,Page page){
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
if(orgCode == null){
return null;
}
//报检数量
Page<Map<String,Object>> result = inspectionApplicationMapper.queryAllList(page,orgCode, dpFilterParamForDetailDto);
return result;
}
public Map<String,List<Map<String,Object>>> endRateSearch(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,List<Map<String,Object>>> enumMap = JYJCResultEnum.getSearchEnumList();
return enumMap;
}
public List<Map<String, Object>> endRateType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<HashMap<String, Object>> enumList = JYJCTypeEnum.getTypeEnumList();
List<Map<String,Object>> result = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("title","业务类型");
map.put("value","0");
map.put("children",enumList);
result.add(map);
return result;
}
......
......@@ -15,6 +15,8 @@ import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDateDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
import com.yeejoin.amos.boot.module.common.api.enums.AlertCallEnum;
import com.yeejoin.amos.boot.module.common.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.statistics.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertRescueStatisticsMapper;
import com.yeejoin.amos.boot.module.statistics.api.mapper.AlertStatisticsMapper;
......@@ -215,6 +217,28 @@ public class YJDPStatisticsServiceImpl {
return alertCalledMapper.getAlertPaperInfoList(regionCodes, false);
}
public Page<Map<String,Object>> instantAlertList(DPFilterParamForDetailDto dpFilterParamForDetailDto,Page page) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
dpFilterParamForDetailDto.setOrgCode(orgCode);
return alertCalledMapper.getInstantAlertPage(page,dpFilterParamForDetailDto);
}
public List<Map<String, Object>> getAlertCallType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<HashMap<String, Object>> enumList = AlertCallEnum.getTypeEnumList();
List<Map<String,Object>> result = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
map.put("title","警情类型");
map.put("value","0");
map.put("children",enumList);
result.add(map);
return result;
}
public Map<String,List<Map<String,Object>>> getAlertCallSearch(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
Map<String,List<Map<String,Object>>> enumMap = AlertCallEnum.getSearchEnumList();
return enumMap;
}
public JSONObject trappedUserCount(DPFilterParamDto dpFilterParamDto) throws Exception {
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", Arrays.asList("30分钟内到达次数", "超过30分钟到次数", "一级救援次数", "二级救援次数", "三级救援次数"));
......@@ -649,4 +673,7 @@ public class YJDPStatisticsServiceImpl {
}
return list;
}
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertPaperInfoDto;
......@@ -139,4 +140,5 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
*/
List<CountDto> faultCauseRatio(@Param("regionCode") String regionCode);
Page<Map<String, Object>> getInstantAlertPage(@Param("page") Page page,@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
}
......@@ -677,6 +677,63 @@
longValue ASC
LIMIT 5
</select>
<select id="getInstantAlertPage" resultType="java.util.Map">
SELECT
ac.work_order_number AS workOrderNumber,
ac.rec_user_name AS recUserName,
ac.alarm_type AS alarmType,
ac.emergency_person AS emergencyPerson,
ac.call_time AS callTime,
ac.device_id AS deviceId,
ac.address AS address,
concat(ac.city, ac.district) AS area,
ac.alert_source AS alertSource,
ac.alert_stage AS alertStage,
ac.alert_status AS alertStatus
FROM
tz_alert_called ac
LEFT JOIN tz_dispatch_task dt ON ac.sequence_nbr = dt.alert_id
WHERE 1=1
<if test="dpFilterParamForDetailDto.orgCode != null and dpFilterParamForDetailDto.orgCode != '' ">
AND ac.biz_org_code LIKE CONCAT( #{dpFilterParamForDetailDto.orgCode} , '%')
</if>
<if test="dpFilterParamForDetailDto.workOrderNumber != null and dpFilterParamForDetailDto.workOrderNumber != ''">
AND ac.work_order_number LIKE CONCAT('%', #{dpFilterParamForDetailDto.workOrderNumber}, '%')
</if>
<if test="dpFilterParamForDetailDto.recUserName != null and dpFilterParamForDetailDto.recUserName != ''">
AND ac.rec_user_name LIKE CONCAT('%', #{dpFilterParamForDetailDto.recUserName}, '%')
</if>
<if test="dpFilterParamForDetailDto.emergencyPerson != null and dpFilterParamForDetailDto.emergencyPerson != ''">
AND ac.emergency_person = #{dpFilterParamForDetailDto.emergencyPerson}
</if>
<if test="dpFilterParamForDetailDto.emergencyCall != null and dpFilterParamForDetailDto.emergencyCall != ''">
AND ac.emergency_call LIKE CONCAT('%', #{dpFilterParamForDetailDto.emergencyCall}, '%')
</if>
<if test="dpFilterParamForDetailDto.deviceId != null and dpFilterParamForDetailDto.deviceId != ''">
AND ac.device_id = LIKE CONCAT('%', #{dpFilterParamForDetailDto.deviceId}, '%')
</if>
<if test="dpFilterParamForDetailDto.address != null and dpFilterParamForDetailDto.address != ''">
AND ac.address LIKE CONCAT('%', #{dpFilterParamForDetailDto.address}, '%')
</if>
<if test="dpFilterParamForDetailDto.emergencyStartTime != null and dpFilterParamForDetailDto.emergencyStartTime != ''">
AND dt.arrive_time &gt;= #{dpFilterParamForDetailDto.emergencyStartTime}
</if>
<if test="dpFilterParamForDetailDto.emergencyEndTime != null and dpFilterParamForDetailDto.emergencyEndTime != ''">
AND dt.arrive_time &lt;= #{dpFilterParamForDetailDto.emergencyEndTime}
</if>
<if test="dpFilterParamForDetailDto.alertSourceCode != null and dpFilterParamForDetailDto.alertSourceCode != ''">
AND ac.alert_source_code = #{dpFilterParamForDetailDto.alertSourceCode}
</if>
<if test="dpFilterParamForDetailDto.alertStage != null and dpFilterParamForDetailDto.alertStage != ''">
AND ac.alert_stage = #{dpFilterParamForDetailDto.alertStage}
</if>
<if test="dpFilterParamForDetailDto.alertStatus != null and dpFilterParamForDetailDto.alertStatus != ''">
AND ac.alert_status = #{dpFilterParamForDetailDto.alertStatus}
</if>
<if test="dpFilterParamForDetailDto.alertTypeCode != null and dpFilterParamForDetailDto.alertTypeCode != '' and dpFilterParamForDetailDto.alertTypeCode != '0'">
AND ac.alarm_type_code = #{dpFilterParamForDetailDto.alertTypeCode}
</if>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment