|
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.redxun.common.base.db.BaseDao;
|
|
|
import com.redxun.common.base.db.BaseService;
|
|
|
import com.redxun.common.base.db.PageHelper;
|
|
@@ -16,18 +18,19 @@ import com.redxun.common.tool.IdGenerator;
|
|
|
import com.redxun.common.tool.StringUtils;
|
|
|
import com.redxun.dto.user.OsUserDto;
|
|
|
import com.redxun.knowledge.common.UserService;
|
|
|
-import com.redxun.knowledge.controller.KnowledgeApproveController;
|
|
|
import com.redxun.knowledge.entity.dao.*;
|
|
|
import com.redxun.knowledge.entity.dto.KnowledgeDto;
|
|
|
+import com.redxun.knowledge.entity.vo.KnowledgeApprovalListVo;
|
|
|
import com.redxun.knowledge.entity.vo.KnowledgeApprovalVo;
|
|
|
import com.redxun.knowledge.entity.vo.KnowledgeCategoryAdminVo;
|
|
|
import com.redxun.knowledge.entity.vo.KnowledgeVo;
|
|
|
import com.redxun.knowledge.mapper.*;
|
|
|
import com.redxun.knowledge.utils.DeduplicationUtil;
|
|
|
+import com.redxun.knowledge.utils.PageListUtils;
|
|
|
import com.redxun.search.service.SearchService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -39,6 +42,8 @@ import java.util.stream.Collectors;
|
|
|
* [业务--知识表]业务服务类
|
|
|
*/
|
|
|
@Service
|
|
|
+@SuppressWarnings({"all"})
|
|
|
+@Slf4j
|
|
|
public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Knowledge> implements BaseService<Knowledge> {
|
|
|
|
|
|
|
|
@@ -336,46 +341,48 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
*/
|
|
|
public IPage findAllAuditKnowledge(QueryFilter filter) {
|
|
|
Map<String, Object> params = PageHelper.constructParams(filter);
|
|
|
- //filter.getParams().put("userId",userService.queryLoginUsername());
|
|
|
- //filter.getParams().put("deptId",userService.queryLoginUserDeptId());
|
|
|
- // 只查询待节点审核的数据
|
|
|
- IPage page = knowledgeMapper.findAllAuditKnowledge(filter.getPage(), filter.getParams(), params);
|
|
|
- List<KnowledgeVo> knowledgeVoList = page.getRecords();
|
|
|
- // 查询其所属分类信息以及审核表第一节点的审核人信息
|
|
|
- //KnowledgeVo knowledgeVo = knowledgeVoList.get(0);
|
|
|
- //
|
|
|
- //KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(knowledgeVo.getCategoryId());
|
|
|
- //knowledgeVo.setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
|
|
|
- //List<KnowledgeApprove> knowledgerList = knowledgeApproveMapper.selectList(
|
|
|
- // new QueryWrapper<KnowledgeApprove>().eq("KNOWLEDGER_ID", knowledgeVo.getPkId()).orderByAsc("SORT"));
|
|
|
- //knowledgeVo.setApprovalsFirst(knowledgerList.get(0));
|
|
|
- // 去重,取第一条数据
|
|
|
- List<KnowledgeVo> knowledgeVoFilterOne = knowledgeVoList.stream().
|
|
|
- filter(DeduplicationUtil.distinctByKey(KnowledgeVo::getTitles)).collect(Collectors.toList());
|
|
|
- List<KnowledgeVo> knowledgeVoFilterTwo = new ArrayList<>();
|
|
|
- knowledgeVoFilterOne.forEach(e -> {
|
|
|
- // 是当前用户或者当前登录用户的统计部门,可审
|
|
|
- if (e.getApproverId().equals(userService.queryLoginUsername()) || e.getApproverId().equals(userService.queryLoginUserDeptId())){
|
|
|
- knowledgeVoFilterTwo.add(e);
|
|
|
+ List<KnowledgeVo> knowledgeVoList = knowledgeMapper.findAllAuditKnowledge(filter.getParams(), params);
|
|
|
+ // 根据知识Id进行数据分组
|
|
|
+ Map<String, List<KnowledgeVo>> result =
|
|
|
+ knowledgeVoList.stream().collect(Collectors.groupingBy(KnowledgeVo::getKnowledgerId));
|
|
|
+ // 结果集
|
|
|
+ List<KnowledgeVo> knowledgeVoArrayList = new ArrayList<>();
|
|
|
+ // 遍历每组的数据
|
|
|
+ Set<Map.Entry<String, List<KnowledgeVo>>> entries = result.entrySet();
|
|
|
+ for (Map.Entry<String, List<KnowledgeVo>> entry : entries) {
|
|
|
+ List<KnowledgeVo> value = entry.getValue();
|
|
|
+ for (int i = 0; i < value.size(); i++) {
|
|
|
+ // 判断审批结果是否为null(如果审批结果没有null,证明审批已结束;如果等于0,证明审批没通过)
|
|
|
+ if (value.get(i).getResult() == null) {
|
|
|
+ value.get(i).setApprovalsFirst(knowledgeApproveMapper.selectById(value.get(i).getApproveId()));
|
|
|
+ if (i != 0) {
|
|
|
+ // 如果不是第一条数据,取前一条数据的审批时间
|
|
|
+ Date approvalTime = value.get(i - 1).getApprovalTime();
|
|
|
+ value.get(i).setApprovalTime(approvalTime);
|
|
|
+ }
|
|
|
+ // 把该记录加到结果集中
|
|
|
+ knowledgeVoArrayList.add(value.get(i));
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- });
|
|
|
- knowledgeVoFilterTwo.forEach(e -> {
|
|
|
- KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(e.getCategoryId());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 放入知识分类信息
|
|
|
+ List<KnowledgeVo> collect = knowledgeVoArrayList.stream().
|
|
|
+ sorted((t1, t2) -> t2.getCreateTime().compareTo(t1.getCreateTime())).collect(Collectors.toList());
|
|
|
+ collect.forEach(e -> {
|
|
|
+ String categoryId = e.getCategoryId();
|
|
|
+ KnowledgeCategoryAdminVo knowledgeCategoryAdminVo = knowledgeCategoryService.findAllParentByCategoryId(categoryId);
|
|
|
e.setKnowledgeCategoryAdminVo(knowledgeCategoryAdminVo);
|
|
|
- List<KnowledgeApprove> knowledgerList = knowledgeApproveMapper.selectList(
|
|
|
- new QueryWrapper<KnowledgeApprove>().eq("KNOWLEDGER_ID", e.getPkId()).isNull("RESULT").orderByAsc("SORT"));
|
|
|
- e.setApprovalsFirst(knowledgerList.get(0));
|
|
|
});
|
|
|
- // 数据大于99条,取前99条数据返回
|
|
|
- if (page.getSize() > 99){
|
|
|
- List<KnowledgeVo> recordsPre = knowledgeVoFilterTwo.stream().limit(99).collect(Collectors.toList());
|
|
|
- page.setRecords(recordsPre);
|
|
|
- page.setTotal(99);
|
|
|
- } else {
|
|
|
- page.setRecords(knowledgeVoFilterTwo);
|
|
|
- page.setTotal(knowledgeVoFilterTwo.size());
|
|
|
- }
|
|
|
- return page;
|
|
|
+
|
|
|
+ // 判断当前登录人是否可以审核每一条知识
|
|
|
+ String userNo = userService.queryLoginUsername();
|
|
|
+ String deptId = userService.queryLoginUserDeptId();
|
|
|
+ List<KnowledgeVo> collectResult = collect.stream().
|
|
|
+ filter(e -> e.getApproverId().equals(userNo) || e.getApproverId().equals(deptId)).collect(Collectors.toList());
|
|
|
+ Page pages = PageListUtils.getPages(filter.getPage().getCurrent(), filter.getPage().getSize(), collectResult);
|
|
|
+ return pages;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -435,17 +442,46 @@ public class KnowledgeServiceImpl extends SuperServiceImpl<KnowledgeMapper, Know
|
|
|
*/
|
|
|
public Integer getAuditKnowledgeSum() {
|
|
|
List<KnowledgeVo> knowledgeVoList = knowledgeMapper.countAuditKnowledge();
|
|
|
- List<KnowledgeVo> knowledgeVoFilterOne = knowledgeVoList.stream().filter(DeduplicationUtil.distinctByKey(KnowledgeVo::getTitles)).collect(Collectors.toList());
|
|
|
- List<KnowledgeVo> knowledgeVoFilterTwo = new ArrayList<>();
|
|
|
- knowledgeVoFilterOne.forEach(e -> {
|
|
|
- // 是当前用户或者当前登录用户的统计部门,可审
|
|
|
- if (e.getApproverId().equals(userService.queryLoginUsername()) || e.getApproverId().equals(userService.queryLoginUserDeptId())){
|
|
|
- knowledgeVoFilterTwo.add(e);
|
|
|
+ // 根据知识Id进行数据分组
|
|
|
+ Map<String, List<KnowledgeVo>> result =
|
|
|
+ knowledgeVoList.stream().collect(Collectors.groupingBy(KnowledgeVo::getKnowledgerId));
|
|
|
+ // 结果集
|
|
|
+ List<KnowledgeVo> knowledgeVoArrayList = new ArrayList<>();
|
|
|
+ // 遍历每组的数据
|
|
|
+ Set<Map.Entry<String, List<KnowledgeVo>>> entries = result.entrySet();
|
|
|
+ for (Map.Entry<String, List<KnowledgeVo>> entry : entries) {
|
|
|
+ List<KnowledgeVo> value = entry.getValue();
|
|
|
+ for (int i = 0; i < value.size(); i++) {
|
|
|
+ // 判断审批结果是否为null(如果审批结果没有null,证明审批已结束;如果等于0,证明审批没通过)
|
|
|
+ if (value.get(i).getResult() == null) {
|
|
|
+ if (i != 0) {
|
|
|
+ // 如果不是第一条数据,取前一条数据的审批时间
|
|
|
+ Date approvalTime = value.get(i - 1).getApprovalTime();
|
|
|
+ value.get(i).setApprovalTime(approvalTime);
|
|
|
+ // 把该记录加到结果集中
|
|
|
+ knowledgeVoArrayList.add(value.get(i));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- });
|
|
|
- return knowledgeVoFilterTwo.size();
|
|
|
+ }
|
|
|
+ String userNo = userService.queryLoginUsername();
|
|
|
+ String deptId = userService.queryLoginUserDeptId();
|
|
|
+ List<KnowledgeVo> collectResult = knowledgeVoArrayList.stream().
|
|
|
+ filter(e -> e.getApproverId().equals(userNo) || e.getApproverId().equals(deptId)).collect(Collectors.toList());
|
|
|
+ if (collectResult.size() >= 99){
|
|
|
+ return 99;
|
|
|
+ } else if (collectResult.size() <= 0){
|
|
|
+ return 0;
|
|
|
+ }else {
|
|
|
+ return collectResult.size();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 前台获取登录人上传文件数量
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public Integer getKnowledgeSum() {
|
|
|
LambdaQueryWrapper<Knowledge> wrapper = new LambdaQueryWrapper<>();
|
|
|
String loginUser = userService.queryLoginUser();
|