Commit d548415f authored by 刘凡's avatar 刘凡

*)调整接口

parent 489273ed
...@@ -70,6 +70,4 @@ public interface ElevatorMapper extends BaseMapper<Elevator> { ...@@ -70,6 +70,4 @@ public interface ElevatorMapper extends BaseMapper<Elevator> {
Map<String, Object> selectMainUnitMessage(String sequenceNbr); Map<String, Object> selectMainUnitMessage(String sequenceNbr);
Map<String, Object> selectUseUnitByAlertId(String sequenceNbr); Map<String, Object> selectUseUnitByAlertId(String sequenceNbr);
List<Map<String, Object>> elevatorCountStat(@Param("regionCodes") List<String> regionCodes);
} }
...@@ -148,6 +148,7 @@ ...@@ -148,6 +148,7 @@
LEFT JOIN cb_data_dictionary cdd ON ibjuj.USE_PLACE = cdd.sequence_nbr LEFT JOIN cb_data_dictionary cdd ON ibjuj.USE_PLACE = cdd.sequence_nbr
WHERE WHERE
biz_org_code LIKE concat(#{regionCode}, '%') biz_org_code LIKE concat(#{regionCode}, '%')
AND (tac.alarm_type_code = '960' or tac.alarm_type_code = '961')
AND AND
ibjuj.USE_PLACE is NOT NULL ibjuj.USE_PLACE is NOT NULL
AND cdd.NAME is NOT NULL AND cdd.NAME is NOT NULL
......
...@@ -581,20 +581,4 @@ ...@@ -581,20 +581,4 @@
ibjmri.SEQUENCE_NBR = #{sequenceNbr} ibjmri.SEQUENCE_NBR = #{sequenceNbr}
</select> </select>
<select id="elevatorCountStat" resultType="java.util.Map">
SELECT
district,
region_code as regionCode,
count(region_code) as total
FROM
tcb_elevator
WHERE
<if test="regionCodes != null">
<foreach collection="regionCodes" index="index" item="item" open="(" separator=" OR " close=")">
tcb_elevator.region_code LIKE CONCAT('%', #{item}, '%')
</foreach>
</if>
GROUP BY region_code
</select>
</mapper> </mapper>
...@@ -119,6 +119,16 @@ public class DPStatisticsController { ...@@ -119,6 +119,16 @@ public class DPStatisticsController {
return ResponseHelper.buildResponse(statisticsService.rankUnitByRescueTime(dpFilterParamDto)); return ResponseHelper.buildResponse(statisticsService.rankUnitByRescueTime(dpFilterParamDto));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-各地市应急事件总数排名", notes = "大屏-应急-各地市应急事件总数排名")
@PostMapping(value = "/yj/regionEventRank")
public ResponseModel<JSONObject> regionEventRank(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) throws Exception {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.regionEventRank(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图图列统计", notes = "大屏-应急-中间地图图列统计") @ApiOperation(httpMethod = "POST", value = "大屏-应急-中间地图图列统计", notes = "大屏-应急-中间地图图列统计")
......
...@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.elevator.api.dto.AlertUseUnitStatisticsDto; ...@@ -12,6 +12,7 @@ import com.yeejoin.amos.boot.module.elevator.api.dto.AlertUseUnitStatisticsDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertMaintenanceUnitStatistics; import com.yeejoin.amos.boot.module.elevator.api.entity.AlertMaintenanceUnitStatistics;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertRescueStatistics; import com.yeejoin.amos.boot.module.elevator.api.entity.AlertRescueStatistics;
import com.yeejoin.amos.boot.module.elevator.api.entity.AlertUseUnitStatistics; import com.yeejoin.amos.boot.module.elevator.api.entity.AlertUseUnitStatistics;
import com.yeejoin.amos.boot.module.elevator.api.entity.Elevator;
import com.yeejoin.amos.boot.module.elevator.api.mapper.*; import com.yeejoin.amos.boot.module.elevator.api.mapper.*;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel; import com.yeejoin.amos.feign.privilege.model.CompanyModel;
...@@ -110,23 +111,21 @@ public class DPStatisticsServiceImpl { ...@@ -110,23 +111,21 @@ public class DPStatisticsServiceImpl {
} }
public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) throws Exception { public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) throws Exception {
String regionCode = dpFilterParamDto.getCityCode();
List<RegionModel> regionList = this.getRegionList(dpFilterParamDto); List<RegionModel> regionList = this.getRegionList(dpFilterParamDto);
List<String> regionCodes = regionList.stream().map(r -> r.getRegionCode().toString()).collect(Collectors.toList()); List<String> xdata = regionList.stream().map(r -> r.getRegionName().toString()).collect(Collectors.toList());
List<CompanyModel> companyList = Privilege.companyClient.queryListByCompanyCode(String.join(",", regionCodes)).getResult(); if (!regionCode.equals("610000")){
companyList = companyList.stream().sorted(Comparator.comparing(CompanyModel::getRegionSeq, Comparator.naturalOrder())).collect(Collectors.toList()); regionCode = "610000#" + regionCode;
Map<String, RegionModel> regionMap = regionList.stream().collect(Collectors.toMap(r ->r.getRegionCode().toString(), r -> r)); }
List<Map<String, Object>> maps = elevatorMapper.elevatorCountStat(regionCodes); List<Integer> ydata = new ArrayList<>();
String finalRegionCode = regionCode;
Map<String, Object> map = maps.stream().collect(Collectors.toMap( regionList.stream().forEach(x -> {
item -> (String) item.get("regionCode"), LambdaQueryWrapper<Elevator> lambda = new QueryWrapper<Elevator>().lambda();
item -> item.get("total"))); lambda.eq(Elevator::getRegionCode, finalRegionCode + "#" + x.getRegionCode());
ydata.add(elevatorMapper.selectCount(lambda));
});
List<String> xdata = new ArrayList<>();
List<String> ydata = new ArrayList<>();
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
companyList.stream().forEach(x -> {
xdata.add(x.getCompanyName());
});
jsonObject.put("xdata", xdata); jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata); jsonObject.put("ydata", ydata);
return jsonObject; return jsonObject;
...@@ -190,12 +189,39 @@ public class DPStatisticsServiceImpl { ...@@ -190,12 +189,39 @@ public class DPStatisticsServiceImpl {
LambdaQueryWrapper<AlertMaintenanceUnitStatistics> lambda = new QueryWrapper<AlertMaintenanceUnitStatistics>().lambda(); LambdaQueryWrapper<AlertMaintenanceUnitStatistics> lambda = new QueryWrapper<AlertMaintenanceUnitStatistics>().lambda();
lambda.likeLeft(AlertMaintenanceUnitStatistics::getSupervisoryUnitOrgCode, orgCode); lambda.likeLeft(AlertMaintenanceUnitStatistics::getSupervisoryUnitOrgCode, orgCode);
lambda.eq(AlertMaintenanceUnitStatistics :: getStatisticsDate, "2023-12"); lambda.eq(AlertMaintenanceUnitStatistics :: getStatisticsDate, date);
List<AlertMaintenanceUnitStatistics> alertMaintenanceUnitStatistics = alertMaintenanceUnitStatisticsMapper.selectList(lambda); List<AlertMaintenanceUnitStatistics> alertMaintenanceUnitStatistics = alertMaintenanceUnitStatisticsMapper.selectList(lambda);
List<AlertMaintenanceUnitStatisticsDto> models = Bean.toModels(alertMaintenanceUnitStatistics, AlertMaintenanceUnitStatisticsDto.class); List<AlertMaintenanceUnitStatisticsDto> models = Bean.toModels(alertMaintenanceUnitStatistics, AlertMaintenanceUnitStatisticsDto.class);
return models; return models;
} }
public JSONObject regionEventRank(DPFilterParamDto dpFilterParamDto) throws Exception {
List<RegionModel> childRegion = this.getRegionList(dpFilterParamDto);
JSONObject jsonObject = new JSONObject();
Map<String, Long> map = new HashMap<>();
childRegion.stream().forEach(x -> {
String orgCode = this.getAndSetOrgCode(x.getRegionCode().toString());
if (ValidationUtil.isEmpty(orgCode)) {
map.put(x.getRegionName(), 0L);
} else {
Long num = alertStatisticsMapper.countEmergencyEventsByOrgCodeAndDate(orgCode, dpFilterParamDto);
map.put(x.getRegionName(), num);
}
});
List<String> xdata = new ArrayList<>(map.keySet());
List<Long> ydata = new ArrayList<>();
xdata.sort(Comparator.comparingLong(map::get).reversed());
xdata.stream().forEach(x -> {
ydata.add(map.get(x));
});
jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata);
return jsonObject;
}
private List<RegionModel> getRegionList(DPFilterParamDto dpFilterParamDto) { private List<RegionModel> getRegionList(DPFilterParamDto dpFilterParamDto) {
try { try {
if (regionChildRegionMap.get(dpFilterParamDto.getCityCode()) == null) { if (regionChildRegionMap.get(dpFilterParamDto.getCityCode()) == null) {
...@@ -218,6 +244,7 @@ public class DPStatisticsServiceImpl { ...@@ -218,6 +244,7 @@ public class DPStatisticsServiceImpl {
List<RegionModel> independentRegions = ReginStepEnum.enum2RegionList("map"); List<RegionModel> independentRegions = ReginStepEnum.enum2RegionList("map");
regionList.addAll(independentRegions); regionList.addAll(independentRegions);
} }
regionList = regionList.stream().sorted(Comparator.comparing(RegionModel::getRegionCode, Comparator.naturalOrder())).collect(Collectors.toList());
return regionList; return regionList;
} }
...@@ -234,6 +261,18 @@ public class DPStatisticsServiceImpl { ...@@ -234,6 +261,18 @@ public class DPStatisticsServiceImpl {
return orgCode; return orgCode;
} }
private String getAndSetOrgCode(String cityCode) {
String orgCode = regionCodeOrgCodeMap.get(cityCode);
if (orgCode == null) {
orgCode = yjBaseMapper.getOrgCodeByCompanyCode(cityCode);
if (orgCode == null) {
return "";
}
regionCodeOrgCodeMap.put(cityCode, orgCode);
}
return orgCode;
}
/** /**
* 获取两个时间段之间的每一天 * 获取两个时间段之间的每一天
* @param startTime 开始时间 * @param startTime 开始时间
...@@ -303,5 +342,4 @@ public class DPStatisticsServiceImpl { ...@@ -303,5 +342,4 @@ public class DPStatisticsServiceImpl {
dpFilterParamDto.setEndDate(cn.hutool.core.date.DateUtil.today()); dpFilterParamDto.setEndDate(cn.hutool.core.date.DateUtil.today());
} }
} }
} }
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