Commit db733e2f authored by tianbo's avatar tianbo

feat(statistics): 为特种设备添加上线率计算功能

- 新增上线率计算逻辑,针对锅炉、电梯、起重机械等设备类型 - 添加底数和上线率字段到 SkjsEquipCountItemDto 类 - 实现 calculateRate 方法用于计算上线率 - 修改 getEquipOnLineInfo 方法,增加上线率相关数据的获取和计算- 更新 RegionModelDto 类,添加 parentRegionCode 字段 -调整 RegulatoryUnitLevelEnum枚举,使用 level 代替 code
parent 4c4efa38
package com.yeejoin.amos.boot.module.statistics.api.dto;
import lombok.Builder;
import lombok.Data;
/**
......@@ -15,6 +14,11 @@ public class RegionModelDto {
private String regionCode;
/**
* 父级区域-code
*/
private String parentRegionCode;
/**
* 区域-name
*/
private String regionName;
......
......@@ -34,10 +34,29 @@ public class SkjsEquipCountItemDto {
private String dt;
/**
* 电梯-底数
*/
private String dtBaseline;
/**
* 电梯上线率
*/
private String dtOnlineRate;
/**
* 起重机械
*/
private String qzjx;
/**
* 起重机械-底数
*/
private String qzjxBaseline;
/**
* 起重机械上线率
*/
private String qzjxOnlineRate;
/**
* 客运索道
......@@ -45,38 +64,105 @@ public class SkjsEquipCountItemDto {
private String kysd;
/**
* 客运索道-底数
*/
private String kysdBaseline;
/**
* 客运索道上线率
*/
private String kysdOnlineRate;
/**
* 大型游乐设施
*/
private String dxylss;
/**
* 大型游乐设施-底数
*/
private String dxylssBaseline;
/**
* 大型游乐设施上线率
*/
private String dxylssOnlineRate;
/**
* 厂车
*/
private String cc;
/**
* 厂车-底数
*/
private String ccBaseline;
/**
* 厂车上线率
*/
private String ccOnlineRate;
/**
* 锅炉
*/
private String gl;
/**
* 锅炉-底数
*/
private String glBaseline;
/**
* 锅炉上线率
*/
private String glOnlineRate;
/**
* 压力容器
*/
private String ylrq;
/**
* 压力容器-底数
*/
private String ylrqBaseline;
/**
* 压力容器上线率
*/
private String ylrqOnlineRate;
/**
* 压力管道
*/
private String ylgd;
/**
* 压力管道-底数
*/
private String ylgdBaseline;
/**
* 压力管道上线率
*/
private String ylgdOnlineRate;
/**
* 气瓶
*/
private String qp;
/**
* 气瓶-底数
*/
private String qpBaseline;
/**
* 气瓶上线率
*/
private String qpOnlineRate;
public void setDefaultValues() {
this.dt = "0";
this.qzjx = "0";
......
......@@ -15,12 +15,12 @@ public enum RegulatoryUnitLevelEnum {
* *监管单位类型
*/
省局("省局", "headquarter"),
市局("市局", "prefecture-level"),
区县局("区县局", "county");
PROVINCE("省局", "headquarter"),
CITY("市局", "prefecture-level"),
COUNTY("区县局", "county");
private final String name;
private final String code;
private final String level;
public static Map<String, String> getName = new HashMap<>();
public static Map<String, String> getCode = new HashMap<>();
......@@ -28,12 +28,12 @@ public enum RegulatoryUnitLevelEnum {
static {
for (RegulatoryUnitLevelEnum e : RegulatoryUnitLevelEnum.values()) {
getName.put(e.code, e.name);
getCode.put(e.name, e.code);
getName.put(e.level, e.name);
getCode.put(e.name, e.level);
}
}
public static RegulatoryUnitLevelEnum getEnumByCode(String code) {
return Arrays.stream(RegulatoryUnitLevelEnum.values()).filter(r -> r.code.equals(code)).findFirst().orElse(null);
public static RegulatoryUnitLevelEnum getEnumByLevelCode(String levelCode) {
return Arrays.stream(RegulatoryUnitLevelEnum.values()).filter(r -> r.level.equals(levelCode)).findFirst().orElse(null);
}
}
......@@ -48,4 +48,5 @@ public interface ZLStatisticsMapper {
List<CountDto> countUserByPostAndAreaCode(@Param("orgCode") String orgCode, @Param("regionCode") String regionCode, Boolean isOrgCodeExactMatch);
List<Map<String, Object>> getEquBaselineData();
}
......@@ -102,12 +102,17 @@
</select>
<select id="getEquipTotal" resultType="java.lang.Long">
select equip_num from tzs_equip_claim_statistics where city_code = #{cityCode}
select equip_num from tzs_equip_claim_statistics where is_delete = 0 and city_code = #{cityCode}
</select>
<select id="getEquListTotal" resultType="java.lang.Long">
select ${field} from tzs_equip_claim_statistics where city_code = #{cityCode}
select ${field} from tzs_equip_claim_statistics where is_delete = 0 and city_code = #{cityCode}
</select>
<select id="getEquBaselineData" resultType="java.util.Map">
select * from tzs_equip_claim_statistics where is_delete = 0
</select>
<select id="getPersonPage" resultType="java.util.Map">
SELECT
tui.sequence_nbr sequenceNbr,
......
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