Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
entrance_api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王琮
entrance_api
Commits
2bd8fbde
Commit
2bd8fbde
authored
Mar 01, 2023
by
gaoyingwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改连续抓拍图片
parent
f62b2389
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
47 additions
and
6 deletions
+47
-6
DahuaVideoServiceImpl.java
...integration/video/Service/impl/DahuaVideoServiceImpl.java
+20
-3
CapturePicCallBack.java
.../rcisoft/integration/video/config/CapturePicCallBack.java
+9
-1
CapturePictureUtils.java
.../rcisoft/integration/video/utils/CapturePictureUtils.java
+1
-1
DoorDeviceInfo.java
...org/rcisoft/sys/doordeviceinfo/entity/DoorDeviceInfo.java
+8
-0
DoorDeviceInfoServiceImpl.java
...oordeviceinfo/service/impl/DoorDeviceInfoServiceImpl.java
+9
-1
No files found.
src/main/java/org/rcisoft/integration/video/Service/impl/DahuaVideoServiceImpl.java
View file @
2bd8fbde
...
...
@@ -6,6 +6,7 @@ import org.rcisoft.integration.video.Service.IDaHuaVideoService;
import
org.rcisoft.integration.video.common.VideoDeviceHandel
;
import
org.rcisoft.integration.video.config.CapturePicCallBack
;
import
org.rcisoft.integration.video.config.DaHuaVideoInitConfig
;
import
org.rcisoft.integration.video.lib.NetSDKLib
;
import
org.rcisoft.integration.video.utils.CapturePictureUtils
;
import
org.rcisoft.sys.doorreportdata.entity.DoorReportData
;
import
org.rcisoft.sys.doorvideodevice.entity.DoorVideoDevice
;
...
...
@@ -18,6 +19,9 @@ import org.springframework.transaction.annotation.Transactional;
import
java.io.File
;
import
java.util.Date
;
import
java.util.concurrent.TimeUnit
;
import
static
java
.
lang
.
Thread
.
sleep
;
/**
* 大华视频监控设备服务
...
...
@@ -48,7 +52,7 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
VideoDeviceHandel
handel
=
null
;
if
(!
DaHuaVideoInitConfig
.
videoDeviceMap
.
containsKey
(
0L
)){
String
deviceIp
=
"192.168.
1.199
"
;
String
deviceIp
=
"192.168.
42.225
"
;
int
devicePort
=
37777
;
String
deviceAccount
=
"admin"
;
String
deviceSign
=
"admin123"
;
...
...
@@ -59,7 +63,7 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
}
else
{
handel
=
DaHuaVideoInitConfig
.
videoDeviceMap
.
get
(
0
l
);
if
(
handel
.
isLoginStatus
()){
String
deviceIp
=
"192.168.
1.199
"
;
String
deviceIp
=
"192.168.
42.225
"
;
int
devicePort
=
37777
;
String
deviceAccount
=
"admin"
;
String
deviceSign
=
"admin123"
;
...
...
@@ -131,7 +135,20 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
String
picSavePath
=
"VIDEOPIC"
+
File
.
separator
+
CyDateUtil
.
getSimpleDate
(
"yyyyMMdd"
,
new
Date
());
CapturePicCallBack
callBack
=
new
CapturePicCallBack
(
basePath
,
picSavePath
,
reportData
);
CapturePictureUtils
.
setSnapRevCallBack
(
callBack
,
null
);
boolean
picture
=
CapturePictureUtils
.
remoteCapturePicture
(
handel
.
getDeviceLoginHandle
(),
0
);
boolean
picture
=
CapturePictureUtils
.
timerCapturePicture
(
handel
.
getDeviceLoginHandle
(),
0
);
NetSDKLib
.
LLong
llong
=
handel
.
getDeviceLoginHandle
();
//异步
new
Thread
(
new
Runnable
(){
@Override
public
void
run
()
{
try
{
TimeUnit
.
SECONDS
.
sleep
(
3
);
CapturePictureUtils
.
stopCapturePicture
(
llong
,
0
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}).
start
();
return
picture
;
}
}
src/main/java/org/rcisoft/integration/video/config/CapturePicCallBack.java
View file @
2bd8fbde
...
...
@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
import
com.alibaba.fastjson.JSONObject
;
import
com.sun.jna.Pointer
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.rcisoft.integration.video.lib.NetSDKLib
;
import
org.rcisoft.integration.video.utils.SpringBeanUtils
;
import
org.rcisoft.sys.doorreportdata.entity.DoorReportData
;
...
...
@@ -61,6 +62,7 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{
public
void
invoke
(
NetSDKLib
.
LLong
lLoginID
,
Pointer
pBuf
,
int
RevLen
,
int
EncodeType
,
int
CmdSerial
,
Pointer
dwUser
)
{
BufferedImage
bufferedImage
=
null
;
if
(
pBuf
!=
null
&&
RevLen
>
0
)
{
log
.
error
(
"抓图回调函数:"
+
lLoginID
+
" - "
+
pBuf
.
toString
()
+
" - "
+
RevLen
+
" - "
+
EncodeType
+
" - "
+
CmdSerial
);
String
savePicPath
=
basePath
+
File
.
separator
+
savePath
;
String
picFileName
=
IdUtil
.
simpleUUID
()+
".JPG"
;
if
(!
FileUtil
.
exist
(
savePicPath
)){
...
...
@@ -79,7 +81,13 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{
String
picRelativePath
=
savePath
+
File
.
separator
+
picFileName
;
picRelativePath
=
picRelativePath
.
replaceAll
(
"\\\\"
,
"/"
);
//转换文件的路径,从存储路径转换到访问路径
reportData
.
setCapturePic
(
picRelativePath
);
DoorReportData
data
=
doorReportDataService
.
findById
(
Long
.
valueOf
(
reportData
.
getBusinessId
()));
String
pic
=
null
;
if
(
StringUtils
.
isNotBlank
(
data
.
getCapturePic
())){
pic
=
data
.
getCapturePic
()
+
","
+
picRelativePath
;
}
else
pic
=
picRelativePath
;
reportData
.
setCapturePic
(
pic
);
reportData
.
setCaptureTime
(
new
Date
());
doorReportDataService
.
merge
(
reportData
);
}
catch
(
IOException
e
)
{
...
...
src/main/java/org/rcisoft/integration/video/utils/CapturePictureUtils.java
View file @
2bd8fbde
...
...
@@ -38,7 +38,7 @@ public class CapturePictureUtils {
* 定时抓图
*/
public
static
boolean
timerCapturePicture
(
NetSDKLib
.
LLong
m_hLoginHandle
,
int
chn
)
{
return
snapPicture
(
m_hLoginHandle
,
chn
,
1
,
2
);
return
snapPicture
(
m_hLoginHandle
,
chn
,
1
,
1
);
}
/**
...
...
src/main/java/org/rcisoft/sys/doordeviceinfo/entity/DoorDeviceInfo.java
View file @
2bd8fbde
...
...
@@ -11,6 +11,7 @@ import org.rcisoft.core.entity.CyIdNotDataEntity;
import
org.springframework.data.annotation.Transient
;
import
java.util.Date
;
import
java.util.List
;
/**
* Created with cy on 2022年12月23日 下午2:04:50.
...
...
@@ -142,5 +143,12 @@ public class DoorDeviceInfo extends CyIdIncreEntity<DoorDeviceInfo> {
@TableField
(
exist
=
false
)
private
String
dataVal
;
/**
* 抓拍图像list
*/
@Transient
@TableField
(
exist
=
false
)
private
List
<
String
>
capturePicList
;
}
src/main/java/org/rcisoft/sys/doordeviceinfo/service/impl/DoorDeviceInfoServiceImpl.java
View file @
2bd8fbde
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.apache.commons.lang3.StringUtils
;
import
org.rcisoft.core.util.CyUserUtil
;
import
org.rcisoft.core.aop.CyPageUtilAsp
;
import
org.rcisoft.core.model.CyPersistModel
;
...
...
@@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
org.rcisoft.core.model.CyPageInfo
;
import
java.util.Arrays
;
import
java.util.List
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -100,7 +102,13 @@ public class DoorDeviceInfoServiceImpl extends ServiceImpl<DoorDeviceInfoReposit
@Override
public
IPage
<
DoorDeviceInfo
>
findAllByPagination
(
CyPageInfo
<
DoorDeviceInfo
>
paginationUtility
,
DoorDeviceInfo
doorDeviceInfo
)
{
return
baseMapper
.
queryDoorDeviceInfosPaged
(
paginationUtility
,
doorDeviceInfo
);
IPage
<
DoorDeviceInfo
>
list
=
baseMapper
.
queryDoorDeviceInfosPaged
(
paginationUtility
,
doorDeviceInfo
);
for
(
DoorDeviceInfo
record
:
list
.
getRecords
())
{
if
(
StringUtils
.
isNotBlank
(
record
.
getCapturePic
())){
record
.
setCapturePicList
(
Arrays
.
stream
(
record
.
getCapturePic
().
split
(
","
)).
toList
());
}
}
return
list
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment