@ -111,11 +111,11 @@ public class ProTaskDetailService implements IProTaskDetailService {
if ( parentRole . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . PM . value ) ) {
obj = getTaskInfoByProjectIdAndPm ( currentUserId , projectId , taskInfoByRoleId . getRoleId ( ) ,
taskInfoByRoleId . getStartTime ( ) , taskInfoByRoleId . getEndTime ( ) , taskInfoByRoleId . getProcess ( ) ,
taskInfoByRoleId . getPage ( ) , taskInfoByRoleId . getPageSize ( ) , taskInfoByRoleId . getPriority ( ) , taskInfoByRoleId . getImitation ( ) ) ;
taskInfoByRoleId . getPage ( ) , taskInfoByRoleId . getPageSize ( ) , taskInfoByRoleId . getPriority ( ) , taskInfoByRoleId . getImitation ( ) ) ;
} else if ( parentRole . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . Member . value ) ) {
obj = getTaskInfoByProjectIdAndRoleId ( currentUserId , projectId , taskInfoByRoleId . getRoleId ( ) ,
obj = getTaskInfoByProjectIdAndRoleId ( currentUserId , projectId , taskInfoByRoleId . getRoleId ( ) ,
taskInfoByRoleId . getStartTime ( ) , taskInfoByRoleId . getEndTime ( ) , taskInfoByRoleId . getProcess ( ) ,
taskInfoByRoleId . getPage ( ) , taskInfoByRoleId . getPageSize ( ) , taskInfoByRoleId . getPriority ( ) , taskInfoByRoleId . getImitation ( ) ) ;
taskInfoByRoleId . getPage ( ) , taskInfoByRoleId . getPageSize ( ) , taskInfoByRoleId . getPriority ( ) , taskInfoByRoleId . getImitation ( ) ) ;
}
} else {
throw new BaseException ( CodeEnum . NOT_ROLE ) ;
@ -129,7 +129,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
* /
private TaskVo . ProTaskShow getProTaskShow ( Long taskId ) {
TaskVo . ProTaskShow proTaskShow = proTaskShowDao . getProTaskShowByTaskId ( taskId ) ;
if ( ObjectUtil . isNull ( proTaskShow ) ) {
if ( ObjectUtil . isNull ( proTaskShow ) ) {
proTaskShow = new TaskVo . ProTaskShow ( ) ;
proTaskShow . setTimeShow ( "MM-DD HH:mm" ) ;
proTaskShow . setDuration ( 0 ) ;
@ -142,6 +142,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
return proTaskShow ;
}
/ * *
* 查看任务 项目经理
* /
@ -171,7 +172,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask . setSequence ( sequence ) ;
// 查询任务名对应的配置
ProPluginConfigExample configExample = new ProPluginConfigExample ( ) ;
configExample . createCriteria ( ) . andTaskIdEqualTo ( firstTaskDetail . getId ( ) ) . andPlaceLocationEqualTo ( ( byte ) 0 ) ;
configExample . createCriteria ( ) . andTaskIdEqualTo ( firstTaskDetail . getId ( ) ) . andPlaceLocationEqualTo ( ( byte ) 0 ) ;
List < ProPluginConfig > proPluginConfigs = proPluginConfigMapper . selectByExample ( configExample ) ;
if ( CollectionUtil . isNotEmpty ( proPluginConfigs ) ) {
ProPluginConfig config = proPluginConfigs . get ( 0 ) ;
@ -189,23 +190,23 @@ public class ProTaskDetailService implements IProTaskDetailService {
normalTask . setProcess ( firstSubTimeMember . getComplatedStatus ( ) ) ;
}
//查找一级任务下的二级任务
List < TaskVo . NormalTask > secondNormalTaskList = taskDetailDao . selectNormalTaskListByPM ( projectId , firstTaskDetail . getId ( ) , startTime , endTime , roleId ) ;
List < TaskVo . NormalTask > secondNormalTaskList = taskDetailDao . selectNormalTaskListByPM ( projectId , firstTaskDetail . getId ( ) , startTime , endTime , roleId ) ;
if ( CollectionUtil . isNotEmpty ( secondNormalTaskList ) ) {
for ( TaskVo . NormalTask task : secondNormalTaskList ) {
//处理分数
BigDecimal score = mtFeignClient . getAdminScore ( task . getProjectId ( ) , task . getDetailId ( ) ) ;
if ( ObjectUtil . isNotNull ( score ) ) {
BigDecimal score = mtFeignClient . getAdminScore ( task . getProjectId ( ) , task . getDetailId ( ) ) ;
if ( ObjectUtil . isNotNull ( score ) ) {
task . setScore ( score ) ;
}
//处理插件
managePlugin ( currentUserId , roleId , task , imitation ) ;
managePlugin ( currentUserId , roleId , task , imitation ) ;
//二级任务完成状态
if ( task . getProcess ( ) ! = 2 ) {
if ( task . getProcess ( ) ! = 2 ) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask ( currentUserId , task . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( subTimeMember ) ) {
task . setRealEndTime ( subTimeMember . getRealFinishTime ( ) ) ;
task . setProcess ( subTimeMember . getComplatedStatus ( ) ) ;
} else if ( task . getProcess ( ) > 2 ) {
} else if ( task . getProcess ( ) > 2 ) {
task . setRealEndTime ( ( long ) 0 ) ;
task . setProcess ( 0 ) ;
}
@ -248,7 +249,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
* 查看任务 项目成员
* /
private TaskVo . ProTaskInfo getTaskInfoByProjectIdAndRoleId ( Long currentUserId , Long projectId , Long roleId , Long startTime ,
Long endTime , Integer process , Integer page , Integer pageSize , Integer priority , Integer imitation ) throws Exception {
Long endTime , Integer process , Integer page , Integer pageSize , Integer priority , Integer imitation ) throws Exception {
TaskVo . ProTaskInfo proTaskInfo = new TaskVo . ProTaskInfo ( ) ;
List < TaskVo . GlobalTask > globalTaskList = new ArrayList < > ( ) ;
@ -262,27 +263,27 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//查找该角色的所有任务(全体成员的任务也是这个角色的任务)
List < TaskVo . NormalTask > secondTaskVoList = taskDetailDao . selectTaskByRoleAndAllMembers ( projectId , roleId ,
allMemberId , startTime , endTime , priority ) ;
allMemberId , startTime , endTime , priority ) ;
if ( CollectionUtil . isNotEmpty ( secondTaskVoList ) ) {
for ( TaskVo . NormalTask normalTask : secondTaskVoList ) {
//处理分数
MemberVo . MemberInfo memberInfo = proMemberService . getMemberByUserIdAndProjectId ( currentUserId , normalTask . getProjectId ( ) ) ;
if ( ObjectUtil . isNotNull ( memberInfo ) ) {
MemberVo . MemberInfo memberInfo = proMemberService . getMemberByUserIdAndProjectId ( currentUserId , normalTask . getProjectId ( ) ) ;
if ( ObjectUtil . isNotNull ( memberInfo ) ) {
BigDecimal score = mtFeignClient . getMemberScore ( normalTask . getDetailId ( ) , memberInfo . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( score ) ) {
normalTask . setScore ( score ) ;
}
}
//处理插件
managePlugin ( currentUserId , roleId , normalTask , imitation ) ;
managePlugin ( currentUserId , roleId , normalTask , imitation ) ;
//任务完成状态
if ( normalTask . getProcess ( ) ! = 2 ) {
if ( normalTask . getProcess ( ) ! = 2 ) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask ( currentUserId , normalTask . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( subTimeMember ) ) {
normalTask . setProcess ( subTimeMember . getComplatedStatus ( ) ) ;
normalTask . setRealEndTime ( subTimeMember . getRealFinishTime ( ) ) ;
} else if ( normalTask . getProcess ( ) > 2 ) {
} else if ( normalTask . getProcess ( ) > 2 ) {
normalTask . setRealEndTime ( ( long ) 0 ) ;
normalTask . setProcess ( 0 ) ;
}
@ -305,7 +306,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
if ( CollectionUtil . isNotEmpty ( task . getCommonTask ( ) ) ) {
if ( priority = = 0 ) {
normalTaskList = sortTaskTime ( task . getCommonTask ( ) ) ;
} else {
} else {
normalTaskList = task . getCommonTask ( ) ;
}
}
@ -403,7 +404,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
continue ;
}
if ( secondTaskVo . getBeginTime ( ) < startTime & & secondTaskVo . getEndTime ( ) < = endTime & & secondTaskVo . getEndTime ( ) > startTime ) {
if ( secondTaskVo . getBeginTime ( ) < startTime & & secondTaskVo . getEndTime ( ) < = endTime & & secondTaskVo . getEndTime ( ) > startTime ) {
secondTaskVo . setBeginTime ( startTime ) ;
secondTaskVoList . add ( secondTaskVo ) ;
} else if ( secondTaskVo . getBeginTime ( ) > = startTime & & secondTaskVo . getEndTime ( ) < = endTime ) {
@ -443,29 +444,29 @@ public class ProTaskDetailService implements IProTaskDetailService {
* 处理任务的插件
* /
@Override
public void managePlugin ( Long userId , Long roleId , TaskVo . NormalTask normalTask , Integer imitation ) throws Exception {
Boolean isMain = proMemberService . userIsBelongRole ( userId , roleId , imitation ) ;
if ( ! isMain ) {
public void managePlugin ( Long userId , Long roleId , TaskVo . NormalTask normalTask , Integer imitation ) throws Exception {
Boolean isMain = proMemberService . userIsBelongRole ( userId , roleId , imitation ) ;
if ( ! isMain ) {
normalTask . setPlugins ( null ) ;
} else {
if ( CollectionUtil . isNotEmpty ( normalTask . getPlugins ( ) ) ) {
} else {
if ( CollectionUtil . isNotEmpty ( normalTask . getPlugins ( ) ) ) {
List < TaskVo . PluginVo > pluginVoList = new ArrayList < > ( ) ;
for ( TaskVo . PluginVo pluginVo : normalTask . getPlugins ( ) ) {
for ( TaskVo . PluginVo pluginVo : normalTask . getPlugins ( ) ) {
String [ ] pluginIds = pluginVo . getId ( ) . split ( "," ) ;
String [ ] pluginNames = pluginVo . getName ( ) . split ( "," ) ;
String [ ] pluginDescription = pluginVo . getDescription ( ) . split ( "," ) ;
String [ ] pluginShowType = pluginVo . getShowType ( ) . split ( "," ) ;
TaskVo . PluginVo plugin ;
for ( int i = 0 ; i < pluginIds . length ; i + + ) {
for ( int i = 0 ; i < pluginIds . length ; i + + ) {
plugin = new TaskVo . PluginVo ( ) ;
plugin . setId ( pluginIds [ i ] ) ;
plugin . setName ( pluginNames [ i ] ) ;
plugin . setDescription ( pluginDescription [ i ] ) ;
plugin . setShowType ( pluginShowType [ i ] ) ;
//查找插件的配置信息
ProPluginConfig proPluginConfig = sysPluginDao . getPluginConfigByTaskPluginId ( pluginIds [ i ] , normalTask . getDetailId ( ) ) ;
if ( ObjectUtil . isNotNull ( proPluginConfig ) ) {
ProPluginConfig proPluginConfig = sysPluginDao . getPluginConfigByTaskPluginId ( pluginIds [ i ] , normalTask . getDetailId ( ) ) ;
if ( ObjectUtil . isNotNull ( proPluginConfig ) ) {
plugin . setWebPath ( proPluginConfig . getWebPath ( ) ) ;
plugin . setRoutineLocation ( proPluginConfig . getRoutineLocation ( ) ) ;
plugin . setImportParam ( proPluginConfig . getImportParam ( ) ) ;
@ -520,13 +521,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
//检查人信息
taskDeliverByMvp . setChecker ( proRoleService . selectRoleByCheckOrExecutor ( task . getCheckerRole ( ) ) ) ;
//查找任务下的交付物
if ( task . getHasGroup ( ) = = 0 ) {
if ( task . getHasGroup ( ) = = 0 ) {
taskDeliverByMvp . setDelivers ( taskDeliverService . selectDeliverOrInputByTask ( task . getId ( ) , 0 ) ) ;
} else {
} else {
Long now = System . currentTimeMillis ( ) ;
log . info ( task . getName ( ) ) ;
TaskVo . TaskIdAndSubTimeIdByParentIdAndTime taskAndSubTime = taskDetailDao . selectSubTimeByTaskParentIdAndTime ( task . getId ( ) , now ) ;
if ( ObjectUtil . isNotNull ( taskAndSubTime ) ) {
if ( ObjectUtil . isNotNull ( taskAndSubTime ) ) {
taskDeliverByMvp . setDelivers ( taskDeliverService . selectDeliverOrInputByTask ( taskAndSubTime . getTaskId ( ) , 0 ) ) ;
}
}
@ -552,21 +553,25 @@ public class ProTaskDetailService implements IProTaskDetailService {
@Override
public TaskVo . NormalTask getTaskInfoByTaskId ( Long currentUserId , Long projectId , Long taskId , Integer imitation ) throws Exception {
ProTaskSubTime subTime = taskSubTimeDao . selectByPrimaryKey ( taskId ) ;
TaskVo . NormalTask taskDetail = null ;
if ( ObjectUtil . isNotNull ( subTime ) ) {
ProTaskDetail task = taskDetailDao . selectByPrimaryKey ( subTime . getTaskDetailId ( ) ) ;
taskDetail = taskDetailDao . selectTaskByTaskId ( subTime . getId ( ) , subTime . getTaskDetailId ( ) , task . getExecutorRole ( ) ) ;
if ( ObjectUtil . isNotNull ( taskDetail ) ) {
taskId = subTime . getTaskDetailId ( ) ;
}
TaskVo . NormalTask taskDetail ;
ProTaskDetail task = taskDetailDao . selectByPrimaryKey ( taskId ) ;
if ( ObjectUtil . isNull ( task ) ) {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
taskDetail = taskDetailDao . selectTaskByTaskId ( null , taskId , task . getExecutorRole ( ) ) ;
if ( ObjectUtil . isNotNull ( taskDetail ) ) {
//处理查询到的任务的插件
managePlugin ( currentUserId , task . getExecutorRole ( ) , taskDetail , imitation ) ;
managePlugin ( currentUserId , task . getExecutorRole ( ) , taskDetail , imitation ) ;
//任务的完成状态
if ( taskDetail . getProcess ( ) ! = 2 ) {
if ( taskDetail . getProcess ( ) ! = 2 ) {
ProSubTimeMember subTimeMember = getProcessByUserIdAndTask ( currentUserId , taskDetail . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( subTimeMember ) ) {
taskDetail . setProcess ( subTimeMember . getComplatedStatus ( ) ) ;
taskDetail . setRealEndTime ( subTimeMember . getRealFinishTime ( ) ) ;
} else if ( taskDetail . getProcess ( ) > 2 ) {
} else if ( taskDetail . getProcess ( ) > 2 ) {
taskDetail . setRealEndTime ( ( long ) 0 ) ;
taskDetail . setProcess ( 0 ) ;
}
@ -575,7 +580,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskDetail . setProTaskConfig ( getProTaskShow ( taskDetail . getDetailId ( ) ) ) ;
//添加项目信息
normalTaskAddPlugin ( subTime . ge tT askDetail Id( ) , taskDetail ) ;
normalTaskAddPlugin ( taskId , taskDetail ) ;
List < TaskVo . NormalTask > groupTaskList = new ArrayList < > ( ) ;
//提醒信息
@ -584,22 +589,22 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProTaskDetailExample detailExample = new ProTaskDetailExample ( ) ;
detailExample . createCriteria ( ) . andParentIdEqualTo ( taskDetail . getDetailId ( ) ) ;
List < ProTaskDetail > detailList = taskDetailDao . selectByExample ( detailExample ) ;
if ( CollectionUtil . isNotEmpty ( detailList ) ) {
for ( ProTaskDetail detail : detailList ) {
if ( CollectionUtil . isNotEmpty ( detailList ) ) {
for ( ProTaskDetail detail : detailList ) {
TaskVo . NormalTask groupTask ;
Long subTimeId = taskDeliverService . isTaskOrSubTime ( detail . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( subTimeId ) ) {
groupTask = taskDetailDao . selectTaskByTaskId ( subTimeId , detail . getId ( ) , detail . getExecutorRole ( ) ) ;
if ( ObjectUtil . isNotNull ( groupTask ) ) {
if ( ObjectUtil . isNotNull ( subTimeId ) ) {
groupTask = taskDetailDao . selectTaskByTaskId ( subTimeId , detail . getId ( ) , detail . getExecutorRole ( ) ) ;
if ( ObjectUtil . isNotNull ( groupTask ) ) {
//处理查询到的任务的插件
managePlugin ( currentUserId , task . getExecutorRole ( ) , taskDetail , imitation ) ;
managePlugin ( currentUserId , task . getExecutorRole ( ) , taskDetail , imitation ) ;
//任务的完成状态
if ( taskDetail . getProcess ( ) ! = 2 ) {
if ( taskDetail . getProcess ( ) ! = 2 ) {
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask ( currentUserId , groupTask . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( proSubTimeMember ) ) {
groupTask . setProcess ( proSubTimeMember . getComplatedStatus ( ) ) ;
groupTask . setRealEndTime ( proSubTimeMember . getRealFinishTime ( ) ) ;
} else if ( taskDetail . getProcess ( ) > 2 ) {
} else if ( taskDetail . getProcess ( ) > 2 ) {
taskDetail . setRealEndTime ( ( long ) 0 ) ;
taskDetail . setProcess ( 0 ) ;
}
@ -620,11 +625,10 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
}
return taskDetail ;
}
private void normalTaskAddPlugin ( Long taskId , TaskVo . NormalTask normalTask ) {
private void normalTaskAddPlugin ( Long taskId , TaskVo . NormalTask normalTask ) {
ProTaskDetail task = taskDetailDao . selectByPrimaryKey ( taskId ) ;
//添加项目信息
SysProject project = sysProjectDao . selectByPrimaryKey ( task . getProjectId ( ) ) ;
@ -692,7 +696,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
case "创建者" :
for ( SysProject project : projectList ) {
if ( project . getCreatorId ( ) . longValue ( ) = = currentUserId . longValue ( ) ) {
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
if ( CollectionUtil . isNotEmpty ( taskList ) ) {
normalTaskList . addAll ( taskList ) ;
}
@ -702,7 +706,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
case "参与者" :
for ( SysProject project : projectList ) {
if ( project . getCreatorId ( ) . longValue ( ) ! = currentUserId . longValue ( ) ) {
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
if ( CollectionUtil . isNotEmpty ( taskList ) ) {
normalTaskList . addAll ( taskList ) ;
}
@ -714,7 +718,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
} else {
for ( SysProject project : projectList ) {
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( project , currentUserId , startMillisTime , endMillisTime , null ) ;
if ( CollectionUtil . isNotEmpty ( taskList ) ) {
normalTaskList . addAll ( taskList ) ;
}
@ -765,14 +769,14 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
private List < TaskVo . NormalTask > getTaskInfoByProjectIdAndUserId ( SysProject project , Long userId ,
Long startTime , Long endTime , Set < Long > roleList ) throws Exception {
Long startTime , Long endTime , Set < Long > roleList ) throws Exception {
List < TaskVo . NormalTask > normalTaskList = new ArrayList < > ( ) ;
//获取用户的角色
if ( CollectionUtil . isEmpty ( roleList ) ) {
if ( CollectionUtil . isEmpty ( roleList ) ) {
roleList = new HashSet < > ( ) ;
//查询此用户在项目中的的所有角色的任务
List < ProRole > roles = proMemberService . selectRolesByUserIdAndProjectId ( userId , project . getId ( ) , null ) ;
for ( ProRole role : roles ) {
List < ProRole > roles = proMemberService . selectRolesByUserIdAndProjectId ( userId , project . getId ( ) , null ) ;
for ( ProRole role : roles ) {
roleList . add ( role . getId ( ) ) ;
}
// roles.forEach(role->{
@ -789,16 +793,16 @@ public class ProTaskDetailService implements IProTaskDetailService {
for ( Long roleId : roleList ) {
// SysProject sysProject = sysProjectDao.selectByPrimaryKey(role.getProjectId());
List < TaskVo . NormalTask > taskList =
taskDetailDao . selectTaskByRoleAndAllMembers ( project . getId ( ) , roleId , null , startTime , endTime , 0 ) ;
taskDetailDao . selectTaskByRoleAndAllMembers ( project . getId ( ) , roleId , null , startTime , endTime , 0 ) ;
if ( CollectionUtil . isNotEmpty ( taskList ) ) {
for ( TaskVo . NormalTask normalTask : taskList ) {
//任务的完成状态
if ( normalTask . getProcess ( ) ! = 2 ) {
if ( normalTask . getProcess ( ) ! = 2 ) {
ProSubTimeMember proSubTimeMember = getProcessByUserIdAndTask ( userId , normalTask . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( proSubTimeMember ) ) {
normalTask . setProcess ( proSubTimeMember . getComplatedStatus ( ) ) ;
normalTask . setRealEndTime ( proSubTimeMember . getRealFinishTime ( ) ) ;
} else if ( normalTask . getProcess ( ) > 2 ) {
} else if ( normalTask . getProcess ( ) > 2 ) {
normalTask . setRealEndTime ( ( long ) 0 ) ;
normalTask . setProcess ( 0 ) ;
}
@ -842,18 +846,18 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//获取需查询的角色
Set < Long > roleList = new HashSet < > ( ) ;
if ( ObjectUtil . isNotNull ( list . getRoleList ( ) ) ) {
if ( ObjectUtil . isNotNull ( list . getRoleList ( ) ) ) {
list . getRoleList ( ) . forEach ( roleId - > {
ProRole role = proRoleDao . selectByPrimaryKey ( roleId ) ;
if ( ObjectUtil . isNotNull ( role ) ) {
if ( ObjectUtil . isNotNull ( role ) ) {
ProRole parentRole = proRoleDao . selectByPrimaryKey ( role . getParentId ( ) ) ;
if ( ObjectUtil . isNotNull ( parentRole ) ) {
if ( ObjectUtil . isNotNull ( parentRole ) ) {
//若角色为项目经理或MVP,则查询全部角色
if ( role . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . MVP . value ) | |
parentRole . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . PM . value ) ) {
//查询项目下所有角色
List < ProjectVo . RoleInfo > roleInfoList = proRoleService . getRealMemberRolesByProjectId ( list . getProjectId ( ) ) ;
if ( CollectionUtil . isNotEmpty ( roleInfoList ) ) {
if ( CollectionUtil . isNotEmpty ( roleInfoList ) ) {
for ( ProjectVo . RoleInfo roleInfo : roleInfoList ) {
// ProRole proRole = proRoleDao.selectByPrimaryKey(roleInfo.getId());
roleList . add ( roleInfo . getId ( ) ) ;
@ -863,7 +867,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
} ) ;
if ( CollectionUtil . isEmpty ( roleList ) ) {
if ( CollectionUtil . isEmpty ( roleList ) ) {
roleList . addAll ( list . getRoleList ( ) ) ;
}
@ -896,7 +900,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//获取项目
SysProject sysProject = sysProjectDao . selectByPrimaryKey ( list . getProjectId ( ) ) ;
if ( ObjectUtil . isNotNull ( sysProject ) ) {
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( sysProject , currentUserId , startMillisTime , endMillisTime , roleList ) ;
List < TaskVo . NormalTask > taskList = getTaskInfoByProjectIdAndUserId ( sysProject , currentUserId , startMillisTime , endMillisTime , roleList ) ;
if ( CollectionUtil . isNotEmpty ( taskList ) ) {
normalTaskList . addAll ( taskList ) ;
}
@ -974,11 +978,11 @@ public class ProTaskDetailService implements IProTaskDetailService {
public ProSubTimeMember getProcessByUserIdAndTask ( Long userId , Long subTimeId ) throws Exception {
ProSubTimeMember subTimeMember = null ;
ProTaskSubTime subTime = taskSubTimeDao . selectByPrimaryKey ( subTimeId ) ;
if ( ObjectUtil . isNull ( subTime ) ) {
if ( ObjectUtil . isNull ( subTime ) ) {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
ProTaskDetail taskDetail = taskDetailDao . selectByPrimaryKey ( subTime . getTaskDetailId ( ) ) ;
if ( ObjectUtil . isNull ( taskDetail ) ) {
if ( ObjectUtil . isNull ( taskDetail ) ) {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
ProSubTimeMemberExample subTimeMemberExample = new ProSubTimeMemberExample ( ) ;
@ -988,20 +992,20 @@ public class ProTaskDetailService implements IProTaskDetailService {
if ( CollectionUtil . isNotEmpty ( subTimeMemberList ) ) {
if ( taskDetail . getFinishNeedAll ( ) = = 0 ) {
subTimeMember = subTimeMemberList . get ( 0 ) ;
} else {
} else {
//查找此用户在任务下的成员
ProMember porMember = proMemberService . selectByUserId ( userId , taskDetail . getProjectId ( ) ) ;
//该用户是否是任务的负责人
ProRole role = proRoleDao . selectByPrimaryKey ( taskDetail . getExecutorRole ( ) ) ;
Boolean isBelongRole = proMemberService . userIsBelongRole ( userId , role . getId ( ) , null ) ;
Boolean isBelongRole = proMemberService . userIsBelongRole ( userId , role . getId ( ) , null ) ;
if ( isBelongRole ) {
for ( ProSubTimeMember sTimeMember : subTimeMemberList ) {
if ( sTimeMember . getMemberId ( ) . longValue ( ) = = porMember . getId ( ) ) {
for ( ProSubTimeMember sTimeMember : subTimeMemberList ) {
if ( sTimeMember . getMemberId ( ) . longValue ( ) = = porMember . getId ( ) ) {
subTimeMember = sTimeMember ;
break ;
}
}
} else {
} else {
//查找任务负责人下的所有成员
List < ProMember > memberList = proMemberService . selectByRole ( taskDetail . getExecutorRole ( ) ) ;
@ -1019,7 +1023,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
subTimeMember = subTimeMemberList . get ( 0 ) ;
}
if ( flag ) {
if ( flag ) {
subTimeMember = null ;
}
}
@ -1045,13 +1049,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
} else {
taskDetail = taskDetailDao . selectByPrimaryKey ( taskId ) ;
}
if ( ObjectUtil . isNull ( taskDetail ) ) {
if ( ObjectUtil . isNull ( taskDetail ) ) {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
// //本用户在项目中的角色
// List<ProRole> proRoles = proRoleService.getProRoleByProjectIdAndUserId(taskDetail.getProjectId(), currentUserId);
//用户在项目中的最高权限
int power = proRoleService . selectPowerByRoleName ( currentUserId , taskDetail . getProjectId ( ) ) ;
int power = proRoleService . selectPowerByRoleName ( currentUserId , taskDetail . getProjectId ( ) ) ;
if ( power > 1 ) {
if ( ObjectUtil . isNotNull ( taskDetail ) ) {
//修改任务删除状态
@ -1064,7 +1068,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
throw new BaseException ( CodeEnum . NOT_POWER ) ;
}
//通过智能助手发送消息
robotService . deleteTaskRobotSend ( currentUserId , taskDetail ) ;
robotService . deleteTaskRobotSend ( currentUserId , taskDetail ) ;
}
@Override
@ -1072,8 +1076,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProTaskDetailExample taskDetailExample = new ProTaskDetailExample ( ) ;
taskDetailExample . createCriteria ( ) . andExecutorRoleEqualTo ( roleId ) ;
List < ProTaskDetail > detailList = taskDetailDao . selectByExample ( taskDetailExample ) ;
if ( CollectionUtil . isNotEmpty ( detailList ) ) {
for ( ProTaskDetail taskDetail : detailList ) {
if ( CollectionUtil . isNotEmpty ( detailList ) ) {
for ( ProTaskDetail taskDetail : detailList ) {
deleteTaskByTaskId ( taskDetail . getId ( ) ) ;
}
}
@ -1091,8 +1095,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProTaskMemberExample taskMemberExample = new ProTaskMemberExample ( ) ;
taskMemberExample . createCriteria ( ) . andTaskDetailIdEqualTo ( taskId ) ;
List < ProTaskMember > proTaskMemberList = taskMemberDao . selectByExample ( taskMemberExample ) ;
if ( CollectionUtil . isNotEmpty ( proTaskMemberList ) ) {
for ( ProTaskMember proTaskMember : proTaskMemberList ) {
if ( CollectionUtil . isNotEmpty ( proTaskMemberList ) ) {
for ( ProTaskMember proTaskMember : proTaskMemberList ) {
proTaskMember . setRecStatus ( ( byte ) 2 ) ;
taskMemberDao . updateByPrimaryKeySelective ( proTaskMember ) ;
}
@ -1111,22 +1115,22 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProTaskDetail taskDetail ;
ProTaskSubTime taskSubTime = taskSubTimeDao . selectByPrimaryKey ( updateTaskInfo . getId ( ) ) ;
if ( ObjectUtil . isNotNull ( taskSubTime ) ) {
if ( ObjectUtil . isNotNull ( taskSubTime ) ) {
taskDetail = taskDetailDao . selectByPrimaryKey ( taskSubTime . getTaskDetailId ( ) ) ;
} else {
} else {
taskDetail = taskDetailDao . selectByPrimaryKey ( updateTaskInfo . getId ( ) ) ;
}
if ( ObjectUtil . isNotNull ( taskDetail ) ) {
if ( ObjectUtil . isNotNull ( taskDetail ) ) {
SysProject project = sysProjectDao . selectByPrimaryKey ( taskDetail . getProjectId ( ) ) ;
if ( ObjectUtil . isNotNull ( project ) ) {
if ( ObjectUtil . isNotNull ( project ) ) {
//查找权限
int power = proRoleService . selectPowerByRoleName ( currentUserId , project . getId ( ) ) ;
//当前用户是否是此任务的负责人
boolean flag = false ;
ProRole executorRole = proRoleDao . selectByPrimaryKey ( taskDetail . getExecutorRole ( ) ) ;
if ( executorRole . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . AllMember . phase ) ) {
if ( executorRole . getName ( ) . equalsIgnoreCase ( WebConstant . ROLE_NAME . AllMember . phase ) ) {
flag = true ;
} else {
} else {
ProMemberExample memberExample = new ProMemberExample ( ) ;
memberExample . createCriteria ( ) . andUserIdEqualTo ( currentUserId ) . andProjectIdEqualTo ( project . getId ( ) ) ;
List < ProMember > memberList = proMemberDao . selectByExample ( memberExample ) ;
@ -1143,50 +1147,50 @@ public class ProTaskDetailService implements IProTaskDetailService {
if ( power > 1 | | flag ) {
//任务名
if ( StrUtil . isNotEmpty ( updateTaskInfo . getName ( ) ) ) {
if ( StrUtil . isNotEmpty ( updateTaskInfo . getName ( ) ) ) {
taskDetail . setName ( updateTaskInfo . getName ( ) ) ;
}
//详情
if ( StrUtil . isNotEmpty ( updateTaskInfo . getDescription ( ) ) ) {
if ( StrUtil . isNotEmpty ( updateTaskInfo . getDescription ( ) ) ) {
taskDetail . setDescription ( updateTaskInfo . getDescription ( ) ) ;
}
//负责人
if ( ObjectUtil . isNotNull ( updateTaskInfo . getExecutorRole ( ) ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getExecutorRole ( ) ) ) {
taskDetail . setExecutorRole ( updateTaskInfo . getExecutorRole ( ) ) ;
}
//奖惩金额
if ( ObjectUtil . isNotNull ( updateTaskInfo . getMoney ( ) ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getMoney ( ) ) ) {
taskDetail . setMoney ( updateTaskInfo . getMoney ( ) ) ;
}
//切换模式
if ( ObjectUtil . isNotNull ( updateTaskInfo . getDelay ( ) ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getDelay ( ) ) ) {
taskDetail . setDelay ( ( byte ) updateTaskInfo . getDelay ( ) ) ;
}
//修改任务优先级
if ( ObjectUtil . isNotNull ( updateTaskInfo . getPriority ( ) ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getPriority ( ) ) ) {
taskDetail . setPriority ( updateTaskInfo . getPriority ( ) ) ;
}
//延迟切换时间
if ( ObjectUtil . isNotNull ( updateTaskInfo . getDelayTime ( ) ) & &
( taskDetail . getDelay ( ) = = WebConstant . TASK_DELAY . DelayManual . value ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getDelayTime ( ) ) & &
( taskDetail . getDelay ( ) = = WebConstant . TASK_DELAY . DelayManual . value ) ) {
taskDetail . setDelayTime ( updateTaskInfo . getDelayTime ( ) ) ;
}
//是否是里程碑
if ( ObjectUtil . isNotNull ( updateTaskInfo . getMilestone ( ) ) ) {
if ( ObjectUtil . isNotNull ( updateTaskInfo . getMilestone ( ) ) ) {
taskDetail . setMilestone ( updateTaskInfo . getMilestone ( ) ) ;
}
//时间
if ( ObjectUtil . isNotNull ( updateTaskInfo . getBeginTime ( ) ) | |
if ( ObjectUtil . isNotNull ( updateTaskInfo . getBeginTime ( ) ) | |
ObjectUtil . isNotNull ( updateTaskInfo . getEndTime ( ) ) | |
StrUtil . isNotEmpty ( updateTaskInfo . getCycle ( ) ) ) {
StrUtil . isNotEmpty ( updateTaskInfo . getCycle ( ) ) ) {
//一级任务没有时间,不能修改
if ( taskDetail . getLevel ( ) ! = 1 & & taskDetail . getLevel ( ) ! = 0 ) {
changeTime ( taskDetail , updateTaskInfo . getBeginTime ( ) , updateTaskInfo . getEndTime ( ) , project ) ;
if ( taskDetail . getLevel ( ) ! = 1 & & taskDetail . getLevel ( ) ! = 0 ) {
changeTime ( taskDetail , updateTaskInfo . getBeginTime ( ) , updateTaskInfo . getEndTime ( ) , project ) ;
if ( StrUtil . isNotEmpty ( updateTaskInfo . getCycle ( ) ) ) {
taskDetail . setCycle ( updateTaskInfo . getCycle ( ) ) ;
}
//时间赋完值后,检查开始时间是否小于结束时间。(赋值前判断太麻烦)
if ( taskDetail . getBeginTime ( ) > = taskDetail . getEndTime ( ) ) {
if ( taskDetail . getBeginTime ( ) > = taskDetail . getEndTime ( ) ) {
throw new BaseException ( CodeEnum . TIME_ERROR_BEGIN ) ;
}
//删掉旧的subTime
@ -1199,12 +1203,12 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//如果传入的插件不为空,先将原来的插件删除,
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getPlugins ( ) ) ) {
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getPlugins ( ) ) ) {
ProTaskPluginExample pluginExample = new ProTaskPluginExample ( ) ;
pluginExample . createCriteria ( ) . andTaskDetailIdEqualTo ( taskDetail . getId ( ) )
. andMemberRoleIdEqualTo ( taskDetail . getExecutorRole ( ) ) ;
List < ProTaskPlugin > pluginList = taskPluginDao . selectByExample ( pluginExample ) ;
if ( CollectionUtil . isNotEmpty ( pluginList ) ) {
if ( CollectionUtil . isNotEmpty ( pluginList ) ) {
pluginList . forEach ( proTaskPlugin - > {
proTaskPlugin . setRecStatus ( ( byte ) 2 ) ;
taskPluginDao . updateByPrimaryKeySelective ( proTaskPlugin ) ;
@ -1213,7 +1217,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
//将新的插件加入任务
updateTaskInfo . getPlugins ( ) . forEach ( taskPlugin - > {
SysPlugin sysPlugin = sysPluginDao . selectByPrimaryKey ( taskPlugin ) ;
if ( ObjectUtil . isNull ( sysPlugin ) ) {
if ( ObjectUtil . isNull ( sysPlugin ) ) {
throw new BaseException ( CodeEnum . WBS_NOT_PLUGIN ) ;
}
ProTaskPlugin plugin = new ProTaskPlugin ( ) ;
@ -1225,16 +1229,16 @@ public class ProTaskDetailService implements IProTaskDetailService {
} ) ;
}
//修改交付物信息
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getDeliverList ( ) ) ) {
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getDeliverList ( ) ) ) {
updateTaskInfo . getDeliverList ( ) . forEach ( taskDeliver - > {
if ( StrUtil . isNotEmpty ( taskDeliver . getDeliverName ( ) ) ) {
if ( ObjectUtil . isNotNull ( taskDeliver . getDeliverId ( ) ) ) {
if ( StrUtil . isNotEmpty ( taskDeliver . getDeliverName ( ) ) ) {
if ( ObjectUtil . isNotNull ( taskDeliver . getDeliverId ( ) ) ) {
ProTaskDeliver deliver = taskDeliverDao . selectByPrimaryKey ( taskDeliver . getDeliverId ( ) ) ;
if ( ObjectUtil . isNotNull ( deliver ) ) {
deliver . setName ( taskDeliver . getDeliverName ( ) ) ;
taskDeliverDao . updateByPrimaryKeySelective ( deliver ) ;
}
} else {
} else {
ProTaskDeliver deliver = new ProTaskDeliver ( ) ;
deliver . setId ( snowflake . nextId ( ) ) ;
deliver . setTaskDetailId ( taskDetail . getId ( ) ) ;
@ -1250,12 +1254,12 @@ public class ProTaskDetailService implements IProTaskDetailService {
//修改数据
taskDetailDao . updateByPrimaryKeySelective ( taskDetail ) ;
//修改提醒信息
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getTaskRemindList ( ) ) ) {
if ( CollectionUtil . isNotEmpty ( updateTaskInfo . getTaskRemindList ( ) ) ) {
//删除之前的提醒信息
ProRemindExample proRemindExample = new ProRemindExample ( ) ;
proRemindExample . createCriteria ( ) . andSubTaskIdEqualTo ( updateTaskInfo . getId ( ) ) ;
List < ProRemind > proRemindList = proRemindDao . selectByExample ( proRemindExample ) ;
if ( CollectionUtil . isNotEmpty ( proRemindList ) ) {
if ( CollectionUtil . isNotEmpty ( proRemindList ) ) {
proRemindList . forEach ( proRemind - > {
proRemind . setRecStatus ( ( byte ) 2 ) ;
proRemindDao . updateByPrimaryKeySelective ( proRemind ) ;
@ -1263,7 +1267,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
updateTaskInfo . getTaskRemindList ( ) . forEach ( updateTaskRemind - > {
try {
taskSubTimeService . saveRemind ( currentUserId , updateTaskRemind ) ;
taskSubTimeService . saveRemind ( currentUserId , updateTaskRemind ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
@ -1271,30 +1275,31 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
//返回的任务详细信息
Long subTimeId = taskDeliverService . isTaskOrSubTime ( taskDetail . getId ( ) ) ;
normalTask = getTaskInfoByTaskId ( currentUserId , project . getId ( ) , subTimeId , null ) ;
normalTask = getTaskInfoByTaskId ( currentUserId , project . getId ( ) , subTimeId , null ) ;
} else {
throw new BaseException ( CodeEnum . NOT_POWER ) ;
}
} else {
} else {
throw new BaseException ( CodeEnum . NOT_POWER ) ;
}
} else {
} else {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
robotService . changeTaskRobotSend ( currentUserId , normalTask ) ;
robotService . changeTaskRobotSend ( currentUserId , normalTask ) ;
return normalTask ;
}
private void changeTime ( ProTaskDetail taskDetail , Long beginTime , Long endTime , SysProject project ) {
if ( ( ObjectUtil . isNotNull ( beginTime ) & & beginTime > = project . getEndTime ( ) ) | |
( ObjectUtil . isNotNull ( endTime ) & & endTime < = project . getBeginTime ( ) ) ) {
private void changeTime ( ProTaskDetail taskDetail , Long beginTime , Long endTime , SysProject project ) {
if ( ( ObjectUtil . isNotNull ( beginTime ) & & beginTime > = project . getEndTime ( ) ) | |
( ObjectUtil . isNotNull ( endTime ) & & endTime < = project . getBeginTime ( ) ) ) {
throw new BaseException ( CodeEnum . TIME_ERROR_PROJECT ) ;
}
if ( taskDetail . getLevel ( ) = = 2 ) {
if ( taskDetail . getLevel ( ) = = 2 ) {
//组任务不能修改时间(组任务的时间是其子任务的最早和最晚的时间)
if ( taskDetail . getHasGroup ( ) = = 1 ) {
if ( taskDetail . getHasGroup ( ) = = 1 ) {
throw new BaseException ( CodeEnum . HAS_GROUP_TIME_CHANGE ) ;
} else {
} else {
if ( ObjectUtil . isNotNull ( beginTime ) ) {
taskDetail . setBeginTime ( beginTime ) ;
}
@ -1302,18 +1307,18 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskDetail . setEndTime ( endTime ) ;
}
}
} else if ( taskDetail . getLevel ( ) = = 3 ) {
} else if ( taskDetail . getLevel ( ) = = 3 ) {
ProTaskDetail parentTask = taskDetailDao . selectByPrimaryKey ( taskDetail . getParentId ( ) ) ;
if ( parentTask . getHasGroup ( ) = = 1 ) {
if ( parentTask . getHasGroup ( ) = = 1 ) {
//查找组任务中的最早和最晚时间
Long bTime = null ;
Long eTime = null ;
ProTaskDetailExample detailExample = new ProTaskDetailExample ( ) ;
detailExample . createCriteria ( ) . andParentIdEqualTo ( parentTask . getId ( ) ) ;
List < ProTaskDetail > groupTaskList = taskDetailDao . selectByExample ( detailExample ) ;
if ( CollectionUtil . isNotEmpty ( groupTaskList ) ) {
for ( ProTaskDetail groupTask : groupTaskList ) {
if ( groupTask . getId ( ) . longValue ( ) = = taskDetail . getId ( ) . longValue ( ) ) {
if ( CollectionUtil . isNotEmpty ( groupTaskList ) ) {
for ( ProTaskDetail groupTask : groupTaskList ) {
if ( groupTask . getId ( ) . longValue ( ) = = taskDetail . getId ( ) . longValue ( ) ) {
if ( ObjectUtil . isNotNull ( beginTime ) ) {
groupTask . setBeginTime ( beginTime ) ;
taskDetail . setBeginTime ( beginTime ) ;
@ -1323,10 +1328,10 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskDetail . setEndTime ( endTime ) ;
}
}
if ( ObjectUtil . isNull ( bTime ) ) {
if ( ObjectUtil . isNull ( bTime ) ) {
bTime = groupTask . getBeginTime ( ) ;
}
if ( ObjectUtil . isNull ( eTime ) ) {
if ( ObjectUtil . isNull ( eTime ) ) {
eTime = groupTask . getEndTime ( ) ;
}
bTime = bTime < groupTask . getBeginTime ( ) ? bTime : groupTask . getBeginTime ( ) ;
@ -1334,7 +1339,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
//如果子任务最早最晚时间和父任务不同,则修改父任务时间
if ( ObjectUtil . isNotNull ( bTime ) & & ObjectUtil . isNotNull ( eTime ) ) {
if ( ObjectUtil . isNotNull ( bTime ) & & ObjectUtil . isNotNull ( eTime ) ) {
if ( bTime ! = parentTask . getBeginTime ( ) . longValue ( ) | | eTime ! = parentTask . getEndTime ( ) . longValue ( ) ) {
parentTask . setBeginTime ( bTime ) ;
parentTask . setEndTime ( eTime ) ;
@ -1351,7 +1356,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
}
} else {
} else {
if ( ObjectUtil . isNotNull ( beginTime ) ) {
taskDetail . setBeginTime ( beginTime ) ;
}
@ -1361,7 +1366,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
}
}
}
private void partTaskSubTime ( ProTaskDetail taskDetail ) {
private void partTaskSubTime ( ProTaskDetail taskDetail ) {
//cycle为空或者组任务,只加一条数据
if ( StrUtil . isEmpty ( taskDetail . getCycle ( ) ) | | taskDetail . getHasGroup ( ) = = 1 ) {
ProTaskSubTime proTaskSubTime = new ProTaskSubTime ( ) ;
@ -1394,13 +1400,13 @@ public class ProTaskDetailService implements IProTaskDetailService {
TaskVo . TaskInfoWithFeign taskInfo = null ;
ProTaskDetail detail ;
ProTaskSubTime subTime = taskSubTimeDao . selectByPrimaryKey ( taskId ) ;
if ( ObjectUtil . isNull ( subTime ) ) {
if ( ObjectUtil . isNull ( subTime ) ) {
detail = taskDetailDao . selectByPrimaryKey ( taskId ) ;
} else {
} else {
detail = taskDetailDao . selectByPrimaryKey ( subTime . getTaskDetailId ( ) ) ;
}
if ( ObjectUtil . isNotNull ( detail ) ) {
if ( ObjectUtil . isNotNull ( detail ) ) {
taskInfo = new TaskVo . TaskInfoWithFeign ( ) ;
taskInfo . setId ( detail . getId ( ) ) ;
@ -1408,7 +1414,7 @@ public class ProTaskDetailService implements IProTaskDetailService {
taskInfo . setProjectId ( detail . getProjectId ( ) ) ;
SysProject project = sysProjectDao . selectByPrimaryKey ( detail . getProjectId ( ) ) ;
if ( ObjectUtil . isNotNull ( project ) ) {
if ( ObjectUtil . isNotNull ( project ) ) {
taskInfo . setProjectName ( project . getName ( ) ) ;
}
}
@ -1419,9 +1425,9 @@ public class ProTaskDetailService implements IProTaskDetailService {
public TaskVo . NormalTask updateTaskConfig ( Long userId , TaskDto . UpdateTaskConfig updateTaskConfig ) throws Exception {
//检查任务是否存在
ProTaskDetail taskDetail = taskDetailDao . selectByPrimaryKey ( updateTaskConfig . getTaskId ( ) ) ;
if ( ObjectUtil . isNull ( taskDetail ) ) {
if ( ObjectUtil . isNull ( taskDetail ) ) {
ProTaskSubTime taskSubTime = taskSubTimeDao . selectByPrimaryKey ( updateTaskConfig . getTaskId ( ) ) ;
if ( ObjectUtil . isNull ( taskSubTime ) ) {
if ( ObjectUtil . isNull ( taskSubTime ) ) {
throw new BaseException ( CodeEnum . NOT_TASK ) ;
}
taskDetail = taskDetailDao . selectByPrimaryKey ( taskSubTime . getTaskDetailId ( ) ) ;
@ -1430,21 +1436,21 @@ public class ProTaskDetailService implements IProTaskDetailService {
ProTaskShowExample taskShowExample = new ProTaskShowExample ( ) ;
taskShowExample . createCriteria ( ) . andTaskDetailIdEqualTo ( taskDetail . getId ( ) ) ;
List < ProTaskShow > proTaskShowList = proTaskShowDao . selectByExample ( taskShowExample ) ;
if ( CollectionUtil . isEmpty ( proTaskShowList ) ) {
if ( CollectionUtil . isEmpty ( proTaskShowList ) ) {
//没有则新建配置信息
ProTaskShow proTaskShow = new ProTaskShow ( ) ;
BeanUtil . copyProperties ( updateTaskConfig , proTaskShow ) ;
BeanUtil . copyProperties ( updateTaskConfig , proTaskShow ) ;
proTaskShow . setId ( snowflake . nextId ( ) ) ;
proTaskShow . setProjectId ( taskDetail . getProjectId ( ) ) ;
proTaskShow . setTaskDetailId ( taskDetail . getId ( ) ) ;
proTaskShowDao . insertSelective ( proTaskShow ) ;
} else {
} else {
//有则修改
ProTaskShow proTaskShow = proTaskShowList . get ( 0 ) ;
BeanUtil . copyProperties ( updateTaskConfig , proTaskShow ) ;
BeanUtil . copyProperties ( updateTaskConfig , proTaskShow ) ;
proTaskShowDao . updateByPrimaryKeySelective ( proTaskShow ) ;
}
return getTaskInfoByTaskId ( userId , taskDetail . getProjectId ( ) , updateTaskConfig . getTaskId ( ) , null ) ;
return getTaskInfoByTaskId ( userId , taskDetail . getProjectId ( ) , updateTaskConfig . getTaskId ( ) , null ) ;
}
@Override
@ -1462,8 +1468,8 @@ public class ProTaskDetailService implements IProTaskDetailService {
if ( CollectionUtil . isNotEmpty ( firstTaskDetailList ) ) {
firstTaskDetailList . forEach ( firstTaskDetail - > {
TaskVo . TaskListByProjectId firstTask = taskDetailDao . getTaskById ( firstTaskDetail . getId ( ) ) ;
List < TaskVo . TaskListByProjectId > secondTaskList = taskDetailDao . getTaskByParentId ( firstTaskDetail . getId ( ) , null ) ;
if ( CollectionUtil . isNotEmpty ( secondTaskList ) ) {
List < TaskVo . TaskListByProjectId > secondTaskList = taskDetailDao . getTaskByParentId ( firstTaskDetail . getId ( ) , null ) ;
if ( CollectionUtil . isNotEmpty ( secondTaskList ) ) {
secondTaskList . forEach ( secondTask - > secondTask . setParentName ( firstTaskDetail . getName ( ) ) ) ;
}
firstTask . setSecondTasks ( secondTaskList ) ;