waring
parent
a568c8b87e
commit
4ea9576af8
|
|
@ -5,8 +5,11 @@ import com.alibaba.cola.dto.Response;
|
|||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import org.qinan.safetyeval.app.waring.service.EvalProjectWaringServiceI;
|
||||
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.EvalProjectWaringPageQry;
|
||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -68,4 +71,16 @@ public class EvalProjectWaringController implements Serializable{
|
|||
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 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.EvalProjectWaringPageQry;
|
||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringUpdateCmd;
|
||||
|
||||
/**
|
||||
|
|
@ -54,5 +57,17 @@ public interface EvalProjectWaringServiceI {
|
|||
*/
|
||||
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;
|
||||
|
||||
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.EvalProjectWaringDelCmdExe;
|
||||
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.EvalProjectWaringPageQueryExe;
|
||||
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.EvalProjectWaringPageQry;
|
||||
import org.qinan.safetyeval.client.waring.request.EvalProjectWaringRemindPageQry;
|
||||
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 org.springframework.stereotype.Service;
|
||||
|
||||
|
|
@ -28,6 +35,8 @@ public class EvalProjectWaringServiceImpl implements EvalProjectWaringServiceI {
|
|||
private final EvalProjectWaringAddCmdExe evalProjectWaringAddCommandExe;
|
||||
private final EvalProjectWaringDelCmdExe evalProjectWaringDelCommandExe;
|
||||
private final EvalProjectWaringPageQueryExe evalProjectWaringPageQueryExe;
|
||||
private final EvalProjectWaringMapper evalProjectWaringMapper;
|
||||
|
||||
@Override
|
||||
public PageResponse<EvalProjectWaringCo> listEvalProjectWaringPage(EvalProjectWaringPageQry evalProjectWaringPageQry) {
|
||||
return evalProjectWaringPageQueryExe.execute(evalProjectWaringPageQry);
|
||||
|
|
@ -58,4 +67,20 @@ public class EvalProjectWaringServiceImpl implements EvalProjectWaringServiceI {
|
|||
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 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.Param;
|
||||
|
||||
|
|
@ -12,4 +16,16 @@ import org.apache.ibatis.annotations.Param;
|
|||
*/
|
||||
@Mapper
|
||||
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
|
||||
</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>
|
||||
Loading…
Reference in New Issue