Commit 6abaa84f authored by suhuiguang's avatar suhuiguang

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

parent ce777e3b
......@@ -33,6 +33,7 @@ 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());
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){
......@@ -44,6 +45,7 @@ public class CylinderFillingMessageService extends BaseService<CylinderFillingMe
});
}
}
}
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());
......
......@@ -5,6 +5,7 @@ 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.common.api.enums.IssueMainBodyEnum;
import com.yeejoin.amos.boot.module.common.api.enums.IssueProblemLevelEnum;
import com.yeejoin.amos.boot.module.common.api.enums.IssueTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum;
import com.yeejoin.amos.boot.module.statistics.api.dto.EquipQuestionNumCountDto;
......@@ -162,7 +163,7 @@ public class AQZSDPStatisticsServiceImpl {
}
public Map<String, Object> getChildEarlyWarning(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamDto.getCityCode());
List<RegionModel> regionModels = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(dpFilterParamDto.getCityCode());
Map<String, SecurityIndexCountItemDto> regionCodeSecurityIndexMap = getSecurityIndexCountItemDtoMap(regionModels);
Set<String> legendData = getLegendForCyArea();
List<String> xuke = new ArrayList<>();
......@@ -212,8 +213,8 @@ public class AQZSDPStatisticsServiceImpl {
}
public Map<String, Object> getSecurityIndex(DPFilterParamDto dpFilterParamDto) throws Exception {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamDto.getCityCode());
public Map<String, Object> getSecurityIndex(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(dpFilterParamDto.getCityCode());
Map<String, SecurityIndexCountItemDto> regionCodeSecurityIndexMap = getSecurityIndexCountItemDtoMap(regionModels);
List<Map<String, String>> data = new ArrayList<>();
List<Map<String, String>> finalData = data;
......@@ -320,15 +321,13 @@ public class AQZSDPStatisticsServiceImpl {
Map<String, Object> dataMap = new HashMap<>();
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<String> mainBodyNameList = IssueMainBodyEnum.getEnumNameList();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndMainBody(orgCode, mainBodyNameList, startDate, null);
List<Object> legendDataList = new ArrayList<>();
for (int i = 0; i < 2; i++) {
Map<String, Object> map = new HashMap<>();
if (0 == i) {
map.put("dataKey", "problemCount");
map.put("value", "问题数量");
} else if (1 == i) {
} else {
map.put("dataKey", "problemRate");
map.put("value", "问题闭环率");
}
......@@ -338,9 +337,13 @@ public class AQZSDPStatisticsServiceImpl {
List<String> xdata = new ArrayList<>();
List<Object> problemCount = new ArrayList<>();
List<Object> problemRate = new ArrayList<>();
list.stream().forEach(t -> {
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode != null){
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndMainBody(orgCode, mainBodyNameList, startDate, null);
list.forEach(t -> {
dataMap.put(t.get("sourceType").toString(), t.get("count").toString());
});
}
for (int i = 0; i < mainBodyNameList.size(); i++) {
if (null != dataMap.get(mainBodyNameList.get(i))) {
problemCount.add(dataMap.get(mainBodyNameList.get(i)));
......@@ -371,13 +374,15 @@ public class AQZSDPStatisticsServiceImpl {
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("3");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode != null){
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.EQUIPMENT.getName(), null);
list.stream().forEach(t -> {
list.forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
}
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
......@@ -390,27 +395,35 @@ public class AQZSDPStatisticsServiceImpl {
public List<Map<String, Object>> companyCount(String cityCode) {
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, Object> dataMap = new HashMap<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("2");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode != null){
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.COMPANY.getName(), null);
list.stream().forEach(t -> {
list.forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
}
for (int i = 0; i < enumNameList.size(); i++) {
Map<String, Object> map = new HashMap<>();
if (enumNameList.get(i).equals("许可临期")) {
switch (enumNameList.get(i)) {
case "许可临期":
map.put("key", "licenseExpirationDateNumber");
map.put("label", "许可临期数");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
} else if (enumNameList.get(i).equals("许可超期")) {
break;
case "许可超期":
map.put("key", "licenseOverdueNumber");
map.put("label", "许可超期数");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
} else if (enumNameList.get(i).equals("维保备案超期")) {
break;
case "维保备案超期":
map.put("key", "maintenanceFilingOverdueNumber");
map.put("label", "维保备案超期数(仅电梯)");
map.put("value", dataMap.getOrDefault(enumNameList.get(i), "0"));
break;
default:
break;
}
resultList.add(map);
}
......@@ -422,13 +435,15 @@ public class AQZSDPStatisticsServiceImpl {
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("1");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode != null){
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.PERSON.getName(), null);
list.stream().forEach(t -> {
list.forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
}
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
......@@ -443,13 +458,15 @@ public class AQZSDPStatisticsServiceImpl {
Map<String, Object> dataMap = new HashMap<>();
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
List<String> enumNameList = IssueTypeEnum.getEnumNameListByMainBody("4");
String startDate = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode != null){
List<Map<String, Object>> list = statisticsMapper.selectByOrgAndProblemType(orgCode, enumNameList, startDate, IssueMainBodyEnum.EQUIPMENT.getName(), "2300");
list.stream().forEach(t -> {
list.forEach(t -> {
dataMap.put(t.get("problemType").toString(), t.get("count").toString());
});
}
for (int i = 0; i < enumNameList.size(); i++) {
xdata.add(enumNameList.get(i));
ydata.add(dataMap.getOrDefault(enumNameList.get(i), "0"));
......@@ -475,17 +492,19 @@ public class AQZSDPStatisticsServiceImpl {
}
resultMap.put("legendData", legendData);
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
Map<String, Object> allIssueMap = new HashMap<>();
Map<String, Object> endIssueMap = new HashMap<>();
if(orgCode != null){
int year = LocalDate.now().getYear();
List<Map<String, Object>> allIssue = statisticsMapper.getIssueCountByMonth(orgCode, String.valueOf(year), null);
List<Map<String, Object>> endIssue = statisticsMapper.getIssueCountByMonth(orgCode, String.valueOf(year), "1");
Map<String, Object> allIssueMap = new HashMap<>();
Map<String, Object> endIssueMap = new HashMap<>();
allIssue.stream().forEach(t -> {
allIssue.forEach(t -> {
allIssueMap.put(t.get("time").toString(), t.get("count"));
});
endIssue.stream().forEach(t -> {
endIssue.forEach(t -> {
endIssueMap.put(t.get("time").toString(), t.get("count"));
});
}
List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>();
......@@ -577,19 +596,19 @@ public class AQZSDPStatisticsServiceImpl {
}
public List<Map<String, Object>> issueChildrenCityCount(String cityCode) throws Exception {
public List<Map<String, Object>> issueChildrenCityCount(String cityCode) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(cityCode);
List<Integer> regionCodeList = regionModels.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Integer> regionCodeList = regionModels.stream().map(RegionModel::getRegionCode).collect(Collectors.toList());
List<Map<String, String>> orgCodeAndCompanyCodesByCompanyCodes = statisticsMapper.getOrgCodeAndCompanyCodesByCompanyCodes(regionCodeList);
List<String> orgCodes = orgCodeAndCompanyCodesByCompanyCodes.stream().map(m -> m.get("orgCode")).collect(Collectors.toList());
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
Map<String, String> orgCodeAndCompanyCodesMap = new HashMap<>();
orgCodeAndCompanyCodesByCompanyCodes.stream().forEach(t -> {
orgCodeAndCompanyCodesByCompanyCodes.forEach(t -> {
orgCodeAndCompanyCodesMap.put(t.get("companyCode"), t.get("orgCode"));
});
List<Map<String, Object>> list = statisticsMapper.countByOrgCodes(orgCodes, now);
Map<String, Object> dataMap = new HashMap<>();
list.stream().forEach(t -> {
list.forEach(t -> {
dataMap.put(t.get("orgCode").toString(), t.get("count"));
});
......@@ -626,13 +645,18 @@ public class AQZSDPStatisticsServiceImpl {
Map<String, Object> resultMap = new HashMap<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
List<Map<String, Object>> list = statisticsMapper.issueProblemLevelCount(orgCode, time);
Map<String, Long> problemLevelNumMap = new LinkedHashMap<>();
if(orgCode != null){
List<CountDto> list = statisticsMapper.issueProblemLevelCount(orgCode, time);
problemLevelNumMap = list.stream().collect(Collectors.toMap(CountDto::getKeyStr,CountDto::getLongValue));
}
List<Object> xdata = new ArrayList<>();
List<Object> ydata = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
xdata.add(list.get(i).get("problemLevel"));
ydata.add(list.get(i).get("count"));
}
Map<String, Long> finalProblemLevelNumMap = problemLevelNumMap;
Arrays.stream(IssueProblemLevelEnum.values()).forEach(e->{
xdata.add(e.getName());
ydata.add(finalProblemLevelNumMap.getOrDefault(e.getCode(), 0L));
});
resultMap.put("xdata", xdata);
resultMap.put("ydata", ydata);
return resultMap;
......@@ -641,6 +665,9 @@ public class AQZSDPStatisticsServiceImpl {
public List<Map<String, Object>> issueCompanyTop(String cityCode) {
List<Map<String, Object>> resultList = new ArrayList<>();
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode == null){
return new ArrayList<>();
}
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
List<Map<String, Object>> list = statisticsMapper.issueCompanyTop(orgCode, time);
for (int i = 0; i < list.size(); i++) {
......@@ -654,25 +681,29 @@ public class AQZSDPStatisticsServiceImpl {
return resultList;
}
public List<Map<String, Object>> issueChildrenCityCountTop(String cityCode) throws Exception {
public List<Map<String, Object>> issueChildrenCityCountTop(String cityCode) {
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
if(orgCode == null){
return new ArrayList<>();
}
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(cityCode);
List<Integer> regionCodeList = regionModels.stream().map(RegionModel::getRegionCode).collect(Collectors.toList());
List<Map<String, String>> orgCodeAndCompanyCodesByCompanyCodes = statisticsMapper.getOrgCodeAndCompanyCodesByCompanyCodes(regionCodeList);
List<String> orgCodes = orgCodeAndCompanyCodesByCompanyCodes.stream().map(m -> m.get("orgCode")).collect(Collectors.toList());
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
Map<String, String> orgCodeAndCompanyCodesMap = new HashMap<>();
orgCodeAndCompanyCodesByCompanyCodes.stream().forEach(t -> {
orgCodeAndCompanyCodesByCompanyCodes.forEach(t -> {
orgCodeAndCompanyCodesMap.put(t.get("companyCode"), t.get("orgCode"));
});
List<Map<String, Object>> allIssueCount = statisticsMapper.issueChildrenCityCountTop(orgCodes, now, null);
List<Map<String, Object>> endIssueCount = statisticsMapper.issueChildrenCityCountTop(orgCodes, now, "1");
Map<String, Object> allIssuedataMap = new HashMap<>();
Map<String, Object> endIssuedataMap = new HashMap<>();
allIssueCount.stream().forEach(t -> {
allIssueCount.forEach(t -> {
allIssuedataMap.put(t.get("orgCode").toString(), t.get("count"));
});
endIssueCount.stream().forEach(t -> {
endIssueCount.forEach(t -> {
endIssuedataMap.put(t.get("orgCode").toString(), t.get("count"));
});
......@@ -866,7 +897,7 @@ public class AQZSDPStatisticsServiceImpl {
result.put(DPMapStatisticsItemEnum.OPERATORS.getCode(), num);
}
public List<Map<String, Object>> getCenterMapCountDataForOverview(DPFilterParamDto dpFilterParamDto) throws Exception {
public List<Map<String, Object>> getCenterMapCountDataForOverview(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamDto.getCityCode());
List<Map<String, Object>> result = regionModels.parallelStream().map(r -> {
DPFilterParamDto filterParamDto = new DPFilterParamDto();
......
......@@ -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
......@@ -3,10 +3,8 @@ package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.common.api.dto.LegendDataDto;
import com.yeejoin.amos.boot.module.common.api.enums.ReginStepEnum;
import com.yeejoin.amos.boot.module.jg.api.dto.EquipBizCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.FourColorCountDataDto;
import com.yeejoin.amos.boot.module.jg.api.enums.DPMapStatisticsItemEnum;
......@@ -16,7 +14,6 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.statistics.api.mapper.ZLStatisticsMapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.EquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
......@@ -384,14 +381,6 @@ public class JGDPStatisticsServiceImpl {
}).collect(Collectors.toList());
}
private Map<String, Map<String, CountDto>> getAllDataMap(DPFilterParamDto dpFilterParamDto) {
Map<String, Map<String, CountDto>> countMap = new HashMap<>();
countMap.put(FourColorCountItemEnum.EQUIP.getKey(), this.countEquipNum(dpFilterParamDto));
countMap.put(FourColorCountItemEnum.COMPANY.getKey(), this.countCompanyNum(dpFilterParamDto));
countMap.put(FourColorCountItemEnum.USER.getKey(), this.countUserNum(dpFilterParamDto));
return countMap;
}
private Map<String, CountDto> countEquipNum(DPFilterParamDto dpFilterParamDto) {
Map<String, CountDto> countMap = new HashMap<>();
countMap.put(FourColorEnum.GREEN.getCode(), this.getGreenStatusEquip(dpFilterParamDto));
......@@ -414,6 +403,9 @@ public class JGDPStatisticsServiceImpl {
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
// 设备状态过滤
......@@ -435,6 +427,14 @@ public class JGDPStatisticsServiceImpl {
return countDto;
}
private Map<String, Map<String, CountDto>> getAllDataMap(DPFilterParamDto dpFilterParamDto) {
Map<String, Map<String, CountDto>> countMap = new HashMap<>();
countMap.put(FourColorCountItemEnum.EQUIP.getKey(), this.countEquipNum(dpFilterParamDto));
countMap.put(FourColorCountItemEnum.COMPANY.getKey(), this.countCompanyNum(dpFilterParamDto));
countMap.put(FourColorCountItemEnum.USER.getKey(), this.countUserNum(dpFilterParamDto));
return countMap;
}
private CountDto getYellowStatusEquip(DPFilterParamDto dpFilterParamDto) {
CountDto countDto = new CountDto();
countDto.setLongValue(this.staticsCenterMapCountDateTemporary(dpFilterParamDto));
......@@ -454,6 +454,9 @@ public class JGDPStatisticsServiceImpl {
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
// 且在用状态设备
......@@ -486,6 +489,9 @@ public class JGDPStatisticsServiceImpl {
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
// 在用状态设备
......@@ -527,7 +533,6 @@ public class JGDPStatisticsServiceImpl {
}
private CountDto getRedStatusCompany(DPFilterParamDto dpFilterParamDto) {
CountDto countDto = new CountDto();
countDto.setLongValue(this.countCompanyForCertDateTimeOut(dpFilterParamDto));
......@@ -544,6 +549,9 @@ public class JGDPStatisticsServiceImpl {
private long countCompanyForCertDateTemporary(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
// 临期6个月
String limitDate = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_MONTH, 6).toDateStr();
return zlStatisticsMapper.countCompanyForCertDateTemporary(dpFilterParamDto, orgCode, limitDate);
......@@ -551,6 +559,9 @@ public class JGDPStatisticsServiceImpl {
private long countCompanyForCertDateTimeOut(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
String limitDate = DateUtil.today();
return zlStatisticsMapper.countCompanyForCertDateTimeOut(dpFilterParamDto, orgCode, limitDate);
}
......@@ -565,6 +576,9 @@ public class JGDPStatisticsServiceImpl {
private long countCompanyByOperatingStatus(DPFilterParamDto dpFilterParamDto, String operatingStatus) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
return enterpriseInfoMapper.countByOperatingStatusAndOrgCode(orgCode, operatingStatus, dpFilterParamDto.getCityCode());
}
......@@ -649,12 +663,18 @@ public class JGDPStatisticsServiceImpl {
private Long countAllBizDataInFlowing(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return 0L;
}
List<Long> inFlowingForDP = commonMapper.countAllInFlowingForDPNoFinishedBizData(orgCode, dpFilterParamDto);
return inFlowingForDP.stream().mapToLong(e -> e).sum();
}
private List<Long> countBizDataInFlowing(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
return Arrays.asList(0L, 0L, 0L, 0L, 0L, 0L);
}
return commonMapper.countAllInFlowingForDPNoFinishedBizData(orgCode, dpFilterParamDto);
}
......@@ -674,6 +694,10 @@ public class JGDPStatisticsServiceImpl {
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if (orgCode == null) {
this.setDefaultEquStateCount(resultList);
return resultList;
}
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
SearchSourceBuilder builder = new SearchSourceBuilder();
......@@ -685,9 +709,8 @@ public class JGDPStatisticsServiceImpl {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms terms = response.getAggregations().get("EQU_STATE_COUNT");
Map<String, Long> dataMap = new HashMap<>();
Long total = terms.getBuckets().stream().mapToLong(Terms.Bucket::getDocCount).sum();
for (Terms.Bucket bucket : terms.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
String category = bucket.getKeyAsString();
long docCount = bucket.getDocCount();
dataMap.put(category, docCount);
}
......@@ -698,24 +721,37 @@ public class JGDPStatisticsServiceImpl {
* 4 注销
*/
for (int i = 0; i < 4; i++) {
Map<String, Object> map = new HashMap();
Map<String, Object> map = setEquStateNameValue(i);
map.put("value", dataMap.getOrDefault(String.valueOf(i), 0L));
resultList.add(map);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return resultList;
}
private Map<String, Object> setEquStateNameValue(int i) {
Map<String, Object> map = new LinkedHashMap<>();
if (i == 0) {
map.put("name", "在用");
} else if (i == 1) {
map.put("name", "停用");
} else if (i == 2) {
map.put("name", "报废");
} else if (i == 3) {
} else {
map.put("name", "注销");
}
map.put("value", dataMap.getOrDefault(String.valueOf(i), 0L));
resultList.add(map);
}
} catch (IOException e) {
throw new RuntimeException(e);
return map;
}
return resultList;
private void setDefaultEquStateCount(List<Map<String, Object>> resultList) {
for (int i = 0; i < 4; i++) {
Map<String, Object> map = setEquStateNameValue(i);
map.put("value", 0L);
resultList.add(map);
}
}
public Map<String, Object> equStopStateCount(DPFilterParamDto dpFilterParamDto) {
......@@ -723,6 +759,8 @@ public class JGDPStatisticsServiceImpl {
request.indices("idx_biz_view_jg_all");
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
Map<String, Long> dataMap = new HashMap<>();
if (orgCode != null) {
// 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*"));
SearchSourceBuilder builder = new SearchSourceBuilder();
......@@ -736,9 +774,10 @@ public class JGDPStatisticsServiceImpl {
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
Terms terms = response.getAggregations().get("EQU_STATE_COUNT");
Map<String, Long> dataMap = new HashMap<>();
for (Terms.Bucket bucket : terms.getBuckets()) {
String category = bucket.getKeyAsString(); // 或者使用 bucket.getKey() 对于非字符串类型
// 或者使用 bucket.getKey() 对于非字符串类型
String category = bucket.getKeyAsString();
Terms subTerms = bucket.getAggregations().get("EQU_LIST_CODE_COUNT");
for (Terms.Bucket subBucket : subTerms.getBuckets()) {
String subCategory = subBucket.getKeyAsString();
......@@ -746,24 +785,10 @@ public class JGDPStatisticsServiceImpl {
dataMap.put(category + "#" + subCategory, docCount);
}
}
/**
* 2300 气瓶
* 3000 电梯
* 4000 起重机械
* 2000 压力容器
* 5000 场(厂)内专用机动车辆
* 1000 锅炉
* 8000 压力管道
* F000 安全附件
* 7000 压力管道元件
* 9000 客运索道
* 6000 大型游乐设施
*/
/**
* 2 停用
* 4 注销
* 3 报废
*/
} catch (Exception e) {
throw new RuntimeException(e);
}
}
List<Map<String, Object>> legendDataList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
Map<String, Object> map = new HashMap();
......@@ -773,7 +798,7 @@ public class JGDPStatisticsServiceImpl {
} else if (i == 1) {
map.put("dataKey", "logout");
map.put("value", "注销");
} else if (i == 2) {
} else {
map.put("dataKey", "scrap");
map.put("value", "报废");
}
......@@ -816,24 +841,19 @@ public class JGDPStatisticsServiceImpl {
stop.add(dataMap.getOrDefault("2#8000", 0L));
logout.add(dataMap.getOrDefault("4#8000", 0L));
scrap.add(dataMap.getOrDefault("3#8000", 0L));
} else if (i == 8) {
} else {
stop.add(dataMap.getOrDefault("2#9000", 0L));
logout.add(dataMap.getOrDefault("4#9000", 0L));
scrap.add(dataMap.getOrDefault("3#9000", 0L));
}
}
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("legendData", legendDataList);
returnMap.put("xdata", xDataList);
returnMap.put("stop", stop);
returnMap.put("logout", logout);
returnMap.put("scrap", scrap);
return returnMap;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public List<Map<String, Object>> maintenanceCountTopTen(DPFilterParamDto dpFilterParamDto) {
......@@ -871,23 +891,24 @@ public class JGDPStatisticsServiceImpl {
}
public Map<String, Object> cityBusinessCount(DPFilterParamDto dpFilterParamDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamDto);
List<RegionModel> regionModels = stCommonService.setRegionIfRootParentAndNoAccessIf3Level(dpFilterParamDto);
Map<String, Object> resultMap = new HashMap<>();
/**
* 业务类型0告知管理,1使用登记,2变更登记,3停用启用,4注销报废
*/
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto);
if (orgCode == null) {
return new HashMap<>();
}
// 业务类型0告知管理,1使用登记,2变更登记,3停用启用,4注销报废
if ("0".equals(dpFilterParamDto.getBusinessKey())) {
resultMap = noticeCount(resultMap, regionModels);
noticeCount(resultMap, regionModels);
} else if ("1".equals(dpFilterParamDto.getBusinessKey())) {
resultMap = useCount(resultMap, regionModels);
useCount(resultMap, regionModels);
} else if ("2".equals(dpFilterParamDto.getBusinessKey())) {
resultMap = changeCount(resultMap, regionModels);
changeCount(resultMap, regionModels);
} else if ("3".equals(dpFilterParamDto.getBusinessKey())) {
resultMap = disableCount(resultMap, regionModels);
disableCount(resultMap, regionModels);
} else if ("4".equals(dpFilterParamDto.getBusinessKey())) {
resultMap = cancelCount(resultMap, regionModels);
cancelCount(resultMap, regionModels);
}
return resultMap;
}
......@@ -896,11 +917,11 @@ public class JGDPStatisticsServiceImpl {
Map<String, Integer> countMap = new HashMap<>();
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
List<Integer> regionCodeList = regionModelList.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Integer> regionCodeList = regionModelList.stream().map(RegionModel::getRegionCode).collect(Collectors.toList());
List<Map<String, String>> orgCodeByCompanyCodes = commonMapper.getOrgCodesByCompanyCodes(regionCodeList);
Map<String, String> companyMap = new HashMap<>();
List<String> orgCodes = new ArrayList<>();
orgCodeByCompanyCodes.stream().forEach(t -> {
orgCodeByCompanyCodes.forEach(t -> {
companyMap.put(t.get("companyCode") + "", t.get("orgCode"));
if (StringUtils.isNotBlank(t.get("orgCode"))) {
orgCodes.add(t.get("orgCode"));
......@@ -1030,7 +1051,7 @@ public class JGDPStatisticsServiceImpl {
Map<String, Integer> countMap = new HashMap<>();
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
List<Integer> regionCodeList = regionModelList.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Integer> regionCodeList = regionModelList.stream().map(RegionModel::getRegionCode).collect(Collectors.toList());
List<Map<String, String>> orgCodeByCompanyCodes = commonMapper.getOrgCodesByCompanyCodes(regionCodeList);
Map<String, String> companyMap = new HashMap<>();
List<String> orgCodes = new ArrayList<>();
......@@ -1072,11 +1093,11 @@ public class JGDPStatisticsServiceImpl {
Map<String, Integer> countMap = new HashMap<>();
List<Object> xDataList = new ArrayList<>();
List<Object> yDataList = new ArrayList<>();
List<Integer> regionCodeList = regionModelList.stream().map(m -> m.getRegionCode()).collect(Collectors.toList());
List<Integer> regionCodeList = regionModelList.stream().map(RegionModel::getRegionCode).collect(Collectors.toList());
List<Map<String, String>> orgCodeByCompanyCodes = commonMapper.getOrgCodesByCompanyCodes(regionCodeList);
Map<String, String> companyMap = new HashMap<>();
List<String> orgCodes = new ArrayList<>();
orgCodeByCompanyCodes.stream().forEach(t -> {
orgCodeByCompanyCodes.forEach(t -> {
companyMap.put(t.get("companyCode") + "", t.get("orgCode"));
if (StringUtils.isNotBlank(t.get("orgCode"))) {
orgCodes.add(t.get("orgCode"));
......@@ -1653,15 +1674,19 @@ public class JGDPStatisticsServiceImpl {
public List<Map<String, Object>> noticeList(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return new ArrayList<>();
}
String time = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = dpStatisticsMapper.selectNoticeList(orgCode,time);
return list;
return dpStatisticsMapper.selectNoticeList(orgCode, time);
}
public List<Map<String, Object>> noticeCountTop(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return new ArrayList<>();
}
String time = LocalDate.now().minusDays(29).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
List<Map<String,Object>> list = dpStatisticsMapper.selectNoticeCountTopTen(orgCode,time);
return list;
return dpStatisticsMapper.selectNoticeCountTopTen(orgCode, time);
}
}
......@@ -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
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