mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-20 10:13:28 +08:00
update 优化代码结构
This commit is contained in:
parent
2133a72c29
commit
f943409382
@ -97,16 +97,6 @@
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-websocket</artifactId>
|
||||
</dependency>
|
||||
<!-- 短信 用哪个导入哪个依赖 -->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.aliyun</groupId>-->
|
||||
<!-- <artifactId>dysmsapi20170525</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.tencentcloudapi</groupId>-->
|
||||
<!-- <artifactId>tencentcloud-sdk-java-sms</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
@ -1,11 +1,14 @@
|
||||
package org.dromara.workflow.common;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 分页参数
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
public class PageEntity {
|
||||
|
||||
/**
|
||||
@ -22,15 +25,4 @@ public class PageEntity {
|
||||
return (pageNum - 1) * pageSize;
|
||||
}
|
||||
|
||||
public void setPageNum(Integer pageNum) {
|
||||
this.pageNum = pageNum;
|
||||
}
|
||||
|
||||
public Integer getPageSize() {
|
||||
return pageSize;
|
||||
}
|
||||
|
||||
public void setPageSize(Integer pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,8 @@ import lombok.Getter;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 业务状态枚举
|
||||
*
|
||||
@ -58,17 +60,15 @@ public enum BusinessStatusEnum {
|
||||
*
|
||||
* @param status 状态
|
||||
*/
|
||||
public static String getEumByStatus(String status) {
|
||||
public static String findByStatus(String status) {
|
||||
if (StringUtils.isBlank(status)) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
|
||||
for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) {
|
||||
if (statusEnum.getStatus().equals(status)) {
|
||||
return statusEnum.getDesc();
|
||||
}
|
||||
}
|
||||
return StrUtil.EMPTY;
|
||||
return Arrays.stream(BusinessStatusEnum.values())
|
||||
.filter(statusEnum -> statusEnum.getStatus().equals(status))
|
||||
.findFirst()
|
||||
.map(BusinessStatusEnum::getDesc)
|
||||
.orElse(StrUtil.EMPTY);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
*
|
||||
@ -73,17 +75,16 @@ public enum TaskStatusEnum {
|
||||
*
|
||||
* @param status 状态
|
||||
*/
|
||||
public static String getEnumsByStatus(String status) {
|
||||
public static String findByStatus(String status) {
|
||||
if (StringUtils.isBlank(status)) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
|
||||
for (TaskStatusEnum statusEnum : TaskStatusEnum.values()) {
|
||||
if (statusEnum.getStatus().equals(status)) {
|
||||
return statusEnum.getDesc();
|
||||
}
|
||||
}
|
||||
return StrUtil.EMPTY;
|
||||
return Arrays.stream(TaskStatusEnum.values())
|
||||
.filter(statusEnum -> statusEnum.getStatus().equals(status))
|
||||
.findFirst()
|
||||
.map(TaskStatusEnum::getDesc)
|
||||
.orElse(StrUtil.EMPTY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
@ -25,7 +27,7 @@ import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 模型管理 控制层
|
||||
@ -40,7 +42,7 @@ public class ActModelController extends BaseController {
|
||||
|
||||
private final RepositoryService repositoryService;
|
||||
|
||||
private final IActModelService iActModelService;
|
||||
private final IActModelService actModelService;
|
||||
|
||||
|
||||
/**
|
||||
@ -49,8 +51,8 @@ public class ActModelController extends BaseController {
|
||||
* @param modelBo 模型参数
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<Model> getByPage(ModelBo modelBo) {
|
||||
return iActModelService.getByPage(modelBo);
|
||||
public TableDataInfo<Model> page(ModelBo modelBo) {
|
||||
return actModelService.page(modelBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,10 +61,11 @@ public class ActModelController extends BaseController {
|
||||
@GetMapping("/rest/account")
|
||||
public String getAccount() {
|
||||
AccountVo accountVo = new AccountVo();
|
||||
accountVo.setId(Objects.requireNonNull(LoginHelper.getUserId()).toString());
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
accountVo.setId(Convert.toStr(loginUser.getUserId()));
|
||||
accountVo.setFirstName("");
|
||||
accountVo.setLastName(LoginHelper.getUsername());
|
||||
accountVo.setFullName(LoginHelper.getUsername());
|
||||
accountVo.setLastName(loginUser.getUsername());
|
||||
accountVo.setFullName(loginUser.getUsername());
|
||||
return JsonUtils.toJsonString(accountVo);
|
||||
}
|
||||
|
||||
@ -75,7 +78,7 @@ public class ActModelController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/rest/models")
|
||||
public R<Void> saveNewModel(@Validated(AddGroup.class) @RequestBody ModelBo modelBo) {
|
||||
return toAjax(iActModelService.saveNewModel(modelBo));
|
||||
return toAjax(actModelService.saveNewModel(modelBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -85,7 +88,7 @@ public class ActModelController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/rest/models/{modelId}/editor/json")
|
||||
public ObjectNode getModelInfo(@NotBlank(message = "模型id不能为空") @PathVariable String modelId) {
|
||||
return iActModelService.getModelInfo(modelId);
|
||||
return actModelService.getModelInfo(modelId);
|
||||
}
|
||||
|
||||
|
||||
@ -99,7 +102,7 @@ public class ActModelController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping(value = "/rest/models/{modelId}/editor/json")
|
||||
public R<Void> editModel(@PathVariable String modelId, @RequestParam MultiValueMap<String, String> values) {
|
||||
return toAjax(iActModelService.editModel(modelId, values));
|
||||
return toAjax(actModelService.editModel(modelId, values));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,9 +115,7 @@ public class ActModelController extends BaseController {
|
||||
@DeleteMapping("/{ids}")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public R<Void> delete(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) {
|
||||
for (String id : ids) {
|
||||
repositoryService.deleteModel(id);
|
||||
}
|
||||
Arrays.stream(ids).parallel().forEachOrdered(repositoryService::deleteModel);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@ -127,7 +128,7 @@ public class ActModelController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/modelDeploy/{id}")
|
||||
public R<Void> deploy(@NotBlank(message = "模型id不能为空") @PathVariable("id") String id) {
|
||||
return toAjax(iActModelService.modelDeploy(id));
|
||||
return toAjax(actModelService.modelDeploy(id));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -139,7 +140,7 @@ public class ActModelController extends BaseController {
|
||||
@GetMapping("/export/zip/{modelId}")
|
||||
public void exportZip(@NotEmpty(message = "模型id不能为空") @PathVariable String modelId,
|
||||
HttpServletResponse response) {
|
||||
iActModelService.exportZip(modelId, response);
|
||||
actModelService.exportZip(modelId, response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -148,8 +149,8 @@ public class ActModelController extends BaseController {
|
||||
* @param filter 参数
|
||||
*/
|
||||
@GetMapping(value = "/rest/editor-users")
|
||||
public ResultListDataRepresentation getUsers(@RequestParam(value = "filter", required = false) String filter) {
|
||||
return iActModelService.getUsers(filter);
|
||||
public ResultListDataRepresentation editorUsers(@RequestParam(value = "filter", required = false) String filter) {
|
||||
return actModelService.getUsers(filter);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -158,8 +159,8 @@ public class ActModelController extends BaseController {
|
||||
* @param filter 参数
|
||||
*/
|
||||
@GetMapping(value = "/rest/editor-groups")
|
||||
public ResultListDataRepresentation getGroups(@RequestParam(required = false, value = "filter") String filter) {
|
||||
return iActModelService.getGroups(filter);
|
||||
public ResultListDataRepresentation editorGroups(@RequestParam(required = false, value = "filter") String filter) {
|
||||
return actModelService.getGroups(filter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -15,7 +16,9 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@ -29,7 +32,7 @@ import java.util.*;
|
||||
@RequestMapping("/workflow/processDefinition")
|
||||
public class ActProcessDefinitionController extends BaseController {
|
||||
|
||||
private final IActProcessDefinitionService iActProcessDefinitionService;
|
||||
private final IActProcessDefinitionService actProcessDefinitionService;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
@ -37,8 +40,8 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
* @param processDefinitionBo 参数
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProcessDefinitionVo> getByPage(ProcessDefinitionBo processDefinitionBo) {
|
||||
return iActProcessDefinitionService.getByPage(processDefinitionBo);
|
||||
public TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo processDefinitionBo) {
|
||||
return actProcessDefinitionService.page(processDefinitionBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -48,7 +51,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getProcessDefinitionListByKey/{key}")
|
||||
public R<List<ProcessDefinitionVo>> getProcessDefinitionListByKey(@NotEmpty(message = "流程定义key不能为空") @PathVariable String key) {
|
||||
return R.ok("操作成功", iActProcessDefinitionService.getProcessDefinitionListByKey(key));
|
||||
return R.ok("操作成功", actProcessDefinitionService.getProcessDefinitionListByKey(key));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,7 +61,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/processDefinitionImage/{processDefinitionId}")
|
||||
public R<String> processDefinitionImage(@PathVariable String processDefinitionId) {
|
||||
return R.ok("操作成功", iActProcessDefinitionService.processDefinitionImage(processDefinitionId));
|
||||
return R.ok("操作成功", actProcessDefinitionService.processDefinitionImage(processDefinitionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -69,9 +72,8 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@GetMapping("/processDefinitionXml/{processDefinitionId}")
|
||||
public R<Map<String, Object>> getXml(@NotBlank(message = "流程定义id不能为空") @PathVariable String processDefinitionId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
String xmlStr = iActProcessDefinitionService.processDefinitionXml(processDefinitionId);
|
||||
List<String> xml = new ArrayList<>(Arrays.asList(xmlStr.split("\n")));
|
||||
map.put("xml", xml);
|
||||
String xmlStr = actProcessDefinitionService.processDefinitionXml(processDefinitionId);
|
||||
map.put("xml", StringUtils.splitList("\n"));
|
||||
map.put("xmlStr", xmlStr);
|
||||
return R.ok(map);
|
||||
}
|
||||
@ -86,7 +88,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@DeleteMapping("/{deploymentId}/{processDefinitionId}")
|
||||
public R<Void> deleteDeployment(@NotBlank(message = "流程部署id不能为空") @PathVariable String deploymentId,
|
||||
@NotBlank(message = "流程定义id不能为空") @PathVariable String processDefinitionId) {
|
||||
return toAjax(iActProcessDefinitionService.deleteDeployment(deploymentId, processDefinitionId));
|
||||
return toAjax(actProcessDefinitionService.deleteDeployment(deploymentId, processDefinitionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -97,7 +99,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@Log(title = "流程定义管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/updateProcessDefState/{processDefinitionId}")
|
||||
public R<Void> updateProcDefState(@NotBlank(message = "流程定义id不能为空") @PathVariable String processDefinitionId) {
|
||||
return toAjax(iActProcessDefinitionService.updateProcessDefState(processDefinitionId));
|
||||
return toAjax(actProcessDefinitionService.updateProcessDefState(processDefinitionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,7 +112,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@PutMapping("/migrationProcessDefinition/{currentProcessDefinitionId}/{fromProcessDefinitionId}")
|
||||
public R<Void> migrationProcessDefinition(@NotBlank(message = "当前流程定义id") @PathVariable String currentProcessDefinitionId,
|
||||
@NotBlank(message = "需要迁移到的流程定义id") @PathVariable String fromProcessDefinitionId) {
|
||||
return toAjax(iActProcessDefinitionService.migrationProcessDefinition(currentProcessDefinitionId, fromProcessDefinitionId));
|
||||
return toAjax(actProcessDefinitionService.migrationProcessDefinition(currentProcessDefinitionId, fromProcessDefinitionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -121,7 +123,7 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@Log(title = "流程定义管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/convertToModel/{processDefinitionId}")
|
||||
public R<Void> convertToModel(@NotEmpty(message = "流程定义id不能为空") @PathVariable String processDefinitionId) {
|
||||
return toAjax(iActProcessDefinitionService.convertToModel(processDefinitionId));
|
||||
return toAjax(actProcessDefinitionService.convertToModel(processDefinitionId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,6 +135,6 @@ public class ActProcessDefinitionController extends BaseController {
|
||||
@Log(title = "流程定义管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/deployByFile")
|
||||
public R<Void> deployByFile(@RequestParam("file") MultipartFile file, @RequestParam("categoryCode") String categoryCode) {
|
||||
return toAjax(iActProcessDefinitionService.deployByFile(file, categoryCode));
|
||||
return toAjax(actProcessDefinitionService.deployByFile(file, categoryCode));
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ import java.util.Map;
|
||||
@RequestMapping("/workflow/processInstance")
|
||||
public class ActProcessInstanceController extends BaseController {
|
||||
|
||||
private final IActProcessInstanceService iActProcessInstanceService;
|
||||
private final IActProcessInstanceService actProcessInstanceService;
|
||||
|
||||
/**
|
||||
* 分页查询正在运行的流程实例
|
||||
@ -40,7 +40,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getProcessInstanceRunningByPage")
|
||||
public TableDataInfo<ProcessInstanceVo> getProcessInstanceRunningByPage(ProcessInstanceBo processInstanceBo) {
|
||||
return iActProcessInstanceService.getProcessInstanceRunningByPage(processInstanceBo);
|
||||
return actProcessInstanceService.getProcessInstanceRunningByPage(processInstanceBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -50,7 +50,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getProcessInstanceFinishByPage")
|
||||
public TableDataInfo<ProcessInstanceVo> getProcessInstanceFinishByPage(ProcessInstanceBo processInstanceBo) {
|
||||
return iActProcessInstanceService.getProcessInstanceFinishByPage(processInstanceBo);
|
||||
return actProcessInstanceService.getProcessInstanceFinishByPage(processInstanceBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -60,7 +60,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getHistoryProcessImage/{processInstanceId}")
|
||||
public R<String> getHistoryProcessImage(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
|
||||
return R.ok("操作成功", iActProcessInstanceService.getHistoryProcessImage(processInstanceId));
|
||||
return R.ok("操作成功", actProcessInstanceService.getHistoryProcessImage(processInstanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,7 +70,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getHistoryRecord/{processInstanceId}")
|
||||
public R<Map<String, Object>> getHistoryRecord(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
|
||||
return R.ok(iActProcessInstanceService.getHistoryRecord(processInstanceId));
|
||||
return R.ok(actProcessInstanceService.getHistoryRecord(processInstanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -81,7 +81,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@PostMapping("/deleteRuntimeProcessInst")
|
||||
public R<Void> deleteRuntimeProcessInst(@Validated(AddGroup.class) @RequestBody ProcessInvalidBo processInvalidBo) {
|
||||
return toAjax(iActProcessInstanceService.deleteRuntimeProcessInst(processInvalidBo));
|
||||
return toAjax(actProcessInstanceService.deleteRuntimeProcessInst(processInvalidBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -92,7 +92,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/deleteRuntimeProcessAndHisInst/{processInstanceIds}")
|
||||
public R<Void> deleteRuntimeProcessAndHisInst(@NotNull(message = "流程实例id不能为空") @PathVariable String[] processInstanceIds) {
|
||||
return toAjax(iActProcessInstanceService.deleteRuntimeProcessAndHisInst(Arrays.asList(processInstanceIds)));
|
||||
return toAjax(actProcessInstanceService.deleteRuntimeProcessAndHisInst(Arrays.asList(processInstanceIds)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +103,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/deleteFinishProcessAndHisInst/{processInstanceIds}")
|
||||
public R<Void> deleteFinishProcessAndHisInst(@NotNull(message = "流程实例id不能为空") @PathVariable String[] processInstanceIds) {
|
||||
return toAjax(iActProcessInstanceService.deleteFinishProcessAndHisInst(Arrays.asList(processInstanceIds)));
|
||||
return toAjax(actProcessInstanceService.deleteFinishProcessAndHisInst(Arrays.asList(processInstanceIds)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,7 +114,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/cancelProcessApply/{processInstanceId}")
|
||||
public R<Void> cancelProcessApply(@NotBlank(message = "流程实例id不能为空") @PathVariable String processInstanceId) {
|
||||
return toAjax(iActProcessInstanceService.cancelProcessApply(processInstanceId));
|
||||
return toAjax(actProcessInstanceService.cancelProcessApply(processInstanceId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,7 +124,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getCurrentSubmitByPage")
|
||||
public TableDataInfo<ProcessInstanceVo> getCurrentSubmitByPage(ProcessInstanceBo processInstanceBo) {
|
||||
return iActProcessInstanceService.getCurrentSubmitByPage(processInstanceBo);
|
||||
return actProcessInstanceService.getCurrentSubmitByPage(processInstanceBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -135,7 +135,7 @@ public class ActProcessInstanceController extends BaseController {
|
||||
@Log(title = "流程实例管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/taskUrging")
|
||||
public R<Void> taskUrging(@RequestBody TaskUrgingBo taskUrgingBo) {
|
||||
return toAjax(iActProcessInstanceService.taskUrging(taskUrgingBo));
|
||||
return toAjax(actProcessInstanceService.taskUrging(taskUrgingBo));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
@ -31,7 +32,7 @@ import java.util.Map;
|
||||
@RequestMapping("/workflow/task")
|
||||
public class ActTaskController extends BaseController {
|
||||
|
||||
private final IActTaskService iActTaskService;
|
||||
private final IActTaskService actTaskService;
|
||||
|
||||
private final TaskService taskService;
|
||||
|
||||
@ -45,7 +46,7 @@ public class ActTaskController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/startWorkFlow")
|
||||
public R<Map<String, Object>> startWorkFlow(@RequestBody StartProcessBo startProcessBo) {
|
||||
Map<String, Object> map = iActTaskService.startWorkFlow(startProcessBo);
|
||||
Map<String, Object> map = actTaskService.startWorkFlow(startProcessBo);
|
||||
return R.ok("提交成功", map);
|
||||
}
|
||||
|
||||
@ -58,7 +59,7 @@ public class ActTaskController extends BaseController {
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/completeTask")
|
||||
public R<Void> completeTask(@Validated(AddGroup.class) @RequestBody CompleteTaskBo completeTaskBo) {
|
||||
return toAjax(iActTaskService.completeTask(completeTaskBo));
|
||||
return toAjax(actTaskService.completeTask(completeTaskBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -68,7 +69,7 @@ public class ActTaskController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getTaskWaitByPage")
|
||||
public TableDataInfo<TaskVo> getTaskWaitByPage(TaskBo taskBo) {
|
||||
return iActTaskService.getTaskWaitByPage(taskBo);
|
||||
return actTaskService.getTaskWaitByPage(taskBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -78,7 +79,7 @@ public class ActTaskController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getAllTaskWaitByPage")
|
||||
public TableDataInfo<TaskVo> getAllTaskWaitByPage(TaskBo taskBo) {
|
||||
return iActTaskService.getAllTaskWaitByPage(taskBo);
|
||||
return actTaskService.getAllTaskWaitByPage(taskBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -88,7 +89,7 @@ public class ActTaskController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getTaskFinishByPage")
|
||||
public TableDataInfo<TaskVo> getTaskFinishByPage(TaskBo taskBo) {
|
||||
return iActTaskService.getTaskFinishByPage(taskBo);
|
||||
return actTaskService.getTaskFinishByPage(taskBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -98,7 +99,7 @@ public class ActTaskController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getAllTaskFinishByPage")
|
||||
public TableDataInfo<TaskVo> getAllTaskFinishByPage(TaskBo taskBo) {
|
||||
return iActTaskService.getAllTaskFinishByPage(taskBo);
|
||||
return actTaskService.getAllTaskFinishByPage(taskBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,7 +111,7 @@ public class ActTaskController extends BaseController {
|
||||
@PostMapping("/claim/{taskId}")
|
||||
public R<Void> claimTask(@NotBlank(message = "任务id不能为空") @PathVariable String taskId) {
|
||||
try {
|
||||
taskService.claim(taskId, String.valueOf(LoginHelper.getUserId()));
|
||||
taskService.claim(taskId, Convert.toStr(LoginHelper.getUserId()));
|
||||
return R.ok();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -143,7 +144,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/delegateTask")
|
||||
public R<Void> delegateTask(@Validated({AddGroup.class}) @RequestBody DelegateBo delegateBo) {
|
||||
return toAjax(iActTaskService.delegateTask(delegateBo));
|
||||
return toAjax(actTaskService.delegateTask(delegateBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -154,7 +155,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.DELETE)
|
||||
@PostMapping("/terminationTask")
|
||||
public R<Void> terminationTask(@RequestBody TerminationBo terminationBo) {
|
||||
return toAjax(iActTaskService.terminationTask(terminationBo));
|
||||
return toAjax(actTaskService.terminationTask(terminationBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -165,7 +166,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/transferTask")
|
||||
public R<Void> transferTask(@Validated({AddGroup.class}) @RequestBody TransmitBo transmitBo) {
|
||||
return toAjax(iActTaskService.transferTask(transmitBo));
|
||||
return toAjax(actTaskService.transferTask(transmitBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -176,7 +177,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/addMultiInstanceExecution")
|
||||
public R<Void> addMultiInstanceExecution(@Validated({AddGroup.class}) @RequestBody AddMultiBo addMultiBo) {
|
||||
return toAjax(iActTaskService.addMultiInstanceExecution(addMultiBo));
|
||||
return toAjax(actTaskService.addMultiInstanceExecution(addMultiBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -187,7 +188,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/deleteMultiInstanceExecution")
|
||||
public R<Void> deleteMultiInstanceExecution(@Validated({AddGroup.class}) @RequestBody DeleteMultiBo deleteMultiBo) {
|
||||
return toAjax(iActTaskService.deleteMultiInstanceExecution(deleteMultiBo));
|
||||
return toAjax(actTaskService.deleteMultiInstanceExecution(deleteMultiBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -198,7 +199,7 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/backProcess")
|
||||
public R<String> backProcess(@RequestBody BackProcessBo backProcessBo) {
|
||||
return R.ok(iActTaskService.backProcess(backProcessBo));
|
||||
return R.ok(actTaskService.backProcess(backProcessBo));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -221,6 +222,6 @@ public class ActTaskController extends BaseController {
|
||||
@Log(title = "任务管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/updateAssignee/{taskIds}/{userId}")
|
||||
public R<Void> updateAssignee(@PathVariable String[] taskIds, @PathVariable String userId) {
|
||||
return toAjax(iActTaskService.updateAssignee(taskIds, userId));
|
||||
return toAjax(actTaskService.updateAssignee(taskIds, userId));
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,8 +12,11 @@
|
||||
*/
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
@ -25,14 +28,12 @@ import java.nio.charset.StandardCharsets;
|
||||
@RequestMapping("/workflow/model")
|
||||
public class StencilsetRestResource {
|
||||
|
||||
@GetMapping(value="/rest/stencil-sets/editor")
|
||||
public String getStencilset() {
|
||||
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/stencilset.json");
|
||||
try {
|
||||
assert inputStream != null;
|
||||
return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
|
||||
} catch (Exception e) {
|
||||
throw new SecurityException("Error while loading stencil set", e);
|
||||
@GetMapping(value = "/rest/stencil-sets/editor")
|
||||
public String getStencilset() {
|
||||
try (InputStream inputStream = ResourceUtil.getStream("static/stencilset.json")) {
|
||||
return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
|
||||
} catch (Exception e) {
|
||||
throw new SecurityException("Error while loading stencil set", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,27 +1,28 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.domain.bo.TestLeaveBo;
|
||||
import org.dromara.workflow.domain.vo.TestLeaveVo;
|
||||
import org.dromara.workflow.service.ITestLeaveService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 请假
|
||||
@ -65,7 +66,7 @@ public class TestLeaveController extends BaseController {
|
||||
@SaCheckPermission("demo:leave:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<TestLeaveVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
@PathVariable Long id) {
|
||||
return R.ok(testLeaveService.queryById(id));
|
||||
}
|
||||
|
||||
|
||||
@ -1,27 +1,28 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.workflow.service.IWfBusinessFormService;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.workflow.service.IWfBusinessFormService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 发起流程
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
package org.dromara.workflow.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.bo.WfCategoryBo;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.workflow.service.IWfCategoryService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程分类
|
||||
@ -64,7 +65,7 @@ public class WfCategoryController extends BaseController {
|
||||
@SaCheckPermission("workflow:category:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<WfCategoryVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
@PathVariable Long id) {
|
||||
return R.ok(wfCategoryService.queryById(id));
|
||||
}
|
||||
|
||||
|
||||
@ -67,6 +67,7 @@ public class WfFormController extends BaseController {
|
||||
|
||||
/**
|
||||
* 获取流程表单详细信息
|
||||
*
|
||||
* @param formId 主键
|
||||
*/
|
||||
@SaCheckPermission("workflow:form:query")
|
||||
@ -97,6 +98,7 @@ public class WfFormController extends BaseController {
|
||||
|
||||
/**
|
||||
* 删除流程表单
|
||||
*
|
||||
* @param formIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("workflow:form:remove")
|
||||
|
||||
@ -2,16 +2,19 @@ package org.dromara.workflow.controller;
|
||||
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.workflow.domain.bo.WfFormDefinitionBo;
|
||||
import org.dromara.workflow.service.IWfFormDefinitionService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 动态单与流程定义关联信息
|
||||
|
||||
@ -9,7 +9,10 @@ import org.dromara.workflow.domain.bo.SysUserMultiBo;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
import org.dromara.workflow.service.IWorkflowUserService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -25,7 +28,7 @@ import java.util.List;
|
||||
@RequestMapping("/workflow/user")
|
||||
public class WorkflowUserController extends BaseController {
|
||||
|
||||
private final IWorkflowUserService iWorkflowUserService;
|
||||
private final IWorkflowUserService workflowUserService;
|
||||
|
||||
/**
|
||||
* 分页查询工作流选择加签人员
|
||||
@ -34,7 +37,7 @@ public class WorkflowUserController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getWorkflowAddMultiListByPage")
|
||||
public TableDataInfo<SysUserVo> getWorkflowAddMultiInstanceByPage(SysUserMultiBo sysUserMultiBo) {
|
||||
return iWorkflowUserService.getWorkflowAddMultiInstanceByPage(sysUserMultiBo);
|
||||
return workflowUserService.getWorkflowAddMultiInstanceByPage(sysUserMultiBo);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,7 +47,7 @@ public class WorkflowUserController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getWorkflowDeleteMultiInstanceList/{taskId}")
|
||||
public R<List<TaskVo>> getWorkflowDeleteMultiInstanceList(@PathVariable String taskId) {
|
||||
return R.ok(iWorkflowUserService.getWorkflowDeleteMultiInstanceList(taskId));
|
||||
return R.ok(workflowUserService.getWorkflowDeleteMultiInstanceList(taskId));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,6 +57,6 @@ public class WorkflowUserController extends BaseController {
|
||||
*/
|
||||
@GetMapping("/getUserListByIds/{userIds}")
|
||||
public R<List<SysUserVo>> getUserListByIds(@PathVariable List<Long> userIds) {
|
||||
return R.ok(iWorkflowUserService.getUserListByIds(userIds));
|
||||
return R.ok(workflowUserService.getUserListByIds(userIds));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package org.dromara.workflow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 流程实例对象 act_hi_procinst
|
||||
*
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package org.dromara.workflow.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package org.dromara.workflow.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Map;
|
||||
@ -59,6 +61,6 @@ public class WfBusinessForm extends TenantEntity {
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String,Object> variable;
|
||||
private Map<String, Object> variable;
|
||||
|
||||
}
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package org.dromara.workflow.domain;
|
||||
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
package org.dromara.workflow.domain;
|
||||
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
|
||||
/**
|
||||
* 请假业务对象 test_leave
|
||||
@ -23,19 +24,19 @@ public class TestLeaveBo extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "标题不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 请假天数
|
||||
*/
|
||||
@NotNull(message = "请假天数不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "请假天数不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Integer leaveDays;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
|
||||
/**
|
||||
* 发起流程业务对象 wf_business_form
|
||||
@ -23,7 +24,7 @@ public class WfBusinessFormBo extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
@ -34,19 +35,19 @@ public class WfBusinessFormBo extends BaseEntity {
|
||||
/**
|
||||
* 表单id
|
||||
*/
|
||||
@NotNull(message = "表单id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "表单id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long formId;
|
||||
|
||||
/**
|
||||
* 表单名称
|
||||
*/
|
||||
@NotBlank(message = "表单名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "表单名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String formName;
|
||||
|
||||
/**
|
||||
* 表单内容
|
||||
*/
|
||||
@NotBlank(message = "表单内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "表单内容不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String content;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
|
||||
/**
|
||||
* 流程分类业务对象 wf_category
|
||||
@ -23,25 +24,25 @@ public class WfCategoryBo extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
@NotBlank(message = "分类名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "分类名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String categoryName;
|
||||
|
||||
/**
|
||||
* 分类编码
|
||||
*/
|
||||
@NotBlank(message = "分类编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "分类编码不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String categoryCode;
|
||||
|
||||
/**
|
||||
* 父级id
|
||||
*/
|
||||
@NotNull(message = "父级id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "父级id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
|
||||
@ -28,31 +28,31 @@ public class WfFormBo extends BaseEntity {
|
||||
/**
|
||||
* 表单主键
|
||||
*/
|
||||
@NotNull(message = "表单ID不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "表单ID不能为空", groups = {EditGroup.class})
|
||||
private Long formId;
|
||||
|
||||
/**
|
||||
* 表单名称
|
||||
*/
|
||||
@NotBlank(message = "表单名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "表单名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String formName;
|
||||
|
||||
/**
|
||||
* 表单配置
|
||||
*/
|
||||
@NotBlank(message = "表单配置不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "表单配置不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String formConfig;
|
||||
|
||||
/**
|
||||
* 表单内容
|
||||
*/
|
||||
@NotBlank(message = "表单内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "表单内容不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
@NotBlank(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String status;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package org.dromara.workflow.domain.bo;
|
||||
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
|
||||
/**
|
||||
* 动态单与流程定义关联信息业务对象 wf_form_definition
|
||||
@ -23,37 +24,37 @@ public class WfFormDefinitionBo extends BaseEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 动态表单id
|
||||
*/
|
||||
@NotNull(message = "动态表单id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "动态表单id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long formId;
|
||||
|
||||
/**
|
||||
* 流程定义id
|
||||
*/
|
||||
@NotBlank(message = "流程定义key不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "流程定义key不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String processDefinitionKey;
|
||||
|
||||
/**
|
||||
* 流程定义名称
|
||||
*/
|
||||
@NotBlank(message = "流程定义名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "流程定义名称不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String processDefinitionName;
|
||||
|
||||
/**
|
||||
* 流程定义id
|
||||
*/
|
||||
@NotBlank(message = "流程定义id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotBlank(message = "流程定义id不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String processDefinitionId;
|
||||
|
||||
/**
|
||||
* 流程定义版本
|
||||
*/
|
||||
@NotNull(message = "流程定义版本不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
@NotNull(message = "流程定义版本不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private Long processDefinitionVersion;
|
||||
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ import java.util.Date;
|
||||
public class ActHistoryInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID=1L;
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
|
||||
@ -18,7 +18,7 @@ import lombok.Data;
|
||||
* @author Joram Barrez
|
||||
*/
|
||||
@Data
|
||||
public class GroupRepresentation{
|
||||
public class GroupRepresentation {
|
||||
|
||||
protected String id;
|
||||
protected String name;
|
||||
|
||||
@ -12,22 +12,22 @@
|
||||
*/
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Tijs Rademakers
|
||||
*/
|
||||
@Data
|
||||
public class ResultListDataRepresentation {
|
||||
|
||||
protected Integer size;
|
||||
protected Long total;
|
||||
protected Integer start;
|
||||
protected List<? extends Object> data;
|
||||
protected List<?> data;
|
||||
|
||||
public ResultListDataRepresentation() {
|
||||
}
|
||||
|
||||
public ResultListDataRepresentation(List<? extends Object> data) {
|
||||
public ResultListDataRepresentation(List<?> data) {
|
||||
this.data = data;
|
||||
if (data != null) {
|
||||
size = data.size();
|
||||
@ -36,35 +36,4 @@ public class ResultListDataRepresentation {
|
||||
}
|
||||
}
|
||||
|
||||
public Integer getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
public void setSize(Integer size) {
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
public Long getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
public void setTotal(Long total) {
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
public Integer getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public void setStart(Integer start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public List<? extends Object> getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public void setData(List<? extends Object> data) {
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,11 +1,10 @@
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.workflow.domain.vo.ProcessInstanceVo;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@ -1,16 +1,15 @@
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 流程分类视图对象 wf_category
|
||||
*
|
||||
|
||||
@ -1,16 +1,15 @@
|
||||
package org.dromara.workflow.domain.vo;
|
||||
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 动态单与流程定义关联信息视图对象 wf_form_definition
|
||||
*
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.flowable.cmd;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import org.flowable.common.engine.impl.interceptor.Command;
|
||||
import org.flowable.common.engine.impl.interceptor.CommandContext;
|
||||
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
|
||||
@ -44,15 +45,17 @@ public class AddSequenceMultiInstanceCmd implements Command<Void> {
|
||||
public Void execute(CommandContext commandContext) {
|
||||
ExecutionEntityManager executionEntityManager = CommandContextUtil.getExecutionEntityManager();
|
||||
ExecutionEntity entity = executionEntityManager.findById(executionId);
|
||||
//多实例任务总数加assignees.size()
|
||||
Integer nrOfInstances = (Integer) entity.getVariable(NUMBER_OF_INSTANCES);
|
||||
entity.setVariable(NUMBER_OF_INSTANCES, nrOfInstances + assignees.size());
|
||||
// 多实例任务总数加 assignees.size()
|
||||
if (entity.getVariable(NUMBER_OF_INSTANCES) instanceof Integer nrOfInstances) {
|
||||
entity.setVariable(NUMBER_OF_INSTANCES, nrOfInstances + assignees.size());
|
||||
}
|
||||
// 设置流程变量
|
||||
List<Long> userIds = (List) entity.getVariable(assigneeList);
|
||||
userIds.addAll(assignees);
|
||||
Map<String, Object> variables = new HashMap<>(16);
|
||||
variables.put(assigneeList, userIds);
|
||||
entity.setVariables(variables);
|
||||
if (entity.getVariable(assigneeList) instanceof List<?> userIds) {
|
||||
CollUtil.addAll(userIds, assignees);
|
||||
Map<String, Object> variables = new HashMap<>(16);
|
||||
variables.put(assigneeList, userIds);
|
||||
entity.setVariables(variables);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.flowable.cmd;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.flowable.common.engine.impl.interceptor.Command;
|
||||
import org.flowable.common.engine.impl.interceptor.CommandContext;
|
||||
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
|
||||
@ -20,6 +21,7 @@ import static org.dromara.workflow.common.constant.FlowConstant.NUMBER_OF_INSTAN
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
public class DeleteSequenceMultiInstanceCmd implements Command<Void> {
|
||||
|
||||
/**
|
||||
@ -42,19 +44,14 @@ public class DeleteSequenceMultiInstanceCmd implements Command<Void> {
|
||||
*/
|
||||
private final List<Long> assignees;
|
||||
|
||||
public DeleteSequenceMultiInstanceCmd(String currentUserId, String executionId, String assigneeList, List<Long> assignees) {
|
||||
this.currentUserId = currentUserId;
|
||||
this.executionId = executionId;
|
||||
this.assigneeList = assigneeList;
|
||||
this.assignees = assignees;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Void execute(CommandContext commandContext) {
|
||||
ExecutionEntityManager executionEntityManager = CommandContextUtil.getExecutionEntityManager();
|
||||
ExecutionEntity entity = executionEntityManager.findById(executionId);
|
||||
// 设置流程变量
|
||||
List<Long> userIds = (List) entity.getVariable(assigneeList);
|
||||
List<Long> userIds = (List<Long>) entity.getVariable(assigneeList);
|
||||
List<Long> userIdList = new ArrayList<>();
|
||||
userIds.forEach(e -> {
|
||||
Long userId = assignees.stream().filter(id -> id.equals(e)).findFirst().orElse(null);
|
||||
@ -62,7 +59,7 @@ public class DeleteSequenceMultiInstanceCmd implements Command<Void> {
|
||||
userIdList.add(e);
|
||||
}
|
||||
});
|
||||
//当前任务执行位置
|
||||
// 当前任务执行位置
|
||||
int loopCounterIndex = -1;
|
||||
for (int i = 0; i < userIdList.size(); i++) {
|
||||
Long userId = userIdList.get(i);
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.workflow.flowable.cmd;
|
||||
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.flowable.common.engine.impl.interceptor.Command;
|
||||
import org.flowable.common.engine.impl.interceptor.CommandContext;
|
||||
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
|
||||
@ -8,7 +9,6 @@ import org.flowable.engine.impl.util.CommandContextUtil;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 获取并行网关执行后保留的执行实例数据
|
||||
@ -34,6 +34,6 @@ public class ExecutionChildByExecutionIdCmd implements Command<List<ExecutionEnt
|
||||
// 通过当前执行数据的父执行,查询所有子执行数据
|
||||
List<ExecutionEntity> allChildrenExecution =
|
||||
executionEntityManager.collectChildren(executionEntity.getParent());
|
||||
return allChildrenExecution.stream().filter(e -> !e.isActive()).collect(Collectors.toList());
|
||||
return StreamUtils.filter(allChildrenExecution, e -> !e.isActive());
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ public class FlowableConfig implements EngineConfigurationConfigurer<SpringProce
|
||||
|
||||
@Autowired
|
||||
private GlobalFlowableListener globalFlowableListener;
|
||||
|
||||
@Override
|
||||
public void configure(SpringProcessEngineConfiguration processEngineConfiguration) {
|
||||
processEngineConfiguration.setIdGenerator(IdWorker::getIdStr);
|
||||
|
||||
@ -2,7 +2,9 @@ package org.dromara.workflow.flowable.config;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import org.dromara.workflow.common.enums.TaskStatusEnum;
|
||||
import org.flowable.bpmn.model.*;
|
||||
import org.flowable.bpmn.model.BoundaryEvent;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.common.engine.api.delegate.event.*;
|
||||
import org.flowable.common.engine.impl.cfg.TransactionState;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
@ -43,11 +45,7 @@ public class GlobalFlowableListener implements FlowableEventListener {
|
||||
if (flowableEvent instanceof FlowableEngineEvent flowableEngineEvent) {
|
||||
FlowableEngineEventType engineEventType = (FlowableEngineEventType) flowableEvent.getType();
|
||||
switch (engineEventType) {
|
||||
case JOB_EXECUTION_SUCCESS:
|
||||
jobExecutionSuccess((FlowableEngineEntityEvent) flowableEngineEvent);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case JOB_EXECUTION_SUCCESS -> jobExecutionSuccess((FlowableEngineEntityEvent) flowableEngineEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||
import org.dromara.workflow.domain.ActHiProcinst;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.workflow.domain.ActHiProcinst;
|
||||
|
||||
/**
|
||||
* 流程实例Mapper接口
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.domain.vo.TestLeaveVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 请假Mapper接口
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 发起流程Mapper接口
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 流程分类Mapper接口
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.mapper;
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 动态单与流程定义关联信息Mapper接口
|
||||
|
||||
@ -20,7 +20,7 @@ public interface IActModelService {
|
||||
* @param modelBo 模型参数
|
||||
* @return 返回分页列表
|
||||
*/
|
||||
TableDataInfo<Model> getByPage(ModelBo modelBo);
|
||||
TableDataInfo<Model> page(ModelBo modelBo);
|
||||
|
||||
/**
|
||||
* 新增模型
|
||||
|
||||
@ -19,7 +19,7 @@ public interface IActProcessDefinitionService {
|
||||
* @param processDefinitionBo 参数
|
||||
* @return 返回分页列表
|
||||
*/
|
||||
TableDataInfo<ProcessDefinitionVo> getByPage(ProcessDefinitionBo processDefinitionBo);
|
||||
TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo processDefinitionBo);
|
||||
|
||||
/**
|
||||
* 查询历史流程定义列表
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package org.dromara.workflow.service;
|
||||
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.domain.vo.TestLeaveVo;
|
||||
import org.dromara.workflow.domain.bo.TestLeaveBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.domain.bo.TestLeaveBo;
|
||||
import org.dromara.workflow.domain.vo.TestLeaveVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package org.dromara.workflow.service;
|
||||
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.workflow.service;
|
||||
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.workflow.domain.bo.WfCategoryBo;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package org.dromara.workflow.service;
|
||||
|
||||
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
|
||||
import org.dromara.workflow.domain.bo.WfFormDefinitionBo;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.bo.WfFormDefinitionBo;
|
||||
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.workflow.domain.ActHiProcinst;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.workflow.mapper.ActHiProcinstMapper;
|
||||
import org.dromara.workflow.service.IActHiProcinstService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -32,8 +32,8 @@ public class ActHiProcinstServiceImpl implements IActHiProcinstService {
|
||||
@Override
|
||||
public List<ActHiProcinst> selectByBusinessKeyIn(List<String> businessKeys) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<ActHiProcinst>()
|
||||
.in(ActHiProcinst::getBusinessKey, businessKeys)
|
||||
.eq(ActHiProcinst::getTenantId, TenantHelper.getTenantId()));
|
||||
.in(ActHiProcinst::getBusinessKey, businessKeys)
|
||||
.eq(TenantHelper.isEnable(), ActHiProcinst::getTenantId, TenantHelper.getTenantId()));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,8 +44,8 @@ public class ActHiProcinstServiceImpl implements IActHiProcinstService {
|
||||
@Override
|
||||
public ActHiProcinst selectByBusinessKey(String businessKey) {
|
||||
return baseMapper.selectOne(new LambdaQueryWrapper<ActHiProcinst>()
|
||||
.eq(ActHiProcinst::getBusinessKey, businessKey)
|
||||
.eq(ActHiProcinst::getTenantId, TenantHelper.getTenantId()));
|
||||
.eq(ActHiProcinst::getBusinessKey, businessKey)
|
||||
.eq(TenantHelper.isEnable(), ActHiProcinst::getTenantId, TenantHelper.getTenantId()));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
@ -76,7 +77,7 @@ public class ActModelServiceImpl implements IActModelService {
|
||||
* @return 返回分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<Model> getByPage(ModelBo modelBo) {
|
||||
public TableDataInfo<Model> page(ModelBo modelBo) {
|
||||
ModelQuery query = repositoryService.createModelQuery();
|
||||
query.modelTenantId(TenantHelper.getTenantId());
|
||||
if (StringUtils.isNotEmpty(modelBo.getName())) {
|
||||
@ -93,8 +94,8 @@ public class ActModelServiceImpl implements IActModelService {
|
||||
query.orderByCreateTime().desc();
|
||||
// 分页查询
|
||||
List<Model> modelList = query.listPage(modelBo.getPageNum(), modelBo.getPageSize());
|
||||
if (CollectionUtil.isNotEmpty(modelList)) {
|
||||
modelList.forEach(e -> {
|
||||
if (CollUtil.isNotEmpty(modelList)) {
|
||||
modelList.parallelStream().forEach(e -> {
|
||||
boolean isNull = JSONUtil.isNull(JSONUtil.parseObj(e.getMetaInfo()).get(ModelDataJsonConstants.MODEL_DESCRIPTION));
|
||||
if (!isNull) {
|
||||
e.setMetaInfo((String) JSONUtil.parseObj(e.getMetaInfo()).get(ModelDataJsonConstants.MODEL_DESCRIPTION));
|
||||
@ -237,11 +238,11 @@ public class ActModelServiceImpl implements IActModelService {
|
||||
JsonNode childShapes = jsonNode.get("childShapes");
|
||||
for (JsonNode childShape : childShapes) {
|
||||
JsonNode properties = childShape.get("properties");
|
||||
if(!properties.path("usertaskassignment").isMissingNode()){
|
||||
if (!properties.path("usertaskassignment").isMissingNode()) {
|
||||
JsonNode usertaskassignment = properties.get("usertaskassignment");
|
||||
if(!usertaskassignment.path("assignment").isMissingNode()){
|
||||
if (!usertaskassignment.path("assignment").isMissingNode()) {
|
||||
JsonNode assignment = usertaskassignment.get("assignment");
|
||||
if(!assignment.path("assignee").isMissingNode()){
|
||||
if (!assignment.path("assignee").isMissingNode()) {
|
||||
if ("$INITIATOR".equals(assignment.get("assignee").textValue())) {
|
||||
((ObjectNode) assignment).put("assignee", "${INITIATOR}");
|
||||
}
|
||||
@ -406,16 +407,15 @@ public class ActModelServiceImpl implements IActModelService {
|
||||
public ResultListDataRepresentation getGroups(String filter) {
|
||||
|
||||
LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.like(org.dromara.common.core.utils.StringUtils.isNotBlank(filter), SysRole::getRoleName, filter);
|
||||
wrapper.like(StringUtils.isNotBlank(filter), SysRole::getRoleName, filter);
|
||||
List<SysRole> sysRoles = sysRoleMapper.selectList(wrapper);
|
||||
List<GroupRepresentation> result = new ArrayList<>();
|
||||
for (SysRole sysRole : sysRoles) {
|
||||
List<GroupRepresentation> result = StreamUtils.toList(sysRoles, sysRole -> {
|
||||
GroupRepresentation groupRepresentation = new GroupRepresentation();
|
||||
groupRepresentation.setId(sysRole.getRoleId().toString());
|
||||
groupRepresentation.setName(sysRole.getRoleName());
|
||||
groupRepresentation.setType(sysRole.getRoleKey());
|
||||
result.add(groupRepresentation);
|
||||
}
|
||||
return groupRepresentation;
|
||||
});
|
||||
return new ResultListDataRepresentation(result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
@ -56,7 +57,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
|
||||
|
||||
private final ProcessMigrationService processMigrationService;
|
||||
|
||||
private final IWfCategoryService iWfCategoryService;
|
||||
private final IWfCategoryService wfCategoryService;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
@ -65,7 +66,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
|
||||
* @return 返回分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ProcessDefinitionVo> getByPage(ProcessDefinitionBo processDefinitionBo) {
|
||||
public TableDataInfo<ProcessDefinitionVo> page(ProcessDefinitionBo processDefinitionBo) {
|
||||
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
|
||||
query.processDefinitionTenantId(TenantHelper.getTenantId());
|
||||
if (StringUtils.isNotEmpty(processDefinitionBo.getKey())) {
|
||||
@ -82,9 +83,8 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
|
||||
List<ProcessDefinition> definitionList = query.latestVersion().listPage(processDefinitionBo.getPageNum(), processDefinitionBo.getPageSize());
|
||||
List<Deployment> deploymentList = null;
|
||||
if (CollUtil.isNotEmpty(definitionList)) {
|
||||
List<String> deploymentIds = definitionList.stream().map(ProcessDefinition::getDeploymentId).collect(Collectors.toList());
|
||||
deploymentList = repositoryService.createDeploymentQuery()
|
||||
.deploymentIds(deploymentIds).list();
|
||||
List<String> deploymentIds = StreamUtils.toList(definitionList, ProcessDefinition::getDeploymentId);
|
||||
deploymentList = repositoryService.createDeploymentQuery().deploymentIds(deploymentIds).list();
|
||||
}
|
||||
for (ProcessDefinition processDefinition : definitionList) {
|
||||
ProcessDefinitionVo processDefinitionVo = BeanUtil.toBean(processDefinition, ProcessDefinitionVo.class);
|
||||
@ -281,7 +281,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
|
||||
@Override
|
||||
public boolean deployByFile(MultipartFile file, String categoryCode) {
|
||||
try {
|
||||
WfCategory wfCategory = iWfCategoryService.queryByCategoryCode(categoryCode);
|
||||
WfCategory wfCategory = wfCategoryService.queryByCategoryCode(categoryCode);
|
||||
if (wfCategory == null) {
|
||||
throw new ServiceException("流程分类不存在");
|
||||
}
|
||||
|
||||
@ -21,14 +21,20 @@ import org.dromara.workflow.domain.ActHiProcinst;
|
||||
import org.dromara.workflow.domain.bo.ProcessInstanceBo;
|
||||
import org.dromara.workflow.domain.bo.ProcessInvalidBo;
|
||||
import org.dromara.workflow.domain.bo.TaskUrgingBo;
|
||||
import org.dromara.workflow.domain.vo.*;
|
||||
import org.dromara.workflow.domain.vo.ActHistoryInfoVo;
|
||||
import org.dromara.workflow.domain.vo.GraphicInfoVo;
|
||||
import org.dromara.workflow.domain.vo.ProcessInstanceVo;
|
||||
import org.dromara.workflow.domain.vo.TaskVo;
|
||||
import org.dromara.workflow.flowable.CustomDefaultProcessDiagramGenerator;
|
||||
import org.dromara.workflow.flowable.cmd.DeleteExecutionCmd;
|
||||
import org.dromara.workflow.flowable.cmd.ExecutionChildByExecutionIdCmd;
|
||||
import org.dromara.workflow.service.IActHiProcinstService;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
import org.flowable.bpmn.model.*;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.bpmn.model.GraphicInfo;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.engine.*;
|
||||
import org.flowable.engine.history.HistoricActivityInstance;
|
||||
import org.flowable.engine.history.HistoricProcessInstance;
|
||||
@ -46,8 +52,8 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.InputStream;
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -64,7 +70,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
private final RuntimeService runtimeService;
|
||||
private final HistoryService historyService;
|
||||
private final TaskService taskService;
|
||||
private final IActHiProcinstService iActHiProcinstService;
|
||||
private final IActHiProcinstService actHiProcinstService;
|
||||
private final ManagementService managementService;
|
||||
|
||||
@Value("${flowable.activity-font-name}")
|
||||
@ -105,7 +111,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
for (ProcessInstance processInstance : processInstances) {
|
||||
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class);
|
||||
processInstanceVo.setIsSuspended(processInstance.isSuspended());
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstance.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstance.getBusinessStatus()));
|
||||
list.add(processInstanceVo);
|
||||
}
|
||||
long count = query.count();
|
||||
@ -141,7 +147,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
List<HistoricProcessInstance> historicProcessInstances = query.listPage(processInstanceBo.getPageNum(), processInstanceBo.getPageSize());
|
||||
for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) {
|
||||
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(historicProcessInstance, ProcessInstanceVo.class);
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(historicProcessInstance.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(historicProcessInstance.getBusinessStatus()));
|
||||
list.add(processInstanceVo);
|
||||
}
|
||||
long count = query.count();
|
||||
@ -212,7 +218,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
@Override
|
||||
public Map<String, Object> getHistoryRecord(String processInstanceId) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//查询任务办理记录
|
||||
// 查询任务办理记录
|
||||
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
|
||||
.processInstanceId(processInstanceId).taskTenantId(TenantHelper.getTenantId()).orderByHistoricTaskInstanceEndTime().desc().list();
|
||||
list = StreamUtils.sorted(list, Comparator.comparing(HistoricTaskInstance::getEndTime, Comparator.nullsFirst(Date::compareTo)).reversed());
|
||||
@ -230,7 +236,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
if (StringUtils.isNotBlank(e.getFullMessage())) {
|
||||
actHistoryInfoVo.setComment(e.getFullMessage());
|
||||
actHistoryInfoVo.setStatus(e.getType());
|
||||
actHistoryInfoVo.setStatusName(TaskStatusEnum.getEnumsByStatus(e.getType()));
|
||||
actHistoryInfoVo.setStatusName(TaskStatusEnum.findByStatus(e.getType()));
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -245,13 +251,13 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
actHistoryInfoVoList.add(actHistoryInfoVo);
|
||||
}
|
||||
List<ActHistoryInfoVo> collect = new ArrayList<>();
|
||||
//待办理
|
||||
// 待办理
|
||||
List<ActHistoryInfoVo> waitingTask = StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() == null);
|
||||
//已办理
|
||||
// 已办理
|
||||
List<ActHistoryInfoVo> finishTask = StreamUtils.filter(actHistoryInfoVoList, e -> e.getEndTime() != null);
|
||||
collect.addAll(waitingTask);
|
||||
collect.addAll(finishTask);
|
||||
//审批记录
|
||||
// 审批记录
|
||||
map.put("historyRecordList", collect);
|
||||
List<ActHistoryInfoVo> nodeInfoList = new ArrayList<>();
|
||||
Map<String, List<ActHistoryInfoVo>> groupByKey = StreamUtils.groupByKey(actHistoryInfoVoList, ActHistoryInfoVo::getTaskDefinitionKey);
|
||||
@ -275,7 +281,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
});
|
||||
nodeInfoList.add(actHistoryInfoVo);
|
||||
}
|
||||
//节点信息
|
||||
// 节点信息
|
||||
map.put("nodeListInfo", nodeInfoList);
|
||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(list.get(0).getProcessDefinitionId());
|
||||
List<GraphicInfoVo> graphicInfoVos = new ArrayList<>();
|
||||
@ -367,7 +373,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteRuntimeProcessAndHisInst(List<String> processInstanceIds) {
|
||||
try {
|
||||
//1.删除运行中流程实例
|
||||
// 1.删除运行中流程实例
|
||||
List<Task> list = taskService.createTaskQuery().processInstanceIdIn(processInstanceIds)
|
||||
.taskTenantId(TenantHelper.getTenantId()).list();
|
||||
List<Task> subTasks = StreamUtils.filter(list, e -> StringUtils.isNotBlank(e.getParentTaskId()));
|
||||
@ -375,7 +381,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
subTasks.forEach(e -> taskService.deleteTask(e.getId()));
|
||||
}
|
||||
runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "删除了当前流程申请");
|
||||
//2.删除历史记录
|
||||
// 2.删除历史记录
|
||||
List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery()
|
||||
.processInstanceTenantId(TenantHelper.getTenantId()).processInstanceIds(new HashSet<>(processInstanceIds)).list();
|
||||
if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) {
|
||||
@ -397,8 +403,8 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteRuntimeProcessAndHisInstByBusinessKeys(List<String> businessKeys) {
|
||||
try {
|
||||
//1.删除运行中流程实例
|
||||
List<ActHiProcinst> actHiProcinsts = iActHiProcinstService.selectByBusinessKeyIn(businessKeys);
|
||||
// 1.删除运行中流程实例
|
||||
List<ActHiProcinst> actHiProcinsts = actHiProcinstService.selectByBusinessKeyIn(businessKeys);
|
||||
if (CollUtil.isEmpty(actHiProcinsts)) {
|
||||
log.warn("当前业务ID:{}查询到流程实例为空!", businessKeys);
|
||||
return false;
|
||||
@ -411,7 +417,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
subTasks.forEach(e -> taskService.deleteTask(e.getId()));
|
||||
}
|
||||
runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "删除了当前流程申请");
|
||||
//2.删除历史记录
|
||||
// 2.删除历史记录
|
||||
List<HistoricProcessInstance> historicProcessInstanceList = historyService.createHistoricProcessInstanceQuery()
|
||||
.processInstanceTenantId(TenantHelper.getTenantId()).processInstanceIds(new HashSet<>(processInstanceIds)).list();
|
||||
if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) {
|
||||
@ -522,7 +528,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
|
||||
}
|
||||
for (HistoricProcessInstance processInstance : historicProcessInstanceList) {
|
||||
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(processInstance, ProcessInstanceVo.class);
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstance.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstance.getBusinessStatus()));
|
||||
if (CollUtil.isNotEmpty(taskVoList)) {
|
||||
List<TaskVo> collect = StreamUtils.filter(taskVoList, e -> e.getProcessInstanceId().equals(processInstance.getId()));
|
||||
processInstanceVo.setTaskVoList(CollUtil.isNotEmpty(collect) ? collect : Collections.emptyList());
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.workflow.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -218,12 +219,12 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
if (CollUtil.isNotEmpty(processInstanceList)) {
|
||||
processInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
|
||||
taskVo.setBusinessStatus(e.getBusinessStatus());
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey());
|
||||
taskVo.setProcessDefinitionName(e.getProcessDefinitionName());
|
||||
});
|
||||
}
|
||||
taskVo.setAssignee(StringUtils.isNotBlank(task.getAssignee()) ? Long.valueOf(task.getAssignee()) : null);
|
||||
taskVo.setAssignee(Convert.toLong(task.getAssignee()));
|
||||
taskVo.setParticipantVo(WorkflowUtils.getCurrentTaskParticipant(task.getId()));
|
||||
taskVo.setMultiInstance(WorkflowUtils.isMultiInstance(task.getProcessDefinitionId(), task.getTaskDefinitionKey()) != null);
|
||||
list.add(taskVo);
|
||||
@ -261,7 +262,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
if (CollUtil.isNotEmpty(processInstanceList)) {
|
||||
processInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
|
||||
taskVo.setBusinessStatus(e.getBusinessStatus());
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey());
|
||||
taskVo.setProcessDefinitionName(e.getProcessDefinitionName());
|
||||
});
|
||||
@ -306,7 +307,7 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
if (CollUtil.isNotEmpty(historicProcessInstanceList)) {
|
||||
historicProcessInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
|
||||
taskVo.setBusinessStatus(e.getBusinessStatus());
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey());
|
||||
taskVo.setProcessDefinitionName(e.getProcessDefinitionName());
|
||||
});
|
||||
@ -348,12 +349,12 @@ public class ActTaskServiceImpl implements IActTaskService {
|
||||
if (CollUtil.isNotEmpty(historicProcessInstanceList)) {
|
||||
historicProcessInstanceList.stream().filter(e -> e.getId().equals(task.getProcessInstanceId())).findFirst().ifPresent(e -> {
|
||||
taskVo.setBusinessStatus(e.getBusinessStatus());
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(taskVo.getBusinessStatus()));
|
||||
taskVo.setProcessDefinitionKey(e.getProcessDefinitionKey());
|
||||
taskVo.setProcessDefinitionName(e.getProcessDefinitionName());
|
||||
});
|
||||
}
|
||||
taskVo.setAssignee(StringUtils.isNotBlank(task.getAssignee()) ? Long.valueOf(task.getAssignee()) : null);
|
||||
taskVo.setAssignee(Convert.toLong(task.getAssignee()));
|
||||
list.add(taskVo);
|
||||
}
|
||||
long count = query.count();
|
||||
|
||||
@ -1,28 +1,28 @@
|
||||
package org.dromara.workflow.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.domain.bo.TestLeaveBo;
|
||||
import org.dromara.workflow.domain.vo.TestLeaveVo;
|
||||
import org.dromara.workflow.domain.TestLeave;
|
||||
import org.dromara.workflow.mapper.TestLeaveMapper;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.dromara.workflow.service.ITestLeaveService;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 请假Service业务层处理
|
||||
|
||||
@ -1,36 +1,35 @@
|
||||
package org.dromara.workflow.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.DateUtils;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StreamUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.ActHiProcinst;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
|
||||
import org.dromara.workflow.mapper.WfBusinessFormMapper;
|
||||
import org.dromara.workflow.mapper.WfFormDefinitionMapper;
|
||||
import org.dromara.workflow.service.IActHiProcinstService;
|
||||
import org.dromara.workflow.service.IActProcessInstanceService;
|
||||
import org.dromara.workflow.service.IWfBusinessFormService;
|
||||
import org.dromara.workflow.utils.WorkflowUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
|
||||
import org.dromara.workflow.domain.vo.WfBusinessFormVo;
|
||||
import org.dromara.workflow.domain.WfBusinessForm;
|
||||
import org.dromara.workflow.mapper.WfBusinessFormMapper;
|
||||
import org.dromara.workflow.service.IWfBusinessFormService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -45,8 +44,8 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
|
||||
|
||||
private final WfBusinessFormMapper baseMapper;
|
||||
private final WfFormDefinitionMapper wfFormDefinitionMapper;
|
||||
private final IActProcessInstanceService iActProcessInstanceService;
|
||||
private final IActHiProcinstService iActHiProcinstService;
|
||||
private final IActProcessInstanceService actProcessInstanceService;
|
||||
private final IActHiProcinstService actHiProcinstService;
|
||||
|
||||
/**
|
||||
* 查询发起流程
|
||||
@ -104,8 +103,7 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
if (StringUtils.isNotBlank(add.getContentValue())) {
|
||||
Map<String, Object> variable = JsonUtils.parseObject(add.getContentValue(), new TypeReference<>() {
|
||||
});
|
||||
Map<String, Object> variable = JsonUtils.parseMap(add.getContentValue());
|
||||
add.setVariable(variable);
|
||||
}
|
||||
return add;
|
||||
@ -119,8 +117,7 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
|
||||
WfBusinessForm update = MapstructUtils.convert(bo, WfBusinessForm.class);
|
||||
baseMapper.updateById(update);
|
||||
if (StringUtils.isNotBlank(update.getContentValue())) {
|
||||
Map<String, Object> variable = JsonUtils.parseObject(update.getContentValue(), new TypeReference<>() {
|
||||
});
|
||||
Map<String, Object> variable = JsonUtils.parseMap(update.getContentValue());
|
||||
update.setVariable(variable);
|
||||
}
|
||||
return update;
|
||||
@ -132,9 +129,9 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids) {
|
||||
List<ActHiProcinst> actHiProcinsts = iActHiProcinstService.selectByBusinessKeyIn(StreamUtils.toList(ids, String::valueOf));
|
||||
List<ActHiProcinst> actHiProcinsts = actHiProcinstService.selectByBusinessKeyIn(StreamUtils.toList(ids, String::valueOf));
|
||||
if (CollUtil.isNotEmpty(actHiProcinsts)) {
|
||||
iActProcessInstanceService.deleteRuntimeProcessAndHisInst(actHiProcinsts.stream().map(ActHiProcinst::getId).collect(Collectors.toList()));
|
||||
actProcessInstanceService.deleteRuntimeProcessAndHisInst(actHiProcinsts.stream().map(ActHiProcinst::getId).collect(Collectors.toList()));
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
package org.dromara.workflow.service.impl;
|
||||
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import org.dromara.workflow.domain.bo.WfCategoryBo;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.workflow.mapper.WfCategoryMapper;
|
||||
import org.dromara.workflow.service.IWfCategoryService;
|
||||
import org.flowable.engine.RepositoryService;
|
||||
import org.flowable.engine.repository.Deployment;
|
||||
import org.flowable.engine.repository.Model;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.workflow.domain.bo.WfCategoryBo;
|
||||
import org.dromara.workflow.domain.vo.WfCategoryVo;
|
||||
import org.dromara.workflow.domain.WfCategory;
|
||||
import org.dromara.workflow.mapper.WfCategoryMapper;
|
||||
import org.dromara.workflow.service.IWfCategoryService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程分类Service业务层处理
|
||||
@ -84,11 +84,11 @@ public class WfCategoryServiceImpl implements IWfCategoryService {
|
||||
WfCategoryVo wfCategoryVo = baseMapper.selectVoById(bo.getId());
|
||||
List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list();
|
||||
for (ProcessDefinition processDefinition : processDefinitionList) {
|
||||
repositoryService.setProcessDefinitionCategory(processDefinition.getId(),bo.getCategoryCode());
|
||||
repositoryService.setProcessDefinitionCategory(processDefinition.getId(), bo.getCategoryCode());
|
||||
}
|
||||
List<Deployment> deploymentList = repositoryService.createDeploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list();
|
||||
for (Deployment deployment : deploymentList) {
|
||||
repositoryService.setDeploymentCategory(deployment.getId(),bo.getCategoryCode());
|
||||
repositoryService.setDeploymentCategory(deployment.getId(), bo.getCategoryCode());
|
||||
}
|
||||
List<Model> modelList = repositoryService.createModelQuery().modelCategory(wfCategoryVo.getCategoryCode()).list();
|
||||
for (Model model : modelList) {
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
package org.dromara.workflow.service.impl;
|
||||
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import org.dromara.workflow.domain.bo.WfFormDefinitionBo;
|
||||
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
|
||||
import org.dromara.workflow.domain.WfFormDefinition;
|
||||
import org.dromara.workflow.mapper.WfFormDefinitionMapper;
|
||||
import org.dromara.workflow.service.IWfFormDefinitionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 动态单与流程定义关联信息Service业务层处理
|
||||
@ -36,7 +36,7 @@ public class WfFormDefinitionServiceImpl implements IWfFormDefinitionService {
|
||||
* 查询动态单与流程定义关联信息
|
||||
*/
|
||||
@Override
|
||||
public WfFormDefinitionVo queryById(Long id){
|
||||
public WfFormDefinitionVo queryById(Long id) {
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
@ -98,9 +98,9 @@ public class WfFormDefinitionServiceImpl implements IWfFormDefinitionService {
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(WfFormDefinition entity){
|
||||
private void validEntityBeforeSave(WfFormDefinition entity) {
|
||||
LambdaQueryWrapper<WfFormDefinition> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(WfFormDefinition::getFormId,entity.getFormId());
|
||||
wrapper.eq(WfFormDefinition::getFormId, entity.getFormId());
|
||||
baseMapper.delete(wrapper);
|
||||
}
|
||||
|
||||
@ -109,7 +109,7 @@ public class WfFormDefinitionServiceImpl implements IWfFormDefinitionService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
|
||||
@ -58,6 +58,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
|
||||
* @param sysUserMultiBo 参数
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public TableDataInfo<SysUserVo> getWorkflowAddMultiInstanceByPage(SysUserMultiBo sysUserMultiBo) {
|
||||
Task task = taskService.createTaskQuery().taskId(sysUserMultiBo.getTaskId()).singleResult();
|
||||
if (task == null) {
|
||||
@ -72,7 +73,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(sysUserMultiBo.getDeptId()), SysUser::getDeptId, sysUserMultiBo.getDeptId());
|
||||
queryWrapper.eq(SysUser::getStatus, UserStatus.OK.getCode());
|
||||
if (multiInstance.getType() instanceof SequentialMultiInstanceBehavior) {
|
||||
List<Long> assigneeList = (List) runtimeService.getVariable(task.getExecutionId(), multiInstance.getAssigneeList());
|
||||
List<Long> assigneeList = (List<Long>) runtimeService.getVariable(task.getExecutionId(), multiInstance.getAssigneeList());
|
||||
queryWrapper.notIn(CollectionUtil.isNotEmpty(assigneeList), SysUser::getUserId, assigneeList);
|
||||
} else {
|
||||
List<Task> list = taskService.createTaskQuery().processInstanceId(task.getProcessInstanceId()).list();
|
||||
@ -92,6 +93,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
|
||||
* @param taskId 任务id 任务id
|
||||
*/
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<TaskVo> getWorkflowDeleteMultiInstanceList(String taskId) {
|
||||
Task task = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).taskId(taskId).singleResult();
|
||||
List<Task> taskList = taskService.createTaskQuery().taskTenantId(TenantHelper.getTenantId()).processInstanceId(task.getProcessInstanceId()).list();
|
||||
@ -161,11 +163,11 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
|
||||
*/
|
||||
private Page<SysUserVo> recordPage(Page<SysUserVo> page) {
|
||||
List<SysUserVo> records = page.getRecords();
|
||||
if (CollectionUtil.isEmpty(records)) {
|
||||
if (CollUtil.isEmpty(records)) {
|
||||
return page;
|
||||
}
|
||||
List<Long> collectDeptId = records.stream().map(SysUserVo::getDeptId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(collectDeptId)) {
|
||||
List<Long> collectDeptId = StreamUtils.toList(records, SysUserVo::getDeptId);
|
||||
if (CollUtil.isEmpty(collectDeptId)) {
|
||||
return page;
|
||||
}
|
||||
List<SysDeptVo> sysDeptList = sysDeptMapper.selectVoBatchIds(collectDeptId);
|
||||
@ -187,7 +189,7 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
|
||||
//检索条件
|
||||
// 检索条件
|
||||
queryWrapper.eq(SysUser::getStatus, UserStatus.OK.getCode());
|
||||
queryWrapper.in(SysUser::getUserId, userIds);
|
||||
List<SysUserVo> sysUserVos = sysUserMapper.selectVoList(queryWrapper);
|
||||
|
||||
@ -75,7 +75,7 @@ public class WorkflowUtils {
|
||||
if (jsonBytes == null) {
|
||||
return new byte[0];
|
||||
}
|
||||
//1. json字节码转成 BpmnModel 对象
|
||||
// 1. json字节码转成 BpmnModel 对象
|
||||
ObjectMapper objectMapper = JsonUtils.getObjectMapper();
|
||||
JsonNode jsonNode = objectMapper.readTree(jsonBytes);
|
||||
BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(jsonNode);
|
||||
@ -83,7 +83,7 @@ public class WorkflowUtils {
|
||||
if (bpmnModel.getProcesses().isEmpty()) {
|
||||
return new byte[0];
|
||||
}
|
||||
//2.将bpmnModel转为xml
|
||||
// 2.将bpmnModel转为xml
|
||||
return new BpmnXMLConverter().convertToXML(bpmnModel);
|
||||
}
|
||||
|
||||
@ -127,32 +127,32 @@ public class WorkflowUtils {
|
||||
private static void checkBpmnNode(Collection<FlowElement> flowElements, boolean subtask) throws ServerException {
|
||||
|
||||
if (CollUtil.isEmpty(flowElements)) {
|
||||
throw new ServerException(subtask ? "子流程必须存在节点" : "" + "必须存在节点!");
|
||||
throw new ServerException(subtask ? "子流程必须存在节点" : "必须存在节点!");
|
||||
}
|
||||
|
||||
List<StartEvent> startEventList = flowElements.stream().filter(StartEvent.class::isInstance).map(StartEvent.class::cast).collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(startEventList)) {
|
||||
throw new ServerException(subtask ? "子流程必须存在开始节点" : "" + "必须存在开始节点!");
|
||||
throw new ServerException(subtask ? "子流程必须存在开始节点" : "必须存在开始节点!");
|
||||
}
|
||||
|
||||
if (startEventList.size() > 1) {
|
||||
throw new ServerException(subtask ? "子流程只能存在一个开始节点" : "" + "只能存在一个开始节点!");
|
||||
throw new ServerException(subtask ? "子流程只能存在一个开始节点" : "只能存在一个开始节点!");
|
||||
}
|
||||
|
||||
StartEvent startEvent = startEventList.get(0);
|
||||
List<SequenceFlow> outgoingFlows = startEvent.getOutgoingFlows();
|
||||
if (CollUtil.isEmpty(outgoingFlows)) {
|
||||
throw new ServerException(subtask ? "子流程流程节点为空,请至少设计一条主线流程!" : "" + "流程节点为空,请至少设计一条主线流程!");
|
||||
throw new ServerException(subtask ? "子流程流程节点为空,请至少设计一条主线流程!" : "流程节点为空,请至少设计一条主线流程!");
|
||||
}
|
||||
|
||||
FlowElement targetFlowElement = outgoingFlows.get(0).getTargetFlowElement();
|
||||
if (!(targetFlowElement instanceof UserTask)) {
|
||||
throw new ServerException(subtask ? "子流程开始节点后第一个节点必须是用户任务!" : "" + "开始节点后第一个节点必须是用户任务!");
|
||||
throw new ServerException(subtask ? "子流程开始节点后第一个节点必须是用户任务!" : "开始节点后第一个节点必须是用户任务!");
|
||||
}
|
||||
|
||||
List<EndEvent> endEventList = flowElements.stream().filter(EndEvent.class::isInstance).map(EndEvent.class::cast).collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(endEventList)) {
|
||||
throw new ServerException(subtask ? "子流程必须存在结束节点!" : "" + "必须存在结束节点!");
|
||||
throw new ServerException(subtask ? "子流程必须存在结束节点!" : "必须存在结束节点!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ public class WorkflowUtils {
|
||||
return;
|
||||
}
|
||||
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class);
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstanceVo.getBusinessStatus()));
|
||||
ReflectUtils.invokeSetter(obj, PROCESS_INSTANCE_VO, processInstanceVo);
|
||||
}
|
||||
|
||||
@ -320,18 +320,18 @@ public class WorkflowUtils {
|
||||
if (CollUtil.isEmpty(actHiProcinstList)) {
|
||||
ProcessInstanceVo processInstanceVo = new ProcessInstanceVo();
|
||||
processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus());
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstanceVo.getBusinessStatus()));
|
||||
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
|
||||
} else {
|
||||
ActHiProcinst actHiProcinst = actHiProcinstList.stream().filter(e -> e.getBusinessKey().equals(fieldValue)).findFirst().orElse(null);
|
||||
if (ObjectUtil.isNotEmpty(actHiProcinst)) {
|
||||
ProcessInstanceVo processInstanceVo = BeanUtil.toBean(actHiProcinst, ProcessInstanceVo.class);
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstanceVo.getBusinessStatus()));
|
||||
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
|
||||
} else {
|
||||
ProcessInstanceVo processInstanceVo = new ProcessInstanceVo();
|
||||
processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus());
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
|
||||
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.findByStatus(processInstanceVo.getBusinessStatus()));
|
||||
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
java包使用 `.` 分割 resource 目录使用 `/` 分割
|
||||
<br>
|
||||
此文件目的 防止文件夹粘连找不到 `xml` 文件
|
||||
Loading…
Reference in New Issue
Block a user