FengChaoYu 5 месяцев назад
Родитель
Сommit
06352c323d

+ 16 - 28
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/workorder/OrderBaseLogic.java

@@ -703,7 +703,7 @@ public class OrderBaseLogic {
                     bean.setWorkerMobile(orderWorker.getWorkerMobile());
                     bean.setWorkerIdCard(orderWorker.getWorkerIdcard());
                     bean.setIsSelect(true);
-                    workerTeamMap.put(orderWorker.getWorkerId(), bean);
+                    workerTeamMap.put(orderWorker.getWorkerIdcard(), bean);
                 }
             }
         }
@@ -717,7 +717,6 @@ public class OrderBaseLogic {
                 .orderByAsc(WorkerTeam::getCreateTime)
                 .list();
         if (CollectionUtil.isNotEmpty(teamList)) {
-            int index = 0;
             List<WorkerTeamBean> allTeamList = new ArrayList<>();
             for (WorkerTeam workerTeam : teamList) {
                 WorkerTeamBean bean = new WorkerTeamBean();
@@ -726,14 +725,7 @@ public class OrderBaseLogic {
                 } else {
                     bean.setWorkerId(workerTeam.getMasterWorkerId());
                 }
-
-                bean.setIsSelect(false);
-                if (index == 0 && CollectionUtil.isEmpty(allTeamList)) {
-                    // 没有工单派工师傅并且下标为0时,默认选中
-                    bean.setIsSelect(true);
-                }
                 allTeamList.add(bean);
-                index++;
             }
 
             final List<User> userList = userService.lambdaQuery()
@@ -744,8 +736,16 @@ public class OrderBaseLogic {
                     .list();
             final Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getUserId, Function.identity()));
 
-            for (WorkerTeamBean workerTeam : allTeamList) {
-                final User user = userMap.get(workerTeam.getWorkerId());
+            // 正常状态的小工师傅
+            final List<WebsitUser> websitUserList = websitUserService.lambdaQuery()
+                    .eq(WebsitUser::getCompanyWechatId, orderBase.getCompanyWechatId())
+                    .in(WebsitUser::getExamineStatus, ExamineWorkerStatusEnum.OK.getKey(), ExamineWorkerStatusEnum.EXPIRED.getKey())
+                    .eq(WebsitUser::getWebsitId, orderBase.getWebsitId())
+                    .in(WebsitUser::getUserId, allTeamList.stream().map(WorkerTeamBean::getWorkerId).collect(Collectors.toList()))
+                    .list();
+
+            for (WebsitUser websitUser : websitUserList) {
+                final User user = userMap.get(websitUser.getUserId());
                 if (Objects.nonNull(user)) {
                     WorkerTeamBean bean = new WorkerTeamBean();
                     bean.setWorkerId(user.getUserId());
@@ -753,27 +753,15 @@ public class OrderBaseLogic {
                     bean.setWorkerNumber(user.getWorkerNumber());
                     bean.setWorkerMobile(user.getMobile());
                     bean.setWorkerIdCard(user.getIdCard());
-                    bean.setIsSelect(workerTeam.getIsSelect());
-                    workerTeamMap.put(user.getUserId(), bean);
-                    index++;
+                    if (workerTeamMap.size() == 0) {
+                        // workerTeamMap数量为0时, 默认选中
+                        bean.setIsSelect(true);
+                    }
+                    workerTeamMap.put(bean.getWorkerIdCard(), bean);
                 }
             }
         }
 
-        if (CollectionUtil.isNotEmpty(workerTeamMap)) {
-            // 清除非正常状态的小工师傅
-            final List<WebsitUser> websitUserList = websitUserService.lambdaQuery()
-                    .eq(WebsitUser::getCompanyWechatId, orderBase.getCompanyWechatId())
-                    .notIn(WebsitUser::getExamineStatus, ExamineWorkerStatusEnum.OK.getKey(), ExamineWorkerStatusEnum.EXPIRED.getKey())
-                    .eq(WebsitUser::getWebsitId, orderBase.getWebsitId())
-                    .in(WebsitUser::getUserId, workerTeamMap.keySet())
-                    .list();
-
-            for (WebsitUser websitUser : websitUserList) {
-                workerTeamMap.remove(websitUser.getUserId());
-            }
-        }
-
         return new ArrayList<>(workerTeamMap.values());
     }