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} + +