|
@@ -2,10 +2,13 @@ package com.yingpaipay.business.service.impl;
|
|
|
|
|
|
|
|
import cn.hutool.crypto.digest.BCrypt;
|
|
import cn.hutool.crypto.digest.BCrypt;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
+import com.yingpaipay.business.constant.DocumentTypeConst;
|
|
|
import com.yingpaipay.business.constant.UserAppletStatusConst;
|
|
import com.yingpaipay.business.constant.UserAppletStatusConst;
|
|
|
|
|
+import com.yingpaipay.business.domain.Document;
|
|
|
import com.yingpaipay.business.domain.bo.*;
|
|
import com.yingpaipay.business.domain.bo.*;
|
|
|
import com.yingpaipay.business.domain.vo.*;
|
|
import com.yingpaipay.business.domain.vo.*;
|
|
|
import com.yingpaipay.business.enumeration.ProjectStatusEnum;
|
|
import com.yingpaipay.business.enumeration.ProjectStatusEnum;
|
|
|
|
|
+import com.yingpaipay.business.mapper.DocumentMapper;
|
|
|
import com.yingpaipay.system.domain.SysUserFolders;
|
|
import com.yingpaipay.system.domain.SysUserFolders;
|
|
|
import com.yingpaipay.system.domain.SysUserProjects;
|
|
import com.yingpaipay.system.domain.SysUserProjects;
|
|
|
import com.yingpaipay.system.mapper.SysUserFoldersMapper;
|
|
import com.yingpaipay.system.mapper.SysUserFoldersMapper;
|
|
@@ -35,6 +38,7 @@ import com.yingpaipay.business.service.IProjectService;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 项目管理Service业务层处理
|
|
* 项目管理Service业务层处理
|
|
@@ -55,6 +59,7 @@ public class ProjectServiceImpl implements IProjectService {
|
|
|
private final ISysOssService ossService;
|
|
private final ISysOssService ossService;
|
|
|
private final ISysDeptService deptService;
|
|
private final ISysDeptService deptService;
|
|
|
private final ISysUserService userService;
|
|
private final ISysUserService userService;
|
|
|
|
|
+ private final CommonDocumentService documentService;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 查询项目管理
|
|
* 查询项目管理
|
|
@@ -84,11 +89,9 @@ public class ProjectServiceImpl implements IProjectService {
|
|
|
Page<ProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
Page<ProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
List<Long> iconIds = new ArrayList<>();
|
|
List<Long> iconIds = new ArrayList<>();
|
|
|
result.getRecords().forEach(e -> iconIds.add(e.getIcon()));
|
|
result.getRecords().forEach(e -> iconIds.add(e.getIcon()));
|
|
|
- if (!iconIds.isEmpty()) {
|
|
|
|
|
- Map<Long, String> iconMap = new HashMap<>();
|
|
|
|
|
- ossService.listByIds(iconIds).forEach(e -> iconMap.put(e.getOssId(), e.getUrl()));
|
|
|
|
|
- result.getRecords().forEach(e -> e.setIconUrl(iconMap.get(e.getIcon())));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ Map<Long, String> iconMap = new HashMap<>();
|
|
|
|
|
+ ossService.queryListByIds(iconIds).forEach(e -> iconMap.put(e.getOssId(), e.getUrl()));
|
|
|
|
|
+ result.getRecords().forEach(e -> e.setIconUrl(iconMap.get(e.getIcon())));
|
|
|
return TableDataInfo.build(result);
|
|
return TableDataInfo.build(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -293,18 +296,6 @@ public class ProjectServiceImpl implements IProjectService {
|
|
|
}));
|
|
}));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// @Override
|
|
|
|
|
-// public boolean inviteCenterMember(ProjectInviteCenterMemberBo bo) {
|
|
|
|
|
-// List<SysUserFolder> userFolder = new ArrayList<>();
|
|
|
|
|
-// bo.getUserIds().forEach(e -> {
|
|
|
|
|
-// SysUserFolder entity = new SysUserFolder();
|
|
|
|
|
-// entity.setUserId(e);
|
|
|
|
|
-// entity.setFolderId(bo.getFolderId());
|
|
|
|
|
-// userFolder.add(entity);
|
|
|
|
|
-// });
|
|
|
|
|
-// return userFolderMapper.insertBatch(userFolder);
|
|
|
|
|
-// }
|
|
|
|
|
-
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public TableDataInfo<ProjectMemberNotInCenterVo> queryMemberNotInCenter(Long projectId, Long folderId, String name, PageQuery pageQuery) {
|
|
public TableDataInfo<ProjectMemberNotInCenterVo> queryMemberNotInCenter(Long projectId, Long folderId, String name, PageQuery pageQuery) {
|
|
|
// TODO 只能是项目中的人
|
|
// TODO 只能是项目中的人
|
|
@@ -359,14 +350,34 @@ public class ProjectServiceImpl implements IProjectService {
|
|
|
.like(StringUtils.isNotBlank(bo.getContent()), Project::getCtaGcta, bo.getContent())
|
|
.like(StringUtils.isNotBlank(bo.getContent()), Project::getCtaGcta, bo.getContent())
|
|
|
.orderByDesc(Project::getId)
|
|
.orderByDesc(Project::getId)
|
|
|
);
|
|
);
|
|
|
|
|
+ List<Long> projectIds = new ArrayList<>();
|
|
|
|
|
+ page.getRecords().forEach(e -> projectIds.add(e.getId()));
|
|
|
|
|
+ List<Document> documents = documentService.queryListByProjectIds(projectIds);
|
|
|
|
|
+ Map<Long, List<Document>> documentMap = documents.stream().collect(Collectors.groupingBy(Document::getProjectId));
|
|
|
return TableDataInfo.build(page.convert(e -> {
|
|
return TableDataInfo.build(page.convert(e -> {
|
|
|
|
|
+ List<Document> documentList = documentMap.get(e.getId());
|
|
|
ProjectInDashboardWorkbenchVo vo = new ProjectInDashboardWorkbenchVo();
|
|
ProjectInDashboardWorkbenchVo vo = new ProjectInDashboardWorkbenchVo();
|
|
|
vo.setId(e.getId());
|
|
vo.setId(e.getId());
|
|
|
vo.setCode(e.getCode());
|
|
vo.setCode(e.getCode());
|
|
|
vo.setName(e.getName());
|
|
vo.setName(e.getName());
|
|
|
- vo.setOnTimeSubmissionRate(0.00D);
|
|
|
|
|
- vo.setLateSubmissionCount(0);
|
|
|
|
|
- vo.setSubmissionProgress(0.00D);
|
|
|
|
|
|
|
+ int total = documentList.size();
|
|
|
|
|
+ List<Document> planDocuments = documentList.stream()
|
|
|
|
|
+ .filter(item -> item.getType().equals(DocumentTypeConst.PLAN))
|
|
|
|
|
+ .toList();
|
|
|
|
|
+ long onTimeSubmit = planDocuments.stream()
|
|
|
|
|
+ .filter(item -> item.getOssId() != null && item.getSubmitTime().before(item.getSubmitDeadline()))
|
|
|
|
|
+ .count();
|
|
|
|
|
+ long lateSubmit = planDocuments.stream()
|
|
|
|
|
+ .filter(item -> item.getOssId() != null)
|
|
|
|
|
+ .filter(item -> item.getSubmitDeadline().before(item.getSubmitTime()))
|
|
|
|
|
+ .count();
|
|
|
|
|
+ long unsubmit = planDocuments.stream()
|
|
|
|
|
+ .filter(item -> item.getOssId() == null)
|
|
|
|
|
+ .filter(item -> item.getSubmitDeadline().before(new Date()))
|
|
|
|
|
+ .count();
|
|
|
|
|
+ vo.setOnTimeSubmissionRate(Double.valueOf(String.format("%.2f", (double) onTimeSubmit / total * 100)));
|
|
|
|
|
+ vo.setLateSubmissionCount(lateSubmit);
|
|
|
|
|
+ vo.setSubmissionProgress(Double.valueOf(String.format("%.2f", (double) unsubmit / total * 100)));
|
|
|
vo.setPdGpd(e.getPdGpd());
|
|
vo.setPdGpd(e.getPdGpd());
|
|
|
vo.setPmGpm(e.getPmGpm());
|
|
vo.setPmGpm(e.getPmGpm());
|
|
|
vo.setCtaGcta(e.getCtaGcta());
|
|
vo.setCtaGcta(e.getCtaGcta());
|
|
@@ -444,7 +455,7 @@ public class ProjectServiceImpl implements IProjectService {
|
|
|
user.setStatus(SystemConstants.NORMAL);
|
|
user.setStatus(SystemConstants.NORMAL);
|
|
|
user.setAppletStatus(UserAppletStatusConst.NORMAL);
|
|
user.setAppletStatus(UserAppletStatusConst.NORMAL);
|
|
|
user.setRoleIds(bo.getRoleIds());
|
|
user.setRoleIds(bo.getRoleIds());
|
|
|
- user.setProjects(bo.getProjectId().toString() + ",");
|
|
|
|
|
|
|
+ user.setProjects(bo.getProjectId().toString());
|
|
|
user.setCreateDept(LoginHelper.getDeptId());
|
|
user.setCreateDept(LoginHelper.getDeptId());
|
|
|
user.setCreateBy(LoginHelper.getUserId());
|
|
user.setCreateBy(LoginHelper.getUserId());
|
|
|
user.setCreateTime(new Date());
|
|
user.setCreateTime(new Date());
|