Commit 38c5dd8d authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into…

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into develop_tzs_register_to_0715
parents 97bcd858 ab8601c4
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.elevator.api.mapper; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.elevator.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledQueryDto; import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledQueryDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledRecordDto; import com.yeejoin.amos.boot.module.elevator.api.dto.AlertCalledRecordDto;
import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto; import com.yeejoin.amos.boot.module.elevator.api.dto.AlertPaperInfoDto;
...@@ -52,7 +53,7 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> { ...@@ -52,7 +53,7 @@ public interface AlertCalledMapper extends BaseMapper<AlertCalled> {
* *
* @return * @return
*/ */
List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode); List<Map<String, Object>> queryListByLocation(@Param("regionCode") String regionCode, @Param("dto") DPFilterParamDto filterParamDto);
/** /**
* 接警情况统计 * 接警情况统计
* *
......
...@@ -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,9 +148,16 @@ ...@@ -148,9 +148,16 @@
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
<if test="dto.beginDate !=null and dto.beginDate !=''">
and date_ge(CAST(tac.call_time as date),#{dto.beginDate})
</if>
<if test="dto.endDate !=null and dto.endDate !=''">
and date_le(CAST(tac.call_time as date),#{dto.endDate})
</if>
GROUP BY GROUP BY
cdd.NAME cdd.NAME
ORDER BY ibjuj.USE_PLACE ASC ORDER BY ibjuj.USE_PLACE ASC
......
...@@ -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;
...@@ -111,22 +112,20 @@ public class DPStatisticsServiceImpl { ...@@ -111,22 +112,20 @@ public class DPStatisticsServiceImpl {
public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) throws Exception { public JSONObject elevatorCountStat(DPFilterParamDto dpFilterParamDto) throws Exception {
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();
companyList = companyList.stream().sorted(Comparator.comparing(CompanyModel::getRegionSeq, Comparator.naturalOrder())).collect(Collectors.toList());
Map<String, RegionModel> regionMap = regionList.stream().collect(Collectors.toMap(r ->r.getRegionCode().toString(), r -> r));
List<Map<String, Object>> maps = elevatorMapper.elevatorCountStat(regionCodes);
Map<String, Object> map = maps.stream().collect(Collectors.toMap( List<Integer> ydata = new ArrayList<>();
item -> (String) item.get("regionCode"), Map<String, Integer> map = new HashMap<>();
item -> item.get("total")));
List<String> xdata = new ArrayList<>(); regionList.parallelStream().forEach(x -> {
List<String> ydata = new ArrayList<>(); LambdaQueryWrapper<Elevator> lambda = new QueryWrapper<Elevator>().lambda();
JSONObject jsonObject = new JSONObject(); lambda.like(Elevator::getRegionCode, x.getRegionCode());
companyList.stream().forEach(x -> { map.put(x.getRegionName(), elevatorMapper.selectCount(lambda));
xdata.add(x.getCompanyName());
}); });
xdata.stream().forEach(x -> {
ydata.add(map.get(x));
});
JSONObject jsonObject = new JSONObject();
jsonObject.put("xdata", xdata); jsonObject.put("xdata", xdata);
jsonObject.put("ydata", ydata); jsonObject.put("ydata", ydata);
return jsonObject; return jsonObject;
...@@ -134,7 +133,7 @@ public class DPStatisticsServiceImpl { ...@@ -134,7 +133,7 @@ public class DPStatisticsServiceImpl {
public JSONObject eventStatByLocation(DPFilterParamDto dpFilterParamDto) throws Exception { public JSONObject eventStatByLocation(DPFilterParamDto dpFilterParamDto) throws Exception {
String orgCode = this.getAndSetOrgCode(dpFilterParamDto); String orgCode = this.getAndSetOrgCode(dpFilterParamDto);
List<Map<String, Object>> maps = alertCalledMapper.queryListByLocation(orgCode); List<Map<String, Object>> maps = alertCalledMapper.queryListByLocation(orgCode, dpFilterParamDto);
List<Object> xdata = maps.stream().map(item -> item.get("name")).collect(Collectors.toList()); 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()); List<Object> ydata = maps.stream().map(item -> item.get("majorAlertCount")).collect(Collectors.toList());
...@@ -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());
} }
} }
} }
package com.yeejoin.amos.boot.module.common.api.enums;
import lombok.Getter;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
@Getter
public enum IssueProblemLevelEnum {
LEVEL_ONE("一级","1"),
LEVEL_TWO("二级","2"),
LEVEL_THREE("三级","3"),
;
String name;
String code;
private IssueProblemLevelEnum(String name, String code) {
this.name = name;
this.code = code;
}
public static List<HashMap<String,String>> getEnumList() {
List<HashMap<String, String>> list = new ArrayList<>();
for (IssueProblemLevelEnum testEnum : EnumSet.allOf(IssueProblemLevelEnum.class)) {
HashMap<String, String> map = new HashMap<>();
map.put(testEnum.name,testEnum.code.toString());
list.add(map);
}
return list;
}
}
...@@ -19,4 +19,16 @@ public interface DPStatisticsMapper { ...@@ -19,4 +19,16 @@ public interface DPStatisticsMapper {
List<Map<String, Object>> getIssueCountByMonth(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status); List<Map<String, Object>> getIssueCountByMonth(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
List<Map<String, Object>> getIssueCountByDate(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status); List<Map<String, Object>> getIssueCountByDate(@Param("orgCode") String orgCode, @Param("year") String year, @Param("status") String status);
int countByOrgCode(@Param("orgCode") String orgCode, @Param("now") String now);
List<Map<String, String>> getOrgCodeAndCompanyCodesByCompanyCodes(@Param("regionCodes") List<Integer> regionCodes);
List<Map<String, Object>> countByOrgCodes(@Param("orgCodes") List<String> orgCodes, @Param("now") String now);
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<Map<String, Object>> issueCompanyTop(@Param("orgCode") String orgCode, @Param("time") String time);
} }
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
tzs_safety_problem_tracing tzs_safety_problem_tracing
WHERE WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' ) governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND create_date &gt;= #{startDate} AND problem_time &gt;= #{startDate}
AND source_type IN AND source_type IN
<foreach collection="mainBodyNameList" item="item" separator="," open="(" close=")"> <foreach collection="mainBodyNameList" item="item" separator="," open="(" close=")">
#{item} #{item}
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
tzs_safety_problem_tracing tzs_safety_problem_tracing
WHERE WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' ) governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND create_date &gt;= #{startDate} AND problem_time &gt;= #{startDate}
AND source_type = #{sourceType} AND source_type = #{sourceType}
AND problem_type IN AND problem_type IN
<foreach collection="enumNameList" item="item" separator="," open="(" close=")"> <foreach collection="enumNameList" item="item" separator="," open="(" close=")">
...@@ -46,35 +46,109 @@ ...@@ -46,35 +46,109 @@
<select id="getIssueCountByMonth" resultType="java.util.Map"> <select id="getIssueCountByMonth" resultType="java.util.Map">
SELECT COUNT SELECT COUNT
( 1 ), ( 1 ),
DATE_FORMAT(create_date,'%Y-%m') AS time DATE_FORMAT(problem_time,'%Y-%m') AS time
FROM FROM
tzs_safety_problem_tracing tzs_safety_problem_tracing
WHERE WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' ) governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(create_date,'%Y') = #{year} AND DATE_FORMAT(problem_time,'%Y') = #{year}
<if test="null != status"> <if test="null != status">
AND problem_status_code = #{status} AND problem_status_code = #{status}
</if> </if>
GROUP BY GROUP BY
DATE_FORMAT(create_date,'%Y-%m') DATE_FORMAT(problem_time,'%Y-%m')
</select> </select>
<select id="getIssueCountByDate" resultType="java.util.Map"> <select id="getIssueCountByDate" resultType="java.util.Map">
SELECT COUNT SELECT COUNT
( 1 ), ( 1 ),
DATE_FORMAT(create_date,'%Y-%m-%d') AS time DATE_FORMAT(problem_time,'%Y-%m-%d') AS time
FROM FROM
tzs_safety_problem_tracing tzs_safety_problem_tracing
WHERE WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' ) governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(create_date,'%Y-%m-%d') &gt;= #{year} AND DATE_FORMAT(problem_time,'%Y-%m-%d') &gt;= #{year}
<if test="null != status"> <if test="null != status">
AND problem_status_code = #{status} AND problem_status_code = #{status}
</if> </if>
GROUP BY GROUP BY
DATE_FORMAT(create_date,'%Y-%m-%d') DATE_FORMAT(problem_time,'%Y-%m-%d')
</select>
<select id="countByOrgCode" resultType="java.lang.Integer">
SELECT COUNT
( 1 )
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT(problem_time,'%Y-%m') &gt;= #{now}
</select>
<select id="getOrgCodeAndCompanyCodesByCompanyCodes" resultType="java.util.Map">
select org_code AS orgCode,company_code AS companyCode from privilege_company where company_code in
<foreach collection="regionCodes" item="regionCode" separator="," open="(" close=")">
#{regionCode} :: VARCHAR
</foreach>
</select>
<select id="countByOrgCodes" resultType="java.util.Map">
SELECT COUNT
( 1 ),
governing_body_org_code AS orgCode
FROM
tzs_safety_problem_tracing
WHERE
DATE_FORMAT(problem_time,'%Y-%m') &gt;= #{now}
AND
<foreach collection="orgCodes" item="orgCode" separator="OR" open="(" close=")">
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
</foreach>
GROUP BY
governing_body_org_code
</select>
<select id="issueMonthList" resultType="java.util.Map">
SELECT
sequence_nbr AS sequenceNbr,
source_type AS sourceType,
problem_type AS problemType,
problem_time AS problemTime
FROM
tzs_safety_problem_tracing
WHERE
governing_body_org_code LIKE concat ( #{orgCode}, '%' )
AND DATE_FORMAT ( problem_time, '%Y-%m' ) = #{time}
</select>
<select id="issueProblemLevelCount" resultType="java.util.Map">
SELECT
COUNT
( 1 ),
problem_level AS problemLevel
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
GROUP BY
problem_level
ORDER BY
problem_level_code
</select>
<select id="issueCompanyTop" resultType="java.util.Map">
SELECT COUNT
( 1 ),
principal_unit AS principalUnit,
governing_body AS governingBody
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
GROUP BY
principal_unit_code
ORDER BY
COUNT DESC
LIMIT 10
</select> </select>
</mapper> </mapper>
...@@ -158,4 +158,64 @@ public class CylinderStatisticsController { ...@@ -158,4 +158,64 @@ public class CylinderStatisticsController {
Map<String, Object> result = service.issueCountByDay(regionCode.toString()); Map<String, Object> result = service.issueCountByDay(regionCode.toString());
return ResponseHelper.buildResponse(result); return ResponseHelper.buildResponse(result);
}; };
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域数据统计")
@PostMapping(value = "/issueCountByCityCode")
public ResponseModel<Map<String, Object>> issueCountByCityCode(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueCountByCityCode(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当前区域子区域数据统计")
@PostMapping(value = "/issueChildrenCityCount")
public ResponseModel<List<Map<String, Object>>> issueChildrenCityCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueChildrenCityCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当月问题列表(主体类型、问题类型、问题时间、操作)")
@PostMapping(value = "/issueMonthList")
public ResponseModel<List<Map<String, Object>>> issueMonthList(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueMonthList(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "当年问题等级分类统计")
@PostMapping(value = "/issueProblemLevelCount")
public ResponseModel<Map<String, Object>> issueProblemLevelCount(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
Map<String, Object> result = service.issueProblemLevelCount(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按问题类型排名top 10")
@PostMapping(value = "/issueCompanyTop")
public ResponseModel<List<Map<String, Object>>> issueCompanyTop(@RequestBody Map<String, Object> map ) throws Exception {
Object regionCode = map.get("cityCode");
if (ObjectUtils.isEmpty(regionCode)) {
regionCode = "610000";
}
List<Map<String, Object>> result = service.issueCompanyTop(regionCode.toString());
return ResponseHelper.buildResponse(result);
};
} }
...@@ -23,6 +23,7 @@ import com.yeejoin.amos.feign.privilege.model.CompanyModel; ...@@ -23,6 +23,7 @@ import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.RegionModel; import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import joptsimple.internal.Strings; import joptsimple.internal.Strings;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RequestOptions;
...@@ -50,6 +51,7 @@ import java.time.LocalDate; ...@@ -50,6 +51,7 @@ import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -834,7 +836,7 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto ...@@ -834,7 +836,7 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
list1.add(mainBodyNameList.get(i)); list1.add(mainBodyNameList.get(i));
List<Map<String, Object>> maps = statisticsMapper.selectByOrgAndMainBody(orgCode, list1, startDate, "1"); List<Map<String, Object>> maps = statisticsMapper.selectByOrgAndMainBody(orgCode, list1, startDate, "1");
if(maps.size() > 0){ if(maps.size() > 0){
problemRate.add(new DecimalFormat("0.00").format(Double.parseDouble(dataMap.get(mainBodyNameList.get(i)).toString()) / Double.parseDouble(maps.get(0).get("count").toString()))); problemRate.add(new DecimalFormat("0.00").format( Double.parseDouble(maps.get(0).get("count").toString()) / Double.parseDouble(dataMap.get(mainBodyNameList.get(i)).toString())));
}else{ }else{
problemRate.add("0"); problemRate.add("0");
} }
...@@ -985,9 +987,9 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto ...@@ -985,9 +987,9 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
List<Object> problemCount = new ArrayList<>(); List<Object> problemCount = new ArrayList<>();
List<Object> processedRate = new ArrayList<>(); List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>(); List<Object> xdata = new ArrayList<>();
for(int i = 1; i <= 12; i++){ for(int i = 0; i < 12; i++){
xdata.add(i+"月");
String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM")); String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM"));
xdata.add(time);
if(allIssueMap.get(time) == null){ if(allIssueMap.get(time) == null){
problemCount.add("0"); problemCount.add("0");
processedRate.add("0"); processedRate.add("0");
...@@ -1000,6 +1002,7 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto ...@@ -1000,6 +1002,7 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
} }
} }
} }
Collections.reverse(xdata);
Collections.reverse(problemCount); Collections.reverse(problemCount);
Collections.reverse(processedRate); Collections.reverse(processedRate);
resultMap.put("xdata",xdata); resultMap.put("xdata",xdata);
...@@ -1039,8 +1042,8 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto ...@@ -1039,8 +1042,8 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
List<Object> processedRate = new ArrayList<>(); List<Object> processedRate = new ArrayList<>();
List<Object> xdata = new ArrayList<>(); List<Object> xdata = new ArrayList<>();
for(int i = 0; i < 29; i++){ for(int i = 0; i < 29; i++){
xdata.add(LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); String time = LocalDate.now().minusDays(i).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
String time = LocalDate.now().minusMonths(i).format(DateTimeFormatter.ofPattern("yyyy-MM")); xdata.add(time);
if(allIssueMap.get(time) == null){ if(allIssueMap.get(time) == null){
problemCount.add("0"); problemCount.add("0");
processedRate.add("0"); processedRate.add("0");
...@@ -1061,4 +1064,91 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto ...@@ -1061,4 +1064,91 @@ public class CylinderAreaDataServiceImpl extends BaseService<CylinderAreaDataDto
resultMap.put("processedRate",processedRate); resultMap.put("processedRate",processedRate);
return resultMap; return resultMap;
} }
public Map<String, Object> issueCountByCityCode(String cityCode) {
String orgCode = getAndSetOrgCode(cityCode);
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
int count = statisticsMapper.countByOrgCode(orgCode,now);
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("issueCount",count);
return resultMap;
}
public List<Map<String, Object>> issueChildrenCityCount(String cityCode) throws Exception {
List<RegionModel> regionModels = setRegionIfRootParent(cityCode);
List<Integer> regionCodeList = regionModels.stream().map(m -> m.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->{
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->{
dataMap.put(t.get("orgCode").toString(),t.get("count"));
});
List<Map<String,Object>> resultList = new ArrayList<>();
for(RegionModel regionModel : regionModels){
Map<String,Object> map = new HashMap<>();
AtomicInteger count = new AtomicInteger();
map.put("regionCode",regionModel.getRegionCode());
map.put("regionName",regionModel.getRegionName());
if(StringUtils.isNotBlank(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode()+""))){
dataMap.forEach((k, v)->{
if(k.startsWith(orgCodeAndCompanyCodesMap.get(regionModel.getRegionCode()+""))){
if(null != v){
count.addAndGet(Integer.valueOf(v+""));
}
}
});
}
map.put("issueCount",count);
resultList.add(map);
}
return resultList;
}
public List<Map<String, Object>> issueMonthList(String cityCode) {
String orgCode = getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
List<Map<String,Object>> list = statisticsMapper.issueMonthList(orgCode,time);
return list;
}
public Map<String, Object> issueProblemLevelCount(String cityCode) {
Map<String,Object> resultMap = new HashMap<>();
String orgCode = getAndSetOrgCode(cityCode);
String time = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy"));
List<Map<String,Object>> list = statisticsMapper.issueProblemLevelCount(orgCode,time);
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"));
}
resultMap.put("xdata",xdata);
resultMap.put("ydata",ydata);
return resultMap;
}
public List<Map<String, Object>> issueCompanyTop(String cityCode) {
List<Map<String,Object>> resultList = new ArrayList<>();
String orgCode = getAndSetOrgCode(cityCode);
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++){
Map<String,Object> map = new HashMap<>();
map.put("sequenceNbr",(i+1)+"");
map.put("region",list.get(i).get("governingBody"));
map.put("company",list.get(i).get("principalUnit"));
map.put("count",list.get(i).get("count"));
resultList.add(map);
}
return resultList;
}
} }
\ No newline at end of file
...@@ -20,10 +20,11 @@ public interface JyjcInspectionApplicationEquipMapper extends BaseMapper<JyjcIns ...@@ -20,10 +20,11 @@ public interface JyjcInspectionApplicationEquipMapper extends BaseMapper<JyjcIns
/** /**
* 检验检测次数统计维度按照设备种类、检验类型进行统计 * 检验检测次数统计维度按照设备种类、检验类型进行统计
* *
* @param dpFilterParamDto g过滤条件 * @param dpFilterParamDto 过滤条件时间
* @param orgCode 过滤条件区域对应的公司的orgCode
* @return 统计列表 * @return 统计列表
*/ */
List<InspectTimeCountDto> countInspectTimeCountByTypeAndEquList(DPFilterParamDto dpFilterParamDto); List<InspectTimeCountDto> countInspectTimeCountByTypeAndEquList(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
Integer inspectTimeCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto); Integer inspectTimeCount(@Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
} }
...@@ -21,27 +21,25 @@ ...@@ -21,27 +21,25 @@
c.equ_define, c.equ_define,
count(1) as num count(1) as num
from from
(SELECT (
SELECT
ae.equ_list, ae.equ_list,
ae.equ_category, ae.equ_category,
ae.equ_define, ae.equ_define,
a.biz_type, a.biz_type,
concat(u.PROVINCE,'#', u.CITY,'#', u.COUNTY) as areaCode s.ORG_BRANCH_CODE as orgBranchCode
FROM FROM
"tz_jyjc_inspection_application_equip" ae, "tz_jyjc_inspection_application_equip" ae,
tz_jyjc_inspection_application a, tz_jyjc_inspection_application a,
"idx_biz_jg_use_info" u "idx_biz_jg_supervision_info" s
where where
ae.equip_unicode = u."RECORD" s."RECORD" = ae.equip_unicode
and a.sequence_nbr = ae.application_seq and a.sequence_nbr = ae.application_seq
and (a.application_date between #{beginDate} and #{endDate}) and a.application_date between #{dto.beginDate} and #{dto.endDate}
and a.status='6616' and a.status='6616'
and u."PROVINCE" <![CDATA[<>]]> ''
and u."CITY" <![CDATA[<>]]> ''
and u."COUNTY" <![CDATA[<>]]> ''
) c ) c
where where
c.areaCode like concat('%',#{cityCode}, '%') c.orgBranchCode like concat(#{orgCode}, '%')
group by c.biz_type, group by c.biz_type,
c.equ_list, c.equ_list,
c.equ_category, c.equ_category,
......
...@@ -114,8 +114,9 @@ public class DPStatisticsServiceImpl { ...@@ -114,8 +114,9 @@ public class DPStatisticsServiceImpl {
} }
private void buildYData(Map<String, Object> result, List<BizTypeEnum> bizTypeEnums, DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) { private void buildYData(Map<String, Object> result, List<BizTypeEnum> bizTypeEnums, DPFilterParamDto dpFilterParamDto, List<EquipmentCategoryDto> equipmentCategoryDtos) {
String orgCode = this.getAndSetOrgCode(dpFilterParamDto.getCityCode());
// 待统计的数据本来sql可以单独统计,但是要求气瓶单独从压力容器里拎出来,与八大类同级,故java处理 // 待统计的数据本来sql可以单独统计,但是要求气瓶单独从压力容器里拎出来,与八大类同级,故java处理
List<InspectTimeCountDto> inspectTimeCountDtos = inspectionApplicationEquipMapper.countInspectTimeCountByTypeAndEquList(dpFilterParamDto); List<InspectTimeCountDto> inspectTimeCountDtos = inspectionApplicationEquipMapper.countInspectTimeCountByTypeAndEquList(orgCode,dpFilterParamDto);
bizTypeEnums.forEach(bizTypeEnum -> { bizTypeEnums.forEach(bizTypeEnum -> {
result.put(bizTypeEnum.getCode(), this.countNumByBizTypeAndEquList(equipmentCategoryDtos, bizTypeEnum.getCode(), inspectTimeCountDtos)); result.put(bizTypeEnum.getCode(), this.countNumByBizTypeAndEquList(equipmentCategoryDtos, bizTypeEnum.getCode(), inspectTimeCountDtos));
}); });
......
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