package com.ruoyi.system.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.basic.PageInfo;
|
import com.ruoyi.system.mapper.TMissionMapper;
|
import com.ruoyi.system.model.TMission;
|
import com.ruoyi.system.query.TMissionQuery;
|
import com.ruoyi.system.service.TMissionService;
|
import com.ruoyi.system.vo.TMissionReassignVO;
|
import com.ruoyi.system.vo.TMissionVO;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.time.Duration;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 任务管理 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-09-28
|
*/
|
@Service
|
public class TMissionServiceImpl extends ServiceImpl<TMissionMapper, TMission> implements TMissionService {
|
|
@Override
|
public PageInfo<TMissionVO> pageListAssigned(TMissionQuery query) {
|
PageInfo<TMissionVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TMissionVO> list = this.baseMapper.pageListAssigned(query, pageInfo);
|
if(CollectionUtils.isEmpty(list)){
|
return pageInfo;
|
}
|
// 计算时间差
|
for (TMissionVO tMissionVO : list) {
|
if(Objects.nonNull(tMissionVO.getAssignTime())){
|
if(Objects.nonNull(tMissionVO.getReceiveTime())){
|
// 计算LocalDateTime两个时间相差秒数
|
Duration duration = Duration.between(tMissionVO.getAssignTime(), tMissionVO.getReceiveTime());
|
tMissionVO.setResponseTimePoor(duration.getSeconds());
|
}
|
if(Objects.nonNull(tMissionVO.getFinishTime())){
|
// 计算LocalDateTime两个时间相差小时
|
Duration duration = Duration.between(tMissionVO.getReceiveTime(), tMissionVO.getFinishTime());
|
double minutes = (double) duration.toMinutes();
|
minutes = minutes / 60;
|
tMissionVO.setFinishTimePoor(minutes);
|
}
|
}
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
@Override
|
public PageInfo<TMissionReassignVO> pageListReassignAudit(TMissionQuery query) {
|
PageInfo<TMissionReassignVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TMissionReassignVO> list = this.baseMapper.pageListReassignAudit(query, pageInfo);
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
@Override
|
public PageInfo<TMissionVO> pageListMissionPool(TMissionQuery query) {
|
PageInfo<TMissionVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TMissionVO> list = this.baseMapper.pageListMissionPool(query, pageInfo);
|
if(CollectionUtils.isEmpty(list)){
|
return pageInfo;
|
}
|
// 计算时间差
|
for (TMissionVO tMissionVO : list) {
|
if(Objects.nonNull(tMissionVO.getAssignTime())){
|
if(Objects.nonNull(tMissionVO.getReceiveTime())){
|
// 计算LocalDateTime两个时间相差秒数
|
Duration duration = Duration.between(tMissionVO.getAssignTime(), tMissionVO.getReceiveTime());
|
tMissionVO.setResponseTimePoor(duration.getSeconds());
|
}
|
if(Objects.nonNull(tMissionVO.getFinishTime())){
|
// 计算LocalDateTime两个时间相差小时
|
Duration duration = Duration.between(tMissionVO.getReceiveTime(), tMissionVO.getFinishTime());
|
double minutes = (double) duration.toMinutes();
|
minutes = minutes / 60;
|
tMissionVO.setFinishTimePoor(minutes);
|
}
|
}
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
}
|