Browse Source

no message

FengChaoYu 1 year ago
parent
commit
f96d437fe5

+ 10 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/workorder/OrderBaseController.java

@@ -209,4 +209,14 @@ public class OrderBaseController {
         List<WorkerTeamBean> beanList = orderBaseLogic.slaveWorkerTeam(orderBaseId);
         return ResponseHelper.success(beanList);
     }
+
+    @PostMapping("/change/slave/worker/team")
+    @ApiOperation("更换小工")
+    public ResponseHelper<List<WorkerTeamBean>> changeSlaveWorkerTeam(
+            @ApiParam(value = "工单id", required = true) @RequestParam String orderBaseId,
+            @ApiParam(value = "小工") @RequestParam(required = false) List<String> workerList
+    ) throws Exception {
+        orderBaseLogic.changeSlaveWorkerTeam(orderBaseId, workerList);
+        return ResponseHelper.success();
+    }
 }

+ 45 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/workorder/OrderBaseLogic.java

@@ -637,4 +637,49 @@ public class OrderBaseLogic {
         return new ArrayList<>(workerTeamMap.values());
     }
 
+    public void changeSlaveWorkerTeam(String orderBaseId, List<String> workerList) {
+        PgOrderBase pgOrderBase = pgOrderBaseService.getById(orderBaseId);
+        if (StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.YWG.getKey())) {
+            throw new RemoteServiceException("工单状态”已完工“");
+        }
+
+        final AdminWebsit adminWebsit = adminWebsitService.getById(pgOrderBase.getWebsitId());
+
+        if (adminWebsit.getAttr().equals(WebsitAttrEnum.SELF.getKey())
+                && "安装, 拆移".contains(pgOrderBase.getOrderSmallType())
+                && CollectionUtil.isEmpty(workerList)) {
+            throw new RemoteServiceException("工单的类型必须至少选一个小工");
+        }
+        // 清空小工
+        pgOrderWorkerService.lambdaUpdate()
+                .eq(PgOrderWorker::getOrderBaseId, pgOrderBase.getId())
+                .eq(PgOrderWorker::getIsMaster, false)
+                .remove();
+
+        StringBuilder joinSlaveStr = new StringBuilder();
+        if (CollectionUtil.isNotEmpty(workerList)) {
+            joinSlaveStr.append("辅助工程师");
+            List<PgOrderWorker> orderWorkerList = new ArrayList<>();
+            for (String workerId : workerList) {
+                final User user = userService.getById(workerId);
+                PgOrderWorker orderWorker = new PgOrderWorker();
+                orderWorker.setOrderBaseId(pgOrderBase.getId())
+                        .setWebsitId(pgOrderBase.getWebsitId())
+                        .setWebsitName(pgOrderBase.getWebsitName())
+                        .setWorkerId(workerId)
+                        .setWorkerName(Objects.nonNull(user) ? user.getNickName() : "")
+                        .setWorkerMobile(Objects.nonNull(user) ? user.getMobile() : "")
+                        .setWorkerIdcard(Objects.nonNull(user) ? user.getIdCard() : "")
+                        .setWorkerNumber(Objects.nonNull(user) ? user.getWorkerNumber() : "")
+                        .setIsMaster(false);
+
+                orderWorkerList.add(orderWorker);
+                joinSlaveStr.append("【").append(orderWorker.getWorkerName()).append("】");
+            }
+
+            pgOrderWorkerService.saveBatch(orderWorkerList);
+        }
+
+        orderLogLogic.addLog(orderBaseId, "更换小工", joinSlaveStr.toString(), pgOrderBase.getWebsitName());
+    }
 }