提交 a4d6023c authored 作者: 邓砥奕's avatar 邓砥奕

更新task

上级 dd624d29
......@@ -6,8 +6,8 @@ import com.tykj.dev.device.task.repository.TaskDao;
import com.tykj.dev.device.task.repository.TaskLogDao;
import com.tykj.dev.device.task.service.TaskService;
import com.tykj.dev.device.task.subject.bto.TaskBto;
import com.tykj.dev.device.task.subject.common.GlobalMap;
import com.tykj.dev.device.task.subject.common.StatusEnum;
import com.tykj.dev.device.task.subject.common.GlobalMap;
import com.tykj.dev.device.task.subject.domin.Task;
import com.tykj.dev.device.task.subject.domin.TaskLog;
import com.tykj.dev.device.task.subject.vo.TaskSelectVo;
......@@ -20,7 +20,6 @@ import com.tykj.dev.misc.utils.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.ExceptionHandler;
import javax.persistence.Transient;
......@@ -62,6 +61,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setCurrentPoint(taskBto.getCurrentPoint() + 1);
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
return taskBto;
}
......@@ -69,7 +69,6 @@ public class TaskServiceImpl implements TaskService {
* <p>业务进行到下一个状态</p>
* <li>不指定待办用户</li>
* <li>添加自定义信息</li>
*
* @param customInfo 自定义信息
*/
@Override
......@@ -83,13 +82,13 @@ public class TaskServiceImpl implements TaskService {
taskBto.setUserReadDetailList(new ArrayList<>());
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
return taskBto;
}
/**
* <p>业务进行到下一个状态(指定待办用户)</p>
* <li>指定待办用户</li>
*
* @param userId 待办用户Id
*/
@Override
......@@ -101,6 +100,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setCurrentPoint(taskBto.getCurrentPoint() + 1);
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
return taskBto;
}
......@@ -108,7 +108,6 @@ public class TaskServiceImpl implements TaskService {
* <p>业务进行到下一个状态(指定待办用户)</p>
* <li>指定待办用户</li>
* <li>添加自定义信息</li>
*
* @param userId 待办用户Id
* @param customInfo 自定义信息
*/
......@@ -123,13 +122,13 @@ public class TaskServiceImpl implements TaskService {
taskBto.setUserReadDetailList(new ArrayList<>());
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
return taskBto;
}
/**
* <p>业务进行到特殊状态</p>
* <li>不指定待办用户</li>
*
* @param statusEnum 状态枚举
*/
@Override
......@@ -141,6 +140,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setCurrentPoint(taskBto.getCurrentPoint() + 1);
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
return taskBto;
}
......@@ -148,7 +148,6 @@ public class TaskServiceImpl implements TaskService {
* <p>业务进行到特殊状态</p>
* <li>不指定待办用户</li>
* <li>添加自定义信息</li>
*
* @param statusEnum 状态枚举
* @param customInfo 自定义信息
*/
......@@ -163,13 +162,13 @@ public class TaskServiceImpl implements TaskService {
taskBto.setUserReadDetailList(new ArrayList<>());
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
return taskBto;
}
/**
* <p>业务进行到特殊状态</p>
* <li>指定待办用户</li>
*
* @param statusEnum 状态枚举
* @param userId 待办用户Id
*/
......@@ -182,6 +181,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setCurrentPoint(taskBto.getCurrentPoint() + 1);
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
return taskBto;
}
......@@ -189,7 +189,6 @@ public class TaskServiceImpl implements TaskService {
* <p>业务进行到特殊状态</p>
* <li>指定待办用户</li>
* <li>添加自定义信息</li>
*
* @param statusEnum 状态枚举
* @param userId 待办用户Id
* @param customInfo 自定义信息
......@@ -205,6 +204,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setUserReadDetailList(new ArrayList<>());
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
return taskBto;
}
......@@ -215,6 +215,7 @@ public class TaskServiceImpl implements TaskService {
public TaskBto moveToEnd(TaskBto taskBto) {
//set status end
taskBto.setBillStatus(StatusEnum.END.id);
update(taskBto);
return taskBto;
}
......@@ -225,6 +226,7 @@ public class TaskServiceImpl implements TaskService {
public TaskBto moveToArchive(TaskBto taskBto) {
//set status archive
taskBto.setBillStatus(StatusEnum.ARCHIVE.id);
update(taskBto);
return taskBto;
}
......@@ -263,7 +265,8 @@ public class TaskServiceImpl implements TaskService {
}
/**
* @param taskSelectVo 获取跟踪和待办业务列表
* @param taskSelectVo
* 获取跟踪和待办业务列表
*/
@Override
public List<TaskUserVo> getList(TaskSelectVo taskSelectVo) {
......@@ -298,7 +301,7 @@ public class TaskServiceImpl implements TaskService {
Integer num = taskSelectVo.getSelectNum();
Integer userId = userUtils.getCurrentUserId();
//业务管理中的待办和跟踪
if (num == 2 || num == 3) {
if (num==2||num==3){
//查询出符合筛选条件的所有task
List<TaskUserVo> list = taskDao.findAll(getSelectSpecification(taskSelectVo)).stream()
.map(Task::parse2Bto)
......@@ -306,10 +309,10 @@ public class TaskServiceImpl implements TaskService {
.collect(Collectors.toList());
//查询当前用户的跟踪和待办并和list按id取交集
List<TaskUserVo> taskUserVos = getList(taskSelectVo).stream()
.filter(taskUserVo -> find(taskUserVo.getId(), list) > -1)
.filter(taskUserVo -> find(taskUserVo.getId(),list)>-1)
.collect(Collectors.toList());
//判断是否需要按发起时间排序
if (taskSelectVo.getOrders() != null) {
if (taskSelectVo.getOrders()!=null) {
if ("createTime".equals(taskSelectVo.getOrders().get(0).getCoulmn())) {
if ("ASC".equals(taskSelectVo.getOrders().get(0).getDirection().toString())) {
return taskUtils.orderByCreateTimeAsc2(taskUserVos);
......@@ -321,21 +324,21 @@ public class TaskServiceImpl implements TaskService {
}
return taskUserVos;
}
if (num == 4 || num == 5 || num == 1 || num == 0) {
if (num==4||num==5||num==1||num==0) {
//获取单位等级
Integer level = userUtils.getCurrentUnitLevel();
//获取该单位以及下属单位所有用户Id
List<Integer> idLists = userPublicService.findAllUserIdByUnitsName(userUtils.getCurrentUserUnitName());
List<TaskUserVo> taskUserVos = new ArrayList<>();
//省能看到所有业务
if (level == 1) {
if (level==1) {
taskUserVos = taskDao.findAll(getSelectSpecification(taskSelectVo)).stream()
.map(Task::parse2Bto)
.map(TaskBto::toVo)
.collect(Collectors.toList());
}
//市或县只能看到涉及人员和idLists有交集的
if (level == 2 || level == 3) {
if (level==2||level==3){
taskUserVos = taskDao.findAll(getSelectSpecification(taskSelectVo)).stream()
.map(Task::parse2Bto)
.map(TaskBto::toVo)
......@@ -343,7 +346,7 @@ public class TaskServiceImpl implements TaskService {
.collect(Collectors.toList());
}
//set经办人,置顶以及阅读情况
for (TaskUserVo taskUserVo : taskUserVos) {
for (TaskUserVo taskUserVo:taskUserVos) {
List<Integer> idList = taskUserVo.getUserReadDetailList();
List<Integer> idList2 = taskUserVo.getTopFlagDetailList();
if (taskUserVo.getInvolveUserIdList() != null && taskUserVo.getInvolveUserIdList().size() > 0) {
......@@ -364,7 +367,7 @@ public class TaskServiceImpl implements TaskService {
}
}
//判断是否需要按发起时间排序
if (taskSelectVo.getOrders() != null) {
if (taskSelectVo.getOrders()!=null) {
if ("createTime".equals(taskSelectVo.getOrders().get(0).getCoulmn())) {
if ("ASC".equals(taskSelectVo.getOrders().get(0).getDirection().toString())) {
return taskUtils.orderByCreateTimeAsc2(taskUserVos);
......@@ -375,7 +378,8 @@ public class TaskServiceImpl implements TaskService {
}
}
return taskUserVos;
} else {
}
else {
throw new ApiException(ResultUtil.failed("selectNum只能为0,1,2,3,4,5"));
}
}
......@@ -386,12 +390,13 @@ public class TaskServiceImpl implements TaskService {
*/
@Override
public TaskBto addInvolveUser(TaskBto taskBto, Integer userId) {
List<Integer> list = taskBto.getInvolveUserIdList();
List<Integer> list = taskBto.getInvolveUserIdList();
//添加涉及用户Id
list.add(userId);
taskBto.setInvolveUserIdList(list);
//指针后移
taskBto.setCurrentPoint(taskBto.getCurrentPoint() + 1);
taskBto.setCurrentPoint(taskBto.getCurrentPoint()+1);
update(taskBto);
return taskBto;
}
......@@ -415,7 +420,7 @@ public class TaskServiceImpl implements TaskService {
/**
* @param taskSelectVo 查询vo
* 查询跟踪和待办列表
* 查询跟踪和待办列表
* @return taskUserVo列表
*/
private List<TaskUserVo> getTaskUserVoList(TaskSelectVo taskSelectVo) {
......@@ -423,7 +428,7 @@ public class TaskServiceImpl implements TaskService {
Integer bussinessType = taskSelectVo.getBusinessType();
//筛选出未完结和封存业务,映射成bto
List<TaskBto> taskBtos = taskDao.findAll().stream()
.filter(task -> (!task.getBillStatus().equals(StatusEnum.END.id)) && (!task.getBillStatus().equals(StatusEnum.ARCHIVE.id)))
.filter(task -> (!task.getBillStatus().equals(StatusEnum.END.id))&&(!task.getBillStatus().equals(StatusEnum.ARCHIVE.id)))
.map(Task::parse2Bto)
.collect(Collectors.toList());
//查询待办
......@@ -435,15 +440,15 @@ public class TaskServiceImpl implements TaskService {
//查询所有的业务
if (bussinessType == null) {
List<TaskUserVo> taskUserVos = taskBtoList.stream().map(TaskBto::toVo).collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 0);
return setTaskUserVo(taskUserVos,0);
} else {
//查询工作台其它业务
if (bussinessType == 0) {
List<TaskUserVo> taskUserVos = taskBtoList.stream()
.filter(taskBto -> !new ArrayList<>(Arrays.asList(3, 4, 5, 6)).contains(taskBto.getBusinessType()))
.filter(taskBto -> !new ArrayList<>(Arrays.asList(3,4,5,6)).contains(taskBto.getBusinessType()))
.map(TaskBto::toVo)
.collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 0);
return setTaskUserVo(taskUserVos,0);
}
//查询某一业务
else {
......@@ -451,7 +456,7 @@ public class TaskServiceImpl implements TaskService {
.filter(taskBto -> taskBto.getBusinessType().equals(bussinessType))
.map(TaskBto::toVo)
.collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 0);
return setTaskUserVo(taskUserVos,0);
}
}
}
......@@ -459,20 +464,20 @@ public class TaskServiceImpl implements TaskService {
if (taskSelectVo.getSelectNum() == 3) {
//涉及人员包括当前用户且指针对应UserId不是当前用户
List<TaskBto> taskBtoList = taskBtos.stream()
.filter(taskBto -> taskBto.getInvolveUserIdList().contains(userId) && !userId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint())))
.filter(taskBto -> taskBto.getInvolveUserIdList().contains(userId)&&!userId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint())))
.collect(Collectors.toList());
//查询所有业务
if (bussinessType == null) {
List<TaskUserVo> taskUserVos = taskBtoList.stream().map(TaskBto::toVo).collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 1);
return setTaskUserVo(taskUserVos,1);
} else {
//查询工作台其它业务
if (bussinessType == 0) {
List<TaskUserVo> taskUserVos = taskBtoList.stream()
.filter(taskBto -> !new ArrayList<>(Arrays.asList(3, 4, 5, 6)).contains(taskBto.getBusinessType()))
.filter(taskBto -> !new ArrayList<>(Arrays.asList(3,4,5,6)).contains(taskBto.getBusinessType()))
.map(TaskBto::toVo)
.collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 1);
return setTaskUserVo(taskUserVos,1);
}
//查询某一业务
else {
......@@ -480,7 +485,7 @@ public class TaskServiceImpl implements TaskService {
.filter(taskBto -> taskBto.getBusinessType().equals(bussinessType))
.map(TaskBto::toVo)
.collect(Collectors.toList());
return setTaskUserVo(taskUserVos, 1);
return setTaskUserVo(taskUserVos,1);
}
}
} else {
......@@ -491,7 +496,7 @@ public class TaskServiceImpl implements TaskService {
/**
* @param list taskUserVos
* @param type 0:set待办 1:set跟踪
* set一些输出给前端的值
* set一些输出给前端的值
*/
private List<TaskUserVo> setTaskUserVo(List<TaskUserVo> list, int type) {
Integer userId = userUtils.getCurrentUserId();
......@@ -528,7 +533,8 @@ public class TaskServiceImpl implements TaskService {
if (userTime == null) {
taskUserVo.setUserTime("0天0小时");
taskUserVo.setUserTimeDate(new Date(0));
} else {
}
else {
long time = System.currentTimeMillis() - userTime.getTime();
int day = new Long(time / 86_400_000).intValue();
int hour = new Long((time % 86_400_000) / 3_600_000).intValue();
......@@ -542,52 +548,54 @@ public class TaskServiceImpl implements TaskService {
/**
* @param taskId 业务id
* 获取当前用户上次处理业务时间
* 获取当前用户上次处理业务时间
*/
private Date getUserTime(Integer taskId) {
List<TaskLog> list = taskLogDao.getAllByTaskId(taskId);
if (list.size() > 0) {
if (list.size()>0) {
//筛选出当前用户操作该业务的所有日志,根据业务日志的创建时间降序排列,得到最新的上一次操作时间
List<TaskLog> taskLogs = taskUtils.orderByCreateTimeDesc(list.stream().filter(taskLog -> taskLog.getCreateUserId().equals(userUtils.getCurrentUserId())).collect(Collectors.toList()));
return taskLogs.get(0).getCreateTime();
} else {
}
else {
return null;
}
}
/**
* @param taskSelectVo task查询器
* @param taskSelectVo
* task查询器
*/
private Specification<Task> getSelectSpecification(TaskSelectVo taskSelectVo) {
private Specification<Task> getSelectSpecification(TaskSelectVo taskSelectVo){
PredicateBuilder<Task> predicateBuilder = Specifications.and();
if (taskSelectVo.getBusinessType() != null) {
if (taskSelectVo.getBusinessType()!=null){
predicateBuilder.eq("businessType", taskSelectVo.getBusinessType());
}
if (taskSelectVo.getContent() != null) {
if (taskSelectVo.getContent()!=null){
Class<Task> taskEntityClass = Task.class;
Field[] declaredFields = taskEntityClass.getDeclaredFields();
PredicateBuilder<Task> p = Specifications.or();
for (Field field : declaredFields) {
if (field.getType().equals(String.class) && field.getAnnotation(Transient.class) == null) {
if (field.getType().equals(String.class)&&field.getAnnotation(Transient.class)==null) {
p.like(field.getName(), "%" + taskSelectVo.getContent() + "%");
}
}
predicateBuilder.predicate(p.build());
}
if (taskSelectVo.getStartTime() != null) {
if (taskSelectVo.getStartTime()!=null){
predicateBuilder.gt("createTime", taskSelectVo.getStartTime());
}
if (taskSelectVo.getEndTime() != null) {
if (taskSelectVo.getEndTime()!=null){
predicateBuilder.lt("createTime", taskSelectVo.getEndTime());
}
if (taskSelectVo.getSelectNum() == 4) {
predicateBuilder.eq("billStatus", StatusEnum.END.id);
if (taskSelectVo.getSelectNum()==4){
predicateBuilder.eq("billStatus",StatusEnum.END.id);
}
if (taskSelectVo.getSelectNum() == 5) {
predicateBuilder.eq("billStatus", StatusEnum.ARCHIVE.id);
if (taskSelectVo.getSelectNum()==5){
predicateBuilder.eq("billStatus",StatusEnum.ARCHIVE.id);
}
if (taskSelectVo.getSelectNum() == 1) {
predicateBuilder.eq("createUserId", userUtils.getCurrentUnitId());
if (taskSelectVo.getSelectNum()==1){
predicateBuilder.eq("createUserId",userUtils.getCurrentUnitId());
}
return predicateBuilder.build();
}
......@@ -595,11 +603,11 @@ public class TaskServiceImpl implements TaskService {
/**
* 判断list中是否包含某个id的taskUserVo,若不存在返回-1,存在则返回第一次出现的索引值
*/
int find(Integer id, List<TaskUserVo> list) {
int find(Integer id,List<TaskUserVo> list){
int index = -1;
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId().equals(id)) {
if (list!=null&&list.size()>0){
for (int i=0;i<list.size();i++){
if (list.get(i).getId().equals(id)){
index = i;
break;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论