From 9d65efd71dccdc01942409be68b29b83ec0fa91c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 11 七月 2025 21:27:53 +0800
Subject: [PATCH] bug修改
---
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java | 244 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 182 insertions(+), 62 deletions(-)
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
index 24bd61d..4d1bc33 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TIndexController.java
@@ -29,6 +29,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -98,6 +99,7 @@
@Resource
private TSystemBulletinService systemBulletinService;
+
@ApiOperation(value = "首页-系统公告")
@PostMapping(value = "/systemBulletin")
public R<TSystemBulletin> systemBulletin() {
@@ -109,17 +111,28 @@
@PostMapping(value = "/dataReport")
public R<DataReportVO> dataReport(@RequestBody DataReportDTO dto) {
DataReportQuery dataReportQuery = new DataReportQuery();
- dataReportQuery.setStartTime(dto.getStartTime());
- dataReportQuery.setEndTime(dto.getEndTime());
+ dataReportQuery.setStartTime(dto.getStartTime()+" 00:00:00");
+ dataReportQuery.setEndTime(dto.getEndTime()+" 23:59:59");
+ dataReportQuery.setPageNum(dto.getPageNum());
+ dataReportQuery.setPageSize(dto.getPageSize());
DataReportVO res = new DataReportVO();
List<TDictData> dataList = dictDataService.list();
List<TProjectDept> projectDepts = projectDeptService.list();
List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery()
.isNotNull(TTaskDetail::getClearStatus)
+ .eq(TTaskDetail::getHandleType,1)
.eq(TTaskDetail::getAuditStatus,1)
- .groupBy(TTaskDetail::getTaskId)
.orderByDesc(BaseModel::getCreateTime)
.list();
+ taskDetails = new ArrayList<>(taskDetails.stream()
+ .collect(Collectors.groupingBy(
+ TTaskDetail::getTaskId,
+ Collectors.collectingAndThen(
+ Collectors.toList(),
+ listAll -> listAll.get(0)
+ )
+ ))
+ .values());
List<String> userDeptIds = new ArrayList<>();
LambdaQueryWrapper<TTask> tTaskLambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.hasLength(dto.getProjectId())) {
@@ -141,7 +154,7 @@
}
} else {
// 根据当前登录人查询部门
- Long userId = tokenService.getLoginUser().getUserId();
+ Long userId = tokenService.getLoginUserApplet().getUserId();
SysUser sysUser = sysUserService.selectUserById(userId);
if (sysUser.getDeptType() == 1) {
TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId());
@@ -150,8 +163,8 @@
tTaskLambdaQueryWrapper.eq(TTask::getProjectId, projectDept.getId());
userDeptIds.add(projectDept.getId());
} else {
- TProjectDept parent = projectDeptService.getById(projectDept.getParentId());
- List<TProjectDept> list = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, parent.getId()).list();
+ userDeptIds.add(projectDept.getId());
+ List<TProjectDept> list = projectDeptService.lambdaQuery().eq(TProjectDept::getParentId, projectDept.getId()).list();
List<String> deptIds = list.stream().map(TProjectDept::getId).collect(Collectors.toList());
if (!deptIds.isEmpty()) {
tTaskLambdaQueryWrapper.in(TTask::getProjectId, deptIds);
@@ -167,8 +180,8 @@
dataReportQuery.setProjectIds(userDeptIds);
if (StringUtils.hasLength(dto.getStartTime())) {
- tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, dto.getStartTime());
- tTaskLambdaQueryWrapper.le(TTask::getImplementTime, dto.getEndTime());
+ tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, dto.getStartTime()+" 00:00:00");
+ tTaskLambdaQueryWrapper.le(TTask::getImplementTime, dto.getEndTime()+" 23:59:59");
} else {
// 获取今天凌晨00:00:00 和今天23:59:59 类型为LocalDateTime
LocalDateTime startOfToday = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
@@ -176,12 +189,23 @@
tTaskLambdaQueryWrapper.ge(TTask::getImplementTime, startOfToday);
tTaskLambdaQueryWrapper.le(TTask::getImplementTime, endOfToday);
}
- tTaskLambdaQueryWrapper.ne(TTask::getStatus, 1);
+// tTaskLambdaQueryWrapper.ne(TTask::getStatus, 1);
List<TTask> tasks = taskCleanerService.list(tTaskLambdaQueryWrapper);
HashMap<String, Integer> taskMap = new HashMap<>();
HashMap<String, Integer> statusMap = new HashMap<>();
+ statusMap.put("未执行", 0);
+ statusMap.put("超时", 0);
+ statusMap.put("待确认", 0);
+ statusMap.put("已驳回", 0);
+ statusMap.put("已完成", 0);
HashMap<String, Integer> clearMap = new HashMap<>();
+ clearMap.put("合格", 0);
+ clearMap.put("不合格", 0);
HashMap<String, Integer> unqualifiedMap = new HashMap<>();
+ List<TDictData> dictData = dataList.stream().filter(e -> e.getDataType() == 2).collect(Collectors.toList());
+ for (TDictData dictDatum : dictData) {
+ unqualifiedMap.put(dictDatum.getDataContent(), 0);
+ }
for (TTask task : tasks) {
TProjectDept tProjectDept = projectDepts.stream().filter(e -> e.getId().equals(task.getProjectId())).findFirst().orElse(null);
if (tProjectDept == null) continue;
@@ -202,13 +226,12 @@
break;
case 5:
temp.append("已完成");
-
break;
case 6:
temp.append("已完成");
break;
}
- statusMap.put(temp.toString(), statusMap.getOrDefault(task.getStatus()+"", 0) + 1);
+ statusMap.put(temp.toString(), statusMap.getOrDefault(temp.toString(), 0) + 1);
TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(task.getId())).findFirst().orElse(null);
StringBuilder temp1 = new StringBuilder();
if (tTaskDetail!=null){
@@ -220,7 +243,7 @@
temp1.append("不合格");
TDictData tDictData = dataList.stream().filter(e -> e.getId().equals(tTaskDetail.getUnqualified())).findFirst().orElse(null);
if (tDictData != null){
- unqualifiedMap.put(tTaskDetail.getUnqualifiedName(), unqualifiedMap.getOrDefault(tDictData.getDataContent(), 0) + 1);
+ unqualifiedMap.put(tDictData.getDataContent(), unqualifiedMap.getOrDefault(tDictData.getDataContent(), 0) + 1);
}
break;
}
@@ -233,6 +256,10 @@
int pass=0;
int unPass=0;
List<TTask> userTaskList = tasks.stream().filter(e -> e.getPatrolInspector().equals(record.getUserId() + "")).collect(Collectors.toList());
+ List<TTask> userTaskListPass = tasks.stream().filter(e ->
+ (e.getStatus()==5||e.getStatus()==6)
+ &&
+ e.getPatrolInspector().equals(record.getUserId() + "")).collect(Collectors.toList());
for (TTask tTask : userTaskList) {
TTaskDetail tTaskDetail = taskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null);
if (tTaskDetail!=null){
@@ -249,9 +276,7 @@
}
record.setTotal(userTaskList.size());
record.setRate(pass+unPass!=0?new BigDecimal(pass).divide(new BigDecimal(pass+unPass),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO);
- List<TTask> status1 = userTaskList.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 6).collect(Collectors.toList());
- List<TTask> status2 = userTaskList.stream().filter(e -> e.getStatus() != 5 && e.getStatus() != 6).collect(Collectors.toList());
- record.setFinish(!status1.isEmpty()?new BigDecimal(status1.size()).divide(new BigDecimal(status1.size()+status2.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO);
+ record.setFinish(!userTaskList.isEmpty()?new BigDecimal(userTaskListPass.size()).divide(new BigDecimal(userTaskList.size()),2,RoundingMode.HALF_DOWN).multiply(new BigDecimal(100)):BigDecimal.ZERO);
}
// PageInfo<TaskFinishListVO> taskFinishListVOPageInfo = new PageInfo<>();
@@ -284,20 +309,25 @@
BeanUtils.copyProperties(projectDept, projectDeptListNoLimitVO1);
projectDeptListNoLimitVOS1.add(projectDeptListNoLimitVO1);
}
- projectDeptListNoLimitVO.setChildren(projectDeptListNoLimitVOS1);
+ projectDeptListNoLimitVO.setChildrenList(projectDeptListNoLimitVOS1);
projectDeptListNoLimitVOS.add(projectDeptListNoLimitVO);
}
return R.ok(projectDeptListNoLimitVOS);
}
-
+@Resource
+private TNoticeService noticeService;
@ApiOperation(value = "首页")
@PostMapping(value = "/index")
public R<IndexVO> index(@RequestBody IndexDTO dto) throws IOException {
- if (!StringUtils.hasLength(dto.getLon()) || !StringUtils.hasLength(dto.getLat())) {
- return R.fail("请上传经纬度");
- }
IndexVO res = new IndexVO();
- Long userId = tokenService.getLoginUser().getUserId();
+ res.setIsNotice(0);
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ Long count = noticeService.lambdaQuery().eq(TNotice::getUserId, userId).eq(TNotice::getStatus, 1).count();
+ if (count>0){
+ res.setIsNotice(1);
+ }
+ List<TProjectDept> projectListAll = projectDeptService.list();
+
List<TLocation> locationList = locationService.list();
List<TLocationType> locationTypeList = locationTypeService.list();
List<TTask> taskAll = taskCleanerService.lambdaQuery().eq(TTask::getPatrolInspector, userId).list();
@@ -318,10 +348,11 @@
TProjectDept projectDept = projectDeptService.getById(sysUser.getDeptId());
if (projectDept != null) {
- if (!"0".equals(projectDept.getParentId())) {
+ if ("0".equals(projectDept.getParentId())) {
+ List<String> collect = projectListAll.stream().filter(e -> e.getParentId().equals(projectDept.getId())).map(TProjectDept::getId).collect(Collectors.toList());
+ collect.add(projectDept.getId());
// 查询片区下的所有人员
- users = sysUsers.stream().filter(e -> e.getDeptId()
- .equals(projectDept.getId())
+ users = sysUsers.stream().filter(e ->collect.contains(e.getDeptId())
&& e.getStatus().equals("0")
&& e.getDeptType() == 1).collect(Collectors.toList());
} else {
@@ -345,21 +376,19 @@
} else {
TDept dept = deptService.getById(sysUser.getDeptId());
if (dept != null) {
- if (!dept.getDeptName().equals("公司")) {
- users = sysUsers.stream().filter(e -> e.getDeptId()
- .equals(sysUser.getDeptId())
- && e.getStatus().equals("0")
- && e.getDeptType() == 1).collect(Collectors.toList());
+ if (!dept.getDeptName().contains("公司")) {
+ users = sysUsers.stream().filter(e -> e.getDeptType() == 1).collect(Collectors.toList());
}
}
}
}
- List<TaskTodayVO> pendingTask = new ArrayList<>();
+ List<TaskPendingVO> pendingTask = new ArrayList<>();
res.setTotalUserCount(users.size());
if (!users.isEmpty()) {
- List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, users).list();
+ List<Long> userIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
+ List<TTask> tasks = taskCleanerService.lambdaQuery().in(TTask::getPatrolInspector, userIds).list();
List<String> taskIds = tasks.stream().map(TTask::getId).collect(Collectors.toList());
if (!tasks.isEmpty()) {
List<TTask> status1 = tasks.stream().filter(e -> e.getStatus() == 5 || e.getStatus() == 6).collect(Collectors.toList());
@@ -369,17 +398,26 @@
.multiply(new BigDecimal(100))
: new BigDecimal(0));
List<TTaskDetail> taskDetails = taskDetailService.lambdaQuery()
- .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, taskIds)
+ .eq(TTaskDetail::getAuditStatus, 1)
+ .in(TTaskDetail::getTaskId, taskIds)
.isNotNull(TTaskDetail::getClearStatus)
- .groupBy(TTaskDetail::getTaskId)
+ .eq(TTaskDetail::getHandleType,1)
.orderByDesc(TTaskDetail::getCreateTime).list();
-
+ taskDetails = new ArrayList<>(taskDetails.stream()
+ .collect(Collectors.groupingBy(
+ TTaskDetail::getTaskId,
+ Collectors.collectingAndThen(
+ Collectors.toList(),
+ listAll -> listAll.get(0)
+ )
+ ))
+ .values());
List<TTaskDetail> status3 = taskDetails.stream().filter(e -> e.getClearStatus() == 1).collect(Collectors.toList());
List<TTaskDetail> status4 = taskDetails.stream().filter(e -> e.getClearStatus() == 2).collect(Collectors.toList());
- if (status3.size() + status4.size() != 0) {
- BigDecimal divide = new BigDecimal(status3.size() + status4.size())
- .divide(new BigDecimal(status3.size()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
+ if (!status3.isEmpty()) {
+ BigDecimal divide = new BigDecimal(status3.size() )
+ .divide(new BigDecimal(status3.size()+ status4.size()), 2, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100));
res.setRate(divide);
} else {
res.setRate(new BigDecimal(0));
@@ -410,16 +448,20 @@
leaveUserListVO.setCreateTime1(tLeave.getCreateTime());
leaveUserListVO.setStartTime1(tLeave.getStartTime());
leaveUserListVO.setEndTime1(tLeave.getEndTime());
+ leaveList.add(leaveUserListVO);
}
List<TTask> taskList = taskAll.stream().filter(e -> e.getPatrolInspector().equals(userId + "") && e.getStatus() == 4).collect(Collectors.toList());
List<String> taskIds = taskList.stream().map(TTask::getId).collect(Collectors.toList());
+ // 驳回原因
+ List<TTaskDetail> tTaskDetails = taskDetailService.list(new LambdaQueryWrapper<TTaskDetail>()
+ .eq(TTaskDetail::getHandleType,3).groupBy(TTaskDetail::getTaskId).orderByDesc(TTaskDetail::getCreateTime));
for (TTask tTask : taskList) {
List<TTaskDetail> taskDetailsStatus1 = taskDetailService.lambdaQuery()
.eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, taskIds)
.eq(TTaskDetail::getClearStatus, 2)
.groupBy(TTaskDetail::getTaskId)
.orderByDesc(TTaskDetail::getCreateTime).list();
- TaskTodayVO taskTodayVO = new TaskTodayVO();
+ TaskPendingVO taskTodayVO = new TaskPendingVO();
BeanUtils.copyProperties(tTask, taskTodayVO);
TLocation tLocation = locationList.stream().filter(e -> e.getId().equals(tTask.getLocationId())).findFirst().orElse(null);
if (tLocation != null) {
@@ -427,11 +469,14 @@
taskTodayVO.setLocationLon(tLocation.getLocationLon());
taskTodayVO.setLocationLat(tLocation.getLocationLat());
taskTodayVO.setLocationName(tLocation.getLocationName());
- // todo
- Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
- if (distance != null) {
- taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
- } else {
+ if(StringUtils.hasLength(dto.getLon())){
+ Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
+ if (distance != null) {
+ taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ } else {
+ taskTodayVO.setDistance(new BigDecimal("0"));
+ }
+ }else {
taskTodayVO.setDistance(new BigDecimal("0"));
}
TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -440,23 +485,62 @@
taskTodayVO.setLocationTypeIcon(tLocationType.getLocationIcon());
}
}
- TTaskDetail tTaskDetail = taskDetailsStatus1.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null);
- if (tTaskDetail != null) {
- String unqualified = tTaskDetail.getUnqualified();
- TDictData dictData = dictDataService.lambdaQuery().eq(TDictData::getId, unqualified).one();
- if (dictData != null) {
- taskTodayVO.setRemark(dictData.getDataContent());
+ TTaskDetail tTaskDetail = tTaskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null);
+ if (tTaskDetail!=null){
+ taskTodayVO.setRemark(tTaskDetail.getAuditRemark());
+ }
+ // 任务记录ids
+ List<String> collect = taskAll.stream().map(TTask::getId).collect(Collectors.toList());
+ if (!collect.isEmpty()){
+ List<TInspector> list1 = inspectorService.lambdaQuery()
+
+ .in(TInspector::getTaskId, collect).eq(TInspector::getStatus, 2).list();
+ for (TInspector tInspector : list1) {
+ TaskPendingVO taskTodayVOOne = new TaskPendingVO();
+ BeanUtils.copyProperties(tTask, taskTodayVOOne);
+ taskTodayVOOne.setId(tInspector.getId());
+ TLocation tLocationOne = locationList.stream().filter(e -> e.getId().equals(tTask.getLocationId())).findFirst().orElse(null);
+ if (tLocationOne != null) {
+ taskTodayVOOne.setLocationAddress(tLocationOne.getLocationAddress());
+ taskTodayVOOne.setLocationLon(tLocationOne.getLocationLon());
+ taskTodayVOOne.setLocationLat(tLocationOne.getLocationLat());
+ taskTodayVOOne.setLocationName(tLocationOne.getLocationName());
+ if(StringUtils.hasLength(dto.getLon())){
+ Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocationOne.getLocationLon() + "," + tLocationOne.getLocationLat(), 1);
+ if (distance != null) {
+ taskTodayVOOne.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ } else {
+ taskTodayVOOne.setDistance(new BigDecimal("0"));
+ }
+ }else {
+ taskTodayVOOne.setDistance(new BigDecimal("0"));
+ }
+ TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocationOne.getLocationType())).findFirst().orElse(null);
+ if (tLocationType != null) {
+ taskTodayVOOne.setLocationTypeName(tLocationType.getLocationName());
+ taskTodayVOOne.setLocationTypeIcon(tLocationType.getLocationIcon());
+ }
+ }
+ taskTodayVOOne.setStatus(4);
+ taskTodayVOOne.setRemark(tInspector.getAuditRemark());
+ pendingTask.add(taskTodayVOOne);
}
}
pendingTask.add(taskTodayVO);
}
+ // 将pendingTask按照距离 从小到大排序
+ pendingTask.sort(Comparator.comparing(TaskPendingVO::getDistance));
res.setPendingTask(pendingTask);
res.setLeaveList(leaveList);
List<TaskTodayVO> todayTask = new ArrayList<>();
+ List<String> collect = taskAll.stream().map(TTask::getId).collect(Collectors.toList());
for (TTask tTask : taskToday) {
TaskTodayVO taskTodayVO = new TaskTodayVO();
+ if(CollectionUtils.isEmpty(collect)){
+ break;
+ }
List<TTaskDetail> taskDetailsStatus1 = taskDetailService.lambdaQuery()
- .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, taskIds)
+ .eq(TTaskDetail::getAuditStatus, 1).in(TTaskDetail::getTaskId, collect)
.eq(TTaskDetail::getClearStatus, 2)
.groupBy(TTaskDetail::getTaskId)
.orderByDesc(TTaskDetail::getCreateTime).list();
@@ -467,10 +551,14 @@
taskTodayVO.setLocationLon(tLocation.getLocationLon());
taskTodayVO.setLocationLat(tLocation.getLocationLat());
taskTodayVO.setLocationName(tLocation.getLocationName());
- Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
- if (distance != null) {
- taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
- } else {
+ if(StringUtils.hasLength(dto.getLon())){
+ Map<String, String> distance = amapApiClient.getDistance(dto.getLon() + "," + dto.getLat(), tLocation.getLocationLon() + "," + tLocation.getLocationLat(), 1);
+ if (distance != null) {
+ taskTodayVO.setDistance(new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN));
+ } else {
+ taskTodayVO.setDistance(new BigDecimal("0"));
+ }
+ }else {
taskTodayVO.setDistance(new BigDecimal("0"));
}
TLocationType tLocationType = locationTypeList.stream().filter(e -> e.getId().equals(tLocation.getLocationType())).findFirst().orElse(null);
@@ -479,21 +567,53 @@
taskTodayVO.setLocationTypeIcon(tLocationType.getLocationIcon());
}
}
- TTaskDetail tTaskDetail = taskDetailsStatus1.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null);
- if (tTaskDetail != null) {
- String unqualified = tTaskDetail.getUnqualified();
- TDictData dictData = dictDataService.lambdaQuery().eq(TDictData::getId, unqualified).one();
- if (dictData != null) {
- taskTodayVO.setRemark(dictData.getDataContent());
- }
+ TTaskDetail tTaskDetail = tTaskDetails.stream().filter(e -> e.getTaskId().equals(tTask.getId())).findFirst().orElse(null);
+ if (tTaskDetail!=null){
+ taskTodayVO.setRemark(tTaskDetail.getAuditRemark());
}
todayTask.add(taskTodayVO);
+
}
+ // 将todayTask进行排序 优先根据status状态排序,优先展示未执行、超时、待整改、待确认、整改完成、已完成,然后状态一样再根据距离排序
+ sortTodayTasks(todayTask);
res.setTodayTask(todayTask);
- List<TaskTodayVO> tomorrowTask = new ArrayList<>(todayTask);
+ List<TaskTomorrowVO> tomorrowTask = new ArrayList<>();
+
+ for (TaskTodayVO taskTodayVO : todayTask) {
+ TaskTomorrowVO taskTomorrowVO = new TaskTomorrowVO();
+ BeanUtils.copyProperties(taskTodayVO, taskTomorrowVO);
+ tomorrowTask.add(taskTomorrowVO);
+ }
Collections.shuffle(tomorrowTask);
res.setTomorrowTask(tomorrowTask);
+ res.setIsLeave(0);
+ // 查询请假状态
+ List<TLeave> list2 = leaveService.lambdaQuery().eq(TLeave::getLeavePerson, userId)
+ .eq(TLeave::getAuditStatus, 2)
+ .list();
+ for (TLeave tLeave : list2) {
+ LocalDate now = LocalDate.now();
+ LocalDate startDate = tLeave.getStartTime().toLocalDate();
+ LocalDate endDate = tLeave.getStartTime().toLocalDate();
+ if (now.isAfter(startDate) && now.isBefore(endDate)) {
+ res.setIsLeave(1);
+ } else if (now.isEqual(startDate) || now.isEqual(endDate)) {
+ res.setIsLeave(1);
+ }
+ }
return R.ok(res);
}
+ public static void sortTodayTasks(List<TaskTodayVO> taskList) {
+ Map<Integer, Integer> statusOrder = new HashMap<>();
+ statusOrder.put(1, 0);
+ statusOrder.put(2, 1);
+ statusOrder.put(4, 2);
+ statusOrder.put(3, 3);
+ statusOrder.put(5, 4);
+ statusOrder.put(6, 5);
+
+ taskList.sort(Comparator.comparingInt((TaskTodayVO o) -> statusOrder.getOrDefault(o.getStatus(), Integer.MAX_VALUE)).thenComparing(TaskTodayVO::getDistance));
+ }
+
}
--
Gitblit v1.7.1