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
public Map<String, Object> getCompanyType(Map<String, Object> map) {
// companyType > 1总部2区域3城市4一个项目5项目部
QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Company::getCompanySn, MapUtils.getString(map, "sn"));
Company tempCompany = companyMapper.selectOne(queryWrapper);

View File

@ -1,18 +1,18 @@
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 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: 人脸设备
* @author pds
@ -25,51 +25,75 @@ import io.swagger.annotations.ApiModelProperty;
public class UfaceDev implements Serializable {
private static final long serialVersionUID = 1L;
/**uface设备表*/
/**
* uface设备表
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "uface设备表")
private java.lang.Long id;
/**设备IP*/
/**
* 设备IP
*/
@Excel(name = "设备IP", width = 15)
@ApiModelProperty(value = "设备IP")
private java.lang.String devIp;
/**设备端口*/
/**
* 设备端口
*/
@Excel(name = "设备端口", width = 15)
@ApiModelProperty(value = "设备端口")
private java.lang.String devPort;
/**设备唯一标识*/
/**
* 设备唯一标识
*/
@Excel(name = "设备唯一标识", width = 15)
@ApiModelProperty(value = "设备唯一标识")
private java.lang.String devSn;
/**设备密码*/
/**
* 设备密码
*/
@Excel(name = "设备密码", width = 15)
@ApiModelProperty(value = "设备密码")
private java.lang.String password;
/**设备名称*/
/**
* 设备名称
*/
@Excel(name = "设备名称", width = 15)
@ApiModelProperty(value = "设备名称")
private java.lang.String devName;
/**项目sn*/
/**
* 项目sn
*/
@Excel(name = "项目sn", width = 15)
@ApiModelProperty(value = "项目sn")
private java.lang.String projectSn;
/**是否启用通行进口0否1是*/
/**
* 是否启用通行进口0否1是
*/
@Excel(name = "是否启用通行进口0否1是", width = 15)
@ApiModelProperty(value = "是否启用通行进口0否1是")
private java.lang.Integer isEnter;
/**进时间段0-23*/
/**
* 进时间段0-23
*/
@Excel(name = "进时间段0-23", width = 15)
@ApiModelProperty(value = "进时间段0-23")
private java.lang.String enterTime;
/**是否启用通行出口0否1是*/
/**
* 是否启用通行出口0否1是
*/
@Excel(name = "是否启用通行出口0否1是", width = 15)
@ApiModelProperty(value = "是否启用通行出口0否1是")
private java.lang.Integer isOut;
/**出时间段0-23*/
/**
* 出时间段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;
@ -80,11 +104,15 @@ public class UfaceDev implements Serializable {
@ApiModelProperty(value = "设备平台返回的Id")
private java.lang.String deviceId;
/**地图X坐标*/
/**
* 地图X坐标
*/
@Excel(name = "地图X坐标", width = 15)
@ApiModelProperty(value = "地图X坐标")
private java.lang.String mapX;
/**地图Y坐标*/
/**
* 地图Y坐标
*/
@Excel(name = "地图Y坐标", width = 15)
@ApiModelProperty(value = "地图Y坐标")
private java.lang.String mapY;
@ -95,13 +123,21 @@ public class UfaceDev implements Serializable {
@ApiModelProperty(value = "心跳时间30分钟没接收到实时数据表示设备离线")
private java.util.Date heartBeatTime;
/**创建时间*/
/**
* 创建时间
*/
@Excel(name = "创建时间", width = 15)
@ApiModelProperty(value = "创建时间")
private java.lang.String createTime;
/**设备位置归属1工地区2生活区3项目部*/
/**
* 设备位置归属1工地区2生活区3项目部
*/
@Excel(name = "设备位置归属1工地区2生活区3项目部", width = 15)
@ApiModelProperty(value = "设备位置归属1工地区2生活区3项目部")
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.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.xmgl.modules.worker.entity.UfaceDev;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
@ -33,4 +36,6 @@ public interface UfaceDevMapper extends BaseMapper<UfaceDev> {
List<EntityMap> selectUfaceDevList(Map<String, Object> map);
HashMap<String, Object> countUfaceDevOnOffline(String projectSn);
List<UfaceDev> getUfaceDevList(@Param(Constants.WRAPPER) QueryWrapper<UfaceDev> qw);
}

View File

@ -2,21 +2,24 @@
<!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">
<update id="updateDevHeartBeat">
UPDATE uface_dev SET heart_beat_time=now()
UPDATE uface_dev
SET heart_beat_time=now()
WHERE dev_sn = #{deviceSerial}
</update>
<select id="selectAllDevCount" resultType="java.util.Map">
SELECT project_sn projectSn,COUNT(1) devNum,
SUM((case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)&lt;=30 then 1 else 0 end)) devOnline
SELECT project_sn projectSn,
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
GROUP BY project_sn
</select>
<select id="selectCompanyUfaceDevCountStatistics" resultType="java.util.Map">
SELECT
IFNULL(SUM(IFNULL(d.totalDev,0)),0) totalDev,
IFNULL(SUM(IFNULL(d.devOnline,0)),0) devOnline,
IFNULL(SUM(IFNULL(d.totalDev,0)),0)-IFNULL(SUM(IFNULL(d.devOnline,0)),0) devNotOnline
SELECT IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) totalDev
, IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) devOnline
, IFNULL(SUM(IFNULL(d.totalDev, 0)), 0) - IFNULL(SUM(IFNULL(d.devOnline, 0)), 0) devNotOnline
<if test="companyType == '1'.toString()">
, a.company_name name
</if>
@ -32,16 +35,22 @@
<if test="companyType == '5'.toString()">
, c.project_name name
</if>
FROM company a LEFT JOIN company b ON b.parent_id=a.company_id
FROM company a
LEFT JOIN company b ON b.parent_id = a.company_id
LEFT JOIN company cp ON b.company_id = cp.parent_id
LEFT JOIN project c ON cp.company_sn = c.company_sn
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
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
GROUP BY project_sn
) d ON c.project_sn = d.project_sn
<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
</if>
<if test="companyType == '2'.toString()">
@ -62,7 +71,10 @@
order by totalDev desc
</select>
<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
where project_sn = #{projectSn}
<!--<if test="registerType == '2'.toString()">
@ -85,23 +97,43 @@
</if>
</select>
<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
where project_sn=#{projectSn} and dev_sn=#{devSn}
where project_sn = #{projectSn}
and dev_sn = #{devSn}
</select>
<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
where project_sn = #{projectSn}
</select>
<select id="countUfaceDevOnOffline" resultType="java.util.HashMap">
SELECT
count(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)<![CDATA[<=]]>30 then 1 else 0 end) as onlineNum,
count(case when round((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(heart_beat_time))/60)<![CDATA[>=]]>30 then 0 else 1 end) as offlineNum
FROM
`uface_dev`
WHERE
project_sn = #{sn}
SELECT count(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60)<![CDATA[ <=]]> 30
then 1
else 0 end) as onlineNum,
count(case
when round((UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(heart_beat_time)) / 60)<![CDATA[ >=]]> 30
then 0
else 1 end) as offlineNum
FROM `uface_dev`
WHERE project_sn = #{sn}
</select>
<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;
import com.baidubce.services.iotshc.model.deivce.DeviceInfo;
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.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncWorker;
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.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.service.IUfaceDevService;
import com.zhgd.xmgl.util.JxjNewUfaceDevUtil;
import com.zhgd.xmgl.util.MessageUtil;
import com.zhgd.xmgl.util.ReflectionUtil;
import com.zhgd.xmgl.util.UniUbiUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
@ -46,9 +44,10 @@ public class UfaceDevServiceImpl extends ServiceImpl<UfaceDevMapper, UfaceDev> i
@Override
public List<UfaceDev> getUfaceDevList(Map<String, Object> map) {
String alias = "ud.";
QueryWrapper<UfaceDev> qw = new QueryWrapper<>();
qw.lambda().eq(UfaceDev::getProjectSn, MapUtils.getString(map,"projectSn"));
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;
}