Commit 74ed649f authored by 麻笑宇's avatar 麻笑宇

检验检测大屏统计增加

1.近30日业务办理量/办结率统计 2.各检验类型业务数量统计/待检数量统计(新)
parent 786e8a7e
......@@ -81,6 +81,12 @@ public interface JyjcInspectionApplicationMapper extends BaseMapper<JyjcInspecti
* @return CountDto
*/
CountDto queryAppByEquListForReporting(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
Long queryAllFlowingAndFinishedCount(@Param("orgCode") String orgCode, @Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
Long queryAllPendingAndFinishedCount(@Param("orgCode") String orgCode, @Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
Long queryAllFinishedCount(@Param("orgCode") String orgCode, @Param("dpFilterParamDto") DPFilterParamDto dpFilterParamDto);
}
......@@ -296,4 +296,43 @@
and date_le(CAST(a.application_date as date),#{dto.endDate})
</if>
</select>
<select id="queryAllFlowingAndFinishedCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
"tz_jyjc_inspection_application" a,
tz_base_enterprise_info b
where
a.inspection_unit_code= b.use_unit_code
and ((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamDto.cityCode}, '%')))
and a.status != '6610' and a.status != '6615'
and date_ge(CAST(a.application_date as date),#{dpFilterParamDto.beginDate})
and date_le(CAST(a.application_date as date),#{dpFilterParamDto.endDate})
</select>
<select id="queryAllPendingAndFinishedCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
tz_jyjc_inspection_application a,
tz_base_enterprise_info b
where
a.inspection_unit_code= b.use_unit_code
and ((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamDto.cityCode}, '%')))
and a.status = '6616'
and EXISTS (select 1 from tz_jyjc_inspection_result r where ( r.result_status='1' or r.result_status='2') and a.application_no = r.application_no)
and date_ge(CAST(a.accept_date as date),#{dpFilterParamDto.beginDate}) and date_le(CAST(a.accept_date as date),#{dpFilterParamDto.endDate})
</select>
<select id="queryAllFinishedCount" resultType="java.lang.Long">
SELECT
count(1)
FROM
tz_jyjc_inspection_application a,
tz_base_enterprise_info b
where
a.inspection_unit_code= b.use_unit_code
and ((b.supervise_org_code != '50' and b.supervise_org_code LIKE CONCAT (#{orgCode}, '%')) or (b.supervise_org_code = '50' and b.office_region LIKE CONCAT ('%', #{dpFilterParamDto.cityCode}, '%')))
and a.status = '6616'
and EXISTS (select 1 from tz_jyjc_inspection_result r where r.result_status='2' and a.application_no = r.application_no)
and date_ge(CAST(a.accept_date as date),#{dpFilterParamDto.beginDate}) and date_le(CAST(a.accept_date as date),#{dpFilterParamDto.endDate})
</select>
</mapper>
......@@ -100,6 +100,29 @@ public class JYJCDPStatisticsController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-各检验类型业务数量统计/待检数量统计(新)", notes = "大屏-检验检测-各检验类型业务数量统计/待检数量统计(新)")
@PostMapping(value = "/queryAllInspectApp")
public ResponseModel<Map<String, Object>> queryAllInspectApp(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.queryAllInspectApp(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-近30日业务办理量/办结率统计", notes = "大屏-检验检测-近30日业务办理量/办结率统计")
@PostMapping(value = "/endRate")
public ResponseModel<Map<String, Object>> endRate(@Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
List<FieldError> fieldErrors = result.getFieldErrors();
if (!fieldErrors.isEmpty()) {
throw new BadRequest(fieldErrors.get(0).getDefaultMessage());
}
return ResponseHelper.buildResponse(statisticsService.endRate(dpFilterParamDto));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "大屏-检验检测-按机构进行检验时效统计Top10排名", notes = "大屏-检验检测-按机构进行检验时效统计Top10排名")
@PostMapping(value = "/timeliness/top")
public ResponseModel<List<InspectionTimelinesDto>> inspectionTimelinessTopXX(@RequestParam(required = false, defaultValue = "10") String top, @Validated @RequestBody DPFilterParamDto dpFilterParamDto, BindingResult result) {
......
......@@ -429,7 +429,7 @@ public class CylinderDPStatisticsServiceImpl {
private Map<String,Object> getStationRate(String orgCode,Map<String,Object> result){
// 气站总数
Long totalNum = cylinderStatisticsMapper.countEnterpriseNumForCylinder(orgCode);
// 已对接总数
// 已对接总数(存在充装业务数据的企业则认为已对接)
Long count = cylinderStatisticsMapper.countEnterpriseUsed(orgCode);
if(totalNum != null && count != null){
......
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sun.jna.StringArray;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dto.CountDto;
import com.yeejoin.amos.boot.biz.common.dto.JyjcInspectionApplicationDto;
......@@ -50,6 +51,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
......@@ -273,6 +275,52 @@ public class JYJCDPStatisticsServiceImpl {
return result;
}
public Map<String, Object> queryAllInspectApp(DPFilterParamDto dpFilterParamDto) {
// 1.查询条件构造未上送时间时,默认查询数据为近一个月数据
this.setDefaultFilter(dpFilterParamDto);
// 2.按照前端约定格式返回数据
Map<String, Object> result = new HashMap<>();
JYJCTypeEnum[] jyjcTypeEnums = JYJCTypeEnum.values();
//2.1 x轴数据构造
result.put("xdata", this.getXDataForInspectBizNumCount(jyjcTypeEnums));
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return result;
}
//待检数量
List<CountDto> pendingList = inspectionApplicationMapper.queryAllPendingResultInspectApp(orgCode, dpFilterParamDto);
//业务数量
List<CountDto> countDtoList = inspectionApplicationMapper.queryAllFlowingAndFinishedInspectApp(orgCode, dpFilterParamDto);
List<Long> pending = new ArrayList<>();
for (JYJCTypeEnum jyjcTypeEnum : jyjcTypeEnums) {
Long num = pendingList.stream().filter(c -> c.getKeyStr().equals(jyjcTypeEnum.getCode())).mapToLong(CountDto::getLongValue).sum();
pending.add(num);
}
result.put("pending", pending);
List<Long> business = new ArrayList<>();
for (JYJCTypeEnum jyjcTypeEnum : jyjcTypeEnums) {
Long num = countDtoList.stream().filter(c -> c.getKeyStr().equals(jyjcTypeEnum.getCode())).mapToLong(CountDto::getLongValue).sum();
business.add(num);
}
result.put("business", business);
List legendData = new ArrayList<>();
for(int i = 0; i < 2; i++){
Map<String, Object> map = new HashMap<>();
if(i == 0){
map.put("dataKey", "business");
map.put("value", "业务数量");
}else {
map.put("dataKey", "pending");
map.put("value", "待检数量");
}
legendData.add(map);
}
result.put("legendData", legendData);
return result;
}
private void buildYDataForPendingResultInspectApp(Map<String, Object> result, JYJCTypeEnum[] jyjcTypeEnums, DPFilterParamDto dpFilterParamDto, String orgCode) {
List<CountDto> countDtoList = inspectionApplicationMapper.queryAllPendingResultInspectApp(orgCode, dpFilterParamDto);
fillJYJCYData(result, jyjcTypeEnums, countDtoList);
......@@ -620,4 +668,48 @@ public class JYJCDPStatisticsServiceImpl {
});
return jsonObject;
}
public Map<String,Object> endRate(DPFilterParamDto dpFilterParamDto) {
// 1.查询条件构造未上送时间时,默认查询数据为近一个月数据
this.setDefaultFilter(dpFilterParamDto);
// 2.按照前端约定格式返回数据
Map<String, Object> result = new HashMap<>();
JYJCTypeEnum[] jyjcTypeEnums = JYJCTypeEnum.values();
//2.1 x轴数据构造
result.put("xdata", this.getXDataForInspectBizNumCount(jyjcTypeEnums));
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamDto.getCityCode());
if(orgCode == null){
return result;
}
List ydata = new ArrayList();
//报检数量
Long allCount = inspectionApplicationMapper.queryAllFlowingAndFinishedCount(orgCode, dpFilterParamDto);
ydata.add(allCount);
//受理数量
Long pendingCount = inspectionApplicationMapper.queryAllPendingAndFinishedCount(orgCode, dpFilterParamDto);
ydata.add(pendingCount);
//检验完成
Long finshCount = inspectionApplicationMapper.queryAllFinishedCount(orgCode, dpFilterParamDto);
ydata.add(finshCount);
// 计算比率
double completionRate = 0.0;
if (pendingCount != 0 && finshCount != 0) {
completionRate = (double) finshCount / pendingCount;
}
String[] xdata = {
"报检",
"受理",
"检验完成"
};
// 格式化比率
DecimalFormat df = new DecimalFormat("#,##0.00");
String formattedCompletionRate = df.format(completionRate);
result.put("xdata",xdata);
result.put("ydata",ydata);
result.put("completionRate",formattedCompletionRate);
return result;
}
}
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