|
@@ -15,25 +15,27 @@ import java.util.Optional;
|
|
|
*/
|
|
|
@Data
|
|
|
public class CrowdTestProject {
|
|
|
-
|
|
|
private Long id;
|
|
|
private String name;
|
|
|
private String code;
|
|
|
private Long userId;
|
|
|
private Long regionalManagerId;
|
|
|
private Long projectDistributionTypeId;
|
|
|
- private String platform;
|
|
|
+ private String fieldType;
|
|
|
+ private String applicationType;
|
|
|
+ private String type;
|
|
|
private String linkMan;
|
|
|
private String linkManMobile;
|
|
|
- private String type;
|
|
|
private String description;
|
|
|
private String projectFile;
|
|
|
private String requirementFile;
|
|
|
private String distributionProvince;
|
|
|
private String distributionCity;
|
|
|
+ private String valuationStandard;
|
|
|
private Double quotedPrice;
|
|
|
private Double fixedPrice;
|
|
|
private Double restPrice;
|
|
|
+ private String entrustUnit;
|
|
|
private int status;
|
|
|
private Timestamp deadTime;
|
|
|
private Timestamp endTime;
|
|
@@ -44,44 +46,20 @@ public class CrowdTestProject {
|
|
|
private List<CrowdTestTask> crowdTestTaskList;
|
|
|
private CrowdTestReport crowdTestReportForProject;
|
|
|
|
|
|
- @Override
|
|
|
- public String toString() {
|
|
|
- return "CrowdTestProject{" +
|
|
|
- "id=" + id +
|
|
|
- ", name='" + name + '\'' +
|
|
|
- ", code='" + code + '\'' +
|
|
|
- ", userId=" + userId +
|
|
|
- ", regionalManagerId=" + regionalManagerId +
|
|
|
- ", projectDistributionTypeId=" + projectDistributionTypeId +
|
|
|
- ", platform='" + platform + '\'' +
|
|
|
- ", linkMan='" + linkMan + '\'' +
|
|
|
- ", linkManMobile='" + linkManMobile + '\'' +
|
|
|
- ", type='" + type + '\'' +
|
|
|
- ", description='" + description + '\'' +
|
|
|
- ", projectFile='" + projectFile + '\'' +
|
|
|
- ", requirementFile='" + requirementFile + '\'' +
|
|
|
- ", distributionProvince='" + distributionProvince + '\'' +
|
|
|
- ", distributionCity='" + distributionCity + '\'' +
|
|
|
- ", quotedPrice=" + quotedPrice +
|
|
|
- ", fixedPrice=" + fixedPrice +
|
|
|
- ", status=" + status +
|
|
|
- ", deadTime=" + deadTime +
|
|
|
- ", endTime=" + endTime +
|
|
|
- ", isDeleted=" + isDeleted +
|
|
|
- ", createTime=" + createTime +
|
|
|
- ", crowdTestTaskList=" + crowdTestTaskList +
|
|
|
- ", crowdTestReportForProject=" + crowdTestReportForProject +
|
|
|
- '}';
|
|
|
- }
|
|
|
+// public CrowdTestProject wrapperCrowdTestProjectPO(CrowdTestProjectPO crowdTestProjectPO){
|
|
|
+// CrowdTestProject crowdTestProject = Converter.convert(CrowdTestProject.class, crowdTestProjectPO);
|
|
|
+// return crowdTestProject;
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* 更新项目信息
|
|
|
+ *
|
|
|
* @param crowdTestProjectModify
|
|
|
* @return
|
|
|
*/
|
|
|
- public CrowdTestProject updateCrowdTestProject( CrowdTestProject crowdTestProjectModify){
|
|
|
+ public CrowdTestProject updateCrowdTestProject(CrowdTestProject crowdTestProjectModify) {
|
|
|
Gson gson = new Gson();
|
|
|
- return gson.fromJson(gson.toJson(crowdTestProjectModify),CrowdTestProject.class);
|
|
|
+ return gson.fromJson(gson.toJson(crowdTestProjectModify), CrowdTestProject.class);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -228,6 +206,7 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 删除项目报告(区域管理员)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
// public CrowdTestProject removeCrowdTestProjectReport(String crowdTestProjectReportCode,User user) {
|
|
@@ -252,17 +231,16 @@ public class CrowdTestProject {
|
|
|
// }
|
|
|
// return this;
|
|
|
// }
|
|
|
-
|
|
|
- public void addTask(CrowdTestTask task){
|
|
|
- if (!(this.getStatus() >= CrowdTestProjectStatus.HAS_RECEIVED || this.getStatus()<=CrowdTestTaskStatus.HAS_COMMITED))
|
|
|
+ public void addTask(CrowdTestTask task) {
|
|
|
+ if (!(this.getStatus() >= CrowdTestProjectStatus.HAS_RECEIVED || this.getStatus() <= CrowdTestTaskStatus.HAS_COMMITED))
|
|
|
throw new BaseException("当前阶段不允许创建新任务");
|
|
|
- if (this.getRestPrice() < task.getQuotedPrice()){
|
|
|
+ if (this.getRestPrice() < task.getQuotedPrice()) {
|
|
|
throw new BaseException("任务的报价不能超过项目的剩余价格,项目的剩余价格为:" + this.getRestPrice());
|
|
|
}
|
|
|
- if (this.getDeadTime().getTime() < task.getDeadTime().getTime()){
|
|
|
+ if (this.getDeadTime().getTime() < task.getDeadTime().getTime()) {
|
|
|
throw new BaseException("任务截止时间不能超过项目的截止时间,项目的截止时间为:" + this.getDeadTime());
|
|
|
}
|
|
|
- if (task.getDeadTime().getTime() < System.currentTimeMillis()){
|
|
|
+ if (task.getDeadTime().getTime() < System.currentTimeMillis()) {
|
|
|
throw new BaseException("任务截止时间不能小于当前时间");
|
|
|
}
|
|
|
this.setRestPrice(this.getRestPrice() - task.getQuotedPrice());
|
|
@@ -275,24 +253,24 @@ public class CrowdTestProject {
|
|
|
this.getCrowdTestTaskList().remove(task);
|
|
|
}
|
|
|
|
|
|
- public CrowdTestTask getTask(String taskCode){
|
|
|
+ public CrowdTestTask getTask(String taskCode) {
|
|
|
Optional<CrowdTestTask> testTask = this.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
|
|
|
if (!testTask.isPresent())
|
|
|
throw new CrowdTestTaskNotExistException();
|
|
|
return testTask.get();
|
|
|
}
|
|
|
|
|
|
- public CrowdTestReport getTaskReport(String taskCode, String reportCode){
|
|
|
+ public CrowdTestReport getTaskReport(String taskCode, String reportCode) {
|
|
|
List<TaskToUser> acceptedUserList = getTask(taskCode).getAcceptedUserList();
|
|
|
boolean flag = false;
|
|
|
- for(TaskToUser taskToUser : acceptedUserList){
|
|
|
+ for (TaskToUser taskToUser : acceptedUserList) {
|
|
|
Optional<CrowdTestReport> report = taskToUser.getCrowdTestReportList().stream().filter(crowdTestReport -> crowdTestReport.getCode().equals(reportCode)
|
|
|
&& crowdTestReport.getUserId().equals(userId)).findFirst();
|
|
|
- if (report.isPresent()){
|
|
|
+ if (report.isPresent()) {
|
|
|
return report.get();
|
|
|
}
|
|
|
}
|
|
|
- if(!flag){
|
|
|
+ if (!flag) {
|
|
|
throw new CrowdTestReportNotExistException();
|
|
|
}
|
|
|
return null;
|
|
@@ -300,6 +278,7 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 创建测试项目(普通用户)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject createCrowdTestProject(User user) {
|
|
@@ -318,22 +297,23 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 发布项目(普通用户)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject releaseCrowdTestProject(User user) {
|
|
|
//判断用户是否认证
|
|
|
- if(user.getPersonalAuthentication() == null && user.getEnterpriseAuthentication() == null && user.getRegionalManager() == null && user.getEvaluationAgency() == null){
|
|
|
+ if (user.getPersonalAuthentication() == null && user.getEnterpriseAuthentication() == null && user.getRegionalManager() == null && user.getEvaluationAgency() == null) {
|
|
|
throw new CrowdTestProjectException("当前用户未进行认证,无权限对项目操作");
|
|
|
}
|
|
|
//判断用户是否为项目发起者
|
|
|
- if(!this.getUserId().equals(user.getId())){
|
|
|
+ if (!this.getUserId().equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户无权限发布此项目");
|
|
|
}
|
|
|
|
|
|
//判断项目状态
|
|
|
- if(this.status != (CrowdTestProjectStatus.HAS_RELEASED-1)){
|
|
|
- throw new CrowdTestProjectException("当前项目状态不能被发布,当前状态为:"+this.getStatus());
|
|
|
- }else{
|
|
|
+ if (this.status != (CrowdTestProjectStatus.HAS_RELEASED - 1)) {
|
|
|
+ throw new CrowdTestProjectException("当前项目状态不能被发布,当前状态为:" + this.getStatus());
|
|
|
+ } else {
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
|
|
|
}
|
|
|
return this;
|
|
@@ -341,54 +321,55 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 接收项目(区域管理员)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject receiveProject(User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限接收项目");
|
|
|
}
|
|
|
|
|
|
//判断项目状态
|
|
|
- if(this.getStatus() != CrowdTestProjectStatus.HAS_RELEASED){
|
|
|
- throw new CrowdTestProjectException("项目不能被接收,项目已被接收" );
|
|
|
- }else{
|
|
|
+ if (this.getStatus() != CrowdTestProjectStatus.HAS_RELEASED) {
|
|
|
+ throw new CrowdTestProjectException("项目不能被接收,项目已被接收");
|
|
|
+ } else {
|
|
|
//项目是定向发布
|
|
|
- if(this.getProjectDistributionTypeId() == 0){
|
|
|
- if(!this.getRegionalManagerId().equals(user.getId())){
|
|
|
+ if (this.getProjectDistributionTypeId() == 0) {
|
|
|
+ if (!this.getRegionalManagerId().equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限接收此定向发布的项目!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
|
|
|
}
|
|
|
}
|
|
|
//项目是区域发布
|
|
|
- else if(this.getProjectDistributionTypeId() == 1){
|
|
|
+ else if (this.getProjectDistributionTypeId() == 1) {
|
|
|
List<RegionalManagerToRegional> regionalList = regionalManager.getRegionalList();
|
|
|
boolean isValidCity = false;
|
|
|
//判断管理员管辖的区域是否符合要求
|
|
|
- for(RegionalManagerToRegional regional : regionalList){
|
|
|
+ for (RegionalManagerToRegional regional : regionalList) {
|
|
|
//判断市是否相同
|
|
|
- if(this.getDistributionCity().equals(regional.getCity())){
|
|
|
+ if (this.getDistributionCity().equals(regional.getCity())) {
|
|
|
isValidCity = true;
|
|
|
}
|
|
|
//如果市区是"*",则判断省份是否相同
|
|
|
- if(regional.getCity().equals("*")){
|
|
|
- if(this.getDistributionProvince().equals(regional.getProvince())){
|
|
|
+ if (regional.getCity().equals("*")) {
|
|
|
+ if (this.getDistributionProvince().equals(regional.getProvince())) {
|
|
|
isValidCity = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(!isValidCity){
|
|
|
+ if (!isValidCity) {
|
|
|
throw new CrowdTestProjectException("项目发布的区域不符合当前区域管理员所管辖的区域!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.setRegionalManagerId(user.getId());
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
|
|
|
}
|
|
|
}
|
|
|
//项目是广场发布
|
|
|
- else{
|
|
|
+ else {
|
|
|
this.setRegionalManagerId(user.getId());
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
|
|
|
}
|
|
@@ -398,24 +379,25 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 创建测试任务(区域管理员)
|
|
|
+ *
|
|
|
* @param crowdTestTask
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject createCrowdTestTask(CrowdTestTask crowdTestTask, User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限创建测试任务");
|
|
|
}
|
|
|
|
|
|
//判断是否是当前项目的区域管理员
|
|
|
- if(!this.getRegionalManagerId().equals(user.getId())){
|
|
|
+ if (!this.getRegionalManagerId().equals(user.getId())) {
|
|
|
throw new CrowdTestTaskException("当前用户没有权限为此项目创建测试任务!");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//判断项目状态
|
|
|
- if(this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED-1)){
|
|
|
+ if (this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)) {
|
|
|
throw new CrowdTestProjectException("当前项目状态不能创建任务,项目状态为: " + this.getStatus());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
|
|
|
// //增加设置任务code -------需要加上
|
|
|
// String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-"+ command.getType());
|
|
@@ -432,28 +414,29 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 发布任务(区域管理员)
|
|
|
+ *
|
|
|
* @param crowdTestTaskCode
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject releaseCrowdTestTask(String crowdTestTaskCode, User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限发布测试任务");
|
|
|
}
|
|
|
|
|
|
//判断是否是当前项目的区域管理员
|
|
|
- if(!this.regionalManagerId.equals(user.getId())){
|
|
|
+ if (!this.regionalManagerId.equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限发布的当前项目下的任务!");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
|
|
|
List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
//发布任务时修改任务状态
|
|
|
- for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
- if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
|
|
|
- if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED-1)){
|
|
|
- throw new CrowdTestTaskException("当前任务不能被发布,当前任务状态为:"+crowdTestTask.getStatus());
|
|
|
- }else{
|
|
|
+ for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
|
|
|
+ if (crowdTestTaskCode.equals(crowdTestTask.getCode())) {
|
|
|
+ if (crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED - 1)) {
|
|
|
+ throw new CrowdTestTaskException("当前任务不能被发布,当前任务状态为:" + crowdTestTask.getStatus());
|
|
|
+ } else {
|
|
|
crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
|
|
|
}
|
|
|
}
|
|
@@ -466,12 +449,13 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 接收任务(测评机构)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject receiveTask(String crowdTestTaskCode, User user) {
|
|
|
//判断是否为测评机构
|
|
|
EvaluationAgency evaluationAgency = user.getEvaluationAgency();
|
|
|
- if(evaluationAgency == null){
|
|
|
+ if (evaluationAgency == null) {
|
|
|
throw new UnauthorizedException("当前用户不是测评机构,没有权限接收任务");
|
|
|
}
|
|
|
Optional<CrowdTestTask> taskOp = this.getCrowdTestTaskList().stream().filter(task -> task.getCode().equals(crowdTestTaskCode)).findFirst();
|
|
@@ -480,8 +464,8 @@ public class CrowdTestProject {
|
|
|
throw new CrowdTestTaskNotExistException();
|
|
|
CrowdTestTask task = taskOp.get();
|
|
|
//任务当前状态
|
|
|
- if (task.getStatus()!=CrowdTestTaskStatus.HAS_RELEASED)
|
|
|
- throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+task.getStatus());
|
|
|
+ if (task.getStatus() != CrowdTestTaskStatus.HAS_RELEASED)
|
|
|
+ throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:" + task.getStatus());
|
|
|
//定向发布类型
|
|
|
if (task.getDistributionType() == 0) {
|
|
|
if (!task.getEvaluationAgencyId().equals(user.getId()))
|
|
@@ -493,7 +477,6 @@ public class CrowdTestProject {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 创建测试报告(测评机构)
|
|
|
* @param crowdTestTaskCode
|
|
@@ -573,32 +556,33 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 结束任务(区域管理员)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject finishCrowdTestTask(String crowdTestTaskCode, User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限结束测试任务");
|
|
|
}
|
|
|
|
|
|
//判断是否是当前项目的区域管理员
|
|
|
- if(!this.regionalManagerId.equals(user.getId())){
|
|
|
+ if (!this.regionalManagerId.equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限结束当前项目下的任务!");
|
|
|
}
|
|
|
|
|
|
//项目状态判断
|
|
|
- if(this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED-1)){
|
|
|
+ if (this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)) {
|
|
|
throw new CrowdTestProjectException("当前项目状态不可结束任务!");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
|
|
|
List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
|
|
|
- for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
- if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
|
|
|
- if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED-1)){
|
|
|
- throw new CrowdTestTaskException("当前任务不能被结束,任务状态为:"+crowdTestTask.getStatus());
|
|
|
- }else{
|
|
|
+ for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
|
|
|
+ if (crowdTestTaskCode.equals(crowdTestTask.getCode())) {
|
|
|
+ if (crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED - 1)) {
|
|
|
+ throw new CrowdTestTaskException("当前任务不能被结束,任务状态为:" + crowdTestTask.getStatus());
|
|
|
+ } else {
|
|
|
//结束任务时修改任务状态为"已结束"
|
|
|
crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
|
|
|
crowdTestTask.setEndTime(new Timestamp(System.currentTimeMillis()));
|
|
@@ -616,24 +600,25 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 创建项目报告(区域管理员)
|
|
|
+ *
|
|
|
* @param crowdTestReport
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject createCrowdTestProjectReport(CrowdTestReport crowdTestReport, User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限创建项目报告");
|
|
|
}
|
|
|
|
|
|
//判断是否是当前项目的区域管理员
|
|
|
- if(!this.regionalManagerId.equals(user.getId())){
|
|
|
+ if (!this.regionalManagerId.equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限创建项目报告!");
|
|
|
}
|
|
|
//项目状态判断
|
|
|
- if(this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED-1)){
|
|
|
- throw new CrowdTestProjectException("当前项目状态不可创建项目报告!状态为:"+this.getStatus());
|
|
|
- }else{
|
|
|
+ if (this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)) {
|
|
|
+ throw new CrowdTestProjectException("当前项目状态不可创建项目报告!状态为:" + this.getStatus());
|
|
|
+ } else {
|
|
|
crowdTestReport.setScope(0);
|
|
|
crowdTestReport.setDependencyCode(this.getCode());
|
|
|
this.setCrowdTestReportForProject(crowdTestReport);
|
|
@@ -643,38 +628,39 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 提交项目(区域管理员)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject commitCrowdTestProject(User user) {
|
|
|
//判断是否为区域管理员
|
|
|
RegionalManager regionalManager = user.getRegionalManager();
|
|
|
- if(regionalManager == null){
|
|
|
+ if (regionalManager == null) {
|
|
|
throw new UserNotExistException("当前用户不是区域管理员,没有权限提交项目");
|
|
|
}
|
|
|
|
|
|
//判断是否是当前项目的区域管理员
|
|
|
- if(!this.regionalManagerId.equals(user.getId())){
|
|
|
+ if (!this.regionalManagerId.equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限操作此项目!");
|
|
|
}
|
|
|
|
|
|
//项目状态判断
|
|
|
- if(this.getStatus() != CrowdTestProjectStatus.HAS_RECEIVED){
|
|
|
- throw new CrowdTestProjectException("当前项目状态不可提交项目!状态为:"+this.getStatus());
|
|
|
+ if (this.getStatus() != CrowdTestProjectStatus.HAS_RECEIVED) {
|
|
|
+ throw new CrowdTestProjectException("当前项目状态不可提交项目!状态为:" + this.getStatus());
|
|
|
}
|
|
|
|
|
|
//判断项目下是否有任务
|
|
|
- if(this.getCrowdTestTaskList()==null || this.getCrowdTestTaskList().size() < 1){
|
|
|
+ if (this.getCrowdTestTaskList() == null || this.getCrowdTestTaskList().size() < 1) {
|
|
|
throw new CrowdTestProjectException("还未创建任务,项目不能被提交");
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//结束项目时查看是否已结束任务
|
|
|
- if(this.getCrowdTestTaskList().stream().filter(task -> task.getStatus()!=CrowdTestTaskStatus.HAS_REJECTED)
|
|
|
+ if (this.getCrowdTestTaskList().stream().filter(task -> task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED)
|
|
|
.filter(task -> task.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT)
|
|
|
- .anyMatch(task -> task.getStatus()!=CrowdTestTaskStatus.HAS_FINISHED)){
|
|
|
+ .anyMatch(task -> task.getStatus() != CrowdTestTaskStatus.HAS_FINISHED)) {
|
|
|
throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
|
|
|
}
|
|
|
}
|
|
|
//判断项目下是否有项目报告
|
|
|
- if(this.getCrowdTestReportForProject() == null){
|
|
|
+ if (this.getCrowdTestReportForProject() == null) {
|
|
|
throw new CrowdTestProjectException("还未创建项目报告,项目不能被提交");
|
|
|
}
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_COMMITED);
|
|
@@ -683,6 +669,7 @@ public class CrowdTestProject {
|
|
|
|
|
|
/**
|
|
|
* 结束项目(项目发起者)
|
|
|
+ *
|
|
|
* @return
|
|
|
*/
|
|
|
public CrowdTestProject finishCrowdTestProject(User user) {
|
|
@@ -691,13 +678,13 @@ public class CrowdTestProject {
|
|
|
// throw new CrowdTestProjectException("当前用户未进行认证,无权限对项目操作");
|
|
|
// }
|
|
|
//判断是否为项目发起者
|
|
|
- if(!this.getUserId().equals(user.getId())){
|
|
|
+ if (!this.getUserId().equals(user.getId())) {
|
|
|
throw new CrowdTestProjectException("当前用户没有权限结束项目!");
|
|
|
}
|
|
|
|
|
|
- if(this.getStatus() != CrowdTestProjectStatus.HAS_COMMITED){
|
|
|
- throw new CrowdTestProjectException("项目不能确认结束,当前状态为:"+this.getStatus());
|
|
|
- }else{
|
|
|
+ if (this.getStatus() != CrowdTestProjectStatus.HAS_COMMITED) {
|
|
|
+ throw new CrowdTestProjectException("项目不能确认结束,当前状态为:" + this.getStatus());
|
|
|
+ } else {
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_FINISHED);
|
|
|
this.setEndTime(new Timestamp(System.currentTimeMillis()));
|
|
|
}
|
|
@@ -705,9 +692,9 @@ public class CrowdTestProject {
|
|
|
}
|
|
|
|
|
|
public void reject(Long userId) {
|
|
|
- if (this.getProjectDistributionTypeId()!=0
|
|
|
+ if (this.getProjectDistributionTypeId() != 0
|
|
|
|| this.getStatus() != CrowdTestProjectStatus.HAS_RELEASED
|
|
|
- || !this.getRegionalManagerId().equals(userId)){
|
|
|
+ || !this.getRegionalManagerId().equals(userId)) {
|
|
|
throw new CrowdTestProjectException("非法的操作");
|
|
|
}
|
|
|
this.setStatus(CrowdTestProjectStatus.HAS_REJECTED);
|