From 2f1ebca335c80acf9155c8a8cc4d62ae39093f83 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Sun, 19 May 2024 23:50:37 +0800 Subject: [PATCH] =?UTF-8?q?1078-=E5=8D=95=E6=9D=A1=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E5=A4=9A=E5=AA=92=E4=BD=93=E6=95=B0=E6=8D=AE=E6=A3=80=E7=B4=A2?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/jt1078/cmd/JT1078Template.java | 12 +++++ .../jt1078/controller/JT1078Controller.java | 17 ++++++- .../controller/bean/QueryMediaDataParam.java | 23 +++++++++ .../iot/vmp/jt1078/proc/response/J8805.java | 48 +++++++++++++++++++ .../vmp/jt1078/service/Ijt1078Service.java | 2 + .../service/impl/jt1078ServiceImpl.java | 8 ++++ 6 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8805.java diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java b/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java index 6a5740253..7cb18ff11 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java @@ -44,6 +44,7 @@ public class JT1078Template { private static final String H8802 = "8802"; private static final String H8803 = "8803"; private static final String H8804 = "8804"; + private static final String H8805 = "8805"; private static final String H9101 = "9101"; private static final String H9102 = "9102"; private static final String H9201 = "9201"; @@ -618,4 +619,15 @@ public class JT1078Template { .build(); return SessionManager.INSTANCE.request(cmd, timeOut); } + + public Object uploadMediaDataForSingle(String devId, J8805 j8805, int timeOut) { + Cmd cmd = new Cmd.Builder() + .setDevId(devId) + .setPackageNo(randomInt()) + .setMsgId(H8805) + .setRespId(H0801) + .setRs(j8805) + .build(); + return SessionManager.INSTANCE.request(cmd, timeOut); + } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java index 84e45b706..65c6548be 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java @@ -808,7 +808,15 @@ public class JT1078Controller { fail.setData(resultList); deferredResult.setResult(fail); }); - List ids = service.queryMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + List ids; + if (param.getMediaId() != null) { + ids = new ArrayList<>(); + JTMediaDataInfo mediaDataInfo = new JTMediaDataInfo(); + mediaDataInfo.setId(param.getMediaId()); + ids.add(mediaDataInfo); + }else { + ids = service.queryMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + } if (ids.isEmpty()) { deferredResult.setResult(WVPResult.fail(ErrorCode.ERROR100)); return deferredResult; @@ -840,7 +848,12 @@ public class JT1078Controller { return deferredResult; } taskExecutor.execute(()->{ - service.uploadMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + if (param.getMediaId() != null) { + service.uploadMediaDataForSingle(param.getDeviceId(), param.getMediaId(), param.getDelete()); + }else { + service.uploadMediaData(param.getDeviceId(), param.getQueryMediaDataCommand()); + } + }); return deferredResult; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java index 5c455d55f..996dd32a4 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/QueryMediaDataParam.java @@ -10,6 +10,12 @@ public class QueryMediaDataParam { @Schema(description = "设备") private String deviceId; + @Schema(description = "多媒体 ID, 单条存储多媒体数据检索上传时有效") + private Long mediaId; + + @Schema(description = "删除标志, 单条存储多媒体数据检索上传时有效") + private int delete; + @Schema(description = "存储多媒体数据参数") private JTQueryMediaDataCommand queryMediaDataCommand; @@ -29,10 +35,27 @@ public class QueryMediaDataParam { this.queryMediaDataCommand = queryMediaDataCommand; } + public int getDelete() { + return delete; + } + + public void setDelete(int delete) { + this.delete = delete; + } + + public Long getMediaId() { + return mediaId; + } + + public void setMediaId(Long mediaId) { + this.mediaId = mediaId; + } + @Override public String toString() { return "QueryMediaDataParam{" + "deviceId='" + deviceId + '\'' + + ", mediaId=" + mediaId + ", queryMediaDataCommand=" + queryMediaDataCommand + '}'; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8805.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8805.java new file mode 100644 index 000000000..94f3e40e4 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8805.java @@ -0,0 +1,48 @@ +package com.genersoft.iot.vmp.jt1078.proc.response; + +import com.genersoft.iot.vmp.jt1078.annotation.MsgId; +import com.genersoft.iot.vmp.jt1078.bean.JTQueryMediaDataCommand; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * 单条存储多媒体数据检索上传命令 + */ +@MsgId(id = "8805") +public class J8805 extends Rs { + + /** + * 多媒体 ID + */ + private Long mediaId; + + /** + * 删除标志, 0:保留;1:删除, 存储多媒体数据上传命令中使用 + */ + private Integer delete; + + @Override + public ByteBuf encode() { + ByteBuf byteBuf = Unpooled.buffer(); + byteBuf.writeInt((int) (mediaId & 0xffffffffL)); + byteBuf.writeByte(delete); + return byteBuf; + } + + public Long getMediaId() { + return mediaId; + } + + public void setMediaId(Long mediaId) { + this.mediaId = mediaId; + } + + public Integer getDelete() { + return delete; + } + + public void setDelete(Integer delete) { + this.delete = delete; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java index 61940b3b2..4d34a1a5d 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java @@ -103,4 +103,6 @@ public interface Ijt1078Service { void uploadMediaData(String deviceId, JTQueryMediaDataCommand queryMediaDataCommand); void record(String deviceId, int command, Integer time, Integer save, Integer samplingRate); + + void uploadMediaDataForSingle(String deviceId, Long mediaId, Integer delete); } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java index a2d2fee02..8ac9c9ae5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java @@ -736,4 +736,12 @@ public class jt1078ServiceImpl implements Ijt1078Service { j8804.setSamplingRate(samplingRate); jt1078Template.record(deviceId, j8804, 10); } + + @Override + public void uploadMediaDataForSingle(String deviceId, Long mediaId, Integer delete) { + J8805 j8805 = new J8805(); + j8805.setMediaId(mediaId); + j8805.setDelete(delete); + jt1078Template.uploadMediaDataForSingle(deviceId, j8805, 10); + } }