package com.ruoyi.dataInterchange.server;
|
|
import com.alibaba.fastjson.JSON;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.dataInterchange.dao.UPAuthorizeMsgStartupDao;
|
import com.ruoyi.dataInterchange.dao.UPExgMsgRegisterDao;
|
import com.ruoyi.dataInterchange.model.DOWNPlaybackMsgStartup;
|
import com.ruoyi.dataInterchange.model.UPAuthorizeMsgStartup;
|
import com.ruoyi.dataInterchange.model.UPExgMsgRegister;
|
import com.ruoyi.dataInterchange.model.enu.DataType;
|
import com.ruoyi.dataInterchange.netty.client.ChannelMap;
|
import com.ruoyi.dataInterchange.util.jtt809.packet.common.OuterPacket;
|
import io.netty.channel.Channel;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.time.LocalDateTime;
|
import java.time.ZoneOffset;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/3/24 10:17
|
*/
|
@Slf4j
|
@Service
|
public class DOWNPlaybackMsgStartupService {
|
|
@Resource
|
private UPExgMsgRegisterDao upExgMsgRegisterDao;
|
|
@Resource
|
private UPAuthorizeMsgStartupDao upAuthorizeMsgStartupDao;
|
|
|
/**
|
* 远程录像回放请求
|
*
|
* @param inferiorPlatformId
|
* @param vehicleNo
|
* @return
|
*/
|
public R playbackMsgStartup(Integer inferiorPlatformId, String vehicleNo, LocalDateTime startTime, LocalDateTime endTime) {
|
Channel channel = ChannelMap.getClientChannel(inferiorPlatformId);
|
if (!channel.isActive()) {
|
return R.fail("失败");
|
}
|
//查询车辆信息
|
UPExgMsgRegister exgMsgRegister = upExgMsgRegisterDao.findByVehicleNo(vehicleNo);
|
UPAuthorizeMsgStartup authorizeMsgStartup = upAuthorizeMsgStartupDao.findByInferiorPlatformIdOrderByCreateTimeDesc(inferiorPlatformId);
|
if (null == authorizeMsgStartup) {
|
return R.fail("获取失效口令失败");
|
}
|
DOWNPlaybackMsgStartup downPlaybackMsgStartup = new DOWNPlaybackMsgStartup();
|
downPlaybackMsgStartup.setVehicleNo(exgMsgRegister.getVehicleNo());
|
downPlaybackMsgStartup.setVehicleColor(exgMsgRegister.getVehicleColor());
|
downPlaybackMsgStartup.setDataType(DataType.DOWN_PLAYBACK_MSG_STARTUP.getCode());
|
downPlaybackMsgStartup.setDataLength(2);
|
downPlaybackMsgStartup.setChannelId(1);
|
downPlaybackMsgStartup.setAvttemType(0X00);
|
downPlaybackMsgStartup.setStreamType(0);
|
downPlaybackMsgStartup.setMemType(0);
|
downPlaybackMsgStartup.setPlaybackStartTime(startTime.toEpochSecond(ZoneOffset.ofHours(8)));
|
downPlaybackMsgStartup.setPlaybackEndTime(endTime.toEpochSecond(ZoneOffset.ofHours(8)));
|
downPlaybackMsgStartup.setAuthorizeCode(authorizeMsgStartup.getAuthorizeCode1());
|
downPlaybackMsgStartup.setGnssData("");
|
byte[] body = downPlaybackMsgStartup.encode();
|
OuterPacket out = new OuterPacket(DataType.DOWN_PLAYBACK_MSG.getCode(), body);
|
channel.writeAndFlush(out);
|
log.info("远程录像回放请求({}):{}", DataType.DOWN_PLAYBACK_MSG_STARTUP.getCode(), JSON.toJSONString(downPlaybackMsgStartup));
|
return R.ok();
|
}
|
}
|