|  |  |  | 
|---|
|  |  |  | import com.ruoyi.app.tasktext.domain.ArdAppTaskText; | 
|---|
|  |  |  | import com.ruoyi.app.tasktext.mapper.ArdAppTaskTextMapper; | 
|---|
|  |  |  | import com.ruoyi.common.annotation.DataScope; | 
|---|
|  |  |  | import com.ruoyi.common.core.domain.entity.SysUser; | 
|---|
|  |  |  | import com.ruoyi.common.utils.DateUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.uuid.IdUtils; | 
|---|
|  |  |  | import com.ruoyi.system.mapper.SysUserMapper; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.Optional; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.ruoyi.common.utils.StringUtils; | 
|---|
|  |  |  | import com.ruoyi.common.utils.SecurityUtils; | 
|---|
|  |  |  | 
|---|
|  |  |  | private ArdAppTaskMapper ardAppTaskMapper; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ArdAppTaskTextMapper ardAppTaskTextMapper; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SysUserMapper sysUserMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询app任务管理 | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ArdAppTask selectArdAppTaskById(String id) { | 
|---|
|  |  |  | return ardAppTaskMapper.selectArdAppTaskById(id); | 
|---|
|  |  |  | ArdAppTask ardAppTask = ardAppTaskMapper.selectArdAppTaskById(id); | 
|---|
|  |  |  | if(StringUtils.isNull(ardAppTask)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList(); | 
|---|
|  |  |  | if(ardAppTaskDetailList.size()>0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ardAppTaskDetailList = ardAppTaskDetailList.stream() | 
|---|
|  |  |  | .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAppTaskDetail::getName))), ArrayList::new)); | 
|---|
|  |  |  | ardAppTask.setArdAppTaskDetailList(ardAppTaskDetailList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<String> userIds = ardAppTaskMapper.selectArdAppTaskDetailUserIdsByTaskId(id); | 
|---|
|  |  |  | if (userIds.size() > 0) { | 
|---|
|  |  |  | ardAppTask.setUserIds(userIds); | 
|---|
|  |  |  | List<SysUser> sysUserList=new ArrayList<>(); | 
|---|
|  |  |  | for (String userId : userIds) { | 
|---|
|  |  |  | SysUser sysUser = sysUserMapper.selectUserById(userId); | 
|---|
|  |  |  | sysUserList.add(sysUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ardAppTask.setSysUserList(sysUserList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ardAppTask; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | * @return app任务管理 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @DataScope(deptAlias = "d", userAlias = "u") | 
|---|
|  |  |  | public List<ArdAppTask> selectArdAppTaskList(ArdAppTask ardAppTask) { | 
|---|
|  |  |  | return ardAppTaskMapper.selectArdAppTaskList(ardAppTask); | 
|---|
|  |  |  | List<ArdAppTask> parentList = ardAppTaskMapper.selectArdAppTaskList(ardAppTask); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(StringUtils.isNotNull(ardAppTask.getAppUserId())) { | 
|---|
|  |  |  | //如果app用户id不为空,查询出所有任务的子任务列表 | 
|---|
|  |  |  | for(ArdAppTask appTask:parentList) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | List<ArdAppTaskDetail> ardAppTaskDetails = ardAppTaskMapper.selectArdAppTaskDetailListByTaskId(appTask.getId()); | 
|---|
|  |  |  | appTask.setArdAppTaskDetailList(ardAppTaskDetails); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //通过app用户id过滤子任务列表来过滤出父任务列表 | 
|---|
|  |  |  | parentList = parentList.stream() | 
|---|
|  |  |  | .filter(parent -> parent.getArdAppTaskDetailList().stream().anyMatch(child -> child.getUserId().equals(ardAppTask.getAppUserId()))) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return parentList; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask) { | 
|---|
|  |  |  | ardAppTask.setUserId(SecurityUtils.getUserId()); | 
|---|
|  |  |  | List<ArdAppTask> list1 = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask); | 
|---|
|  |  |  | List<ArdAppTask> list = new ArrayList<>(); | 
|---|
|  |  |  | list.addAll(list1); | 
|---|
|  |  |  | List<ArdAppTask> list = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ArdAppTask> selectArdAppTaskListWithDetailById(ArdAppTask ardAppTask) { | 
|---|
|  |  |  | ardAppTask.setUserId(SecurityUtils.getUserId()); | 
|---|
|  |  |  | List<ArdAppTask> list1 = ardAppTaskMapper.selectArdAppTaskListWithDetailById(ardAppTask); | 
|---|
|  |  |  | List<ArdAppTask> list = new ArrayList<>(); | 
|---|
|  |  |  | list.addAll(list1); | 
|---|
|  |  |  | List<ArdAppTask> list = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask); | 
|---|
|  |  |  | for(ArdAppTaskDetail detail : list.get(0).getArdAppTaskDetailList()) { | 
|---|
|  |  |  | ArdAppTaskDetailPic ardAppTaskDetailPic =new ArdAppTaskDetailPic(); | 
|---|
|  |  |  | ardAppTaskDetailPic.setTaskDetailId(detail.getId()); | 
|---|
|  |  |  | List<ArdAppTaskDetailPic> ardAppTaskDetailPicList = ardAppTaskDetailPicMapper.selectArdAppTaskDetailPicList(ardAppTaskDetailPic); | 
|---|
|  |  |  | detail.setArdAppTaskDetailPic(ardAppTaskDetailPicList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ArdAppTask selectNewArdAppTaskByUserId(String userId) { | 
|---|
|  |  |  | ArdAppTask ardAppTask = ardAppTaskMapper.selectNewArdAppTaskByUserId(userId); | 
|---|
|  |  |  | if (StringUtils.isNotNull(ardAppTask)) { | 
|---|
|  |  |  | ArdAppTaskDetail detail = new ArdAppTaskDetail(); | 
|---|
|  |  |  | detail.setViewFlag("1"); | 
|---|
|  |  |  | detail.setTaskId(ardAppTask.getId()); | 
|---|
|  |  |  | int i = ardAppTaskMapper.updateArdAppTaskDetailByTaskId(detail); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ardAppTask; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询已弹窗但未读的任务数量 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param userId app用户Id | 
|---|
|  |  |  | * @return 结果 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int selectUnreadArdAppTaskCount(String userId) { | 
|---|
|  |  |  | return ardAppTaskMapper.selectUnreadArdAppTaskCount(userId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|