|
@@ -15,8 +15,10 @@ import com.qmth.distributed.print.business.enums.*;
|
|
|
import com.qmth.distributed.print.business.service.*;
|
|
|
import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
+import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.*;
|
|
|
+import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
|
import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
|
import com.qmth.teachcloud.common.util.RedisUtil;
|
|
@@ -115,6 +117,9 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
@Resource
|
|
|
TFCustomFlowEntityService tfCustomFlowEntityService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ CommonCacheService commonCacheService;
|
|
|
+
|
|
|
/**
|
|
|
* 注册流程
|
|
|
*
|
|
@@ -775,9 +780,11 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
List<FlowTaskResult> flowTaskResultList = new ArrayList<>(setupMap.size());
|
|
|
Gson gson = new Gson();
|
|
|
for (Map.Entry<String, FlowTaskResult> entry : setupMap.entrySet()) {
|
|
|
- FlowTaskResult FlowTaskResult = gson.fromJson(gson.toJson(entry.getValue()), FlowTaskResult.class);
|
|
|
- FlowTaskResult.setFlowId(tfCustomFlowEntity.getFlowId());
|
|
|
- flowTaskResultList.add(FlowTaskResult);
|
|
|
+ FlowTaskResult flowTaskResult = gson.fromJson(gson.toJson(entry.getValue()), FlowTaskResult.class);
|
|
|
+ if (flowTaskResult.getSetup() > 0) {
|
|
|
+ flowTaskResult.setFlowId(tfCustomFlowEntity.getFlowId());
|
|
|
+ flowTaskResultList.add(flowTaskResult);
|
|
|
+ }
|
|
|
}
|
|
|
return flowTaskResultList;
|
|
|
}
|
|
@@ -2248,6 +2255,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
@Override
|
|
|
public FlowViewResult getFlowView(Long flowId) {
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
+ SysOrg sysOrg = commonCacheService.orgCache(sysUser.getOrgId());
|
|
|
TFCustomFlowEntity tfCustomFlowEntity = tfCustomFlowEntityService.findByFlowId(flowId);
|
|
|
Optional.ofNullable(tfCustomFlowEntity).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("自定义流程实体数据为空"));
|
|
|
|
|
@@ -2280,6 +2288,7 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
if (Objects.nonNull(tfFlowApprove.getTransferAssignee())) {
|
|
|
agginessMap = JacksonUtil.readJson(tfFlowApprove.getTransferAssignee(), Map.class);
|
|
|
}
|
|
|
+
|
|
|
// Map<String, Object> varMap = new HashMap<>();
|
|
|
// for (Map.Entry<String, CustomFlowVarDto> entry : agginessMap.entrySet()) {
|
|
|
// CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(entry.getValue()), CustomFlowVarDto.class);
|
|
@@ -2288,8 +2297,39 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
|
|
|
//获取流程审批历史
|
|
|
List<TFFlowLogResult> tfFlowLogResultList = tfFlowLogService.findByExamTaskId(tExamTaskFlowList.get(0).getTaskId());
|
|
|
- flowViewResult.setFlowTaskResultList(flowViewTaskResultList);
|
|
|
- flowViewResult.setTfFlowLogResultList(tfFlowLogResultList);
|
|
|
+ if (Objects.nonNull(tfFlowLogResultList) && tfFlowLogResultList.size() > 0) {
|
|
|
+ LinkedMultiValueMap<Integer, TFFlowLogResult> tfFlowLogResultMap = new LinkedMultiValueMap<>();
|
|
|
+ for (TFFlowLogResult t : tfFlowLogResultList) {
|
|
|
+ tfFlowLogResultMap.add(t.getApproveSetup(), t);
|
|
|
+ }
|
|
|
+
|
|
|
+ int nextFlowSetup = 0;
|
|
|
+ for (FlowViewTaskResult f : flowViewTaskResultList) {
|
|
|
+ CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(f.getTaskKey())), CustomFlowVarDto.class);
|
|
|
+ if (flowViewResult.getSetup().intValue() == f.getSetup().intValue()) {//当前审批节点
|
|
|
+ f.setCurrentTask(true);
|
|
|
+ f.setCurrentApproveUsers(sysUser.getRealName() + "(" + sysOrg.getName() + ")");
|
|
|
+ nextFlowSetup = flowViewResult.getSetup().intValue() + 1;
|
|
|
+ nextFlowSetup = nextFlowSetup == setupMap.size() ? 0 : nextFlowSetup;
|
|
|
+ } else {
|
|
|
+ //下一节点审批人
|
|
|
+ if (nextFlowSetup > 0 && nextFlowSetup == f.getSetup().intValue()) {
|
|
|
+ List<TFFlowLogResult> tfFlowLogResults = tfFlowLogResultMap.get(f.getSetup());
|
|
|
+ if (Objects.nonNull(tfFlowLogResults) && tfFlowLogResults.size() > 0) {
|
|
|
+ f.setPendApproveUsers(tfFlowLogResults.get(tfFlowLogResults.size() - 1).getPendApproveUserName());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ f.setPendApproveUsers(customFlowVarDto.getApproveIds().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ f.setMultipleUserApproveType(customFlowVarDto.getMultipleUserApproveType());
|
|
|
+// flowViewTaskResult.setPendApproveUsers(customFlowVarDto.getApproveIds());
|
|
|
+// flowViewTaskResult.setApproveUsers(Arrays.asList("1"));
|
|
|
+ }
|
|
|
+
|
|
|
+ flowViewResult.setFlowTaskResultList(flowViewTaskResultList);
|
|
|
+ flowViewResult.setTfFlowLogResultList(tfFlowLogResultList);
|
|
|
+ }
|
|
|
return flowViewResult;
|
|
|
}
|
|
|
|