update 升级flowable到7.0.0.M2,调整工作流提交校验,调整工作流工具类

This commit is contained in:
songgaoshuai 2023-09-14 16:16:06 +08:00
parent 1c8f604672
commit 9cb54ea887
5 changed files with 38 additions and 35 deletions

View File

@ -59,7 +59,7 @@
<flatten-maven-plugin.version>1.3.0</flatten-maven-plugin.version>
<!--工作流配置-->
<flowable.version>7.0.0.M1</flowable.version>
<flowable.version>7.0.0.M2</flowable.version>
</properties>
<profiles>

View File

@ -1,9 +1,10 @@
package org.dromara.workflow.common.enums;
import cn.hutool.core.util.StrUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.StringUtils;
/**
* 业务状态枚举
@ -59,7 +60,7 @@ public enum BusinessStatusEnum {
*/
public static String getEumByStatus(String status) {
if (StringUtils.isBlank(status)) {
return null;
return StrUtil.EMPTY;
}
for (BusinessStatusEnum statusEnum : BusinessStatusEnum.values()) {
@ -67,7 +68,7 @@ public enum BusinessStatusEnum {
return statusEnum.getDesc();
}
}
return null;
return StrUtil.EMPTY;
}
/**
@ -76,14 +77,16 @@ public enum BusinessStatusEnum {
* @param status 状态
*/
public static void checkStartStatus(String status) {
if (status.equals(WAITING.getStatus())) {
if (WAITING.getStatus().equals(status)) {
throw new ServiceException("该单据已提交过申请,正在审批中!");
} else if (status.equals(FINISH.getStatus())) {
} else if (FINISH.getStatus().equals(status)) {
throw new ServiceException("该单据已完成申请!");
} else if (status.equals(INVALID.getStatus())) {
} else if (INVALID.getStatus().equals(status)) {
throw new ServiceException("该单据已作废!");
} else if (status.equals(TERMINATION.getStatus())) {
} else if (TERMINATION.getStatus().equals(status)) {
throw new ServiceException("该单据已终止!");
} else if (StringUtils.isBlank(status)) {
throw new ServiceException("流程状态为空!");
}
}
@ -93,16 +96,18 @@ public enum BusinessStatusEnum {
* @param status 状态
*/
public static void checkStatus(String status) {
if (status.equals(FINISH.getStatus())) {
if (FINISH.getStatus().equals(status)) {
throw new ServiceException("该单据已完成申请!");
} else if (status.equals(INVALID.getStatus())) {
} else if (INVALID.getStatus().equals(status)) {
throw new ServiceException("该单据已作废!");
} else if (status.equals(CANCEL.getStatus())) {
} else if (CANCEL.getStatus().equals(status)) {
throw new ServiceException("该单据已撤销!");
} else if (status.equals(BACK.getStatus())) {
} else if (BACK.getStatus().equals(status)) {
throw new ServiceException("该单据已退回!");
} else if (status.equals(TERMINATION.getStatus())) {
} else if (TERMINATION.getStatus().equals(status)) {
throw new ServiceException("该单据已终止!");
} else if (StringUtils.isBlank(status)) {
throw new ServiceException("流程状态为空!");
}
}
}

View File

@ -205,7 +205,7 @@ public class ActProcessDefinitionServiceImpl implements IActProcessDefinitionSer
return true;
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException("操作失败");
throw new ServiceException("操作失败:"+e.getMessage());
}
}

View File

@ -240,7 +240,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService
try {
actHistoryInfoVo.setAssignee(StringUtils.isNotBlank(historicTaskInstance.getAssignee()) ? Long.valueOf(historicTaskInstance.getAssignee()) : null);
} catch (NumberFormatException ignored) {
log.warn("当前任务【{}】,办理人转换人员ID【{}】异常!", historicTaskInstance.getName(), historicTaskInstance.getAssignee());
}
actHistoryInfoVoList.add(actHistoryInfoVo);
}

View File

@ -6,7 +6,6 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
@ -308,26 +307,25 @@ public class WorkflowUtils {
*/
public static void setProcessInstanceListVo(Object obj, List<String> idList, String fieldName) {
List<ActHiProcinst> actHiProcinstList = I_ACT_HI_PROCINST_SERVICE.selectByBusinessKeyIn(idList);
if (obj instanceof Collection) {
Collection<?> collection = (Collection<?>) obj;
if (obj instanceof Collection<?> collection) {
for (Object o : collection) {
if (o != null) {
try {
String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString();
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()));
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
} else {
ProcessInstanceVo processInstanceVo = new ProcessInstanceVo();
processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus());
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
}
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(e.getMessage());
String fieldValue = ReflectUtils.invokeGetter(o, fieldName).toString();
if (CollUtil.isEmpty(actHiProcinstList)) {
ProcessInstanceVo processInstanceVo = new ProcessInstanceVo();
processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus());
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(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()));
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
} else {
ProcessInstanceVo processInstanceVo = new ProcessInstanceVo();
processInstanceVo.setBusinessStatus(BusinessStatusEnum.DRAFT.getStatus());
processInstanceVo.setBusinessStatusName(BusinessStatusEnum.getEumByStatus(processInstanceVo.getBusinessStatus()));
ReflectUtils.invokeSetter(o, PROCESS_INSTANCE_VO, processInstanceVo);
}
}
}