package com.gkhy.safePlatform.safeCheck.service.baseService.impl;
|
|
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.gkhy.safePlatform.commons.co.ContextCacheUser;
|
import com.gkhy.safePlatform.commons.enums.E;
|
import com.gkhy.safePlatform.commons.enums.ResultCodes;
|
import com.gkhy.safePlatform.commons.exception.AusinessException;
|
import com.gkhy.safePlatform.commons.exception.BusinessException;
|
import com.gkhy.safePlatform.safeCheck.entity.*;
|
import com.gkhy.safePlatform.safeCheck.enums.DelectStatusEnum;
|
import com.gkhy.safePlatform.safeCheck.model.query.MobileTaskDataDBQuery;
|
import com.gkhy.safePlatform.safeCheck.model.query.MobileUserTaskDBQuery;
|
import com.gkhy.safePlatform.safeCheck.model.query.TaskUnitDBQuery;
|
import com.gkhy.safePlatform.safeCheck.repository.SafeCheckTaskRepository;
|
import com.gkhy.safePlatform.safeCheck.service.baseService.SafeCheckTaskService;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.ibatis.builder.MapperBuilderAssistant;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.time.LocalDateTime;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
|
@Service("SafeCheckTaskService")
|
public class SafeCheckTaskServiceImpl extends ServiceImpl<SafeCheckTaskRepository,SafeCheckTask> implements SafeCheckTaskService {
|
|
|
@Autowired
|
private SafeCheckTaskRepository safeCheckTaskRepository;
|
|
|
/**
|
* @description 向数据库中存入一个任务
|
*/
|
@Override
|
public void saveTask(SafeCheckTask task) {
|
int insertResult = safeCheckTaskRepository.insert(task);
|
if (insertResult == 0){
|
throw new AusinessException(E.ADD_FAIL,"任务新增失败!");
|
}
|
}
|
|
/**
|
* @description 将巡检任务待巡检状态改为巡检中
|
*/
|
@Override
|
public int updateTaskStatus(Long taskId, Byte taskStatus,Byte oldTaskStatus) {
|
int updateResult = safeCheckTaskRepository.updateTaskStatus(taskId,taskStatus,oldTaskStatus);
|
return updateResult;
|
}
|
|
/**
|
* @description 根据任务id查询任务
|
*/
|
@Override
|
public SafeCheckTask getTaskById(Long taskId) {
|
SafeCheckTask task = safeCheckTaskRepository.getTaskById(taskId);
|
if (task == null){
|
throw new AusinessException(E.DATA_DATABASE_NO_EXISTENT,"任务不存在");
|
}
|
return task;
|
}
|
|
/**
|
* @description 查询所有巡检任务数据并进行分页(包含条件查询)
|
*/
|
@Override
|
public Page listTaskByPage(Page pageInfo, SafeCheckTask task,List<Long> depIds) {
|
LambdaQueryWrapper<SafeCheckTask> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.like(task.getTaskName() != null,SafeCheckTask::getTaskName,task.getTaskName())
|
.eq(task.getTaskType() != null,SafeCheckTask::getTaskType,task.getTaskType())
|
.in(CollectionUtils.isNotEmpty(depIds),SafeCheckTask::getExecDepId,depIds)
|
.in(task.getExecDepId() != null,SafeCheckTask::getExecDepId,task.getExecDepId())
|
.eq(task.getResultStatus() != null,SafeCheckTask::getResultStatus,task.getResultStatus())
|
.eq(task.getTaskStatus() != null,SafeCheckTask::getTaskStatus,task.getTaskStatus())
|
.eq(task.getExecUserId() != null,SafeCheckTask::getExecUserId,task.getExecUserId())
|
.eq(task.getExecClassgroupId() != null,SafeCheckTask::getExecClassgroupId,task.getExecClassgroupId())
|
.ge(task.getStartTime() != null,SafeCheckTask::getStartTime,task.getStartTime())
|
.le(task.getValidTime() != null,SafeCheckTask::getValidTime,task.getValidTime())
|
.orderByDesc(SafeCheckTask::getStartTime)
|
.eq(task.getReportTime() != null,SafeCheckTask::getReportTime,task.getReportTime());
|
Page page = safeCheckTaskRepository.selectPage(pageInfo,queryWrapper);
|
return page;
|
}
|
|
/**
|
* @description 查询用户所在班组在用户上班期间是否有任务
|
*/
|
@Override
|
public IPage<SafeCheckTaskMobileDO> listUserTaskByPage(Page pageInfo, MobileUserTaskDBQuery queryCondition) {
|
LambdaQueryWrapper<SafeCheckTask> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.in(queryCondition.getExecClassgroupId() != null,SafeCheckTask::getExecClassgroupId,queryCondition.getExecClassgroupId())
|
//.ge(queryCondition.getStartTime() != null,SafeCheckTask::getStartTime,queryCondition.getStartTime())
|
//.le(queryCondition.getEndTime() != null,SafeCheckTask::getValidTime,queryCondition.getEndTime())
|
.eq(queryCondition.getTaskStatus() != null,SafeCheckTask::getTaskStatus,queryCondition.getTaskStatus())
|
.eq(queryCondition.getTaskClaim() != null,SafeCheckTask::getTaskClaim,queryCondition.getTaskClaim())
|
.eq(queryCondition.getTaskType() != null,SafeCheckTask::getTaskType,queryCondition.getTaskType())
|
.eq(SafeCheckTask::getDeleteStatus,DelectStatusEnum.DELECT_NO.getStatus())
|
.orderByDesc(SafeCheckTask::getGmtCreate);
|
IPage<SafeCheckTaskMobileDO> iPage = safeCheckTaskRepository.listUserTaskByPage(pageInfo,queryWrapper);
|
return iPage;
|
}
|
|
/**
|
* @description 查询所有巡检任务数据并进行分页(只查询已完成,巡检中) 对任务状态进行分组 对结束时间由近到远
|
*/
|
@Override
|
public IPage<SafeCheckeGrByStatusOrByTimeDO> listTaskByPageGrByStatusOrByTime(Page pageInfo, List<Byte> status,List<Long> depIds) {
|
LambdaQueryWrapper<SafeCheckTask> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.in(status != null,SafeCheckTask::getTaskStatus,status)
|
.in(depIds != null,SafeCheckTask::getExecDepId,depIds)
|
.eq(SafeCheckTask::getDeleteStatus, DelectStatusEnum.DELECT_NO.getStatus());
|
//queryWrapper.eq(status.get(0) != null,SafeCheckTask::getTaskStatus,status.get(0)).
|
// or().
|
// eq(status.get(1) != null,SafeCheckTask::getTaskStatus,status.get(1));
|
IPage<SafeCheckeGrByStatusOrByTimeDO> iPage = safeCheckTaskRepository.listTaskByPageGrByStatusOrByTime(pageInfo, queryWrapper);
|
return iPage;
|
}
|
|
/**
|
* @description 根据任务单元id、开始检查时间、删除状态 查询任务
|
*/
|
@Override
|
public SafeCheckTask getTaskByWorkIdAndTaskStartTime(Long workId, Date nextCheckTime, int deleteStatus) {
|
SafeCheckTask safeCheckTask = safeCheckTaskRepository.getTaskByWorkIdAndTaskStartTime(workId,nextCheckTime,deleteStatus);
|
return safeCheckTask;
|
}
|
|
/**
|
* @description 根据任务id以及任务状态查询任务记录
|
*/
|
@Override
|
public SafeCheckTask getTaskByTaskIdAndTaskStatus(Long taskId, Byte taskStatus) {
|
return safeCheckTaskRepository.getTaskByTaskIdAndTaskStatus(taskId,taskStatus);
|
}
|
|
/**
|
* @description 当天0点-目前超时未巡检的任务
|
*/
|
@Override
|
public List<SafeCheckTask> listNoCheckTaskByValidTime(LocalDateTime zeroPointDateTime, LocalDateTime now, Byte taskStatus,List<Long> depIds) {
|
return safeCheckTaskRepository.listNoCheckTaskByValidTime(zeroPointDateTime,now,taskStatus,depIds);
|
}
|
|
/**
|
* @description 根据时间获取当天截至目前异常任务
|
*/
|
@Override
|
public List<SafeCheckTask> listAbnormalTaskByValidTime(LocalDateTime zeroPointDateTime, LocalDateTime nowTime, Byte taskStatus, Byte taskResultCode,List<Long> depIds) {
|
return safeCheckTaskRepository.listAbnormalTaskByValidTime(zeroPointDateTime,nowTime,taskStatus,taskResultCode,depIds);
|
}
|
|
/**
|
* @description 根据部门,班组和状态作为条件查询任务以及任务相关的巡检点
|
*/
|
@Override
|
public IPage<SafeCheckTaskDataMobileDO> listTaskDataByCondition(Page pageInfo, MobileTaskDataDBQuery taskDBQuery) {
|
LambdaQueryWrapper<SafeCheckTask> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(taskDBQuery.getExecClassgroupId() != null,SafeCheckTask::getExecClassgroupId,taskDBQuery.getExecClassgroupId())
|
.eq(taskDBQuery.getTaskStatus() != null,SafeCheckTask::getTaskStatus,taskDBQuery.getTaskStatus())
|
.eq(taskDBQuery.getExcDepId() != null,SafeCheckTask::getExecDepId,taskDBQuery.getExcDepId())
|
.eq(SafeCheckTask::getDeleteStatus,DelectStatusEnum.DELECT_NO.getStatus())
|
.orderByDesc(SafeCheckTask::getStartTime);
|
IPage<SafeCheckTaskDataMobileDO> iPage = safeCheckTaskRepository.listTaskDataByCondition(pageInfo,queryWrapper);
|
return iPage;
|
}
|
|
/**
|
* @description 将任务状态改为认领状态
|
*/
|
@Override
|
public void updateTaskClaimById(SafeCheckTask task) {
|
int updateResult = safeCheckTaskRepository.updateTaskClaimById(task);
|
if (updateResult == 0){
|
throw new AusinessException(E.UPDATE_FAIL,"任务认领状态更改失败");
|
}
|
}
|
|
/**
|
* @description 更新巡检任务结果
|
*/
|
@Override
|
public void updateTaskCheckResultByTaskId(Long taskId,Byte taskStatus,Byte taskCheckResult, Date date) {
|
int updateResult = safeCheckTaskRepository.updateTaskCheckResultByTaskId(taskId,taskStatus,taskCheckResult,date);
|
if (updateResult == 0){
|
throw new AusinessException(E.UPDATE_FAIL,"巡检任务结果提交失败");
|
}
|
}
|
}
|