Commit 4f71da2c authored by 麻笑宇's avatar 麻笑宇

检验检测 / 检验时效排名(Top10)

下钻代码提交
parent 377c2e67
...@@ -519,7 +519,7 @@ ...@@ -519,7 +519,7 @@
<if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''"> <if test="dpFilterParamForDetailDto.inspectionUnitName != null and dpFilterParamForDetailDto.inspectionUnitName != ''">
and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%') and a.inspection_unit_name like CONCAT('%',#{dpFilterParamForDetailDto.inspectionUnitName},'%')
</if> </if>
<if test="dpFilterParamForDetailDto.timeSearchOne != null and dpFilterParamForDetailDto.timeSearchOne != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne != null">
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate}) and date_ge(CAST(a.application_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if> </if>
......
...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistics.api.mapper; ...@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.dto.JyjcInspectionApplicationDto; import com.yeejoin.amos.boot.biz.common.dto.JyjcInspectionApplicationDto;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamForDetailDto;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -60,4 +61,10 @@ public interface JYJCStatisticsMapper extends BaseMapper { ...@@ -60,4 +61,10 @@ public interface JYJCStatisticsMapper extends BaseMapper {
* @return * @return
*/ */
List<Map<String,Object>> getDataByApplicationSeq(Long applicationSeq); List<Map<String,Object>> getDataByApplicationSeq(Long applicationSeq);
Page<Map<String, Object>> inspectionTimelinessTopXXPage(@Param("page") Page<Map<String, Object>> page, @Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long inspectionCount(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
Long inspectionFinishCount(@Param("dpFilterParamForDetailDto") DPFilterParamForDetailDto dpFilterParamForDetailDto);
} }
...@@ -189,7 +189,7 @@ ...@@ -189,7 +189,7 @@
<if test="dpFilterParamForDetailDto.fillingMedium != null and dpFilterParamForDetailDto.fillingMedium != ''"> <if test="dpFilterParamForDetailDto.fillingMedium != null and dpFilterParamForDetailDto.fillingMedium != ''">
AND jtpv.CHARGING_MEDIUM = #{dpFilterParamForDetailDto.fillingMedium} AND jtpv.CHARGING_MEDIUM = #{dpFilterParamForDetailDto.fillingMedium}
</if> </if>
<if test="dpFilterParamForDetailDto.timeSearchOne != null and dpFilterParamForDetailDto.timeSearchOne != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne != null">
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(cfr.filling_endtime as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate}) and date_ge(CAST(cfr.filling_endtime as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if> </if>
...@@ -209,7 +209,7 @@ ...@@ -209,7 +209,7 @@
INNER JOIN tz_cylinder_offloading co ON tbei.app_id = co.app_id INNER JOIN tz_cylinder_offloading co ON tbei.app_id = co.app_id
WHERE WHERE
tbei.unit_type LIKE'%充装单位%' tbei.unit_type LIKE'%充装单位%'
<if test="dpFilterParamForDetailDto.timeSearchOne != null and dpFilterParamForDetailDto.timeSearchOne != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne != null">
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''"> <if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and date_ge(CAST(co.statistics_sync_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate}) and date_ge(CAST(co.statistics_sync_date as date),#{dpFilterParamForDetailDto.timeSearchOne.beginDate})
</if> </if>
......
...@@ -105,6 +105,102 @@ ...@@ -105,6 +105,102 @@
from tz_jyjc_inspection_application_attachment from tz_jyjc_inspection_application_attachment
where application_seq = #{applicationSeq} where application_seq = #{applicationSeq}
</select> </select>
<select id="inspectionCount" resultType="java.lang.Long">
SELECT COUNT
( 1 )
FROM
tz_jyjc_inspection_application jia
INNER JOIN tz_base_enterprise_info tbei ON tbei.use_unit_code = jia.inspection_unit_code
AND ((tbei.supervise_org_code != '50' and tbei.supervise_org_code LIKE CONCAT (#{dpFilterParamForDetailDto.orgCode}, '%')) or (tbei.supervise_org_code = '50' and tbei.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
</select>
<select id="inspectionFinishCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
tz_jyjc_inspection_result r,
tz_base_enterprise_info tbei
where
r.result_status ='2'
and r.inspection_unit_code= tbei.use_unit_code
AND ((tbei.supervise_org_code != '50' and tbei.supervise_org_code LIKE CONCAT (#{dpFilterParamForDetailDto.orgCode}, '%')) or (tbei.supervise_org_code = '50' and tbei.office_region LIKE CONCAT ('%', #{dpFilterParamForDetailDto.cityCode}, '%')))
</select>
<select id="inspectionTimelinessTopXXPage" resultType="java.util.Map">
SELECT
tbei.use_unit_code AS useUnitCode,
tbei.unit_type AS unitType,
tbei.use_unit AS useUnit,
concat ( tbei.province, tbei.city, tbei.district ) AS region,
tbei.address AS address,
tbei.legal_person AS legalPerson,
tbei.use_unit_certificate AS useUnitCertificate,
tbei.supervise_org_name AS superviseOrgName,
l.expiry_date AS expiryDate,
IFNULL ( u."userCount", '0' ) AS userCount,
IFNULL ( e."equipCount", '0' ) AS equipCount,
IFNULL ( i.inspectionCount,'0') AS inspectionCount,
IFNULL ( i.inspectionFinishCount,'0') AS inspectionFinishCount
FROM
tz_base_enterprise_info tbei
LEFT JOIN ( SELECT * FROM tz_base_unit_licence GROUP BY unit_code ORDER BY expiry_date DESC ) AS l ON l.unit_code = tbei.use_unit_code
LEFT JOIN (
SELECT
tbei.use_unit_code AS useNnitCode,
COUNT ( 1 ) AS userCount
FROM
tz_base_enterprise_info tbei
INNER JOIN tzs_user_info ui ON tbei.use_unit_code = ui.unit_code
WHERE
tbei.unit_type LIKE'%检验检测机构%'
GROUP BY
tbei.use_unit_code
) u ON u."useNnitCode" = tbei.use_unit_code
LEFT JOIN (
SELECT
tbei.use_unit_code AS useNnitCode,
COUNT ( 1 ) AS equipCount
FROM
tz_base_enterprise_info tbei
INNER JOIN idx_biz_jg_use_info jui ON tbei.use_unit_code = jui.USE_UNIT_CREDIT_CODE
LEFT JOIN idx_biz_jg_other_info joi ON joi.RECORD = jui.RECORD
AND joi.SUPERVISORY_CODE IS NOT NULL
AND joi.SUPERVISORY_CODE != ''
AND joi.SUPERVISORY_CODE != 'null'
WHERE
tbei.unit_type LIKE'%检验检测机构%'
GROUP BY
tbei.use_unit_code
) e ON e."useNnitCode" = tbei.use_unit_code
LEFT JOIN (
SELECT
tbei.use_unit_code,
COUNT ( 1 ) AS inspectionCount,
COUNT ( IF ( jir.result_status = '2', 1, NULL ) ) AS inspectionFinishCount
FROM
tz_base_enterprise_info tbei
LEFT JOIN tz_jyjc_inspection_application jia ON tbei.use_unit_code = jia.inspection_unit_code
LEFT JOIN tz_jyjc_inspection_result jir ON jir.application_no = jia.application_no
WHERE
tbei.unit_type LIKE'%检验检测机构%'
AND (
( tbei.supervise_org_code != '50' AND tbei.supervise_org_code LIKE CONCAT ( #{dpFilterParamForDetailDto.orgCode}, '%' ) )
OR ( tbei.supervise_org_code = '50' AND tbei.office_region LIKE CONCAT ( '%', #{dpFilterParamForDetailDto.cityCode}, '%' ) )
)
<if test="dpFilterParamForDetailDto.timeSearchOne != null">
<if test="dpFilterParamForDetailDto.timeSearchOne.beginDate != null and dpFilterParamForDetailDto.timeSearchOne.beginDate != ''">
and jia.rec_date &gt;=#{dpFilterParamForDetailDto.timeSearchOne.beginDate}
</if>
<if test="dpFilterParamForDetailDto.timeSearchOne.endDate != null and dpFilterParamForDetailDto.timeSearchOne.endDate != ''">
and jia.rec_date &lt;= #{dpFilterParamForDetailDto.timeSearchOne.endDate}
</if>
</if>
GROUP BY
tbei.use_unit_code
) i ON i.use_unit_code = tbei.use_unit_code
where tbei.unit_type LIKE'%检验检测机构%'
<if test="dpFilterParamForDetailDto.companyName != null and dpFilterParamForDetailDto.companyName != ''">
and tbei.use_unit like concat('%',#{dpFilterParamForDetailDto.companyName},'%')
</if>
</select>
</mapper> </mapper>
...@@ -179,6 +179,41 @@ public class JYJCDPStatisticsController { ...@@ -179,6 +179,41 @@ public class JYJCDPStatisticsController {
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名下钻图表", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名下钻图表")
@PostMapping(value = "/timeliness/topChart")
public ResponseModel<Map<String, Object>> inspectionTimelinessTopXXChart(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.inspectionTimelinessTopXXChart(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名下钻图表", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名下钻图表")
@PostMapping(value = "/timeliness/topPage")
public ResponseModel<Page<Map<String, Object>>> inspectionTimelinessTopXXPage(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result,
@RequestParam(value = "current", defaultValue = "1") Integer current,
@RequestParam(value = "size", defaultValue = "20") Integer size) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
Page<Map<String, Object>> page = new Page<>(current,size);
return ResponseHelper.buildResponse(statisticsService.inspectionTimelinessTopXXPage(page,dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-应急-维保单位平均救援时间排名下钻类型", notes = "大屏-应急-维保单位平均救援时间排名下钻类型")
@PostMapping(value = "/timeliness/topType")
public ResponseModel<List<Map<String, Object>>> inspectionTimelinessTopXXType(@Validated @RequestBody DPFilterParamForDetailDto dpFilterParamForDetailDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.inspectionTimelinessTopXXType(dpFilterParamForDetailDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-检验检测机构公示", notes = "大屏-检验检测-检验检测机构公示") @ApiOperation(httpMethod = "POST", value = "大屏-检验检测-检验检测机构公示", notes = "大屏-检验检测-检验检测机构公示")
@PostMapping(value = "/inspectionOrgList/publicity") @PostMapping(value = "/inspectionOrgList/publicity")
public ResponseModel<List<PublicityInspectOrgInfoDto>> inspectionOrgListForPublicity(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) { public ResponseModel<List<PublicityInspectOrgInfoDto>> inspectionOrgListForPublicity(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
......
...@@ -960,9 +960,9 @@ public class CylinderDPStatisticsServiceImpl { ...@@ -960,9 +960,9 @@ public class CylinderDPStatisticsServiceImpl {
for(int i = 0; i < list.getRecords().size(); i++){ for(int i = 0; i < list.getRecords().size(); i++){
if("0.0".equals(list.getRecords().get(i).get("fillingCount")+"") && "0.0".equals(list.getRecords().get(i).get("offloadingVolume")+"")){ if("0.0".equals(list.getRecords().get(i).get("fillingCount")+"") && "0.0".equals(list.getRecords().get(i).get("offloadingVolume")+"")){
list.getRecords().get(i).put("isDock","对接"); list.getRecords().get(i).put("isDock","对接");
}else{ }else{
list.getRecords().get(i).put("isDock","对接"); list.getRecords().get(i).put("isDock","对接");
} }
} }
return list; return list;
......
...@@ -366,6 +366,85 @@ public class JYJCDPStatisticsServiceImpl { ...@@ -366,6 +366,85 @@ public class JYJCDPStatisticsServiceImpl {
return inspectionResultMapper.queryInspectionTimelinessTopXX(top, orgCode, dpFilterParamDto); return inspectionResultMapper.queryInspectionTimelinessTopXX(top, orgCode, dpFilterParamDto);
} }
public Map<String, Object> inspectionTimelinessTopXXChart(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto dpFilterParamForDetailDtoForSearch = new DPFilterParamForDetailDto();
dpFilterParamForDetailDtoForSearch.setOrgCode(orgCode);
dpFilterParamForDetailDtoForSearch.setCityCode(r.getRegionCode()+"");
Map<String, Object> itemResult = new HashMap<>();
itemResult.put("xdata",r.getRegionName());
getInspectionTimelinessTopXXChart(itemResult,dpFilterParamForDetailDtoForSearch);
return itemResult;
}).collect(Collectors.toList());
Map<String,Object> returnMap = new HashMap<>();
List<Map<String,Object>> legendData = new ArrayList<>();
for(int i = 0;i<2; i++){
Map<String,Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey","inspectionCount");
map.put("value","报检设备数量");
map.put("chartType","bar");
}else{
map.put("dataKey","inspectionFinishCount");
map.put("value","已检设备数量");
map.put("chartType","bar");
}
legendData.add(map);
}
returnMap.put("legendData",legendData);
List xdata = new ArrayList();
List inspectionCount = new ArrayList();
List inspectionFinishCount = new ArrayList();
for(int i = 0;i<result.size();i++){
xdata.add(result.get(i).get("xdata"));
inspectionCount.add(result.get(i).get("inspectionCount") == null ? 0 : result.get(i).get("inspectionCount"));
inspectionFinishCount.add(result.get(i).get("inspectionFinishCount") == null ? 0 : result.get(i).get("inspectionFinishCount"));
}
returnMap.put("xdata",xdata);
returnMap.put("inspectionCount",inspectionCount);
returnMap.put("inspectionFinishCount",inspectionFinishCount);
return returnMap;
}
public Page<Map<String, Object>> inspectionTimelinessTopXXPage(Page<Map<String, Object>> page, DPFilterParamForDetailDto dpFilterParamForDetailDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
dpFilterParamForDetailDto.setOrgCode(orgCode);
Page<Map<String, Object>> returnPage = jyjcStatisticsMapper.inspectionTimelinessTopXXPage(page,dpFilterParamForDetailDto);
return returnPage;
}
public List<Map<String, Object>> inspectionTimelinessTopXXType(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<Map<String,Object>> result = new ArrayList<>();
List<HashMap<String, Object>> list = new ArrayList<>();
HashMap<String, Object> map = new HashMap<>();
map.put("title", "检验检测机构");
map.put("value", "检验检测机构");
list.add(map);
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("title","企业类型");
resultMap.put("value","0");
resultMap.put("children",list);
result.add(resultMap);
return result;
}
private void getInspectionTimelinessTopXXChart(Map<String, Object> itemResult, DPFilterParamForDetailDto dpFilterParamForDetailDto) {
//报检数量
Long inspectionCount = jyjcStatisticsMapper.inspectionCount(dpFilterParamForDetailDto);
//已检数量
Long inspectionFinishCount = jyjcStatisticsMapper.inspectionFinishCount(dpFilterParamForDetailDto);
itemResult.put("inspectionCount", inspectionCount);
itemResult.put("inspectionFinishCount", inspectionFinishCount);
}
public List<PublicityInspectOrgInfoDto> queryInspectionOrgListForPublicity(DPFilterParamDto dpFilterParamDto) { public List<PublicityInspectOrgInfoDto> queryInspectionOrgListForPublicity(DPFilterParamDto dpFilterParamDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode()); String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){ if(orgCode == null){
...@@ -864,7 +943,7 @@ public class JYJCDPStatisticsServiceImpl { ...@@ -864,7 +943,7 @@ public class JYJCDPStatisticsServiceImpl {
public Map<String,Object> endRateDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) { public Map<String,Object> endRateDetail(DPFilterParamForDetailDto dpFilterParamForDetailDto) {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode()); List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> { List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode()); String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
DPFilterParamForDetailDto filterParamDto = new DPFilterParamForDetailDto(); DPFilterParamForDetailDto filterParamDto = new DPFilterParamForDetailDto();
BeanUtils.copyProperties(dpFilterParamForDetailDto, filterParamDto); BeanUtils.copyProperties(dpFilterParamForDetailDto, filterParamDto);
filterParamDto.setCityCode(r.getRegionCode()+""); filterParamDto.setCityCode(r.getRegionCode()+"");
...@@ -1234,4 +1313,5 @@ public class JYJCDPStatisticsServiceImpl { ...@@ -1234,4 +1313,5 @@ public class JYJCDPStatisticsServiceImpl {
Page<Map<String, Object>> maps = inspectionApplicationMapper.getInspectBusinessList(page, orgCode, filterParamDto, dpFilterParamForDetailDto.getTreeValue()); Page<Map<String, Object>> maps = inspectionApplicationMapper.getInspectBusinessList(page, orgCode, filterParamDto, dpFilterParamForDetailDto.getTreeValue());
return maps; return maps;
} }
} }
...@@ -324,7 +324,7 @@ public class YJDPStatisticsServiceImpl { ...@@ -324,7 +324,7 @@ public class YJDPStatisticsServiceImpl {
List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode()); List<RegionModel> regionModels = stCommonService.setRegionIfRootParent(dpFilterParamForDetailDto.getCityCode());
List<Map<String,Object>> result = regionModels.parallelStream().map(r -> { List<Map<String,Object>> result = regionModels.parallelStream().map(r -> {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode()); String orgCode = stCommonService.getAndSetOrgCode(r.getRegionCode()+"");
Map<String, Object> itemResult = dispatchTaskMapper.rankUnitByRescueTimeDetail(orgCode); Map<String, Object> itemResult = dispatchTaskMapper.rankUnitByRescueTimeDetail(orgCode);
itemResult.put("xdata",r.getRegionName()); itemResult.put("xdata",r.getRegionName());
return itemResult; return itemResult;
......
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