waring
parent
a568c8b87e
commit
4ea9576af8
|
|
@ -5,8 +5,11 @@ import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import org.qinan.safetyeval.app.waring.service.EvalProjectWaringServiceI;
|
import org.qinan.safetyeval.app.waring.service.EvalProjectWaringServiceI;
|
||||||
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringRemindCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringStatCo;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
||||||
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -68,4 +71,16 @@ public class EvalProjectWaringController implements Serializable{
|
||||||
return Response.buildSuccess();
|
return Response.buildSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/stat")
|
||||||
|
@ApiOperation("安评业务提醒统计")
|
||||||
|
public SingleResponse<EvalProjectWaringStatCo> stat() {
|
||||||
|
return SingleResponse.of(evalProjectWaringServiceI.statEvalProjectWaring());
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/remind-page")
|
||||||
|
@ApiOperation("安评业务提醒分页")
|
||||||
|
public PageResponse<EvalProjectWaringRemindCo> remindPage(@Validated EvalProjectWaringRemindPageQry qry) {
|
||||||
|
return evalProjectWaringServiceI.remindPageEvalProjectWaring(qry);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,11 @@ package org.qinan.safetyeval.app.waring.service;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringRemindCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringStatCo;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
||||||
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -54,5 +57,17 @@ public interface EvalProjectWaringServiceI {
|
||||||
*/
|
*/
|
||||||
boolean deletedEvalProjectWaringByIds(Long[] ids);
|
boolean deletedEvalProjectWaringByIds(Long[] ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒统计
|
||||||
|
* @return 统计结果
|
||||||
|
*/
|
||||||
|
EvalProjectWaringStatCo statEvalProjectWaring();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒分页
|
||||||
|
* @param evalProjectWaringRemindPageQry 查询条件
|
||||||
|
* @return 分页结果
|
||||||
|
*/
|
||||||
|
PageResponse<EvalProjectWaringRemindCo> remindPageEvalProjectWaring(EvalProjectWaringRemindPageQry evalProjectWaringRemindPageQry);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,23 @@
|
||||||
package org.qinan.safetyeval.app.waring.service.impl;
|
package org.qinan.safetyeval.app.waring.service.impl;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringAddCmdExe;
|
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringAddCmdExe;
|
||||||
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringDelCmdExe;
|
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringDelCmdExe;
|
||||||
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringUpdateCmdExe;
|
import org.qinan.safetyeval.app.waring.executor.command.EvalProjectWaringUpdateCmdExe;
|
||||||
import org.qinan.safetyeval.app.waring.executor.query.EvalProjectWaringListQueryExe;
|
import org.qinan.safetyeval.app.waring.executor.query.EvalProjectWaringListQueryExe;
|
||||||
import org.qinan.safetyeval.app.waring.executor.query.EvalProjectWaringPageQueryExe;
|
import org.qinan.safetyeval.app.waring.executor.query.EvalProjectWaringPageQueryExe;
|
||||||
import org.qinan.safetyeval.app.waring.service.EvalProjectWaringServiceI;
|
import org.qinan.safetyeval.app.waring.service.EvalProjectWaringServiceI;
|
||||||
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringAddCmd;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringPageQry;
|
||||||
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringRemindCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringStatCo;
|
||||||
|
import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
|
||||||
|
import org.qinan.safetyeval.infrastructure.persistence.mapper.EvalProjectWaringMapper;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -28,6 +35,8 @@ public class EvalProjectWaringServiceImpl implements EvalProjectWaringServiceI {
|
||||||
private final EvalProjectWaringAddCmdExe evalProjectWaringAddCommandExe;
|
private final EvalProjectWaringAddCmdExe evalProjectWaringAddCommandExe;
|
||||||
private final EvalProjectWaringDelCmdExe evalProjectWaringDelCommandExe;
|
private final EvalProjectWaringDelCmdExe evalProjectWaringDelCommandExe;
|
||||||
private final EvalProjectWaringPageQueryExe evalProjectWaringPageQueryExe;
|
private final EvalProjectWaringPageQueryExe evalProjectWaringPageQueryExe;
|
||||||
|
private final EvalProjectWaringMapper evalProjectWaringMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResponse<EvalProjectWaringCo> listEvalProjectWaringPage(EvalProjectWaringPageQry evalProjectWaringPageQry) {
|
public PageResponse<EvalProjectWaringCo> listEvalProjectWaringPage(EvalProjectWaringPageQry evalProjectWaringPageQry) {
|
||||||
return evalProjectWaringPageQueryExe.execute(evalProjectWaringPageQry);
|
return evalProjectWaringPageQueryExe.execute(evalProjectWaringPageQry);
|
||||||
|
|
@ -58,4 +67,20 @@ public class EvalProjectWaringServiceImpl implements EvalProjectWaringServiceI {
|
||||||
return evalProjectWaringDelCommandExe.execute(ids);
|
return evalProjectWaringDelCommandExe.execute(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EvalProjectWaringStatCo statEvalProjectWaring() {
|
||||||
|
Long orgId = ThreadLocalUserInfoAdapter.getOrgId();
|
||||||
|
EvalProjectWaringStatCo co = evalProjectWaringMapper.selectStat(orgId);
|
||||||
|
return co != null ? co : new EvalProjectWaringStatCo();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public PageResponse<EvalProjectWaringRemindCo> remindPageEvalProjectWaring(EvalProjectWaringRemindPageQry evalProjectWaringRemindPageQry) {
|
||||||
|
Long orgId = ThreadLocalUserInfoAdapter.getOrgId();
|
||||||
|
IPage<EvalProjectWaringRemindCo> page = PageHelper.queryToPage(evalProjectWaringRemindPageQry);
|
||||||
|
IPage<EvalProjectWaringRemindCo> result = evalProjectWaringMapper.selectRemindPage(page, orgId, evalProjectWaringRemindPageQry);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package org.qinan.safetyeval.client.waring.request;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒分页查询
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class EvalProjectWaringRemindPageQry extends PageQuery implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("客户名称")
|
||||||
|
private String customerName;
|
||||||
|
|
||||||
|
@ApiModelProperty("行业")
|
||||||
|
private String industryCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("提醒等级")
|
||||||
|
private String waringStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名称")
|
||||||
|
private String projectName;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
package org.qinan.safetyeval.client.waring.response;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒列表项
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class EvalProjectWaringRemindCo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("预警id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目id")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
@ApiModelProperty("客户名称")
|
||||||
|
private String customerName;
|
||||||
|
|
||||||
|
@ApiModelProperty("行业")
|
||||||
|
private String industryCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("最近报告完成日")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime archiveDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("周期")
|
||||||
|
private Long cycleDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("下次应开展")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime reassessmentDate;
|
||||||
|
|
||||||
|
@ApiModelProperty("提醒等级")
|
||||||
|
private String waringStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("项目名称")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@ApiModelProperty("业务负责人")
|
||||||
|
private String projectLeaderName;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package org.qinan.safetyeval.client.waring.response;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒统计
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class EvalProjectWaringStatCo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("首次预警数")
|
||||||
|
private Integer firstWaringCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("二次提醒数")
|
||||||
|
private Integer secondWaringCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("紧急预警数")
|
||||||
|
private Integer emergencyWaringCount;
|
||||||
|
|
||||||
|
@ApiModelProperty("纳入提醒客户数")
|
||||||
|
private Integer remindCount;
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,10 @@ package org.qinan.safetyeval.infrastructure.persistence.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.qinan.safetyeval.infrastructure.persistence.domainobject.EvalProjectWaringDO;
|
import org.qinan.safetyeval.infrastructure.persistence.domainobject.EvalProjectWaringDO;
|
||||||
|
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringRemindCo;
|
||||||
|
import org.qinan.safetyeval.client.waring.response.EvalProjectWaringStatCo;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
|
@ -12,4 +16,16 @@ import org.apache.ibatis.annotations.Param;
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface EvalProjectWaringMapper extends BaseMapper<EvalProjectWaringDO> {
|
public interface EvalProjectWaringMapper extends BaseMapper<EvalProjectWaringDO> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒统计(单条SQL聚合)
|
||||||
|
*/
|
||||||
|
EvalProjectWaringStatCo selectStat(@Param("orgId") Long orgId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 安评业务提醒分页查询(关联 eval_project、eval_customer)
|
||||||
|
*/
|
||||||
|
IPage<EvalProjectWaringRemindCo> selectRemindPage(IPage<EvalProjectWaringRemindCo> page,
|
||||||
|
@Param("orgId") Long orgId,
|
||||||
|
@Param("query") EvalProjectWaringRemindPageQry query);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,4 +32,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
select id, org_id, project_id, archive_date, waring_status, waring_start_time, reassessment_date, cycle_date, delete_enum, remarks, create_name, update_name, tenant_id, version, create_time, update_time, create_id, update_id, env, project_node, industry_code from eval_project_waring
|
select id, org_id, project_id, archive_date, waring_status, waring_start_time, reassessment_date, cycle_date, delete_enum, remarks, create_name, update_name, tenant_id, version, create_time, update_time, create_id, update_id, env, project_node, industry_code from eval_project_waring
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
|
<!-- 安评业务提醒统计(单条SQL聚合) -->
|
||||||
|
<select id="selectStat"
|
||||||
|
resultType="org.qinan.safetyeval.client.waring.response.EvalProjectWaringStatCo">
|
||||||
|
SELECT
|
||||||
|
SUM(CASE WHEN waring_status = 'first_waring' THEN 1 ELSE 0 END) AS first_waring_count,
|
||||||
|
SUM(CASE WHEN waring_status = 'second_waring' THEN 1 ELSE 0 END) AS second_waring_count,
|
||||||
|
SUM(CASE WHEN waring_status IN ('emergency_waring', 'overdue_warning') THEN 1 ELSE 0 END) AS emergency_waring_count,
|
||||||
|
SUM(CASE WHEN waring_status != 'end_warning' THEN 1 ELSE 0 END) AS remind_count
|
||||||
|
FROM eval_project_waring
|
||||||
|
WHERE delete_enum = 'false' AND org_id = #{orgId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 安评业务提醒分页查询(关联 eval_project、eval_customer) -->
|
||||||
|
<select id="selectRemindPage"
|
||||||
|
resultType="org.qinan.safetyeval.client.waring.response.EvalProjectWaringRemindCo">
|
||||||
|
SELECT
|
||||||
|
w.id,
|
||||||
|
w.project_id,
|
||||||
|
c.customer_name,
|
||||||
|
p.industry_code,
|
||||||
|
w.archive_date,
|
||||||
|
w.cycle_date,
|
||||||
|
w.reassessment_date,
|
||||||
|
w.waring_status,
|
||||||
|
p.project_name,
|
||||||
|
p.project_leader_name
|
||||||
|
FROM eval_project_waring w
|
||||||
|
LEFT JOIN eval_project p
|
||||||
|
ON p.id = w.project_id
|
||||||
|
AND p.delete_enum = 'false'
|
||||||
|
LEFT JOIN eval_customer c
|
||||||
|
ON c.id = p.customer_id
|
||||||
|
AND c.delete_enum = 'false'
|
||||||
|
WHERE w.delete_enum = 'false'
|
||||||
|
AND w.org_id = #{orgId}
|
||||||
|
<if test="query.customerName != null and query.customerName != ''">
|
||||||
|
AND c.customer_name LIKE CONCAT('%', #{query.customerName}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="query.industryCode != null and query.industryCode != ''">
|
||||||
|
AND p.industry_code = #{query.industryCode}
|
||||||
|
</if>
|
||||||
|
<if test="query.waringStatus != null and query.waringStatus != ''">
|
||||||
|
AND w.waring_status = #{query.waringStatus}
|
||||||
|
</if>
|
||||||
|
<if test="query.projectName != null and query.projectName != ''">
|
||||||
|
AND p.project_name LIKE CONCAT('%', #{query.projectName}, '%')
|
||||||
|
</if>
|
||||||
|
ORDER BY w.id DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue