|
|
|
@ -22,6 +22,7 @@ import com.supervision.knowsub.vo.knowledge.KnowledgePageResVO;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
@ -57,7 +58,7 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<KnowledgeFlowResVO> queryKnowledgeFlowPage(Integer processStatus, String title, String publishDeptId, String baseId,
|
|
|
|
|
String submittedDeptId, Instant flowType,
|
|
|
|
|
String submitDeptId, Instant flowType,
|
|
|
|
|
LocalDateTime publishDateBegin, LocalDateTime publishDateEnd,
|
|
|
|
|
Integer pageNum, Integer pageSize) {
|
|
|
|
|
Assert.notNull(processStatus, "审批状态不能为空");
|
|
|
|
@ -65,12 +66,12 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
IPage<KnowledgeFlowResVO> result;
|
|
|
|
|
// 查询待办
|
|
|
|
|
if (1 == processStatus) {
|
|
|
|
|
result = knowledgeFlowRecordService.queryKnowledgeFlowTodoPage(user.getId(), title, publishDeptId, baseId, submittedDeptId, flowType,
|
|
|
|
|
result = knowledgeFlowRecordService.queryKnowledgeFlowTodoPage(user.getId(), title, publishDeptId, baseId, submitDeptId, flowType,
|
|
|
|
|
publishDateBegin, publishDateEnd, new Page<>(pageNum, pageSize));
|
|
|
|
|
}
|
|
|
|
|
// 查询已办
|
|
|
|
|
else if (2 == processStatus) {
|
|
|
|
|
result = knowledgeFlowRecordService.queryKnowledgeFlowCompletePage(user.getId(), title, publishDeptId, baseId, submittedDeptId, flowType,
|
|
|
|
|
result = knowledgeFlowRecordService.queryKnowledgeFlowCompletePage(user.getId(), title, publishDeptId, baseId, submitDeptId, flowType,
|
|
|
|
|
publishDateBegin, publishDateEnd, new Page<>(pageNum, pageSize));
|
|
|
|
|
} else {
|
|
|
|
|
throw new BusinessException("不支持的状态类型");
|
|
|
|
@ -81,11 +82,16 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
Set<String> publishDeptSet = records.stream().map(KnowledgeFlowResVO::getPublishDeptId).collect(Collectors.toSet());
|
|
|
|
|
Set<String> submitDeptSet = records.stream().map(KnowledgeFlowResVO::getSubmitDeptId).collect(Collectors.toSet());
|
|
|
|
|
Collection<String> deptIdSet = CollUtil.union(submitDeptSet, publishDeptSet);
|
|
|
|
|
Map<String, String> deptMap = systemDeptService.listByIds(deptIdSet).stream().collect(Collectors.toMap(SystemDept::getId, SystemDept::getDeptName));
|
|
|
|
|
Map<String, String> deptMap = new HashMap<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(deptIdSet)){
|
|
|
|
|
deptMap = systemDeptService.listByIds(deptIdSet).stream().collect(Collectors.toMap(SystemDept::getId, SystemDept::getDeptName));
|
|
|
|
|
}
|
|
|
|
|
// 获取所有子库
|
|
|
|
|
Set<String> userIdSet = records.stream().map(KnowledgeFlowResVO::getSubmitUserId).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
Map<String, String> userMap = systemUserService.listByIds(userIdSet).stream().collect(Collectors.toMap(SystemUser::getId, SystemUser::getUsername));
|
|
|
|
|
Map<String, String> userMap = new HashMap<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(userIdSet)){
|
|
|
|
|
userMap = systemUserService.listByIds(userIdSet).stream().collect(Collectors.toMap(SystemUser::getId, SystemUser::getUsername));
|
|
|
|
|
}
|
|
|
|
|
for (KnowledgeFlowResVO record : records) {
|
|
|
|
|
record.setSubmitUserName(userMap.getOrDefault(record.getSubmitUserId(), "未知用户"));
|
|
|
|
|
record.setSubmitDeptName(deptMap.getOrDefault(record.getSubmitDeptId(), "未知部门"));
|
|
|
|
@ -245,7 +251,7 @@ public class KnowledgeFlowServiceImpl implements KnowledgeFlowService {
|
|
|
|
|
SystemFlowRule nextRule;
|
|
|
|
|
try {
|
|
|
|
|
nextRule = ruleOrderList.get(index + 1);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
} catch (IndexOutOfBoundsException e) {
|
|
|
|
|
throw new BusinessException("未找到下一个审批节点,请联系管理员解决");
|
|
|
|
|
}
|
|
|
|
|
List<SystemFlowRuleUser> nextRuleUserList = systemFlowRuleUserService.lambdaQuery().eq(SystemFlowRuleUser::getFlowId, nextRule.getId())
|
|
|
|
|