package com.ruoyi.app.task.service.impl;
|
|
import java.util.List;
|
|
import com.github.pagehelper.PageHelper;
|
import com.ruoyi.app.task.domain.ArdAppTaskDetail;
|
import com.ruoyi.app.taskdetail.domain.ArdAppTaskDetailPic;
|
import com.ruoyi.app.taskdetail.mapper.ArdAppTaskDetailPicMapper;
|
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;
|
import org.springframework.transaction.annotation.Transactional;
|
import com.ruoyi.app.task.domain.ArdAppTaskPic;
|
import com.ruoyi.app.task.mapper.ArdAppTaskMapper;
|
import com.ruoyi.app.task.domain.ArdAppTask;
|
import com.ruoyi.app.task.service.IArdAppTaskService;
|
|
import javax.annotation.Resource;
|
|
/**
|
* app任务管理Service业务层处理
|
*
|
* @author ard
|
* @date 2023-07-22
|
*/
|
@Service
|
public class ArdAppTaskServiceImpl implements IArdAppTaskService {
|
@Resource
|
ArdAppTaskDetailPicMapper ardAppTaskDetailPicMapper;
|
@Resource
|
private ArdAppTaskMapper ardAppTaskMapper;
|
@Resource
|
private ArdAppTaskTextMapper ardAppTaskTextMapper;
|
@Resource
|
private SysUserMapper sysUserMapper;
|
|
/**
|
* 查询app任务管理
|
*
|
* @param id app任务管理主键
|
* @return app任务管理
|
*/
|
@Override
|
public ArdAppTask selectArdAppTaskById(String 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
|
public ArdAppTaskDetail selectArdAppTaskDetailById(String id) {
|
ArdAppTaskDetail appTaskDetail = ardAppTaskMapper.selectArdAppTaskDetailById(id);
|
ArdAppTaskDetailPic ardAppTaskDetailPic = new ArdAppTaskDetailPic();
|
ardAppTaskDetailPic.setTaskDetailId(id);
|
List<ArdAppTaskDetailPic> ardAppTaskDetailPicList = ardAppTaskDetailPicMapper.selectArdAppTaskDetailPicList(ardAppTaskDetailPic);
|
if (ardAppTaskDetailPicList.size() > 0) {
|
appTaskDetail.setArdAppTaskDetailPic(ardAppTaskDetailPicList);
|
}
|
return appTaskDetail;
|
}
|
|
/**
|
* 查询app任务管理列表
|
*
|
* @param ardAppTask app任务管理
|
* @return app任务管理
|
*/
|
@Override
|
public List<ArdAppTask> selectArdAppTaskList(ArdAppTask 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;
|
}
|
|
/**
|
* 查询app任务详情管理列表
|
*
|
* @param ardAppTask app任务对象
|
* @return app任务详情列表
|
*/
|
@Override
|
public List<ArdAppTask> selectArdAppTaskListWithDetail(ArdAppTask ardAppTask) {
|
List<ArdAppTask> list = ardAppTaskMapper.selectArdAppTaskListWithDetail(ardAppTask);
|
return list;
|
}
|
|
@Override
|
public List<ArdAppTask> selectArdAppTaskListWithDetailById(ArdAppTask ardAppTask) {
|
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;
|
}
|
|
/**
|
* 新增app任务管理
|
*
|
* @param ardAppTask app任务管理
|
* @return 结果
|
*/
|
@Transactional
|
@Override
|
public int insertArdAppTask(ArdAppTask ardAppTask) {
|
ardAppTask.setId(IdUtils.simpleUUID());
|
ardAppTask.setUserId(SecurityUtils.getUserId());
|
ardAppTask.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
|
ardAppTask.setCreateTime(DateUtils.getNowDate());
|
int rows = ardAppTaskMapper.insertArdAppTask(ardAppTask);
|
insertArdAppTaskPic(ardAppTask);
|
insertArdAppTaskDetail(ardAppTask);
|
insertArdAppTaskText(ardAppTask);
|
return rows;
|
}
|
|
/**
|
* 修改app任务管理
|
*
|
* @param ardAppTask app任务管理
|
* @return 结果
|
*/
|
@Transactional
|
@Override
|
public int updateArdAppTask(ArdAppTask ardAppTask) {
|
ardAppTask.setUpdateBy(SecurityUtils.getUsername());
|
ardAppTask.setUpdateTime(DateUtils.getNowDate());
|
|
insertArdAppTaskPic(ardAppTask);
|
insertArdAppTaskDetail(ardAppTask);
|
return ardAppTaskMapper.updateArdAppTask(ardAppTask);
|
}
|
|
/**
|
* 批量删除app任务管理
|
*
|
* @param ids 需要删除的app任务管理主键
|
* @return 结果
|
*/
|
@Transactional
|
@Override
|
public int deleteArdAppTaskByIds(String[] ids) {
|
ardAppTaskMapper.deleteArdAppTaskPicByTaskIds(ids);
|
ardAppTaskMapper.deleteArdAppTaskDetailByTaskIds(ids);
|
return ardAppTaskMapper.deleteArdAppTaskByIds(ids);
|
}
|
|
/**
|
* 删除app任务管理信息
|
*
|
* @param id app任务管理主键
|
* @return 结果
|
*/
|
@Transactional
|
@Override
|
public int deleteArdAppTaskById(String id) {
|
ardAppTaskMapper.deleteArdAppTaskPicByTaskId(id);
|
return ardAppTaskMapper.deleteArdAppTaskById(id);
|
}
|
|
/**
|
* 新增app任务图片信息
|
*
|
* @param ardAppTask app任务管理对象
|
*/
|
public void insertArdAppTaskPic(ArdAppTask ardAppTask) {
|
List<ArdAppTaskPic> ardAppTaskPicList = ardAppTask.getArdAppTaskPicList();
|
if (StringUtils.isNotNull(ardAppTaskPicList)) {
|
ardAppTaskMapper.deleteArdAppTaskPicByTaskId(ardAppTask.getId());
|
String id = ardAppTask.getId();
|
|
List<ArdAppTaskPic> list = new ArrayList<ArdAppTaskPic>();
|
for (ArdAppTaskPic ardAppTaskPic : ardAppTaskPicList) {
|
ardAppTaskPic.setId(IdUtils.simpleUUID());
|
ardAppTaskPic.setTaskId(id);
|
list.add(ardAppTaskPic);
|
}
|
if (list.size() > 0) {
|
ardAppTaskMapper.batchArdAppTaskPic(list);
|
}
|
}
|
}
|
|
/**
|
* 新增app任务详情信息
|
*
|
* @param ardAppTask app任务管理对象
|
*/
|
public void insertArdAppTaskDetail(ArdAppTask ardAppTask) {
|
List<ArdAppTaskDetail> ardAppTaskDetailList = ardAppTask.getArdAppTaskDetailList();
|
if (StringUtils.isNotNull(ardAppTaskDetailList)) {
|
if (ardAppTaskDetailList.size() > 0) {
|
List<String> userIds = ardAppTask.getUserIds();
|
if (userIds.size() > 0) {
|
ardAppTaskMapper.deleteArdAppTaskDetailByTaskId(ardAppTask.getId());
|
for (String userId : userIds) {
|
String id = ardAppTask.getId();
|
if (StringUtils.isNotNull(ardAppTaskDetailList)) {
|
List<ArdAppTaskDetail> list = new ArrayList<ArdAppTaskDetail>();
|
for (ArdAppTaskDetail ardAppTaskDetail : ardAppTaskDetailList) {
|
ardAppTaskDetail.setId(IdUtils.simpleUUID());
|
ardAppTaskDetail.setStatus("0");
|
ardAppTaskDetail.setTaskId(id);
|
ardAppTaskDetail.setUserId(userId);
|
list.add(ardAppTaskDetail);
|
}
|
if (list.size() > 0) {
|
|
ardAppTaskMapper.batchArdAppTaskDetail(list);
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
|
/**
|
* 新增app任务描述信息
|
*
|
* @param ardAppTask app任务管理对象
|
*/
|
public void insertArdAppTaskText(ArdAppTask ardAppTask) {
|
String userId = ardAppTask.getUserId();
|
String text = ardAppTask.getText();
|
if (StringUtils.isEmpty(text)) {
|
return;
|
}
|
ArdAppTaskText ardAppTaskText = new ArdAppTaskText();
|
ardAppTaskText.setId(IdUtils.simpleUUID());
|
ardAppTaskText.setUserId(userId);
|
ardAppTaskText.setText(text);
|
List<ArdAppTaskText> ardAppTaskTexts = ardAppTaskTextMapper.selectArdAppTaskTextList(ardAppTaskText);
|
if (ardAppTaskTexts.size() == 0) {
|
ardAppTaskTextMapper.insertArdAppTaskText(ardAppTaskText);
|
}
|
}
|
|
/**
|
* 修改app任务详情
|
*
|
* @param ardAppTaskDetail app任务详情对象
|
*/
|
@Override
|
public int updateArdAppTaskDetail(ArdAppTaskDetail ardAppTaskDetail) {
|
ardAppTaskDetail.setClockInTime(DateUtils.getNowDate());
|
insertArdAppTaskPic(ardAppTaskDetail);
|
return ardAppTaskMapper.updateArdAppTaskDetail(ardAppTaskDetail);
|
}
|
|
@Override
|
public int updateArdAppTaskDetailView(ArdAppTaskDetail ardAppTaskDetail) {
|
ardAppTaskDetail.setViewTime(DateUtils.getNowDate());
|
return ardAppTaskMapper.updateArdAppTaskDetailView(ardAppTaskDetail);
|
}
|
|
/**
|
* 新增app任务详情图片信息
|
*
|
* @param ardAppTaskDetail app任务详情对象
|
*/
|
public void insertArdAppTaskPic(ArdAppTaskDetail ardAppTaskDetail) {
|
List<ArdAppTaskDetailPic> ardAppTaskDetailPicList = ardAppTaskDetail.getArdAppTaskDetailPic();
|
String detailId = ardAppTaskDetail.getId();
|
if (StringUtils.isNotNull(ardAppTaskDetailPicList)) {
|
ardAppTaskMapper.deleteArdAppTaskDetailPicByTaskDetailId(detailId);
|
List<ArdAppTaskDetailPic> list = new ArrayList<ArdAppTaskDetailPic>();
|
for (ArdAppTaskDetailPic ardAppTaskDetailPic : ardAppTaskDetailPicList) {
|
ardAppTaskDetailPic.setId(IdUtils.simpleUUID());
|
ardAppTaskDetailPic.setTaskDetailId(detailId);
|
list.add(ardAppTaskDetailPic);
|
}
|
if (list.size() > 0) {
|
ardAppTaskMapper.batchArdAppTaskDetailPic(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);
|
}
|
}
|