Browse Source

提交: AI预警实时推送逻辑修改

nantong
袁强 1 month ago
parent
commit
51deca2ed7
  1. 10
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteNoticeService.java
  2. 74
      dk-api/api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteNoticeBo.java
  3. 25
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  4. 1
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java
  5. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/SysNotice.java
  6. 38
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteNoticeServiceImpl.java

10
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteNoticeService.java

@ -0,0 +1,10 @@
package org.dromara.system.api;
import org.dromara.system.api.domain.bo.RemoteNoticeBo;
import org.dromara.system.api.domain.vo.RemotePostVo;
import java.util.List;
public interface RemoteNoticeService {
int saveNotice(RemoteNoticeBo bo);
}

74
dk-api/api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteNoticeBo.java

@ -0,0 +1,74 @@
package org.dromara.system.api.domain.bo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 操作日志记录表 oper_log
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
public class RemoteNoticeBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long noticeId;
/**
* 公告标题
*/
private String noticeTitle;
/**
* 公告类型1通知 2公告
*/
private String noticeType;
/**
* 公告内容
*/
private String noticeContent;
/**
* 公告状态0正常 1关闭
*/
private String status;
/**
* 备注
*/
private String remark;
private Integer isRead;
/**
* 创建部门
*/
private Long createDept;
/**
* 创建者
*/
private Long createBy;
private String deviceSn;
/**
* 创建时间
*/
private Date createTime;
private String param;
}

25
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -1,6 +1,7 @@
package org.dromara.business.controller; package org.dromara.business.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson.JSON;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -9,17 +10,22 @@ import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.BusinessAlertVo; import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IBusinessAlertService; import org.dromara.business.service.IBusinessAlertService;
import org.dromara.business.utils.MinioUntil;
import org.dromara.business.utils.constants.MinIOConstants;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.log.annotation.Log; import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController; import org.dromara.common.web.core.BaseController;
import org.dromara.system.api.RemoteNoticeService;
import org.dromara.system.api.domain.bo.RemoteNoticeBo;
import org.dromara.workflow.api.RemoteWorkflowService; import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess; import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -39,6 +45,8 @@ public class BusinessAlertController extends BaseController {
private final IBusinessAlertService businessAlertService; private final IBusinessAlertService businessAlertService;
@DubboReference(timeout = 30000) @DubboReference(timeout = 30000)
private RemoteWorkflowService remoteWorkflowService; private RemoteWorkflowService remoteWorkflowService;
@DubboReference(timeout = 30000)
private RemoteNoticeService remoteNoticeService;
/** /**
* 查询全部预警/待办/已完成/忽略 * 查询全部预警/待办/已完成/忽略
@ -79,13 +87,28 @@ public class BusinessAlertController extends BaseController {
*/ */
@Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存") @Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存")
@PostMapping("/saveAlert") @PostMapping("/saveAlert")
public void saveAlert(BusinessAlertVo vo) { public void saveAlert(@RequestBody BusinessAlertVo vo) {
vo.setBusinessType(2); vo.setBusinessType(2);
BusinessAlert businessAlert = businessAlertService.addBusinessAlert(vo); BusinessAlert businessAlert = businessAlertService.addBusinessAlert(vo);
RemoteStartProcess startProcess = new RemoteStartProcess(); RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(businessAlert.getId())); startProcess.setBusinessId(String.valueOf(businessAlert.getId()));
startProcess.setFlowCode("alertChz"); startProcess.setFlowCode("alertChz");
remoteWorkflowService.startWorkFlowBatch(List.of(startProcess)); remoteWorkflowService.startWorkFlowBatch(List.of(startProcess));
RemoteNoticeBo remoteNoticeBo = new RemoteNoticeBo();
remoteNoticeBo.setNoticeTitle(vo.getDeptName()+"产生预警,预警类型["+vo.getLabelCn()+"],请立即查看");
remoteNoticeBo.setNoticeType("3");
remoteNoticeBo.setNoticeContent(vo.getDeptName()+"产生预警,预警类型["+vo.getLabelCn()+"],请立即查看");
remoteNoticeBo.setStatus("0");
remoteNoticeBo.setIsRead(0);
remoteNoticeBo.setCreateBy(1L);
remoteNoticeBo.setCreateDept(1L);
remoteNoticeBo.setCreateTime(new Date());
if (vo.getBusinessType() == 2){
vo.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_DKCY, vo.getImages(), 3600).toString());
}
remoteNoticeBo.setDeviceSn(vo.getDeviceSn());
remoteNoticeBo.setParam(JSON.toJSONString(vo));
remoteNoticeService.saveNotice(remoteNoticeBo);
} }

1
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java

@ -205,4 +205,5 @@ public class BusinessAlertVo implements Serializable {
private Date createTime; private Date createTime;
//1:图片比对预警 2:AI实时预警 //1:图片比对预警 2:AI实时预警
private Integer businessType; private Integer businessType;
private String deviceSn;
} }

1
dk-modules/system/src/main/java/org/dromara/system/domain/SysNotice.java

@ -48,4 +48,5 @@ public class SysNotice extends TenantEntity {
*/ */
private String remark; private String remark;
private Integer isRead;
} }

38
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteNoticeServiceImpl.java

@ -0,0 +1,38 @@
package org.dromara.system.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.service.DictService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.resource.api.RemoteMessageService;
import org.dromara.system.api.RemoteNoticeService;
import org.dromara.system.api.domain.bo.RemoteNoticeBo;
import org.dromara.system.domain.SysNotice;
import org.dromara.system.mapper.SysNoticeMapper;
import org.springframework.stereotype.Service;
/**
* @author sean
* @version 1.1
* @date 2022/6/1
*/
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteNoticeServiceImpl implements RemoteNoticeService {
private final DictService dictService;
private final SysNoticeMapper sysNoticeMapper;
@DubboReference
private final RemoteMessageService remoteMessageService;
@Override
public int saveNotice(RemoteNoticeBo bo) {
SysNotice notice = MapstructUtils.convert(bo, SysNotice.class);
/*String type = dictService.getDictLabel("sys_notice_type", notice.getNoticeType());*/
remoteMessageService.publishAll(bo.getParam());
return sysNoticeMapper.insert(notice);
}
}
Loading…
Cancel
Save