添加接口
This commit is contained in:
parent
b081a7d2be
commit
b139d93aa8
|
|
@ -57,10 +57,33 @@ public interface ICameraInfoService extends IService<CameraInfo> {
|
|||
Result<Map<String,Object>> getPlaybackUrlList(CameraInfo cameraInfo);
|
||||
Result<String> deletePlaybackChn(CameraInfo cameraInfo);
|
||||
Result<Map<String,Object>> getMultitransUrl(CameraInfo cameraInfo) throws Exception;
|
||||
|
||||
/**
|
||||
* 功能:tplink下载服务视频
|
||||
*
|
||||
* @param cameraInfo 参数如下<br/>
|
||||
* deviceIndex设备序号<br/>
|
||||
* parentId父设备id<br/>
|
||||
* fileName文件名称<br/>
|
||||
* videoType回放录像类型。1代表定时录像,2代表移动侦测录像,3代表全选<br/>
|
||||
* ftpUploadpath视频上传位置<br/>
|
||||
* startTime开始时间<br/>
|
||||
* endTime结束时间<br/>
|
||||
* @return
|
||||
*/
|
||||
Result uploadToServer(CameraInfo cameraInfo);
|
||||
Result<String> stopUploadToServer(CameraInfo cameraInfo);
|
||||
Result getUploadToServerProcess(CameraInfo cameraInfo);
|
||||
Result motionCtrl(CameraInfo cameraInfo);
|
||||
|
||||
void baoxiu(CameraInfo cameraInfo);
|
||||
|
||||
/**
|
||||
* 下载tplink自定义录像
|
||||
* @param nuId 护理单元id
|
||||
* @param startTime 下载开始时间
|
||||
* @param endTime 下载结束时间
|
||||
* @return
|
||||
*/
|
||||
String zdyTplinkVideo(String nuId, String startTime, String endTime);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
|
@ -13,6 +14,7 @@ import com.nu.modules.tplink.camera.model.CameraTreeModel;
|
|||
import com.nu.modules.tplink.common.entity.TumsConfig;
|
||||
import com.nu.modules.tplink.common.mapper.TumsConfigMapper;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import com.nu.modules.tplink.camera.entity.CameraInfo;
|
||||
|
|
@ -2697,6 +2699,9 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
ftpPassword = tumsConfig.getFtpPassword();
|
||||
ftpUploadpath = tumsConfig.getFtpUploadpath();
|
||||
}
|
||||
if(StringUtils.isNotBlank(cameraInfo.getFtpUploadpath())){
|
||||
ftpUploadpath = cameraInfo.getFtpUploadpath();
|
||||
}
|
||||
String deviceIndex = cameraInfo.getDeviceIndex();
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String fileName = cameraInfo.getFileName();
|
||||
|
|
@ -2711,7 +2716,7 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
sb.append("\"storageDevId\"").append(":").append("\"").append(deviceIndex).append("\",");
|
||||
}
|
||||
sb.append("\"videoType\"").append(":").append(cameraInfo.getVideoType()).append(",");
|
||||
sb.append("\"storageType\"").append(":").append(cameraInfo.getStorageType()).append(",");
|
||||
sb.append("\"storageType\"").append(":").append("0").append(",");
|
||||
if(fileName!=null&&!fileName.equals("")){
|
||||
//存储设备ID
|
||||
sb.append("\"filename\"").append(":").append("\"").append(fileName).append("\",");
|
||||
|
|
@ -2861,6 +2866,121 @@ public class CameraInfoServiceImpl extends ServiceImpl<CameraInfoMapper, CameraI
|
|||
syncImpl.devopsBaoxiu(cameraInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载tplink自定义录像
|
||||
* @param nuId
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String zdyTplinkVideo(String nuId, String startTime, String endTime) {
|
||||
|
||||
QueryWrapper<CameraInfo> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("nu_id",nuId);
|
||||
List<CameraInfo> tplinkList = baseMapper.selectList(queryWrapper);
|
||||
if(tplinkList.size() == 0){
|
||||
return "error";
|
||||
}
|
||||
String fileName = nuId +"-"+DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
|
||||
CameraInfo tplinkInfo = tplinkList.get(0);
|
||||
CameraInfo cameraInfo = new CameraInfo();
|
||||
cameraInfo.setDeviceIndex(tplinkInfo.getDeviceIndex());
|
||||
cameraInfo.setParentId(tplinkInfo.getParentId());
|
||||
cameraInfo.setFileName(fileName);
|
||||
cameraInfo.setVideoType("1");
|
||||
cameraInfo.setFtpUploadpath("/upload/2025/12/tplinkVideo");
|
||||
cameraInfo.setStartTime(startTime);
|
||||
cameraInfo.setEndTime(endTime);
|
||||
try {
|
||||
uploadToServerResult(cameraInfo);
|
||||
return "success";
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return "error";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 回放视频转mp4上传
|
||||
* @param cameraInfo
|
||||
* @return
|
||||
*/
|
||||
public String uploadToServerResult(CameraInfo cameraInfo){
|
||||
String ftpUsername = "";
|
||||
String ftpPassword = "";
|
||||
String ftpUploadpath = "";
|
||||
String ftpIp = "";
|
||||
String ftpPort = "";
|
||||
log.info("uploadToServerResult - cameraInfo:{}:",cameraInfo);
|
||||
CameraInfo entity = baseMapper.getByDeviceId(cameraInfo);
|
||||
if(entity.getFtpIp()!=null&&!entity.getFtpIp().equals("")){
|
||||
ftpIp = entity.getFtpIp();
|
||||
ftpPort = entity.getFtpPort();
|
||||
ftpUsername = entity.getFtpUsername();
|
||||
ftpPassword = entity.getFtpPassword();
|
||||
ftpUploadpath = entity.getFtpUploadpath();
|
||||
}else{
|
||||
TumsConfig tumsConfig = tumsConfigMapper.getByCode();
|
||||
ftpIp = tumsConfig.getFtpIp();
|
||||
ftpPort = tumsConfig.getFtpPort();
|
||||
ftpUsername = tumsConfig.getFtpUsername();
|
||||
ftpPassword = tumsConfig.getFtpPassword();
|
||||
ftpUploadpath = tumsConfig.getFtpUploadpath();
|
||||
}
|
||||
if(StringUtils.isNotBlank(cameraInfo.getFtpUploadpath())){
|
||||
ftpUploadpath = cameraInfo.getFtpUploadpath();
|
||||
}
|
||||
String deviceIndex = cameraInfo.getDeviceIndex();
|
||||
String parentId = cameraInfo.getParentId();
|
||||
String fileName = cameraInfo.getFileName();
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("{");
|
||||
sb.append("\"videoDevId\"").append(":").append("\"").append(deviceIndex).append("\",");
|
||||
if(parentId!=null&&!parentId.equals("")&&!parentId.equals("0")){
|
||||
//存储设备ID
|
||||
sb.append("\"storageDevId\"").append(":").append("\"").append(parentId).append("\",");
|
||||
}else{
|
||||
//SK卡,取自身设备ID
|
||||
sb.append("\"storageDevId\"").append(":").append("\"").append(deviceIndex).append("\",");
|
||||
}
|
||||
sb.append("\"videoType\"").append(":").append(cameraInfo.getVideoType()).append(",");
|
||||
sb.append("\"storageType\"").append(":").append("0").append(",");
|
||||
if(fileName!=null&&!fileName.equals("")){
|
||||
//存储设备ID
|
||||
sb.append("\"filename\"").append(":").append("\"").append(fileName).append("\",");
|
||||
}
|
||||
sb.append("\"startTime\"").append(":").append(cameraInfo.getStartTime()).append(",");
|
||||
sb.append("\"endTime\"").append(":").append(cameraInfo.getEndTime()).append(",");
|
||||
sb.append("\"downloadInfo\"").append(":{");
|
||||
sb.append("\"username\"").append(":").append("\"").append(ftpUsername).append("\",");
|
||||
sb.append("\"password\"").append(":").append("\"").append(ftpPassword).append("\",");
|
||||
sb.append("\"path\"").append(":").append("\"").append(ftpUploadpath).append("\",");
|
||||
sb.append("\"ftpIp\"").append(":").append("\"").append(ftpIp).append("\",");
|
||||
sb.append("\"ftpPort\"").append(":").append(ftpPort);
|
||||
sb.append("}");
|
||||
sb.append("}");
|
||||
String res = tumsApi.uploadToServer(sb.toString());
|
||||
JSONObject jsonObject = new JSONObject(res);
|
||||
String errorCode = jsonObject.getStr("error_code");
|
||||
if(errorCode.equals("0")){
|
||||
JSONObject result = jsonObject.getJSONObject("result");
|
||||
String taskId = result.getStr("taskId");
|
||||
cameraInfo.setTaskId(taskId);
|
||||
return ftpUploadpath+fileName;
|
||||
}else{
|
||||
String errorMsg = "";
|
||||
try{
|
||||
ErrorCode errorVo = errorCodeService.getByCode(errorCode);
|
||||
errorMsg = errorVo.getErrorMsg();
|
||||
}catch (Exception e){
|
||||
errorMsg = errorCode;
|
||||
}
|
||||
log.info("uploadToServerResult:{}-{}",errorCode,errorMsg);
|
||||
return "error";
|
||||
}
|
||||
}
|
||||
|
||||
@DS("devops")
|
||||
public void devopsBaoxiu(CameraInfo cameraInfo){
|
||||
baseMapper.updateById(cameraInfo);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,12 @@
|
|||
<version>2.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.nursingunit.boot</groupId>
|
||||
<artifactId>nu-iot-biz</artifactId>
|
||||
<version>2.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
package com.nu.modules.biz.care.order.job;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.nu.entity.CareOrdersSubEntity;
|
||||
import com.nu.modules.biz.care.order.entity.CareOrdersSub;
|
||||
import com.nu.modules.biz.care.order.service.ICareOrdersService;
|
||||
import com.nu.modules.biz.care.order.service.ICareOrdersSubService;
|
||||
import com.nu.modules.tplink.camera.service.ICameraInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
import org.quartz.JobExecutionException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 指令池批量生成工单
|
||||
*/
|
||||
@Slf4j
|
||||
public class CareSubDownTplinkJob implements Job {
|
||||
|
||||
|
||||
@Autowired
|
||||
private ICareOrdersSubService careOrdersSubService;
|
||||
|
||||
@Autowired
|
||||
private ICameraInfoService tplinkService;
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
log.error("OrdersJob:{}-{}", DateUtils.now(),"护理类指令池批量生成工单开始");
|
||||
|
||||
QueryWrapper<CareOrdersSub> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.isNull("tplink_path");
|
||||
List<CareOrdersSub> careOrdersSubList = careOrdersSubService.list(queryWrapper);
|
||||
for (CareOrdersSub careOrdersSubEntity : careOrdersSubList){
|
||||
try {
|
||||
String serviceDuration = careOrdersSubEntity.getServiceDuration();
|
||||
if(!StringUtils.isBlank(serviceDuration)){
|
||||
Date beginTime = careOrdersSubEntity.getBeginTime();
|
||||
Date finishTime = careOrdersSubEntity.getFinishTime();
|
||||
long diffInMillis = Math.abs(finishTime.getTime() - beginTime.getTime());
|
||||
long diffMinutes = TimeUnit.MILLISECONDS.toMinutes(diffInMillis);
|
||||
long sj = Long.parseLong(serviceDuration);
|
||||
if(diffMinutes>sj){
|
||||
finishTime = new Date(finishTime.getTime() + Math.abs(sj/2) * 60 * 1000);
|
||||
}
|
||||
String nuId = careOrdersSubEntity.getNuId();
|
||||
String startTime = DateUtils.formatDate(careOrdersSubEntity.getBeginTime(),"yyyy-MM-dd HH:mm:ss");
|
||||
String endTime = DateUtils.formatDate(finishTime,"yyyy-MM-dd HH:mm:ss");
|
||||
System.out.println("nuId:"+nuId);
|
||||
System.out.println("startTime:"+startTime);
|
||||
System.out.println("endTime:"+endTime);
|
||||
String resultTplink = tplinkService.zdyTplinkVideo(nuId,startTime,endTime);
|
||||
if(!StringUtils.equals("error",resultTplink)){
|
||||
careOrdersSubEntity.setTplinkPath(resultTplink);
|
||||
careOrdersSubService.updateById(careOrdersSubEntity);
|
||||
}else{
|
||||
careOrdersSubEntity.setTplinkPath("error");
|
||||
careOrdersSubService.updateById(careOrdersSubEntity);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -7,21 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nu.entity.CareOrdersEntity;
|
||||
import com.nu.entity.CareOrdersSubEntity;
|
||||
import com.nu.entity.CgdSxdEntity;
|
||||
import com.nu.modules.biz.care.order.entity.CareOrders;
|
||||
import com.nu.modules.biz.care.order.entity.CareOrdersSub;
|
||||
import com.nu.modules.biz.care.order.mapper.CareOrdersMapper;
|
||||
import com.nu.modules.biz.care.order.mapper.CareOrdersSubMapper;
|
||||
import com.nu.modules.biz.care.order.service.ICareOrdersService;
|
||||
import com.nu.modules.biz.care.order.service.ICareOrdersSubService;
|
||||
import com.nu.modules.care.api.ICarePadApi;
|
||||
import com.nu.modules.config.sendorderrule.entity.SendOrderRule;
|
||||
import com.nu.modules.config.sendorderrule.entity.SendOrderRuleSub;
|
||||
import com.nu.modules.config.sendorderrule.service.ISendOrderRuleService;
|
||||
import com.nu.modules.config.sendorderrule.service.ISendOrderRuleSubService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.system.query.QueryGenerator;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -29,7 +21,6 @@ import org.springframework.stereotype.Service;
|
|||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 服务指令工单主表
|
||||
|
|
|
|||
Loading…
Reference in New Issue