dev
parent
5f0b79bb05
commit
6ecc871fd5
|
|
@ -8,11 +8,14 @@ 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.RegulatorEvalProjectSurveyPageCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectSurveyStatCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalSurveyClockInCO;
|
||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectSurveyPageQuery;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
|
@ -20,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Api(tags = "监管端-安评项目")
|
||||
@RestController
|
||||
|
|
@ -66,4 +70,17 @@ public class RegulatorEvalProjectMonitorController {
|
|||
return regulatorEvalProjectMonitorApi.realtimePage(query);
|
||||
}
|
||||
|
||||
@ApiOperation("项目踏勘监管分页")
|
||||
@GetMapping("/survey-page")
|
||||
public PageResponse<RegulatorEvalProjectSurveyPageCO> surveyPage(@Validated RegulatorEvalProjectSurveyPageQuery query) {
|
||||
return regulatorEvalProjectMonitorApi.surveyPage(query);
|
||||
}
|
||||
|
||||
@ApiOperation("人员打卡信息查询")
|
||||
@GetMapping("/survey-clock-in")
|
||||
public SingleResponse<List<RegulatorEvalSurveyClockInCO>> surveyClockInList(
|
||||
@ApiParam("项目ID") @RequestParam String projectId) {
|
||||
return regulatorEvalProjectMonitorApi.surveyClockInList(projectId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,11 +9,14 @@ 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.RegulatorEvalProjectSurveyPageCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectSurveyStatCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalSurveyClockInCO;
|
||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectSurveyPageQuery;
|
||||
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
|
||||
import org.qinan.safetyeval.domain.constant.IndustryEnum;
|
||||
import org.qinan.safetyeval.domain.constant.ProjectProcessWaringStatusEnum;
|
||||
|
|
@ -28,11 +31,15 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class RegulatorEvalProjectMonitorExecutor implements RegulatorEvalProjectMonitorApi {
|
||||
|
||||
/** 项目踏勘监管-应到人数固定为2 */
|
||||
private static final int SURVEY_EXPECTED_COUNT = 2;
|
||||
|
||||
@Resource
|
||||
private EvalProjectGateway evalProjectGateway;
|
||||
@Resource
|
||||
|
|
@ -91,6 +98,25 @@ public class RegulatorEvalProjectMonitorExecutor implements RegulatorEvalProject
|
|||
return PageResponse.of(result.getRecords(), result.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResponse<RegulatorEvalProjectSurveyPageCO> surveyPage(RegulatorEvalProjectSurveyPageQuery query) {
|
||||
Page<RegulatorEvalProjectSurveyPageCO> page = new Page<>(query.getCurrent(), query.getSize());
|
||||
IPage<RegulatorEvalProjectSurveyPageCO> result = evalProjectMapper.selectRegulatorSurveyPage(page, query);
|
||||
if (result.getRecords() != null) {
|
||||
// 应到人数固定为2;人脸识别直接复用签退统计结果
|
||||
result.getRecords().forEach(co -> {
|
||||
co.setExpectedCount(SURVEY_EXPECTED_COUNT);
|
||||
co.setFaceCount(co.getSignOutCount());
|
||||
});
|
||||
}
|
||||
return PageResponse.of(result.getRecords(), result.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SingleResponse<List<RegulatorEvalSurveyClockInCO>> surveyClockInList(String projectId) {
|
||||
return SingleResponse.success(evalProjectMapper.selectRegulatorSurveyClockInList(Long.parseLong(projectId)));
|
||||
}
|
||||
|
||||
private void fillDisplayFields(RegulatorEvalProjectMonitorPageCO co) {
|
||||
LocalDate planEndDate = co.getPlanEndDate();
|
||||
// 当前时间大于等于计划完成日期,则项目逾期:预警状态与过程预警状态置为异常
|
||||
|
|
|
|||
|
|
@ -4,11 +4,16 @@ 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.RegulatorEvalProjectSurveyPageCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectSurveyStatCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalSurveyClockInCO;
|
||||
import org.qinan.safetyeval.client.dto.PageResponse;
|
||||
import org.qinan.safetyeval.client.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorPageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectSurveyPageQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RegulatorEvalProjectMonitorApi {
|
||||
|
||||
|
|
@ -23,4 +28,8 @@ public interface RegulatorEvalProjectMonitorApi {
|
|||
SingleResponse<RegulatorEvalProjectSurveyStatCO> selectRegulatorSurveyStat();
|
||||
|
||||
PageResponse<RegulatorEvalProjectMonitorPageCO> realtimePage(RegulatorEvalProjectMonitorRealtimePageQuery query);
|
||||
|
||||
PageResponse<RegulatorEvalProjectSurveyPageCO> surveyPage(RegulatorEvalProjectSurveyPageQuery query);
|
||||
|
||||
SingleResponse<List<RegulatorEvalSurveyClockInCO>> surveyClockInList(String projectId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
package org.qinan.safetyeval.client.co.regulator;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 监管端-项目踏勘监管分页列表项
|
||||
*/
|
||||
@Data
|
||||
public class RegulatorEvalProjectSurveyPageCO {
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("机构ID")
|
||||
private String orgId;
|
||||
|
||||
@ApiModelProperty("项目编号")
|
||||
private String projectNo;
|
||||
|
||||
@ApiModelProperty("项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty("评价机构")
|
||||
private String orgName;
|
||||
|
||||
@ApiModelProperty("应到人数(固定2)")
|
||||
private Integer expectedCount;
|
||||
|
||||
@ApiModelProperty("实到人数")
|
||||
private Integer actualCount;
|
||||
|
||||
@ApiModelProperty("签到人数")
|
||||
private Integer signInCount;
|
||||
|
||||
@ApiModelProperty("签退人数")
|
||||
private Integer signOutCount;
|
||||
|
||||
@ApiModelProperty("人脸识别人数")
|
||||
private Integer faceCount;
|
||||
|
||||
@ApiModelProperty("现场照片数")
|
||||
private Integer scenePhotoCount;
|
||||
|
||||
@ApiModelProperty("告知书文件地址")
|
||||
private String notificationFileUrl;
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package org.qinan.safetyeval.client.co.regulator;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 监管端-项目踏勘人员打卡信息
|
||||
*/
|
||||
@Data
|
||||
public class RegulatorEvalSurveyClockInCO {
|
||||
|
||||
@ApiModelProperty("踏勘记录ID")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("人员姓名(org_personnel.user_name)")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty("项目角色")
|
||||
private String role;
|
||||
|
||||
@ApiModelProperty("人脸识别:0未通过 1通过")
|
||||
private Integer faceState;
|
||||
|
||||
@ApiModelProperty("GPS定位:0未通过 1通过")
|
||||
private Integer gpsState;
|
||||
|
||||
@ApiModelProperty("签到时间")
|
||||
private LocalDateTime singInTime;
|
||||
|
||||
@ApiModelProperty("签退时间")
|
||||
private LocalDateTime signOutTime;
|
||||
|
||||
@ApiModelProperty("现场照片")
|
||||
private String sceneUrl;
|
||||
|
||||
@ApiModelProperty("签字")
|
||||
private String signatureUrl;
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* 监管端-项目踏勘监管分页查询
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class RegulatorEvalProjectSurveyPageQuery extends BasePageQuery {
|
||||
|
||||
@ApiModelProperty("项目名称/编号")
|
||||
private String projectNameOrNo;
|
||||
|
||||
@ApiModelProperty("评价机构ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("人员打卡状态")
|
||||
private String clockInStatus;
|
||||
}
|
||||
|
|
@ -10,8 +10,11 @@ import org.qinan.safetyeval.client.co.institution.EvalProjectProgressCO;
|
|||
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.co.regulator.RegulatorEvalProjectSurveyPageCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectSurveyStatCO;
|
||||
import org.qinan.safetyeval.client.co.regulator.RegulatorEvalSurveyClockInCO;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectMonitorRealtimePageQuery;
|
||||
import org.qinan.safetyeval.client.dto.regulator.RegulatorEvalProjectSurveyPageQuery;
|
||||
import org.qinan.safetyeval.domain.query.EvalProjectQuery;
|
||||
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectDO;
|
||||
|
||||
|
|
@ -51,4 +54,16 @@ public interface EvalProjectMapper extends BaseMapper<EvalProjectDO> {
|
|||
IPage<RegulatorEvalProjectMonitorPageCO> selectRegulatorMonitorPage(
|
||||
Page<RegulatorEvalProjectMonitorPageCO> page, @Param("query") RegulatorEvalProjectMonitorRealtimePageQuery query);
|
||||
|
||||
/**
|
||||
* 监管端-项目踏勘监管分页(未删除且法定项目,关联 org_info 获取评价机构名称,
|
||||
* 关联 eval_survey 统计实到/签到/签退/人脸识别,关联 eval_survey_attach 统计现场照片与告知书)
|
||||
*/
|
||||
IPage<RegulatorEvalProjectSurveyPageCO> selectRegulatorSurveyPage(
|
||||
Page<RegulatorEvalProjectSurveyPageCO> page, @Param("query") RegulatorEvalProjectSurveyPageQuery query);
|
||||
|
||||
/**
|
||||
* 监管端-项目踏勘人员打卡信息查询(关联 org_personnel 获取人员姓名,按项目ID查询 eval_survey)
|
||||
*/
|
||||
List<RegulatorEvalSurveyClockInCO> selectRegulatorSurveyClockInList(@Param("projectId") Long projectId);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,4 +171,77 @@
|
|||
ORDER BY p.id DESC
|
||||
</select>
|
||||
|
||||
<!-- 监管端-项目踏勘监管分页:未删除且法定项目(is_statutory=1),关联 org_info 获取评价机构名称;
|
||||
实到/签到/签退/人脸识别取自 eval_survey(按 personnel_id 去重);
|
||||
现场照片取自 eval_survey_attach(attach_type_code IN RECTIFICATION_REVIEW/SITE_INSPECTION_FORM 的 file_url 数量);
|
||||
告知书取自 eval_survey_attach(attach_type_code = PRACTICE_NOTIFICATION 的 file_url);
|
||||
应到人数固定为2,由业务代码设置 -->
|
||||
<select id="selectRegulatorSurveyPage"
|
||||
resultType="org.qinan.safetyeval.client.co.regulator.RegulatorEvalProjectSurveyPageCO">
|
||||
SELECT
|
||||
p.id,
|
||||
p.org_id,
|
||||
p.project_no,
|
||||
p.project_name,
|
||||
o.unit_name AS org_name,
|
||||
(SELECT COUNT(DISTINCT s.personnel_id) FROM eval_survey s
|
||||
WHERE s.project_id = p.id
|
||||
AND s.delete_enum = 'false'
|
||||
AND s.sing_in_time IS NOT NULL
|
||||
AND s.sign_out_time IS NOT NULL) AS actual_count,
|
||||
(SELECT COUNT(DISTINCT s.personnel_id) FROM eval_survey s
|
||||
WHERE s.project_id = p.id
|
||||
AND s.delete_enum = 'false'
|
||||
AND s.sing_in_time IS NOT NULL) AS sign_in_count,
|
||||
(SELECT COUNT(DISTINCT s.personnel_id) FROM eval_survey s
|
||||
WHERE s.project_id = p.id
|
||||
AND s.delete_enum = 'false'
|
||||
AND s.sign_out_time IS NOT NULL) AS sign_out_count,
|
||||
(SELECT COUNT(*) FROM eval_survey_attach sa
|
||||
WHERE sa.project_id = p.id
|
||||
AND sa.attach_type_code IN ('RECTIFICATION_REVIEW', 'SITE_INSPECTION_FORM')) AS scene_photo_count,
|
||||
(SELECT sa.file_url FROM eval_survey_attach sa
|
||||
WHERE sa.project_id = p.id
|
||||
AND sa.attach_type_code = 'PRACTICE_NOTIFICATION' LIMIT 1) AS notification_file_url
|
||||
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.clockInStatus != null and query.clockInStatus != ''">
|
||||
AND p.clock_in_status = #{query.clockInStatus}
|
||||
</if>
|
||||
ORDER BY p.id DESC
|
||||
</select>
|
||||
|
||||
<!-- 监管端-项目踏勘人员打卡信息查询:按项目ID查询 eval_survey,关联 org_personnel 获取人员姓名 -->
|
||||
<select id="selectRegulatorSurveyClockInList"
|
||||
resultType="org.qinan.safetyeval.client.co.regulator.RegulatorEvalSurveyClockInCO">
|
||||
SELECT
|
||||
s.id,
|
||||
op.user_name AS user_name,
|
||||
s.role,
|
||||
s.face_state,
|
||||
s.gps_state,
|
||||
s.sing_in_time,
|
||||
s.sign_out_time,
|
||||
s.scene_url,
|
||||
s.signature_url
|
||||
FROM eval_survey s
|
||||
LEFT JOIN org_personnel op
|
||||
ON op.id = s.personnel_id
|
||||
AND op.delete_enum = 'false'
|
||||
WHERE s.delete_enum = 'false'
|
||||
AND s.project_id = #{projectId}
|
||||
ORDER BY s.id ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue