From 98435cefa29bddac143ea3c2c6762595ef31518f Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 09 七月 2025 09:17:09 +0800
Subject: [PATCH] bug修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
index 8af7cba..adf3fd3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -11,6 +11,7 @@
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.service.*;
 import javafx.concurrent.Task;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -27,6 +28,7 @@
  * @author xiaochen
  * @date 2025/6/11 18:39
  */
+@Slf4j
 @Component
 public class TaskUtil {
 
@@ -117,9 +119,12 @@
             // 获取点位类型的占比
             String num4 = detail.getNum4();
 
+            // 未绑定员工
             if(CollectionUtils.isEmpty(sysUsers)){
                 continue;
             }
+
+
 
             SysUser sysUser = sysUsers.get(0);
             List<TProjectDept> projectDeptLists = new ArrayList<>();
@@ -193,7 +198,7 @@
             }
             int dayCleanerCount = cleanerSums / cycle;
 
-            if((cycle - detail.getCurrentValue()) == 1 && cleanerSums % cycle != 0){
+            if((cycle == detail.getCurrentValue()) && cleanerSums % cycle != 0){
                 dayCleanerCount++;
             }
 
@@ -217,6 +222,10 @@
 
             // 抽取保洁员
             List<TCleaner> tCleaners = randomSelection(cleaners, dayCleanerCount);
+            if(CollectionUtils.isEmpty(tCleaners)){
+                log.error("没有可抽取的保洁员");
+                continue;
+            }
             if(tCleaners.size() < dayCleanerCount){
                 List<String> cleanIds = tCleaners.stream().map(TCleaner::getId).collect(Collectors.toList());
                 List<TCleaner> cleaners1 = cleanerService.list(Wrappers.lambdaQuery(TCleaner.class)
@@ -275,6 +284,10 @@
                 detail.setCurrentValue(0);
                 // 将重复点位置空
                 redisCache.deleteObject(detail.getId() + REPEAT_LOCATION);
+                // 将项目部权重置空
+                redisCache.deleteObject(detail.getId() + PROJECT_DEPT_WEIGHT);
+                // 将保洁员权重置空
+                redisCache.deleteObject(detail.getId() + CLEANER_WEIGHT);
             }
 
             // 创建任务

--
Gitblit v1.7.1