吴远 3 months ago
parent
commit
4bc071eb63
  1. 5
      dk-api/api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java
  2. 9
      dk-common/common-bus/pom.xml
  3. 3
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  4. 34
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java
  5. 40
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  6. 5
      dk-modules/workflow/pom.xml
  7. 18
      dk-modules/workflow/src/main/java/org/dromara/workflow/common/constant/MinIOConstants.java
  8. 24
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
  9. 14
      dk-modules/workflow/src/main/java/org/dromara/workflow/utils/MinioUntil.java
  10. 2
      pom.xml

5
dk-api/api-resource/src/main/java/org/dromara/resource/api/domain/RemoteFile.java

@ -41,4 +41,9 @@ public class RemoteFile implements Serializable {
*/
private String fileSuffix;
/**
* 文件名称
*/
private String fileName;
}

9
dk-common/common-bus/pom.xml

@ -27,9 +27,14 @@
<!-- <artifactId>spring-cloud-starter-bus-kafka</artifactId>-->
<!-- </dependency>-->
<!-- rocketmq -->
<!-- <dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-starter-bus-rocketmq</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-bus-rocketmq</artifactId>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-bus</artifactId>
<version>${spring.cloud.bus.version}</version>
</dependency>
</dependencies>
</project>

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

@ -300,7 +300,8 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
if (ObjectUtil.isNotEmpty(bo.getPostCode())){
//根据当前用户职能获取识别类型
List<RemoteAiLabelPostVo> postVoList = remoteLablePostService.selectLabelByList(bo.getPostCode(), LoginHelper.getDeptId());
// List<RemoteAiLabelPostVo> postVoList = remoteLablePostService.selectLabelByList(bo.getPostCode(), LoginHelper.getDeptId());
List<RemoteAiLabelPostVo> postVoList = remoteLablePostService.selectLabelByList(bo.getPostCode(), null);
if (ObjectUtil.isEmpty(postVoList)) {
return null;

34
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java

@ -316,14 +316,11 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
return ListUtil.empty();
}
AtomicInteger number = new AtomicInteger(1);
postVoList.forEach(postVo -> {
List<String> labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList());
businessAlertBo.setAiLabelEnList(labelList);
Map<String, Object> dayMap = this.baseMapper.countCurrentDayAlert(businessAlertBo);
number.getAndIncrement();
result.add(new StatObj(postVo.getPostName(), ObjectUtil.isEmpty(dayMap.get("total"))? number.get() + 1:dayMap.get("total")));
result.add(new StatObj(postVo.getPostName(), dayMap.get("total")));
});
return result;
@ -358,11 +355,7 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
endTime = dateMap.get("endTime");
}
AtomicInteger number = new AtomicInteger(1);
postVoList.forEach(postVo -> {
number.getAndIncrement();
List<String> labelList = getAiLabel(postVo.getPostCode()).stream().map(RemoteAiLabelPostVo::getLabelEn).collect(Collectors.toList());
Map<String, Object> dateMap = new HashMap<>();
if (ObjectUtil.isEmpty(labelList)) {
@ -375,8 +368,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
result.add(new StatObj(
postVo.getPostName(),
ObjectUtil.isEmpty(dateMap.get("todoCount"))?number.get() + 1:dateMap.get("todoCount"),
ObjectUtil.isEmpty(dateMap.get("finishCount"))?number.get() + 2:dateMap.get("finishCount")
dateMap.get("todoCount"),
dateMap.get("finishCount")
));
});
@ -409,29 +402,16 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
if (ObjectUtil.isEmpty(labelList)){
monthList.forEach(month -> {
int randomValue = 90 + (int)(Math.random() * 31); // 90~120(含120)
data.add(randomValue);
data.add(0.0);
});
}else {
businessAlertBo.setAiLabelEnList(labelList);
List<Map<String, Object>> rateList = baseMapper.handlerRate(businessAlertBo,monthList);
if (ObjectUtil.isNotEmpty(rateList)) {
rateList.forEach(p->{
if (ObjectUtil.isNotEmpty(p.get("avgInfo"))){
data.add(p.get("avgInfo"));
}else {
int randomValue = 90 + (int)(Math.random() * 31);
data.add(randomValue);
}
});
// data.addAll(rateList.stream().map(p-> p.get("avgInfo")).toList());
data.addAll(rateList.stream().map(p-> p.get("avgInfo")).toList());
}else {
// monthList.forEach(month -> {
// data.add(0.0);
// });
monthList.forEach(month -> {
int randomValue = 90 + (int)(Math.random() * 31);
data.add(randomValue);
data.add(0.0);
});
}
}
@ -696,6 +676,6 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
}
private List<RemoteAiLabelPostVo> getAiLabel(String postCode) {
return remoteLabelPostService.selectLabelByList(postCode,LoginHelper.getDeptId());
return remoteLabelPostService.selectLabelByList(postCode,null);
}
}

40
dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -494,7 +494,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dept_name AS root_dept_name,
dept_id,
dept_name
FROM dk_cloud.sys_dept
FROM
dk_cloud.sys_dept
WHERE dept_id IN
<foreach collection="deptIdList" item="deptId" open="(" separator="," close=")">
#{deptId}
@ -505,31 +506,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dt.root_dept_name,
d.dept_id,
d.dept_name
FROM dk_cloud.sys_dept d
JOIN warning_summary dt
ON d.parent_id = dt.dept_id
WHERE d.del_flag = '0'
FROM
dk_cloud.sys_dept d
JOIN warning_summary dt ON d.parent_id = dt.dept_id
WHERE
d.del_flag = '0'
)
SELECT
root_dept_name deptName,
total
FROM (
SELECT
dt.root_dept_id,
dt.root_dept_name,
COUNT(ba.id) total
FROM business_alert ba
JOIN warning_summary dt
ON ba.dept_id = dt.dept_id
WHERE
1=1
ws.root_dept_name AS deptName,
IFNULL(COUNT(ba.id), 0) AS total
FROM
warning_summary ws
LEFT JOIN business_alert ba ON ws.dept_id = ba.dept_id
and <![CDATA[ DATE_FORMAT(ba.create_time, '%Y-%m-%d') >= #{startTime} ]]>
and <![CDATA[ DATE_FORMAT(ba.create_time, '%Y-%m-%d') <= #{endTime} ]]>
<include refid="searchSql"></include>
GROUP BY dt.root_dept_id,dt.root_dept_name
) dept_stats
ORDER BY total DESC
LIMIT 5;
GROUP BY
ws.root_dept_id,
ws.root_dept_name
ORDER BY
CASE WHEN total IS NULL THEN 1 ELSE 0 END,
total DESC
LIMIT 5
</select>
<select id="listAlert" resultType="org.dromara.business.domain.BusinessAlert">

5
dk-modules/workflow/pom.xml

@ -54,6 +54,11 @@
<groupId>org.dromara</groupId>
<artifactId>common-log</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>common-oss</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>common-idempotent</artifactId>

18
dk-modules/workflow/src/main/java/org/dromara/workflow/common/constant/MinIOConstants.java

@ -0,0 +1,18 @@
package org.dromara.workflow.common.constant;
public interface MinIOConstants {
//桶名称 无人机图片
String BUCKET_MEDIAFILE = "mediafile";
String BUCKET_DKCY = "dkcy";
//桶名称 默认数据
String BUCKET_MINIO = "minio";
//桶名称 航线文件
String BUCKET_WAYLINEFILE = "waylinefile";
//桶名称 预警文件
String BUCKET_ALERT = "alert";
//桶名称 图斑
String BUCKET_PATTERN = "pattern";
}

24
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StreamUtils;
@ -18,6 +19,8 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.resource.api.domain.RemoteFile;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.warm.flow.core.FlowEngine;
import org.dromara.warm.flow.core.constant.ExceptionCons;
@ -36,6 +39,7 @@ import org.dromara.warm.flow.orm.entity.FlowTask;
import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.constant.MinIOConstants;
import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.bo.FlowCancelBo;
import org.dromara.workflow.domain.bo.FlowInstanceBo;
@ -48,6 +52,7 @@ import org.dromara.workflow.mapper.FlwCategoryMapper;
import org.dromara.workflow.mapper.FlwInstanceMapper;
import org.dromara.workflow.service.IFlwInstanceService;
import org.dromara.workflow.service.IFlwTaskService;
import org.dromara.workflow.utils.MinioUntil;
import org.dromara.workflow.utils.WorkflowUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -76,6 +81,8 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
private final IFlwTaskService flwTaskService;
private final FlwInstanceMapper flwInstanceMapper;
private final FlwCategoryMapper flwCategoryMapper;
@DubboReference
private RemoteFileService remoteFileService;
/**
* 分页查询正在运行的流程实例
@ -322,6 +329,23 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
list.addAll(BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class));
}
String flowChart = chartService.chartIns(instanceId);
list.forEach(flowHisTaskVo -> {
if (ObjectUtil.isNotNull(flowHisTaskVo.getExt())) {
try {
String[] extArr = flowHisTaskVo.getExt().split(",");
StringBuilder sb = new StringBuilder();
Arrays.asList(extArr).forEach(ext->{
List<RemoteFile> remoteFiles = remoteFileService.selectByIds(ext);
sb.append(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_MINIO, remoteFiles.get(0).getFileName(), 3600).toString()).append(",");
});
flowHisTaskVo.setExt(sb.toString());
} catch (Exception e) {
log.error("获取: {}", e.getMessage(), e);
}
}
});
return Map.of("list", list, "image", flowChart);
}

14
dk-modules/workflow/src/main/java/org/dromara/workflow/utils/MinioUntil.java

@ -0,0 +1,14 @@
package org.dromara.workflow.utils;
import org.dromara.common.oss.core.OssClient;
import org.dromara.common.oss.factory.OssFactory;
import java.net.URL;
public class MinioUntil {
public static URL getObjectUrlOne(String bucket, String pathUrl, Integer seconds) {
OssClient storage = OssFactory.instance(bucket);
return storage.getPrivateUrlURL(pathUrl,seconds);
}
}

2
pom.xml

@ -78,6 +78,8 @@
<geotools.version>23.2</geotools.version>
<!--PostgreSQL配置-->
<postgresql.version>42.6.2</postgresql.version>
<spring.cloud.bus.version>4.1.2</spring.cloud.bus.version>
</properties>
<profiles>

Loading…
Cancel
Save