From a1d1d928893c33fad6694b2503a425ab29af0a15 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 04 三月 2026 14:52:49 +0800
Subject: [PATCH] 云仓WMS接口流程

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OrderWorkTypeServiceImpl.java |   81 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OrderWorkTypeServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OrderWorkTypeServiceImpl.java
new file mode 100644
index 0000000..2ee979b
--- /dev/null
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OrderWorkTypeServiceImpl.java
@@ -0,0 +1,81 @@
+package com.vincent.rsf.server.manager.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.server.manager.enums.OrderWorkType;
+import com.vincent.rsf.server.manager.service.OrderWorkTypeService;
+import com.vincent.rsf.server.system.constant.DictTypeCode;
+import com.vincent.rsf.server.system.entity.DictData;
+import com.vincent.rsf.server.system.service.DictDataService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 璁㈠崟涓氬姟绫诲瀷锛氫紭鍏堜粠瀛楀吀琛ㄨ鍙栵紙鍙厤缃級锛屾棤鍒欏洖閫�鍒� OrderWorkType 鏋氫妇銆�
+ */
+@Slf4j
+@Service
+public class OrderWorkTypeServiceImpl implements OrderWorkTypeService {
+
+    @Resource
+    private DictDataService dictDataService;
+
+    private volatile List<DictData> cache;
+    private static final Object CACHE_LOCK = new Object();
+
+    @Override
+    public List<DictData> listAll() {
+        if (cache != null && !cache.isEmpty()) {
+            return cache;
+        }
+        synchronized (CACHE_LOCK) {
+            if (cache != null && !cache.isEmpty()) {
+                return cache;
+            }
+            List<DictData> list = dictDataService.list(new LambdaQueryWrapper<DictData>()
+                    .eq(DictData::getDictTypeCode, DictTypeCode.DICT_ORDER_WORK_TYPE)
+                    .eq(DictData::getStatus, 1)
+                    .orderByAsc(DictData::getSort));
+            cache = list;
+            return cache;
+        }
+    }
+
+    @Override
+    public String getTypeByLabel(String label) {
+        if (label == null || label.isEmpty()) {
+            return null;
+        }
+        for (DictData d : listAll()) {
+            if (label.equals(d.getLabel())) {
+                return d.getValue();
+            }
+        }
+        // 鍥為��鍒版灇涓�
+        return OrderWorkType.getWorkType(label);
+    }
+
+    @Override
+    public String getLabelByType(String type) {
+        if (type == null || type.isEmpty()) {
+            return null;
+        }
+        for (DictData d : listAll()) {
+            if (type.equals(d.getValue())) {
+                return d.getLabel();
+            }
+        }
+        // 鍥為��鍒版灇涓�
+        return OrderWorkType.getWorkDesc(type);
+    }
+
+    @Override
+    public void refreshCache() {
+        synchronized (CACHE_LOCK) {
+            cache = null;
+        }
+        log.info("璁㈠崟涓氬姟绫诲瀷瀛楀吀缂撳瓨宸插埛鏂�");
+    }
+}

--
Gitblit v1.9.1