1.智眸接口优化

2.蛙跳机库接口优化
3.机库列表优化
This commit is contained in:
sdy 2026-06-11 18:46:41 +08:00
parent 23864f27bd
commit 69b89434b9
11 changed files with 34 additions and 22 deletions

View File

@ -50,7 +50,6 @@ public class DockController {
@DataFilter
@RequiresPermissions("bus:dock:page")
public Result<PageData<DockDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
params.put("scenario", "inspection");
PageData<DockDTO> page = dockService.pageList(params);
return new Result<PageData<DockDTO>>().ok(page);

View File

@ -50,7 +50,6 @@ public class MultiController {
@DataFilter
@RequiresPermissions("bus:dock:page")
public Result<PageData<DockDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
params.put("scenario", "multi");
PageData<DockDTO> page = multiService.pageList(params);
return new Result<PageData<DockDTO>>().ok(page);
@ -118,14 +117,14 @@ public class MultiController {
return new Result<>();
}
@DeleteMapping("/updateMultiGroupDevice")
@DeleteMapping("/deleteMultiGroupDevice")
@Operation(summary = "蛙跳组解绑设备")
@LogOperation("蛙跳组解绑设备")
@RequiresPermissions("bus:multi:updateMultiGroupDevice")
public Result<Object> updateMultiGroupDevice(@RequestBody List<Long> ids) {
@RequiresPermissions("bus:multi:deleteMultiGroupDevice")
public Result<Object> deleteMultiGroupDevice(@RequestBody List<String> dockSn) {
//效验数据
AssertUtils.isListEmpty(ids, "ids");
multiService.deleteMultiGroupDevice(ids);
AssertUtils.isListEmpty(dockSn, "dockSn");
multiService.deleteMultiGroupDevice(dockSn);
return new Result<>();
}

View File

@ -97,7 +97,7 @@ public class ZhiMouController {
@Operation(summary = "下载AI检测报告")
@PostMapping("/downloadReport")
@RequiresPermissions("ai:zhiMou:downloadReport")
@RequiresPermissions("bus:zhiMou:downloadReport")
public ResponseEntity<byte[]> getReportByBusinessId(@RequestBody DownloadReport downloadReport) {
ValidatorUtils.validateEntity(downloadReport);
byte[] reportBytes = zhiMouService.downloadReport(downloadReport);

View File

@ -4,11 +4,11 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.multictrl.common.validator.group.AddGroup;
import com.multictrl.common.validator.group.UpdateGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import java.util.List;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
@ -22,14 +22,14 @@ public class MultiGroupDeviceDTO {
/**
* 蛙跳组id
*/
@NotBlank(message = "{group.id.require}", groups = {AddGroup.class, UpdateGroup.class})
@NotNull(message = "蛙跳组标识不能为空", groups = {AddGroup.class, UpdateGroup.class})
@JsonProperty(required = true)
@Schema(description = "蛙跳组id")
private Long groupId;
/**
* 网关sn
*/
@NotEmpty(message = "{gateway.sns.require}", groups = {AddGroup.class, UpdateGroup.class})
@NotEmpty(message = "设备网关sn不能为空", groups = {AddGroup.class, UpdateGroup.class})
@JsonProperty(required = true)
@Schema(description = "设备网关sn列表")
private List<String> gatewaySns;

View File

@ -17,18 +17,18 @@ import org.springframework.stereotype.Component;
@Slf4j
@Component
@RequiredArgsConstructor
public class ZhiMouCallbackHandler implements MessageHandler{
public class ZhiMouCallbackHandler implements MessageHandler {
private final ZhimouCallbackDao zhimouCallbackDao;
@Override
public void handleMessage(String topic, String payload, String gateway) {
log.debug("zhiMouCallback --> topic: {}, payload: {}", topic, payload);
JSONObject data = JsonUtils.parseObject(payload, JSONObject.class);
if(data!=null){
if (data != null) {
String event = data.getStr("event");
if("start".equals(event)||"stop".equals(event)){
if ("start".equals(event) || "stop".equals(event)) {
ZhimouCallbackEntity entity = new ZhimouCallbackEntity();
entity.setAppId(data.getStr("appId"));
entity.setAppId(data.getStr("app_id"));
entity.setBusinessId(data.getStr("business_id"));
entity.setDevice(data.getStr("device"));
entity.setEvent(event);

View File

@ -91,7 +91,7 @@ public class Q20StatusHandler implements MessageHandler {
message.set("timestamp", System.currentTimeMillis());
message.remove(BusinessConstant.NEED_REPLY);
String replyTopic = topic + Q20Constant.STATUS_REPLY_SUFFIX;
mqttPushService.pushMessageByClient1(replyTopic, message.toString());
mqttPushService.pushMessageByClient1NotLog(replyTopic, message.toString());
// log.debug("Q20 status --> 已回复, topic: {}", replyTopic);
}
}

View File

@ -34,6 +34,11 @@ public class MqttPushService {
setHeader("mqtt_topic", topic).build());
}
public void pushMessageByClient1NotLog(String topic, String msg) {
mqttOutboundHandler1.send(MessageBuilder.withPayload(msg).
setHeader("mqtt_topic", topic).build());
}
/**
* 客户端2推送消息 该连接处理drc控制的协议交互
*

View File

@ -29,7 +29,7 @@ public interface MultiService {
void updateMultiGroup(MultiGroupDTO multiGroupDTO);
// void updateMultiGroupDevice(MultiGroupDeviceDTO multiGroupDeviceDTO);
void deleteMultiGroupDevice(List<Long> ids);
void deleteMultiGroupDevice(List<String> dockSn);
void deleteMultiGroup(List<Long> ids);

View File

@ -51,6 +51,7 @@ public class DockServiceImpl extends CrudServiceImpl<DockDao, DockEntity, DockDT
String key = (String) params.get("key");
String scenario = (String) params.get("scenario");
Object dockSns = params.get("dockSns");
Object notDockSns = params.get("notDockSns");
QueryWrapper<DockEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StrUtil.isNotBlank(id), "id", id);
@ -58,7 +59,10 @@ public class DockServiceImpl extends CrudServiceImpl<DockDao, DockEntity, DockDT
wrapper.and(StrUtil.isNotBlank(key), qw ->
qw.like("dock_name", key).or().eq("dock_sn", key));
if (dockSns != null) {
wrapper.notIn("dock_sn", (List<String>) dockSns);
wrapper.in("dock_sn", (List<String>) dockSns);
}
if (notDockSns != null) {
wrapper.notIn("dock_sn", (List<String>) notDockSns);
}
wrapper.orderByDesc("update_date");
@ -88,6 +92,7 @@ public class DockServiceImpl extends CrudServiceImpl<DockDao, DockEntity, DockDT
@Override
public PageData<DockDTO> pageList(Map<String, Object> params) {
params.put("scenario", "inspection");
PageData<DockDTO> page = page(params);
for (DockDTO dockDTO : page.getList()) {
Integer dockModeCode = djiBaseService.getDockModeCode(dockDTO.getDockSn());

View File

@ -70,7 +70,8 @@ public class MultiServiceImpl implements MultiService {
if (CollUtil.isNotEmpty(multiGroupDeviceEntities)) {
dockSns = multiGroupDeviceEntities.stream().map(MultiGroupDeviceEntity::getGatewaySn).toList();
}
params.put("dockSns", dockSns);
params.put("notDockSns", dockSns);
params.put("scenario", "multi");
PageData<DockDTO> page = dockService.page(params);
addDockProperty(page.getList());
return page;
@ -127,8 +128,9 @@ public class MultiServiceImpl implements MultiService {
}*/
@Override
public void deleteMultiGroupDevice(List<Long> ids) {
multiGroupDeviceDao.deleteByIds(ids);
public void deleteMultiGroupDevice(List<String> dockSn) {
multiGroupDeviceDao.delete(new QueryWrapper<MultiGroupDeviceEntity>()
.in("gateway_sn", dockSn));
}
@Transactional(rollbackFor = Exception.class)

View File

@ -207,7 +207,8 @@ public class ZhiMouServiceImpl implements ZhiMouService {
zhiMouTask.setMode("video");
zhiMouTask.setAppId(zhiMouAiStart.getAppId());
zhiMouTask.setDevice(dockSn);
zhiMouTask.setBusinessId((String) CacheUtils.get(BusinessConstant.IN_FLIGHT_WORKING_TASK_ID + dockSn));
String dockTaskId = (String) CacheUtils.get(BusinessConstant.WORKING_TASK_ID + dockSn);
zhiMouTask.setBusinessId(dockTaskId);
zhiMouTask.setRules(zhiMouAiStart.getRules());
zhiMouTask.setInput(srsService.getUavPushLiveUrl(dockSn));
zhiMouTask.setOutput(srsService.getUavAiPushLiveUrl(dockSn));
@ -257,6 +258,7 @@ public class ZhiMouServiceImpl implements ZhiMouService {
.header(AUTHORIZATION, BEARER + zhiMouInfo.getToken())
.execute()
.body();
log.debug("invoke zhiMou start dockTaskId: {}", dockTaskId);
log.debug("invoke zhiMou start request: {},result: {}", jsonObject, result);
if (StrUtil.isNotBlank(result)) {
return JSONObject.parse(result);