|
@@ -30,7 +30,6 @@ import org.codehaus.jettison.json.JSONException;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -559,17 +558,19 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
projectVO = changeApplicationType(projectVO);
|
|
|
return projectVO;
|
|
|
}).collect(Collectors.toList());
|
|
|
- List<CrowdProjectVO> myProject=new ArrayList<>();
|
|
|
- List<CrowdProjectVO> finishedProjects=new ArrayList<>();
|
|
|
- for(int i=0;i<myProejcts.size();i++){
|
|
|
- if(myProejcts.get(i).getStatus()<CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
- myProject.add(myProejcts.get(i));
|
|
|
- myCrowdDTO.setMyProjects(myProject);
|
|
|
- }else if(myProejcts.get(i).getStatus()>=CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
- finishedProjects.add(myProejcts.get(i));
|
|
|
- myCrowdDTO.setFinishedProjects(finishedProjects);
|
|
|
- }
|
|
|
- }
|
|
|
+ myCrowdDTO.setMyProjects(myProejcts);
|
|
|
+// List<CrowdProjectVO> myProject=new ArrayList<>();
|
|
|
+// List<CrowdProjectVO> finishedProjects=new ArrayList<>();
|
|
|
+// for(int i=0;i<myProejcts.size();i++){
|
|
|
+// if(myProejcts.get(i).getStatus()<CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
+// myProject.add(myProejcts.get(i));
|
|
|
+// myCrowdDTO.setMyProjects(myProject);
|
|
|
+// }else if(myProejcts.get(i).getStatus()>=CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
+// finishedProjects.add(myProejcts.get(i));
|
|
|
+// myCrowdDTO.setFinishedProjects(finishedProjects);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
//对于区域管理员crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED
|
|
|
if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))) {
|
|
|
List<CrowdTestProjectPO> crowdTestProjectPOList = projectDao.findByRegionalManagerIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
|
|
@@ -611,16 +612,17 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
myCrowdDTO.setMyProjectNoticeCount(myProejcts.stream().filter(CrowdProjectVO::getNeedHandle).count());
|
|
|
myCrowdDTO.setProcessProjectNoticeCount(myCrowdDTO.getHandlingProjects() == null ? 0 : myCrowdDTO
|
|
|
.getHandlingProjects().stream().filter(CrowdProjectVO::getNeedHandle).count());
|
|
|
- if (user.getRoleList().stream().noneMatch(role -> role.getName().equals("evaluationAgency")))
|
|
|
+ if (!AuthCheckServiceImpl.isAgency(user))
|
|
|
return myCrowdDTO;
|
|
|
List<CrowdTestTask> allTaskOfAgency = null;
|
|
|
List<CrowdTaskVO> unfinishedTasks = null;
|
|
|
List<CrowdTaskVO> finishedTasks = null;
|
|
|
- if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("evaluationAgency"))) {
|
|
|
+
|
|
|
+ // 测评机构或者测试人员
|
|
|
+ if (AuthCheckServiceImpl.isAgency(user)) {
|
|
|
List<TaskToUserPO> taskToUserPOS = taskToUserDao.findByUserId(user.getId());
|
|
|
if (taskToUserPOS != null && taskToUserPOS.size() > 0) {
|
|
|
- allTaskOfAgency = taskToUserPOS.stream().sorted(Comparator.comparing(TaskToUserPO::getAcceptTime))
|
|
|
- .map(taskToUserPO -> {
|
|
|
+ allTaskOfAgency = taskToUserPOS.stream().map(taskToUserPO -> {
|
|
|
CrowdTestTaskPO crowdTestTaskPO = taskDao.findByCodeAndIsDeleted(taskToUserPO.getTaskCode(), DeletedStatus.isNotDeleted);
|
|
|
if (crowdTestTaskPO != null) {
|
|
|
CrowdTestTask task = new CrowdTestTask();
|
|
@@ -634,10 +636,12 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}).collect(Collectors.toList());
|
|
|
unfinishedTasks = allTaskOfAgency.stream()
|
|
|
.filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
|
|
|
+ .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
|
|
|
.map(CrowdTaskVO::new).collect(Collectors.toList());
|
|
|
|
|
|
finishedTasks = allTaskOfAgency.stream()
|
|
|
.filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
|
|
|
+ .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
|
|
|
.map(CrowdTaskVO::new).collect(Collectors.toList());
|
|
|
}
|
|
|
}
|
|
@@ -826,10 +830,9 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
if (!report.isPresent())
|
|
|
throw new CrowdTestReportNotExistException();
|
|
|
reportDetailsDTO.setCrowdReportVO(new CrowdReportVO(report.get()));
|
|
|
- if (task.get().getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
|
|
|
+ if (task.get().getStatus() < CrowdTestTaskStatus.HAS_FINISHED && taskToUserOptional.get().getIsCommitted() == 0)
|
|
|
reportDetailsDTO.setOperational(true);
|
|
|
} else {
|
|
|
- // 区域管理员
|
|
|
throw new HttpBadRequestException("当前用户无法查看此报告!");
|
|
|
}
|
|
|
|
|
@@ -844,16 +847,15 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
throw new CrowdTestReportNotExistException();
|
|
|
ReportDetailsDTO reportDetailsDTO = new ReportDetailsDTO();
|
|
|
/*
|
|
|
- 如果该项目是已经完成的那么报告是不能修改的这边我在Vo上面加了一个属性Updated
|
|
|
+ 如果该项目是已经完成或者已提交的那么报告是不能修改的这边我在Vo上面加了一个属性Updated
|
|
|
*/
|
|
|
- if (project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED) {
|
|
|
+ if (project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED || project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED) {
|
|
|
report.setUpdated(false);
|
|
|
}
|
|
|
reportDetailsDTO.setCrowdReportVO(new CrowdReportVO(report));
|
|
|
|
|
|
- if (project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED && project.getRegionalManagerId().equals(userId)) {
|
|
|
+ if (project.getStatus() < CrowdTestProjectStatus.HAS_COMMITED && project.getRegionalManagerId().equals(userId)) {
|
|
|
reportDetailsDTO.setOperational(true);
|
|
|
-
|
|
|
}
|
|
|
return reportDetailsDTO;
|
|
|
}
|
|
@@ -889,7 +891,8 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
if (userId == null) {
|
|
|
taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, task.get(), null));
|
|
|
} else {
|
|
|
- taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, task.get(), userRepo.getByID(userId)));
|
|
|
+ User user = userRepo.getByID(userId);
|
|
|
+ taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, task.get(), user));
|
|
|
// 区域管理员视图
|
|
|
List<TaskToUserVO> taskToUserVOS = new ArrayList<>();
|
|
|
if (userId.equals(project.getRegionalManagerId())) {
|
|
@@ -906,7 +909,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
|
// 测评机构视图
|
|
|
- else if (userRepo.getByID(userId).getRoleList().stream().anyMatch(role -> role.getName().equals(RoleType.AGENCY.getName()))) {
|
|
|
+ else if (AuthCheckServiceImpl.isAgency(user)) {
|
|
|
// Optional<TaskToUser> taskToUserOptional = task.get().getAcceptedUserList().stream().filter(taskToUser -> taskToUser.getUserId().equals(userId)).findFirst();
|
|
|
// if(!taskToUserOptional.isPresent())
|
|
|
// throw new HttpBadRequestException("当前用户没有接收此任务!");
|
|
@@ -1064,6 +1067,9 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
List<CrowdTestProjectVO> authingList = new ArrayList<>();
|
|
|
authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO ->{
|
|
|
CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
+// if(crowdTestProject.getDeadTime().getTime() < System.currentTimeMillis()){
|
|
|
+//
|
|
|
+// }
|
|
|
BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
|
|
|
themeStatusService.updateStatus(crowdTestProject);
|
|
|
return new CrowdTestProjectVO(crowdTestProject);
|
|
@@ -1158,7 +1164,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
@Override
|
|
|
public List<CrowdTaskVO> crowdTaskVos(){
|
|
|
List<CrowdTaskVO> authingList = new ArrayList<>();
|
|
|
- authingList.addAll(taskDao.findindexTask().stream().map(crowdTestTaskPO -> {
|
|
|
+ authingList.addAll(taskDao.findindexTask().stream().filter(crowdTestTaskPO -> crowdTestTaskPO.getDeadTime().getTime() > System.currentTimeMillis()).map(crowdTestTaskPO -> {
|
|
|
//根据code值查询出来该任务的type
|
|
|
Optional<TestTypePO> serviceType = testTypeDao.findByCode(crowdTestTaskPO.getType());
|
|
|
CrowdTestTask crowdTestTask = new CrowdTestTask();
|
|
@@ -1171,8 +1177,8 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
|
|
|
@Override
|
|
|
public List<CrowdTaskVO> crowdTaskVosWaitingAccept() {
|
|
|
- return taskDao.findAll().stream().filter(crowdTestTaskPO -> crowdTestTaskPO.getStatus() == CrowdTestTaskStatus.HAS_RELEASED
|
|
|
- && crowdTestTaskPO.getDeadTime().getTime() > System.currentTimeMillis()).map(crowdTestTaskPO -> {
|
|
|
+ List<CrowdTestTaskPO> canAcceptTask = taskDao.findCanAcceptTask();
|
|
|
+ List<CrowdTaskVO> taskVOList = canAcceptTask.stream().filter(crowdTestTaskPO -> crowdTestTaskPO.getDeadTime().getTime() > System.currentTimeMillis()).map(crowdTestTaskPO -> {
|
|
|
//根据code值查询出来该任务的type
|
|
|
Optional<TestTypePO> serviceType = testTypeDao.findByCode(crowdTestTaskPO.getType());
|
|
|
CrowdTestTask crowdTestTask = new CrowdTestTask();
|
|
@@ -1180,6 +1186,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
crowdTestTask.setType(serviceType.get().getName());
|
|
|
return new CrowdTaskVO(crowdTestTask);
|
|
|
}).collect(Collectors.toList());
|
|
|
+ return taskVOList;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1576,11 +1583,6 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
return taskOperationControl;
|
|
|
}
|
|
|
|
|
|
- //发包机构和发包人员视角
|
|
|
- if (AuthCheckServiceImpl.isPart(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
- return taskOperationControl;
|
|
|
- }
|
|
|
-
|
|
|
//区域管理员或系统管理员视角
|
|
|
if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))
|
|
|
|| (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
|
|
@@ -1622,13 +1624,18 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
} else {
|
|
|
// 未接收用户
|
|
|
- taskOperationControl.setReceive(true);
|
|
|
- if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
- // 定向的
|
|
|
- if (task.getDistributionType() == 0) {
|
|
|
- taskOperationControl.setReject(true);
|
|
|
+ if(task.getFullStatus() == 1){
|
|
|
+ taskOperationControl.noAll();
|
|
|
+ }else{
|
|
|
+ taskOperationControl.setReceive(true);
|
|
|
+ if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
+ // 定向的
|
|
|
+ if (task.getDistributionType() == 0) {
|
|
|
+ taskOperationControl.setReject(true);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
} else if (task.getDistributionType() == 2) {
|
|
@@ -1641,6 +1648,10 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //发包机构和发包人员视角
|
|
|
+ else if (AuthCheckServiceImpl.isPart(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
+ return taskOperationControl;
|
|
|
+ }
|
|
|
|
|
|
System.out.println(taskOperationControl);
|
|
|
return taskOperationControl;
|