소스 검색

Merge remote-tracking branch 'origin/develop' into develop

‘linchangsheng’ 6 달 전
부모
커밋
99061b5f94

+ 8 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/worker/WorkerTeamLogic.java

@@ -88,6 +88,14 @@ public class WorkerTeamLogic {
         if (count > 0) {
             throw new RemoteServiceException("已和 " + workerTeam.getAssistantWorkerName() + " 师傅组队");
         }
+        final Integer count1 = workerTeamService.lambdaQuery()
+                .eq(WorkerTeam::getWebsitId, workerTeam.getWebsitId())
+                .eq(WorkerTeam::getMasterWorkerId, workerTeam.getAssistantWorkerId())
+                .eq(WorkerTeam::getAssistantWorkerId, workerTeam.getMasterWorkerId())
+                .count();
+        if (count1 > 0) {
+            throw new RemoteServiceException("已和 " + workerTeam.getAssistantWorkerName() + " 师傅组队");
+        }
         workerTeam.insert();
     }
 

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

@@ -654,21 +654,42 @@ public class OrderBaseLogic {
 
         final List<WorkerTeam> teamList = workerTeamService.lambdaQuery()
                 .eq(WorkerTeam::getCompanyWechatId, orderBase.getCompanyWechatId())
-                .eq(WorkerTeam::getMasterWorkerId, workerNumber)
+                .and(v -> v.eq(WorkerTeam::getMasterWorkerId, workerNumber)
+                        .or()
+                        .eq(WorkerTeam::getAssistantWorkerId, workerNumber))
                 .eq(WorkerTeam::getStatus, StateEnum.ON.getKey())
                 .orderByAsc(WorkerTeam::getCreateTime)
                 .list();
         if (CollectionUtil.isNotEmpty(teamList)) {
+            int index = 0;
+            List<WorkerTeamBean> allTeamList = new ArrayList<>();
+            for (WorkerTeam workerTeam : teamList) {
+                WorkerTeamBean bean = new WorkerTeamBean();
+                if (workerTeam.getMasterWorkerId().equals(workerNumber)) {
+                    bean.setWorkerNumber(workerTeam.getAssistantWorkerId());
+                } else {
+                    bean.setWorkerNumber(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()
-                    .in(User::getWorkerNumber, teamList.stream()
-                            .map(WorkerTeam::getAssistantWorkerId)
+                    .in(User::getWorkerNumber, allTeamList.stream()
+                            .map(WorkerTeamBean::getWorkerNumber)
                             .collect(Collectors.toList()))
                     .eq(User::getType, UserTypeEnum.WORKER.getKey())
                     .list();
             final Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getWorkerNumber, Function.identity()));
-            int index = 0;
-            for (WorkerTeam workerTeam : teamList) {
-                final User user = userMap.get(workerTeam.getAssistantWorkerId());
+
+            for (WorkerTeamBean workerTeam : allTeamList) {
+                final User user = userMap.get(workerTeam.getWorkerNumber());
                 if (Objects.nonNull(user)) {
                     WorkerTeamBean bean = new WorkerTeamBean();
                     bean.setWorkerId(user.getUserId());
@@ -676,11 +697,7 @@ public class OrderBaseLogic {
                     bean.setWorkerNumber(user.getWorkerNumber());
                     bean.setWorkerMobile(user.getMobile());
                     bean.setWorkerIdCard(user.getIdCard());
-                    bean.setIsSelect(false);
-                    if (index == 0 && CollectionUtil.isEmpty(workerTeamMap)) {
-                        // 没有工单派工师傅并且下标为0时,默认选中
-                        bean.setIsSelect(true);
-                    }
+                    bean.setIsSelect(bean.getIsSelect());
                     workerTeamMap.put(user.getUserId(), bean);
                     index++;
                 }

+ 24 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/worker/WorkerTeamLogic.java

@@ -97,13 +97,35 @@ public class WorkerTeamLogic {
             throw new RemoteServiceException(workerTeam.getWebsitId() + "已存在一组同样师傅的记录" + workerTeam.getMasterWorkerId() + "," + workerTeam.getAssistantWorkerId());
         }
 
-        final Integer count1 = workerTeamApplyService.lambdaQuery()
+        final Integer count1 = workerTeamService.lambdaQuery()
+                .eq(WorkerTeam::getCompanyWechatId, workerTeam.getCompanyWechatId())
+                .eq(WorkerTeam::getWebsitId, workerTeam.getWebsitId())
+                .eq(WorkerTeam::getMasterWorkerId, workerTeam.getAssistantWorkerId())
+                .eq(WorkerTeam::getAssistantWorkerId, workerTeam.getMasterWorkerId())
+                .ne(StringUtils.isNotBlank(workerTeam.getId()), WorkerTeam::getId, workerTeam.getId())
+                .count();
+        if (count1 > 0) {
+            throw new RemoteServiceException(workerTeam.getWebsitId() + "已存在一组同样师傅的记录" + workerTeam.getMasterWorkerId() + "," + workerTeam.getAssistantWorkerId());
+        }
+
+
+        final Integer count2 = workerTeamApplyService.lambdaQuery()
                 .eq(WorkerTeamApply::getCompanyWechatId, workerTeam.getCompanyWechatId())
                 .eq(WorkerTeamApply::getStatus, ExamineStatusEnum.WAIT.getKey())
                 .eq(WorkerTeamApply::getMasterWorkerId, workerTeam.getMasterWorkerId())
                 .eq(WorkerTeamApply::getAssistantWorkerId, workerTeam.getAssistantWorkerId())
                 .count();
-        if (count1 > 0) {
+        if (count2 > 0) {
+            throw new RemoteServiceException(workerTeam.getWebsitId() + "已存在一组同样师傅的待师傅确认的申请记录" + workerTeam.getMasterWorkerId() + "," + workerTeam.getAssistantWorkerId());
+        }
+
+        final Integer count3 = workerTeamApplyService.lambdaQuery()
+                .eq(WorkerTeamApply::getCompanyWechatId, workerTeam.getCompanyWechatId())
+                .eq(WorkerTeamApply::getStatus, ExamineStatusEnum.WAIT.getKey())
+                .eq(WorkerTeamApply::getMasterWorkerId, workerTeam.getAssistantWorkerId())
+                .eq(WorkerTeamApply::getAssistantWorkerId, workerTeam.getMasterWorkerId())
+                .count();
+        if (count3 > 0) {
             throw new RemoteServiceException(workerTeam.getWebsitId() + "已存在一组同样师傅的待师傅确认的申请记录" + workerTeam.getMasterWorkerId() + "," + workerTeam.getAssistantWorkerId());
         }
     }