|
@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.google.common.reflect.TypeToken;
|
|
|
-import com.google.gson.Gson;
|
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
|
import com.qmth.distributed.print.business.bean.result.FlowApproveResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.FlowTaskApprovePeopleAllResult;
|
|
@@ -23,7 +21,6 @@ import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.*;
|
|
|
import com.qmth.teachcloud.common.service.SysOrgService;
|
|
|
import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
-import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
@@ -224,23 +221,25 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
}
|
|
|
FlowApproveSetupEnum setupEnum = FlowApproveSetupEnum.convertToInstance(userTask.getId());
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
if (setupEnum == FlowApproveSetupEnum.SUBMIT) {//命题
|
|
|
- assignFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ this.assignFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
} else if (setupEnum == FlowApproveSetupEnum.PRIMARY_APPROVE) {//主任
|
|
|
- directorFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ this.directorFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
} else if (setupEnum == FlowApproveSetupEnum.SECOND_APPROVE) {//院长
|
|
|
- tfFlowApproveLog.setSecondApproveId(sysUser.getId());
|
|
|
- tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.END);
|
|
|
- tfFlowApproveLog.setSecondApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
+ this.presidentFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ } else if (setupEnum == FlowApproveSetupEnum.THREE_APPROVE) {//命题
|
|
|
+ this.teacherFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ } else if (setupEnum == FlowApproveSetupEnum.FOUR_APPROVE) {//印刷员
|
|
|
+ this.printFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
}
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
if (setupEnum == FlowApproveSetupEnum.SUBMIT) {//命题
|
|
|
- assignFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ this.assignFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
} else if (setupEnum == FlowApproveSetupEnum.PRIMARY_APPROVE) {//主任
|
|
|
- directorFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
+ this.directorFlowEnd(tfFlowApproveLog, sysUser);
|
|
|
}
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("未配置流程学校code");
|
|
@@ -442,7 +441,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
@Override
|
|
|
public Boolean flowDelete(Long id) {
|
|
|
TFFlow tfFlow = tfFlowService.getById(id);
|
|
|
- List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery().processDefinitionId(tfFlow.getActFlowId()).processDefinitionKey(SystemConstant.GDYKDX_FLOW_KEY).list();
|
|
|
+ List<ProcessInstance> processInstanceList = runtimeService.createProcessInstanceQuery().processDefinitionId(tfFlow.getActFlowId()).processDefinitionKey(tfFlow.getFlowKey()).list();
|
|
|
if (Objects.nonNull(processInstanceList) && processInstanceList.size() > 0) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("有在途的流程,无法删除!");
|
|
|
} else {
|
|
@@ -486,13 +485,13 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
if (Objects.nonNull(flowApproveResultIPage) && flowApproveResultIPage.getRecords().size() > 0) {
|
|
|
flowApproveResult = flowApproveResultIPage.getRecords().get(0);
|
|
|
}
|
|
|
- List<ApproveUserResult> approveUserMtResult = null;
|
|
|
+ Optional.ofNullable(flowApproveResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程审批记录"));
|
|
|
+ List<FlowTaskResult> taskTaskAll = getTaskAll(task.getProcessInstanceId());
|
|
|
switch (tfFlowApprove.getSetup()) {
|
|
|
case -1:
|
|
|
- Optional.ofNullable(flowApproveResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程审批记录"));
|
|
|
if (Objects.nonNull(flowApproveResult.getStartId())) {
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
}
|
|
|
if (Objects.nonNull(flowApproveResult.getPrimaryApproveId())) {
|
|
@@ -500,13 +499,30 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
List<ApproveUserResult> approveUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, approveUserDirectorList));
|
|
|
}
|
|
|
+ if (Objects.nonNull(flowApproveResult.getSecondApproveId())) {
|
|
|
+ //获取院长已审
|
|
|
+ List<ApproveUserResult> approveUserPresidentList = sysUserService.findById(flowApproveResult.getSecondApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), true, approveUserPresidentList));
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ if (Objects.nonNull(flowApproveResult.getStartApproveId())) {
|
|
|
+ //获取命题已审
|
|
|
+ List<ApproveUserResult> approveUserTeacherResult = sysUserService.findById(flowApproveResult.getStartApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), true, approveUserTeacherResult));
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(flowApproveResult.getFourApproveId())) {
|
|
|
+ //获取印刷员已审
|
|
|
+ List<ApproveUserResult> approveUserPrintResult = sysUserService.findById(flowApproveResult.getFourApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), true, approveUserPrintResult));
|
|
|
+ }
|
|
|
+ }
|
|
|
break;
|
|
|
case 0:
|
|
|
- Optional.ofNullable(flowApproveResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程审批记录"));
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
//获取主任已审
|
|
|
List<ApproveUserResult> approveUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
@@ -514,11 +530,23 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
//获取院长已审
|
|
|
List<ApproveUserResult> approveUserPresidentList = sysUserService.findById(flowApproveResult.getSecondApproveId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), true, approveUserPresidentList));
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ if (Objects.nonNull(flowApproveResult.getStartApproveId())) {
|
|
|
+ //获取命题已审
|
|
|
+ List<ApproveUserResult> approveUserTeacherResult = sysUserService.findById(flowApproveResult.getStartApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), true, approveUserTeacherResult));
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(flowApproveResult.getFourApproveId())) {
|
|
|
+ //获取印刷员已审
|
|
|
+ List<ApproveUserResult> approveUserPrintResult = sysUserService.findById(flowApproveResult.getFourApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), true, approveUserPrintResult));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
//获取主任已审
|
|
|
List<ApproveUserResult> approveUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
@@ -529,14 +557,18 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
break;
|
|
|
case 1:
|
|
|
if (tfFlowApprove.getModel() == FlowModelEnum.SYSTEM) {
|
|
|
- flowTaskApprovePeopleResultList = getApproveUserAll(examTask.getCourseCode(), flowTaskApprovePeopleResultList, Objects.nonNull(processDefinitionEntity) ? processDefinitionEntity.getKey() : null);
|
|
|
+ flowTaskApprovePeopleResultList = getApproveUserAll(examTask.getCourseCode(), flowTaskApprovePeopleResultList, Objects.nonNull(processDefinitionEntity) ? processDefinitionEntity.getKey() : null, task.getProcessInstanceId(), taskTaskAll);
|
|
|
} else {
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
+ }
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
} else {
|
|
@@ -545,11 +577,11 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
- Optional.ofNullable(flowApproveResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程审批记录"));
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
|
|
|
if (tfFlowApprove.getModel() == FlowModelEnum.SYSTEM) {
|
|
@@ -559,27 +591,71 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(Arrays.asList(sysUser.getOrgId()), null);
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), false, sysUserPresidentList));
|
|
|
}
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ //获取命题审批人
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, approveUserMtResult));
|
|
|
+ //获取印刷员审批人
|
|
|
+ List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
|
|
|
+ }
|
|
|
} else {
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, new ArrayList<>()));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("未配置流程学校code");
|
|
|
}
|
|
|
break;
|
|
|
case 3:
|
|
|
- Optional.ofNullable(flowApproveResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程审批记录"));
|
|
|
//获取命题已审
|
|
|
- approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
//获取主任已审
|
|
|
List<ApproveUserResult> sysUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, sysUserDirectorList));
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ //获取命题审批人
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, approveUserMtResult));
|
|
|
+ //获取印刷员审批人
|
|
|
+ List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ //获取命题已审
|
|
|
+ approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
+ //获取主任已审
|
|
|
+ sysUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, sysUserDirectorList));
|
|
|
+ //获取院长已审
|
|
|
+ List<ApproveUserResult> sysUserPresidentList = sysUserService.findById(flowApproveResult.getSecondApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), true, sysUserPresidentList));
|
|
|
+ //获取印刷员审批人
|
|
|
+ List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ //获取命题已审
|
|
|
+ approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
|
|
|
+ //获取主任已审
|
|
|
+ sysUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, sysUserDirectorList));
|
|
|
+ //获取院长已审
|
|
|
+ sysUserPresidentList = sysUserService.findById(flowApproveResult.getSecondApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), true, sysUserPresidentList));
|
|
|
+ //获取命题审核已审
|
|
|
+ List<ApproveUserResult> approveUserTeacherResult = sysUserService.findById(flowApproveResult.getStartApproveId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), true, approveUserTeacherResult));
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -591,10 +667,10 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
if (Objects.isNull(courseCode) || Objects.equals(courseCode, "")) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("课程编码为空");
|
|
|
}
|
|
|
- flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList, SystemConstant.GDYKDX_FLOW_KEY);
|
|
|
+ flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList, SystemConstant.GDYKDX_FLOW_KEY, null, null);
|
|
|
flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
|
|
|
} else if (Objects.equals(basicSchool.getCode(), flowSchoolCodeMap.get(SystemConstant.JXZYY_FLOW_KEY))) {//江西中医药大学
|
|
|
- flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList, SystemConstant.JXZYY_FLOW_KEY);
|
|
|
+ flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList, SystemConstant.JXZYY_FLOW_KEY, null, null);
|
|
|
flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
|
|
|
} else {
|
|
|
throw ExceptionResultEnum.ERROR.exception("未配置流程学校code");
|
|
@@ -627,12 +703,14 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
// String variableName = null;
|
|
|
switch (tfFlowApprove.getSetup()) {
|
|
|
case 1:
|
|
|
+ case 4:
|
|
|
if (Objects.nonNull(task) && Objects.nonNull(task.getAssignee()) && Objects.equals(task.getAssignee(), userId)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("不能转给自己");
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
|
case 3:
|
|
|
+ case 5:
|
|
|
if (Objects.nonNull(task) && Objects.nonNull(task.getAssignee()) && Objects.equals(task.getAssignee(), userId)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("不能转给自己");
|
|
|
} else {
|
|
@@ -706,12 +784,12 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
case 1:
|
|
|
List<ApproveUserResult> approveUserResultList = null;
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
//获取命题审批人
|
|
|
examTask = examTaskService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
|
|
|
approveUserResultList = sysUserService.findByAssignApprove(examTask.getCourseCode(), realName);
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
approveUserResultList = sysUserService.findByJxzyyAssignApprove(realName);
|
|
|
} else {
|
|
@@ -723,7 +801,8 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
examTask = examTaskService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
|
|
|
List<ApproveUserResult> sysUserDirectorList = null;
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
if (tfFlowApprove.getModel() == FlowModelEnum.SYSTEM) {
|
|
|
//获取教研室主任审批人
|
|
|
sysUserDirectorList = sysUserService.findByDirectorApprove(examTask.getCourseCode(), realName);
|
|
@@ -732,8 +811,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(examTask.getTeachingRoomId(), true, true);
|
|
|
sysUserDirectorList = sysUserService.findByRootApprove(null, sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList()), null, FlowApproveNameEnum.DIRECTOR);
|
|
|
}
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
//获取教研室主任审批人
|
|
|
sysUserDirectorList = sysUserService.findByJxzyyDirectorApprove(realName, FlowApproveNameEnum.DIRECTOR);
|
|
@@ -757,6 +835,16 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
}
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(sysUserPresidentList));
|
|
|
break;
|
|
|
+ case 4:
|
|
|
+ //获取命题审批人
|
|
|
+ approveUserResultList = sysUserService.findByAssignApprove(examTask.getCourseCode(), realName);
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(approveUserResultList));
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ //获取印刷员审批人
|
|
|
+ List<ApproveUserResult> approvePrintUserResultList = this.findByPrintApprove(task.getProcessInstanceId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(approvePrintUserResultList));
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -797,12 +885,12 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
switch (tfFlowApprove.getSetup()) {
|
|
|
case 1:
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
//获取教研室主任审批人
|
|
|
approveUserResultList = sysUserService.findByRootApprove(null, sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList()), null, FlowApproveNameEnum.DIRECTOR);
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), false, approveUserResultList));
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
//获取教研室主任审批人
|
|
|
approveUserResultList = sysUserService.findByJxzyyDirectorApprove(null, FlowApproveNameEnum.DIRECTOR);
|
|
@@ -816,6 +904,16 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
approveUserResultList = sysUserService.findByRootApprove(null, sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toList()), null, FlowApproveNameEnum.PRESIDENT);
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), false, approveUserResultList));
|
|
|
break;
|
|
|
+ case 3:
|
|
|
+ //获取命题审批人
|
|
|
+ approveUserResultList = sysUserService.findByAssignApprove(examTask.getCourseCode(), null);
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, approveUserResultList));
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ //获取印刷员审批人
|
|
|
+ approveUserResultList = this.findByPrintApprove(task.getProcessInstanceId());
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, approveUserResultList));
|
|
|
+ break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -864,11 +962,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
|
|
|
if (Objects.nonNull(examDetailList) && examDetailList.size() > 0) {
|
|
|
Set<Long> printHouseIdSet = examDetailList.stream().map(s -> s.getPrintHouseId()).collect(Collectors.toSet());
|
|
|
- QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
|
|
|
- sysUserQueryWrapper.lambda().in(SysUser::getOrgId, printHouseIdSet);
|
|
|
- List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
|
|
|
- approveUserResultList = new Gson().fromJson(JacksonUtil.parseJson(sysUserList), new TypeToken<List<ApproveUserResult>>() {
|
|
|
- }.getType());
|
|
|
+ approveUserResultList = sysUserService.findByOrgIds(printHouseIdSet);
|
|
|
}
|
|
|
}
|
|
|
return approveUserResultList;
|
|
@@ -916,11 +1010,18 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
* @param courseCode
|
|
|
* @param flowTaskApprovePeopleResultList
|
|
|
* @param processDefinitionEntity
|
|
|
+ * @param processInstanceId
|
|
|
+ * @param taskTaskAll
|
|
|
*/
|
|
|
- private List<FlowTaskApprovePeopleResult> getApproveUserAll(String courseCode, List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList, String processDefinitionEntity) {
|
|
|
+ private List<FlowTaskApprovePeopleResult> getApproveUserAll(String courseCode
|
|
|
+ , List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList
|
|
|
+ , String processDefinitionEntity
|
|
|
+ , String processInstanceId
|
|
|
+ , List<FlowTaskResult> taskTaskAll) {
|
|
|
flowTaskApprovePeopleResultList = Objects.isNull(flowTaskApprovePeopleResultList) ? new LinkedList() : flowTaskApprovePeopleResultList;
|
|
|
//广东医科大学流程
|
|
|
- if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.contains(SystemConstant.GDYKDX_FLOW_KEY)) {
|
|
|
+ if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.contains(SystemConstant.GDYKDX_FLOW_KEY)
|
|
|
+ || processDefinitionEntity.contains(SystemConstant.GDYKDX_SUB_FLOW_KEY))) {
|
|
|
//获取教研室主任审批人
|
|
|
List<ApproveUserResult> sysUserDirectorList = sysUserService.findByDirectorApprove(courseCode, null);
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup(), false, sysUserDirectorList));
|
|
@@ -928,8 +1029,17 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
//获取院长审批人
|
|
|
List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds), null);
|
|
|
flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), false, sysUserPresidentList));
|
|
|
- }
|
|
|
- //江西中医药大学
|
|
|
+ if (Objects.nonNull(taskTaskAll) && taskTaskAll.size() > 3) {
|
|
|
+ //获取命题审批人
|
|
|
+ List<ApproveUserResult> sysUserTeacherList = sysUserService.findByAssignApprove(courseCode, null);
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, sysUserTeacherList));
|
|
|
+ if (Objects.nonNull(processInstanceId)) {
|
|
|
+ //获取印刷员审批人
|
|
|
+ List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(processInstanceId);
|
|
|
+ flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }//江西中医药大学
|
|
|
else if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.contains(SystemConstant.JXZYY_FLOW_KEY)) {
|
|
|
//获取教研室主任审批人
|
|
|
List<ApproveUserResult> sysUserDirectorList = sysUserService.findByJxzyyDirectorApprove(null, FlowApproveNameEnum.DIRECTOR);
|
|
@@ -1038,6 +1148,41 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
tfFlowApproveLog.setPrimaryApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 院长终止
|
|
|
+ *
|
|
|
+ * @param tfFlowApproveLog
|
|
|
+ * @param sysUser
|
|
|
+ */
|
|
|
+ private void presidentFlowEnd(TFFlowApproveLog tfFlowApproveLog, SysUser sysUser) {
|
|
|
+ tfFlowApproveLog.setSecondApproveId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setSecondApproveOperation(FlowApproveOperationEnum.END);
|
|
|
+ tfFlowApproveLog.setSecondApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 命题终止
|
|
|
+ *
|
|
|
+ * @param tfFlowApproveLog
|
|
|
+ * @param sysUser
|
|
|
+ */
|
|
|
+ private void teacherFlowEnd(TFFlowApproveLog tfFlowApproveLog, SysUser sysUser) {
|
|
|
+ tfFlowApproveLog.setStartApproveId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setThreeApproveRemark(FlowApproveSetupEnum.THREE_APPROVE.getTitle() + FlowApproveOperationEnum.END.getTitle());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 印刷员终止
|
|
|
+ *
|
|
|
+ * @param tfFlowApproveLog
|
|
|
+ * @param sysUser
|
|
|
+ */
|
|
|
+ private void printFlowEnd(TFFlowApproveLog tfFlowApproveLog, SysUser sysUser) {
|
|
|
+ tfFlowApproveLog.setFourApproveId(sysUser.getId());
|
|
|
+ tfFlowApproveLog.setFourApproveOperation(FlowApproveOperationEnum.END);
|
|
|
+ tfFlowApproveLog.setFourApproveRemark(FlowApproveOperationEnum.END.getTitle());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 院长审核
|
|
|
*
|