|
@@ -120,6 +120,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
@Autowired
|
|
|
private MailSendService mailSendService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AssoProjectPersonService assoProjectPersonService;
|
|
|
+
|
|
|
/**
|
|
|
* 挖掘项目开卷审核任务
|
|
|
*
|
|
@@ -225,6 +228,11 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
projectTask1.updateById();
|
|
|
}
|
|
|
}
|
|
|
+ //项目可见人检验
|
|
|
+ //如果是内部人员
|
|
|
+ if (projectTask.getHandlerType().equals(0)) {
|
|
|
+ this.checkProjectPerson(1, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
+ }
|
|
|
return projectTask.getId();
|
|
|
}
|
|
|
|
|
@@ -616,9 +624,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
if (projectTask != null) {
|
|
|
//查询出当前任务的类型
|
|
|
//如果是分配任务/或者协同任务
|
|
|
- if (projectTask.getType() == 6) {
|
|
|
+ if (projectTask.getType().equals(6)) {
|
|
|
//类型为0,需要完成任务
|
|
|
- if (type == 0) {
|
|
|
+ if (type.equals(0)) {
|
|
|
//完成需要判断不为审核中
|
|
|
if (projectTask.getStatus() != 1) {
|
|
|
projectTask.setStatus(3);
|
|
@@ -626,7 +634,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
} else {
|
|
|
throw new XiaoShiException("任务状态为审核中,不可以完成");
|
|
|
}
|
|
|
- } else if (type == 1) {
|
|
|
+ } else if (type.equals(1)) {
|
|
|
//类型为1,取消任务
|
|
|
projectTask.setStatus(5);
|
|
|
projectTask.updateById();
|
|
@@ -644,9 +652,10 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
this.updateBatchById(projectTasks1);
|
|
|
}
|
|
|
}
|
|
|
+ this.checkProjectPerson(2, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
}
|
|
|
//开卷审核项目(判断是报告还是挖掘项目)
|
|
|
- } else if (projectTask.getType() == 1) {
|
|
|
+ } else if (projectTask.getType().equals(1)) {
|
|
|
Integer projectId = projectTask.getProjectId();
|
|
|
//根据projectId查询类型
|
|
|
LambdaQueryWrapper<Project> getType = new LambdaQueryWrapper<>();
|
|
@@ -659,19 +668,20 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
queryWrapper1.eq(PatentDigProject::getProjectId, projectId);
|
|
|
PatentDigProject patentDigProject = patentDigProjectService.getOne(queryWrapper1, false);
|
|
|
if (patentDigProject != null) {
|
|
|
- if (type == 0) {
|
|
|
+ if (type.equals(0)) {
|
|
|
//直接同意
|
|
|
projectTask.setStatus(3);
|
|
|
projectTask.updateById();
|
|
|
patentDigProject.setState(2);
|
|
|
patentDigProject.updateById();
|
|
|
- } else if (type == 1) {
|
|
|
+ } else if (type.equals(1)) {
|
|
|
//取消
|
|
|
projectTask.setStatus(5);
|
|
|
projectTask.updateById();
|
|
|
patentDigProject.setState(4);
|
|
|
patentDigProject.updateById();
|
|
|
- } else if (type == 2) {
|
|
|
+ this.checkProjectPerson(2, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
+ } else if (type.equals(2)) {
|
|
|
//缺少资料
|
|
|
projectTask.setStatus(4);
|
|
|
projectTask.updateById();
|
|
@@ -686,19 +696,20 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
queryWrapper1.eq(ReportProject::getProjectId, projectId);
|
|
|
ReportProject reportProject = reportProjectService.getOne(queryWrapper1, false);
|
|
|
if (reportProject != null) {
|
|
|
- if (type == 0) {
|
|
|
+ if (type.equals(0)) {
|
|
|
//直接同意
|
|
|
projectTask.setStatus(3);
|
|
|
projectTask.updateById();
|
|
|
reportProject.setStatus(2);
|
|
|
reportProject.updateById();
|
|
|
- } else if (type == 1) {
|
|
|
+ } else if (type.equals(1)) {
|
|
|
//取消
|
|
|
projectTask.setStatus(5);
|
|
|
projectTask.updateById();
|
|
|
reportProject.setStatus(4);
|
|
|
reportProject.updateById();
|
|
|
- } else if (type == 2) {
|
|
|
+ this.checkProjectPerson(2, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
+ } else if (type.equals(2)) {
|
|
|
//缺少资料
|
|
|
projectTask.setStatus(4);
|
|
|
projectTask.updateById();
|
|
@@ -711,10 +722,10 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
}
|
|
|
}
|
|
|
//处理协同任务完成
|
|
|
- else if (projectTask.getType() == 4) {
|
|
|
+ else if (projectTask.getType().equals(4)) {
|
|
|
//获得请求人
|
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
- if (type == 0) {
|
|
|
+ if (type.equals(0)) {
|
|
|
//判断请求人是否为创建人
|
|
|
if (personnelVO.getId() != null && personnelVO.getId().equals(projectTask.getCreateId())) {
|
|
|
projectTask.setStatus(3);
|
|
@@ -723,15 +734,20 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
projectTask.setStatus(6);
|
|
|
projectTask.updateById();
|
|
|
}
|
|
|
- } else if (type == 1) {
|
|
|
+ } else if (type.equals(1)) {
|
|
|
projectTask.setStatus(5);
|
|
|
projectTask.updateById();
|
|
|
+ this.checkProjectPerson(2, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
if (type.equals(1)) {
|
|
|
projectTask.setStatus(5);
|
|
|
projectTask.updateById();
|
|
|
+ this.checkProjectPerson(2, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
|
|
|
+ } else if (type.equals(0)) {
|
|
|
+ projectTask.setStatus(3);
|
|
|
+ projectTask.updateById();
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -739,6 +755,8 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public Object addMessage(Object object, List<MultipartFile> files) {
|
|
|
return null;
|
|
@@ -1241,4 +1259,56 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
return sqls;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理任务参与人员与项目可见人员
|
|
|
+ * @param type 1为新增 2为取消
|
|
|
+ * @param handler
|
|
|
+ */
|
|
|
+ public void checkProjectPerson(Integer type, String handler, Integer projectId, Integer taskId) {
|
|
|
+ //获取登录人信息
|
|
|
+ PersonnelVO personnelVO = new PersonnelVO();
|
|
|
+ try {
|
|
|
+ personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new UnLoginException("未登录");
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<AssoProjectPerson> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(AssoProjectPerson::getProjectId, projectId);
|
|
|
+ List<AssoProjectPerson> assoProjectPeople = assoProjectPersonService.list(queryWrapper);
|
|
|
+ //新增任务的时候 需要将任务处理人添加到项目可见人中 先校验是否已经存在
|
|
|
+ if (type.equals(1)) {
|
|
|
+ AssoProjectPerson assoProjectPerson = new AssoProjectPerson();
|
|
|
+ assoProjectPerson.setProjectId(projectId);
|
|
|
+ assoProjectPerson.setPersonId(handler);
|
|
|
+ assoProjectPerson.setCreateId(personnelVO.getId());
|
|
|
+ assoProjectPerson.setRole(1);
|
|
|
+ if (!assoProjectPeople.isEmpty()) {
|
|
|
+ List<String> people = assoProjectPeople.stream().map(AssoProjectPerson::getPersonId).collect(Collectors.toList());
|
|
|
+ if (!people.contains(handler)) {
|
|
|
+ assoProjectPerson.insert();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ assoProjectPerson.insert();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //取消任务的时候 需要将任务处理人从项目可见人中去除 但是先校验是否还有别的任务导致他在项目可见人中
|
|
|
+ else if (type.equals(2)) {
|
|
|
+ if (!assoProjectPeople.isEmpty()) {
|
|
|
+ LambdaQueryWrapper<ProjectTask> queryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper1.eq(ProjectTask::getProjectId, projectId)
|
|
|
+ .eq(ProjectTask::getHandlerType, 0)
|
|
|
+ .eq(ProjectTask::getHandler, handler)
|
|
|
+ .ne(ProjectTask::getStatus, 5);
|
|
|
+ List<ProjectTask> projectTasks = this.list(queryWrapper1);
|
|
|
+ if (projectTasks.isEmpty()) {
|
|
|
+ LambdaQueryWrapper<AssoProjectPerson> deleteWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteWrapper.eq(AssoProjectPerson::getProjectId, projectId)
|
|
|
+ .eq(AssoProjectPerson::getPersonId, handler);
|
|
|
+ assoProjectPersonService.remove(deleteWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|