|
@@ -4,17 +4,16 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleCreateReqVO;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO;
|
|
|
+import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleUpdateReqVO;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.convert.definition.BpmTaskAssignRuleConvert;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmTaskAssignRuleDO;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.dal.mysql.definition.BpmTaskAssignRuleMapper;
|
|
|
-import cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.enums.definition.BpmTaskAssignRuleTypeEnum;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelService;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
|
|
|
import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
|
|
|
import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;
|
|
|
import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
|
|
|
-import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.activiti.bpmn.model.BpmnModel;
|
|
|
import org.activiti.bpmn.model.UserTask;
|
|
@@ -28,6 +27,7 @@ import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
|
|
|
+import static cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants.*;
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
|
|
|
/**
|
|
@@ -95,8 +95,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
|
|
|
BpmTaskAssignRuleDO existRule = taskRuleMapper.selectListByModelIdAndTaskDefinitionKey(
|
|
|
reqVO.getModelId(), reqVO.getTaskDefinitionKey());
|
|
|
if (existRule != null) {
|
|
|
- throw exception(BpmErrorCodeConstants.TASK_ASSIGN_RULE_EXISTS,
|
|
|
- reqVO.getModelId(), reqVO.getTaskDefinitionKey());
|
|
|
+ throw exception(TASK_ASSIGN_RULE_EXISTS, reqVO.getModelId(), reqVO.getTaskDefinitionKey());
|
|
|
}
|
|
|
|
|
|
// 存储
|
|
@@ -106,12 +105,30 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
|
|
|
return rule.getId();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void updateTaskAssignRule(BpmTaskAssignRuleUpdateReqVO reqVO) {
|
|
|
+ // 校验参数
|
|
|
+ validTaskAssignRuleOptions(reqVO.getType(), reqVO.getOptions());
|
|
|
+ // 校验是否存在
|
|
|
+ BpmTaskAssignRuleDO existRule = taskRuleMapper.selectById(reqVO.getId());
|
|
|
+ if (existRule == null) {
|
|
|
+ throw exception(TASK_ASSIGN_RULE_NOT_EXISTS);
|
|
|
+ }
|
|
|
+ // 只允许修改流程模型的规则
|
|
|
+ if (!Objects.equals(BpmTaskAssignRuleDO.PROCESS_DEFINITION_ID_NULL, existRule.getProcessDefinitionId())) {
|
|
|
+ throw exception(TASK_UPDATE_FAIL_NOT_MODEL);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 执行更新
|
|
|
+ taskRuleMapper.updateById(BpmTaskAssignRuleConvert.INSTANCE.convert(reqVO));
|
|
|
+ }
|
|
|
+
|
|
|
private void validTaskAssignRuleOptions(Integer type, Set<Long> options) {
|
|
|
if (Objects.equals(type, BpmTaskAssignRuleTypeEnum.ROLE.getType())) {
|
|
|
roleService.validRoles(options);
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+ // TODO 其它的
|
|
|
}
|
|
|
|
|
|
}
|