bug修复

This commit is contained in:
guo 2023-08-15 19:30:15 +08:00
parent e3dddb82c8
commit b166849d3f
5 changed files with 264 additions and 191 deletions

View File

@ -61,6 +61,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
@Override @Override
public Map<String, Object> getCompanyType(Map<String, Object> map) { public Map<String, Object> getCompanyType(Map<String, Object> map) {
// companyType > 1总部2区域3城市4一个项目5项目部
QueryWrapper<Company> queryWrapper = new QueryWrapper<>(); QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Company::getCompanySn, MapUtils.getString(map, "sn")); queryWrapper.lambda().eq(Company::getCompanySn, MapUtils.getString(map, "sn"));
Company tempCompany = companyMapper.selectOne(queryWrapper); Company tempCompany = companyMapper.selectOne(queryWrapper);

View File

@ -1,107 +1,143 @@
package com.zhgd.xmgl.modules.worker.entity; package com.zhgd.xmgl.modules.worker.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/** /**
* @Description: 人脸设备 * @Description: 人脸设备
* @author pds * @author pds
* @date 2020-09-23 * @date 2020-09-23
* @version V1.0 * @version V1.0
*/ */
@Data @Data
@TableName("uface_dev") @TableName("uface_dev")
@ApiModel(value="UfaceDev实体类",description="UfaceDev") @ApiModel(value = "UfaceDev实体类", description = "UfaceDev")
public class UfaceDev implements Serializable { public class UfaceDev implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**uface设备表*/ /**
* uface设备表
*/
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value="uface设备表") @ApiModelProperty(value = "uface设备表")
private java.lang.Long id ; private java.lang.Long id;
/**设备IP*/ /**
@Excel(name = "设备IP", width = 15) * 设备IP
@ApiModelProperty(value="设备IP") */
private java.lang.String devIp ; @Excel(name = "设备IP", width = 15)
/**设备端口*/ @ApiModelProperty(value = "设备IP")
@Excel(name = "设备端口", width = 15) private java.lang.String devIp;
@ApiModelProperty(value="设备端口") /**
private java.lang.String devPort ; * 设备端口
/**设备唯一标识*/ */
@Excel(name = "设备唯一标识", width = 15) @Excel(name = "设备端口", width = 15)
@ApiModelProperty(value="设备唯一标识") @ApiModelProperty(value = "设备端口")
private java.lang.String devSn ; private java.lang.String devPort;
/**设备密码*/ /**
@Excel(name = "设备密码", width = 15) * 设备唯一标识
@ApiModelProperty(value="设备密码") */
private java.lang.String password ; @Excel(name = "设备唯一标识", width = 15)
/**设备名称*/ @ApiModelProperty(value = "设备唯一标识")
@Excel(name = "设备名称", width = 15) private java.lang.String devSn;
@ApiModelProperty(value="设备名称") /**
private java.lang.String devName ; * 设备密码
/**项目sn*/ */
@Excel(name = "项目sn", width = 15) @Excel(name = "设备密码", width = 15)
@ApiModelProperty(value="项目sn") @ApiModelProperty(value = "设备密码")
private java.lang.String projectSn ; private java.lang.String password;
/**是否启用通行进口0否1是*/ /**
@Excel(name = "是否启用通行进口0否1是", width = 15) * 设备名称
@ApiModelProperty(value="是否启用通行进口0否1是") */
private java.lang.Integer isEnter ; @Excel(name = "设备名称", width = 15)
/**进时间段0-23*/ @ApiModelProperty(value = "设备名称")
@Excel(name = "进时间段0-23", width = 15) private java.lang.String devName;
@ApiModelProperty(value="进时间段0-23") /**
private java.lang.String enterTime ; * 项目sn
/**是否启用通行出口0否1是*/ */
@Excel(name = "是否启用通行出口0否1是", width = 15) @Excel(name = "项目sn", width = 15)
@ApiModelProperty(value="是否启用通行出口0否1是") @ApiModelProperty(value = "项目sn")
private java.lang.Integer isOut ; private java.lang.String projectSn;
/**出时间段0-23*/ /**
@Excel(name = "出时间段0-23", width = 15) * 是否启用通行进口0否1是
@ApiModelProperty(value="出时间段0-23") */
private java.lang.String outTime ; @Excel(name = "是否启用通行进口0否1是", width = 15)
/**设备登录账号*/ @ApiModelProperty(value = "是否启用通行进口0否1是")
@Excel(name = "设备登录账号", width = 15) private java.lang.Integer isEnter;
@ApiModelProperty(value="设备登录账号") /**
private java.lang.String loginAccount ; * 进时间段0-23
*/
@Excel(name = "进时间段0-23", width = 15)
@ApiModelProperty(value = "进时间段0-23")
private java.lang.String enterTime;
/**
* 是否启用通行出口0否1是
*/
@Excel(name = "是否启用通行出口0否1是", width = 15)
@ApiModelProperty(value = "是否启用通行出口0否1是")
private java.lang.Integer isOut;
/**
* 出时间段0-23
*/
@Excel(name = "出时间段0-23", width = 15)
@ApiModelProperty(value = "出时间段0-23")
private java.lang.String outTime;
/**
* 设备登录账号
*/
@Excel(name = "设备登录账号", width = 15)
@ApiModelProperty(value = "设备登录账号")
private java.lang.String loginAccount;
/*@ApiModelProperty(value="设备状态1在线2离线") /*@ApiModelProperty(value="设备状态1在线2离线")
private java.lang.Integer deviceState;*/ private java.lang.Integer deviceState;*/
@ApiModelProperty(value="设备平台返回的Id") @ApiModelProperty(value = "设备平台返回的Id")
private java.lang.String deviceId; private java.lang.String deviceId;
/**地图X坐标*/ /**
* 地图X坐标
*/
@Excel(name = "地图X坐标", width = 15) @Excel(name = "地图X坐标", width = 15)
@ApiModelProperty(value="地图X坐标") @ApiModelProperty(value = "地图X坐标")
private java.lang.String mapX ; private java.lang.String mapX;
/**地图Y坐标*/ /**
* 地图Y坐标
*/
@Excel(name = "地图Y坐标", width = 15) @Excel(name = "地图Y坐标", width = 15)
@ApiModelProperty(value="地图Y坐标") @ApiModelProperty(value = "地图Y坐标")
private java.lang.String mapY ; private java.lang.String mapY;
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="心跳时间30分钟没接收到实时数据表示设备离线") @ApiModelProperty(value = "心跳时间30分钟没接收到实时数据表示设备离线")
private java.util.Date heartBeatTime ; private java.util.Date heartBeatTime;
/**创建时间*/ /**
* 创建时间
*/
@Excel(name = "创建时间", width = 15) @Excel(name = "创建时间", width = 15)
@ApiModelProperty(value="创建时间") @ApiModelProperty(value = "创建时间")
private java.lang.String createTime ; private java.lang.String createTime;
/**设备位置归属1工地区2生活区3项目部*/ /**
* 设备位置归属1工地区2生活区3项目部
*/
@Excel(name = "设备位置归属1工地区2生活区3项目部", width = 15) @Excel(name = "设备位置归属1工地区2生活区3项目部", width = 15)
@ApiModelProperty(value="设备位置归属1工地区2生活区3项目部") @ApiModelProperty(value = "设备位置归属1工地区2生活区3项目部")
private java.lang.Integer devGroupType ; private java.lang.Integer devGroupType;
@ApiModelProperty(value = "设备状态1在线0离线")
@TableField(exist = false)
private java.lang.Integer devOnline;
} }

View File

@ -4,10 +4,13 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.modules.worker.entity.UfaceDev; import com.zhgd.xmgl.modules.worker.entity.UfaceDev;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
@ -33,4 +36,6 @@ public interface UfaceDevMapper extends BaseMapper<UfaceDev> {
List<EntityMap> selectUfaceDevList(Map<String, Object> map); List<EntityMap> selectUfaceDevList(Map<String, Object> map);
HashMap<String, Object> countUfaceDevOnOffline(String projectSn); HashMap<String, Object> countUfaceDevOnOffline(String projectSn);
List<UfaceDev> getUfaceDevList(@Param(Constants.WRAPPER) QueryWrapper<UfaceDev> qw);
} }

View File

@ -2,46 +2,55 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper"> <mapper namespace="com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper">
<update id="updateDevHeartBeat"> <update id="updateDevHeartBeat">
UPDATE uface_dev SET heart_beat_time=now() UPDATE uface_dev
WHERE dev_sn=#{deviceSerial} SET heart_beat_time=now()
WHERE dev_sn = #{deviceSerial}
</update> </update>
<select id="selectAllDevCount" resultType="java.util.Map"> <select id="selectAllDevCount" resultType="java.util.Map">
SELECT project_sn projectSn,COUNT(1) devNum, SELECT project_sn projectSn,
SUM((case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 0 end)) devOnline COUNT(1) devNum,
SUM((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60) &lt;= 30 then 1
else 0 end)) devOnline
FROM uface_dev FROM uface_dev
GROUP BY project_sn GROUP BY project_sn
</select> </select>
<select id="selectCompanyUfaceDevCountStatistics" resultType="java.util.Map"> <select id="selectCompanyUfaceDevCountStatistics" resultType="java.util.Map">
SELECT SELECT IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalDev
IFNULL(SUM(IFNULL(d.totalDev,0)),0) totalDev, , IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) devOnline
IFNULL(SUM(IFNULL(d.devOnline,0)),0) devOnline, , IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) - IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) devNotOnline
IFNULL(SUM(IFNULL(d.totalDev,0)),0)-IFNULL(SUM(IFNULL(d.devOnline,0)),0) devNotOnline
<if test="companyType == '1'.toString()"> <if test="companyType == '1'.toString()">
,a.company_name name , a.company_name name
</if> </if>
<if test="companyType == '2'.toString()"> <if test="companyType == '2'.toString()">
,b.company_name name , b.company_name name
</if> </if>
<if test="companyType == '3'.toString()"> <if test="companyType == '3'.toString()">
,cp.company_name name , cp.company_name name
</if> </if>
<if test="companyType == '4'.toString()"> <if test="companyType == '4'.toString()">
,c.project_name name , c.project_name name
</if> </if>
<if test="companyType == '5'.toString()"> <if test="companyType == '5'.toString()">
,c.project_name name , c.project_name name
</if> </if>
FROM company a LEFT JOIN company b ON b.parent_id=a.company_id FROM company a
LEFT JOIN company cp ON b.company_id=cp.parent_id LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN project c ON cp.company_sn=c.company_sn LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN (SELECT project_sn,COUNT(1) totalDev, LEFT JOIN project c ON cp.company_sn = c.company_sn
SUM((case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 0 end)) devOnline LEFT JOIN (SELECT project_sn,
COUNT(1) totalDev,
SUM((case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60) &lt;=
30 then 1
else 0 end)) devOnline
FROM uface_dev FROM uface_dev
GROUP BY project_sn GROUP BY project_sn
) d ON c.project_sn=d.project_sn ) d ON c.project_sn = d.project_sn
<if test="companyType == '1'.toString()"> <if test="companyType == '1'.toString()">
WHERE a.headquarters_sn=#{sn} AND a.company_type=2 WHERE a.headquarters_sn = #{sn}
AND a.company_type = 2
GROUP BY a.company_id GROUP BY a.company_id
</if> </if>
<if test="companyType == '2'.toString()"> <if test="companyType == '2'.toString()">
@ -62,9 +71,12 @@
order by totalDev desc order by totalDev desc
</select> </select>
<select id="selectUserUfaceDevList" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev"> <select id="selectUserUfaceDevList" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev">
select *,(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 2 end) device_state select *,
(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60) &lt;= 30 then 1
else 2 end) device_state
from uface_dev from uface_dev
where project_sn=#{projectSn} where project_sn = #{projectSn}
<!--<if test="registerType == '2'.toString()"> <!--<if test="registerType == '2'.toString()">
<if test="accountType == '1'.toString()"> <if test="accountType == '1'.toString()">
<if test="devIds!=null and devIds!=''"> <if test="devIds!=null and devIds!=''">
@ -76,32 +88,52 @@
</if> </if>
</if>--> </if>-->
<if test="accountType == '1'.toString()"> <if test="accountType == '1'.toString()">
<if test="devIds!=null and devIds!=''"> <if test="devIds != null and devIds != ''">
and FIND_IN_SET(id,#{devIds}) and FIND_IN_SET(id, #{devIds})
</if> </if>
</if> </if>
<if test="accountType == '2'.toString()"> <if test="accountType == '2'.toString()">
and FIND_IN_SET(id,#{devIds}) and FIND_IN_SET(id, #{devIds})
</if> </if>
</select> </select>
<select id="selectUfaceDevBySn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap"> <select id="selectUfaceDevBySn" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
select *,(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 2 end) device_state select *,
(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60) &lt;= 30 then 1
else 2 end) device_state
from uface_dev from uface_dev
where project_sn=#{projectSn} and dev_sn=#{devSn} where project_sn = #{projectSn}
and dev_sn = #{devSn}
</select> </select>
<select id="selectUfaceDevList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap"> <select id="selectUfaceDevList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap">
select *,(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 2 end) device_state select *,
(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60) &lt;= 30 then 1
else 2 end) device_state
from uface_dev from uface_dev
where project_sn=#{projectSn} where project_sn = #{projectSn}
</select> </select>
<select id="countUfaceDevOnOffline" resultType="java.util.HashMap"> <select id="countUfaceDevOnOffline" resultType="java.util.HashMap">
SELECT SELECT count(case
count(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)<![CDATA[<=]]>30 then 1 else 0 end) as onlineNum, when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60)<![CDATA[ <=]]> 30
count(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)<![CDATA[>=]]>30 then 0 else 1 end) as offlineNum then 1
FROM else 0 end) as onlineNum,
`uface_dev` count(case
WHERE when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60)<![CDATA[ >=]]> 30
project_sn = #{sn} then 0
else 1 end) as offlineNum
FROM `uface_dev`
WHERE project_sn = #{sn}
</select> </select>
</mapper>
<select id="getUfaceDevList" resultType="com.zhgd.xmgl.modules.worker.entity.UfaceDev">
select ud.*,
(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(ud.heart_beat_time)) / 60) &lt;= 30 then 1
else 0 end)
dev_online
from uface_dev ud
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -1,26 +1,24 @@
package com.zhgd.xmgl.modules.worker.service.impl; package com.zhgd.xmgl.modules.worker.service.impl;
import com.baidubce.services.iotshc.model.deivce.DeviceInfo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig; import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.worker.entity.UfaceDev;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService; import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.UfaceDev;
import com.zhgd.xmgl.modules.worker.mapper.UfaceDevMapper;
import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper; import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
import com.zhgd.xmgl.modules.worker.service.IUfaceDevService; import com.zhgd.xmgl.modules.worker.service.IUfaceDevService;
import com.zhgd.xmgl.util.JxjNewUfaceDevUtil; import com.zhgd.xmgl.util.JxjNewUfaceDevUtil;
import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.ReflectionUtil;
import com.zhgd.xmgl.util.UniUbiUtil; import com.zhgd.xmgl.util.UniUbiUtil;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -29,7 +27,7 @@ import java.util.*;
/** /**
* @Description: 人脸设备 * @Description: 人脸设备
* @author pds * @author pds
* @date 2020-09-23 * @date 2020-09-23
* @version V1.0 * @version V1.0
*/ */
@Service @Service
@ -46,18 +44,19 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override @Override
public List<UfaceDev> getUfaceDevList(Map<String, Object> map) { public List<UfaceDev> getUfaceDevList(Map<String, Object> map) {
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); String alias = "ud.";
qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map,"projectSn")); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
List<UfaceDev> list=ufaceDevMapper.selectList(qw); qw.eq(alias + ReflectionUtil.getFieldNameToUlc(UfaceDev::getProjectSn), MapUtils.getString(map, "projectSn"));
List<UfaceDev> list = ufaceDevMapper.getUfaceDevList(qw);
return list; return list;
} }
@Override @Override
public void saveUfaceDev(UfaceDev ufaceDev) { public void saveUfaceDev(UfaceDev ufaceDev) {
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getDevSn,ufaceDev.getDevSn()); qw.lambda().eq(UfaceDev::getDevSn, ufaceDev.getDevSn());
int count=ufaceDevMapper.selectCount(qw); int count = ufaceDevMapper.selectCount(qw);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("serialNumberExistErr")); throw new OpenAlertException(MessageUtil.get("serialNumberExistErr"));
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -71,11 +70,11 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override @Override
public void editUfaceDev(UfaceDev ufaceDev) { public void editUfaceDev(UfaceDev ufaceDev) {
ufaceDev.setHeartBeatTime(null); ufaceDev.setHeartBeatTime(null);
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getDevSn,ufaceDev.getDevSn()) qw.lambda().eq(UfaceDev::getDevSn, ufaceDev.getDevSn())
.ne(UfaceDev::getId,ufaceDev.getId()); .ne(UfaceDev::getId, ufaceDev.getId());
int count=ufaceDevMapper.selectCount(qw); int count = ufaceDevMapper.selectCount(qw);
if(count>0){ if (count > 0) {
throw new OpenAlertException(MessageUtil.get("serialNumberExistErr")); throw new OpenAlertException(MessageUtil.get("serialNumberExistErr"));
} }
ufaceDevMapper.updateById(ufaceDev); ufaceDevMapper.updateById(ufaceDev);
@ -83,8 +82,8 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override @Override
public void deleteUfaceDev(String id) { public void deleteUfaceDev(String id) {
UfaceDev ufaceDev=ufaceDevMapper.selectById(id); UfaceDev ufaceDev = ufaceDevMapper.selectById(id);
if(ufaceDev==null){ if (ufaceDev == null) {
throw new OpenAlertException(MessageUtil.get("notFindErr")); throw new OpenAlertException(MessageUtil.get("notFindErr"));
} }
ufaceDevMapper.deleteById(id); ufaceDevMapper.deleteById(id);
@ -93,17 +92,17 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override @Override
public void batchDeleteUfaceDevAndConfig(String projectSn) { public void batchDeleteUfaceDevAndConfig(String projectSn) {
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn,projectSn); qw.lambda().eq(UfaceDev::getProjectSn, projectSn);
List<UfaceDev> list=ufaceDevMapper.selectList(qw); List<UfaceDev> list = ufaceDevMapper.selectList(qw);
if(list.size()>0){ if (list.size() > 0) {
for (UfaceDev ufaceDev:list){ for (UfaceDev ufaceDev : list) {
ufaceDevMapper.deleteById(ufaceDev.getId()); ufaceDevMapper.deleteById(ufaceDev.getId());
projectUfaceConfigService.deleteUfaceDev(ufaceDev); projectUfaceConfigService.deleteUfaceDev(ufaceDev);
} }
} }
//删除配置 //删除配置
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
projectUfaceConfigService.remove(queryWrapper); projectUfaceConfigService.remove(queryWrapper);
} }
@ -114,57 +113,57 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
} }
@Override @Override
public Map<String, Object> selectUfaceDevStatisticsList(Map<String, Object> map) { public Map<String, Object> selectUfaceDevStatisticsList(Map<String, Object> map) {
Map<String, Object> data=new HashMap<>(); Map<String, Object> data = new HashMap<>();
//查询设备列表 //查询设备列表
List<EntityMap> devList=ufaceDevMapper.selectUfaceDevList(map); List<EntityMap> devList = ufaceDevMapper.selectUfaceDevList(map);
int totalDevOnlineNum=0; int totalDevOnlineNum = 0;
int totalInTotalNum=0; int totalInTotalNum = 0;
int totalOutTotalNum=0; int totalOutTotalNum = 0;
if(devList!=null&&devList.size()>0){ if (devList != null && devList.size() > 0) {
//查询进出考勤 //查询进出考勤
List<Map<String, Object>> attendanceList=workerAttendanceMapper.selectUfaceDevWorkerAttendanceCount(map); List<Map<String, Object>> attendanceList = workerAttendanceMapper.selectUfaceDevWorkerAttendanceCount(map);
for(EntityMap dev:devList){ for (EntityMap dev : devList) {
if("1".equals(MapUtils.getString(dev,"deviceState"))){ if ("1".equals(MapUtils.getString(dev, "deviceState"))) {
totalDevOnlineNum++; totalDevOnlineNum++;
} }
//取出进出次数 //取出进出次数
Integer inTotalNum=0; Integer inTotalNum = 0;
Integer outTotalNum=0; Integer outTotalNum = 0;
if(attendanceList!=null&&attendanceList.size()>0){ if (attendanceList != null && attendanceList.size() > 0) {
for(Map<String, Object> count:attendanceList){ for (Map<String, Object> count : attendanceList) {
if(MapUtils.getString(dev,"devSn").equals(MapUtils.getString(count,"devSn"))){ if (MapUtils.getString(dev, "devSn").equals(MapUtils.getString(count, "devSn"))) {
inTotalNum=MapUtils.getInteger(count,"inTotalNum"); inTotalNum = MapUtils.getInteger(count, "inTotalNum");
outTotalNum=MapUtils.getInteger(count,"outTotalNum"); outTotalNum = MapUtils.getInteger(count, "outTotalNum");
} }
} }
} }
dev.put("in_total_num",inTotalNum); dev.put("in_total_num", inTotalNum);
dev.put("out_total_num",outTotalNum); dev.put("out_total_num", outTotalNum);
} }
} }
data.put("totalDevNum",devList.size()); data.put("totalDevNum", devList.size());
data.put("totalDevOnlineNum",totalDevOnlineNum); data.put("totalDevOnlineNum", totalDevOnlineNum);
data.put("totalInTotalNum",totalInTotalNum); data.put("totalInTotalNum", totalInTotalNum);
data.put("totalOutTotalNum",totalOutTotalNum); data.put("totalOutTotalNum", totalOutTotalNum);
data.put("devList",devList); data.put("devList", devList);
return data; return data;
} }
@Override @Override
public void sendBatchWokerDev(Map<String, Object> map) { public void sendBatchWokerDev(Map<String, Object> map) {
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, MapUtils.getString(map,"projectSn")); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, MapUtils.getString(map, "projectSn"));
ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigService.getOne(queryWrapper); ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigService.getOne(queryWrapper);
if(tempProjectUfaceConfig!=null&&tempProjectUfaceConfig.getIssueDev()==1){ if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map,"projectSn")); qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map, "projectSn"));
List<UfaceDev> list=ufaceDevMapper.selectList(qw); List<UfaceDev> list = ufaceDevMapper.selectList(qw);
if(list==null||list.size()==0){ if (list == null || list.size() == 0) {
throw new OpenAlertException("请先添加设备"); throw new OpenAlertException("请先添加设备");
} }
asyncWorker.sendBatchWokerDev(map,tempProjectUfaceConfig,list); asyncWorker.sendBatchWokerDev(map, tempProjectUfaceConfig, list);
}else{ } else {
throw new OpenAlertException("项目配置不下发设备或未配置参数"); throw new OpenAlertException("项目配置不下发设备或未配置参数");
} }
@ -172,34 +171,34 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override @Override
public void retryAttendance(String projectSn, String startTime, String endTime, String personGuid) { public void retryAttendance(String projectSn, String startTime, String endTime, String personGuid) {
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigService.getOne(queryWrapper); ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigService.getOne(queryWrapper);
if(tempProjectUfaceConfig!=null&&tempProjectUfaceConfig.getIssueDev()==1){ if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
QueryWrapper<UfaceDev> qw =new QueryWrapper<>(); QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn, projectSn); qw.lambda().eq(UfaceDev::getProjectSn, projectSn);
List<UfaceDev> list=ufaceDevMapper.selectList(qw); List<UfaceDev> list = ufaceDevMapper.selectList(qw);
if(list==null||list.size()==0){ if (list == null || list.size() == 0) {
throw new OpenAlertException("项目下无人脸设备"); throw new OpenAlertException("项目下无人脸设备");
} }
List<String> devList=new ArrayList<>(); List<String> devList = new ArrayList<>();
for(UfaceDev dev:list){ for (UfaceDev dev : list) {
devList.add(dev.getDevSn()); devList.add(dev.getDevSn());
} }
UniUbiUtil.retryAttendance(tempProjectUfaceConfig.getAppId(),tempProjectUfaceConfig.getAppKey(),tempProjectUfaceConfig.getAppSecret(),devList,startTime,endTime,personGuid); UniUbiUtil.retryAttendance(tempProjectUfaceConfig.getAppId(), tempProjectUfaceConfig.getAppKey(), tempProjectUfaceConfig.getAppSecret(), devList, startTime, endTime, personGuid);
}else{ } else {
throw new OpenAlertException("项目配置不下发设备或未配置参数"); throw new OpenAlertException("项目配置不下发设备或未配置参数");
} }
} }
@Override @Override
public void retryNewJxJAttendance(String projectSn, String startTime, String endTime, String idcard) { public void retryNewJxJAttendance(String projectSn, String startTime, String endTime, String idcard) {
QueryWrapper<ProjectUfaceConfig> queryWrapper =new QueryWrapper<>(); QueryWrapper<ProjectUfaceConfig> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, projectSn);
ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigService.getOne(queryWrapper); ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigService.getOne(queryWrapper);
if(tempProjectUfaceConfig!=null&&tempProjectUfaceConfig.getIssueDev()==1){ if (tempProjectUfaceConfig != null && tempProjectUfaceConfig.getIssueDev() == 1) {
JxjNewUfaceDevUtil.retransmitPersonAttendanceData(startTime,endTime,projectSn,idcard,tempProjectUfaceConfig); JxjNewUfaceDevUtil.retransmitPersonAttendanceData(startTime, endTime, projectSn, idcard, tempProjectUfaceConfig);
}else{ } else {
throw new OpenAlertException("项目配置不下发设备或未配置参数"); throw new OpenAlertException("项目配置不下发设备或未配置参数");
} }
} }