mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-10-09 03:26:40 +08:00
Compare commits
No commits in common. "0dce5712701283284b6f41e305e32f3313e71931" and "1cea7b72d75a4b63ddd177f9a5b04d26d037baa0" have entirely different histories.
0dce571270
...
1cea7b72d7
@ -13,7 +13,6 @@ import org.dromara.workflow.common.ConditionalOnEnable;
|
|||||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowVariableBo;
|
|
||||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||||
import org.dromara.workflow.service.IFlwInstanceService;
|
import org.dromara.workflow.service.IFlwInstanceService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -143,17 +142,6 @@ public class FlwInstanceController extends BaseController {
|
|||||||
return R.ok(flwInstanceService.instanceVariable(instanceId));
|
return R.ok(flwInstanceService.instanceVariable(instanceId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改流程变量
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
*/
|
|
||||||
@RepeatSubmit()
|
|
||||||
@PutMapping("/updateVariable")
|
|
||||||
public R<Void> updateVariable(@Validated @RequestBody FlowVariableBo bo) {
|
|
||||||
return toAjax(flwInstanceService.updateVariable(bo));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 作废流程
|
* 作废流程
|
||||||
*
|
*
|
||||||
|
@ -209,16 +209,4 @@ public class FlwTaskController extends BaseController {
|
|||||||
return R.ok(flwTaskService.currentTaskAllUser(List.of(taskId)));
|
return R.ok(flwTaskService.currentTaskAllUser(List.of(taskId)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 催办任务
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@PostMapping("/urgeTask")
|
|
||||||
public R<Void> urgeTask(@RequestBody FlowUrgeTaskBo bo) {
|
|
||||||
return toAjax(flwTaskService.urgeTask(bo));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
package org.dromara.workflow.domain.bo;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流程变量参数
|
|
||||||
*
|
|
||||||
* @author may
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class FlowUrgeTaskBo implements Serializable {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 任务id
|
|
||||||
*/
|
|
||||||
@NotNull(message = "任务id为空", groups = AddGroup.class)
|
|
||||||
private List<Long> taskIdList;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 消息类型
|
|
||||||
*/
|
|
||||||
private List<String> messageType;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 催办内容
|
|
||||||
*/
|
|
||||||
@NotNull(message = "催办内容为空", groups = AddGroup.class)
|
|
||||||
private String message;
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
package org.dromara.workflow.domain.bo;
|
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流程变量参数
|
|
||||||
*
|
|
||||||
* @author may
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class FlowVariableBo implements Serializable {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流程实例id
|
|
||||||
*/
|
|
||||||
@NotNull(message = "流程实例id为空", groups = AddGroup.class)
|
|
||||||
private Long instanceId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流程变量key
|
|
||||||
*/
|
|
||||||
@NotNull(message = "流程变量key为空", groups = AddGroup.class)
|
|
||||||
private String key;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流程变量value
|
|
||||||
*/
|
|
||||||
@NotNull(message = "流程变量value为空", groups = AddGroup.class)
|
|
||||||
private String value;
|
|
||||||
|
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
package org.dromara.workflow.service;
|
package org.dromara.workflow.service;
|
||||||
|
|
||||||
import org.dromara.common.core.domain.dto.UserDTO;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -21,16 +19,6 @@ public interface IFlwCommonService {
|
|||||||
*/
|
*/
|
||||||
void sendMessage(String flowName, Long instId, List<String> messageType, String message);
|
void sendMessage(String flowName, Long instId, List<String> messageType, String message);
|
||||||
|
|
||||||
/**
|
|
||||||
* 发送消息
|
|
||||||
*
|
|
||||||
* @param messageType 消息类型
|
|
||||||
* @param message 消息内容
|
|
||||||
* @param subject 邮件标题
|
|
||||||
* @param userList 接收用户
|
|
||||||
*/
|
|
||||||
void sendMessage(List<String> messageType, String message, String subject, List<UserDTO> userList);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 申请人节点编码
|
* 申请人节点编码
|
||||||
*
|
*
|
||||||
|
@ -6,7 +6,6 @@ import org.dromara.warm.flow.orm.entity.FlowInstance;
|
|||||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowVariableBo;
|
|
||||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -126,14 +125,6 @@ public interface IFlwInstanceService {
|
|||||||
*/
|
*/
|
||||||
Map<String, Object> instanceVariable(Long instanceId);
|
Map<String, Object> instanceVariable(Long instanceId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新流程变量
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
boolean updateVariable(FlowVariableBo bo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置流程变量
|
* 设置流程变量
|
||||||
*
|
*
|
||||||
|
@ -198,12 +198,4 @@ public interface IFlwTaskService {
|
|||||||
* @return 节点
|
* @return 节点
|
||||||
*/
|
*/
|
||||||
FlowNode getByNodeCode(String nodeCode, Long definitionId);
|
FlowNode getByNodeCode(String nodeCode, Long definitionId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 催办任务
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
boolean urgeTask(FlowUrgeTaskBo bo);
|
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import org.dromara.common.mail.utils.MailUtils;
|
|||||||
import org.dromara.common.sse.dto.SseMessageDto;
|
import org.dromara.common.sse.dto.SseMessageDto;
|
||||||
import org.dromara.common.sse.utils.SseMessageUtils;
|
import org.dromara.common.sse.utils.SseMessageUtils;
|
||||||
import org.dromara.warm.flow.core.entity.Node;
|
import org.dromara.warm.flow.core.entity.Node;
|
||||||
|
import org.dromara.warm.flow.core.entity.Task;
|
||||||
import org.dromara.warm.flow.core.enums.SkipType;
|
import org.dromara.warm.flow.core.enums.SkipType;
|
||||||
import org.dromara.warm.flow.core.service.NodeService;
|
import org.dromara.warm.flow.core.service.NodeService;
|
||||||
import org.dromara.warm.flow.orm.entity.FlowTask;
|
import org.dromara.warm.flow.orm.entity.FlowTask;
|
||||||
@ -21,6 +22,7 @@ import org.dromara.workflow.service.IFlwCommonService;
|
|||||||
import org.dromara.workflow.service.IFlwTaskService;
|
import org.dromara.workflow.service.IFlwTaskService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -55,19 +57,6 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
|
|||||||
if (CollUtil.isEmpty(userList)) {
|
if (CollUtil.isEmpty(userList)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sendMessage(messageType, message, "单据审批提醒", userList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 发送消息
|
|
||||||
*
|
|
||||||
* @param messageType 消息类型
|
|
||||||
* @param message 消息内容
|
|
||||||
* @param subject 邮件标题
|
|
||||||
* @param userList 接收用户
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void sendMessage(List<String> messageType, String message, String subject, List<UserDTO> userList) {
|
|
||||||
for (String code : messageType) {
|
for (String code : messageType) {
|
||||||
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
|
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
|
||||||
if (ObjectUtil.isEmpty(messageTypeEnum)) {
|
if (ObjectUtil.isEmpty(messageTypeEnum)) {
|
||||||
@ -81,7 +70,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
|
|||||||
SseMessageUtils.publishMessage(dto);
|
SseMessageUtils.publishMessage(dto);
|
||||||
}
|
}
|
||||||
case EMAIL_MESSAGE -> {
|
case EMAIL_MESSAGE -> {
|
||||||
MailUtils.sendText(StreamUtils.join(userList, UserDTO::getEmail), subject, message);
|
MailUtils.sendText(StreamUtils.join(userList, UserDTO::getEmail), "单据审批提醒", message);
|
||||||
}
|
}
|
||||||
case SMS_MESSAGE -> {
|
case SMS_MESSAGE -> {
|
||||||
//todo 短信发送
|
//todo 短信发送
|
||||||
@ -89,6 +78,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
|
|||||||
default -> throw new IllegalStateException("Unexpected value: " + messageTypeEnum);
|
default -> throw new IllegalStateException("Unexpected value: " + messageTypeEnum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,7 +39,6 @@ import org.dromara.workflow.common.enums.TaskStatusEnum;
|
|||||||
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
import org.dromara.workflow.domain.bo.FlowCancelBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
import org.dromara.workflow.domain.bo.FlowInstanceBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
import org.dromara.workflow.domain.bo.FlowInvalidBo;
|
||||||
import org.dromara.workflow.domain.bo.FlowVariableBo;
|
|
||||||
import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
import org.dromara.workflow.domain.vo.FlowHisTaskVo;
|
||||||
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
import org.dromara.workflow.domain.vo.FlowInstanceVo;
|
||||||
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
import org.dromara.workflow.handler.FlowProcessEventHandler;
|
||||||
@ -357,30 +356,6 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
|
|||||||
return Map.of("variableList", variableList, "variable", flowInstance.getVariable());
|
return Map.of("variableList", variableList, "variable", flowInstance.getVariable());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置流程变量
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public boolean updateVariable(FlowVariableBo bo) {
|
|
||||||
FlowInstance flowInstance = flowInstanceMapper.selectById(bo.getInstanceId());
|
|
||||||
if (flowInstance == null) {
|
|
||||||
throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
Map<String, Object> variableMap = new HashMap<>(Optional.ofNullable(flowInstance.getVariableMap()).orElse(Collections.emptyMap()));
|
|
||||||
variableMap.put(bo.getKey(), bo.getValue());
|
|
||||||
flowInstance.setVariable(FlowEngine.jsonConvert.objToStr(variableMap));
|
|
||||||
flowInstanceMapper.updateById(flowInstance);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("设置流程变量失败: {}", e.getMessage(), e);
|
|
||||||
throw new ServiceException(e.getMessage());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置流程变量
|
* 设置流程变量
|
||||||
*
|
*
|
||||||
|
@ -721,28 +721,4 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
|||||||
.eq(FlowNode::getDefinitionId, definitionId));
|
.eq(FlowNode::getDefinitionId, definitionId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 催办任务
|
|
||||||
*
|
|
||||||
* @param bo 参数
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean urgeTask(FlowUrgeTaskBo bo) {
|
|
||||||
try {
|
|
||||||
if (CollUtil.isEmpty(bo.getTaskIdList())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
List<UserDTO> userList = this.currentTaskAllUser(bo.getTaskIdList());
|
|
||||||
if (CollUtil.isEmpty(userList)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
List<String> messageType = bo.getMessageType();
|
|
||||||
String message = bo.getMessage();
|
|
||||||
flwCommonService.sendMessage(messageType, message, "单据审批提醒", userList);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage(), e);
|
|
||||||
throw new ServiceException(e.getMessage());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user