package com.hz.employmentsite.services.impl.system; import com.hz.employmentsite.mapper.SysTaskMapper; import com.hz.employmentsite.mapper.cquery.TaskCQuery; import com.hz.employmentsite.model.SysTask; import com.hz.employmentsite.model.SysTaskExample; import com.hz.employmentsite.services.service.AccountService; import com.hz.employmentsite.services.service.system.TaskService; import com.hz.employmentsite.util.StringUtils; import com.hz.employmentsite.util.UUIDUtils; import com.hz.employmentsite.vo.system.TaskInputModel; import com.hz.employmentsite.vo.system.TaskModel; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Arrays; import java.util.Date; import java.util.List; @Component public class TaskServiceImpl implements TaskService { @Autowired SysTaskMapper sysTaskMapper; @Autowired StringUtils stringUtils; @Autowired AccountService accountService; @Autowired public TaskCQuery taskCQuery; @Override public void addTask(TaskInputModel input) throws Exception { //退回提交要消除待办 finishTask(Arrays.stream(new String[]{input.getKeyID()}).toList()); SysTask task = prepareTask(input); sysTaskMapper.insert(task); } @Override public PageInfo getTaskList(Integer page, Integer rows) { PageHelper.startPage(page, rows); /*SysTaskExample exp = new SysTaskExample(); exp.or() .andUserIDEqualTo(accountService.getLoginUserID()) .andRecordStatusEqualTo(1); exp.setOrderByClause("CreateTime desc"); List list = sysTaskMapper.selectByExample(exp); PageInfo pageList = new PageInfo<>(list);*/ List list= taskCQuery.selectTaskList(accountService.getLoginUserID()); PageInfo result = new PageInfo<>(list); return result; } @Override public void finishTask(List keyIDs) { SysTaskExample exp = new SysTaskExample(); exp.or().andKeyIDIn(keyIDs); SysTask updateExp = new SysTask(); updateExp.setRecordStatus(2); sysTaskMapper.updateByExampleSelective(updateExp, exp); } @Override public void deleteTask(List keyIDs) { SysTaskExample exp = new SysTaskExample(); exp.or().andKeyIDIn(keyIDs); sysTaskMapper.deleteByExample(exp); } @Override public void returnTask(List keyIDs, String approveUserId) { SysTaskExample exp = new SysTaskExample(); exp.or().andKeyIDIn(keyIDs).andRecordStatusEqualTo(1); List tasks = sysTaskMapper.selectByExample(exp); tasks.forEach(t -> { SysTask task = new SysTask(); task.setTaskID(UUIDUtils.getUUID()); task.setUrl(t.getReturnUrl()); task.setUserID(t.getCreateBy()); task.setContext(t.getTitle() + ",已被退回。"); task.setRecordStatus(1); task.setCreateBy(approveUserId); task.setReturnUrl(t.getReturnUrl()); task.setTitle(t.getTitle() + ",已被退回。"); task.setCreateTime(new Date()); task.setKeyID(t.getKeyID()); sysTaskMapper.insertSelective(task); t.setRecordStatus(2); sysTaskMapper.updateByPrimaryKeySelective(t); }); } private SysTask prepareTask(TaskInputModel input) throws Exception { if (stringUtils.IsNullOrEmpty(input.getUserID())) { throw new Exception("请指定待办用户"); } if (stringUtils.IsNullOrEmpty(input.getTitle())) { throw new Exception("请填写标题"); } if (stringUtils.IsNullOrEmpty(input.getContext())) { input.setContext(input.getTitle()); } SysTask task = new SysTask(); task.setTaskID(UUIDUtils.getUUID()); task.setUserID(input.getUserID()); task.setTitle(input.getTitle()); task.setContext(input.getContext()); task.setKeyID(input.getKeyID()); task.setUrl(input.getUrl()); task.setReturnUrl(input.getReturnUrl()); task.setRecordStatus(1); task.setCreateBy(accountService.getLoginUserID()); task.setCreateTime(new Date()); return task; } }