|
@@ -1,17 +1,23 @@
|
|
package cn.cslg.pas.service.business;
|
|
package cn.cslg.pas.service.business;
|
|
|
|
|
|
-import cn.cslg.pas.common.dto.business.ProjectOpenAuditTaskDTO;
|
|
|
|
-import cn.cslg.pas.common.dto.business.TaskAuditTaskDTO;
|
|
|
|
|
|
+import cn.cslg.pas.common.dto.business.*;
|
|
|
|
+import cn.cslg.pas.common.model.cronModel.Personnel;
|
|
import cn.cslg.pas.common.model.cronModel.PersonnelVO;
|
|
import cn.cslg.pas.common.model.cronModel.PersonnelVO;
|
|
|
|
+import cn.cslg.pas.common.model.cronModel.Records;
|
|
import cn.cslg.pas.common.model.request.GroupRequest;
|
|
import cn.cslg.pas.common.model.request.GroupRequest;
|
|
import cn.cslg.pas.common.model.request.QueryRequest;
|
|
import cn.cslg.pas.common.model.request.QueryRequest;
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
|
+import cn.cslg.pas.common.vo.business.ProjectTaskVO;
|
|
|
|
+import cn.cslg.pas.domain.business.Project;
|
|
import cn.cslg.pas.domain.business.ProjectTask;
|
|
import cn.cslg.pas.domain.business.ProjectTask;
|
|
import cn.cslg.pas.exception.UnLoginException;
|
|
import cn.cslg.pas.exception.UnLoginException;
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.mapper.ProjectTaskMapper;
|
|
import cn.cslg.pas.mapper.ProjectTaskMapper;
|
|
|
|
+import cn.cslg.pas.service.permissions.PermissionService;
|
|
|
|
+import cn.cslg.pas.service.query.FormatQueryService;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -20,6 +26,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -36,36 +43,104 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
@Autowired
|
|
@Autowired
|
|
private LoginUtils loginUtils;
|
|
private LoginUtils loginUtils;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private PatentDigProjectService patentDigProjectService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private FormatQueryService formatQueryService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ProjectTaskMapper projectTaskMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private PermissionService permissionService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 项目开卷审核任务
|
|
* 项目开卷审核任务
|
|
- * @param projectOpenAuditTaskDTO
|
|
|
|
|
|
+ * @param patentDigProjectTaskDTO
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Object addProjectOpenExamineTask(ProjectOpenAuditTaskDTO projectOpenAuditTaskDTO){
|
|
|
|
- Integer type = projectOpenAuditTaskDTO.getType();
|
|
|
|
- if (type == null && type > 5) {
|
|
|
|
- throw new XiaoShiException("任务类型不能为空!");
|
|
|
|
|
|
+ public Object addProjectOpenExamineTask(PatentDigProjectTaskDTO patentDigProjectTaskDTO){
|
|
|
|
+ PatentDigProjectDTO patentDigProjectDTO = patentDigProjectTaskDTO.getPatentDigProjectDTO();
|
|
|
|
+ ProjectTaskDTO projectTaskDTO = patentDigProjectTaskDTO.getProjectTaskDTO();
|
|
|
|
+ //如果专利挖掘项目DTO不为空,则需要先建立专利挖掘项目
|
|
|
|
+ if (patentDigProjectDTO != null) {
|
|
|
|
+ Integer projectId = (Integer) patentDigProjectService.addMessage(patentDigProjectDTO);
|
|
|
|
+ //判断专题库id不为空
|
|
|
|
+ if (projectId == null) {
|
|
|
|
+ throw new XiaoShiException("专题库id不能为空!");
|
|
|
|
+ }
|
|
|
|
+ Integer type = projectTaskDTO.getType();
|
|
|
|
+ if (type == null) {
|
|
|
|
+ throw new XiaoShiException("任务类型不能为空!");
|
|
|
|
+ }
|
|
|
|
+ //判断任务名称不为空
|
|
|
|
+ projectTaskDTO.setName(projectTaskDTO.getName().trim());
|
|
|
|
+ String name = projectTaskDTO.getName();
|
|
|
|
+ if (name == null || name.equals("")) {
|
|
|
|
+ throw new XiaoShiException("任务名称不能为空!");
|
|
|
|
+ }
|
|
|
|
+ LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(ProjectTask::getName, name);
|
|
|
|
+ queryWrapper.eq(ProjectTask::getProjectId, projectId);
|
|
|
|
+ List<ProjectTask> projectTasks = this.list(queryWrapper);
|
|
|
|
+ if (projectTasks != null && projectTasks.size() != 0) {
|
|
|
|
+ throw new XiaoShiException("任务名称不能重复!");
|
|
|
|
+ }
|
|
|
|
+ ProjectTask projectTask = new ProjectTask();
|
|
|
|
+ BeanUtils.copyProperties(projectTaskDTO, projectTask);
|
|
|
|
+ if (projectTask.getStatus() == null) {
|
|
|
|
+ projectTask.setStatus(1);
|
|
|
|
+ }
|
|
|
|
+ projectTask.setProjectId(projectId);
|
|
|
|
+ //获取登录人信息
|
|
|
|
+ PersonnelVO personnelVO = new PersonnelVO();
|
|
|
|
+ try {
|
|
|
|
+ personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new UnLoginException("未登录");
|
|
|
|
+ }
|
|
|
|
+ projectTask.setCreateId(personnelVO.getId());
|
|
|
|
+ projectTask.insert();
|
|
|
|
+ return projectTask.getId();
|
|
|
|
+ } else {
|
|
|
|
+ throw new XiaoShiException("挖掘项目数据不能为空!");
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加任务
|
|
|
|
+ */
|
|
|
|
+ public Integer addTask(ProjectTaskDTO projectTaskDTO){
|
|
//判断专题库id不为空
|
|
//判断专题库id不为空
|
|
- Integer projectId = projectOpenAuditTaskDTO.getProjectId();
|
|
|
|
- if (projectId == null) {
|
|
|
|
|
|
+ if (projectTaskDTO.getProjectId() == null) {
|
|
throw new XiaoShiException("专题库id不能为空!");
|
|
throw new XiaoShiException("专题库id不能为空!");
|
|
}
|
|
}
|
|
|
|
+ Integer type = projectTaskDTO.getType();
|
|
|
|
+ if (type == null) {
|
|
|
|
+ throw new XiaoShiException("任务类型不能为空!");
|
|
|
|
+ }
|
|
//判断任务名称不为空
|
|
//判断任务名称不为空
|
|
- projectOpenAuditTaskDTO.setName(projectOpenAuditTaskDTO.getName().trim());
|
|
|
|
- String name = projectOpenAuditTaskDTO.getName();
|
|
|
|
|
|
+ projectTaskDTO.setName(projectTaskDTO.getName().trim());
|
|
|
|
+ String name = projectTaskDTO.getName();
|
|
if (name == null || name.equals("")) {
|
|
if (name == null || name.equals("")) {
|
|
throw new XiaoShiException("任务名称不能为空!");
|
|
throw new XiaoShiException("任务名称不能为空!");
|
|
}
|
|
}
|
|
LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(ProjectTask::getName, name);
|
|
queryWrapper.eq(ProjectTask::getName, name);
|
|
- queryWrapper.eq(ProjectTask::getProjectId, projectId);
|
|
|
|
|
|
+ queryWrapper.eq(ProjectTask::getProjectId, projectTaskDTO.getProjectId());
|
|
List<ProjectTask> projectTasks = this.list(queryWrapper);
|
|
List<ProjectTask> projectTasks = this.list(queryWrapper);
|
|
if (projectTasks != null && projectTasks.size() != 0) {
|
|
if (projectTasks != null && projectTasks.size() != 0) {
|
|
throw new XiaoShiException("任务名称不能重复!");
|
|
throw new XiaoShiException("任务名称不能重复!");
|
|
}
|
|
}
|
|
ProjectTask projectTask = new ProjectTask();
|
|
ProjectTask projectTask = new ProjectTask();
|
|
- BeanUtils.copyProperties(projectOpenAuditTaskDTO, projectTask);
|
|
|
|
|
|
+ BeanUtils.copyProperties(projectTaskDTO, projectTask);
|
|
|
|
+ if (projectTask.getType() == 1 || projectTask.getType() == 5) {
|
|
|
|
+ projectTask.setStatus(1);
|
|
|
|
+ } else if (projectTask.getType() == 6) {
|
|
|
|
+ projectTask.setStatus(2);
|
|
|
|
+ }
|
|
//获取登录人信息
|
|
//获取登录人信息
|
|
PersonnelVO personnelVO = new PersonnelVO();
|
|
PersonnelVO personnelVO = new PersonnelVO();
|
|
try {
|
|
try {
|
|
@@ -78,12 +153,13 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
return projectTask.getId();
|
|
return projectTask.getId();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 任务审核任务
|
|
* 任务审核任务
|
|
* @param taskAuditTaskDTO
|
|
* @param taskAuditTaskDTO
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- public Object addTaskExamineTask(TaskAuditTaskDTO taskAuditTaskDTO){
|
|
|
|
|
|
+ public Object addAuditTask(TaskAuditTaskDTO taskAuditTaskDTO){
|
|
Integer type = taskAuditTaskDTO.getType();
|
|
Integer type = taskAuditTaskDTO.getType();
|
|
if (type == null && type > 5) {
|
|
if (type == null && type > 5) {
|
|
throw new XiaoShiException("任务类型不能为空!");
|
|
throw new XiaoShiException("任务类型不能为空!");
|
|
@@ -122,7 +198,65 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
- return null;
|
|
|
|
|
|
+ List<String> sqls = formatQueryService.reSqls(queryRequest,"projectTask");
|
|
|
|
+ //根据sql查询任务信息
|
|
|
|
+ List<ProjectTaskVO> projectTaskVOS = projectTaskMapper.getProjectTask(sqls.get(0),sqls.get(1),sqls.get(2));
|
|
|
|
+ //查询总数
|
|
|
|
+ Long total = projectTaskMapper.getProjectTaskCount(sqls.get(0));
|
|
|
|
+ //装载事件信息
|
|
|
|
+ this.loadProjectTask(projectTaskVOS);
|
|
|
|
+ Records records = new Records();
|
|
|
|
+ records.setCurrent(queryRequest.getCurrent());
|
|
|
|
+ records.setSize(queryRequest.getSize());
|
|
|
|
+ records.setData(projectTaskVOS);
|
|
|
|
+ records.setTotal(total);
|
|
|
|
+ return records;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 装载任务
|
|
|
|
+ * @param projectTaskVOS
|
|
|
|
+ * @throws IOException
|
|
|
|
+ */
|
|
|
|
+ public void loadProjectTask(List<ProjectTaskVO> projectTaskVOS) throws IOException {
|
|
|
|
+ List<String> createIds = new ArrayList<>();
|
|
|
|
+ List<String> handlerIds = new ArrayList<>();
|
|
|
|
+ projectTaskVOS.forEach(
|
|
|
|
+ item -> {
|
|
|
|
+ if (item.getCreateId() != null) {
|
|
|
|
+ createIds.add(item.getCreateId());
|
|
|
|
+ }
|
|
|
|
+ if (item.getHandler() != null) {
|
|
|
|
+ handlerIds.add(item.getHandler());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ List<Personnel> personnels = new ArrayList<>();
|
|
|
|
+ List<Personnel> personnels2 = new ArrayList<>();
|
|
|
|
+ //查询发起人名称
|
|
|
|
+ if (createIds.size() != 0) {
|
|
|
|
+ String res = permissionService.getPersonnelByIdsFromPCS(createIds);
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
|
+ personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
|
+ }
|
|
|
|
+ //查询负责人名称
|
|
|
|
+ if (handlerIds.size() != 0) {
|
|
|
|
+ String res = permissionService.getPersonnelByIdsFromPCS(handlerIds);
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
|
+ personnels2 = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
|
+ }
|
|
|
|
+ //装载信息
|
|
|
|
+ for (ProjectTaskVO projectTaskVO : projectTaskVOS) {
|
|
|
|
+ //装载人员信息
|
|
|
|
+ Personnel personnel = personnels.stream().filter(item -> item.getId().equals(projectTaskVO.getCreateId())).findFirst().orElse(null);
|
|
|
|
+ Personnel personnel2 = personnels2.stream().filter(item -> item.getId().equals(projectTaskVO.getHandler())).findFirst().orElse(null);
|
|
|
|
+ if(personnel != null){
|
|
|
|
+ projectTaskVO.setCreateName(personnel.getPersonnelName());
|
|
|
|
+ projectTaskVO.setHandlerName(personnel2.getPersonnelName());
|
|
|
|
+ } else {
|
|
|
|
+ throw new XiaoShiException("未获取到当前登陆人信息");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -132,6 +266,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Object deleteMessage(List<Integer> ids) throws IOException {
|
|
public Object deleteMessage(List<Integer> ids) throws IOException {
|
|
|
|
+ //删除审核结果与文件关联表
|
|
|
|
+ //删除审核结果表
|
|
|
|
+ //删除任务表
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|