From b43ede1ee201c0d6aaede56e0fa3c4894c892e3c Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 18 四月 2024 10:44:41 +0800
Subject: [PATCH] 工单下发:下发记录增加下发状态

---
 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java        |    2 
 ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java         |   33 ++++++++++++++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java     |   34 +++++++++-------
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml        |    4 +-
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java              |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java |    4 ++
 6 files changed, 60 insertions(+), 19 deletions(-)

diff --git a/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java b/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java
new file mode 100644
index 0000000..ee5796b
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/general/WorkOrderDistributeWayEnum.java
@@ -0,0 +1,33 @@
+package enumeration.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * 宸ュ崟涓嬪彂鏂瑰紡
+ *
+ * @author锛歡onghl
+ * @date锛�2024/4/18
+ */
+@Getter
+public enum WorkOrderDistributeWayEnum {
+
+    SELECTED_DISTRIBUTE("SELECTED_DISTRIBUTE", "閫夋嫨涓嬪彂"),
+    ALL_DISTRIBUTE("ALL_DISTRIBUTE", "鍏ㄩ儴涓嬪彂"),
+    FAST_DISTRIBUTE("FAST_DISTRIBUTE", "蹇嵎涓嬪彂"),
+    ;
+
+
+    @EnumValue // 鏍囨槑璇ュ瓧娈靛瓨鍏ユ暟鎹簱
+    @JsonValue // 鏍囨槑鍦ㄨ浆JSON鏃朵娇鐢ㄨ瀛楁锛屽嵆鍝嶅簲鏃�
+    private final String value;
+
+    private final String desc;
+
+    WorkOrderDistributeWayEnum(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java
index b2d7582..9921ce6 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.ycl.platform.base.AbsEntity;
+import enumeration.general.WorkOrderDistributeWayEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -34,5 +35,8 @@
     @TableField("user_id")
     private Long userId;
 
+    @ApiModelProperty("涓嬪彂鏂瑰紡")
+    @TableField("distribute_way")
+    private WorkOrderDistributeWayEnum distributeWay;
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
index 4fcdc76..1356a02 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -120,7 +120,7 @@
     @PostMapping("/distribute/ids")
     @ApiOperation(value = "涓嬪彂閫夋嫨", notes = "涓嬪彂閫夋嫨")
     public Result selectedIdsDistribute(@RequestBody DistributeWorkOrderQuery query) {
-        return workOrderService.selectedIdsDistribute(query.getIds(), query.getUnitId());
+        return workOrderService.selectedIdsDistribute(query);
     }
 
     @GetMapping("/{id}")
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index f9a76f0..3a271d1 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -133,6 +133,6 @@
      * @param ids id
      * @return 缁撴灉
      */
-    Result selectedIdsDistribute(List<Integer> ids, Integer unitId);
+    Result selectedIdsDistribute(DistributeWorkOrderQuery query);
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 670853e..17469e8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -21,6 +21,7 @@
 import com.ycl.utils.SecurityUtils;
 import com.ycl.utils.redis.RedisCache;
 import enumeration.general.NotifyTypeEnum;
+import enumeration.general.WorkOrderDistributeWayEnum;
 import enumeration.general.WorkOrderStatusEnum;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.ArrayUtils;
@@ -316,41 +317,44 @@
                     .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
                     .in(WorkOrder::getId, ids)
                     .update();
-            addDistributeRecord(ids);
+            addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE);
             return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�");
         } catch (Exception e) {
-            return Result.ok("鎿嶄綔澶辫触");
+            return Result.error("鎿嶄綔澶辫触");
         } finally {
             distributeUnLock();
         }
     }
 
     @Override
-    public Result selectedIdsDistribute(List<Integer> ids, Integer unitId) {
+    public Result selectedIdsDistribute(DistributeWorkOrderQuery query) {
+        WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE;
         if (!getDistributeLock()) {
-            return Result.error("宸ュ崟涓嬪彂涓紝璇风◢鍚庨噸璇�");
+            return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�");
         }
         try {
-            if (ids.isEmpty()) {
-                ids = new LambdaQueryChainWrapper<>(baseMapper)
+            if (query.getIds().isEmpty()) {
+                query.setIds(new LambdaQueryChainWrapper<>(baseMapper)
                         .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
-                        .eq(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId)
+                        .eq(Objects.nonNull(query.getUnitId()), WorkOrder::getUnitId, query.getUnitId())
                         .select(WorkOrder::getId)
                         .list()
                         .stream()
                         .map(WorkOrder::getId)
-                        .collect(Collectors.toList());
+                        .collect(Collectors.toList()));
+                distributeWayEnum = WorkOrderDistributeWayEnum.ALL_DISTRIBUTE;
+            }
+            if (query.getIds().isEmpty()) {
+                return Result.error("娌℃湁宸ュ崟寰呬笅鍙�");
             }
             new LambdaUpdateChainWrapper<>(baseMapper)
                     .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED)
-                    .in(WorkOrder::getId, ids)
-                    .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
-                    .eq(Objects.nonNull(unitId), WorkOrder::getUnitId, unitId)
+                    .in(WorkOrder::getId, query.getIds())
                     .update();
-            addDistributeRecord(ids);
+            addDistributeRecord(query.getIds(), distributeWayEnum);
             return Result.ok("鎿嶄綔鎴愬姛");
         } catch (Exception e) {
-            return Result.ok("鎿嶄綔澶辫触");
+            return Result.error("鎿嶄綔澶辫触");
         } finally {
             distributeUnLock();
         }
@@ -380,11 +384,11 @@
      * 娣诲姞宸ュ崟涓嬪彂璁板綍
      * @param ids 宸ュ崟id
      */
-    private void addDistributeRecord(List<Integer> ids) {
+    private void addDistributeRecord(List<Integer> ids, WorkOrderDistributeWayEnum distributeWay) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         workOrderDistributeRecordMapper.insertBatch(
                 ids.stream()
-                        .map(id -> new WorkOrderDistributeRecord(id, loginUser.getUserId()))
+                        .map(id -> new WorkOrderDistributeRecord(id, loginUser.getUserId(), distributeWay))
                         .toList()
         );
     }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml
index 9b76e5a..7266faf 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml
@@ -4,10 +4,10 @@
 
 
     <insert id="insertBatch">
-        insert into t_work_order_distribute_record (work_order_id, user_id, create_time, deleted)
+        insert into t_work_order_distribute_record (work_order_id, user_id, create_time, deleted, distribute_way)
         values
         <foreach collection="list" item="item" separator=",">
-            (#{item.workOrderId}, #{item.userId}, now(), '0')
+            (#{item.workOrderId}, #{item.userId}, now(), '0', #{item.distributeWay})
         </foreach>
     </insert>
 </mapper>

--
Gitblit v1.8.0