package com.ruoyi.system.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.basic.PageInfo;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.system.mapper.*;
|
import com.ruoyi.system.model.*;
|
import com.ruoyi.system.query.TaskWarningQuery;
|
import com.ruoyi.system.service.TEarlyWarningService;
|
import com.ruoyi.system.vo.system.CleanerListVO;
|
import com.ruoyi.system.vo.system.TaskWarningVO;
|
import com.sun.org.apache.bcel.internal.generic.NEW;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* <p>
|
* 任务预警 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-05-28
|
*/
|
@Service
|
public class TEarlyWarningServiceImpl extends ServiceImpl<TEarlyWarningMapper, TEarlyWarning> implements TEarlyWarningService {
|
|
@Autowired
|
private SysUserMapper sysUserMapper;
|
@Autowired
|
private TProjectDeptMapper projectDeptMapper;
|
@Autowired
|
private TDeptMapper deptMapper;
|
@Autowired
|
private TTaskMapper taskMapper;
|
@Autowired
|
private TLocationMapper locationMapper;
|
@Override
|
public PageInfo<TaskWarningVO> pageList(TaskWarningQuery query) {
|
List<TTask> taskList = taskMapper.selectList(null);
|
PageInfo<TaskWarningVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TaskWarningVO> list = this.baseMapper.pageList(query);
|
List<String> strings = new ArrayList<>();
|
List<String> taskIds = new ArrayList<>();
|
List<TaskWarningVO> res = new ArrayList<>();
|
for (TaskWarningVO taskWarningVO : list) {
|
String[] split = taskWarningVO.getTaskId().split(",");
|
TTask tTask = taskList.stream().filter(e -> e.getId().equals(split[0])).findFirst().orElse(null);
|
StringBuilder taskCode = new StringBuilder();
|
for (String s : split) {
|
TTask task = taskList.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
|
if (task!=null){
|
taskCode.append(task.getTaskCode()).append(",");
|
}
|
}
|
// 去除最后一位
|
if (StringUtils.hasLength(taskCode.toString())){
|
taskWarningVO.setTaskCode(taskCode.substring(0, taskCode.length() - 1));
|
strings.add(taskWarningVO.getTaskCode());
|
}
|
String format = taskWarningVO.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
taskIds.add(taskWarningVO.getTaskId()+","+format);
|
|
}
|
|
for (String string : taskIds) {
|
if (string.split(",").length>2){
|
List<String> userIds = new ArrayList<>();
|
List<TaskWarningVO> temp = new ArrayList<>();
|
String s1 = string.split(",")[3];
|
// 转化为LocalDateTime
|
LocalDateTime localDateTime = LocalDateTime.parse(s1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
// 点位不合格预警
|
for (String s : string.split(",")) {
|
TaskWarningVO taskWarningVO = new TaskWarningVO();
|
taskWarningVO.setWarningType(2);
|
taskWarningVO.setCreateTime(localDateTime);
|
TTask tTask = taskList.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null);
|
// 任务所属巡检员
|
if (tTask!=null){
|
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tTask.getPatrolInspector()));
|
if (!userIds.contains(tTask.getPatrolInspector())){
|
userIds.add(tTask.getPatrolInspector());
|
taskWarningVO.setTaskCode(tTask.getTaskCode());
|
TLocation tLocation = locationMapper.selectById(tTask.getLocationId());
|
if (tLocation!=null){
|
taskWarningVO.setLocationName(tLocation.getLocationName());
|
}
|
if (sysUser!=null){
|
taskWarningVO.setPhonenumber(sysUser.getPhonenumber());
|
taskWarningVO.setPatrolInspectorName(sysUser.getNickName());
|
if (sysUser.getDeptType() == 1){
|
TProjectDept tProjectDept = projectDeptMapper.selectById(sysUser.getDeptId());
|
if (!tProjectDept.getParentId().equals("0")){
|
TProjectDept tProjectDept1 = projectDeptMapper.selectById(tProjectDept.getParentId());
|
taskWarningVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName());
|
}else{
|
taskWarningVO.setDeptName(tProjectDept.getProjectName());
|
}
|
}else{
|
TDept tDept = deptMapper.selectById(sysUser.getDeptId());
|
taskWarningVO.setDeptName(tDept.getDeptName());
|
}
|
}
|
temp.add(taskWarningVO);
|
res.add(taskWarningVO);
|
}else{
|
for (TaskWarningVO warningVO : temp) {
|
if (warningVO.getPhonenumber().equals(sysUser.getPhonenumber()+"")){
|
warningVO.setTaskCode(warningVO.getTaskCode()+","+tTask.getTaskCode());
|
break;
|
}
|
}
|
}
|
}
|
}
|
}else{
|
String s1 = string.split(",")[1];
|
// 转化为LocalDateTime
|
LocalDateTime localDateTime = LocalDateTime.parse(s1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
// 超时预警
|
TaskWarningVO taskWarningVO = new TaskWarningVO();
|
taskWarningVO.setCreateTime(localDateTime);
|
|
taskWarningVO.setWarningType(1);
|
TTask tTask = taskList.stream().filter(e -> e.getId().equals(string.split(",")[0])).findFirst().orElse(null);
|
// 任务所属巡检员
|
if (tTask!=null){
|
SysUser sysUser = sysUserMapper.selectUserById(Long.valueOf(tTask.getPatrolInspector()));
|
taskWarningVO.setTaskCode(tTask.getTaskCode());
|
TLocation tLocation = locationMapper.selectById(tTask.getLocationId());
|
if (tLocation!=null){
|
taskWarningVO.setLocationName(tLocation.getLocationName());
|
}
|
if (sysUser!=null){
|
taskWarningVO.setPhonenumber(sysUser.getPhonenumber());
|
taskWarningVO.setPatrolInspectorName(sysUser.getNickName());
|
if (sysUser.getDeptType() == 1){
|
TProjectDept tProjectDept = projectDeptMapper.selectById(sysUser.getDeptId());
|
if (!tProjectDept.getParentId().equals("0")){
|
TProjectDept tProjectDept1 = projectDeptMapper.selectById(tProjectDept.getParentId());
|
taskWarningVO.setDeptName(tProjectDept1.getProjectName()+">"+tProjectDept.getProjectName());
|
}else{
|
taskWarningVO.setDeptName(tProjectDept.getProjectName());
|
}
|
}else{
|
TDept tDept = deptMapper.selectById(sysUser.getDeptId());
|
taskWarningVO.setDeptName(tDept.getDeptName());
|
}
|
}
|
res.add(taskWarningVO);
|
}
|
}
|
}
|
pageInfo.setTotal(res.size());
|
// 手动对res进行分页
|
res = res.stream().skip((long) (query.getPageNum() - 1) * query.getPageSize()).limit(query.getPageSize()).collect(Collectors.toList());
|
pageInfo.setRecords(res);
|
return pageInfo;
|
}
|
}
|