安全首页接口
This commit is contained in:
parent
094b1eae79
commit
6d24138445
@ -7,6 +7,8 @@ import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.redis.annotation.ApiIdempotent;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.TrendVo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService;
|
||||
@ -150,6 +152,7 @@ public class WorkerInfoController {
|
||||
@ApiImplicitParam(name = "presence", value = "1在场2离场", paramType = "body", required = false, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "attendance", value = "1今日出勤", paramType = "body", required = false, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "isFilterQualityRegionEnterprise", value = "是否查询过滤区域管理下的企业,1是", paramType = "body", required = false, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "letter", value = "首字母", paramType = "body", required = false, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/selectWorkerInfoList")
|
||||
public Result<IPage<WorkerInfo>> selectWorkerInfoList(@RequestBody Map<String, Object> map) {
|
||||
@ -663,11 +666,40 @@ public class WorkerInfoController {
|
||||
@ApiOperation(value = "根据身份证号查询劳务人员", notes = "根据身份证号查询劳务人员", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "idCard", value = "身份证号", paramType = "body", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectSn", value = "projectSn", paramType = "body", required = false, dataType = "String"),
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = false, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/selectWorkerInfoByIdCard")
|
||||
public Result<WorkerInfo> selectWorkerInfoByIdCard(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(workerInfoService.selectWorkerInfoByIdCard(map));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "人员风险概览", notes = "人员风险概览", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/statsSafeScore")
|
||||
public Result<SectorVo> statsSafeScore(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(workerInfoService.statsSector(map));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "企业安全评分汇总", notes = "企业安全评分汇总", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/statsEnterprise")
|
||||
public Result<SectorVo> statsEnterprise(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(workerInfoService.statsEnterprise(map));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "企业安全评分汇总表", notes = "企业安全评分汇总表", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/statsEnterpriseRisk")
|
||||
public Result<List<StatsTrendVo>> statsEnterpriseRisk(@RequestBody Map<String, Object> map) {
|
||||
return Result.success(workerInfoService.statsEnterpriseRisk(map));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -337,7 +337,7 @@ public class WorkerInfo implements Serializable {
|
||||
private Integer devType;
|
||||
@ApiModelProperty(value = "门禁设备-分组id")
|
||||
private String ufaceDevGroupId;
|
||||
@ApiModelProperty(value = "安全分数")
|
||||
@ApiModelProperty(value = "安全分数,低中高-80-90-")
|
||||
private Double safeScore;
|
||||
@ApiModelProperty(value = "下发状态:1成功2失败3部分成功")
|
||||
private Integer sendSuccessStatus;
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package com.zhgd.xmgl.modules.worker.entity.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class StatsTrendVo {
|
||||
@ApiModelProperty("人数")
|
||||
private Integer workerNum;
|
||||
@ApiModelProperty("高风险数量")
|
||||
private Integer highRiskNum;
|
||||
@ApiModelProperty("中风险数量")
|
||||
private Integer mediumRiskNum;
|
||||
@ApiModelProperty("低风险数量")
|
||||
private Integer lowRiskNum;
|
||||
|
||||
}
|
||||
@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zhgd.annotation.DataScope;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -238,4 +240,11 @@ public interface WorkerInfoMapper extends BaseMapper<WorkerInfo> {
|
||||
|
||||
void updateScore(HashMap<String, Object> map);
|
||||
|
||||
List<StatsTrendVo> stats(@Param("param") Map<String, Object> map);
|
||||
|
||||
List<SectorOneVo> statsSector(@Param("param") Map<String, Object> map);
|
||||
|
||||
List<SectorOneVo> statsEnterprise(@Param("param") Map<String, Object> map);
|
||||
|
||||
List<StatsTrendVo> statsEnterpriseRisk(@Param("param") Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -192,6 +192,9 @@
|
||||
<if test="param.selectType == '12'.toString()">
|
||||
and a.vaccine_status = 3
|
||||
</if>
|
||||
<if test="param.letter != null and param.letter != ''">
|
||||
and pinyin(a.worker_name) like concat(#{param.letter},'%')
|
||||
</if>
|
||||
<if test="param.workerInfos != null and param.workerInfos != ''">
|
||||
and FIND_IN_SET(a.id, #{param.workerInfos})
|
||||
</if>
|
||||
@ -2445,4 +2448,75 @@
|
||||
<update id="updateScore">
|
||||
update worker_info set safe_score = safe_score - #{deductScore} where id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="stats" resultType="com.zhgd.xmgl.modules.worker.entity.vo.StatsTrendVo">
|
||||
select
|
||||
<choose>
|
||||
<when test="param.groupby == 'safeScore'.toString()">
|
||||
CASE WHEN t.safe_score < 80 THEN '高风险' When t.safe_score >= 80 and t.safe_score < 90 then '中风险'
|
||||
ELSE '低风险' END as name,
|
||||
count(*) as count,
|
||||
</when>
|
||||
<when test="param.groupby == 'enterprise'.toString()">
|
||||
ei.enterprise_name as name,
|
||||
avg(t.safe_score) as count,
|
||||
</when>
|
||||
<when test="param.groupby == 'enterprise_safeScore'.toString()">
|
||||
</when>
|
||||
<otherwise>
|
||||
</otherwise>
|
||||
</choose>
|
||||
1
|
||||
from worker_info t
|
||||
left join enterprise_info ei on ei.id=t.enterprise_id
|
||||
where t.project_sn=#{param.projectSn}
|
||||
<choose>
|
||||
<when test="param.groupby == 'safeScore'.toString()">
|
||||
group by name
|
||||
</when>
|
||||
<when test="param.groupby == 'enterprise'.toString()">
|
||||
group by t.enterprise_id
|
||||
</when>
|
||||
<when test="param.groupby == 'enterprise_safeScore'.toString()">
|
||||
group by t.enterprise_id
|
||||
</when>
|
||||
<otherwise>
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
|
||||
<select id="statsSector" resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
|
||||
select
|
||||
CASE WHEN t.safe_score < 80 THEN '高风险' When t.safe_score >= 80 and t.safe_score < 90 then '中风险' ELSE '低风险'
|
||||
END as name,
|
||||
count(*) as count
|
||||
from worker_info t
|
||||
where t.project_sn=#{param.projectSn}
|
||||
group by name
|
||||
</select>
|
||||
|
||||
<select id="statsEnterprise" resultType="com.zhgd.xmgl.base.entity.vo.SectorOneVo">
|
||||
select
|
||||
ei.enterprise_name as name,
|
||||
avg(t.safe_score) as count
|
||||
from worker_info t
|
||||
join enterprise_info ei on ei.id=t.enterprise_id
|
||||
where t.project_sn=#{param.projectSn}
|
||||
group by t.enterprise_id
|
||||
</select>
|
||||
|
||||
<select id="statsEnterpriseRisk" resultType="com.zhgd.xmgl.modules.worker.entity.vo.StatsTrendVo">
|
||||
select
|
||||
ei.enterprise_name as name,
|
||||
CASE WHEN t.safe_score < 80 THEN '高风险' When t.safe_score >= 80 and t.safe_score < 90 then '中风险' ELSE '低风险'
|
||||
END as name,
|
||||
ifnull(round(sum(if(t.safe_score < 80,1,0)),2),0) as highRiskNum,
|
||||
ifnull(round(sum(if(t.safe_score >= 80 and t.safe_score < 90,1,0)),2),0) as mediumRiskNum,
|
||||
ifnull(round(sum(if(t.safe_score >= 90,1,0)),2),0) as lowRiskNum,
|
||||
count(*) as workerNum
|
||||
from worker_info t
|
||||
join enterprise_info ei on ei.id=t.enterprise_id
|
||||
where t.project_sn=#{param.projectSn}
|
||||
group by t.enterprise_id
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.TrendVo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.dto.GetWorkerInfoByDevDto;
|
||||
import com.zhgd.xmgl.modules.worker.entity.vo.*;
|
||||
@ -133,4 +135,9 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
|
||||
|
||||
WorkerInfo selectWorkerInfoByIdCard(Map<String, Object> map);
|
||||
|
||||
SectorVo statsSector(Map<String, Object> map);
|
||||
|
||||
SectorVo statsEnterprise(Map<String, Object> map);
|
||||
|
||||
List<StatsTrendVo> statsEnterpriseRisk(Map<String, Object> map);
|
||||
}
|
||||
|
||||
@ -24,6 +24,9 @@ import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.async.AsyncJiLianDa;
|
||||
import com.zhgd.xmgl.async.AsyncWorker;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.SectorVo;
|
||||
import com.zhgd.xmgl.base.entity.vo.TrendVo;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||||
@ -2124,6 +2127,21 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
return workerInfos.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SectorVo statsSector(Map<String, Object> map) {
|
||||
return SectorVo.getSectorVo(baseMapper.statsSector(map));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SectorVo statsEnterprise(Map<String, Object> map) {
|
||||
return SectorVo.getSectorVo(baseMapper.statsEnterprise(map));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatsTrendVo> statsEnterpriseRisk(Map<String, Object> map) {
|
||||
return baseMapper.statsEnterpriseRisk(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 真正递归的方法
|
||||
*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user