袁强 1 month ago
parent
commit
1ab57a52c6
  1. 11
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  2. 6
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  3. 5
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  4. 5
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java
  5. 3
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  6. 1
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java
  7. 51
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  8. 7
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java
  9. 21
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  10. 52
      dk-modules/system/src/main/java/org/dromara/system/config/OssTianyiConfig.java
  11. 5
      dk-modules/workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java
  12. 2
      dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java
  13. 23
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

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

@ -143,4 +143,15 @@ public class BusinessAlertController extends BaseController {
businessAlertService.addBusinessAlertList(alertVoList); businessAlertService.addBusinessAlertList(alertVoList);
return R.ok(); return R.ok();
} }
/**
* 移交预警
*/
@Operation(summary ="移交预警",description = "移交预警")
@PostMapping("/alert/transfer")
public R<Boolean> transferAlert(BusinessAlertVo vo) {
return R.ok(businessAlertService.transferAlert(vo));
}
} }

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

@ -193,6 +193,12 @@ public class BusinessAlert {
*/ */
private Integer handleSource; private Integer handleSource;
/**
* 案件号
*/
private String caseNumber;
/** /**
* 指派人员名称 * 指派人员名称
*/ */

5
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java

@ -242,4 +242,9 @@ public class BusinessAlertBo {
private String aiName; private String aiName;
private Integer businessType; private Integer businessType;
/**
* 案件号
*/
private String caseNumber;
} }

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

@ -206,4 +206,9 @@ public class BusinessAlertVo implements Serializable {
//1:图片比对预警 2:AI实时预警 //1:图片比对预警 2:AI实时预警
private Integer businessType; private Integer businessType;
private String deviceSn; private String deviceSn;
/**
* 案件号
*/
private String caseNumber;
} }

3
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java

@ -116,4 +116,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, Busin
List<Map<String, Object>> listOneDepartAlertStatus(@Param("param") BusinessAlertBo businessAlertBo); List<Map<String, Object>> listOneDepartAlertStatus(@Param("param") BusinessAlertBo businessAlertBo);
Integer selectCurrentAlertCount(@Param("currentDate") String currentDate);
void batchUpdateCaseNumber(@Param("list") List<BusinessAlertVo> alertVoList);
} }

1
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java

@ -93,4 +93,5 @@ public interface IBusinessAlertService {
List<BusinessAlert> listHandleHistory(String lng, String lat, String createTime); List<BusinessAlert> listHandleHistory(String lng, String lat, String createTime);
Boolean transferAlert(BusinessAlertVo vo);
} }

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

@ -46,6 +46,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -78,6 +79,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
public BusinessAlert addBusinessAlert(BusinessAlertVo param) { public BusinessAlert addBusinessAlert(BusinessAlertVo param) {
BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class); BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class);
alert.setCreateTime(new Date()); alert.setCreateTime(new Date());
alert.setCaseNumber(param.getCaseNumber());
alert.setJobName(alert.getDeptName()+alert.getLabelCn()+ DateUtils.getTime()); alert.setJobName(alert.getDeptName()+alert.getLabelCn()+ DateUtils.getTime());
this.baseMapper.insert(alert); this.baseMapper.insert(alert);
return alert; return alert;
@ -86,6 +88,8 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@Override @Override
public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) { public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) {
if(!alertVoList.isEmpty()) { if(!alertVoList.isEmpty()) {
incrementalCount(alertVoList);
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>(); List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>();
for (BusinessAlertVo alertVo : alertVoList) { for (BusinessAlertVo alertVo : alertVoList) {
alertVo.setBusinessType(2); alertVo.setBusinessType(2);
@ -680,7 +684,35 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@Override @Override
public void batchUpdateDept(List<BusinessAlertVo> alertVoList) { public void batchUpdateDept(List<BusinessAlertVo> alertVoList) {
//更新部门
this.baseMapper.batchUpdateDept(alertVoList); this.baseMapper.batchUpdateDept(alertVoList);
incrementalCount(alertVoList);
//更新number
this.baseMapper.batchUpdateCaseNumber(alertVoList);
}
/**
* 创建递归caseNumber
* @param alertVoList
*/
public void incrementalCount(List<BusinessAlertVo> alertVoList){
//查询当天时间有多少条预警
Integer currentCount = this.baseMapper.selectCurrentAlertCount(DateUtils.getDate());
//获取当天的时间戳
String currentDate = DateUtils.getDate().replace("-","");
//然后0 + 个数 + 1 当前年月日 例如 202505150 total + 1
AtomicInteger number = new AtomicInteger(1);
alertVoList.forEach(alertVo -> {
int incremental = currentCount + number.get();
alertVo.setCaseNumber(currentDate + "0" + incremental);
number.getAndIncrement();
});
} }
@ -780,6 +812,25 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
return businessAlerts; return businessAlerts;
} }
@Override
public Boolean transferAlert(BusinessAlertVo vo) {
if (ObjectUtil.hasEmpty(vo.getId(),vo.getDeptId(),vo.getDeptName())){
throw new RuntimeException("参数为空!");
}
BusinessAlert businessAlert = this.baseMapper.selectById(vo.getId());
LambdaUpdateWrapper<BusinessAlert> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(BusinessAlert::getId, businessAlert.getId());
wrapper.set(BusinessAlert::getDeptId,vo.getDeptId());
wrapper.set(BusinessAlert::getDeptName,vo.getDeptName());
wrapper.set(BusinessAlert::getJobName,vo.getDeptName() + businessAlert.getLabelCn() + businessAlert.getCreateTime());
return this.baseMapper.update(wrapper) > 0;
}
public static void main(String[] args) { public static void main(String[] args) {
System.out.println(getLastSixDays()); System.out.println(getLastSixDays());

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

@ -282,7 +282,12 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist
// } // }
//----------------------------------------------获取飞行总架次、总时长---------------------------------------------- //----------------------------------------------获取飞行总架次、总时长----------------------------------------------
Map<String, Integer> devices = feignDeviceGroup.getDevices(); Map<String, Integer> devices = new HashMap<>();
try {
devices = feignDeviceGroup.getDevices();
} catch (Exception e) {
log.error(e.getMessage(),e);
}
Map<String, Object> panel = baseMapper.countPanelAlert(businessAlertBo); Map<String, Object> panel = baseMapper.countPanelAlert(businessAlertBo);

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

@ -915,5 +915,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<![CDATA[ ST_Distance_Sphere(POINT(lng, lat), POINT(ba.lng, ba.lat)) <= 30 ]]> <![CDATA[ ST_Distance_Sphere(POINT(lng, lat), POINT(ba.lng, ba.lat)) <= 30 ]]>
</select> </select>
<select id="selectCurrentAlertCount" resultType="java.lang.Integer">
SELECT
IFNULL( count( 1 ), 0 )
FROM
business_alert ba
WHERE
DATE_FORMAT( ba.create_time, '%Y-%m-%d' ) = #{currentDate} and ba.del_flag = '0'
</select>
<update id="batchUpdateCaseNumber">
UPDATE business_alert
SET
case_number =
<foreach collection="list" item="item" separator=" " open="CASE id" close="END">
WHEN #{item.id} THEN #{item.caseNumber}
</foreach>
WHERE id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
</mapper> </mapper>

52
dk-modules/system/src/main/java/org/dromara/system/config/OssTianyiConfig.java

@ -1,6 +1,9 @@
package org.dromara.system.config; package org.dromara.system.config;
import io.minio.MinioClient; import io.minio.MinioClient;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -12,51 +15,23 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration @Configuration
@ConfigurationProperties(prefix = "osstianyi") @ConfigurationProperties(prefix = "osstianyi")
@Getter
@Setter
public class OssTianyiConfig public class OssTianyiConfig
{ {
@Value("${osstianyi.endPoint:https://jiangsu-10.zos.ctyun.cn}")
private String endPoint; private String endPoint;
private String accessKey;
private String secretKey;
private String bucketName;
public String getEndPoint() {
return endPoint;
}
public void setEndPoint(String endPoint) {
this.endPoint = endPoint;
}
public String getAccessKey()
{
return accessKey;
}
public void setAccessKey(String accessKey)
{
this.accessKey = accessKey;
}
public String getSecretKey() @Value("${osstianyi.accessKey:22e3f37368a242b38f4f25d98c9baf1f}")
{ private String accessKey;
return secretKey;
}
public void setSecretKey(String secretKey) @Value("${osstianyi.secretKey:0d858850666248e59830d9a596847062}")
{ private String secretKey;
this.secretKey = secretKey;
}
public String getBucketName() @Value("${osstianyi.bucketName:dkossbucket}")
{ private String bucketName;
return bucketName;
}
public void setBucketName(String bucketName)
{
this.bucketName = bucketName;
}
@Override @Override
public String toString() { public String toString() {
@ -71,9 +46,6 @@ public class OssTianyiConfig
@Bean @Bean
public MinioClient getMinioClient() public MinioClient getMinioClient()
{ {
// System.out.println("OssTianyiConfig");
// System.out.println("OssTianyiConfig" + endPoint);
System.out.println(toString());
return MinioClient.builder().endpoint(endPoint).credentials(accessKey, secretKey).build(); return MinioClient.builder().endpoint(endPoint).credentials(accessKey, secretKey).build();
} }
} }

5
dk-modules/workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java

@ -53,6 +53,11 @@ public enum ButtonPermissionEnum implements NodeExtEnum {
*/ */
TASK_DISPOSE("任务处置","taskDispose",false), TASK_DISPOSE("任务处置","taskDispose",false),
/**
* 是否能移交
*/
TRANSFER("是否能移交", "transfer", false),
/** /**
* 忽略 * 忽略
*/ */

2
dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java

@ -43,7 +43,7 @@ public class BackProcessBo implements Serializable {
/** /**
* 驳回的节点id(目前未使用直接驳回到申请人) * 驳回的节点id(目前未使用直接驳回到申请人)
*/ */
@NotBlank(message = "驳回的节点不能为空", groups = AddGroup.class) // @NotBlank(message = "驳回的节点不能为空", groups = AddGroup.class)
private String nodeCode; private String nodeCode;
/** /**

23
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@ -497,9 +497,14 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
public boolean backProcess(BackProcessBo bo) { public boolean backProcess(BackProcessBo bo) {
try { try {
Long taskId = bo.getTaskId(); Long taskId = bo.getTaskId();
String notice = bo.getNotice(); // String notice = bo.getNotice();
List<String> messageType = bo.getMessageType(); String notice = "您有一条流程被退回!";
// List<String> messageType = bo.getMessageType();
List<String> messageType = List.of("1");
String message = bo.getMessage(); String message = bo.getMessage();
if (ObjectUtil.isEmpty(message)){
message = "退回";
}
FlowTask task = flowTaskMapper.selectById(taskId); FlowTask task = flowTaskMapper.selectById(taskId);
if (ObjectUtil.isNull(task)) { if (ObjectUtil.isNull(task)) {
throw new ServiceException("任务不存在!"); throw new ServiceException("任务不存在!");
@ -508,13 +513,19 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
BusinessStatusEnum.checkBackStatus(inst.getFlowStatus()); BusinessStatusEnum.checkBackStatus(inst.getFlowStatus());
Long definitionId = task.getDefinitionId(); Long definitionId = task.getDefinitionId();
Definition definition = defService.getById(definitionId); Definition definition = defService.getById(definitionId);
String applyNodeCode = flwCommonService.applyNodeCode(definitionId); //获取当前节点
String currentNodeCode = inst.getNodeCode();
//获取返回节点
Node skipNode = getBackTaskNode(definitionId, currentNodeCode).getFirst();
FlowParams flowParams = FlowParams.build(); FlowParams flowParams = FlowParams.build();
flowParams.nodeCode(bo.getNodeCode()); flowParams.nodeCode(skipNode.getNodeCode());
flowParams.message(message); flowParams.message(message);
flowParams.skipType(SkipType.REJECT.getKey()); flowParams.skipType(SkipType.REJECT.getKey());
flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus()) flowParams.flowStatus(TaskStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.BACK.getStatus());
.hisStatus(TaskStatusEnum.BACK.getStatus());
// flowParams.flowStatus(skipNode.getNodeCode().equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
// .hisStatus(TaskStatusEnum.BACK.getStatus());
flowParams.hisTaskExt(bo.getFileId()); flowParams.hisTaskExt(bo.getFileId());
taskService.skip(task.getId(), flowParams); taskService.skip(task.getId(), flowParams);

Loading…
Cancel
Save