|
@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.sop.business.activiti.service.ActivitiService;
|
|
|
+import com.qmth.sop.business.bean.dto.UserDto;
|
|
|
import com.qmth.sop.business.bean.params.FlowApproveParam;
|
|
|
import com.qmth.sop.business.bean.result.ProjectExchangeResult;
|
|
|
import com.qmth.sop.business.entity.SysUser;
|
|
|
import com.qmth.sop.business.entity.TBProjectExchange;
|
|
|
import com.qmth.sop.business.entity.TFCustomFlowEntity;
|
|
|
import com.qmth.sop.business.mapper.TBProjectExchangeMapper;
|
|
|
+import com.qmth.sop.business.service.SysUserRoleService;
|
|
|
import com.qmth.sop.business.service.TBProjectExchangeService;
|
|
|
import com.qmth.sop.business.service.TFCustomFlowEntityService;
|
|
|
import com.qmth.sop.common.contant.SystemConstant;
|
|
@@ -22,10 +24,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -50,6 +50,9 @@ public class TBProjectExchangeServiceImpl extends ServiceImpl<TBProjectExchangeM
|
|
|
@Resource
|
|
|
TBProjectExchangeService tbProjectExchangeService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ SysUserRoleService sysUserRoleService;
|
|
|
+
|
|
|
/**
|
|
|
* 新增项目变更计划申请
|
|
|
*
|
|
@@ -60,8 +63,19 @@ public class TBProjectExchangeServiceImpl extends ServiceImpl<TBProjectExchangeM
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Boolean saveProjectExchange(TBProjectExchange tbProjectExchange) throws InterruptedException {
|
|
|
+ if (tbProjectExchange.getFlowApprove() != FlowApprovePassEnum.START && tbProjectExchange.getFlowApprove() != FlowApprovePassEnum.DRAFT) {
|
|
|
+ throw ExceptionResultEnum.PARAMS_ERROR.exception("项目计划变更申请只能为提交或草稿");
|
|
|
+ }
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
- Map<String, Object> map = activitiService.taskApprove(new FlowApproveParam(tbProjectExchange.getFlowDeploymentId(), FlowApprovePassEnum.START, !CollectionUtils.isEmpty(tbProjectExchange.getApproveUserIds()) ? tbProjectExchange.getApproveUserIds() : Arrays.asList(String.valueOf(sysUser.getId())), tbProjectExchange.getCrmNo()));
|
|
|
+ //查询所有QA角色
|
|
|
+ List<UserDto> userDtoList = sysUserRoleService.userListByRoleType(RoleTypeEnum.QA);
|
|
|
+ if (CollectionUtils.isEmpty(userDtoList)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("系统中没有QA角色的用户");
|
|
|
+ }
|
|
|
+ List<String> approveUserIds = userDtoList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
|
|
|
+ FlowApproveParam flowApproveParam = new FlowApproveParam(tbProjectExchange.getFlowDeploymentId(), tbProjectExchange.getFlowApprove(), approveUserIds, tbProjectExchange.getCrmNo());
|
|
|
+ flowApproveParam.setApproveRemark(tbProjectExchange.getFlowApprove().getTitle());
|
|
|
+ Map<String, Object> map = activitiService.taskApprove(flowApproveParam);
|
|
|
TFCustomFlowEntity tfCustomFlowEntity = (TFCustomFlowEntity) map.get(SystemConstant.FLOW_ENTITY);
|
|
|
tbProjectExchange.setCode(tfCustomFlowEntity.getCode(), sysUser.getId());
|
|
|
tfCustomFlowEntity.setObjId(tbProjectExchange.getId());
|
|
@@ -105,6 +119,10 @@ public class TBProjectExchangeServiceImpl extends ServiceImpl<TBProjectExchangeM
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Boolean flowApprove(Long taskId, FlowApprovePassEnum flowApprove, ProjectExchangeApproveEnum projectExchangeApprove, String remark, Long userId) throws InterruptedException {
|
|
|
+ Optional.ofNullable(taskId).orElseThrow(() -> ExceptionResultEnum.FLOW_TASK_ID_IS_NULL.exception());
|
|
|
+ if (flowApprove != FlowApprovePassEnum.PASS && flowApprove != FlowApprovePassEnum.DRAFT) {
|
|
|
+ throw ExceptionResultEnum.PARAMS_ERROR.exception("项目计划变更审批只能为通过或草稿");
|
|
|
+ }
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
userId = Objects.nonNull(sysUser) ? sysUser.getId() : userId;
|
|
|
Task task = taskService.createTaskQuery().taskId(String.valueOf(taskId)).singleResult();
|