648540858
2024-03-29 03248551906304a182d489ad90654d72a491791c
Merge branch 'master' into dev/abl支持
5个文件已修改
75 ■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_src/src/components/channelList.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
@@ -220,13 +220,8 @@
    /**
     * 看守位控制命令
     *
     * @param device      视频设备
     * @param channelId      通道id,非通道则是设备本身
     * @param enabled     看守位使能:1 = 开启,0 = 关闭
     * @param resetTime   自动归位时间间隔,开启看守位时使用,单位:秒(s)
     * @param presetIndex 调用预置位编号,开启看守位时使用,取值范围0~255
     */
    void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException;
    void homePositionCmd(Device device, String channelId, Boolean enabled, Integer resetTime, Integer presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException;
    /**
     * 设备配置命令
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -875,7 +875,7 @@
     * @param presetIndex 调用预置位编号,开启看守位时使用,取值范围0~255
     */
    @Override
    public void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException {
    public void homePositionCmd(Device device, String channelId, Boolean enabled, Integer resetTime, Integer presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException {
        StringBuffer cmdXml = new StringBuffer(200);
        String charset = device.getCharset();
@@ -889,18 +889,10 @@
            cmdXml.append("<DeviceID>" + channelId + "</DeviceID>\r\n");
        }
        cmdXml.append("<HomePosition>\r\n");
        if (NumericUtil.isInteger(enabled) && (!enabled.equals("0"))) {
        if (enabled) {
            cmdXml.append("<Enabled>1</Enabled>\r\n");
            if (NumericUtil.isInteger(resetTime)) {
                cmdXml.append("<ResetTime>" + resetTime + "</ResetTime>\r\n");
            } else {
                cmdXml.append("<ResetTime>0</ResetTime>\r\n");
            }
            if (NumericUtil.isInteger(presetIndex)) {
                cmdXml.append("<PresetIndex>" + presetIndex + "</PresetIndex>\r\n");
            } else {
                cmdXml.append("<PresetIndex>0</PresetIndex>\r\n");
            }
            cmdXml.append("<ResetTime>" + resetTime + "</ResetTime>\r\n");
            cmdXml.append("<PresetIndex>" + presetIndex + "</PresetIndex>\r\n");
        } else {
            cmdXml.append("<Enabled>0</Enabled>\r\n");
        }
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/control/cmd/DeviceControlQueryMessageHandler.java
@@ -248,7 +248,7 @@
            HomePositionRequest homePosition = loadElement(rootElement, HomePositionRequest.class);
            //获取整个消息主体,我们只需要修改请求头即可
            HomePositionRequest.HomePosition info = homePosition.getHomePosition();
            cmder.homePositionCmd(device, channelId, info.getEnabled(), info.getResetTime(), info.getPresetIndex(),
            cmder.homePositionCmd(device, channelId, !"0".equals(info.getEnabled()), Integer.parseInt(info.getResetTime()), Integer.parseInt(info.getPresetIndex()),
                    errorResult -> onError(request, errorResult),
                    okResult -> onOk(request, okResult));
        } catch (Exception e) {
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/device/DeviceControl.java
@@ -13,7 +13,7 @@
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import io.swagger.v3.oas.annotations.Operation;
@@ -45,7 +45,7 @@
    private IVideoManagerStorage storager;
    @Autowired
    private SIPCommander cmder;
    private ISIPCommander cmder;
    @Autowired
    private DeferredResultHolder resultHolder;
@@ -254,15 +254,13 @@
    @Operation(summary = "看守位控制", security = @SecurityRequirement(name = JwtUtils.HEADER))
    @Parameter(name = "deviceId", description = "设备国标编号", required = true)
    @Parameter(name = "channelId", description = "通道国标编号", required = true)
    @Parameter(name = "enabled", description = "是否开启看守位 1:开启,0:关闭", required = true)
    @Parameter(name = "enabled", description = "是否开启看守位", required = true)
    @Parameter(name = "presetIndex", description = "调用预置位编号")
    @Parameter(name = "resetTime", description = "自动归位时间间隔")
    @GetMapping("/home_position/{deviceId}/{enabled}")
    public DeferredResult<String> homePositionApi(@PathVariable String deviceId,
                                                                @PathVariable String enabled,
                                                                @RequestParam(required = false) String resetTime,
                                                                @RequestParam(required = false) String presetIndex,
                                                                String channelId) {
    @Parameter(name = "resetTime", description = "自动归位时间间隔 单位:秒")
    @GetMapping("/home_position")
    public DeferredResult<String> homePositionApi(String deviceId, String channelId, Boolean enabled,
                                                  @RequestParam(required = false) Integer resetTime,
                                                  @RequestParam(required = false) Integer presetIndex) {
        if (logger.isDebugEnabled()) {
            logger.debug("报警复位API调用");
        }
web_src/src/components/channelList.vue
@@ -178,13 +178,24 @@
                         @click="changeSubchannel(scope.row)">查看
              </el-button>
              <el-divider v-if="scope.row.subCount > 0 || scope.row.parental === 1" direction="vertical"></el-divider>
              <el-button size="medium" v-bind:disabled="device == null || device.online === 0"
                         icon="el-icon-video-camera"
                         type="text" @click="queryRecords(scope.row)">设备录像
              </el-button>
              <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"
                         type="text" @click="queryCloudRecords(scope.row)">云端录像
              </el-button>
<!--              <el-button size="medium" v-bind:disabled="device == null || device.online === 0"-->
<!--                         icon="el-icon-video-camera"-->
<!--                         type="text" @click="queryRecords(scope.row)">设备录像-->
<!--              </el-button>-->
<!--              <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"-->
<!--                         type="text" @click="queryCloudRecords(scope.row)">云端录像-->
<!--              </el-button>-->
              <el-dropdown @command="(command)=>{moreClick(command, scope.row)}">
                <el-button size="medium" type="text" >
                  更多功能<i class="el-icon-arrow-down el-icon--right"></i>
                </el-button>
                <el-dropdown-menu slot="dropdown">
                  <el-dropdown-item command="records" v-bind:disabled="device == null || device.online === 0">
                    设备录像</el-dropdown-item>
                  <el-dropdown-item command="cloudRecords" v-bind:disabled="device == null || device.online === 0" >
                    云端录像</el-dropdown-item>
                </el-dropdown-menu>
              </el-dropdown>
            </template>
          </el-table-column>
        </el-table>
@@ -372,6 +383,13 @@
        // that.$message.error("请求超时");
      });
    },
    moreClick: function (command, itemData) {
      if (command === "records") {
        this.queryRecords(itemData)
      }else if (command === "cloudRecords") {
        this.queryCloudRecords(itemData)
      }
    },
    queryRecords: function (itemData) {
      let deviceId = this.deviceId;
      let channelId = itemData.channelId;