dev
parent
0f4e2aafcf
commit
38d3bff093
|
|
@ -5,10 +5,13 @@ import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import org.qinan.safetyeval.client.api.regulator.RegulatorEvalProjectMonitorApi;
|
import org.qinan.safetyeval.client.api.regulator.RegulatorEvalProjectMonitorApi;
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorStatCO;
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
||||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||||
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
@ -44,5 +47,16 @@ public class RegulatorEvalProjectMonitorController {
|
||||||
return regulatorEvalProjectMonitorApi.nodeOverview(projectId);
|
return regulatorEvalProjectMonitorApi.nodeOverview(projectId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("实时监控统计")
|
||||||
|
@GetMapping("/stat")
|
||||||
|
public SingleResponse<RegulatorEvalProjectMonitorStatCO> stat() {
|
||||||
|
return regulatorEvalProjectMonitorApi.stat();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("实时监控分页")
|
||||||
|
@GetMapping("/realtime-page")
|
||||||
|
public PageResponse<RegulatorEvalProjectMonitorPageCO> realtimePage(@Validated RegulatorEvalProjectMonitorRealtimePageQuery query) {
|
||||||
|
return regulatorEvalProjectMonitorApi.realtimePage(query);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,27 @@
|
||||||
package org.qinan.safetyeval.app.executor.regulator;
|
package org.qinan.safetyeval.app.executor.regulator;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.qinan.safetyeval.app.executor.support.EvalProjectNodeOverviewAssembler;
|
import org.qinan.safetyeval.app.executor.support.EvalProjectNodeOverviewAssembler;
|
||||||
import org.qinan.safetyeval.app.executor.support.RegulatorMonitorCoConverter;
|
import org.qinan.safetyeval.app.executor.support.RegulatorMonitorCoConverter;
|
||||||
import org.qinan.safetyeval.client.api.regulator.RegulatorEvalProjectMonitorApi;
|
import org.qinan.safetyeval.client.api.regulator.RegulatorEvalProjectMonitorApi;
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorStatCO;
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
||||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||||
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||||
|
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||||
|
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||||
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
|
||||||
import org.qinan.safetyeval.domain.exception.BizException;
|
import org.qinan.safetyeval.domain.exception.BizException;
|
||||||
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
import org.qinan.safetyeval.domain.exception.ErrorCode;
|
||||||
import org.qinan.safetyeval.domain.gateway.EvalProjectGateway;
|
import org.qinan.safetyeval.domain.gateway.EvalProjectGateway;
|
||||||
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
||||||
import org.qinan.safetyeval.domain.query.PageResult;
|
import org.qinan.safetyeval.domain.query.PageResult;
|
||||||
|
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
@ -26,6 +34,8 @@ public class RegulatorEvalProjectMonitorExecutor implements RegulatorEvalProject
|
||||||
private EvalProjectGateway evalProjectGateway;
|
private EvalProjectGateway evalProjectGateway;
|
||||||
@Resource
|
@Resource
|
||||||
private EvalProjectNodeOverviewAssembler evalProjectNodeOverviewAssembler;
|
private EvalProjectNodeOverviewAssembler evalProjectNodeOverviewAssembler;
|
||||||
|
@Resource
|
||||||
|
private EvalProjectMapper evalProjectMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResponse<RegulatorEvalProjectMonitorCO> page(RegulatorEvalProjectMonitorPageQuery query) {
|
public PageResponse<RegulatorEvalProjectMonitorCO> page(RegulatorEvalProjectMonitorPageQuery query) {
|
||||||
|
|
@ -57,4 +67,23 @@ public class RegulatorEvalProjectMonitorExecutor implements RegulatorEvalProject
|
||||||
return SingleResponse.success(RegulatorMonitorCoConverter.toRegulatorOverview(
|
return SingleResponse.success(RegulatorMonitorCoConverter.toRegulatorOverview(
|
||||||
evalProjectNodeOverviewAssembler.buildForRegulator(Long.parseLong(projectId))));
|
evalProjectNodeOverviewAssembler.buildForRegulator(Long.parseLong(projectId))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<RegulatorEvalProjectMonitorStatCO> stat() {
|
||||||
|
return SingleResponse.success(evalProjectMapper.selectRegulatorMonitorStat());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<RegulatorEvalProjectMonitorPageCO> realtimePage(RegulatorEvalProjectMonitorRealtimePageQuery query) {
|
||||||
|
Page<RegulatorEvalProjectMonitorPageCO> page = new Page<>(query.getCurrent(), query.getSize());
|
||||||
|
IPage<RegulatorEvalProjectMonitorPageCO> result = evalProjectMapper.selectRegulatorMonitorPage(page, query);
|
||||||
|
if (result.getRecords() != null) {
|
||||||
|
result.getRecords().forEach(this::fillDisplayFields);
|
||||||
|
}
|
||||||
|
return PageResponse.of(result.getRecords(), result.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillDisplayFields(RegulatorEvalProjectMonitorPageCO co) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
package org.qinan.safetyeval.client.api.regulator;
|
package org.qinan.safetyeval.client.api.regulator;
|
||||||
|
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorStatCO;
|
||||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectNodeOverviewCO;
|
||||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||||
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||||
|
|
||||||
public interface RegulatorEvalProjectMonitorApi {
|
public interface RegulatorEvalProjectMonitorApi {
|
||||||
|
|
||||||
|
|
@ -13,4 +16,8 @@ public interface RegulatorEvalProjectMonitorApi {
|
||||||
SingleResponse<RegulatorEvalProjectMonitorCO> get(Long id);
|
SingleResponse<RegulatorEvalProjectMonitorCO> get(Long id);
|
||||||
|
|
||||||
SingleResponse<RegulatorEvalProjectNodeOverviewCO> nodeOverview(String projectId);
|
SingleResponse<RegulatorEvalProjectNodeOverviewCO> nodeOverview(String projectId);
|
||||||
|
|
||||||
|
SingleResponse<RegulatorEvalProjectMonitorStatCO> stat();
|
||||||
|
|
||||||
|
PageResponse<RegulatorEvalProjectMonitorPageCO> realtimePage(RegulatorEvalProjectMonitorRealtimePageQuery query);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.qinan.safetyeval.client.co.regulator;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监管端-安评项目实时监控分页列表项
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RegulatorEvalProjectMonitorPageCO {
|
||||||
|
|
||||||
|
@ApiModelProperty("项目ID")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty("机构ID")
|
||||||
|
private String orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目编号")
|
||||||
|
private String projectNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@ApiModelProperty("评价机构")
|
||||||
|
private String orgName;
|
||||||
|
|
||||||
|
@ApiModelProperty("评价类型编码")
|
||||||
|
private String evalTypeCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("行业编码")
|
||||||
|
private String industryCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("负责人")
|
||||||
|
private String leaderName;
|
||||||
|
|
||||||
|
@ApiModelProperty("计划完成日期")
|
||||||
|
private LocalDate planEndDate;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package org.qinan.safetyeval.client.co.regulator;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监管端-安评项目实时监控统计
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RegulatorEvalProjectMonitorStatCO {
|
||||||
|
|
||||||
|
@ApiModelProperty("在监项目数")
|
||||||
|
private Integer monitoringCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("正常执行数(未归档)")
|
||||||
|
private Integer normalCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("进度/人员预警数")
|
||||||
|
private Integer warningCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("本月计划完成数")
|
||||||
|
private Integer monthPlanCompleteCount;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package org.qinan.safetyeval.client.dto.regulator;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.qinan.safetyeval.client.dto.BasePageQuery;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监管端-安评项目实时监控分页查询
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class RegulatorEvalProjectMonitorRealtimePageQuery extends BasePageQuery {
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名称/编号")
|
||||||
|
private String projectNameOrNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("评价机构ID")
|
||||||
|
private Long orgId;
|
||||||
|
|
||||||
|
@ApiModelProperty("评价类型编码:PRE/ACCEPT/STATUS")
|
||||||
|
private String evalTypeCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("行业类别编码")
|
||||||
|
private String industryCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目负责人")
|
||||||
|
private String leaderName;
|
||||||
|
|
||||||
|
@ApiModelProperty("计划完成日期-起")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate planEndDateStart;
|
||||||
|
|
||||||
|
@ApiModelProperty("计划完成日期-止")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDate planEndDateEnd;
|
||||||
|
}
|
||||||
|
|
@ -8,6 +8,9 @@ import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO;
|
import org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO;
|
||||||
import org.qinan.safetyeval.client.co.institution.RiskWarningCO;
|
import org.qinan.safetyeval.client.co.institution.RiskWarningCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO;
|
||||||
|
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorStatCO;
|
||||||
|
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||||
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
||||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectDO;
|
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectDO;
|
||||||
|
|
||||||
|
|
@ -31,4 +34,15 @@ public interface EvalProjectMapper extends BaseMapper<EvalProjectDO> {
|
||||||
|
|
||||||
long onSiteTaskSum(@Param("pIds") List<Long> pIds, @Param("val") String val);
|
long onSiteTaskSum(@Param("pIds") List<Long> pIds, @Param("val") String val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监管端-安评项目实时监控统计(未删除且法定项目,一条SQL聚合)
|
||||||
|
*/
|
||||||
|
RegulatorEvalProjectMonitorStatCO selectRegulatorMonitorStat();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监管端-安评项目实时监控分页(未删除且法定项目,关联 org_info 获取评价机构名称)
|
||||||
|
*/
|
||||||
|
IPage<RegulatorEvalProjectMonitorPageCO> selectRegulatorMonitorPage(
|
||||||
|
Page<RegulatorEvalProjectMonitorPageCO> page, @Param("query") RegulatorEvalProjectMonitorRealtimePageQuery query);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,4 +78,63 @@
|
||||||
JSON_CONTAINS(project_node, JSON_OBJECT('type', #{val},'state', 0))
|
JSON_CONTAINS(project_node, JSON_OBJECT('type', #{val},'state', 0))
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 监管端-安评项目实时监控统计:未删除且法定项目(is_statutory=1) -->
|
||||||
|
<select id="selectRegulatorMonitorStat"
|
||||||
|
resultType="org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorStatCO">
|
||||||
|
SELECT
|
||||||
|
COUNT(*) AS monitoringCount,
|
||||||
|
IFNULL(SUM(CASE WHEN archive_flag =0 THEN 1 ELSE 0 END), 0) AS normalCount,
|
||||||
|
0 AS warningCount,
|
||||||
|
IFNULL(SUM(CASE WHEN plan_end_date BETWEEN DATE_FORMAT(NOW(), '%Y-%m-01')
|
||||||
|
AND DATE_ADD(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 1 MONTH)
|
||||||
|
THEN 1 ELSE 0 END), 0) AS monthPlanCompleteCount
|
||||||
|
FROM eval_project
|
||||||
|
WHERE delete_enum = 'false'
|
||||||
|
AND is_statutory = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 监管端-安评项目实时监控分页:未删除且法定项目(is_statutory=1),关联 org_info 获取评价机构名称 -->
|
||||||
|
<select id="selectRegulatorMonitorPage"
|
||||||
|
resultType="org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectMonitorPageCO">
|
||||||
|
SELECT
|
||||||
|
p.id,
|
||||||
|
p.org_id,
|
||||||
|
p.project_no,
|
||||||
|
p.project_name,
|
||||||
|
o.unit_name AS org_name,
|
||||||
|
p.eval_type_code,
|
||||||
|
p.industry_code,
|
||||||
|
p.customer_contact_name AS leader_name,
|
||||||
|
p.plan_end_date
|
||||||
|
FROM eval_project p
|
||||||
|
LEFT JOIN org_info o
|
||||||
|
ON o.id = p.org_id
|
||||||
|
AND o.delete_enum = 'false'
|
||||||
|
WHERE p.delete_enum = 'false'
|
||||||
|
AND p.is_statutory = 1
|
||||||
|
<if test="query.projectNameOrNo != null and query.projectNameOrNo != ''">
|
||||||
|
AND (p.project_name LIKE CONCAT('%', #{query.projectNameOrNo}, '%')
|
||||||
|
OR p.project_no LIKE CONCAT('%', #{query.projectNameOrNo}, '%'))
|
||||||
|
</if>
|
||||||
|
<if test="query.orgId != null">
|
||||||
|
AND p.org_id = #{query.orgId}
|
||||||
|
</if>
|
||||||
|
<if test="query.evalTypeCode != null and query.evalTypeCode != ''">
|
||||||
|
AND p.eval_type_code = #{query.evalTypeCode}
|
||||||
|
</if>
|
||||||
|
<if test="query.industryCode != null and query.industryCode != ''">
|
||||||
|
AND p.industry_code = #{query.industryCode}
|
||||||
|
</if>
|
||||||
|
<if test="query.leaderName != null and query.leaderName != ''">
|
||||||
|
AND p.customer_contact_name LIKE CONCAT('%', #{query.leaderName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="query.planEndDateStart != null">
|
||||||
|
AND p.plan_end_date >= #{query.planEndDateStart}
|
||||||
|
</if>
|
||||||
|
<if test="query.planEndDateEnd != null">
|
||||||
|
AND p.plan_end_date <= #{query.planEndDateEnd}
|
||||||
|
</if>
|
||||||
|
ORDER BY p.id DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue