|
|
|
@ -165,7 +165,7 @@ public class ImportService implements IImportService { |
|
|
|
throw new BaseException(DefaultCodeError.WSB_NOT_PROJECT_HEADER); |
|
|
|
} |
|
|
|
//读取成员表
|
|
|
|
readMemberSheet(memberSheet,project.getId(),roleMap,memberMap); |
|
|
|
readMemberSheet(memberSheet,project,roleMap,memberMap); |
|
|
|
//添加任务
|
|
|
|
readTask(wbsSheet,taskStart,project,roleMap); |
|
|
|
//获取用户列表
|
|
|
|
@ -231,6 +231,34 @@ public class ImportService implements IImportService { |
|
|
|
*/ |
|
|
|
private ProjectVo.SysProject readProject(XSSFSheet wbsSheet, int projectStart, Long userId,Long projectId) { |
|
|
|
ProjectVo.SysProject project = new ProjectVo.SysProject(); |
|
|
|
// TODO 查询是否项目是否存在
|
|
|
|
if (ObjectUtil.isNotNull(projectId)) { |
|
|
|
project = projectDao.selectById(projectId); |
|
|
|
if (ObjectUtil.isNotNull(project)) { |
|
|
|
project.setId(projectId); |
|
|
|
project.setImportType((byte)1); |
|
|
|
//删除之前的项目详情
|
|
|
|
projectDao.updateStatusById(projectId); |
|
|
|
//删除之前的项目分解
|
|
|
|
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); |
|
|
|
taskVersionMapper.updateByExampleSelective(taskVersion,taskVersionExample); |
|
|
|
//删除项目标签相关的
|
|
|
|
LabelBusiness labelBusiness = new LabelBusiness(); |
|
|
|
labelBusiness.setRecStatus((byte)2); |
|
|
|
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); |
|
|
|
labelBusinessExample.createCriteria().andBusinessIdEqualTo(projectId); |
|
|
|
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); |
|
|
|
} |
|
|
|
} |
|
|
|
//获取项目信息的那一行
|
|
|
|
XSSFRow row = wbsSheet.getRow(projectStart + 1); |
|
|
|
if (ObjectUtil.isNull(row)) { |
|
|
|
@ -279,7 +307,12 @@ public class ImportService implements IImportService { |
|
|
|
} |
|
|
|
//添加项目信息(任务详情)
|
|
|
|
ProTaskDetail taskDetail = new ProTaskDetail(); |
|
|
|
taskDetail.setId(snowflake.nextId()); |
|
|
|
if (0 == project.getImportType()) { |
|
|
|
taskDetail.setId(snowflake.nextId()); |
|
|
|
} |
|
|
|
if (1 == project.getImportType()) { |
|
|
|
taskDetail.setId(projectId); |
|
|
|
} |
|
|
|
taskDetail.setName(projectName); |
|
|
|
taskDetail.setDescription(description); |
|
|
|
taskDetailDao.insertSelective(taskDetail); |
|
|
|
@ -326,11 +359,46 @@ public class ImportService implements IImportService { |
|
|
|
/** |
|
|
|
* 读取项目成员表 |
|
|
|
*/ |
|
|
|
private void readMemberSheet(XSSFSheet memberSheet,Long projectId, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap) { |
|
|
|
private void readMemberSheet(XSSFSheet memberSheet,ProjectVo.SysProject project, Map<String, Long> roleMap, Map<String, RoleDto.WbsMember> memberMap) { |
|
|
|
//系统角色id
|
|
|
|
Long sysRoleId = null; |
|
|
|
//项目角色id
|
|
|
|
Long roleId = null; |
|
|
|
//如果是修改WBS,先进行删除
|
|
|
|
if (1 == project.getImportType()){ |
|
|
|
//删除角色和成员
|
|
|
|
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); |
|
|
|
repulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample); |
|
|
|
//删除角色成员关联
|
|
|
|
ProRoleMember roleMember = new ProRoleMember(); |
|
|
|
roleMember.setRecStatus((byte)2); |
|
|
|
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample(); |
|
|
|
roleMemberExample.createCriteria().andRoleIdIn(roleIdList); |
|
|
|
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample); |
|
|
|
} |
|
|
|
|
|
|
|
for (int i = 2; i <= memberSheet.getLastRowNum(); i++) { |
|
|
|
//获取当前行
|
|
|
|
XSSFRow row = memberSheet.getRow(i); |
|
|
|
@ -371,7 +439,7 @@ public class ImportService implements IImportService { |
|
|
|
ProRole role = new ProRole(); |
|
|
|
role.setId(snowflake.nextId()); |
|
|
|
role.setName(roleName); |
|
|
|
role.setProjectId(projectId); |
|
|
|
role.setProjectId(project.getId()); |
|
|
|
role.setLabelId(sysRoleId); |
|
|
|
roleDao.insertSelective(role); |
|
|
|
roleId = role.getId(); |
|
|
|
@ -393,7 +461,7 @@ public class ImportService implements IImportService { |
|
|
|
proMember.setId(snowflake.nextId()); |
|
|
|
proMember.setName(memberName); |
|
|
|
proMember.setPhone(memberPhone); |
|
|
|
proMember.setProjectId(projectId); |
|
|
|
proMember.setProjectId(project.getId()); |
|
|
|
proMember.setUserId(userId); |
|
|
|
memberDao.insertSelective(proMember); |
|
|
|
RoleDto.WbsMember member = new RoleDto.WbsMember(proMember.getId(),userId); |
|
|
|
@ -473,6 +541,49 @@ public class ImportService implements IImportService { |
|
|
|
//一级任务id
|
|
|
|
Long firstTaskId = null; |
|
|
|
Long taskStartTime = project.getBeginTime(); |
|
|
|
|
|
|
|
//如果是修改WBS需要先删除
|
|
|
|
if (1 == project.getImportType()) { |
|
|
|
List<Long> allTaskId = parentTaskMapper.queryAllTaskIdByProjectId(project.getId()); |
|
|
|
//删除所有的任务详情
|
|
|
|
ProTaskDetail taskDetail = new ProTaskDetail(); |
|
|
|
taskDetail.setRecStatus((byte)2); |
|
|
|
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample(); |
|
|
|
taskDetailExample.createCriteria().andIdIn(allTaskId); |
|
|
|
taskDetailDao.updateByExampleSelective(taskDetail,taskDetailExample); |
|
|
|
//删除所有的分解任务
|
|
|
|
ProTaskSub taskSub = new ProTaskSub(); |
|
|
|
taskSub.setRecStatus((byte)2); |
|
|
|
ProTaskSubExample taskSubExample = new ProTaskSubExample(); |
|
|
|
taskSubExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskSubDao.updateByExampleSelective(taskSub,taskSubExample); |
|
|
|
//删除所有的任务标签
|
|
|
|
LabelBusiness labelBusiness = new LabelBusiness(); |
|
|
|
labelBusiness.setRecStatus((byte)2); |
|
|
|
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); |
|
|
|
labelBusinessExample.createCriteria().andBusinessIdIn(allTaskId); |
|
|
|
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); |
|
|
|
//删除任务角色关联表
|
|
|
|
ProRoleTask roleTask = new ProRoleTask(); |
|
|
|
roleTask.setRecStatus((byte)2); |
|
|
|
ProRoleTaskExample roleTaskExample = new ProRoleTaskExample(); |
|
|
|
roleTaskExample.createCriteria().andTaskIdIn(allTaskId); |
|
|
|
roleTaskMapper.updateByExampleSelective(roleTask,roleTaskExample); |
|
|
|
//删除任务插件关联信息
|
|
|
|
ProTaskPlugin taskPlugin = new ProTaskPlugin(); |
|
|
|
taskPlugin.setRecStatus((byte)2); |
|
|
|
ProTaskPluginExample taskPluginExample = new ProTaskPluginExample(); |
|
|
|
taskPluginExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
proTaskPluginDao.updateByExampleSelective(taskPlugin,taskPluginExample); |
|
|
|
//删除任务关系表
|
|
|
|
allTaskId.add(project.getId()); |
|
|
|
ProParentTask parentTask = new ProParentTask(); |
|
|
|
parentTask.setRecStatus((byte)2); |
|
|
|
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); |
|
|
|
parentTaskExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
parentTaskMapper.updateByExampleSelective(parentTask,parentTaskExample); |
|
|
|
} |
|
|
|
|
|
|
|
for (int i = taskStart + 1; i <= wbsSheet.getLastRowNum(); i++) { |
|
|
|
//获取当前行
|
|
|
|
XSSFRow row = wbsSheet.getRow(i); |
|
|
|
|