Merge remote-tracking branch 'origin/master'

This commit is contained in:
jjLv 2024-04-08 09:26:27 +08:00
commit 63213ba2d3
7 changed files with 207 additions and 60 deletions

View File

@ -58,12 +58,20 @@ public class Constant {
public final static String TG = "停工";
public final static String ONLINE = "1";
public final static String AIR_QUALITY = "PM2.5,PM10";
public final static String AIR_QUALITY = "气压,含氧量,二氧化碳,硫化氢";
public final static String NOISE_LEVEL= "噪声";
public final static String GRAY_LAYER = "二氧化碳";
public final static String GRAY_LAYER = "PM2.5,PM10";
public final static String WARN = "1";
public final static String NOT_WARN = "0";
/**车辆闸机、人员闸机 编码*/
public final static String PERSON_CAR_TYPE = "1907";
/**人员闸机检测名称*/
public final static String PERSON = "绑定人";
public final static String ACCESS_TIME = "出入时间";
public final static String ACCESS_TYPE = "出入类型";

View File

@ -61,4 +61,10 @@ public class ParamDto {
@ApiModelProperty(value = "单项编码")
private String signNo;
@ApiModelProperty(value = "字典编码")
private String typeCode;
@ApiModelProperty(value = "检测名称")
private String modeName;
}

View File

@ -29,4 +29,6 @@ public class UserAccessVo {
@ApiModelProperty(value = "手机号")
private String userPhone;
private String value;
}

View File

@ -105,6 +105,7 @@ public interface HumanManageMapper {
/**
* 获取人员出入记录
*
* @param dto
* @return List<UserAccessVo>
* @description
@ -115,6 +116,7 @@ public interface HumanManageMapper {
/**
* 绑定安全帽
*
* @param dto
* @return
*/
@ -122,6 +124,7 @@ public interface HumanManageMapper {
/**
* 接触安全帽绑定
*
* @param dto
* @return
*/
@ -129,6 +132,7 @@ public interface HumanManageMapper {
/**
* 查询绑定记录
*
* @param dto
* @return
*/
@ -136,6 +140,7 @@ public interface HumanManageMapper {
/**
* 查询已绑定设备
*
* @param dto
* @return
*/
@ -143,8 +148,30 @@ public interface HumanManageMapper {
/**
* 修改成功
*
* @param dto
* @return
*/
int updateDev(ParamDto dto);
/**
* 人员详情
*
* @param dto
* @return UserAccessVo
* @description
* @author cwchen
* @date 2024/4/3 17:13
*/
UserAccessVo getUserDeatail(ParamDto dto);
/**
* 获取人员出入场记录
* @param value
* @return String
* @description
* @author cwchen
* @date 2024/4/3 17:44
*/
String getUserAccessLists(String value);
}

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.securitycontrol.background.mapper.HumanManageMapper;
import com.securitycontrol.background.service.HumanService;
import com.securitycontrol.common.core.constant.Constant;
import com.securitycontrol.common.core.constant.HttpStatus;
import com.securitycontrol.common.core.constant.SecurityConstants;
import com.securitycontrol.common.core.domain.Result;
@ -250,13 +251,42 @@ public class HumanServiceImpl implements HumanService {
public List<UserAccessVo> getPersonnelAccessLists(ParamDto dto) {
List<UserAccessVo> list = new ArrayList<>();
try {
dto.setTypeCode(Constant.PERSON_CAR_TYPE);
dto.setModeName(Constant.PERSON);
list = mapper.getPersonnelAccessLists(dto);
UserAccessVo userDetail = mapper.getUserDeatail(dto);
String decryptIdNumber = AesCbcUtils.decrypt(userDetail.getIdNumber());
if(decryptIdNumber != null){
userDetail.setIdNumber(decryptIdNumber);
}
for (UserAccessVo vo : list) {
String value = vo.getValue();
vo.setIdNumber(userDetail.getIdNumber());
vo.setUserPhone(userDetail.getUserPhone());
vo.setUserName(userDetail.getUserName());
String data = mapper.getUserAccessLists(value);
if(StringUtils.isNotEmpty(data)){
String[] dataArr = data.split(",");
setUserAccessData(vo,dataArr);
}
}
} catch (Exception e) {
log.error("获取人员出入记录",e);
}
return list;
}
public UserAccessVo setUserAccessData(UserAccessVo vo,String[] valArr){
for (String str : valArr) {
String[] splitStr = str.split("@");
if(Objects.equals(splitStr[0],Constant.ACCESS_TIME)){
vo.setAccessTime(splitStr[1]);
}else if(Objects.equals(splitStr[0],Constant.ACCESS_TYPE)){
vo.setAccessType(splitStr[1]);
}
}
return vo;
}
/**
* 人员绑定安全膜
* @param dto

View File

@ -154,14 +154,11 @@
</select>
<!--获取人员出入记录-->
<select id="getPersonnelAccessLists" resultType="com.securitycontrol.entity.background.vo.UserAccessVo">
SELECT tua.user_name AS userName,
tua.access_time AS accessTime,
IF(access_type = '1','入场','出场') AS accessType
FROM tb_user_access tua
WHERE user_id = #{id}
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
AND tua.access_time BETWEEN CONCAT(#{startTime}, ' 00:00:00') AND CONCAT(#{endTime}, ' 23:59:59')
</if>
SELECT thdv.source_type AS value
FROM tb_bd_device tbd
INNER JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id AND tdd.del_flag = 0
INNER JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id AND thdv.val = #{id}
WHERE tbd.devic_type = #{typeCode} AND tdd.mode_name = #{modeName} AND tbd.del_flag = 0
</select>
<select id="getBindHis" resultType="java.lang.Integer">
select count(1)
@ -174,4 +171,19 @@
from tb_user_bind_cap
where people_id=#{userId} and bind_status=1
</select>
<!--人员详情-->
<select id="getUserDeatail" resultType="com.securitycontrol.entity.background.vo.UserAccessVo">
SELECT user_name AS userName,
id_number AS idNumber,
phone AS userPhone
FROM t_team_people WHERE user_id = #{id}
</select>
<!--获取人员出入场记录-->
<select id="getUserAccessLists" resultType="java.lang.String">
SELECT GROUP_CONCAT(CONCAT(tdd.mode_name,'@',thdv.val)) AS value
FROM tb_his_device_value thdv
INNER JOIN tb_device_detail tdd ON thdv.attribute_id = tdd.id AND tdd.del_flag = 0
WHERE thdv.source_type = #{value}
GROUP BY thdv.source_type
</select>
</mapper>

View File

@ -4,31 +4,62 @@
<select id="getVehicleStatistics" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">
SELECT
LPAD(SUM(jtrNum), 3, '0') AS jtrNum,
LPAD(SUM(jrcNum), 3, '0') AS jrcNum,
LPAD(SUM(dyrNum), 4, '0') AS dyrNum,
LPAD(SUM(dycNum), 4, '0') AS dycNum
FROM (
LPAD( SUM( jtrNum ), 3, '0' ) AS jtrNum,
LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum,
LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum,
LPAD( SUM( dycNum ), 4, '0' ) AS dycNum
FROM
(
SELECT
sum( case when tca.access_type = '1' then 1 else 0 end ) as jtrNum,
sum( case when tca.access_type = '2' then 1 else 0 end ) as jrcNUm,
0 as dyrNum,
0 as dycNUm
FROM tb_project tp
LEFT JOIN tb_car tc ON tp.bid_code = tc.bid_code
LEFT JOIN tb_car_access tca on tc.id = tca.car_id
WHERE tp.bid_code = #{bidCode} and to_days(tca.accesss_time) = to_days(NOW())
UNION ALL
sum( CASE WHEN aa.val LIKE '%入%' THEN 1 ELSE 0 END ) jtrNum,
sum( CASE WHEN aa.val LIKE '%出%' THEN 1 ELSE 0 END ) jrcNum,
0 AS dyrNum,
0 AS dycNUm
FROM
(
SELECT
0 as jtrNum,
0 as jrcNUm,
sum( case when tca.access_type = '1' then 1 else 0 end ) as dyrNum,
sum( case when tca.access_type = '2' then 1 else 0 end ) as dycNUm
FROM tb_project tp
LEFT JOIN tb_car tc ON tp.bid_code = tc.bid_code
LEFT JOIN tb_car_access tca on tc.id = tca.car_id
WHERE tp.bid_code = #{bidCode} and DATE_FORMAT(tca.accesss_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
) a
thdv.source_type,
thdv.create_time,
tpb.bid_code,
GROUP_CONCAT( thdv.val ) AS val
FROM
`tb_pro_bd` tpb
LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
LEFT JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id
WHERE
tpb.bid_code = #{bidCode}
AND tbd.device_code = '1907001'
AND to_days( thdv.create_time ) = to_days(
NOW())
GROUP BY
thdv.source_type
) aa UNION ALL
SELECT
0 AS jtrNum,
0 AS jrcNUm,
sum( CASE WHEN bb.val LIKE '%入%' THEN 1 ELSE 0 END ) dyrNum,
sum( CASE WHEN bb.val LIKE '%出%' THEN 1 ELSE 0 END ) dycNUm
FROM
(
SELECT
thdv.source_type,
thdv.create_time,
tpb.bid_code,
GROUP_CONCAT( thdv.val ) AS val
FROM
`tb_pro_bd` tpb
LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
LEFT JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id
WHERE
tpb.bid_code = #{bidCode}
AND tbd.device_code = '1907001'
AND DATE_FORMAT( thdv.create_time, '%Y%m' ) = DATE_FORMAT( NOW(), '%Y%m' )
GROUP BY
thdv.source_type
) bb
) ab
</select>
<select id="getVehicleStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">
@ -71,31 +102,62 @@
<select id="getPerStatistics" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">
SELECT
LPAD(SUM(jtrNum), 3, '0') AS jtrNum,
LPAD(SUM(jrcNum), 3, '0') AS jrcNum,
LPAD(SUM(dyrNum), 4, '0') AS dyrNum,
LPAD(SUM(dycNum), 4, '0') AS dycNum
FROM (
LPAD( SUM( jtrNum ), 3, '0' ) AS jtrNum,
LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum,
LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum,
LPAD( SUM( dycNum ), 4, '0' ) AS dycNum
FROM
(
SELECT
sum( case when tua.access_type = '1' then 1 else 0 end ) as jtrNum,
sum( case when tua.access_type = '2' then 1 else 0 end ) as jrcNUm,
0 as dyrNum,
0 as dycNUm
FROM tb_work_team twt
LEFT JOIN t_team_people ttp on twt.team_id = ttp.team_id
LEFT JOIN tb_user_access tua ON ttp.user_id = tua.user_id
WHERE twt.bid_code = #{bidCode} and to_days(tua.access_time) = to_days(NOW())
UNION ALL
sum( CASE WHEN aa.val LIKE '%入%' THEN 1 ELSE 0 END ) jtrNum,
sum( CASE WHEN aa.val LIKE '%出%' THEN 1 ELSE 0 END ) jrcNum,
0 AS dyrNum,
0 AS dycNUm
FROM
(
SELECT
0 as jtrNum,
0 as jrcNUm,
sum( case when tua.access_type = '1' then 1 else 0 end ) as dyrNum,
sum( case when tua.access_type = '2' then 1 else 0 end ) as dycNUm
FROM tb_work_team twt
LEFT JOIN t_team_people ttp on twt.team_id = ttp.team_id
LEFT JOIN tb_user_access tua ON ttp.user_id = tua.user_id
WHERE twt.bid_code = #{bidCode} and DATE_FORMAT(tua.access_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
)a
thdv.source_type,
thdv.create_time,
tpb.bid_code,
GROUP_CONCAT( thdv.val ) AS val
FROM
`tb_pro_bd` tpb
LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
LEFT JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id
WHERE
tpb.bid_code = #{bidCode}
AND tbd.device_code = '1907002'
AND to_days( thdv.create_time ) = to_days(
NOW())
GROUP BY
thdv.source_type
) aa UNION ALL
SELECT
0 AS jtrNum,
0 AS jrcNUm,
sum( CASE WHEN bb.val LIKE '%入%' THEN 1 ELSE 0 END ) dyrNum,
sum( CASE WHEN bb.val LIKE '%出%' THEN 1 ELSE 0 END ) dycNUm
FROM
(
SELECT
thdv.source_type,
thdv.create_time,
tpb.bid_code,
GROUP_CONCAT( thdv.val ) AS val
FROM
`tb_pro_bd` tpb
LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
LEFT JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id
WHERE
tpb.bid_code = #{bidCode}
AND tbd.device_code = '1907002'
AND DATE_FORMAT( thdv.create_time, '%Y%m' ) = DATE_FORMAT( NOW(), '%Y%m' )
GROUP BY
thdv.source_type
) bb
) ab
</select>
<select id="getPerStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">