Commit 6abaa84f authored by suhuiguang's avatar suhuiguang

1.区县未在amos创建公司时代码报错处理

parent ce777e3b
......@@ -33,15 +33,17 @@ public class CylinderFillingMessageService extends BaseService<CylinderFillingMe
public IPage<CylinderFillingMessageModel> getUploadCylinderLogs(PageParam pageParam, String regionCode) {
CompanyModel result = Privilege.companyClient.queryByCompanyCode(regionCode).getResult();
Page<CylinderFillingMessageModel> page = new Page<>(pageParam.getCurrent(), pageParam.getSize());
IPage<CylinderFillingMessageModel> uploadCylinderLogsByOrgCode = getUploadCylinderLogsByOrgCode(page, result.getOrgCode());
List<String> appIds = uploadCylinderLogsByOrgCode.getRecords().stream().map(CylinderFillingMessageModel::getAppId).collect(Collectors.toList()).stream().filter(x -> !ValidationUtil.isEmpty(x)).distinct().collect(Collectors.toList());
if(appIds.size() > 0){
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoDtos = iTzBaseEnterpriseInfoService.queryByAppId(appIds);
if (!ValidationUtil.isEmpty(tzBaseEnterpriseInfoDtos)){
Map<String, String> map = tzBaseEnterpriseInfoDtos.stream().collect(Collectors.toMap(TzBaseEnterpriseInfoDto::getAppId, TzBaseEnterpriseInfoDto::getUseUnitCode));
uploadCylinderLogsByOrgCode.getRecords().forEach(x -> {
x.setUseUnitCode(map.get(x.getAppId()));
});
if(result != null){
IPage<CylinderFillingMessageModel> uploadCylinderLogsByOrgCode = getUploadCylinderLogsByOrgCode(page, result.getOrgCode());
List<String> appIds = uploadCylinderLogsByOrgCode.getRecords().stream().map(CylinderFillingMessageModel::getAppId).collect(Collectors.toList()).stream().filter(x -> !ValidationUtil.isEmpty(x)).distinct().collect(Collectors.toList());
if(appIds.size() > 0){
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoDtos = iTzBaseEnterpriseInfoService.queryByAppId(appIds);
if (!ValidationUtil.isEmpty(tzBaseEnterpriseInfoDtos)){
Map<String, String> map = tzBaseEnterpriseInfoDtos.stream().collect(Collectors.toMap(TzBaseEnterpriseInfoDto::getAppId, TzBaseEnterpriseInfoDto::getUseUnitCode));
uploadCylinderLogsByOrgCode.getRecords().forEach(x -> {
x.setUseUnitCode(map.get(x.getAppId()));
});
}
}
}
return page;
......
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.dto.KeyValueDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.statistics.api.dto.EquipQuestionNumCountDto;
......@@ -32,7 +33,7 @@ public interface AQZSDPStatisticsMapper {
List<Map<String, Object>> issueMonthList(@Param("orgCode") String orgCode, @Param("time") String time);
List<Map<String, Object>> issueProblemLevelCount(@Param("orgCode") String orgCode, @Param("time") String time);
List<CountDto> issueProblemLevelCount(@Param("orgCode") String orgCode, @Param("time") String time);
List<Map<String, Object>> issueCompanyTop(@Param("orgCode") String orgCode, @Param("time") String time);
......
......@@ -136,19 +136,18 @@
AND A.EQU_CATEGORY = '2300'
</select>
<select id="issueProblemLevelCount" resultType="java.util.Map">
<select id="issueProblemLevelCount" resultType="com.yeejoin.amos.boot.biz.common.dto.CountDto">
SELECT
COUNT
( 1 ),
problem_level AS problemLevel
COUNT(1) as longValue,
problem_level_code AS keyStr
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y') = #{time}
AND problem_level IS NOT NULL
AND problem_level_code IS NOT NULL
GROUP BY
problem_level
problem_level_code
ORDER BY
problem_level_code
</select>
......
......@@ -31,7 +31,7 @@ public class AQZSDPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "大屏-气瓶-区域安全指数")
@ApiOperation(value = "大屏-气瓶-区域安全指数排名")
@PostMapping(value = "/security-index")
public ResponseModel<Map<String, Object>> getSecurityIndex(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult bindingResult) throws Exception {
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
......
......@@ -117,7 +117,7 @@ public class JGDPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "监管大屏-左侧设备状态情况统计", notes = "监管大屏-左侧设备状态情况统计")
@ApiOperation(httpMethod = "POST", value = "大屏-监管-左侧设备状态情况统计", notes = "大屏-监管-左侧设备状态情况统计")
@PostMapping(value = "/equStateCount")
public ResponseModel<List<Map<String, Object>>> equStateCount(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
......
......@@ -120,7 +120,7 @@ public class YJDPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-维保单位平均救援时间排名", notes = "大屏-应急-维保单位平均救援时间排名")
@PostMapping(value = "/rankUnitByRescueTime")
public ResponseModel<List<Map<String, Object>>> rankUnitByRescueTime(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
public ResponseModel<List<Map<String, Object>>> rankUnitByRescueTime(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
......@@ -131,7 +131,7 @@ public class YJDPStatisticsController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-各地市应急事件总数排名", notes = "大屏-应急-各地市应急事件总数排名")
@PostMapping(value = "/regionEventRank")
public ResponseModel<JSONObject> regionEventRank(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
public ResponseModel<JSONObject> regionEventRank(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
......
......@@ -133,9 +133,9 @@ public class CylinderDPStatisticsServiceImpl {
}
public Map<String, Object> getCylinderStatisticsDataByCity(DPFilterParamDto dpFilterParamDto) throws Exception {
public Map<String, Object> getCylinderStatisticsDataByCity(DPFilterParamDto dpFilterParamDto) {
String regionCode = dpFilterParamDto.getCityCode();
List<RegionModel> regionList = stCommonService.setRegionIfRootParent(regionCode);
List<RegionModel> regionList = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(regionCode);
List<Map<String, Object>> legendData = new ArrayList<>();
List<String> xdata = this.buildXData(regionList);
List<Long> qiping = getYDataForQP(regionList);
......@@ -372,24 +372,19 @@ public class CylinderDPStatisticsServiceImpl {
}
public List<CylinderFillingRecordStatisticsDto> fillingTimesAndQuantity(String reginCode) {
String orgCode = null;
CompanyModel result = Privilege.companyClient.queryByCompanyCode(reginCode).getResult();
orgCode = result.getOrgCode();
String orgCode = stCommonService.getAndSetOrgCode(reginCode);
List<String> times = new ArrayList<>();
for (int i = 0; i < 30; i++) {
times.add(LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
List<CylinderFillingRecordStatisticsDto> fillingRecord = cylinderInfoMapper.queryFillingRecordByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
List<CylinderFillingRecordStatisticsDto> offloading = cylinderInfoMapper.queryoffloadingByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
if (fillingRecord == null) {
fillingRecord = new ArrayList<>(0);
}
if (offloading == null) {
offloading = new ArrayList<>(0);
List<CylinderFillingRecordStatisticsDto> fillingRecord = new ArrayList<>(0);
List<CylinderFillingRecordStatisticsDto> offloading = new ArrayList<>(0);
if(orgCode != null){
fillingRecord = cylinderInfoMapper.queryFillingRecordByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
offloading = cylinderInfoMapper.queryoffloadingByOrgCode(orgCode, LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
Map<String, String> fillingRecordMap = fillingRecord.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, f -> f.getFillingQuantity()));
Map<String, String> offloadingMap = offloading.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, f -> f.getOffloadingVolume()));
Map<String, String> fillingRecordMap = fillingRecord.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, CylinderFillingRecordStatisticsDto::getFillingQuantity));
Map<String, String> offloadingMap = offloading.stream().collect(Collectors.toMap(CylinderFillingRecordStatisticsDto::getTime, CylinderFillingRecordStatisticsDto::getOffloadingVolume));
List<CylinderFillingRecordStatisticsDto> data = new ArrayList<>();
for (String key : times) {
CylinderFillingRecordStatisticsDto dayData = new CylinderFillingRecordStatisticsDto();
......@@ -404,8 +399,10 @@ public class CylinderDPStatisticsServiceImpl {
public List<Map<String, Object>> cylinderIssueMonthList(String regionCode) {
String orgCode = stCommonService.getAndSetOrgCode(regionCode);
if(orgCode == null){
return new ArrayList<>();
}
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
List<Map<String, Object>> list = statisticsMapper.cylinderIssueMonthList(orgCode, time);
return list;
return statisticsMapper.cylinderIssueMonthList(orgCode, time);
}
}
\ No newline at end of file
......@@ -210,7 +210,7 @@ public class JYJCDPStatisticsServiceImpl {
public Map<String, Object> inspectPersonCount(DPFilterParamDto dpFilterParamDto) {
// 2.按照前端约定格式返回数据
Map<String, Object> result = new HashMap<>();
List<RegionModel> childRegion = stCommonService.setRegionIfRootParent(dpFilterParamDto);
List<RegionModel> childRegion = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(dpFilterParamDto);
if (childRegion.isEmpty()) {
return new HashMap<>(0);
}
......@@ -250,6 +250,10 @@ public class JYJCDPStatisticsServiceImpl {
JYJCTypeEnum[] jyjcTypeEnums = JYJCTypeEnum.values();
//2.1 x轴数据构造
result.put("xdata", this.getXDataForInspectBizNumCount(jyjcTypeEnums));
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return result;
}
//2.3 y轴数据构造
this.buildYDataForFlowingAndFinishedInspectApp(result, jyjcTypeEnums, dpFilterParamDto);
return result;
......@@ -263,6 +267,10 @@ public class JYJCDPStatisticsServiceImpl {
JYJCTypeEnum[] jyjcTypeEnums = JYJCTypeEnum.values();
//2.1 x轴数据构造
result.put("xdata", this.getXDataForInspectBizNumCount(jyjcTypeEnums));
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return result;
}
//2.3 y轴数据构造
this.buildYDataForPendingResultInspectApp(result, jyjcTypeEnums, dpFilterParamDto);
return result;
......@@ -295,11 +303,17 @@ public class JYJCDPStatisticsServiceImpl {
public List<InspectionTimelinesDto> queryInspectionTimelinessTopXX(String top, DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return new ArrayList<>();
}
return inspectionResultMapper.queryInspectionTimelinessTopXX(top, orgCode, dpFilterParamDto);
}
public List<PublicityInspectOrgInfoDto> queryInspectionOrgListForPublicity(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return new ArrayList<>();
}
return openingApplicationMapper.queryInspectionOrgListForPublicity(orgCode, dpFilterParamDto);
}
......@@ -311,6 +325,9 @@ public class JYJCDPStatisticsServiceImpl {
// 2.x轴数据构建
List<EquipmentCategoryDto> equipmentCategoryDtos = equipmentCategoryMapper.selectClassify();
this.setXDataForInspectionEquipByEquList(result, equipmentCategoryDtos);
if(orgCode == null){
return result;
}
// 3.y轴数据设置
// 目前都单设备报检故统计主表即可
List<CountDto> countDtos = inspectionApplicationMapper.queryAppByEquListForDP(orgCode, dpFilterParamDto);
......@@ -472,6 +489,10 @@ public class JYJCDPStatisticsServiceImpl {
List<EquipmentCategoryDto> equipmentCategoryDtos = equipmentCategoryMapper.selectClassify();
// 2.x轴数据构造
result.put("xdata", this.getEquListXDataCommon(equipmentCategoryDtos));
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return result;
}
// 3.y轴数据构造
this.buildYDataForJyTime(result, dpFilterParamDto, equipmentCategoryDtos);
return result;
......
......@@ -17,6 +17,7 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.bouncycastle.pqc.crypto.newhope.NHOtherInfoGenerator;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
......@@ -36,6 +37,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -54,6 +56,12 @@ public class StCommonServiceImpl {
*/
public final static String EQU_CATEGORY_CYLINDER = "2300";
/**
* 行政区划级别-3级
*/
public final static String REGION_LEVEL_THIRD = "3";
private CommonBaseMapper commonMapper;
private RestHighLevelClient restHighLevelClient;
......@@ -66,6 +74,8 @@ public class StCommonServiceImpl {
private static Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
private static Map<Integer, RegionModel> regionCodeRegionMap = new ConcurrentHashMap<>();
private static List<RegionModel> regionModels = new ArrayList<>();
private static List<EquipmentCategoryDto> equipmentCategoryDtos;
......@@ -98,6 +108,7 @@ public class StCommonServiceImpl {
regionModels.add(r);
this.loopSetChildRegin(regionModels, r.getChildren());
});
regionCodeRegionMap = regionModels.stream().collect(Collectors.toMap(RegionModel::getRegionCode, Function.identity(),(k1,k2)->k2));
}
private void loopSetChildRegin(List<RegionModel> regionModels, Collection<RegionModel> children) {
......@@ -152,6 +163,11 @@ public class StCommonServiceImpl {
return regions;
}
/**
* 获取指定区域下的子区域
* @param regionCode 行政区划
* @return List<RegionModel>
*/
public List<RegionModel> setRegionIfRootParent(String regionCode) {
List<RegionModel> regions = regionModels.parallelStream().filter(e -> e.getParentRegionCode() != null && (e.getParentRegionCode().toString()).equals(regionCode)).collect(Collectors.toList());
// 陕西省时需要在地图返回独立的地级市:韩城、杨凌、西咸
......@@ -162,6 +178,37 @@ public class StCommonServiceImpl {
return regions;
}
/**
* 获取指定区域下的子区域,独立地市及区县级不再下钻,直接返回当前区域信息
*
* @param dpFilterParamDto 行政区划过滤条件
* @return List<RegionModel>
*/
public List<RegionModel> setRegionIfRootParentAndNoAccessIf3Level(DPFilterParamDto dpFilterParamDto) {
String regionCode = dpFilterParamDto.getCityCode();
// 独立地市、区县级别时(level=3),直接返回当前区域信息,不在显示街道
if((Arrays.stream(ReginStepEnum.values())).anyMatch(e->e.getCode().equals(regionCode)) || regionCodeRegionMap.get(Integer.parseInt(regionCode)).getLevel().trim().equals(REGION_LEVEL_THIRD)){
return Collections.singletonList(regionCodeRegionMap.get(Integer.parseInt(regionCode)));
} else {
return setRegionIfRootParent(regionCode);
}
}
/**
* 获取指定区域下的子区域,独立地市及区县级不再下钻,直接返回当前区域信息
* @param regionCode 行政区划
* @return List<RegionModel>
*/
public List<RegionModel> setRegionIfRootParentAndNoAccessIf3Level(String regionCode) {
// 独立地市、区县级别时(level=3),直接返回当前区域信息,不在显示街道
if((Arrays.stream(ReginStepEnum.values())).anyMatch(e->e.getCode().equals(regionCode)) || regionCodeRegionMap.get(Integer.parseInt(regionCode)).getLevel().trim().equals(REGION_LEVEL_THIRD)){
return Collections.singletonList(regionCodeRegionMap.get(Integer.parseInt(regionCode)));
} else {
return setRegionIfRootParent(regionCode);
}
}
public List<String> buildXData(List<RegionModel> regionList) {
return regionList.stream().map(RegionModel::getRegionName).collect(Collectors.toList());
}
......
......@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.entity.AlertRescueStatistics;
import com.yeejoin.amos.boot.module.common.api.entity.AlertUseUnitStatistics;
......@@ -79,13 +81,15 @@ public class YJDPStatisticsServiceImpl {
private StCommonServiceImpl stCommonService;
private DataDictionaryServiceImpl dataDictionaryService;
/**
* 电梯设备品种
*/
private final String ELEVATOR_EQU_DEFINE_CODES = "3410,3420,3430,3310,3320,3210,3220,3120,3130,3110";
private final static String ELEVATOR_EQU_DEFINE_CODES = "3410,3420,3430,3310,3320,3210,3220,3120,3130,3110";
public YJDPStatisticsServiceImpl(AlertCalledMapper alertCalledMapper, AlertRescueStatisticsMapper alertRescueStatisticsMapper, AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper, AlertStatisticsMapper alertStatisticsMapper, DispatchTaskMapper dispatchTaskMapper, DispatchPaperMapper dispatchPaperMapper, RestHighLevelClient restHighLevelClient, StCommonServiceImpl stCommonService) {
public YJDPStatisticsServiceImpl(AlertCalledMapper alertCalledMapper, AlertRescueStatisticsMapper alertRescueStatisticsMapper, AlertUseUnitStatisticsMapper alertUseUnitStatisticsMapper, AlertStatisticsMapper alertStatisticsMapper, DispatchTaskMapper dispatchTaskMapper, DispatchPaperMapper dispatchPaperMapper, RestHighLevelClient restHighLevelClient, StCommonServiceImpl stCommonService, DataDictionaryServiceImpl dataDictionaryService) {
this.alertCalledMapper = alertCalledMapper;
this.alertRescueStatisticsMapper = alertRescueStatisticsMapper;
this.alertUseUnitStatisticsMapper = alertUseUnitStatisticsMapper;
......@@ -94,6 +98,7 @@ public class YJDPStatisticsServiceImpl {
this.dispatchPaperMapper = dispatchPaperMapper;
this.restHighLevelClient = restHighLevelClient;
this.stCommonService = stCommonService;
this.dataDictionaryService = dataDictionaryService;
}
public JSONObject eventStatByDay(DPFilterParamDto dpFilterParamDto) throws Exception {
......@@ -110,19 +115,23 @@ public class YJDPStatisticsServiceImpl {
List<Object> trapped = new ArrayList<>();
List<Object> complaint = new ArrayList<>();
List<Object> fault = new ArrayList<>();
List<Map<String, Object>> maps = alertCalledMapper.queryNearlyList(beginDate, endDate, orgCode);
everyDay.stream().forEach(day -> {
List<Map<String, Object>> maps = new ArrayList<>();
if(orgCode != null){
maps = alertCalledMapper.queryNearlyList(beginDate, endDate, orgCode);
}
List<Map<String, Object>> finalMaps = maps;
everyDay.forEach(day -> {
try {
xdata.add(DateUtil.formatDate(DateUtil.formatStringToDate(day, DateUtil.Y_M_D), "MM.dd"));
} catch (Exception e) {
throw new RuntimeException(e);
}
Map<String, Object> map = maps.stream().filter(x -> day.equals(x.get("day"))).collect(Collectors.toMap(
Map<String, Object> map = finalMaps.stream().filter(x -> day.equals(x.get("day"))).collect(Collectors.toMap(
item -> (String) item.get("alarmType"),
item -> item.get("majorAlertCount")));
trapped.add(!ValidationUtil.isEmpty(map.get("困人救援")) ? Integer.valueOf(map.get("困人救援").toString()) : 0);
complaint.add(!ValidationUtil.isEmpty(map.get("投诉咨询")) ? Integer.valueOf(map.get("投诉咨询").toString()) : 0);
fault.add(!ValidationUtil.isEmpty(map.get("故障维修")) ? Integer.valueOf(map.get("故障维修").toString()) : 0);
trapped.add(!ValidationUtil.isEmpty(map.get("困人救援")) ? Integer.parseInt(map.get("困人救援").toString()) : 0);
complaint.add(!ValidationUtil.isEmpty(map.get("投诉咨询")) ? Integer.parseInt(map.get("投诉咨询").toString()) : 0);
fault.add(!ValidationUtil.isEmpty(map.get("故障维修")) ? Integer.parseInt(map.get("故障维修").toString()) : 0);
});
jsonObject.put("xdata", xdata);
......@@ -133,7 +142,7 @@ public class YJDPStatisticsServiceImpl {
}
public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionList = stCommonService.setRegionIfRootParent(dpFilterParamDto);
List<RegionModel> regionList = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(dpFilterParamDto);
List<String> xdata = regionList.stream().map(RegionModel::getRegionName).collect(Collectors.toList());
List<Long> ydata = new ArrayList<>();
......@@ -152,28 +161,46 @@ public class YJDPStatisticsServiceImpl {
}
public JSONObject eventStatByLocation(DPFilterParamDto dpFilterParamDto) throws Exception {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto);
dpFilterParamDto.setBeginDate(DateUtil.formatDate(DateTimeUtil.getMinValueOfOneDay(DateTimeUtil.addMonths(new Date(), -1)), DateUtil.Y_M_D_HMS));
dpFilterParamDto.setEndDate(DateUtil.formatDate(DateTimeUtil.getMaxValueOfOneDay(new Date()), DateUtil.Y_M_D_HMS));
List<Map<String, Object>> maps = alertCalledMapper.queryListByLocation(orgCode, dpFilterParamDto);
List<Object> xdata = maps.stream().map(item -> item.get("name")).collect(Collectors.toList());
List<Object> ydata = maps.stream().map(item -> item.get("majorAlertCount")).collect(Collectors.toList());
// 查询字典 ADDRESS id name
List<DataDictionary> dataDictionaries = dataDictionaryService.getByType("ADDRESS");
List<Object> xdata = dataDictionaries.stream().map(DataDictionary::getName).collect(Collectors.toList());
List<Object> ydata;
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto);
if(orgCode == null){
ydata = dataDictionaries.stream().map(d-> 0L).collect(Collectors.toList());
} else {
List<CountDto> maps = alertCalledMapper.queryListByLocation(orgCode, dpFilterParamDto);
Map<String, Long> addressNumMap = maps.stream().collect(Collectors.toMap(CountDto::getKeyStr,CountDto::getLongValue));
ydata = dataDictionaries.stream().map(d-> {
Long num = 0L;
// 目前USE_PLACE字段存放字典的id
if(addressNumMap.get(d.getSequenceNbr().toString()) != null){
num = addressNumMap.get(d.getSequenceNbr().toString());
}
// 数据库中老数据历史问题存放字典的name,兼容对老数据的统计
if(addressNumMap.get(d.getName()) != null){
num = num + addressNumMap.get(d.getName());
}
return num;
}).collect(Collectors.toList());
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata);
return jsonObject;
}
public JSONObject faultCauseRatio(DPFilterParamDto dpFilterParamDto) throws Exception {
public JSONObject faultCauseRatio(DPFilterParamDto dpFilterParamDto) {
JSONObject jsonObject = new JSONObject();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto);
if(orgCode == null){
return jsonObject;
}
List<Map<String, Object>> maps = alertCalledMapper.faultCauseRatio(orgCode);
List<Object> xdata = maps.stream().map(item -> item.get("errorResult")).collect(Collectors.toList());
List<Object> ydata = maps.stream().map(item -> item.get("majorAlertCount")).collect(Collectors.toList());
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata);
return jsonObject;
......@@ -282,6 +309,9 @@ public class YJDPStatisticsServiceImpl {
public List<Map<String, Object>> rankUnitByRescueTime(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto);
if(orgCode == null){
return new ArrayList<>();
}
List<Map<String, Object>> maps = dispatchTaskMapper.rankUnitByRescueTime(orgCode);
maps.forEach(x -> {
String avgTime = "";
......
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
......@@ -464,14 +461,20 @@ public class ZLDPStatisticsServiceImpl {
public List<Map<String, Object>> equipmentInformCount(DPFilterParamDto screenDto) {
SearchRequest searchRequest = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
List<DataDictionary> dataDictionaryList = iDataDictionaryService.getByType("ADDRESS");
//设置模糊搜索
String orgCode = stCommonService.getAndSetOrgCode(screenDto.getCityCode());
List<Map<String, Object>> returnList = new ArrayList<>();
if(orgCode == null){
this.setEquipmentInformCountDefaultData(returnList, dataDictionaryList);
return returnList;
}
searchSourceBuilder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*")));
searchSourceBuilder.aggregation(AggregationBuilders.terms("count_by_use_site_code").field("USE_SITE_CODE").size(500));
searchRequest.source(searchSourceBuilder);
Map<String, Integer> dataMap = new HashMap<>();
List<Map<String, Object>> returnList = new ArrayList<>();
try {
// 执行搜索请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
......@@ -484,7 +487,6 @@ public class ZLDPStatisticsServiceImpl {
long docCount = bucket.getDocCount();
dataMap.put(category, (int) docCount);
}
List<DataDictionary> dataDictionaryList = iDataDictionaryService.getByType("ADDRESS");
dataDictionaryList.stream().forEach(x -> {
Map<String, Object> map = new HashMap<>();
map.put("name", x.getName());
......@@ -502,6 +504,14 @@ public class ZLDPStatisticsServiceImpl {
return returnList;
}
private void setEquipmentInformCountDefaultData(List<Map<String, Object>> returnList, List<DataDictionary> dataDictionaryList) {
dataDictionaryList.forEach(x -> {
Map<String, Object> map = new HashMap<>();
map.put("name", x.getName());
map.put("value", 0);
returnList.add(map);
});
}
public Map<String,Object> userCountNew(DPFilterParamDto screenDto) {
List<String> unitTypeList = UnitTypeEnum.getNameListByType(screenDto.getCompanyType());
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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.ymt.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.AlertCalledRecordDto;
......@@ -130,7 +131,7 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
*
* @return
*/
List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode, @Param("dto") DPFilterParamDto filterParamDto);
List<CountDto> queryListByLocation(@Param("regionCode") String regionCode, @Param("dto") DPFilterParamDto filterParamDto);
/**
* 接警情况统计(故障原因)
*
......
......@@ -640,25 +640,22 @@
day ASC
</select>
<select id="queryListByLocation" resultType="java.util.Map">
<select id="queryListByLocation" resultType="com.yeejoin.amos.boot.biz.common.dto.CountDto">
SELECT
ifnull ( SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS majorAlertCount,
cdd.NAME as name
ifnull ( SUM ( CASE WHEN father_alert IS NULL THEN 1 ELSE 0 END ), 0 ) AS longValue,
ibjuj."USE_PLACE" as keyStr
FROM
tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
LEFT JOIN cb_data_dictionary cdd ON ibjuj.USE_PLACE = cdd.sequence_nbr
tz_alert_called tac
LEFT JOIN idx_biz_jg_use_info ibjuj ON tac.equipment_id = ibjuj.RECORD
WHERE
tac.biz_org_code LIKE concat(#{regionCode}, '%')
AND (tac.alarm_type_code = '960' or tac.alarm_type_code = '961')
AND
ibjuj.USE_PLACE is NOT NULL
AND cdd.NAME is NOT NULL
AND ibjuj.USE_PLACE is NOT NULL
<if test="dto.beginDate !=null and dto.beginDate !='' and dto.endDate !=null and dto.endDate !=''">
AND tac.call_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
</if>
GROUP BY
cdd.NAME
ibjuj."USE_PLACE"
ORDER BY ibjuj.USE_PLACE ASC
</select>
......
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