diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java index 0eb51ab..01079b0 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java @@ -143,4 +143,15 @@ public class BusinessAlertController extends BaseController { businessAlertService.addBusinessAlertList(alertVoList); return R.ok(); } + + /** + * 移交预警 + */ + @Operation(summary ="移交预警",description = "移交预警") + @PostMapping("/alert/transfer") + public R transferAlert(BusinessAlertVo vo) { + return R.ok(businessAlertService.transferAlert(vo)); + } + + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java index 4102743..84d7ef2 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java @@ -193,6 +193,12 @@ public class BusinessAlert { */ private Integer handleSource; + + /** + * 案件号 + */ + private String caseNumber; + /** * 指派人员名称 */ diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java index db985fa..5db6e46 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java +++ b/dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java @@ -242,4 +242,9 @@ public class BusinessAlertBo { private String aiName; private Integer businessType; + /** + * 案件号 + */ + private String caseNumber; + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java b/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java index bc23174..cfc7d8e 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java +++ b/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实时预警 private Integer businessType; private String deviceSn; + + /** + * 案件号 + */ + private String caseNumber; } diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 138c33b..97c2a2d 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -116,4 +116,7 @@ public interface BusinessAlertMapper extends BaseMapperPlus> listOneDepartAlertStatus(@Param("param") BusinessAlertBo businessAlertBo); + Integer selectCurrentAlertCount(@Param("currentDate") String currentDate); + + void batchUpdateCaseNumber(@Param("list") List alertVoList); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java index df8ba7b..6a1bac8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java @@ -93,4 +93,5 @@ public interface IBusinessAlertService { List listHandleHistory(String lng, String lat, String createTime); + Boolean transferAlert(BusinessAlertVo vo); } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index b0a592c..90408da 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/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.Map; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -78,6 +79,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { public BusinessAlert addBusinessAlert(BusinessAlertVo param) { BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class); alert.setCreateTime(new Date()); + alert.setCaseNumber(param.getCaseNumber()); alert.setJobName(alert.getDeptName()+alert.getLabelCn()+ DateUtils.getTime()); this.baseMapper.insert(alert); return alert; @@ -86,6 +88,8 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { @Override public void addBusinessAlertList(List alertVoList) { if(!alertVoList.isEmpty()) { + incrementalCount(alertVoList); + List remoteStartProcessList = new ArrayList<>(); for (BusinessAlertVo alertVo : alertVoList) { alertVo.setBusinessType(2); @@ -680,7 +684,35 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { @Override public void batchUpdateDept(List alertVoList) { + //更新部门 this.baseMapper.batchUpdateDept(alertVoList); + + incrementalCount(alertVoList); + + //更新number + this.baseMapper.batchUpdateCaseNumber(alertVoList); + + } + + + /** + * 创建递归caseNumber + * @param alertVoList + */ + public void incrementalCount(List 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; } + @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 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) { System.out.println(getLastSixDays()); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index 168cdfd..bdefec6 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -280,7 +280,12 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist // } //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- - Map devices = feignDeviceGroup.getDevices(); + Map devices = new HashMap<>(); + try { + devices = feignDeviceGroup.getDevices(); + } catch (Exception e) { + log.error(e.getMessage(),e); + } Map panel = baseMapper.countPanelAlert(businessAlertBo); diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index fd1fdf4..4a938ec 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -915,5 +915,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + UPDATE business_alert + SET + case_number = + + WHEN #{item.id} THEN #{item.caseNumber} + + WHERE id IN + + #{item.id} + + diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java index 0a79d84..b438fe2 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/common/enums/ButtonPermissionEnum.java +++ b/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), + /** + * 是否能移交 + */ + TRANSFER("是否能移交", "transfer", false), + /** * 忽略 */ diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java index 4c6a8ff..8d9be72 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/BackProcessBo.java @@ -43,7 +43,7 @@ public class BackProcessBo implements Serializable { /** * 驳回的节点id(目前未使用,直接驳回到申请人) */ - @NotBlank(message = "驳回的节点不能为空", groups = AddGroup.class) +// @NotBlank(message = "驳回的节点不能为空", groups = AddGroup.class) private String nodeCode; /** diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index 71ec239..c121541 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/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) { try { Long taskId = bo.getTaskId(); - String notice = bo.getNotice(); - List messageType = bo.getMessageType(); +// String notice = bo.getNotice(); + String notice = "您有一条预警流程被退回!"; +// List messageType = bo.getMessageType(); + List messageType = List.of("1"); String message = bo.getMessage(); + if (ObjectUtil.isEmpty(message)){ + message = "退回"; + } FlowTask task = flowTaskMapper.selectById(taskId); if (ObjectUtil.isNull(task)) { throw new ServiceException("任务不存在!"); @@ -508,13 +513,19 @@ public class FlwTaskServiceImpl implements IFlwTaskService { BusinessStatusEnum.checkBackStatus(inst.getFlowStatus()); Long definitionId = task.getDefinitionId(); 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.nodeCode(bo.getNodeCode()); + flowParams.nodeCode(skipNode.getNodeCode()); flowParams.message(message); flowParams.skipType(SkipType.REJECT.getKey()); - flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus()) - .hisStatus(TaskStatusEnum.BACK.getStatus()); + flowParams.flowStatus(TaskStatusEnum.WAITING.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()); taskService.skip(task.getId(), flowParams);