Commit a29ac058 authored by wangjinjing's avatar wangjinjing

浅黄发布版本

parent f03f4acb
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();
......
//
// 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 var18) {
} catch (Exception var19) {
result.setSuccess(false);
log.error("alarmevent error :{}", var18.toString());
log.error("alarmevent error :{}", var19.toString());
}
return result;
}
}
}
//
// 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);
}
}
//
// 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";
}
}
......@@ -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 var9) {
log.error("MessageController receive putData error:{}", var9.toString());
this.sendevent(trffClientMessage, (Sbtdspsr)sbtdspsrs.get(0));
} catch (Exception var8) {
log.error("MessageController receive putData error:{}", var8.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 var16) {
log.error("alarmevent error :{}", var16.toString());
} catch (Exception var13) {
log.error("alarmevent error :{}", var13.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 var29) {
} catch (Exception var28) {
response.setContentType("text/html;charset=GBK");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.write("无法打开图片!");
out.flush();
log.info("ftpagent error " + ftpUrl + var29.toString());
log.info("ftpagent error " + ftpUrl + var28.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 var31) {
} catch (Exception var30) {
} 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);
}
}
......
//
// 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() {
}
}
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
}
//
// 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(result.getRecordid());
HttpURLConnection connection = (HttpURLConnection) (new URL(result.getUrlfrom())).openConnection();
record.setRecordid(recordid);
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 var11) {
log.info("video:{} error:{}",result.getUrlfrom(),var11.toString());
} catch (IOException var14) {
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:{}", var13.toString());
} catch (Exception var17) {
log.error("imgpath or videopath error:{}", var17.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.getImg1urlfrom() != null) {
transferRecord.put("img1path", record.getImg1urlfrom());
}
if (record.getImg2path() == null && record.getImg2urlfrom() != null) {
transferRecord.put("img2path", record.getImg2urlfrom());
}
if (record.getImg2path() == null && record.getImg2urlfrom() != null) {
transferRecord.put("img2path", record.getImg2urlfrom());
}
if (record.getImg3path() == null && record.getImg3urlfrom() != null) {
transferRecord.put("img3path", record.getImg3urlfrom());
}
if (record.getImg3path() == null && record.getImg3urlfrom() != null) {
transferRecord.put("img3path", record.getImg3urlfrom());
}
if (record.getImg4path() == null && record.getImg4urlfrom() != null) {
transferRecord.put("img4path", record.getImg4urlfrom());
}
if (record.getImg4path() == null && record.getImg4urlfrom() != null) {
transferRecord.put("img4path", record.getImg4urlfrom());
}
if (record.getImg5path() == null && record.getImg5urlfrom() != null) {
transferRecord.put("img5path", record.getImg5urlfrom());
}
if (record.getImg5path() == null && record.getImg5urlfrom() != null) {
transferRecord.put("img5path", record.getImg5urlfrom());
}
if (record.getVideopath() == null && record.getVideourlfrom() != null) {
transferRecord.put("videopath", record.getVideourlfrom());
}
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:{}", var13.toString());
} catch (Exception var17) {
log.error("imgpath or videopath error:{}", var17.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);
}
}
......@@ -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
//
// 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, fileName, imgBase64List.get(i))) {
TraffAlarmRecordImgEnum.valueOf(imgEnumHead + i).setImg(traffAlarmRecord, FTPUtil.getFtpUrl(ftp) + path + "/" + fileName);
fdid = UUIDUtils.createuuid() + ".jpg";
if (FTPUtil.uploadFile(ftp, path, fdid, (String)imgBase64List.get(i))) {
TraffAlarmRecordImgEnum.valueOf(imgEnumHead + i).setImg(traffAlarmRecord, FTPUtil.getFtpUrl(ftp) + path + "/" + fdid);
}
}
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 {
}
}
......@@ -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
......@@ -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�ϵ��ļ�·��,�ļ�realname
*/
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����·��ʧ��", ioe);
}
}
/**
* 转码[ISO-8859-1 -> GBK] 不同的平台需要不同的转码
* ת��[ISO-8859-1 -> GBK] ��ͬ��ƽ̨��Ҫ��ͬ��ת��
*
* @param obj
* @return ""
......
......@@ -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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment