Browse Source

[feat]

1、对接图片对比生成预警
master
杨威 3 months ago
parent
commit
cfabbaf5b6
  1. 1
      dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java
  2. 6
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  3. 11
      dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java
  4. 9
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  5. 5
      dk-modules/sample/pom.xml
  6. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java
  7. 8
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java
  8. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java
  9. 27
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java
  10. 5
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java
  11. 2
      dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java
  12. 2
      dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java
  13. 6
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
  14. 21
      dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml
  15. 5
      dk-modules/workflow/pom.xml
  16. 14
      dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java

1
dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java

@ -7,4 +7,5 @@ import java.util.List;
public interface RemotePostService {
List<RemotePostVo> listPost();
String getPostCode(String labelCode);
}

6
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java

@ -19,12 +19,8 @@ import java.util.List;
* @date 2025-02-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "business_alert", autoResultMap = true)
public class BusinessAlert extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
public class BusinessAlert {
/**
*

11
dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java

@ -11,9 +11,12 @@ import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IBusinessAlertService;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.system.api.domain.vo.RemotePostVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* 预警相关服务开放
@ -49,7 +52,13 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic
@Override
public List<RemoteBusinessAlertVo> listVerifyAlert(RemoteBusinessAlertBo businessAlertBo) {
List<BusinessAlertVo> businessAlerts = businessAlertService.listVerifyAlert(businessAlertBo);
return MapstructUtils.convert(businessAlerts,RemoteBusinessAlertVo.class);
return businessAlerts.stream()
.map(businessAlertVo -> {
RemoteBusinessAlertVo remotePostVo = new RemoteBusinessAlertVo();
BeanUtils.copyProperties(businessAlertVo, remotePostVo);
return remotePostVo;
})
.collect(Collectors.toList());
}
/**

9
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -27,6 +27,7 @@ import org.dromara.system.api.RemoteLabelPostService;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.lang.reflect.Method;
@ -76,7 +77,13 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
*/
@Override
public Boolean batchAddBusinessAlert(List<RemoteBusinessAlertVo> alertVoList) {
List<BusinessAlert> businessAlerts = MapstructUtils.convert(alertVoList, BusinessAlert.class);
List<BusinessAlert> businessAlerts = alertVoList.stream().map(alert -> {
BusinessAlert businessAlert = new BusinessAlert();
BeanUtils.copyProperties(alert, businessAlert);
return businessAlert;
}).toList();
return this.baseMapper.insertBatch(businessAlerts);
}

5
dk-modules/sample/pom.xml

@ -131,6 +131,11 @@
<artifactId>aws-java-sdk-sts</artifactId>
<version>1.12.261</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-workflow</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>

2
dk-modules/sample/src/main/java/org/dromara/sample/media/constant/MinIOConstants.java

@ -9,7 +9,7 @@ public interface MinIOConstants {
//桶名称 无人机图片
String BUCKET_MEDIAFILE = "mediafile";
String BUCKET_DKCY = "dkcy";
//桶名称 默认数据
String BUCKET_MINIO = "minio";

8
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java

@ -167,4 +167,12 @@ public class AiCompareController extends BaseController {
public R<Void> delAlertList(List<Long>ids) {
return toAjax(aiCompareService.delAlertList(ids));
}
/**
* 提交
*/
@PostMapping("/commit")
public R<Boolean> commitAlert(@RequestBody List<Map<String,Object>> alertList) {
return R.ok(aiCompareService.commitAlert(alertList));
}
}

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java

@ -32,4 +32,6 @@ public interface IAiCompareService {
List<RemoteBusinessAlertVo> alertList(String jobId);
Boolean delAlertList(List<Long>ids);
Boolean commitAlert(List<Map<String, Object>> alertList);
}

27
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java

@ -41,6 +41,8 @@ import org.dromara.sample.wayline.model.entity.WaylineJobEntity;
import org.dromara.sample.wayline.service.IAiCompareQueueService;
import org.dromara.sample.wayline.service.IAiCompareService;
import org.dromara.system.api.model.LoginUser;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.RemoteStartProcess;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -67,6 +69,10 @@ public class AiCompareServiceImpl implements IAiCompareService {
private final IAiComparePlateMapper aiComparePlateMapper;
@DubboReference
private final RemoteBusinessAlertService businessAlertService;
@DubboReference
private RemoteWorkflowService remoteWorkflowService;
@Override
public TableDataInfo<AiCompareEntity> queryPageList(AiCompareDTO bo, PageQuery pageQuery) {
return TableDataInfo.build(aiCompareMapper.selectPage(pageQuery.build(),this.buildAiCompareDTOQueryWrapper(bo)));
@ -143,8 +149,8 @@ public class AiCompareServiceImpl implements IAiCompareService {
List<AiCompareMediaFileDTO> mediaFileDTOList = aiCompareMapper.listMediaFile(jobId);
if(!mediaFileDTOList.isEmpty()){
mediaFileDTOList.stream().forEach(e->{
e.setFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString());
e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,e.getObjectKey(),seconds).toString());
e.setFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_DKCY,e.getObjectKey(),seconds).toString());
e.setMateFilePath(fileService.getObjectUrlOne(MinIOConstants.BUCKET_DKCY,e.getObjectKey(),seconds).toString());
if(isIllegal){
QueryWrapper<AiComparePlateEntity> queryWrapper = new QueryWrapper<AiComparePlateEntity>().eq("file_id", e.getFileId());
AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper);
@ -192,8 +198,8 @@ public class AiCompareServiceImpl implements IAiCompareService {
aiCompareEntity.setId(frameDTO.getCompareId());
aiCompareMapper.updateById(aiCompareEntity);
frameDTO.setJobName(aiCompareEntity.getJobName());
frameDTO.setFileUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,frameDTO.getFileUrl(),3600).toString());
frameDTO.setMateFileUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_MEDIAFILE,frameDTO.getMateFileUrl(),3600).toString());
frameDTO.setFileUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_DKCY,frameDTO.getFileUrl(),3600).toString());
frameDTO.setMateFileUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_DKCY,frameDTO.getMateFileUrl(),3600).toString());
String topic = TopicConst.IMAGE +TopicConst.FRAME;
mqttGatewayPublish.publish(topic,new CommonTopicRequest().setData(frameDTO),1);
return true;
@ -238,5 +244,18 @@ public class AiCompareServiceImpl implements IAiCompareService {
return businessAlertService.deleteAlert(ids);
}
@Override
public Boolean commitAlert(List<Map<String, Object>> alertList) {
List<RemoteStartProcess> startProcessList = alertList.stream().map(map -> {
String flowCode = remoteWorkflowService.getFlowCode(map.get("labelCn").toString());
RemoteStartProcess remoteStartProcess = new RemoteStartProcess();
remoteStartProcess.setBusinessId(map.get("id").toString());
remoteStartProcess.setFlowCode(flowCode);
return remoteStartProcess;
}).toList();
return remoteWorkflowService.startWorkFlowBatch(startProcessList);
}
}

5
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java

@ -41,4 +41,9 @@ public class RemotePostServiceImpl implements RemotePostService {
})
.collect(Collectors.toList());
}
@Override
public String getPostCode(String labelCode) {
return sysPostService.getPostCode(labelCode);
}
}

2
dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java

@ -34,4 +34,6 @@ public interface SysPostMapper extends BaseMapperPlus<SysPost, SysPostVo> {
List<SysPostVo> selectPostsByUserId(Long userId);
SysPostVo selectLableByList(@Param("postCode") String postCode, @Param("deptId") Long deptId);
String getPostCode(@Param("labelCode") String labelCode);
}

2
dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java

@ -132,4 +132,6 @@ public interface ISysPostService {
*/
List<SysPostVo> selectPostsByUserId(Long userId);
SysPostVo selectLableByList(String post_code, Long dept_id);
String getPostCode(String labelCode);
}

6
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java

@ -269,8 +269,14 @@ public class SysPostServiceImpl implements ISysPostService {
return baseMapper.selectPostsByUserId(userId);
}
@Override
public SysPostVo selectLableByList(String postCode, Long deptId) {
return baseMapper.selectLableByList(postCode,deptId);
}
@Override
public String getPostCode(String labelCode) {
return baseMapper.getPostCode(labelCode);
}
}

21
dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml

@ -30,4 +30,25 @@
where p.post_code=#{postCode} and p.dept_id=#{deptId}
</select>
<select id="getPostCode" resultType="java.lang.String">
SELECT
post_code
FROM
sys_post sp
WHERE
sp.post_id = (
SELECT
alp.post_id
FROM
ai_label_post alp
WHERE
alp.label_id = (
SELECT
al.label_id
FROM
ai_label al
WHERE
al.label_en =#{labelCode}))
</select>
</mapper>

5
dk-modules/workflow/pom.xml

@ -108,6 +108,11 @@
<artifactId>api-business</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-system</artifactId>
</dependency>
</dependencies>
<build>

14
dk-modules/workflow/src/main/java/org/dromara/workflow/dubbo/RemoteWorkflowServiceImpl.java

@ -1,7 +1,12 @@
package org.dromara.workflow.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.system.api.RemoteLabelPostService;
import org.dromara.system.api.RemotePostService;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemotePostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.workflow.api.RemoteWorkflowService;
import org.dromara.workflow.api.domain.FlowLabelVo;
@ -35,6 +40,10 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
private final IFlwDefinitionService flwDefinitionService;
@DubboReference
private RemotePostService remotePostService;
private static final ExecutorService executor = Executors.newFixedThreadPool(10);
@Override
@ -103,7 +112,10 @@ public class RemoteWorkflowServiceImpl implements RemoteWorkflowService {
}
@Override
public String getFlowCode(String postCode){
public String getFlowCode(String labelCode){
//标签名称
String postCode = remotePostService.getPostCode(labelCode);
return flwDefinitionService.getFlowCode(postCode);
}

Loading…
Cancel
Save