liujie
2025-09-29 d1b9a449556b86fb23ae65022d2f5d806fdd2e73
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TMissionServiceImpl.java
@@ -13,8 +13,14 @@
import com.ruoyi.system.query.TMissionQuery;
import com.ruoyi.system.service.TMissionService;
import com.ruoyi.system.vo.MissionTotalVo;
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;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -41,8 +47,67 @@
    private RedisCache redisCache;
    @Override
    public PageInfo<TMissionVO> pageList(TMissionQuery query) {
        return null;
    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;
    }
    @Override