|
|
@ -110,15 +110,15 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
@Override |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params,Long parentId) { |
|
|
|
public TallProjectVo.ProjectInfo importWbs(String token, MultipartFile params, Long parentId) { |
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
if (ObjectUtil.isNull(user)) { |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
|
} |
|
|
|
|
|
|
|
String ext = FileUtil.extName(params.getOriginalFilename()); |
|
|
|
if(StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)){ |
|
|
|
if (StrUtil.isEmpty(ext) || !Constant.WbsExcel.WBS_FILE_FORMAT.contains(ext)) { |
|
|
|
throw new BaseException(BasicsCodeError.FILE_FORMAT_ERROR); |
|
|
|
} |
|
|
|
//文件路径
|
|
|
@ -134,19 +134,19 @@ public class TallService implements ITallService { |
|
|
|
FileUtil.writeFromStream(params.getInputStream(), fullPath); |
|
|
|
|
|
|
|
//导入数据库
|
|
|
|
return importService.importWbs(fullPath,user.getId(),parentId); |
|
|
|
return importService.importWbs(fullPath, user.getId(), parentId); |
|
|
|
} |
|
|
|
|
|
|
|
private ProUser getUserByToken(String token) { |
|
|
|
//根据token获取用户信息
|
|
|
|
TallTokenVo.UserIdByToken userByToken = TokenUtil.getUserByToken(new TallTokenDto.GetUserByToken(token, Constant.APP_ID, Constant.APP_SECRET)); |
|
|
|
if(ObjectUtil.isNull(userByToken)){ |
|
|
|
if (ObjectUtil.isNull(userByToken)) { |
|
|
|
throw new BaseException(CodeEnum.NOT_LOGIN); |
|
|
|
} |
|
|
|
log.info("token获取的用户信息:{}", userByToken); |
|
|
|
//通过手机号获取用户在服务内的userId
|
|
|
|
ProUser user = null; |
|
|
|
if(ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())){ |
|
|
|
if (ObjectUtil.isNotNull(userByToken) && StrUtil.isNotBlank(userByToken.getPhone())) { |
|
|
|
user = userDao.getUserIdByPhone(userByToken.getPhone()); |
|
|
|
} |
|
|
|
return user; |
|
|
@ -157,7 +157,7 @@ public class TallService implements ITallService { |
|
|
|
public TallWbsVo.WbsPath exportWbs(String token, TallProjectDto.ProjectById param) { |
|
|
|
//查询下项目信息
|
|
|
|
TallWbsVo.WbsProjectInfo wbsProjectInfo = proProjectDao.getWbsProjectId(param.getProjectId()); |
|
|
|
if(ObjectUtil.isNull(wbsProjectInfo)){ |
|
|
|
if (ObjectUtil.isNull(wbsProjectInfo)) { |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
//查询一级任务信息
|
|
|
@ -172,14 +172,14 @@ public class TallService implements ITallService { |
|
|
|
//查询角色成员信息
|
|
|
|
TallWbsVo.WbsRoleInfo wbsRoleInfo = new TallWbsVo.WbsRoleInfo(); |
|
|
|
//查询项目经理的角色信息
|
|
|
|
List<TallWbsVo.WbsRole> pmList = proRoleDao.getWbsRoleInfo(param.getProjectId(),0); |
|
|
|
List<TallWbsVo.WbsRole> pmList = proRoleDao.getWbsRoleInfo(param.getProjectId(), 0); |
|
|
|
//查询项目成员的角色信息
|
|
|
|
List<TallWbsVo.WbsRole> roleList = proRoleDao.getWbsRoleInfo(param.getProjectId(),1); |
|
|
|
List<TallWbsVo.WbsRole> roleList = proRoleDao.getWbsRoleInfo(param.getProjectId(), 1); |
|
|
|
wbsRoleInfo.setPmList(pmList); |
|
|
|
wbsRoleInfo.setRoleList(roleList); |
|
|
|
|
|
|
|
//生成excel数据并导入文件
|
|
|
|
String url = exportService.exportWbs(wbsProjectInfo,wbsTaskInfo,wbsRoleInfo); |
|
|
|
String url = exportService.exportWbs(wbsProjectInfo, wbsTaskInfo, wbsRoleInfo); |
|
|
|
|
|
|
|
TallWbsVo.WbsPath wbsPath = new TallWbsVo.WbsPath(); |
|
|
|
wbsPath.setUrl(url); |
|
|
@ -189,7 +189,7 @@ public class TallService implements ITallService { |
|
|
|
@Override |
|
|
|
public TallProjectVo.ProjectInfo findProjectById(String header, TallProjectDto.ProjectById params) { |
|
|
|
TallProjectVo.ProjectInfo projectById = proProjectDao.findProjectById(params.getProjectId()); |
|
|
|
if (ObjectUtil.isNull(projectById)){ |
|
|
|
if (ObjectUtil.isNull(projectById)) { |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
return projectById; |
|
|
@ -200,15 +200,15 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
//TODO 暂时查询全部,无论是否查到user
|
|
|
|
//查找所有没有上级的项目,作为MWBS
|
|
|
|
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(),param.getEndTime(),null); |
|
|
|
if(CollectionUtil.isNotEmpty(mWbs)){ |
|
|
|
List<TallProjectVo.ProjectInfo> mWbs = taskDetailDao.queryMwbs(param.getStartTime(), param.getEndTime(), null); |
|
|
|
if (CollectionUtil.isNotEmpty(mWbs)) { |
|
|
|
mWbs.forEach(m -> { |
|
|
|
//给下项目添加域信息和url
|
|
|
|
m.setUrl(PropUtil.notGatewayUrl); |
|
|
|
m.setBusinessCode(Constant.BUSINESS_CODE); |
|
|
|
//分别查找mwbs下的子pwbs
|
|
|
|
List<TallProjectVo.ProjectInfo> pWbs = taskDetailDao.queryPwbs(param.getStartTime(),param.getEndTime(),null,m.getId()); |
|
|
|
if(CollectionUtil.isNotEmpty(pWbs)){ |
|
|
|
List<TallProjectVo.ProjectInfo> pWbs = taskDetailDao.queryPwbs(param.getStartTime(), param.getEndTime(), null, m.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(pWbs)) { |
|
|
|
pWbs.forEach(p -> { |
|
|
|
//给下项目添加域信息和url
|
|
|
|
p.setUrl(PropUtil.notGatewayUrl); |
|
|
@ -233,24 +233,24 @@ public class TallService implements ITallService { |
|
|
|
List<TallRoleVo.RoleInfo> invisibleList = new ArrayList<>(); |
|
|
|
|
|
|
|
//查询当前用户在项目下的角色,没有则算作关注者
|
|
|
|
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(),user == null ? null : user.getId()); |
|
|
|
List<ProRole> userRoleList = proRoleDao.queryRoleByUserId(param.getProjectId(), user == null ? null : user.getId()); |
|
|
|
|
|
|
|
//查询用户可见的角色
|
|
|
|
List<TallRoleVo.RoleInfo> roleInfoList; |
|
|
|
if(CollectionUtil.isNotEmpty(userRoleList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(userRoleList)) { |
|
|
|
//不是关注者,查询可见的角色(完全屏蔽才不可见)
|
|
|
|
roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(),userRoleList); |
|
|
|
}else { |
|
|
|
roleInfoList = proRoleDao.notAttentionQueryRole(param.getProjectId(), userRoleList); |
|
|
|
} else { |
|
|
|
//是关注者查询可见的角色(未设置过对谁不可见信息的角色)
|
|
|
|
roleInfoList = proRoleDao.attentionQueryRole(param.getProjectId()); |
|
|
|
} |
|
|
|
//查询配置信息
|
|
|
|
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(),user == null ? null : user.getId()); |
|
|
|
if(CollectionUtil.isNotEmpty(showRoleList)){ |
|
|
|
List<Long> showRoleList = proRoleDao.queryShowByUserAndProject(param.getProjectId(), user == null ? null : user.getId()); |
|
|
|
if (CollectionUtil.isNotEmpty(showRoleList)) { |
|
|
|
for (Long showRoleId : showRoleList) { |
|
|
|
//循环配置内的信息去匹配角色列表,来确定角色该放在什么地方
|
|
|
|
for (TallRoleVo.RoleInfo roleInfo : roleInfoList) { |
|
|
|
if(showRoleId.equals(roleInfo.getId())){ |
|
|
|
if (showRoleId.equals(roleInfo.getId())) { |
|
|
|
//和配置内的信息相同则放入展示角色列表
|
|
|
|
visibleList.add(roleInfo); |
|
|
|
//同时删除数组内的信息
|
|
|
@ -262,7 +262,7 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
//剩下的角色全部放在不可见角色列表
|
|
|
|
invisibleList.addAll(roleInfoList); |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
//没有配置信息则按默认规则
|
|
|
|
if (CollectionUtil.isNotEmpty(roleInfoList)) { |
|
|
|
//循环所有角色
|
|
|
@ -280,7 +280,7 @@ public class TallService implements ITallService { |
|
|
|
//不是用户所属的角色,但展示角色列表数量不足设置的数量
|
|
|
|
|
|
|
|
//展示数量等于0,展示全部
|
|
|
|
if(param.getNum() == 0){ |
|
|
|
if (param.getNum() == 0) { |
|
|
|
visibleList.add(roleInfo); |
|
|
|
continue; |
|
|
|
} |
|
|
@ -316,7 +316,7 @@ public class TallService implements ITallService { |
|
|
|
queryCheckerOfTask(permanentGlobalTask); |
|
|
|
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(permanentGlobalTask,user == null ? null : user.getId()); |
|
|
|
queryPluginShow(permanentGlobalTask, user == null ? null : user.getId()); |
|
|
|
return permanentGlobalTask; |
|
|
|
} |
|
|
|
|
|
|
@ -335,7 +335,7 @@ public class TallService implements ITallService { |
|
|
|
queryCheckerOfTask(globalTask); |
|
|
|
|
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(globalTask,user == null ? null : user.getId()); |
|
|
|
queryPluginShow(globalTask, user == null ? null : user.getId()); |
|
|
|
return globalTask; |
|
|
|
} |
|
|
|
|
|
|
@ -455,6 +455,7 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建面板 |
|
|
|
* |
|
|
@ -474,16 +475,18 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询任务下的检查人 |
|
|
|
* |
|
|
|
* @param taskList 任务列表 |
|
|
|
*/ |
|
|
|
public void queryCheckerOfTask(List<TallTaskVo.QueryTask> taskList) { |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
for (TallTaskVo.QueryTask queryTask : taskList) { |
|
|
|
List<TallTaskVo.CheckerOfTask> checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId()); |
|
|
|
List<TallTaskVo.CheckerOfTask> checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId()); |
|
|
|
queryTask.setCheckerList(checkerList); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 向空面板里插入插件详情 |
|
|
|
* |
|
|
@ -502,11 +505,12 @@ public class TallService implements ITallService { |
|
|
|
} |
|
|
|
queryTask.setPlugins(plugins); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据插件的最大行列创建面板 |
|
|
|
* |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
* @param plugins 插件列表 |
|
|
|
* @param queryTask 任务 |
|
|
|
*/ |
|
|
|
public void createPanelByPlugin(List<List<TallTaskVo.TaskPluginInfo>> plugins, TallTaskVo.QueryTask queryTask) { |
|
|
|
List<TallTaskVo.TaskPluginInfo> taskPluginInfoList = taskPluginDao.queryTaskOfPlugin(queryTask.getId()); |
|
|
@ -583,15 +587,15 @@ public class TallService implements ITallService { |
|
|
|
// return null;
|
|
|
|
// }
|
|
|
|
|
|
|
|
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask,Long userId) { |
|
|
|
if(CollectionUtil.isEmpty(regularTask)){ |
|
|
|
private void queryPluginShow(List<TallTaskVo.QueryTask> regularTask, Long userId) { |
|
|
|
if (CollectionUtil.isEmpty(regularTask)) { |
|
|
|
return; |
|
|
|
} |
|
|
|
for (TallTaskVo.QueryTask queryTask : regularTask) { |
|
|
|
if(CollectionUtil.isNotEmpty(queryTask.getPlugins())){ |
|
|
|
if (CollectionUtil.isNotEmpty(queryTask.getPlugins())) { |
|
|
|
|
|
|
|
for (List<TallTaskVo.TaskPluginInfo> plugins : queryTask.getPlugins()) { |
|
|
|
if(CollectionUtil.isNotEmpty(plugins)){ |
|
|
|
if (CollectionUtil.isNotEmpty(plugins)) { |
|
|
|
for (TallTaskVo.TaskPluginInfo plugin : plugins) { |
|
|
|
System.out.println("====" + plugin); |
|
|
|
//TODO 判断插件类型,暂时一个个的判断,之后应该是统一的接口
|
|
|
@ -621,23 +625,23 @@ public class TallService implements ITallService { |
|
|
|
//查询用的时间
|
|
|
|
Long queryTime = System.currentTimeMillis(); |
|
|
|
|
|
|
|
if(ObjectUtil.isNotNull(param.getTaskId())){ |
|
|
|
if (ObjectUtil.isNotNull(param.getTaskId())) { |
|
|
|
//根据任务id查找任务,以任务的开始时间当做查询的时间点
|
|
|
|
ProTaskSub proTaskSub = proTaskSubDao.selectByPrimaryKey(param.getTaskId()); |
|
|
|
if(ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L){ |
|
|
|
if (ObjectUtil.isNotNull(proTaskSub) && proTaskSub.getPlanStartTime() != 0L) { |
|
|
|
queryTime = proTaskSub.getPlanStartTime(); |
|
|
|
} |
|
|
|
}else { |
|
|
|
if(ObjectUtil.isNotNull(param.getTimeNode())){ |
|
|
|
} else { |
|
|
|
if (ObjectUtil.isNotNull(param.getTimeNode())) { |
|
|
|
//没有任务id则根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
|
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(),param.getRoleId()); |
|
|
|
if(ObjectUtil.isNotNull(startTime)){ |
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(param.getTimeNode(), param.getRoleId()); |
|
|
|
if (ObjectUtil.isNotNull(startTime)) { |
|
|
|
queryTime = startTime; |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
//如果没有时间基准线则按当前时间查询查询任务
|
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(),param.getRoleId()); |
|
|
|
if(ObjectUtil.isNotNull(startTime)){ |
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTask(System.currentTimeMillis(), param.getRoleId()); |
|
|
|
if (ObjectUtil.isNotNull(startTime)) { |
|
|
|
queryTime = startTime; |
|
|
|
} |
|
|
|
} |
|
|
@ -650,11 +654,11 @@ public class TallService implements ITallService { |
|
|
|
// }
|
|
|
|
|
|
|
|
//获取任务列表
|
|
|
|
PageHelper.startPage(param.getPageNum(),param.getPageSize()); |
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(0, null, param.getRoleId(),queryTime,param.getTimeUnit(),param.getQueryType(),param.getTaskId(),param.getTriggerType()); |
|
|
|
PageHelper.startPage(param.getPageNum(), param.getPageSize()); |
|
|
|
List<TallTaskVo.QueryTask> regularTask = taskDetailDao.pageQueryRegularTask(0, null, param.getRoleId(), queryTime, param.getTimeUnit(), param.getQueryType(), param.getTaskId(), param.getTriggerType()); |
|
|
|
PageInfo<TallTaskVo.QueryTask> queryTaskPageInfo = new PageInfo<>(regularTask); |
|
|
|
if(CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())){ |
|
|
|
if(param.getQueryType() == 0){ |
|
|
|
if (CollectionUtil.isNotEmpty(queryTaskPageInfo.getList())) { |
|
|
|
if (param.getQueryType() == 0) { |
|
|
|
//向上查找任务顺序是倒的,需要改成正序
|
|
|
|
List<TallTaskVo.QueryTask> taskList = new ArrayList<>(); |
|
|
|
for (int i = queryTaskPageInfo.getList().size() - 1; i >= 0; i--) { |
|
|
@ -667,7 +671,7 @@ public class TallService implements ITallService { |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(queryTaskPageInfo.getList()); |
|
|
|
//查询插件展示信息
|
|
|
|
queryPluginShow(queryTaskPageInfo.getList(),user == null ? null : user.getId()); |
|
|
|
queryPluginShow(queryTaskPageInfo.getList(), user == null ? null : user.getId()); |
|
|
|
} |
|
|
|
|
|
|
|
return queryTaskPageInfo; |
|
|
@ -678,7 +682,7 @@ public class TallService implements ITallService { |
|
|
|
List<TallTaskVo.QueryTask> queryTaskList = new ArrayList<>(); |
|
|
|
//通过手机号查找服务内的用户
|
|
|
|
ProUser user = userDao.getUserIdByPhone(param.getPhone()); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
if (ObjectUtil.isNull(user)) { |
|
|
|
return queryTaskList; |
|
|
|
} |
|
|
|
//查找用户所属的成员,查找所属的角色
|
|
|
@ -686,31 +690,35 @@ public class TallService implements ITallService { |
|
|
|
|
|
|
|
//根据时间基准线查询当前正在进行的任务(如果多个则选择时间最早的一个)
|
|
|
|
Long queryTime = param.getTimeNode(); |
|
|
|
if(CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
Long startTime = proTaskSubDao.getTimeByProgressTaskAndRoleList(param.getTimeNode(), roleList); |
|
|
|
if (ObjectUtil.isNotNull(startTime)) { |
|
|
|
queryTime = startTime; |
|
|
|
} |
|
|
|
} |
|
|
|
if(CollectionUtil.isNotEmpty(roleList)){ |
|
|
|
if (CollectionUtil.isNotEmpty(roleList)) { |
|
|
|
//通过角色和时间等信息,查找任务,如果传入的参数有任务id且code符合当前服务,则排除该任务
|
|
|
|
String taskId = Constant.BUSINESS_CODE.equals(param.getBusinessCode()) ? param.getTaskId() : null; |
|
|
|
PageHelper.startPage(param.getPageNum(),param.getPageSize()); |
|
|
|
queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList,queryTime,param.getTimeUnit(),param.getQueryType(),taskId); |
|
|
|
PageHelper.startPage(param.getPageNum(), param.getPageSize()); |
|
|
|
queryTaskList = taskDetailDao.getAllTaskByRoleList(roleList, queryTime, param.getTimeUnit(), param.getQueryType(), taskId); |
|
|
|
if(CollectionUtil.isNotEmpty(queryTaskList)){ |
|
|
|
queryTaskList.forEach(queryTask -> { |
|
|
|
Long roleId = roleDao.getExecutorRoleId(queryTask.getDetailId(),user.getId()); |
|
|
|
queryTask.setExecutorRoleId(roleId); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
return queryTaskList; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteProject(String token, TallProjectDto.ProjectById params) { |
|
|
|
//查找用户
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
|
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
if (ObjectUtil.isNull(user)) { |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
|
} |
|
|
|
//判断用户是否是项目经理
|
|
|
@ -728,136 +736,138 @@ public class TallService implements ITallService { |
|
|
|
ProTaskSubExample taskSubExample = new ProTaskSubExample(); |
|
|
|
taskSubExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId()); |
|
|
|
ProTaskSub taskSub = new ProTaskSub(); |
|
|
|
taskSub.setRecStatus((byte)2); |
|
|
|
proTaskSubDao.updateByExampleSelective(taskSub,taskSubExample); |
|
|
|
taskSub.setRecStatus((byte) 2); |
|
|
|
proTaskSubDao.updateByExampleSelective(taskSub, taskSubExample); |
|
|
|
//删除之前的版本信息
|
|
|
|
ProTaskVersion taskVersion = new ProTaskVersion(); |
|
|
|
taskVersion.setRecStatus((byte)2); |
|
|
|
taskVersion.setRecStatus((byte) 2); |
|
|
|
ProTaskVersionExample taskVersionExample = new ProTaskVersionExample(); |
|
|
|
taskVersionExample.createCriteria().andTaskDetailIdEqualTo(params.getProjectId()); |
|
|
|
taskVersionDao.updateByExampleSelective(taskVersion,taskVersionExample); |
|
|
|
taskVersionDao.updateByExampleSelective(taskVersion, taskVersionExample); |
|
|
|
//删除项目标签相关的
|
|
|
|
LabelBusiness labelBusiness = new LabelBusiness(); |
|
|
|
labelBusiness.setRecStatus((byte)2); |
|
|
|
labelBusiness.setRecStatus((byte) 2); |
|
|
|
LabelBusinessExample labelBusinessExample = new LabelBusinessExample(); |
|
|
|
labelBusinessExample.createCriteria().andBusinessIdEqualTo(params.getProjectId()); |
|
|
|
labelBusinessDao.updateByExampleSelective(labelBusiness,labelBusinessExample); |
|
|
|
labelBusinessDao.updateByExampleSelective(labelBusiness, labelBusinessExample); |
|
|
|
//删除项目分享表
|
|
|
|
ProTaskShare taskShare = new ProTaskShare(); |
|
|
|
taskShare.setRecStatus((byte)2); |
|
|
|
taskShare.setRecStatus((byte) 2); |
|
|
|
ProTaskShareExample taskShareExample = new ProTaskShareExample(); |
|
|
|
taskShareExample.createCriteria().andOriginalProjectIdEqualTo(params.getProjectId()); |
|
|
|
taskShareMapper.updateByExampleSelective(taskShare,taskShareExample); |
|
|
|
taskShareMapper.updateByExampleSelective(taskShare, taskShareExample); |
|
|
|
|
|
|
|
//删除角色和成员
|
|
|
|
List<Long> roleIdList = roleDao.queryRoleListOfProject(project.getId()); |
|
|
|
ProRole role = new ProRole(); |
|
|
|
role.setRecStatus((byte)2); |
|
|
|
role.setRecStatus((byte) 2); |
|
|
|
ProRoleExample roleExample = new ProRoleExample(); |
|
|
|
roleExample.createCriteria().andIdIn(roleIdList); |
|
|
|
roleDao.updateByExampleSelective(role,roleExample); |
|
|
|
roleDao.updateByExampleSelective(role, roleExample); |
|
|
|
List<Long> memberIdList = memberDao.queryMembersOfProject(project.getId()); |
|
|
|
ProMember member = new ProMember(); |
|
|
|
member.setRecStatus((byte)2); |
|
|
|
member.setRecStatus((byte) 2); |
|
|
|
ProMemberExample memberExample = new ProMemberExample(); |
|
|
|
memberExample.createCriteria().andIdIn(memberIdList); |
|
|
|
memberDao.updateByExampleSelective(member,memberExample); |
|
|
|
memberDao.updateByExampleSelective(member, memberExample); |
|
|
|
//删除奖惩干系人
|
|
|
|
ProMemberStakeholder memberStakeholder = new ProMemberStakeholder(); |
|
|
|
memberStakeholder.setRecStatus((byte)2); |
|
|
|
memberStakeholder.setRecStatus((byte) 2); |
|
|
|
ProMemberStakeholderExample memberStakeholderExample = new ProMemberStakeholderExample(); |
|
|
|
memberStakeholderExample.createCriteria().andMemeberIdIn(memberIdList); |
|
|
|
memberStakeholderDao.updateByExampleSelective(memberStakeholder,memberStakeholderExample); |
|
|
|
memberStakeholderDao.updateByExampleSelective(memberStakeholder, memberStakeholderExample); |
|
|
|
//删除对谁不可见
|
|
|
|
ProRoleRepulsion roleRepulsion = new ProRoleRepulsion(); |
|
|
|
roleRepulsion.setRecStatus((byte)2); |
|
|
|
roleRepulsion.setRecStatus((byte) 2); |
|
|
|
ProRoleRepulsionExample roleRepulsionExample = new ProRoleRepulsionExample(); |
|
|
|
roleRepulsionExample.createCriteria().andRoleIdIn(roleIdList); |
|
|
|
roleRepulsionDao.updateByExampleSelective(roleRepulsion,roleRepulsionExample); |
|
|
|
roleRepulsionDao.updateByExampleSelective(roleRepulsion, roleRepulsionExample); |
|
|
|
//删除角色成员关联
|
|
|
|
ProRoleMember roleMember = new ProRoleMember(); |
|
|
|
roleMember.setRecStatus((byte)2); |
|
|
|
roleMember.setRecStatus((byte) 2); |
|
|
|
ProRoleMemberExample roleMemberExample = new ProRoleMemberExample(); |
|
|
|
roleMemberExample.createCriteria().andRoleIdIn(roleIdList); |
|
|
|
roleMemberDao.updateByExampleSelective(roleMember,roleMemberExample); |
|
|
|
roleMemberDao.updateByExampleSelective(roleMember, roleMemberExample); |
|
|
|
//删除角色展示
|
|
|
|
ProRoleShow roleShow = new ProRoleShow(); |
|
|
|
roleShow.setRecStatus((byte)2); |
|
|
|
roleShow.setRecStatus((byte) 2); |
|
|
|
ProRoleShowExample roleShowExample = new ProRoleShowExample(); |
|
|
|
roleShowExample.createCriteria().andRoleIdIn(roleIdList); |
|
|
|
roleShowMapper.updateByExampleSelective(roleShow,roleShowExample); |
|
|
|
roleShowMapper.updateByExampleSelective(roleShow, roleShowExample); |
|
|
|
|
|
|
|
//根据项目id查询所有一二级任务详情id 删除任务相关
|
|
|
|
List<Long> allTaskId = parentTaskDao.queryAllTaskIdByProjectId(params.getProjectId()); |
|
|
|
//删除所有的任务详情
|
|
|
|
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 = proTaskSubDao.selectByExample(taskSubExample1); |
|
|
|
List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList()); |
|
|
|
proTaskSubDao.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); |
|
|
|
taskFlowMapper.updateByExampleSelective(taskFlow,taskFlowExample); |
|
|
|
//删除任务上下道工序
|
|
|
|
ProTaskProcess taskProcess = new ProTaskProcess(); |
|
|
|
taskProcess.setRecStatus((byte)2); |
|
|
|
ProTaskProcessExample taskProcessExample = new ProTaskProcessExample(); |
|
|
|
taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskProcessMapper.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); |
|
|
|
proTaskNotifyMapper.updateByExampleSelective(taskNotify,taskNotifyExample); |
|
|
|
//删除任务面板信息
|
|
|
|
ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo(); |
|
|
|
taskPanelInfo.setRecStatus((byte)2); |
|
|
|
ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample(); |
|
|
|
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo,taskPanelInfoExample); |
|
|
|
if (CollectionUtil.isNotEmpty(allTaskId)) { |
|
|
|
//删除所有的任务详情
|
|
|
|
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 = proTaskSubDao.selectByExample(taskSubExample1); |
|
|
|
List<Long> allSubTaskId = taskSubList.stream().map(ProTaskSub::getId).collect(Collectors.toList()); |
|
|
|
proTaskSubDao.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); |
|
|
|
taskFlowMapper.updateByExampleSelective(taskFlow, taskFlowExample); |
|
|
|
//删除任务上下道工序
|
|
|
|
ProTaskProcess taskProcess = new ProTaskProcess(); |
|
|
|
taskProcess.setRecStatus((byte) 2); |
|
|
|
ProTaskProcessExample taskProcessExample = new ProTaskProcessExample(); |
|
|
|
taskProcessExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskProcessMapper.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); |
|
|
|
proTaskNotifyMapper.updateByExampleSelective(taskNotify, taskNotifyExample); |
|
|
|
//删除任务面板信息
|
|
|
|
ProTaskPanelInfo taskPanelInfo = new ProTaskPanelInfo(); |
|
|
|
taskPanelInfo.setRecStatus((byte) 2); |
|
|
|
ProTaskPanelInfoExample taskPanelInfoExample = new ProTaskPanelInfoExample(); |
|
|
|
taskPanelInfoExample.createCriteria().andTaskDetailIdIn(allTaskId); |
|
|
|
taskPanelInfoMapper.updateByExampleSelective(taskPanelInfo, taskPanelInfoExample); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -865,18 +875,18 @@ public class TallService implements ITallService { |
|
|
|
//获取用户信息
|
|
|
|
ProUser user = getUserByToken(token); |
|
|
|
log.info("本服务下的用户信息:{}", user); |
|
|
|
if(ObjectUtil.isNull(user)){ |
|
|
|
if (ObjectUtil.isNull(user)) { |
|
|
|
throw new BaseException(BasicsCodeError.NOT_USER_SERVER); |
|
|
|
} |
|
|
|
//检查移动的项目是否存在
|
|
|
|
ProTaskDetail moveProject = taskDetailDao.selectByPrimaryKey(params.getMoveProjectId()); |
|
|
|
if(ObjectUtil.isNull(moveProject)){ |
|
|
|
if (ObjectUtil.isNull(moveProject)) { |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
//如果目标项目id不为空,检查项目是否存在
|
|
|
|
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ |
|
|
|
if (ObjectUtil.isNotNull(params.getTargetProjectId())) { |
|
|
|
ProTaskDetail targetProject = taskDetailDao.selectByPrimaryKey(params.getTargetProjectId()); |
|
|
|
if(ObjectUtil.isNull(targetProject)){ |
|
|
|
if (ObjectUtil.isNull(targetProject)) { |
|
|
|
throw new BaseException(BasicsCodeError.PROJECT_NOT_FOUND); |
|
|
|
} |
|
|
|
} |
|
|
@ -890,14 +900,14 @@ public class TallService implements ITallService { |
|
|
|
ProParentTaskExample parentTaskExample = new ProParentTaskExample(); |
|
|
|
parentTaskExample.createCriteria().andTaskDetailIdEqualTo(params.getMoveProjectId()); |
|
|
|
List<ProParentTask> proParentTasks = parentTaskDao.selectByExample(parentTaskExample); |
|
|
|
if(CollectionUtil.isNotEmpty(proParentTasks)){ |
|
|
|
if (CollectionUtil.isNotEmpty(proParentTasks)) { |
|
|
|
proParentTasks.forEach(proParentTask -> { |
|
|
|
proParentTask.setRecStatus((byte) 2); |
|
|
|
parentTaskDao.updateByPrimaryKeySelective(proParentTask); |
|
|
|
}); |
|
|
|
} |
|
|
|
//重新添加
|
|
|
|
if(ObjectUtil.isNotNull(params.getTargetProjectId())){ |
|
|
|
if (ObjectUtil.isNotNull(params.getTargetProjectId())) { |
|
|
|
ProParentTask proParentTask = new ProParentTask(); |
|
|
|
proParentTask.setId(snowflake.nextId()); |
|
|
|
proParentTask.setTaskDetailId(params.getMoveProjectId()); |
|
|
|