Browse Source

删除项目service

tall3
ma 4 years ago
parent
commit
b37ddfe423
  1. 7
      common/src/main/java/com/ccsens/common/service/IProjectService.java
  2. 159
      common/src/main/java/com/ccsens/common/service/ProjectService.java

7
common/src/main/java/com/ccsens/common/service/IProjectService.java

@ -38,4 +38,11 @@ public interface IProjectService {
* @return 子项目信息列表
*/
List<CProjectVo.ProjectInfo> findSonProject(CProjectDto.FindSonProject param, Long userId);
/**
* 删除项目及相关配置
* @param param 项目id
* @param userId 用户id
*/
void deleteProjectById(CProjectDto.ProjectById param, Long userId);
}

159
common/src/main/java/com/ccsens/common/service/ProjectService.java

@ -10,6 +10,10 @@ import com.ccsens.common.bean.po.*;
import com.ccsens.common.bean.vo.CProjectVo;
import com.ccsens.common.bean.vo.CTaskVo;
import com.ccsens.common.persist.dao.*;
import com.ccsens.common.persist.mapper.ProMemberStakeholderMapper;
import com.ccsens.common.persist.mapper.ProRoleShowMapper;
import com.ccsens.common.persist.mapper.ProTaskShareMapper;
import com.ccsens.common.persist.mapper.ProTaskStatusRecordMapper;
import com.ccsens.common.util.CommonCodeError;
import com.ccsens.util.exception.BaseException;
import lombok.extern.slf4j.Slf4j;
@ -19,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -65,6 +70,14 @@ public class ProjectService implements IProjectService{
private ProRoleMemberDao roleMemberDao;
@Resource
private UserDao userDao;
@Resource
private ProMemberStakeholderMapper memberStakeholderMapper;
@Resource
private ProTaskStatusRecordMapper taskStatusRecordMapper;
@Resource
private ProTaskShareMapper taskShareMapper;
@Resource
private ProRoleShowMapper roleShowMapper;
@Override
public CProjectVo.ProjectInfo findProjectById(CProjectDto.ProjectById param, Long userId) {
@ -447,5 +460,151 @@ public class ProjectService implements IProjectService{
return projectDao.findSonProjectId(param);
}
@Override
public void deleteProjectById(CProjectDto.ProjectById param, Long userId) {
ProTaskDetail project = taskDetailDao.selectByPrimaryKey(param.getProjectId());
if (ObjectUtil.isNull(project)) {
throw new BaseException(CommonCodeError.PROJECT_NOT_FOUND);
}
//删除项目详情 删除项目相关
Long projectId = project.getId();
project.setRecStatus((byte)2);
taskDetailDao.updateByPrimaryKeySelective(project);
//删除之前的项目分解
ProTaskSubExample taskSubExample = new ProTaskSubExample();
taskSubExample.createCriteria().andTaskDetailIdEqualTo(projectId);
ProTaskSub taskSub = new ProTaskSub();
taskSub.setRecStatus((byte)2);
taskSubDao.updateByExampleSelective(taskSub,taskSubExample);
//删除之前的版本信息
ProTaskVersion taskVersion = new ProTaskVersion();
taskVersion.setRecStatus((byte)2);
ProTaskVersionExample taskVersionExample = new ProTaskVersionExample();
taskVersionExample.createCriteria().andTaskDetailIdEqualTo(projectId);
taskVersionDao.updateByExampleSelective(taskVersion,taskVersionExample);
//删除项目标签相关的
LabelBusiness labelBusiness = new LabelBusiness();
labelBusiness.setRecStatus((byte)2);
LabelBusinessExample labelBusinessExample = new LabelBusinessExample();
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId);
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample);
//删除项目分享表
ProTaskShare taskShare = new ProTaskShare();
taskShare.setRecStatus((byte)2);
ProTaskShareExample taskShareExample = new ProTaskShareExample();
taskShareExample.createCriteria().andOriginalProjectIdEqualTo(projectId);
taskShareMapper.updateByExampleSelective(taskShare,taskShareExample);
//删除角色和成员
List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId());
ProRole role = new ProRole();
role.setRecStatus((byte)2);
ProRoleExample roleExample = new ProRoleExample();
roleExample.createCriteria().andIdIn(roleIdList);
roleDao.updateByExampleSelective(role,roleExample);
List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId());
ProMember member = new ProMember();
member.setRecStatus((byte)2);
ProMemberExample memberExample = new ProMemberExample();
memberExample.createCriteria().andIdIn(memberIdList);
memberDao.updateByExampleSelective(member,memberExample);
//删除奖惩干系人
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder();
memberStakeholder.setRecStatus((byte)2);
ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample();
memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList);
memberStakeholderMapper.updateByExampleSelective(memberStakeholder,memberStakeholderExample);
//删除对谁不可见
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion();
roleRepulsion.setRecStatus((byte)2);
ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample();
roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList);
roleRepulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample);
//删除角色成员关联
ProRoleMember roleMember = new ProRoleMember();
roleMember.setRecStatus((byte)2);
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample();
roleMemberExample.createCriteria().andRoleIdIn(roleIdList);
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample);
//删除角色展示
ProRoleShow roleShow = new ProRoleShow();
roleShow.setRecStatus((byte)2);
ProRoleShowExample roleShowExample = new ProRoleShowExample();
roleShowExample.createCriteria().andRoleIdIn(roleIdList);
roleShowMapper.updateByExampleSelective(roleShow,roleShowExample);
//根据项目id查询所有一二级任务详情id 删除任务相关
List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(projectId);
//删除所有的任务详情
ProTaskDetail taskDetail = new ProTaskDetail();
taskDetail.setRecStatus((byte)2);
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample();
taskDetailExample.createCriteria().andIdIn(allTaskId);
taskDetailDao.updateByExampleSelective(taskDetail,taskDetailExample);
//删除所有的分解任务
ProTaskSub taskSub1 = new ProTaskSub();
taskSub1.setRecStatus((byte)2);
ProTaskSubExample taskSubExample1 = new ProTaskSubExample();
taskSubExample1.createCriteria().andTaskDetailIdIn(allTaskId);
List<ProTaskSub> taskSubList = taskSubDao.selectByExample(taskSubExample1);
List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList());
taskSubDao.updateByExampleSelective(taskSub1,taskSubExample1);
//删除所有的任务标签
LabelBusiness labelBusiness1 = new LabelBusiness();
labelBusiness1.setRecStatus((byte)2);
LabelBusinessExample labelBusinessExample1 = new LabelBusinessExample();
labelBusinessExample1.createCriteria().andBusinessIdIn(allTaskId);
labelBusinessDao.updateByExampleSelective(labelBusiness1,labelBusinessExample1);
//删除任务角色关联表
ProRoleTask roleTask = new ProRoleTask();
roleTask.setRecStatus((byte)2);
ProRoleTaskExample roleTaskExample = new ProRoleTaskExample();
roleTaskExample.createCriteria().andTaskIdIn(allTaskId);
roleTaskDao.updateByExampleSelective(roleTask,roleTaskExample);
//删除任务插件关联信息
ProTaskPlugin taskPlugin = new ProTaskPlugin();
taskPlugin.setRecStatus((byte)2);
ProTaskPluginExample taskPluginExample = new ProTaskPluginExample();
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample);
//删除任务关系表
allTaskId.add(project.getId());
ProParentTask parentTask = new ProParentTask();
parentTask.setRecStatus((byte)2);
ProParentTaskExample parentTaskExample = new ProParentTaskExample();
parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId);
parentTaskDao.updateByExampleSelective(parentTask,parentTaskExample);
//删除任务流转表
ProTaskFlow taskFlow = new ProTaskFlow();
taskFlow.setRecStatus((byte)2);
ProTaskFlowExample taskFlowExample = new ProTaskFlowExample();
taskFlowExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskFlowDao.updateByExampleSelective(taskFlow,taskFlowExample);
//删除任务上下道工序
ProTaskProcess taskProcess = new ProTaskProcess();
taskProcess.setRecStatus((byte)2);
ProTaskProcessExample taskProcessExample = new ProTaskProcessExample();
taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskProcessDao.updateByExampleSelective(taskProcess,taskProcessExample);
//删除任务状态记录表 分解任务id
ProTaskStatusRecord taskStatusRecord = new ProTaskStatusRecord();
taskStatusRecord.setRecStatus((byte)2);
ProTaskStatusRecordExample taskStatusRecordExample = new ProTaskStatusRecordExample();
taskStatusRecordExample.createCriteria().andTaskSubIdIn(allSubTaskId);
taskStatusRecordMapper.updateByExampleSelective(taskStatusRecord,taskStatusRecordExample);
//删除任务通知表
ProTaskNotify taskNotify = new ProTaskNotify();
taskNotify.setRecStatus((byte)2);
ProTaskNotifyExample taskNotifyExample = new ProTaskNotifyExample();
taskNotifyExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskNotifyDao.updateByExampleSelective(taskNotify,taskNotifyExample);
//删除任务面板信息
ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo();
taskPanelInfo.setRecStatus((byte)2);
ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample();
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId);
taskPanelInfoDao.updateByExampleSelective(taskPanelInfo,taskPanelInfoExample);
}
}

Loading…
Cancel
Save