|
|
@ -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) { |
|
|
@ -438,5 +451,160 @@ public class ProjectService implements IProjectService{ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CProjectVo.ProjectInfo> findSonProject(CProjectDto.FindSonProject param, Long userId) { |
|
|
|
ProTaskDetail projectInfo = taskDetailDao.selectByPrimaryKey(param.getProjectId()); |
|
|
|
if (ObjectUtil.isNull(projectInfo)) { |
|
|
|
throw new BaseException(CommonCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
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); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|