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 TG = "停工";
public final static String ONLINE = "1"; 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 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 WARN = "1";
public final static String NOT_WARN = "0"; 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 = "单项编码") @ApiModelProperty(value = "单项编码")
private String signNo; private String signNo;
@ApiModelProperty(value = "字典编码")
private String typeCode;
@ApiModelProperty(value = "检测名称")
private String modeName;
} }

View File

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

View File

@ -105,6 +105,7 @@ public interface HumanManageMapper {
/** /**
* 获取人员出入记录 * 获取人员出入记录
*
* @param dto * @param dto
* @return List<UserAccessVo> * @return List<UserAccessVo>
* @description * @description
@ -115,6 +116,7 @@ public interface HumanManageMapper {
/** /**
* 绑定安全帽 * 绑定安全帽
*
* @param dto * @param dto
* @return * @return
*/ */
@ -122,6 +124,7 @@ public interface HumanManageMapper {
/** /**
* 接触安全帽绑定 * 接触安全帽绑定
*
* @param dto * @param dto
* @return * @return
*/ */
@ -129,6 +132,7 @@ public interface HumanManageMapper {
/** /**
* 查询绑定记录 * 查询绑定记录
*
* @param dto * @param dto
* @return * @return
*/ */
@ -136,6 +140,7 @@ public interface HumanManageMapper {
/** /**
* 查询已绑定设备 * 查询已绑定设备
*
* @param dto * @param dto
* @return * @return
*/ */
@ -143,8 +148,30 @@ public interface HumanManageMapper {
/** /**
* 修改成功 * 修改成功
*
* @param dto * @param dto
* @return * @return
*/ */
int updateDev(ParamDto dto); 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.alibaba.fastjson2.JSONObject;
import com.securitycontrol.background.mapper.HumanManageMapper; import com.securitycontrol.background.mapper.HumanManageMapper;
import com.securitycontrol.background.service.HumanService; 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.HttpStatus;
import com.securitycontrol.common.core.constant.SecurityConstants; import com.securitycontrol.common.core.constant.SecurityConstants;
import com.securitycontrol.common.core.domain.Result; import com.securitycontrol.common.core.domain.Result;
@ -250,13 +251,42 @@ public class HumanServiceImpl implements HumanService {
public List<UserAccessVo> getPersonnelAccessLists(ParamDto dto) { public List<UserAccessVo> getPersonnelAccessLists(ParamDto dto) {
List<UserAccessVo> list = new ArrayList<>(); List<UserAccessVo> list = new ArrayList<>();
try { try {
dto.setTypeCode(Constant.PERSON_CAR_TYPE);
dto.setModeName(Constant.PERSON);
list = mapper.getPersonnelAccessLists(dto); 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) { } catch (Exception e) {
log.error("获取人员出入记录",e); log.error("获取人员出入记录",e);
} }
return list; 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 * @param dto

View File

@ -154,14 +154,11 @@
</select> </select>
<!--获取人员出入记录--> <!--获取人员出入记录-->
<select id="getPersonnelAccessLists" resultType="com.securitycontrol.entity.background.vo.UserAccessVo"> <select id="getPersonnelAccessLists" resultType="com.securitycontrol.entity.background.vo.UserAccessVo">
SELECT tua.user_name AS userName, SELECT thdv.source_type AS value
tua.access_time AS accessTime, FROM tb_bd_device tbd
IF(access_type = '1','入场','出场') AS accessType INNER JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id AND tdd.del_flag = 0
FROM tb_user_access tua INNER JOIN tb_his_device_value thdv ON tdd.id = thdv.attribute_id AND thdv.val = #{id}
WHERE user_id = #{id} WHERE tbd.devic_type = #{typeCode} AND tdd.mode_name = #{modeName} AND tbd.del_flag = 0
<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> </select>
<select id="getBindHis" resultType="java.lang.Integer"> <select id="getBindHis" resultType="java.lang.Integer">
select count(1) select count(1)
@ -174,4 +171,19 @@
from tb_user_bind_cap from tb_user_bind_cap
where people_id=#{userId} and bind_status=1 where people_id=#{userId} and bind_status=1
</select> </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> </mapper>

View File

@ -8,27 +8,58 @@
LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum, LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum,
LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum, LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum,
LPAD( SUM( dycNum ), 4, '0' ) AS dycNum LPAD( SUM( dycNum ), 4, '0' ) AS dycNum
FROM ( FROM
(
SELECT SELECT
sum( case when tca.access_type = '1' then 1 else 0 end ) as jtrNum, sum( CASE WHEN aa.val LIKE '%入%' THEN 1 ELSE 0 END ) jtrNum,
sum( case when tca.access_type = '2' then 1 else 0 end ) as jrcNUm, sum( CASE WHEN aa.val LIKE '%出%' THEN 1 ELSE 0 END ) jrcNum,
0 as dyrNum, 0 AS dyrNum,
0 as dycNUm 0 AS dycNUm
FROM tb_project tp FROM
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
SELECT SELECT
0 as jtrNum, thdv.source_type,
0 as jrcNUm, thdv.create_time,
sum( case when tca.access_type = '1' then 1 else 0 end ) as dyrNum, tpb.bid_code,
sum( case when tca.access_type = '2' then 1 else 0 end ) as dycNUm GROUP_CONCAT( thdv.val ) AS val
FROM tb_project tp FROM
LEFT JOIN tb_car tc ON tp.bid_code = tc.bid_code `tb_pro_bd` tpb
LEFT JOIN tb_car_access tca on tc.id = tca.car_id LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
WHERE tp.bid_code = #{bidCode} and DATE_FORMAT(tca.accesss_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m') LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
) a 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>
<select id="getVehicleStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo"> <select id="getVehicleStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">
@ -75,27 +106,58 @@
LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum, LPAD( SUM( jrcNum ), 3, '0' ) AS jrcNum,
LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum, LPAD( SUM( dyrNum ), 4, '0' ) AS dyrNum,
LPAD( SUM( dycNum ), 4, '0' ) AS dycNum LPAD( SUM( dycNum ), 4, '0' ) AS dycNum
FROM ( FROM
(
SELECT SELECT
sum( case when tua.access_type = '1' then 1 else 0 end ) as jtrNum, sum( CASE WHEN aa.val LIKE '%入%' THEN 1 ELSE 0 END ) jtrNum,
sum( case when tua.access_type = '2' then 1 else 0 end ) as jrcNUm, sum( CASE WHEN aa.val LIKE '%出%' THEN 1 ELSE 0 END ) jrcNum,
0 as dyrNum, 0 AS dyrNum,
0 as dycNUm 0 AS dycNUm
FROM tb_work_team twt FROM
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
SELECT SELECT
0 as jtrNum, thdv.source_type,
0 as jrcNUm, thdv.create_time,
sum( case when tua.access_type = '1' then 1 else 0 end ) as dyrNum, tpb.bid_code,
sum( case when tua.access_type = '2' then 1 else 0 end ) as dycNUm GROUP_CONCAT( thdv.val ) AS val
FROM tb_work_team twt FROM
LEFT JOIN t_team_people ttp on twt.team_id = ttp.team_id `tb_pro_bd` tpb
LEFT JOIN tb_user_access tua ON ttp.user_id = tua.user_id LEFT JOIN tb_bd_device tbd ON tpb.id = tbd.bd_id
WHERE twt.bid_code = #{bidCode} and DATE_FORMAT(tua.access_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m') LEFT JOIN tb_device_detail tdd ON tbd.device_id = tdd.device_id
)a 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>
<select id="getPerStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo"> <select id="getPerStatisticsPhoto" resultType="com.securitycontrol.entity.screen.vo.AccessMgeVo">