Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hzjtpushService
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
wangjinjing
hzjtpushService
Commits
a29ac058
Commit
a29ac058
authored
Apr 25, 2024
by
wangjinjing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
浅黄发布版本
parent
f03f4acb
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
385 additions
and
527 deletions
+385
-527
src/main/java/com/hzjt/config/ScheduleTaskConfig.java
src/main/java/com/hzjt/config/ScheduleTaskConfig.java
+38
-28
src/main/java/com/hzjt/controller/AlarmController.java
src/main/java/com/hzjt/controller/AlarmController.java
+11
-16
src/main/java/com/hzjt/controller/EventWriteController.java
src/main/java/com/hzjt/controller/EventWriteController.java
+28
-19
src/main/java/com/hzjt/controller/RouterController.java
src/main/java/com/hzjt/controller/RouterController.java
+9
-17
src/main/java/com/hzjt/controller/TraffController.java
src/main/java/com/hzjt/controller/TraffController.java
+33
-97
src/main/java/com/hzjt/controller/TraffdevicewriteresultController.java
...com/hzjt/controller/TraffdevicewriteresultController.java
+11
-12
src/main/java/com/hzjt/domain/TransferResult.java
src/main/java/com/hzjt/domain/TransferResult.java
+16
-16
src/main/java/com/hzjt/handler/FileTransferManager.java
src/main/java/com/hzjt/handler/FileTransferManager.java
+147
-162
src/main/java/com/hzjt/mapper/TraffAlarmRecordMapper.java
src/main/java/com/hzjt/mapper/TraffAlarmRecordMapper.java
+5
-0
src/main/java/com/hzjt/redis/Receiver.java
src/main/java/com/hzjt/redis/Receiver.java
+45
-126
src/main/java/com/hzjt/service/TraffalarmrecordService.java
src/main/java/com/hzjt/service/TraffalarmrecordService.java
+3
-1
src/main/java/com/hzjt/util/FTPUtil.java
src/main/java/com/hzjt/util/FTPUtil.java
+33
-33
src/main/resources/mapper/Traffalarmrecord.xml
src/main/resources/mapper/Traffalarmrecord.xml
+6
-0
No files found.
src/main/java/com/hzjt/config/ScheduleTaskConfig.java
View file @
a29ac058
package
com
.
hzjt
.
config
;
import
cn.hutool.json.JSONUtil
;
import
com.hzjt.domain.*
;
import
com.hzjt.handler.FileTransferManager
;
import
com.hzjt.handler.WebSocket
;
import
com.hzjt.mapper.SbtdspsrMapper
;
import
com.hzjt.mapper.TraffAlarmRecordMapper
;
import
com.hzjt.service.FtpService
;
import
com.hzjt.service.TraffFlowService
;
import
com.hzjt.service.TraffalarmrecordService
;
import
com.hzjt.util.DateUtils
;
import
com.hzjt.util.JsonUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -20,13 +26,16 @@ import org.springframework.web.client.RestTemplate;
import
javax.annotation.Resource
;
import
java.net.URI
;
import
java.util.Calendar
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.TimeUnit
;
@Slf4j
//
@Configuration
@Configuration
@EnableScheduling
public
class
ScheduleTaskConfig
{
@Autowired
...
...
@@ -36,40 +45,41 @@ public class ScheduleTaskConfig {
TraffalarmrecordService
traffalarmrecordService
;
@Autowired
private
RestTemplate
restTemplate
;
@Autowired
FtpService
ftpService
;
// @Scheduled(cron = "0 */1 * * * ?")//每天凌晨2点执行
private
void
statis
()
{
// //取帧
// HttpHeaders headers = new HttpHeaders();
// headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
// RTSPFrame result = restTemplate.getForObject(rtspformUrl, RTSPFrame.class);
// if(result.getRet()==0)
// {
// //获取成功
//
// result.getUrl();
//
//
//
// }
//查询监控是否存在
//查询rtsp 多线程进行图片抽取,并记录表中,ftp 上传到服务器,路径返回表中
@Resource
TraffAlarmRecordMapper
traffAlarmRecordMapper
;
@Scheduled
(
cron
=
"0 0/50 * * * ?"
)
//间隔50分钟
private
void
statis
()
{
// 查询30分钟之前的所有没有上传成功的事件进行二次上传
List
<
Traffalarmrecord
>
list
=
traffalarmrecordService
.
selectFailRecord
();
if
(
list
.
size
()>
0
)
{
Ftp
ftp
=
this
.
ftpService
.
reloadFtp
();
for
(
Traffalarmrecord
traffAlarmRecord
:
list
)
{
String
basepath
=
traffAlarmRecord
.
getFdid
()
+
(
traffAlarmRecord
.
getChannelid
()
<
10
?
"0"
+
traffAlarmRecord
.
getChannelid
()
:
traffAlarmRecord
.
getChannelid
())
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
Map
<
String
,
Object
>
transferRecordMap
=
new
HashMap
();
FileTransferManager
.
fetchUrlsFromRecord
(
traffAlarmRecord
,
transferRecordMap
);
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
try
{
fileTransferManager
.
transferFile
(
transferRecordMap
,
ftp
,
basepath
,
this
.
traffAlarmRecordMapper
);
}
catch
(
Exception
e
)
{
log
.
error
(
"alarmevent error :{}"
,
e
.
toString
());
}
traffAlarmRecord
.
setPushdesc
(
"success"
);
traffAlarmRecord
.
setPushstatus
(
0
);
this
.
traffAlarmRecordMapper
.
updatePushEvent
(
traffAlarmRecord
);
}
}
}
// @Scheduled(cron = "0 */1 * * * ?")//每一个月执行一次
// @Scheduled(cron = "0 */1 * * * ?")//每一个月执行一次
private
void
reconnectWebsocket
()
{
final
Calendar
c
=
Calendar
.
getInstance
();
...
...
src/main/java/com/hzjt/controller/AlarmController.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
controller
;
...
...
@@ -10,7 +14,6 @@ import com.hzjt.domain.ResponseEnum;
import
com.hzjt.domain.Result
;
import
com.hzjt.domain.Sbtdspsr
;
import
com.hzjt.domain.Traffalarmrecord
;
import
com.hzjt.domain.TransferResult
;
import
com.hzjt.handler.FileTransferManager
;
import
com.hzjt.handler.WebSocket
;
import
com.hzjt.mapper.SbtdspsrMapper
;
...
...
@@ -27,6 +30,7 @@ import java.util.HashMap;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
javax.annotation.Resource
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -35,8 +39,6 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
@RestController
public
class
AlarmController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
TraffController
.
class
);
...
...
@@ -51,8 +53,7 @@ public class AlarmController {
@Resource
SbtdspsrMapper
sbtdspsrMapper
;
public
AlarmController
(
)
{
public
AlarmController
()
{
}
@PostMapping
({
"/sendAlarmEvents"
})
...
...
@@ -110,34 +111,28 @@ public class AlarmController {
map
.
put
(
"type"
,
"alarm"
);
traffAlarmRecord_init
.
setEventid
(
"66211"
+
UUIDUtils
.
createuuid
());
this
.
traffAlarmRecordMapper
.
inserTraffAlarmRecord
(
traffAlarmRecord_init
);
map
.
put
(
"data"
,
alarm
);
map
.
put
(
"recordid"
,
traffAlarmRecord_init
.
getRecordid
());
this
.
webSocket
.
GroupSending
(
JsonUtil
.
beanToString
(
map
));
try
{
Traffalarmrecord
traffAlarmRecord
=
JSONUtil
.
toBean
(
JsonUtil
.
beanToString
(
traffAlarmRecord_init
),
Traffalarmrecord
.
class
);
Traffalarmrecord
traffAlarmRecord
=
(
Traffalarmrecord
)
JSONUtil
.
toBean
(
JsonUtil
.
beanToString
(
traffAlarmRecord_init
),
Traffalarmrecord
.
class
);
String
basepath
=
traffAlarmRecord
.
getFdid
()
+
(
traffAlarmRecord
.
getChannelid
()
<
10
?
"0"
+
traffAlarmRecord
.
getChannelid
()
:
traffAlarmRecord
.
getChannelid
())
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
Map
<
String
,
Object
>
transferRecordMap
=
new
HashMap
();
FileTransferManager
.
fetchUrlsFromRecord
(
traffAlarmRecord
,
transferRecordMap
);
Ftp
ftp
=
this
.
ftpService
.
reloadFtp
();
List
<
TransferResult
>
results
=
FileTransferManager
.
transferFileIncludVideo
(
transferRecordMap
,
ftp
,
basepath
);
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
fileTransferManager
.
traffAlarmRecordUrlUpdate
(
results
,
traffAlarmRecordMapper
);
log
.
info
(
"traffAlarmRecord=={}"
,
traffAlarmRecord
.
getRecordid
());
// this.traffAlarmRecordMapper.updateTraffAlarmRecordUrl(recordBak);
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
fileTransferManager
.
transferFileIncludVideo
(
transferRecordMap
,
ftp
,
basepath
,
this
.
traffAlarmRecordMapper
);
traffAlarmRecord
.
setPushdesc
(
"success"
);
traffAlarmRecord
.
setPushstatus
(
0
);
this
.
traffAlarmRecordMapper
.
updatePushEvent
(
traffAlarmRecord
);
result
.
setSuccess
(
true
);
}
catch
(
Exception
var1
8
)
{
}
catch
(
Exception
var1
9
)
{
result
.
setSuccess
(
false
);
log
.
error
(
"alarmevent error :{}"
,
var1
8
.
toString
());
log
.
error
(
"alarmevent error :{}"
,
var1
9
.
toString
());
}
return
result
;
}
}
}
src/main/java/com/hzjt/controller/EventWriteController.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
controller
;
import
com.hzjt.domain.ResultObj
;
import
com.hzjt.domain.Traffalarmrecord
;
import
com.hzjt.domain.WriteResultObj
;
import
com.hzjt.service.EventWriteService
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
@RestController
public
class
EventWriteController
{
@Autowired
private
EventWriteService
eventWriteService
;
public
EventWriteController
()
{
}
@PostMapping
(
"/sendEvent"
)
public
ResultObj
sendEvent
(
Long
recordid
){
return
eventWriteService
.
sendEvent
(
recordid
);
@PostMapping
(
{
"/sendEvent"
}
)
public
ResultObj
sendEvent
(
Long
recordid
)
{
return
this
.
eventWriteService
.
sendEvent
(
recordid
);
}
@PostMapping
(
"/sendEvents"
)
public
List
<
WriteResultObj
>
sendEvents
(
@RequestParam
(
"recordid"
)
String
recordid
){
List
<
Long
>
longrecorid
=
new
ArrayList
<>();
for
(
String
id:
recordid
.
split
(
","
))
{
@PostMapping
({
"/sendEvents"
})
public
List
<
WriteResultObj
>
sendEvents
(
@RequestParam
(
"recordid"
)
String
recordid
)
{
List
<
Long
>
longrecorid
=
new
ArrayList
();
String
[]
var3
=
recordid
.
split
(
","
);
int
var4
=
var3
.
length
;
for
(
int
var5
=
0
;
var5
<
var4
;
++
var5
)
{
String
id
=
var3
[
var5
];
longrecorid
.
add
(
Long
.
valueOf
(
id
));
}
return
eventWriteService
.
sendEvents
(
longrecorid
);
return
this
.
eventWriteService
.
sendEvents
(
longrecorid
);
}
@GetMapping
(
"/sendEventsByids"
)
public
List
<
WriteResultObj
>
sendEventsByids
(){
List
<
Long
>
recordid
=
new
ArrayList
<>
();
recordid
.
add
(
Long
.
valueOf
(
93228
)
);
recordid
.
add
(
Long
.
valueOf
(
93834
)
);
return
eventWriteService
.
sendEvents
(
recordid
);
@GetMapping
(
{
"/sendEventsByids"
}
)
public
List
<
WriteResultObj
>
sendEventsByids
()
{
List
<
Long
>
recordid
=
new
ArrayList
();
recordid
.
add
(
93228L
);
recordid
.
add
(
93834L
);
return
this
.
eventWriteService
.
sendEvents
(
recordid
);
}
}
src/main/java/com/hzjt/controller/RouterController.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
controller
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.
*
;
import
org.springframework.web.bind.annotation.
GetMapping
;
/**
* 路由接口控制器
*
* @author tycoding
* @date 2019-06-13
*/
@Controller
public
class
RouterController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
TraffController
.
class
);
@Autowired
private
StringRedisTemplate
redisTemplate
;
public
RouterController
()
{
}
/**
* 登陆页面
*
* @return
*/
@GetMapping
(
"/"
)
@GetMapping
({
"/"
})
public
String
index
()
{
return
"login"
;
}
}
src/main/java/com/hzjt/controller/TraffController.java
View file @
a29ac058
...
...
@@ -16,7 +16,6 @@ import com.hzjt.domain.ResponseEnum;
import
com.hzjt.domain.ResultObj
;
import
com.hzjt.domain.Sbtdspsr
;
import
com.hzjt.domain.Traffalarmrecord
;
import
com.hzjt.domain.TransferResult
;
import
com.hzjt.handler.FileTransferManager
;
import
com.hzjt.handler.WebSocket
;
import
com.hzjt.mapper.SbtdspsrMapper
;
...
...
@@ -33,11 +32,9 @@ import com.hzjt.util.StringEnum;
import
com.hzjt.util.TraffAlarmRecordFromImgEnum
;
import
com.hzjt.util.TraffAlarmRecordImgEnum
;
import
com.hzjt.util.UUIDUtils
;
import
java.io.BufferedInputStream
;
import
java.io.Closeable
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.io.PrintWriter
;
...
...
@@ -50,14 +47,10 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.tomcat.util.http.fileupload.IOUtils
;
import
org.slf4j.Logger
;
...
...
@@ -119,10 +112,8 @@ public class TraffController {
String
manualStatus
=
"0"
;
private
static
final
String
TYPE
=
"TRAFFIC_INCIDENT_ALARM"
;
@Autowired
public
TraffController
(
@Value
(
"${port}"
)
String
port
,
@Value
(
"${message.dept}"
)
String
dept
,
@Value
(
"${message.rate}"
)
Integer
rate
,
SbtdspsrMapper
sbtdspsrMapper
)
{
public
TraffController
(
@Value
(
"${port}"
)
String
port
,
@Value
(
"${message.dept}"
)
String
dept
,
@Value
(
"${message.rate}"
)
Integer
rate
,
SbtdspsrMapper
sbtdspsrMapper
)
{
this
.
port
=
port
;
this
.
rate
=
rate
;
this
.
dept
=
dept
.
substring
(
0
,
5
);
...
...
@@ -157,7 +148,7 @@ public class TraffController {
log
.
info
(
"设备为:"
+
videoId
+
",通道为:"
+
tdbh
+
"未录入(备案)"
);
return
ResultObj
.
error
(
ResponseEnum
.
E_1002
.
getCode
(),
"设备为:"
+
videoId
+
",通道为:"
+
tdbh
+
"未录入(备案)"
);
}
else
{
String
xzbh
=
((
Sbtdspsr
)
sbtdspsrs
.
get
(
0
)).
getXzbh
();
String
xzbh
=
((
Sbtdspsr
)
sbtdspsrs
.
get
(
0
)).
getXzbh
();
if
(
xzbh
.
length
()
!=
12
)
{
log
.
info
(
"设备为:"
+
videoId
+
",通道为:"
+
tdbh
+
"配置的行政区划"
+
xzbh
+
"不合规"
);
return
ResultObj
.
error
(
ResponseEnum
.
E_1002
.
getCode
(),
"设备为:"
+
videoId
+
",通道为:"
+
tdbh
+
"配置的行政区划不合规"
);
...
...
@@ -165,9 +156,9 @@ public class TraffController {
trffClientMessage
.
setDept
(
xzbh
);
try
{
this
.
sendevent
(
trffClientMessage
,
(
Sbtdspsr
)
sbtdspsrs
.
get
(
0
));
}
catch
(
Exception
var
9
)
{
log
.
error
(
"MessageController receive putData error:{}"
,
var
9
.
toString
());
this
.
sendevent
(
trffClientMessage
,
(
Sbtdspsr
)
sbtdspsrs
.
get
(
0
));
}
catch
(
Exception
var
8
)
{
log
.
error
(
"MessageController receive putData error:{}"
,
var
8
.
toString
());
}
return
ResultObj
.
ok
(
trffClientMessage
);
...
...
@@ -196,18 +187,18 @@ public class TraffController {
Ftp
ftp
=
this
.
ftpService
.
reloadFtp
();
String
basepath
;
for
(
int
i
=
0
;
i
<
imgBase64List
.
size
();
++
i
)
{
for
(
int
i
=
0
;
i
<
imgBase64List
.
size
();
++
i
)
{
String
path
=
trffClientMessage
.
getVideo_id
()
+
(
traffAlarmRecord_init
.
getChannelid
()
<
10
?
"0"
+
traffAlarmRecord_init
.
getChannelid
()
:
traffAlarmRecord_init
.
getChannelid
())
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
basepath
=
UUIDUtils
.
createuuid
()
+
".jpg"
;
if
(
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
path
,
basepath
,
(
String
)
imgBase64List
.
get
(
i
)))
{
if
(
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
path
,
basepath
,
(
String
)
imgBase64List
.
get
(
i
)))
{
TraffAlarmRecordImgEnum
.
valueOf
(
imgEnumHead
+
i
).
setImg
(
traffAlarmRecord_init
,
path
+
"/"
+
basepath
);
}
}
List
<
String
>
imgUrls
=
trffClientMessage
.
getImg_urls
();
for
(
int
j
=
0
;
j
<
imgUrls
.
size
();
++
j
)
{
TraffAlarmRecordFromImgEnum
.
valueOf
(
imgEnumHead
+
j
).
setImg
(
traffAlarmRecord_init
,
(
String
)
imgUrls
.
get
(
j
));
for
(
int
j
=
0
;
j
<
imgUrls
.
size
();
++
j
)
{
TraffAlarmRecordFromImgEnum
.
valueOf
(
imgEnumHead
+
j
).
setImg
(
traffAlarmRecord_init
,
(
String
)
imgUrls
.
get
(
j
));
}
if
(
StringEnum
.
ONE
.
getValue
().
equals
(
this
.
checkEnable
))
{
...
...
@@ -223,76 +214,21 @@ public class TraffController {
this
.
webSocket
.
GroupSending
(
JsonUtil
.
beanToString
(
map
));
try
{
Traffalarmrecord
traffAlarmRecord
=
JSONUtil
.
toBean
(
JsonUtil
.
beanToString
(
traffAlarmRecord_init
),
Traffalarmrecord
.
class
);
Traffalarmrecord
traffAlarmRecord
=
(
Traffalarmrecord
)
JSONUtil
.
toBean
(
JsonUtil
.
beanToString
(
traffAlarmRecord_init
),
Traffalarmrecord
.
class
);
basepath
=
traffAlarmRecord
.
getFdid
()
+
(
traffAlarmRecord
.
getChannelid
()
<
10
?
"0"
+
traffAlarmRecord
.
getChannelid
()
:
traffAlarmRecord
.
getChannelid
())
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
Map
<
String
,
Object
>
transferRecordMap
=
new
HashMap
();
FileTransferManager
.
fetchUrlsFromRecord
(
traffAlarmRecord
,
transferRecordMap
);
Map
<
String
,
Object
>
transferRecordMap2
=
JSONUtil
.
toBean
(
JsonUtil
.
beanToString
(
transferRecordMap
),
Map
.
class
);
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
List
<
TransferResult
>
results
=
fileTransferManager
.
transferFile
(
transferRecordMap2
,
ftp
,
basepath
,
traffAlarmRecordMapper
);
log
.
info
(
"recordBakzkresults====={}"
,
JsonUtil
.
beanToString
(
results
));
fileTransferManager
.
traffAlarmRecordUrlUpdate
(
results
,
traffAlarmRecordMapper
);
// log.info("recordBakzk====={}", JsonUtil.beanToString(recordBak));
// if (recordBak != null && recordBak.getRecordid() != null) {
// this.traffAlarmRecordMapper.updateTraffAlarmRecordUrl(recordBak);
// }
//取视频流
// if ((null != recordBak.getVideourlfrom() && !"".equalsIgnoreCase(recordBak.getVideourlfrom()))) {
// Traffalarmrecord record = new Traffalarmrecord();
// record.setRecordid(recordBak.getRecordid());
// String url = recordBak.getVideourlfrom();
// record.setVideopath(recordBak.getVideopath());
// log.info("url:{}", url);
// log.info("bathpath:{}", recordBak.getVideopath());
// this.schedulepool.schedule(() -> {
// try {
// HttpURLConnection connection = (HttpURLConnection) (new URL(url)).openConnection();
// connection.setReadTimeout(2000);
// connection.setConnectTimeout(3000);
// connection.setRequestMethod("GET");
// if (connection.getResponseCode() == 200) {
// InputStream inputStream = connection.getInputStream();
//// log.info("url:{}", url);
// String pname = DateUtils.formatCurrDayNoSign() + "_" + record.getRecordid() + "_0000_video";
// String fileName = pname + ".mp4";
// String ftputl = record.getVideopath() + "/" + fileName;
// if (record.getVideopath().indexOf("/") > -1) {
// boolean r = FTPUtil.uploadFile(ftp, "gstraff/" + recordBak.getVideopath(), fileName, inputStream);
//
// if (r) {
// record.setVideopath(ftputl);
// log.info("video:{} upload success:", ftputl);
// } else {
// log.info("video:{} upload fail:", url);
// record.setVideopath("");
// }
// }
// } else {
// log.info("video:{} upload fail:", url);
// record.setVideopath("");
// }
// } catch (IOException var11) {
// log.error(var11.toString());
// record.setVideopath("");
// return 0;
// } finally {
// this.traffAlarmRecordMapper.updateTraffAlarmRecordUrl(record);
// }
// return 1;
//
// }, 50L, TimeUnit.SECONDS);
// }
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
fileTransferManager
.
transferFile
(
transferRecordMap
,
ftp
,
basepath
,
this
.
traffAlarmRecordMapper
);
traffAlarmRecord
.
setPushdesc
(
"success"
);
traffAlarmRecord
.
setPushstatus
(
0
);
this
.
traffAlarmRecordMapper
.
updatePushEvent
(
traffAlarmRecord
);
}
catch
(
Exception
var1
6
)
{
log
.
error
(
"alarmevent error :{}"
,
var1
6
.
toString
());
}
catch
(
Exception
var1
3
)
{
log
.
error
(
"alarmevent error :{}"
,
var1
3
.
toString
());
}
}
private
void
sendtomqtt
(
Alarm
trffClientMessage
,
String
wbbh
,
Traffalarmrecord
traffAlarmRecord
)
{
log
.
info
(
"sendtomqtt"
);
if
(
null
!=
wbbh
&&
!
""
.
equals
(
wbbh
))
{
...
...
@@ -305,10 +241,10 @@ public class TraffController {
mqttalarm
.
setDeviceId
(
wbbh
);
log
.
info
(
"mqtt data1:{}"
,
JsonUtil
.
beanToString
(
mqttalarm
));
if
(
null
!=
trffClientMessage
.
getObj_location
())
{
mqttalarm
.
setX
(
trffClientMessage
.
getObj_location
().
get
(
"x"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"x"
)).
toString
());
mqttalarm
.
setY
(
trffClientMessage
.
getObj_location
().
get
(
"y"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"y"
)).
toString
());
mqttalarm
.
setWidth
(
trffClientMessage
.
getObj_location
().
get
(
"width"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"width"
)).
toString
());
mqttalarm
.
setHeight
(
trffClientMessage
.
getObj_location
().
get
(
"height"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"height"
)).
toString
());
mqttalarm
.
setX
(
trffClientMessage
.
getObj_location
().
get
(
"x"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"x"
)).
toString
());
mqttalarm
.
setY
(
trffClientMessage
.
getObj_location
().
get
(
"y"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"y"
)).
toString
());
mqttalarm
.
setWidth
(
trffClientMessage
.
getObj_location
().
get
(
"width"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"width"
)).
toString
());
mqttalarm
.
setHeight
(
trffClientMessage
.
getObj_location
().
get
(
"height"
)
==
null
?
null
:
((
BigDecimal
)
trffClientMessage
.
getObj_location
().
get
(
"height"
)).
toString
());
}
mqttalarm
.
setEventTypeId
(
mqttbh
);
...
...
@@ -322,10 +258,10 @@ public class TraffController {
private
RateLimiter
getRateLimiter
(
String
videoId
)
{
RateLimiter
rateLimiter
;
if
(
this
.
rateLimiterMap
.
containsKey
(
videoId
))
{
rateLimiter
=
(
RateLimiter
)
this
.
rateLimiterMap
.
get
(
videoId
);
rateLimiter
=
(
RateLimiter
)
this
.
rateLimiterMap
.
get
(
videoId
);
}
else
{
RateLimiter
value
=
RateLimiter
.
create
((
double
)
this
.
rate
);
rateLimiter
=
(
RateLimiter
)
this
.
rateLimiterMap
.
putIfAbsent
(
videoId
,
value
);
RateLimiter
value
=
RateLimiter
.
create
((
double
)
this
.
rate
);
rateLimiter
=
(
RateLimiter
)
this
.
rateLimiterMap
.
putIfAbsent
(
videoId
,
value
);
if
(
rateLimiter
==
null
)
{
rateLimiter
=
value
;
}
...
...
@@ -342,7 +278,7 @@ public class TraffController {
this
.
flvCacheService
.
getvalue
(
videoid
,
rtsp
);
}
JSONObject
jsonObject
=
JSONObject
.
parseObject
((
String
)
this
.
stringRedisTemplate
.
opsForValue
().
get
(
videoid
));
JSONObject
jsonObject
=
JSONObject
.
parseObject
((
String
)
this
.
stringRedisTemplate
.
opsForValue
().
get
(
videoid
));
if
(
null
!=
jsonObject
.
getJSONArray
(
"play_list"
)
&&
jsonObject
.
getJSONArray
(
"play_list"
).
size
()
>
0
)
{
return
String
.
valueOf
(
jsonObject
.
getJSONArray
(
"play_list"
).
get
(
0
));
}
...
...
@@ -354,7 +290,7 @@ public class TraffController {
@GetMapping
({
"/sendtouser/{recordid}"
})
@ResponseBody
public
Integer
sendtouser
(
@PathVariable
(
"recordid"
)
String
recordid
)
{
Traffalarmrecord
traffalarmrecord
=
(
Traffalarmrecord
)
this
.
traffAlarmRecordMapper
.
selectByPrimaryKey
(
recordid
);
Traffalarmrecord
traffalarmrecord
=
(
Traffalarmrecord
)
this
.
traffAlarmRecordMapper
.
selectByPrimaryKey
(
recordid
);
if
(
traffalarmrecord
==
null
)
{
return
0
;
}
else
{
...
...
@@ -475,17 +411,17 @@ public class TraffController {
FtpURLConnection
ftpUrl
=
null
;
HttpURLConnection
httpUrl
=
null
;
for
(
int
i
=
0
;
i
<
arr
.
length
;
++
i
)
{
for
(
int
i
=
0
;
i
<
arr
.
length
;
++
i
)
{
try
{
URL
url
=
new
URL
(
arr
[
i
]);
if
(
arr
[
i
].
toUpperCase
().
indexOf
(
"FTP"
)
!=
-
1
)
{
ftpUrl
=
(
FtpURLConnection
)
url
.
openConnection
();
ftpUrl
=
(
FtpURLConnection
)
url
.
openConnection
();
ftpUrl
.
setConnectTimeout
(
30000
);
ftpUrl
.
setReadTimeout
(
30000
);
bis
=
new
BufferedInputStream
(
ftpUrl
.
getInputStream
());
response
.
setContentLength
(
ftpUrl
.
getContentLength
());
}
else
{
httpUrl
=
(
HttpURLConnection
)
url
.
openConnection
();
httpUrl
=
(
HttpURLConnection
)
url
.
openConnection
();
httpUrl
.
setConnectTimeout
(
30000
);
httpUrl
.
setReadTimeout
(
30000
);
bis
=
new
BufferedInputStream
(
httpUrl
.
getInputStream
());
...
...
@@ -509,13 +445,13 @@ public class TraffController {
if
(
servletOutputStream
!=
null
)
{
servletOutputStream
.
close
();
}
}
catch
(
Exception
var2
9
)
{
}
catch
(
Exception
var2
8
)
{
response
.
setContentType
(
"text/html;charset=GBK"
);
response
.
setCharacterEncoding
(
"GBK"
);
PrintWriter
out
=
response
.
getWriter
();
out
.
write
(
"无法打开图片!"
);
out
.
flush
();
log
.
info
(
"ftpagent error "
+
ftpUrl
+
var2
9
.
toString
());
log
.
info
(
"ftpagent error "
+
ftpUrl
+
var2
8
.
toString
());
}
finally
{
if
(
bis
!=
null
)
{
bis
.
close
();
...
...
@@ -530,7 +466,7 @@ public class TraffController {
}
if
(
toClient
!=
null
)
{
((
OutputStream
)
toClient
).
close
();
((
OutputStream
)
toClient
).
close
();
}
}
...
...
@@ -538,12 +474,12 @@ public class TraffController {
return
;
}
}
catch
(
Exception
var3
1
)
{
}
catch
(
Exception
var3
0
)
{
}
finally
{
IOUtils
.
closeQuietly
(
bis
);
IOUtils
.
closeQuietly
((
Closeable
)
toClient
);
IOUtils
.
closeQuietly
((
Closeable
)
hFile
);
IOUtils
.
closeQuietly
((
Closeable
)
inputStream
);
IOUtils
.
closeQuietly
((
Closeable
)
toClient
);
IOUtils
.
closeQuietly
((
Closeable
)
hFile
);
IOUtils
.
closeQuietly
((
Closeable
)
inputStream
);
}
}
...
...
src/main/java/com/hzjt/controller/TraffdevicewriteresultController.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
controller
;
import
com.hzjt.domain.ResultObj
;
import
com.hzjt.service.TraffdevicewriteresultService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.lang.reflect.Array
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/traffdevicewriteresult"
)
@RequestMapping
(
{
"/traffdevicewriteresult"
}
)
public
class
TraffdevicewriteresultController
{
@Autowired
private
TraffdevicewriteresultService
traffdevicewriteresultService
;
}
\ No newline at end of file
public
TraffdevicewriteresultController
()
{
}
}
src/main/java/com/hzjt/domain/TransferResult.java
View file @
a29ac058
package
com
.
hzjt
.
domain
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
domain
;
public
class
TransferResult
{
Long
recordid
;
String
pathvalue
;
String
urlfrom
;
String
imgpath
;
Long
recordid
;
String
pathvalue
;
String
urlfrom
;
String
imgpath
;
String
filename
;
Boolean
result
;
...
...
@@ -34,7 +34,7 @@ public class TransferResult {
}
public
String
getFilename
()
{
return
filename
;
return
this
.
filename
;
}
public
void
setFilename
(
String
filename
)
{
...
...
@@ -42,7 +42,7 @@ public class TransferResult {
}
public
Long
getRecordid
()
{
return
recordid
;
return
this
.
recordid
;
}
public
void
setRecordid
(
Long
recordid
)
{
...
...
@@ -50,7 +50,7 @@ public class TransferResult {
}
public
String
getPathvalue
()
{
return
pathvalue
;
return
this
.
pathvalue
;
}
public
void
setPathvalue
(
String
pathvalue
)
{
...
...
@@ -58,7 +58,7 @@ public class TransferResult {
}
public
String
getUrlfrom
()
{
return
urlfrom
;
return
this
.
urlfrom
;
}
public
void
setUrlfrom
(
String
urlfrom
)
{
...
...
@@ -66,7 +66,7 @@ public class TransferResult {
}
public
String
getImgpath
()
{
return
imgpath
;
return
this
.
imgpath
;
}
public
void
setImgpath
(
String
imgpath
)
{
...
...
@@ -74,10 +74,10 @@ public class TransferResult {
}
public
Boolean
getResult
()
{
return
result
;
return
this
.
result
;
}
public
void
setResult
(
Boolean
result
)
{
this
.
result
=
result
;
}
}
\ No newline at end of file
}
src/main/java/com/hzjt/handler/FileTransferManager.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
handler
;
import
cn.hutool.json.JSONUtil
;
...
...
@@ -7,201 +12,154 @@ import com.hzjt.domain.TransferResult;
import
com.hzjt.mapper.TraffAlarmRecordMapper
;
import
com.hzjt.util.DateUtils
;
import
com.hzjt.util.FTPUtil
;
import
com.hzjt.util.JsonUtil
;
import
com.hzjt.util.ThreadPoolUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.*
;
import
java.util.concurrent.CompletionService
;
import
java.util.concurrent.ExecutorCompletionService
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
FileTransferManager
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
FileTransferManager
.
class
);
private
static
CompletionService
<
TransferResult
>
completionService
=
new
ExecutorCompletionService
(
ThreadPoolUtil
.
getPool
());
static
ScheduledExecutorService
schedulepool
=
Executors
.
newScheduledThreadPool
(
10
);
private
static
ExecutorService
executorService
=
Executors
.
newCachedThreadPool
();
private
static
CompletionService
<
TransferResult
>
completionService
=
new
ExecutorCompletionService
<
TransferResult
>(
ThreadPoolUtil
.
getPool
());
static
ScheduledExecutorService
schedulepool
=
Executors
.
newScheduledThreadPool
(
5
);
/**
* @param transferRecord
* @param ftp
* @param basePath
* @return
* @throws Exception
*/
public
List
<
TransferResult
>
transferFile
(
final
Map
<
String
,
Object
>
transferRecord
,
final
Ftp
ftp
,
final
String
basePath
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
Long
recordid
=
Long
.
parseLong
(
transferRecord
.
get
(
"recordid"
).
toString
());
int
count
=
0
;
Iterator
var5
=
transferRecord
.
keySet
().
iterator
();
while
(
true
)
{
String
key
;
do
{
if
(!
var5
.
hasNext
())
{
List
<
TransferResult
>
listret
=
new
ArrayList
();
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
listret
.
add
(
completionService
.
poll
(
4L
,
TimeUnit
.
SECONDS
).
get
());
}
return
listret
;
}
key
=
(
String
)
var5
.
next
();
}
while
(!
key
.
equals
(
"img1path"
)
&&
!
key
.
equals
(
"img2path"
)
&&
!
key
.
equals
(
"img3path"
)
&&
!
key
.
equals
(
"img4path"
)
&&
!
key
.
equals
(
"img5path"
)
&&
!
key
.
equals
(
"videopath"
));
public
FileTransferManager
()
{
}
String
url
=
transferRecord
.
get
(
key
).
toString
();
++
count
;
String
finalKey
=
key
;
completionService
.
submit
(()
->
{
public
void
transferFile
(
Map
<
String
,
Object
>
transferRecord
,
Ftp
ftp
,
String
basePath
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
executorService
.
execute
(()
->
{
Long
recordid
=
Long
.
parseLong
(
transferRecord
.
get
(
"recordid"
).
toString
());
Iterator
var5
=
transferRecord
.
keySet
().
iterator
();
while
(
var5
.
hasNext
())
{
String
finalKey
=
(
String
)
var5
.
next
();
log
.
info
(
"finalKey :{}"
,
finalKey
);
String
url
=
transferRecord
.
get
(
finalKey
).
toString
();
log
.
info
(
"recordid:{}"
,
recordid
);
TransferResult
result
=
new
TransferResult
(
recordid
,
finalKey
,
url
,
""
,
false
);
String
pname
=
DateUtils
.
formatCurrDayNoSign
()
+
"_"
+
recordid
+
"_0000_"
+
finalKey
.
replace
(
"path"
,
""
);
String
filesuff
=
"videopath"
.
equals
(
finalKey
)
?
".mp4"
:
".jpg"
;
String
fileName
=
pname
+
filesuff
;
String
ftputl
=
basePath
+
"/"
+
fileName
;
if
(
"videopath"
.
equals
(
finalKey
))
{
result
.
setUrlfrom
(
url
);
result
.
setImgpath
(
ftputl
);
result
.
setFilename
(
fileName
);
schedulepool
.
schedule
(()
->
{
Traffalarmrecord
record
=
new
Traffalarmrecord
();
Integer
var9
;
try
{
record
.
setRecordid
(
re
sult
.
getRecordid
()
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
(
new
URL
(
result
.
getUrlfrom
()
)).
openConnection
();
record
.
setRecordid
(
re
cordid
);
HttpURLConnection
connection
=
(
HttpURLConnection
)
(
new
URL
(
url
)).
openConnection
();
connection
.
setReadTimeout
(
2000
);
connection
.
setConnectTimeout
(
3000
);
connection
.
setRequestMethod
(
"GET"
);
log
.
info
(
"video record:{} upload fail:"
,
JsonUtil
.
beanToString
(
result
));
if
(
connection
.
getResponseCode
()
==
200
)
{
InputStream
inputStream
=
connection
.
getInputStream
();
// if (result.getImgpath().indexOf("/") > -1) {
boolean
r
=
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
basePath
,
result
.
getFilename
(),
inputStream
);
boolean
r
=
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
basePath
,
fileName
,
inputStream
);
if
(
r
)
{
record
.
setVideopath
(
result
.
getImgpath
());
log
.
info
(
"video:{} upload success:"
,
result
.
getImgpath
());
record
.
setVideopath
(
ftputl
);
record
.
setVideourlfrom
(
url
);
log
.
info
(
"video:{} upload success:"
,
ftputl
);
}
else
{
log
.
info
(
"video:{} upload fail:"
,
result
.
getUrlfrom
()
);
log
.
info
(
"video:{} upload fail:"
,
ftputl
);
record
.
setVideopath
(
""
);
}
// }
return
1
;
}
else
{
log
.
info
(
"video:{} upload fail:"
,
url
);
record
.
setVideopath
(
""
);
return
1
;
}
}
catch
(
IOException
var1
1
)
{
log
.
info
(
"video:{} error:{}"
,
result
.
getUrlfrom
(),
var11
.
toString
());
}
catch
(
IOException
var1
4
)
{
log
.
info
(
"video:{} error:{}"
,
url
,
var14
.
toString
());
record
.
setVideopath
(
""
);
return
0
;
var9
=
0
;
}
finally
{
traffAlarmRecordMapper
.
updateTraffAlarmRecordUrl
(
record
);
}
return
1
;
},
50L
,
TimeUnit
.
SECONDS
);
return
var9
;
},
1L
,
TimeUnit
.
SECONDS
);
}
else
{
try
{
HttpURLConnection
connection
=
(
HttpURLConnection
)
(
new
URL
(
url
)).
openConnection
();
HttpURLConnection
connection
=
(
HttpURLConnection
)(
new
URL
(
url
)).
openConnection
();
connection
.
setReadTimeout
(
2000
);
connection
.
setConnectTimeout
(
3000
);
connection
.
setRequestMethod
(
"GET"
);
if
(
connection
.
getResponseCode
()
==
200
)
{
InputStream
inputStream
=
connection
.
getInputStream
();
boolean
r
=
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
basePath
,
fileName
,
inputStream
);
result
.
setResult
(
r
);
if
(
r
)
{
result
.
setImgpath
(
ftputl
);
log
.
info
(
"imgpath or videopath success:{}"
,
ftputl
);
Traffalarmrecord
record
=
new
Traffalarmrecord
();
record
.
setRecordid
(
recordid
);
this
.
updateTraffAlarmRecordUrl
(
finalKey
,
record
,
ftputl
,
traffAlarmRecordMapper
);
}
else
{
log
.
info
(
"imgpath or videopath fail:{}"
,
ftputl
);
}
}
else
{
log
.
error
(
"imgpath or videopath connection error code:{}"
,
connection
.
getResponseCode
()
+
" ,"
+
result
.
toString
()
);
log
.
error
(
"imgpath or videopath connection error code:{}"
,
connection
.
getResponseCode
());
}
}
catch
(
IOException
var13
)
{
log
.
error
(
"imgpath or videopath error:{}"
,
var1
3
.
toString
());
}
catch
(
Exception
var17
)
{
log
.
error
(
"imgpath or videopath error:{}"
,
var1
7
.
toString
());
}
}
}
return
result
;
});
}
});
}
public
static
void
fetchUrlsFromRecord
(
Traffalarmrecord
record
,
Map
<
String
,
Object
>
transferRecord
)
{
if
(
record
==
null
||
record
.
getRecordid
()
=
=
null
)
{
return
;
}
transferRecord
.
put
(
"recordid"
,
record
.
getRecordid
());
if
(
record
!=
null
&&
record
.
getRecordid
()
!
=
null
)
{
transferRecord
.
put
(
"recordid"
,
record
.
getRecordid
())
;
if
(
record
.
getImg1path
()
==
null
&&
record
.
getImg1urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img1path"
,
record
.
getImg1urlfrom
());
}
if
(
record
.
getImg1path
()
==
null
&&
record
.
getImg1
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img1path"
,
record
.
getImg1
urlfrom
());
}
if
(
record
.
getImg2path
()
==
null
&&
record
.
getImg2
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img2path"
,
record
.
getImg2
urlfrom
());
}
if
(
record
.
getImg2path
()
==
null
&&
record
.
getImg2
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img2path"
,
record
.
getImg2
urlfrom
());
}
if
(
record
.
getImg3path
()
==
null
&&
record
.
getImg3
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img3path"
,
record
.
getImg3
urlfrom
());
}
if
(
record
.
getImg3path
()
==
null
&&
record
.
getImg3
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img3path"
,
record
.
getImg3
urlfrom
());
}
if
(
record
.
getImg4path
()
==
null
&&
record
.
getImg4
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img4path"
,
record
.
getImg4
urlfrom
());
}
if
(
record
.
getImg4path
()
==
null
&&
record
.
getImg4
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img4path"
,
record
.
getImg4
urlfrom
());
}
if
(
record
.
getImg5path
()
==
null
&&
record
.
getImg5
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img5path"
,
record
.
getImg5
urlfrom
());
}
if
(
record
.
getImg5path
()
==
null
&&
record
.
getImg5
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"img5path"
,
record
.
getImg5
urlfrom
());
}
if
(
record
.
getVideopath
()
==
null
&&
record
.
getVideo
urlfrom
()
!=
null
)
{
transferRecord
.
put
(
"videopath"
,
record
.
getVideo
urlfrom
());
}
if
(
record
.
getVideopath
()
==
null
&&
record
.
getVideourlfrom
()
!=
null
)
{
transferRecord
.
put
(
"videopath"
,
record
.
getVideourlfrom
());
}
}
public
static
List
<
TransferResult
>
transferFileIncludVideo
(
Map
<
String
,
Object
>
transferRecord
,
Ftp
ftp
,
String
basePath
)
throws
Exception
{
Long
recordid
=
Long
.
parseLong
(
transferRecord
.
get
(
"recordid"
).
toString
());
int
count
=
0
;
Iterator
var5
=
transferRecord
.
keySet
().
iterator
();
while
(
true
)
{
String
key
;
do
{
if
(!
var5
.
hasNext
())
{
List
<
TransferResult
>
listret
=
new
ArrayList
();
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
listret
.
add
(
completionService
.
poll
(
10L
,
TimeUnit
.
SECONDS
).
get
());
}
return
listret
;
}
key
=
(
String
)
var5
.
next
();
}
while
(!
key
.
equals
(
"img1path"
)
&&
!
key
.
equals
(
"img2path"
)
&&
!
key
.
equals
(
"img3path"
)
&&
!
key
.
equals
(
"img4path"
)
&&
!
key
.
equals
(
"img5path"
)
&&
!
key
.
equals
(
"videopath"
));
String
url
=
transferRecord
.
get
(
key
).
toString
();
++
count
;
String
finalKey
=
key
;
completionService
.
submit
(()
->
{
TransferResult
result
=
new
TransferResult
(
recordid
,
finalKey
,
url
,
""
,
false
);
public
void
transferFileIncludVideo
(
Map
<
String
,
Object
>
transferRecord
,
Ftp
ftp
,
String
basePath
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
executorService
.
execute
(()
->
{
Long
recordid
=
Long
.
parseLong
(
transferRecord
.
get
(
"recordid"
).
toString
());
Iterator
var5
=
transferRecord
.
keySet
().
iterator
();
while
(
var5
.
hasNext
())
{
String
finalKey
=
(
String
)
var5
.
next
();
log
.
info
(
"finalKey :{}"
,
finalKey
);
String
url
=
transferRecord
.
get
(
finalKey
).
toString
();
try
{
String
filesuff
=
"videopath"
.
equals
(
finalKey
)
?
".mp4"
:
".jpg"
;
HttpURLConnection
connection
=
(
HttpURLConnection
)
(
new
URL
(
url
)).
openConnection
();
HttpURLConnection
connection
=
(
HttpURLConnection
)(
new
URL
(
url
)).
openConnection
();
connection
.
setReadTimeout
(
2000
);
connection
.
setConnectTimeout
(
3000
);
connection
.
setRequestMethod
(
"GET"
);
...
...
@@ -211,62 +169,89 @@ public class FileTransferManager {
String
fileName
=
pname
+
filesuff
;
String
ftputl
=
basePath
+
"/"
+
fileName
;
boolean
r
=
FTPUtil
.
uploadFile
(
ftp
,
"gstraff/"
+
basePath
,
fileName
,
inputStream
);
result
.
setResult
(
r
);
if
(
r
)
{
result
.
setImgpath
(
ftputl
);
Traffalarmrecord
record
=
new
Traffalarmrecord
();
record
.
setRecordid
(
recordid
);
this
.
updateTraffAlarmRecordUrl
(
finalKey
,
record
,
ftputl
,
traffAlarmRecordMapper
);
}
}
else
{
log
.
error
(
"imgpath or videopath connection error code:{}"
,
connection
.
getResponseCode
()
+
" ,"
+
result
.
toString
()
);
log
.
error
(
"imgpath or videopath connection error code:{}"
,
connection
.
getResponseCode
());
}
}
catch
(
IOException
var13
)
{
log
.
error
(
"imgpath or videopath error:{}"
,
var1
3
.
toString
());
}
catch
(
Exception
var17
)
{
log
.
error
(
"imgpath or videopath error:{}"
,
var1
7
.
toString
());
}
}
return
result
;
});
}
});
}
public
void
traffAlarmRecordUrlUpdate
(
List
<
TransferResult
>
results
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
// List<TransferResult> results = JSONUtil.toList(JSONUtil.parseArray(JSONUtil.toJsonStr(resultslist)), TransferResult.class);
for
(
TransferResult
result
:
results
)
{
public
void
traffAlarmRecordUrlUpdate
(
List
<
TransferResult
>
results
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
Iterator
var3
=
results
.
iterator
();
while
(
var3
.
hasNext
())
{
TransferResult
result
=
(
TransferResult
)
var3
.
next
();
log
.
info
(
"results={}"
,
JSONUtil
.
toJsonStr
(
result
));
Traffalarmrecord
record
=
new
Traffalarmrecord
();
record
.
setRecordid
(
result
.
getRecordid
());
if
(
result
.
getResult
())
{
switch
(
result
.
getPathvalue
())
{
case
"img1path"
:
record
.
setImg1path
(
result
.
getImgpath
());
break
;
case
"img2path"
:
record
.
setImg2path
(
result
.
getImgpath
());
break
;
case
"img3path"
:
record
.
setImg3path
(
result
.
getImgpath
());
break
;
case
"img4path"
:
record
.
setImg4path
(
result
.
getImgpath
());
break
;
case
"img5path"
:
record
.
setImg5path
(
result
.
getImgpath
());
break
;
case
"videopath"
:
record
.
setVideopath
(
result
.
getImgpath
());
break
;
case
"urlfrom"
:
record
.
setVideourlfrom
(
result
.
getUrlfrom
());
break
;
default
:
String
pathvalue
=
result
.
getPathvalue
();
switch
(
pathvalue
){
case
"img1path"
:
record
.
setImg1path
(
pathvalue
);
break
;
case
"img2path"
:
record
.
setImg2path
(
pathvalue
);
break
;
case
"img3path"
:
record
.
setImg3path
(
pathvalue
);
break
;
case
"img4path"
:
record
.
setImg4path
(
pathvalue
);
break
;
case
"img5path"
:
record
.
setImg5path
(
pathvalue
);
break
;
case
"videopath"
:
record
.
setVideopath
(
pathvalue
);
break
;
case
"urlfrom"
:
record
.
setVideourlfrom
(
result
.
getUrlfrom
());
break
;
default
:
// log.info("unknow pathvalue"+ result.getPathvalue());
break
;
}
break
;
}
// 更新数据
traffAlarmRecordMapper
.
updateTraffAlarmRecordUrl
(
record
);
traffAlarmRecordMapper
.
updateTraffAlarmRecordUrl
(
record
);
}
}
}
}
public
void
updateTraffAlarmRecordUrl
(
String
key
,
Traffalarmrecord
record
,
String
path
,
TraffAlarmRecordMapper
traffAlarmRecordMapper
)
throws
Exception
{
switch
(
key
)
{
case
"img1path"
:
record
.
setImg1path
(
path
);
break
;
case
"img2path"
:
record
.
setImg2path
(
path
);
break
;
case
"img3path"
:
record
.
setImg3path
(
path
);
break
;
case
"img4path"
:
record
.
setImg4path
(
path
);
break
;
case
"img5path"
:
record
.
setImg5path
(
path
);
break
;
case
"videopath"
:
record
.
setVideopath
(
path
);
break
;
case
"urlfrom"
:
record
.
setVideourlfrom
(
path
);
}
traffAlarmRecordMapper
.
updateTraffAlarmRecordUrl
(
record
);
}
}
src/main/java/com/hzjt/mapper/TraffAlarmRecordMapper.java
View file @
a29ac058
...
...
@@ -8,6 +8,8 @@ import tk.mybatis.mapper.additional.dialect.oracle.InsertListMapper;
import
tk.mybatis.mapper.common.BaseMapper
;
import
tk.mybatis.mapper.common.ConditionMapper
;
import
java.util.List
;
@Mapper
public
interface
TraffAlarmRecordMapper
extends
BaseMapper
<
Traffalarmrecord
>,
ConditionMapper
<
Traffalarmrecord
>,
InsertListMapper
<
Traffalarmrecord
>
{
...
...
@@ -35,4 +37,7 @@ public interface TraffAlarmRecordMapper extends BaseMapper<Traffalarmrecord>, Co
String
seletmqttbh
(
@Param
(
"recordtype"
)
String
recordtype
);
Integer
updateState
(
MqttResult
result
);
List
<
Traffalarmrecord
>
selectFailRecord
();
}
\ No newline at end of file
src/main/java/com/hzjt/redis/Receiver.java
View file @
a29ac058
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package
com
.
hzjt
.
redis
;
import
com.hzjt.domain.*
;
import
com.hzjt.domain.Alarm
;
import
com.hzjt.domain.Ftp
;
import
com.hzjt.domain.Traffalarmrecord
;
import
com.hzjt.handler.FileTransferManager
;
import
com.hzjt.mapper.TraffAlarmRecordMapper
;
import
com.hzjt.service.EventWriteService
;
import
com.hzjt.service.FtpService
;
import
com.hzjt.util.*
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
com.hzjt.util.DateUtils
;
import
com.hzjt.util.FTPUtil
;
import
com.hzjt.util.JsonUtil
;
import
com.hzjt.util.StringEnum
;
import
com.hzjt.util.TraffAlarmRecordFromImgEnum
;
import
com.hzjt.util.TraffAlarmRecordImgEnum
;
import
com.hzjt.util.UUIDUtils
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.Callable
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
//@Service
public
class
Receiver
{
@Autowired
RedisDao
redisDao
;
@Autowired
private
TraffAlarmRecordMapper
traffAlarmRecordMapper
;
@Autowired
FtpService
ftpService
;
@Autowired
EventWriteService
eventWriteService
;
ScheduledExecutorService
schedulepool
=
Executors
.
newScheduledThreadPool
(
5
);
//创
ScheduledExecutorService
schedulepool
=
Executors
.
newScheduledThreadPool
(
5
);
@Value
(
"ftpIp"
)
String
ftpIp
;
@Value
(
"ftpPort"
)
...
...
@@ -53,50 +50,42 @@ public class Receiver {
private
String
ftpPassword
;
@Value
(
"${alarmrecord.check.enable}"
)
private
String
checkEnable
;
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
Receiver
.
class
);
public
Receiver
()
{
}
/**
* @Description: 用于接收单个对象,将对象同步至数据库,如果同步失败,则存入redis中
* @Param: [message] “fastjson”转换后的json字符串
* @Retrun: void
*/
public
void
receiveSingle
(
String
Message
)
throws
InterruptedException
{
// 将json字符串转换成实体对
Alarm
trffClientMessage
=
JsonUtil
.
stringToBean
(
Message
,
Alarm
.
class
);
Alarm
trffClientMessage
=
(
Alarm
)
JsonUtil
.
stringToBean
(
Message
,
Alarm
.
class
);
List
<
String
>
imgBase64List
=
trffClientMessage
.
getImg_base64
();
Traffalarmrecord
traffAlarmRecord
=
new
Traffalarmrecord
();
String
imgEnumHead
=
"IMG"
;
Ftp
ftp
=
ftpService
.
reloadFtp
();
for
(
int
i
=
0
;
i
<
imgBase64List
.
size
();
i
++)
{
/* 图片上传 */
Ftp
ftp
=
this
.
ftpService
.
reloadFtp
();
String
fdid
;
for
(
int
i
=
0
;
i
<
imgBase64List
.
size
();
++
i
)
{
String
path
=
trffClientMessage
.
getVideo_id
()
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
String
fileName
=
UUIDUtils
.
createuuid
()
+
".jpg"
;
if
(
FTPUtil
.
uploadFile
(
ftp
,
path
,
f
ileName
,
imgBase64List
.
get
(
i
)))
{
TraffAlarmRecordImgEnum
.
valueOf
(
imgEnumHead
+
i
).
setImg
(
traffAlarmRecord
,
FTPUtil
.
getFtpUrl
(
ftp
)
+
path
+
"/"
+
f
ileName
);
fdid
=
UUIDUtils
.
createuuid
()
+
".jpg"
;
if
(
FTPUtil
.
uploadFile
(
ftp
,
path
,
f
did
,
(
String
)
imgBase64List
.
get
(
i
)))
{
TraffAlarmRecordImgEnum
.
valueOf
(
imgEnumHead
+
i
).
setImg
(
traffAlarmRecord
,
FTPUtil
.
getFtpUrl
(
ftp
)
+
path
+
"/"
+
f
did
);
}
}
List
<
String
>
imgUrls
=
trffClientMessage
.
getImg_urls
();
for
(
int
i
=
0
;
i
<
imgUrls
.
size
();
i
++)
{
TraffAlarmRecordFromImgEnum
.
valueOf
(
imgEnumHead
+
i
).
setImg
(
traffAlarmRecord
,
imgUrls
.
get
(
i
));
for
(
int
i
=
0
;
i
<
imgUrls
.
size
();
++
i
)
{
TraffAlarmRecordFromImgEnum
.
valueOf
(
imgEnumHead
+
i
).
setImg
(
traffAlarmRecord
,
(
String
)
imgUrls
.
get
(
i
));
}
String
[]
videoIdArr
=
trffClientMessage
.
getVideo_id
().
split
(
"_"
);
String
fdid
=
videoIdArr
[
0
];
fdid
=
videoIdArr
[
0
];
traffAlarmRecord
.
setFdid
(
fdid
);
Integer
channelid
=
Integer
.
valueOf
(
videoIdArr
[
1
])
+
1
;
traffAlarmRecord
.
setChannelid
(
channelid
);
if
(
StringEnum
.
ONE
.
getValue
().
equals
(
checkEnable
))
{
/* 9:免审 */
if
(
StringEnum
.
ONE
.
getValue
().
equals
(
this
.
checkEnable
))
{
traffAlarmRecord
.
setCheckstatus
(
9
);
}
// int recordid = traffAlarmRecordMapper.selectmax();
// traffAlarmRecord.setRecordid((long)(recordid+1));
traffAlarmRecord
.
setProcessstatus
(
"0"
);
traffAlarmRecord
.
setAreaid
(
Long
.
valueOf
(
trffClientMessage
.
getDept
()));
traffAlarmRecord
.
setRecordtype
(
trffClientMessage
.
getIncident_type
().
toLowerCase
());
...
...
@@ -104,91 +93,21 @@ public class Receiver {
traffAlarmRecord
.
setRecordtime
(
DateUtils
.
getDateString
(
new
Date
(
Long
.
valueOf
(
trffClientMessage
.
getTs
()))));
traffAlarmRecord
.
setCreatetime
(
DateUtils
.
getDateString
(
new
Date
()));
traffAlarmRecord
.
setObjlable
(
trffClientMessage
.
getObjLabel
());
traffAlarmRecord
.
setPushstatus
(
9
);
//设置为未推送
traffAlarmRecordMapper
.
inserTraffAlarmRecord
(
traffAlarmRecord
);
traffAlarmRecord
.
setPushstatus
(
9
);
this
.
traffAlarmRecordMapper
.
inserTraffAlarmRecord
(
traffAlarmRecord
);
try
{
String
basepath
=
"gstraff/"
+
traffAlarmRecord
.
getFdid
()
+
(
traffAlarmRecord
.
getChannelid
()
<
10
?
"0"
+
traffAlarmRecord
.
getChannelid
()
:
traffAlarmRecord
.
getChannelid
())
+
"/"
+
DateUtils
.
formatCurrDayNoSign
();
Map
<
String
,
Object
>
transferRecordMap
=
new
HashMap
<>
();
Map
<
String
,
Object
>
transferRecordMap
=
new
HashMap
();
FileTransferManager
.
fetchUrlsFromRecord
(
traffAlarmRecord
,
transferRecordMap
);
FileTransferManager
fileTransferManager
=
new
FileTransferManager
();
List
<
TransferResult
>
results
=
fileTransferManager
.
transferFile
(
transferRecordMap
,
ftp
,
basepath
,
traffAlarmRecordMapper
);
// log.info("缓存数据上传结果:" + results.toString());
fileTransferManager
.
traffAlarmRecordUrlUpdate
(
results
,
traffAlarmRecordMapper
);
// traffAlarmRecord.setImg2path(recordBak.getImg2path());
// traffAlarmRecord.setImg3path(recordBak.getImg3path());
// traffAlarmRecord.setImg4path(recordBak.getImg4path());
// traffAlarmRecord.setImg5path(recordBak.getImg5path());
// traffAlarmRecord.setVideopath(recordBak.getVideopath());
//
// if (traffAlarmRecord != null && traffAlarmRecord.getRecordid() != null) {
// traffAlarmRecordMapper.updateTraffAlarmRecordUrl(traffAlarmRecord);
// }
// //如果监控视频为空,延时加载重新获取
// if(null==recordBak.getVideopath() || "".equalsIgnoreCase(recordBak.getVideopath())) {
//
// schedulepool.schedule(()->{
// for (String key : transferRecordMap.keySet()) {
// if (key.equals("videopath")) {
// final String url = transferRecordMap.get(key).toString();
// try {
// HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
// //延迟连接
// connection.setReadTimeout(2000);
// connection.setConnectTimeout(3000);
// connection.setRequestMethod("GET");
// String pname = DateUtils.formatCurrDayNoSign()+ "_" + traffAlarmRecord.getFdid()+ "_" + traffAlarmRecord.getRecordid() + key.replace("path", "");
// String fileName = pname + ".mp4";
// String ftputl = FTPUtil.getFtpUrl(ftp) + basepath + "/" + fileName;
// if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// InputStream inputStream = connection.getInputStream();
//// log.info("url:", url, " --- " + "key:", key);
// boolean r = FTPUtil.uploadFile(ftp, basepath, fileName, inputStream);
// if (r) traffAlarmRecord.setVideopath(ftputl);
// //只更新监控
// if (traffAlarmRecord != null && traffAlarmRecord.getRecordid() != null) {
// traffAlarmRecordMapper.updateTraffAlarmRecordUrl(traffAlarmRecord);
//
// //推送给第三方
// ResultObj obj = eventWriteService.updateAndAutoSendEvent(traffAlarmRecord);
//// log.info("调用接口推送给广达返回信息:" + obj.toString());
//
// }
// }
// } catch (IOException e) {
// System.out.println(e.toString());
// log.error(e.toString());
// return 0;
// }
// }
//
// }
// return 1;
// },30, TimeUnit.SECONDS); //等待30秒钟执行
// }else {
// //推送给第三方
// ResultObj obj = eventWriteService.updateAndAutoSendEvent(traffAlarmRecord);
//// log.info("调用接口推送给广达返回信息:" + obj.toString());
//
// }
}
catch
(
Exception
e
)
{
log
.
error
(
"解析事件告警数据异常 :"
+
e
.
getMessage
());
new
FileTransferManager
();
}
catch
(
Exception
var14
)
{
log
.
error
(
"解析事件告警数据异常 :"
+
var14
.
getMessage
());
}
//
redisDao
.
incrOrDecr
(
Constant
.
succSizeTempKey
,
-
1
);
this
.
redisDao
.
incrOrDecr
(
"excelToDB:succSizeTempKey"
,
-
1L
);
}
/**
* @Description: 用于接收对象集合,将集合遍历拆分成单个对象并进行发布
* @Param: [message] “fastjson”转换后的json字符串
* @Retrun: void
*/
public
void
receiveList
(
String
message
)
throws
InterruptedException
{
}
}
src/main/java/com/hzjt/service/TraffalarmrecordService.java
View file @
a29ac058
...
...
@@ -22,5 +22,7 @@ public class TraffalarmrecordService {
public
Integer
updateState
(
MqttResult
result
)
{
return
traffalarmrecordMapper
.
updateState
(
result
);
}
public
List
<
Traffalarmrecord
>
selectFailRecord
()
{
return
traffalarmrecordMapper
.
selectFailRecord
();
}
}
\ No newline at end of file
src/main/java/com/hzjt/util/FTPUtil.java
View file @
a29ac058
...
...
@@ -33,8 +33,8 @@ public class FTPUtil {
@PostConstruct
private
void
initHostMap
(){
if
(
ftpHost
==
null
){
log
.
error
(
"ftp
存储组未配置,请先配置
"
);
log
.
error
(
"ftp
存储组未配置,请先配置
"
);
log
.
error
(
"ftp
�洢��δ���ã���������"
);
log
.
error
(
"ftp
�洢��δ���ã���������"
);
return
;
}
...
...
@@ -57,7 +57,7 @@ public class FTPUtil {
return
;
}
}
catch
(
Exception
e
)
{
log
.
error
(
"FTP
下载图片出错
"
,
e
);
log
.
error
(
"FTP
����ͼƬ����"
,
e
);
}
finally
{
IOUtils
.
closeQuietly
(
toClient
);
IOUtils
.
closeQuietly
(
is
);
...
...
@@ -70,7 +70,7 @@ public class FTPUtil {
try
{
url
=
new
URL
(
path
);
}
catch
(
MalformedURLException
e
)
{
log
.
error
(
"FTP URL路
径错误
"
+
e
.
toString
());
log
.
error
(
"FTP URL·
������"
+
e
.
toString
());
}
byte
[]
buffer
=
null
;
try
(
InputStream
is
=
url
.
openStream
();
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
(
1000
)){
...
...
@@ -82,13 +82,13 @@ public class FTPUtil {
buffer
=
bos
.
toByteArray
();
}
catch
(
Exception
e
)
{
log
.
error
(
"FTP
下载图片出错
"
,
e
);
log
.
error
(
"FTP
����ͼƬ����"
,
e
);
}
return
buffer
;
}
//ftp图片
上传,图片参数为base64封装的
String
//ftpͼƬ
�ϴ���ͼƬ����Ϊbase64��װ��String
public
static
boolean
uploadFile
(
Ftp
ftpUrl
,
String
path
,
String
filename
,
String
inputImg
)
{
boolean
flag
=
true
;
FTPClient
ftpClient
=
null
;
...
...
@@ -97,7 +97,7 @@ public class FTPUtil {
if
(
inputImg
==
null
)
{
return
false
;
}
//base64
解码
//base64
����
BASE64Decoder
decoder
=
new
BASE64Decoder
();
byte
[]
b_img
=
decoder
.
decodeBuffer
(
inputImg
);
input
=
new
ByteArrayInputStream
(
b_img
);
...
...
@@ -107,15 +107,15 @@ public class FTPUtil {
changeWorkingDirectory
(
ftpClient
,
path
);
flag
=
ftpClient
.
storeFile
(
filename
,
input
);
if
(
flag
)
{
// log.info("FTP
上传文件成功!
");
// log.info("FTP
�ϴ��ļ��ɹ���");
}
else
{
flag
=
false
;
log
.
info
(
"FTP
上传文件失败!
"
);
log
.
info
(
"FTP
�ϴ��ļ�ʧ�ܣ�"
);
}
}
}
catch
(
Exception
e
)
{
flag
=
false
;
log
.
error
(
"FTP
文件上传失败!
"
,
e
.
toString
());
log
.
error
(
"FTP
�ļ��ϴ�ʧ�ܣ�"
,
e
.
toString
());
}
finally
{
IOUtils
.
closeQuietly
(
input
);
closeConnect
(
ftpClient
);
...
...
@@ -132,20 +132,20 @@ public class FTPUtil {
changeWorkingDirectory
(
ftpClient
,
path
);
flag
=
ftpClient
.
storeFile
(
filename
,
input
);
if
(
flag
)
{
// log.info("FTP upload success
!
");
// log.info("FTP upload success
��"
);
}
else
{
log
.
info
(
"FTP upload fail
!
"
);
log
.
info
(
"FTP upload fail"
);
}
}
else
{
flag
=
false
;
// log.info("FTP server refused connection
!
");
// log.info("FTP server refused connection
��"
);
}
}
catch
(
IOException
e
)
{
flag
=
false
;
log
.
error
(
"FTP upload fail
!
"
,
e
);
log
.
error
(
"FTP upload fail
��"
,
e
);
}
catch
(
Exception
e
)
{
flag
=
false
;
log
.
error
(
"FTP upload fail
!
"
,
e
);
log
.
error
(
"FTP upload fail
��"
,
e
);
}
finally
{
IOUtils
.
closeQuietly
(
input
);
closeConnect
(
ftpClient
);
...
...
@@ -154,7 +154,7 @@ public class FTPUtil {
}
/*
*
得到配置文件中的FTP服务器地
址
*
�õ������ļ��е�FTP��������ַ
*/
public
static
String
getFtpUrl
(
Ftp
ftpUrl
)
{
StringBuffer
buffer
=
new
StringBuffer
();
...
...
@@ -179,13 +179,13 @@ public class FTPUtil {
* @param ftpUrl
* @return
* @throws Exception
* @description 删
除ftp上的文件
* @description ɾ
��ftp�ϵ��ļ�
* @author sunw
*/
public
static
boolean
deleteFileFromFtpUrl
(
String
ftpUrl
)
throws
Exception
{
boolean
flag
=
false
;
if
(
null
==
ftpUrl
||
StringUtils
.
isBlank
(
ftpUrl
))
{
throw
new
Exception
(
"ftpUrl
串为空
"
);
throw
new
Exception
(
"ftpUrl
����"
)
;
}
Map
<
String
,
String
>
result
=
getFtpInfoMapByFullPath
(
ftpUrl
);
String
ftpUser
=
result
.
get
(
"ftpUser"
);
...
...
@@ -197,7 +197,7 @@ public class FTPUtil {
Ftp
ftp
=
FTPUtil
.
getFtpUrlObj
(
ftpIp
,
ftpPort
,
ftpUser
,
ftpPassword
);
FTPClient
ftpClient
=
connectServer
(
ftp
);
if
(
null
==
ftpClient
)
{
throw
new
Exception
(
"ftp
登录失败
"
);
throw
new
Exception
(
"ftp
��¼ʧ�� "
);
}
else
{
String
fullPath
=
(
null
==
path
||
""
.
equals
(
path
.
trim
()))
?
fileName
:
(
path
+
"/"
+
fileName
);
try
{
...
...
@@ -215,12 +215,12 @@ public class FTPUtil {
* @param ftpUrlStr
* @return
* @throws Exception
* @author sunw 通
过图片路径
*
获得ftpuser,ftppassword,ftpip,ftpport,在fpt上的文件路径,文件
realname
* @author sunw ͨ
��ͼƬ·��
*
���ftpuser,ftppassword,ftpip,ftpport,��fpt�ϵ��ļ�·��,�ļ�realna
me
*/
private
static
Map
<
String
,
String
>
getFtpInfoMapByFullPath
(
String
ftpUrlStr
)
throws
Exception
{
if
(
null
==
ftpUrlStr
||
""
.
equals
(
ftpUrlStr
.
trim
()))
{
throw
new
Exception
(
"ftpstr
串为空
"
);
throw
new
Exception
(
"ftpstr
����"
)
;
}
ftpUrlStr
=
ftpUrlStr
.
replaceAll
(
"\\\\"
,
"/"
);
ftpUrlStr
=
changeUrlCharater
(
ftpUrlStr
);
...
...
@@ -232,7 +232,7 @@ public class FTPUtil {
String
ftpPassword
=
ftpUserAndPassword
[
1
];
String
ftpIp
=
ftpIpAndPort
[
0
];
String
ftpPort
=
ftpIpAndPort
.
length
>
1
?
ftpIpAndPort
[
1
]
:
""
;
String
fileName
=
array
[
array
.
length
-
1
];
//
获得文件名
String
fileName
=
array
[
array
.
length
-
1
];
//
������
Map
<
String
,
String
>
resultMap
=
new
HashMap
<
String
,
String
>();
resultMap
.
put
(
"ftpUser"
,
ftpUser
);
resultMap
.
put
(
"ftpPassword"
,
ftpPassword
);
...
...
@@ -257,7 +257,7 @@ public class FTPUtil {
boolean
flag
=
deleteFileFromFtpUrl
(
temp
);
System
.
out
.
println
(
flag
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"删
除文件失败
"
);
System
.
out
.
println
(
"ɾ
���ļ�ʧ��"
);
}
// String [] strSplit = temp.split("/");
// for(int i = 0 ; i < strSplit.length ; i++) {
...
...
@@ -272,7 +272,7 @@ public class FTPUtil {
}
/**
*
连接到服务器
*
���ӵ�������
*/
private
static
FTPClient
connectServer
(
Ftp
ftpUrl
)
{
FTPClient
ftpClient
=
null
;
...
...
@@ -292,18 +292,18 @@ public class FTPUtil {
if
(!
FTPReply
.
isPositiveCompletion
(
reply
))
{
ftpClient
.
disconnect
();
System
.
err
.
println
(
"FTP server refused connection."
);
log
.
info
(
"FTP
服务拒绝连接!
"
);
log
.
info
(
"FTP
����ܾ����ӣ�"
);
}
}
catch
(
SocketException
e
)
{
log
.
error
(
"
登录ftp服务器 "
+
ftpUrl
.
getFtpIp
()
+
" 失败,连接超时!
"
,
e
);
log
.
error
(
"
��¼ftp������ "
+
ftpUrl
.
getFtpIp
()
+
" ʧ��,���ӳ�ʱ��"
,
e
);
}
catch
(
IOException
e
)
{
log
.
error
(
"
登录ftp服务器 "
+
ftpUrl
.
getFtpIp
()
+
" 失败,FTP服务器无法打开!
"
,
e
);
log
.
error
(
"
��¼ftp������ "
+
ftpUrl
.
getFtpIp
()
+
" ʧ�ܣ�FTP����������"
,
e
);
}
return
ftpClient
;
}
/**
*
关闭连接
*
�ر�����
*/
private
static
void
closeConnect
(
FTPClient
ftpClient
)
{
try
{
...
...
@@ -314,12 +314,12 @@ public class FTPUtil {
ftpClient
.
disconnect
();
}
}
catch
(
Exception
e
)
{
log
.
error
(
"
关闭ftp连接失败
"
,
e
);
log
.
error
(
"
�ر�ftp����ʧ��"
,
e
);
}
}
/**
*
进入到服务器的某个目录下
*
���뵽��������ij��Ŀ¼��
*
* @param directory
*/
...
...
@@ -336,12 +336,12 @@ public class FTPUtil {
ftpClient
.
changeWorkingDirectory
(
subPath
);
}
}
catch
(
IOException
ioe
)
{
log
.
error
(
"
改变ftp工作路径失败
"
,
ioe
);
log
.
error
(
"
�ı�ftp����·��ʧ��"
,
io
e
);
}
}
/**
* 转
码[ISO-8859-1 -> GBK] 不同的平台需要不同的转码
* ת
��[ISO-8859-1 -> GBK] ��ͬ��ƽ̨��Ҫ��ͬ��ת��
*
* @param obj
* @return ""
...
...
src/main/resources/mapper/Traffalarmrecord.xml
View file @
a29ac058
...
...
@@ -192,4 +192,10 @@
confirmUser=#{confirmUser},confirmTime=#{confirmTime}
where eventid=#{eventid}
</update>
<select
id=
"selectFailRecord"
resultType=
"com.hzjt.domain.Traffalarmrecord"
>
select a.* from TRAFFALARMRECORD a
where recordtime
<![CDATA[ <= ]]>
SYSDATE - NUMTODSINTERVAL(30, 'MINUTE') and recordtime > ADD_MONTHS(SYSDATE, -2)
and img1path is null
</select>
</mapper>
\ No newline at end of file
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