|
|
|
@ -24,10 +24,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.time.Instant;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Comparator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
@ -48,6 +46,10 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
|
|
|
|
|
private final KnowledgeService knowledgeService;
|
|
|
|
|
|
|
|
|
|
private final SystemUserService systemUserService;
|
|
|
|
|
|
|
|
|
|
private final SystemDeptService systemDeptService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus, String title, String publishDeptId, String baseId,
|
|
|
|
|
String submittedDeptId, Instant flowType,
|
|
|
|
@ -244,24 +246,37 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
public List<KnowledgeFlowRecordResVO> queryKnowledgeFlowRecord(String knowledgeId, String flowId) {
|
|
|
|
|
List<KnowledgeFlowRecord> list = knowledgeFlowRecordService.lambdaQuery().eq(KnowledgeFlowRecord::getKnowledgeId, knowledgeId)
|
|
|
|
|
.eq(StrUtil.isNotBlank(flowId), KnowledgeFlowRecord::getFlowId, flowId).list();
|
|
|
|
|
List<KnowledgeFlowRecordResVO> list1 = list.stream().sorted(Comparator.comparingInt(KnowledgeFlowRecord::getFlowRuleOrder)).map(knowledgeFlowRecord -> {
|
|
|
|
|
// 根据时间进行排序
|
|
|
|
|
List<KnowledgeFlowRecordResVO> result = list.stream().map(knowledgeFlowRecord -> {
|
|
|
|
|
KnowledgeFlowRecordResVO node = new KnowledgeFlowRecordResVO();
|
|
|
|
|
node.setKnowledgeId(knowledgeFlowRecord.getKnowledgeId());
|
|
|
|
|
node.setProcessName(knowledgeFlowRecord.getProcessName());
|
|
|
|
|
node.setRemark(knowledgeFlowRecord.getRemark());
|
|
|
|
|
// 判断
|
|
|
|
|
node.setProcessTime(knowledgeFlowRecord.getProcessTime());
|
|
|
|
|
// node.setProcessUserId();
|
|
|
|
|
// node.setProcessDeptId();
|
|
|
|
|
// node.setProcessUserName();
|
|
|
|
|
// node.setProcessDeptName();
|
|
|
|
|
// node.setProcessOrder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
node.setProcessOrder(knowledgeFlowRecord.getFlowRuleOrder());
|
|
|
|
|
// 判断是不是发起的,如果是发起的,那么process的是发起人.否则是审批人
|
|
|
|
|
if (1 == knowledgeFlowRecord.getType()) {
|
|
|
|
|
node.setProcessTime(knowledgeFlowRecord.getCreateTime());
|
|
|
|
|
node.setProcessUserId(knowledgeFlowRecord.getSubmitUserId());
|
|
|
|
|
node.setProcessDeptId(knowledgeFlowRecord.getSubmitDeptId());
|
|
|
|
|
} else {
|
|
|
|
|
node.setProcessTime(knowledgeFlowRecord.getProcessTime());
|
|
|
|
|
node.setProcessUserId(knowledgeFlowRecord.getProcessUserId());
|
|
|
|
|
node.setProcessDeptId(knowledgeFlowRecord.getProcessDeptId());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return node;
|
|
|
|
|
}).toList();
|
|
|
|
|
return null;
|
|
|
|
|
}).sorted(Comparator.comparing(KnowledgeFlowRecordResVO::getProcessTime)).toList();
|
|
|
|
|
// 然后把人名和部门名进行转换
|
|
|
|
|
Set<String> userIdSet = result.stream().map(KnowledgeFlowRecordResVO::getProcessUserId).collect(Collectors.toSet());
|
|
|
|
|
List<SystemUser> systemUsers = systemUserService.listByIds(userIdSet);
|
|
|
|
|
Map<String, String> userNameMap = systemUsers.stream().collect(Collectors.toMap(SystemUser::getId, SystemUser::getUsername));
|
|
|
|
|
Set<String> deptIdSet = result.stream().map(KnowledgeFlowRecordResVO::getProcessDeptId).collect(Collectors.toSet());
|
|
|
|
|
List<SystemDept> systemDeptList = systemDeptService.listByIds(deptIdSet);
|
|
|
|
|
Map<String, String> deptNameMap = systemDeptList.stream().collect(Collectors.toMap(SystemDept::getId, SystemDept::getDeptName));
|
|
|
|
|
result.forEach(node -> {
|
|
|
|
|
node.setProcessUserName(userNameMap.getOrDefault(node.getProcessUserId(), "未知用户"));
|
|
|
|
|
node.setProcessDeptName(deptNameMap.getOrDefault(node.getProcessDeptId(), "未知部门"));
|
|
|
|
|
});
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|