Explorar el Código

增加对测评机构接包数量的统计

guo00guo hace 5 años
padre
commit
271de8ff73

+ 11 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/EvaluationAgencyRepo.java

@@ -21,6 +21,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -50,6 +51,8 @@ public class EvaluationAgencyRepo implements IEvaluationAgencyRepo {
         }
     }
 
+
+
     @Override
     public EvaluationAgency findAgencyByUserId(Long userId){
         EvaluationAgencyPO evaluationAgencyPO = evaluationAgencyDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted);
@@ -57,6 +60,14 @@ public class EvaluationAgencyRepo implements IEvaluationAgencyRepo {
     }
 
     @Override
+    public List<EvaluationAgency> findAll() {
+        List<EvaluationAgency> evaluationAgencyList = new ArrayList<>();
+        Iterable<EvaluationAgencyPO> agencyPOS = evaluationAgencyDao.findAll();
+        agencyPOS.forEach(agencyPO -> evaluationAgencyList.add(Converter.convert(EvaluationAgency.class, agencyPO)));
+        return evaluationAgencyList;
+    }
+
+    @Override
     public EvaluationAgencyResource findById(Long id){
         Optional<EvaluationAgencyResourcePO> evaluationAgencyResourcePOOptional = agencyResourceDao.findById(id);
         if(!evaluationAgencyResourcePOOptional.isPresent()){

+ 2 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/IEvaluationAgencyRepo.java

@@ -18,6 +18,8 @@ public interface IEvaluationAgencyRepo {
 
     EvaluationAgency findAgencyByUserId(Long userId);
 
+    List<EvaluationAgency> findAll();
+
     EvaluationAgencyResource findById(Long id);
 
     List<EvaluationAgencyResource> findByEvaluationAgencyId(Long evaluationAgencyId);

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 5 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/MyCrowdDTO.java

@@ -24,4 +24,9 @@ public class MyCrowdDTO implements Serializable {
     private Long myProjectNoticeCount;
     private Long processProjectNoticeCount;
     private Long acceptableProjectNoticeCount;
+    private Long myProjectCount;
+    private Long handlingProjectCount;
+    private Long acceptableProjectCount;
+    private Long unfinishedTaskCount;
+    private Long finishedTaskCount;
 }

+ 9 - 3
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -565,7 +565,7 @@ public class WebMediatorImpl implements ViewMediator {
         User user = userRepo.getByID(userId);
         //我的众测 - 项目相关信息
         //获取我创建的项目列表
-        List<CrowdProjectVO> myProejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
+        List<CrowdProjectVO> myProjects = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
                 .stream().map(crowdTestProjectPO -> {
                     CrowdTestProject project = new CrowdTestProject();
                     BeanUtils.copyProperties(crowdTestProjectPO, project);
@@ -581,7 +581,8 @@ public class WebMediatorImpl implements ViewMediator {
                     }
                     return projectVO;
                 }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdProjectVO::getCreateTime).thenComparing(CrowdProjectVO::getStatus).reversed()).collect(Collectors.toList());
-        myCrowdDTO.setMyProjects(myProejcts);
+        myCrowdDTO.setMyProjects(myProjects);
+        myCrowdDTO.setMyProjectCount((long) (myCrowdDTO.getMyProjects() == null ? 0 : myProjects.size()));
 
         //对于区域管理员crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED
         if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))) {
@@ -625,12 +626,15 @@ public class WebMediatorImpl implements ViewMediator {
                         return projectVO;
                     }).collect(Collectors.toList()));
             myCrowdDTO.setAcceptableProjectNoticeCount(Long.parseLong("" + acceptableProject.size()));
+            myCrowdDTO.setAcceptableProjectCount((long) (myCrowdDTO.getAcceptableProjects() == null ? 0 : myCrowdDTO.getAcceptableProjects().size()));
         }
         UserVO userVO = new UserVO(user);
         myCrowdDTO.setUserVO(userVO);
-        myCrowdDTO.setMyProjectNoticeCount(myProejcts.stream().filter(CrowdProjectVO::getNeedHandle).count());
+        myCrowdDTO.setMyProjectNoticeCount(myProjects.stream().filter(CrowdProjectVO::getNeedHandle).count());
         myCrowdDTO.setProcessProjectNoticeCount(myCrowdDTO.getHandlingProjects() == null ? 0 : myCrowdDTO
                 .getHandlingProjects().stream().filter(CrowdProjectVO::getNeedHandle).count());
+        myCrowdDTO.setHandlingProjectCount((long) (myCrowdDTO.getHandlingProjects() == null ? 0 : myCrowdDTO.getHandlingProjects().size()));
+
         if (!AuthCheckServiceImpl.isAgency(user))
             return myCrowdDTO;
         List<CrowdTestTask> allTaskOfAgency = null;
@@ -670,6 +674,8 @@ public class WebMediatorImpl implements ViewMediator {
         }
         myCrowdDTO.setFinishedTasks(finishedTasks);
         myCrowdDTO.setUnfinishedTasks(unfinishedTasks);
+        myCrowdDTO.setFinishedTaskCount((long) (myCrowdDTO.getFinishedTasks() == null ? 0 : myCrowdDTO.getFinishedTasks().size()));
+        myCrowdDTO.setUnfinishedTaskCount((long) (myCrowdDTO.getUnfinishedTasks() == null ? 0 : myCrowdDTO.getUnfinishedTasks().size()));
         return myCrowdDTO;
     }
 

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -54,4 +54,6 @@ public interface CommonService {
     Boolean checkAcceptTask(Long userId);
 
     List<HashMap<String, Long>> getStatisticsCount();
+
+    List<Map.Entry<String, Long>> getAgencyProjectCount();
 }

+ 31 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -2,12 +2,10 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.dao.ResourceTypeDao;
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
-import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.HaveNotAgencyAuthException;
 import com.mooctest.crowd.domain.exception.HaveNotPartAuthException;
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.domain.model.ResourceTypePO;
 import com.mooctest.crowd.domain.repository.*;
 import com.mooctest.crowd.site.constants.CommonConstant;
@@ -283,6 +281,35 @@ public class CommonServiceImpl implements CommonService {
         return statisticsList;
     }
 
+    @Override
+    public List<Map.Entry<String, Long>> getAgencyProjectCount() {
+        HashMap<String, Long> agencyProjectCountMap = new HashMap<>();
+        List<EvaluationAgency> evaluationAgencyList = agencyRepo.findAll();
+        for (EvaluationAgency evaluationAgency : evaluationAgencyList){
+            //获取我创建的项目列表
+            List<CrowdTestProjectPO> myProjects = projectDao.findByUserIdAndIsDeleted(evaluationAgency.getUserId(), DeletedStatus.isNotDeleted);
+            agencyProjectCountMap.put(evaluationAgency.getEvaluationAgencyName(), (long) myProjects.size());
+        }
+
+        //////借助list实现hashMap排序//////
+        //注意 ArrayList<>() 括号里要传入map.entrySet()
+        List<Map.Entry<String, Long>> resultList = new ArrayList<>(agencyProjectCountMap.entrySet());
+        Collections.sort(resultList, new Comparator<Map.Entry<String, Long>>()
+        {
+            @Override
+            public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2)
+            {
+                //按照value值,重小到大排序
+//                return o1.getValue() - o2.getValue();
+                //按照value值,从大到小排序
+                return (int) (o2.getValue() - o1.getValue());
+                //按照value值,用compareTo()方法默认是从小到大排序
+//                return o1.getValue().compareTo(o2.getValue());
+            }
+        });
+        return resultList.stream().filter(result -> !result.getValue().equals(0L)).collect(Collectors.toList());
+    }
+
     Pageable getPageable(SearchConditionVO searchConditionVO) {
         int activePage = searchConditionVO.getActivePage() == 0 ? 1 : searchConditionVO.getActivePage();
         Sort sort = new Sort(Sort.Direction.DESC, "id");

+ 2 - 2
site/src/main/resources/application.yml

@@ -112,8 +112,8 @@ spring:
     database: 6
 user:
   service:
-    baseUrl: http://127.0.0.1:8081
-#    baseUrl: http://59.42.10.53:8081
+#    baseUrl: http://127.0.0.1:8081
+    baseUrl: http://59.42.10.53:8081
 
 website:
   domain: mooctest.net

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio