From d5441f5235a3b0997a91a43f08130d2a7c64a1c3 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 13 Mar 2025 14:45:42 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=201=E3=80=81=E8=81=94=E8=B0=83=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=202=E3=80=81?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=B5=81=E7=A8=8B=E9=83=A8=E9=97=A8=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RemoteBusinessAlertService.java | 2 +- .../common/core/enums/BusinessStatusEnum.java | 8 ++- .../business/domain/BusinessAlert.java | 18 ++++++ .../business/domain/bo/BusinessAlertBo.java | 19 +++++++ .../business/domain/vo/BusinessAlertVo.java | 19 +++++++ .../dubbo/RemoteBusinessAlertServiceImpl.java | 4 +- .../business/mapper/BusinessAlertMapper.java | 16 +++++- .../service/IBusinessAlertService.java | 4 +- .../impl/BusinessAlertServiceImpl.java | 57 +++++++++++++++++-- .../mapper/business/BusinessAlertMapper.xml | 18 ++++++ .../org/dromara/system/domain/SysDept.java | 5 ++ .../dromara/system/domain/bo/SysDeptBo.java | 5 ++ .../workflow/domain/bo/CompleteTaskBo.java | 15 +++++ .../workflow/handler/FlwAlertHandler.java | 16 +++++- .../handler/WorkflowPermissionHandler.java | 5 +- .../service/impl/FlwTaskServiceImpl.java | 14 ++++- 16 files changed, 208 insertions(+), 17 deletions(-) diff --git a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java index 2237092..88b19c7 100644 --- a/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java +++ b/dk-api/api-business/src/main/java/org/dromara/business/api/RemoteBusinessAlertService.java @@ -15,5 +15,5 @@ public interface RemoteBusinessAlertService { * @param businessId 业务id(预警、工单) * @param flowStatus 流程状态 */ - void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType); + void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType,String message,String assignName); } diff --git a/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java b/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java index d2c38dd..329ee68 100644 --- a/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java +++ b/dk-common/common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java @@ -32,10 +32,16 @@ public enum BusinessStatusEnum { * 草稿 */ DRAFT("draft", "草稿"), + /** + * 处理中 + */ + WAITING("waiting", "处理中"), + /** * 待审核 */ - WAITING("waiting", "待审核"), + TODO("todo", "待审核"), + /** * 已完成 */ 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 43e1502..5ef21c5 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 @@ -165,6 +165,24 @@ public class BusinessAlert extends BaseEntity { */ private String jobName; + /** + * 指派人员 + */ + private String assignUserId; + + + /** + * 指派人员名称 + */ + @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "assignUserId") + private String assignUserName; + + + /** + * 指派时间 + */ + private Date assignDate; + /** * 处理时间 */ 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 fa1d2d5..00d3c61 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 @@ -10,6 +10,9 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; + import java.util.Date; import java.util.List; @@ -224,5 +227,21 @@ public class BusinessAlertBo { */ private String postCode; + /** + * 指派人员 + */ + private String assignUserId; + + + /** + * 指派人员名称 + */ + private String assignUserName; + + + /** + * 指派时间 + */ + private Date assignDate; } 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 04ed32d..c70d16a 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 @@ -6,6 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.business.domain.BusinessAlert; import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import java.io.Serial; import java.io.Serializable; @@ -233,4 +235,21 @@ public class BusinessAlertVo implements Serializable { @ExcelProperty(value = "来源:0:平台 1:小程序") private Long handleSource; + + /** + * 指派人员 + */ + private String assignUserId; + + + /** + * 指派人员名称 + */ + private String assignUserName; + + + /** + * 指派时间 + */ + private Date assignDate; } diff --git a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java index be01604..dc63dbb 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java @@ -23,7 +23,7 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic * @param flowStatus 流程状态 */ @Override - public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType) { - businessAlertService.updateAlertStatus(businessId,flowStatus,isIllegal,alertType); + public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType,String message,String assignName) { + businessAlertService.updateAlertStatus(businessId,flowStatus,isIllegal,alertType,message,assignName); } } 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 d242c68..94933ec 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 @@ -29,10 +29,22 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageAlertFinish(Page page, QueryWrapper ew); - + /** + * 待指派 + * @param page + * @param ew + * @return + */ + Page pageAlertAssign(Page page, QueryWrapper ew); + + /** + * 处理中 + * @param page + * @param ew + * @return + */ Page pageAlertTodo(Page page, QueryWrapper ew); - Page pageBusinessAlertCancel(Page build, QueryWrapper ew); @DataPermission( 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 7d7d5a8..5c642cb 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 @@ -20,6 +20,8 @@ public interface IBusinessAlertService { TableDataInfo pageBusinessAlertFinish(BusinessAlertBo bo, PageQuery pageQuery); + TableDataInfo pageAlertAssign(BusinessAlertBo bo, PageQuery pageQuery); + TableDataInfo pageBusinessAlertAll(BusinessAlertBo bo, PageQuery pageQuery); TableDataInfo pageBusinessAlertCancel(BusinessAlertBo bo, PageQuery pageQuery); @@ -62,7 +64,7 @@ public interface IBusinessAlertService { * @param businessId * @param flowStatus */ - void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType); + void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType,String message,String assignName); TableDataInfo getInfo(BusinessAlertBo bo, PageQuery pageQuery, String alertCode); } 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 31a12a1..67a90dd 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 @@ -26,10 +26,7 @@ import org.dromara.workflow.api.RemoteWorkflowService; import org.springframework.stereotype.Service; import java.lang.reflect.Method; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -109,7 +106,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { * @param flowStatus */ @Override - public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType) { + public void updateAlertStatus(String businessId, String flowStatus,Boolean isIllegal,String alertType,String message,String assignName) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.set(BusinessAlert::getHandleType, BusinessStatusEnum.getByStatus(flowStatus).getStatus()); if (ObjectUtil.isNotEmpty(isIllegal)){ @@ -118,6 +115,17 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { if (ObjectUtil.isNotEmpty(alertType)){ wrapper.set(BusinessAlert::getAlertType, alertType); } + + if (ObjectUtil.isNotEmpty(message)){ + wrapper.set(BusinessAlert::getReason, message); + } + + //判断指派人员是否为空 + if (ObjectUtil.isNotEmpty(assignName)){ + wrapper.set(BusinessAlert::getAssignUserId, assignName); + wrapper.set(BusinessAlert::getAssignDate, new Date()); + } + wrapper.eq(BusinessAlert::getId, businessId); this.baseMapper.update(wrapper); @@ -189,6 +197,45 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return TableDataInfo.build(page); } + /** + * 查询当前用户待办预警 + * @param bo + * @param pageQuery + * @return + */ + @Override + public TableDataInfo pageAlertAssign(BusinessAlertBo bo, PageQuery pageQuery) { + QueryWrapper wrapper = buildQueryWrapper(bo); + +// if (ObjectUtil.isEmpty(wrapper)){ +// return new TableDataInfo<>(); +// } + + buildCommonQueryWrapper(wrapper); + + wrapper.eq("uu.del_flag", 0); + wrapper.in("uu.type", 1,2,3); + + wrapper.in("uu.processed_by", remoteWorkflowService.getPermissions()); + wrapper.eq("b.flow_status", BusinessStatusEnum.DRAFT.getStatus()); + + Page page = this.baseMapper.pageAlertTodo(pageQuery.build(), wrapper); + + List records = page.getRecords(); + if (CollUtil.isNotEmpty(records)) { + List taskIds = StreamUtils.toList(records, BusinessAlert::getFlowTaskId); + Map> listMap = remoteWorkflowService.currentTaskAllUser(taskIds); + records.forEach(t -> { + List userList = listMap.getOrDefault(t.getId(), Collections.emptyList()); + if (CollUtil.isNotEmpty(userList)) { + t.setApprover(StreamUtils.join(userList, e -> String.valueOf(e.getUserId()))); + t.setApproveName(StreamUtils.join(userList, RemoteUserVo::getNickName)); + } + }); + } + return TableDataInfo.build(page); + } + /** * 查询当前用户待办预警 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 27b62d8..8a25577 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -73,6 +73,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.getCustomSqlSegment} + +