Bläddra i källkod

递交、审批基本完成

Huanyi 4 dagar sedan
förälder
incheckning
e412595a2a
14 ändrade filer med 367 tillägg och 14 borttagningar
  1. 9 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/constant/SpecificationTypeConst.java
  2. 22 7
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/TaskCenterController.java
  3. 2 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/WorkbenchController.java
  4. 2 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/Document.java
  5. 16 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/TaskCenterAuditListBo.java
  6. 18 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/TaskCenterSubmissionListBo.java
  7. 4 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentVo.java
  8. 42 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterAuditListVo.java
  9. 38 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterSubmissionListVo.java
  10. 6 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/IDocumentService.java
  11. 82 1
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonFolderService.java
  12. 44 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonProjectService.java
  13. 80 0
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java
  14. 2 2
      ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java

+ 9 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/constant/SpecificationTypeConst.java

@@ -0,0 +1,9 @@
+package com.yingpaipay.business.constant;
+
+public interface SpecificationTypeConst {
+
+    Integer CENTER = 0;
+
+    Integer PROJECT = 1;
+
+}

+ 22 - 7
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/TaskCenterController.java

@@ -3,34 +3,49 @@ package com.yingpaipay.business.controller;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.yingpaipay.business.domain.bo.DocumentAuditBo;
 import com.yingpaipay.business.domain.bo.DocumentSubmitBo;
+import com.yingpaipay.business.domain.bo.TaskCenterAuditListBo;
+import com.yingpaipay.business.domain.bo.TaskCenterSubmissionListBo;
+import com.yingpaipay.business.domain.vo.TaskCenterAuditListVo;
+import com.yingpaipay.business.domain.vo.TaskCenterSubmissionListVo;
 import com.yingpaipay.business.service.IDocumentService;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.log.annotation.Log;
 import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.web.core.BaseController;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequiredArgsConstructor
-@RequestMapping("/workArea/taskCenter")
+@RequestMapping("/home/taskCenter")
 public class TaskCenterController extends BaseController {
 
     private final IDocumentService documentService;
 
+    @SaCheckPermission("taskCenter:submission:list")
+    @GetMapping("/submission/list")
+    public TableDataInfo<TaskCenterSubmissionListVo> listSubmission(TaskCenterSubmissionListBo bo, PageQuery pageQuery) {
+        return documentService.listOnSubmission(bo, pageQuery);
+    }
+
     @SaCheckPermission("taskCenter:submission:submit")
     @Log(title = "文档", businessType = BusinessType.UPDATE)
-    @PutMapping("/submit")
+    @PutMapping("/submission/submit")
     public R<Void> submit(@RequestBody DocumentSubmitBo bo) {
         return toAjax(documentService.submit(bo));
     }
 
+    @SaCheckPermission("taskCenter:audit:list")
+    @GetMapping("/audit/list")
+    public TableDataInfo<TaskCenterAuditListVo> listAudit(TaskCenterAuditListBo bo, PageQuery pageQuery) {
+        return documentService.listOnAudit(bo, pageQuery);
+    }
+
     @SaCheckPermission("taskCenter:audit:audit")
     @Log(title = "任务中心", businessType = BusinessType.UPDATE)
-    @PutMapping("/audit")
+    @PutMapping("/audit/audit")
     public R<Void> audit(@RequestBody DocumentAuditBo bo) {
         return toAjax(documentService.audit(bo));
     }

+ 2 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/controller/WorkbenchController.java

@@ -13,13 +13,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
-@RequestMapping("/workArea/workbench")
+@RequestMapping("/home/workbench")
 @RequiredArgsConstructor
 public class WorkbenchController extends BaseController {
 
     private final IProjectService projectService;
 
-    @SaCheckPermission("workArea:workbench:index")
+    @SaCheckPermission("home:workbench:index")
     @GetMapping("/list")
     public TableDataInfo<ProjectInDashboardWorkbenchVo> listOnDashboardWorkbench(ProjectListOnDashboardWorkbenchBo bo, PageQuery pageQuery) {
         return projectService.queryPageListOnDashboardWorkbench(bo, pageQuery);

+ 2 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/Document.java

@@ -83,4 +83,6 @@ public class Document extends TenantEntity {
 
     private Long projectId;
 
+    private Integer specificationType;
+
 }

+ 16 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/TaskCenterAuditListBo.java

@@ -0,0 +1,16 @@
+package com.yingpaipay.business.domain.bo;
+
+import lombok.Data;
+
+@Data
+public class TaskCenterAuditListBo {
+
+    private String projectCode;
+
+    private String projectName;
+
+    private String centerName;
+
+    private String name;
+
+}

+ 18 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/bo/TaskCenterSubmissionListBo.java

@@ -0,0 +1,18 @@
+package com.yingpaipay.business.domain.bo;
+
+import lombok.Data;
+
+@Data
+public class TaskCenterSubmissionListBo {
+
+    private String name;
+
+    private String projectCode;
+
+    private String projectName;
+
+    private String centerName;
+
+    private Integer status;
+
+}

+ 4 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/DocumentVo.java

@@ -62,8 +62,8 @@ public class DocumentVo implements Serializable {
     private String name;
 
     @ExcelProperty(value = "计划文件类型")
-    private String palnDocumentTypeLabel;
-    private String planDocumentType;
+    private String planDocumentTypeLabel;
+    private String planType;
 
     /**
      * 状态
@@ -114,4 +114,6 @@ public class DocumentVo implements Serializable {
 
     private Integer type;
 
+    private Integer specificationType;
+
 }

+ 42 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterAuditListVo.java

@@ -0,0 +1,42 @@
+package com.yingpaipay.business.domain.vo;
+
+import com.yingpaipay.business.domain.Document;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+
+import java.util.Date;
+
+@Data
+@AutoMapper(target = Document.class)
+public class TaskCenterAuditListVo {
+
+    private Long id;
+
+    private String name;
+
+    private Integer status;
+
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "submitterId")
+    private String submitter;
+    private Long submitterId;
+
+    private Date deadline;
+
+    private Date submitTime;
+
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
+    private String createBy;
+
+    private Date createTime;
+
+    private Long ossId;
+
+    private String ossUrl;
+
+    private Integer type;
+
+    private String documentType;
+
+}

+ 38 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/domain/vo/TaskCenterSubmissionListVo.java

@@ -0,0 +1,38 @@
+package com.yingpaipay.business.domain.vo;
+
+import com.yingpaipay.business.domain.Document;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+
+import java.util.Date;
+
+@Data
+@AutoMapper(target = Document.class)
+public class TaskCenterSubmissionListVo {
+
+    private Long id;
+
+    private String name;
+
+    private Integer status;
+
+    private Integer type;
+
+    private String documentType;
+
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "submitterId")
+    private String submitter;
+    private Long submitterId;
+
+    private Date deadline;
+
+    private Date submitTime;
+
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
+    private String createBy;
+
+    private Date createTime;
+
+}

+ 6 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/IDocumentService.java

@@ -3,6 +3,8 @@ package com.yingpaipay.business.service;
 import com.yingpaipay.business.domain.bo.*;
 import com.yingpaipay.business.domain.vo.DocumentAuditLogVo;
 import com.yingpaipay.business.domain.vo.DocumentVo;
+import com.yingpaipay.business.domain.vo.TaskCenterAuditListVo;
+import com.yingpaipay.business.domain.vo.TaskCenterSubmissionListVo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
@@ -78,4 +80,8 @@ public interface IDocumentService {
     TableDataInfo<DocumentAuditLogVo> logAudit(DocumentAuditLogBo bo, PageQuery pageQuery);
 
     boolean filing(DocumentFilingBo bo);
+
+    TableDataInfo<TaskCenterSubmissionListVo> listOnSubmission(TaskCenterSubmissionListBo bo, PageQuery pageQuery);
+
+    TableDataInfo<TaskCenterAuditListVo> listOnAudit(TaskCenterAuditListBo bo, PageQuery pageQuery);
 }

+ 82 - 1
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonFolderService.java

@@ -1,14 +1,95 @@
 package com.yingpaipay.business.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yingpaipay.business.constant.DocumentTypeConst;
+import com.yingpaipay.business.constant.FolderTypeConst;
+import com.yingpaipay.business.constant.SpecificationTypeConst;
+import com.yingpaipay.business.domain.Folder;
 import com.yingpaipay.business.mapper.FolderMapper;
+import com.yingpaipay.system.domain.SysUserFolders;
+import com.yingpaipay.system.mapper.SysUserFoldersMapper;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 @Service
 @RequiredArgsConstructor
 public class CommonFolderService {
 
-    private final FolderMapper folderMapper;
+    private final FolderMapper baseMapper;
+    private final SysUserFoldersMapper userFoldersMapper;
+
+    public List<Long> selectIdsOnSubmission(String centerName, List<Long> projectIds) {
+        if (projectIds.isEmpty()) {
+            return List.of();
+        }
+        List<Long> ids = new ArrayList<>();
+        List<Long> centerIds = new ArrayList<>();
+        List<Folder> allFolders = baseMapper.selectList(Wrappers.lambdaQuery(Folder.class).in(Folder::getProjectId, projectIds));
+        Map<Long, List<Folder>> childrenMap = allFolders
+            .stream()
+            .filter(e -> e.getParentId() != null)
+            .collect(Collectors.groupingBy(Folder::getParentId));
+        Map<Long, List<Folder>> folderProjectMap = allFolders.stream().filter(e -> e.getParentId() == null).collect(Collectors.groupingBy(Folder::getProjectId));
+        userFoldersMapper.selectList(
+            Wrappers.lambdaQuery(SysUserFolders.class)
+                .eq(SysUserFolders::getUserId, LoginHelper.getUserId())
+                .in(SysUserFolders::getProjectId, projectIds)
+        ).forEach(e -> {
+            if (e.getFolders().equals("*")) {
+                List<Folder> folders = folderProjectMap.get(e.getProjectId());
+                for (Folder folder : folders) {
+                    centerIds.add(folder.getId());
+                }
+            } else {
+                centerIds.addAll(Arrays.stream(e.getFolders().split(",")).map(Long::valueOf).toList());
+            }
+        });
+
+        for (Long centerId : centerIds) {
+            buildAuthrizedFolders(centerId, ids, childrenMap);
+        }
+
+        return ids;
+    }
+
+    private void buildAuthrizedFolders(Long centerId, List<Long> ids, Map<Long, List<Folder>> childrenMap) {
+        ids.add(centerId);
+        List<Folder> folders = childrenMap.get(centerId);
+        if (folders == null || folders.isEmpty()) {
+            return;
+        }
+        for (Folder folder : folders) {
+            buildAuthrizedFolders(folder.getId(), ids, childrenMap);
+        }
+    }
+
+    public int getSpecificationType(Long folderId, Long projectId) {
+        Map<Long, Folder> folderMap = new HashMap<>();
+        baseMapper.selectList(
+            Wrappers.lambdaQuery(Folder.class)
+                .eq(Folder::getProjectId, projectId)
+        ).forEach(e -> folderMap.put(e.getId(), e));
 
+        long currentId = folderId;
 
+        while (true) {
+            Folder folder = folderMap.get(currentId);
+            if (folder == null || folder.getType().equals(FolderTypeConst.COUNTRY)) {
+                return SpecificationTypeConst.PROJECT;
+            }
+            if (folder.getType().equals(FolderTypeConst.CENTER)) {
+                return SpecificationTypeConst.CENTER;
+            }
+            if (folder.getType().equals(FolderTypeConst.NORMAL)) {
+                if (folder.getParentId() == null) {
+                    return SpecificationTypeConst.PROJECT;
+                }
+                currentId = folder.getParentId();
+            }
+        }
+    }
 }

+ 44 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/CommonProjectService.java

@@ -0,0 +1,44 @@
+package com.yingpaipay.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yingpaipay.business.domain.Project;
+import com.yingpaipay.business.mapper.ProjectMapper;
+import com.yingpaipay.system.domain.SysUserFolders;
+import com.yingpaipay.system.domain.SysUserProjects;
+import com.yingpaipay.system.mapper.SysUserProjectsMapper;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class CommonProjectService {
+
+    private final ProjectMapper baseMapper;
+    private final SysUserProjectsMapper userProjectsMapper;
+
+    public List<Long> queryIdsOnSubmission(String projectCode, String name) {
+        List<Long> ids = new ArrayList<>();
+        SysUserProjects userProjects = userProjectsMapper.selectOne(Wrappers.lambdaQuery(SysUserProjects.class).eq(SysUserProjects::getUserId, LoginHelper.getUserId()));
+        if (userProjects == null) {
+            return List.of();
+        }
+        LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class)
+            .like(StringUtils.isNotBlank(projectCode), Project::getCode, projectCode)
+            .like(StringUtils.isNotBlank(name), Project::getName, name);
+
+        // 因为Arrays代码会前置执行,所以使用condition作为判断会抛出异常
+        if (!userProjects.getProjects().equals("*")) {
+            wrapper.in(Project::getId, Arrays.stream(userProjects.getProjects().split(",")).map(Long::valueOf).toList());
+        }
+
+        baseMapper.selectList(wrapper).forEach(e -> ids.add(e.getId()));
+        return ids;
+    }
+}

+ 80 - 0
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/DocumentServiceImpl.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yingpaipay.business.constant.DictTypeConst;
 import com.yingpaipay.business.constant.DocumentAuditorTypeConst;
 import com.yingpaipay.business.constant.DocumentStatusConst;
+import com.yingpaipay.business.constant.DocumentTypeConst;
 import com.yingpaipay.business.domain.DocumentAuditLog;
 import com.yingpaipay.business.domain.bo.*;
 import com.yingpaipay.business.domain.vo.DocumentAuditLogVo;
+import com.yingpaipay.business.domain.vo.TaskCenterAuditListVo;
+import com.yingpaipay.business.domain.vo.TaskCenterSubmissionListVo;
 import com.yingpaipay.business.mapper.DocumentAuditLogMapper;
 import org.dromara.common.core.exception.BusinessException;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -53,6 +56,7 @@ public class DocumentServiceImpl implements IDocumentService {
     private final ISysOssService ossService;
     private final ISysUserService userService;
     private final CommonFolderService folderService;
+    private final CommonProjectService projectService;
 
     /**
      * 查询文档
@@ -150,6 +154,9 @@ public class DocumentServiceImpl implements IDocumentService {
     @Override
     public Boolean insertByBo(DocumentBo bo) {
         Document add = MapstructUtils.convert(bo, Document.class);
+
+        add.setSpecificationType(folderService.getSpecificationType(bo.getFolderId(), bo.getProjectId()));
+
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -289,6 +296,79 @@ public class DocumentServiceImpl implements IDocumentService {
         ) > 0;
     }
 
+    @Override
+    public TableDataInfo<TaskCenterSubmissionListVo> listOnSubmission(TaskCenterSubmissionListBo bo, PageQuery pageQuery) {
+        List<Long> projectIds = projectService.queryIdsOnSubmission(bo.getProjectCode(), bo.getProjectName());
+        if (projectIds.isEmpty()) {
+            return TableDataInfo.build();
+        }
+        List<Long> folderIds = folderService.selectIdsOnSubmission(bo.getCenterName(), projectIds);
+        LambdaQueryWrapper<Document> wrapper = buildSubmissionListWrapper(bo, folderIds);
+        IPage<Document> page = baseMapper.selectPage(pageQuery.build(), wrapper);
+        return TableDataInfo.build(page.convert(e -> {
+            TaskCenterSubmissionListVo vo = new TaskCenterSubmissionListVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setStatus(e.getStatus());
+            vo.setType(e.getType());
+            vo.setDocumentType(e.getPlanType());
+            vo.setSubmitterId(e.getSubmitterId());
+            vo.setDeadline(e.getSubmitDeadline());
+            vo.setSubmitTime(e.getSubmitTime());
+            vo.setCreateTime(e.getCreateTime());
+            return vo;
+        }));
+    }
+
+    @Override
+    public TableDataInfo<TaskCenterAuditListVo> listOnAudit(TaskCenterAuditListBo bo, PageQuery pageQuery) {
+        List<Long> projectIds = projectService.queryIdsOnSubmission(bo.getProjectCode(), bo.getProjectName());
+        if (projectIds.isEmpty()) {
+            return TableDataInfo.build();
+        }
+        List<Long> folderIds = folderService.selectIdsOnSubmission(bo.getCenterName(), projectIds);
+        LambdaQueryWrapper<Document> wrapper = buildAuditListWrapper(bo, folderIds);
+        IPage<Document> page = baseMapper.selectPage(pageQuery.build(), wrapper);
+        List<Long> ossIds = new ArrayList<>();
+        Map<Long, String> ossMap = new HashMap<>();
+        page.getRecords().forEach(e -> ossIds.add(e.getOssId()));
+        ossService.queryListByIds(ossIds).forEach(e -> ossMap.put(e.getOssId(), e.getUrl()));
+        return TableDataInfo.build(page.convert(e -> {
+            TaskCenterAuditListVo vo = new TaskCenterAuditListVo();
+            vo.setId(e.getId());
+            vo.setName(e.getName());
+            vo.setStatus(e.getStatus());
+            vo.setDeadline(e.getSubmitDeadline());
+            vo.setSubmitterId(e.getSubmitterId());
+            vo.setSubmitTime(e.getSubmitTime());
+            vo.setCreateTime(e.getCreateTime());
+            vo.setOssId(e.getOssId());
+            vo.setOssUrl(ossMap.get(e.getOssId()));
+            vo.setType(e.getType());
+            vo.setDocumentType(e.getPlanType());
+            return vo;
+        }));
+    }
+
+    private LambdaQueryWrapper<Document> buildAuditListWrapper(TaskCenterAuditListBo bo, List<Long> folderIds) {
+        return Wrappers.lambdaQuery(Document.class)
+            .like(StringUtils.isNotBlank(bo.getName()), Document::getName, bo.getName())
+            .eq(Document::getSubmitterId, LoginHelper.getUserId())
+            .in(!folderIds.isEmpty(), Document::getFolderId, folderIds)
+            .in(Document::getStatus, List.of(DocumentStatusConst.UN_AUDIT, DocumentStatusConst.UN_FILING))
+            .orderByDesc(Document::getId);
+    }
+
+    private LambdaQueryWrapper<Document> buildSubmissionListWrapper(TaskCenterSubmissionListBo bo, List<Long> folderIds) {
+        return Wrappers.lambdaQuery(Document.class)
+            .like(StringUtils.isNotBlank(bo.getName()), Document::getName, bo.getName())
+            .eq(bo.getStatus() != null, Document::getStatus, bo.getStatus())
+            .eq(Document::getSubmitterId, LoginHelper.getUserId())
+            .in(!folderIds.isEmpty(), Document::getFolderId, folderIds)
+            .in(Document::getStatus, List.of(DocumentStatusConst.UN_UPLOAD, DocumentStatusConst.AUDIT_REJECT))
+            .orderByDesc(Document::getId);
+    }
+
     private DocumentAuditLog buildLog(Document document, String type, DocumentAuditBo bo) {
         DocumentAuditLog log = new DocumentAuditLog();
         log.setDocumentId(document.getId());

+ 2 - 2
ruoyi-modules/yingpaipay-business/src/main/java/com/yingpaipay/business/service/impl/ProjectServiceImpl.java

@@ -371,13 +371,13 @@ public class ProjectServiceImpl implements IProjectService {
                 .filter(item -> item.getOssId() != null)
                 .filter(item -> item.getSubmitDeadline().before(item.getSubmitTime()))
                 .count();
-            long unsubmit = planDocuments.stream()
+            long notSubmit = 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.setSubmissionProgress(Double.valueOf(String.format("%.2f", (double) notSubmit / total * 100)));
             vo.setPdGpd(e.getPdGpd());
             vo.setPmGpm(e.getPmGpm());
             vo.setCtaGcta(e.getCtaGcta());