Commit 2db028ce authored by tianbo's avatar tianbo

Merge remote-tracking branch 'origin/develop_tzs_bugfix' into develop_tzs_register

parents bb892466 697f31c6
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 大屏筛选过滤对象
......@@ -195,7 +196,7 @@ public class DPFilterParamForDetailDto {
/**
* 下次检验日期
*/
private String nextInspectionDate;
private List<String> nextInspectionDate;
/**
* 姓名
*/
......
......@@ -2882,7 +2882,7 @@
<foreach collection="records" item="record" separator="," open="(" close=")">
#{record}
</foreach>
and (a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '已作废')
and (a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '已作废')
group by b.equ_id
UNION all
select
......@@ -2924,7 +2924,7 @@
tzs_jg_scrap_cancel a,
tzs_jg_scrap_cancel_eq b
where
a.sequence_nbr = b.equip_transfer_id
a.sequence_nbr = b.equip_transfer_id
and a.is_delete = 0
and b.equ_id in
<foreach collection="records" item="record" separator="," open="(" close=")">
......@@ -2932,22 +2932,6 @@
</foreach>
and (a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '已作废')
group by b.equ_id
UNION all
select
count(1) as inUseNumber,
b.equ_id as record
from
tzs_jg_equip_transfer a,
tzs_jg_equip_transfer_eq b
where
a.sequence_nbr = b.equip_transfer_id
and b.equ_id in
<foreach collection="records" item="record" separator="," open="(" close=")">
#{record}
</foreach>
and a.is_delete = 0
and (a.apply_status <![CDATA[ <> ]]> '6617' AND a.apply_status <![CDATA[ <> ]]> '6610')
group by b.equ_id
UNION all
select
count(1) as inUseNumber,
......@@ -2979,6 +2963,7 @@
#{record}
</foreach>
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '已作废')
group by b.equ_id
UNION all
select
count(1) as inUseNumber,
......@@ -2994,6 +2979,7 @@
#{record}
</foreach>
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '已作废')
group by b.record
UNION all
select
count(1) as inUseNumber,
......
......@@ -335,6 +335,9 @@
<if test="dto.equListCode != null and dto.equListCode != ''">
and tjurm.equ_list_code = #{dto.equListCode}
</if>
<if test="dto.superviseOrgCode != null and dto.superviseOrgCode != ''">
and pc.org_code like concat (#{dto.superviseOrgCode}, '%')
</if>
<if test="dto.equCategory != null and dto.equCategory != ''">
and tjurm.equ_category = #{dto.equCategory}
</if>
......
......@@ -3286,6 +3286,7 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
Map<String, Object> staticCountByGroup = new HashMap<>();
// 组装数据
List<Map<String, Object>> resultList = new ArrayList<>();
List<Map<String, Object>> dataMapList = new ArrayList<>();
// 当设备默认进入时候,提前复制前置查询条件,供气瓶提级使用
BoolQueryBuilder gasBoolQueryBuilder = new BoolQueryBuilder();
......@@ -3307,6 +3308,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
List<String> codes = new ArrayList<>();
BoolQueryBuilder pipeBoolMust = QueryBuilderUtils.copyBoolQuery(boolMust);
Long oneClassCount = 0L;
Long twoClassCount = 0L;
Long threeClassCount = 0L;
for (Map<String, Object> categoryMap : staticCountByGroupMap) {
BoolQueryBuilder queryBuilder = QueryBuilderUtils.copyBoolQuery(pipeBoolMust);
String code = categoryMap.get("value").toString();
......@@ -3339,6 +3343,11 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
SearchSourceBuilder scoreBuilder = new SearchSourceBuilder();
Map<String, Object> scoreCountByGroup = new HashMap<>();
getStatisticCountByGroup(request, scoreBuilder, scoreQuery, "DATA_QUALITY_SCORE", scoreCountByGroup, "scoreCount");
if(!code.startsWith("8")){
for (String key : scoreCountByGroup.keySet()) {
Long classCount = "1".equals(key) ? oneClassCount += (Long) scoreCountByGroup.get(key) : ("2".equals(key) ? (twoClassCount += (Long) scoreCountByGroup.get(key)) : (threeClassCount += (Long) scoreCountByGroup.get(key)));
}
}
map.put("DATA_QUALITY_SCORE", scoreCountByGroup);
// 统计该分类下红黄绿码分别的分组数量 NEXT_INSPECT_DATE
Map<String, Long> nextInspectCountByGroup = new HashMap<>();
......@@ -3382,6 +3391,9 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
Map<String, Object> scoreCountByGroup = new HashMap<>();
getStatisticCountByGroup(request, scoreBuilder, scoreQuery, "DATA_QUALITY_SCORE", scoreCountByGroup, "scoreCount");
map.put("DATA_QUALITY_SCORE", scoreCountByGroup);
for (String key : scoreCountByGroup.keySet()) {
Long classCount = "1".equals(key) ? oneClassCount += (Long) scoreCountByGroup.get(key) : ("2".equals(key) ? (twoClassCount += (Long) scoreCountByGroup.get(key)) : (threeClassCount += (Long) scoreCountByGroup.get(key)));
}
// 统计该分类下红黄绿码分别的分组数量 NEXT_INSPECT_DATE
Map<String, Long> nextInspectCountByGroup = new HashMap<>();
BoolQueryBuilder nextInspectQuery = QueryBuilderUtils.copyBoolQuery(gasBoolQueryBuilder);
......@@ -3409,6 +3421,10 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
// 统计种类/类别/品种数据不对的数据字段
if (!ObjectUtils.isEmpty(staticCountByGroup)) {
statisticOtherCount(request, dataMapList, staticCountByGroup, boolMust, groupField, equipCode);
Map<String, Long> otherMap = (Map<String, Long>) dataMapList.get(dataMapList.size() - 1).get("DATA_QUALITY_SCORE");
oneClassCount += otherMap.containsKey("1") ? otherMap.get("1") : 0L;
twoClassCount += otherMap.containsKey("2") ? otherMap.get("2") : 0L;
threeClassCount += otherMap.containsKey("3") ? otherMap.get("3") : 0L;
}
if (!ObjectUtils.isEmpty(equipCode)) {
......@@ -3423,7 +3439,22 @@ public class ComprehensiveStatisticalAnalysisServiceImpl {
tabTotalMap.put(equipCode, dataMapList.stream().mapToLong(map -> (Long) map.get("value")).sum());
}
}
return dataMapList;
for (int i = 1; i < 4; i++) {
Map<String, Object> map = new HashMap<>();
map.put("key", i);
map.put("code", i);
map.put("noChild", Boolean.TRUE);
map.put("noDetails", Boolean.TRUE);
map.put("noBottom", Boolean.TRUE);
map.put("fieldKey", "DATA_QUALITY_SCORE");
String imgUrl = String.format("/upload/tzs/dpscreen/statistic/datalevel%s.png", i);
map.put("img", imgUrl);
map.put("label", i == 1 ? "一类设备" : i == 2 ? "二类设备" : "三类设备");
map.put("value", i == 1 ? oneClassCount : i == 2 ? twoClassCount : threeClassCount);
resultList.add(map);
}
resultList.addAll(dataMapList);
return resultList;
}
private void statisticOtherCount(SearchRequest request, List<Map<String, Object>> dataMapList, Map<String, Object> staticCountByGroup, BoolQueryBuilder boolMust, String groupField, String equipCode) {
......
......@@ -26,6 +26,7 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource;
......@@ -375,9 +376,16 @@ public class EquipmentStaticsServiceImpl {
boolMust.must(QueryBuilders.wildcardQuery("EQU_CATEGORY", "*" + dpFilterParamForDetailDto.getEquCategory() + "*"));
}
if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getNextInspectionDate())) {
String[] timeArray = dpFilterParamForDetailDto.getNextInspectionDate().split(",");
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(timeArray[0]).lte(timeArray[1]));
if (!CollectionUtils.isEmpty(dpFilterParamForDetailDto.getNextInspectionDate())) {
String startDate = dpFilterParamForDetailDto.getNextInspectionDate().get(0);
String endDate = dpFilterParamForDetailDto.getNextInspectionDate().get(1);
if (startDate != null && endDate != null) {
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(startDate).lte(endDate));
} else if (startDate != null) {
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(startDate));
} else if (endDate != null) {
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").lte(endDate));
}
}
}
}
......@@ -282,6 +282,8 @@ public class JGDPStatisticsServiceImpl {
private final ComprehensiveStatisticalAnalysisServiceImpl statisticalAnalysisService;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private List<LegendDataDto> buildLegendDataList() {
List<LegendDataDto> legendDataDtos = new ArrayList<>();
......@@ -720,14 +722,14 @@ public class JGDPStatisticsServiceImpl {
private long countEquipNumFromES(DPFilterParamDto dpFilterParamDto, Integer... states) {
long num;
CountRequest request = new CountRequest();
request.indices("idx_biz_view_jg_all");
request.indices(StatisticalAnalysisEnum.equip.getKey());
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) + "*"));
boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode));
//已赋码
boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE", "null"));
......@@ -789,25 +791,22 @@ public class JGDPStatisticsServiceImpl {
private Long staticsCenterMapCountDateTemporary(DPFilterParamDto dpFilterParamDto) {
long num;
CountRequest request = new CountRequest();
request.indices("idx_biz_view_jg_all");
request.indices(StatisticalAnalysisEnum.equip.getKey());
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) + "*"));
boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode));
//已赋码
boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE", "null"));
//状态为已认领
String[] status = {"草稿", "已拒领", "待认领"};
boolMust.mustNot(QueryBuilders.termsQuery("STATUS", Arrays.asList(status)));
// 且下次检验日期大于等于当天
long currentDayTime = DateUtil.parse(DateUtil.today(), "yyy-MM-dd").getTime();
// 且查询 下次检验日期 <= 当前天+30天 极为临期
long currentDayAfter30DayTime = DateUtil.offsetDay(DateUtil.parse(DateUtil.today(), "yyy-MM-dd"), 30).getTime();
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(currentDayTime).lte(currentDayAfter30DayTime));
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter)));
// 且8大类,目的去掉脏数据
boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE", StCommonServiceImpl.getEquipmentCategory().stream().map(EquipmentCategoryDto::getCode).collect(Collectors.toList())));
request.query(boolMust);
......@@ -830,14 +829,14 @@ public class JGDPStatisticsServiceImpl {
private Long staticsCenterMapCountDateOverdue(DPFilterParamDto dpFilterParamDto) {
long num = 0;
CountRequest request = new CountRequest();
request.indices("idx_biz_view_jg_all");
request.indices(StatisticalAnalysisEnum.equip.getKey());
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) + "*"));
boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode));
//已赋码
boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE", "null"));
......@@ -3574,10 +3573,11 @@ public class JGDPStatisticsServiceImpl {
return new Page<>();
}
// 默认登录监管单位orgcode过滤
problemModel.setGoverningBodyOrgCode(orgCode);
if (!ObjectUtils.isEmpty(problemModel.getGoverningBodyOrgCode())) {
// 筛选条件起效
problemModel.setGoverningBodyOrgCode(problemModel.getGoverningBodyOrgCode());
} else {
problemModel.setGoverningBodyOrgCode(orgCode);
}
// 使用orgCode过滤
// 将单位类型从code转化为value
......@@ -3594,6 +3594,7 @@ public class JGDPStatisticsServiceImpl {
public Page<JgUseRegistrationManageDto> getRegistrationRecords(Page<JgUseRegistrationManageDto> page, JgUseRegistrationManageDto dto, String cityCode) {
String orgCode = stCommonService.getAndSetOrgCode(cityCode);
return jgUseRegistrationManageMapper.getRecords(page, dto, orgCode);
}
......
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