From ada06626c3f81258e01837d09a10135f8ec3232f Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 28 三月 2026 16:06:30 +0800
Subject: [PATCH] refactor: 生产报工参数与投入表分离

---
 src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java |  133 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 133 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java b/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java
new file mode 100644
index 0000000..5269a25
--- /dev/null
+++ b/src/main/java/com/ruoyi/productionPlan/enums/AddressRegionEnum.java
@@ -0,0 +1,133 @@
+package com.ruoyi.productionPlan.enums;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鍦板潃褰掑睘鍦版灇涓�
+ * 鏍规嵁鍦板潃鍏抽敭瀛楄嚜鍔ㄥ尮閰嶏細閾跺窛/鐭冲槾灞�/鍚村繝/鍥哄師/涓崼/鑷彁/鍐呰挋鍙�/鍏朵粬
+ */
+@Getter
+public enum  AddressRegionEnum {
+
+    /**
+     * 閾跺窛甯�
+     */
+    YINCHUAN("閾跺窛", Arrays.asList("鍏村簡", "瑗垮", "閲戝嚖", "姘稿畞", "璐哄叞", "鐏垫")),
+
+    /**
+     * 鐭冲槾灞卞競
+     */
+    SHIZUISHAN("鐭冲槾灞�", Arrays.asList("澶ф鍙�", "骞崇綏", "鎯犲啘", "鍒╅��")),
+
+    /**
+     * 鍚村繝甯�
+     */
+    WUZHONG("鍚村繝", Arrays.asList("绾㈠鍫�", "鐩愭睜", "鍚屽績", "闈掗摐宄�")),
+
+    /**
+     * 鍥哄師甯�
+     */
+    GUYUAN("鍥哄師",Arrays.asList("鍘熷窞", "娉炬簮", "褰槼", "涓畞", "娴峰師", "闅嗗痉", "瑗垮悏")),
+
+    /**
+     * 涓崼甯�
+     */
+    ZHONGWEI("涓崼", Arrays.asList("娌欏潯澶�", "涓畞", "娴峰師")),
+
+    /**
+     * 鑷彁
+     */
+    SELF_PICKUP("鑷彁", Arrays.asList("鑷彁")),
+
+    /**
+     * 鍐呰挋鍙わ紙鍖呭惈浣犳彁渚涚殑鎵�鏈夊尯鍘垮叧閿瓧锛�
+     */
+    INNER_MONGOLIA("鍐呰挋鍙�", Arrays.asList(
+            // 鍛煎拰娴╃壒
+            "鍛煎拰娴╃壒", "鏂板煄", "鍥炴皯", "鐜夋硥", "璧涚綍", "鍦熼粯鐗瑰乏鏃�", "鍦熼粯鐗�", "鎵樺厠鎵�", "鍜屾灄鏍煎皵", "娓呮按娌�", "姝﹀窛",
+            // 鍖呭ご
+            "鍖呭ご", "涓滄渤", "鏄嗛兘浠�", "闈掑北", "鐭虫嫄", "鐧戒簯閯傚崥", "涔濆師", "鍦熼粯鐗瑰彸鏃�", "鍥洪槼", "杈惧皵缃曡寕鏄庡畨鑱斿悎鏃�",
+            // 涔屾捣
+            "涔屾捣", "娴峰媰婀�", "娴峰崡", "涔岃揪",
+            // 璧ゅ嘲
+            "璧ゅ嘲", "绾㈠北", "鍏冨疂灞�", "鏉惧北", "闃块瞾绉戝皵娌佹棗", "宸存灄宸︽棗", "宸存灄鍙虫棗", "鏋楄タ", "鍏嬩粈鍏嬭吘鏃�", "缈佺墰鐗规棗", "鍠�鍠囨瞾鏃�", "瀹佸煄", "鏁栨眽鏃�",
+            // 閫氳窘
+            "閫氳窘", "绉戝皵娌�", "闇嶆灄閮嫆", "绉戝皵娌佸乏缈间腑鏃�", "绉戝皵娌佸乏缈煎悗鏃�", "寮�椴�", "搴撲鸡鏃�", "濂堟浖鏃�", "鎵庨瞾鐗规棗",
+            // 閯傚皵澶氭柉锛堝惈鑷畾涔夊湴鍧�锛�
+            "閯傚皵澶氭柉", "涓滆儨", "搴峰反浠�", "杈炬媺鐗规棗", "鍑嗘牸灏旀棗", "閯傛墭鍏嬪墠鏃�", "閯傛墭鍏嬫棗", "鏉敠鏃�", "涔屽鏃�", "浼婇噾闇嶆礇鏃�",
+            // 鍛间鸡璐濆皵
+            "鍛间鸡璐濆皵", "娴锋媺灏�", "鎵庤祲璇哄皵", "婊℃床閲�", "鐗欏厠鐭�", "鎵庡叞灞�", "棰濆皵鍙ょ撼", "鏍规渤",
+            "闃胯崳鏃�", "鑾姏杈剧摝杈炬枴灏旀棌鑷不鏃�", "閯備鸡鏄ヨ嚜娌绘棗", "閯傛俯鍏嬫棌鑷不鏃�", "闄堝反灏旇檸鏃�", "鏂板反灏旇檸宸︽棗", "鏂板反灏旇檸鍙虫棗",
+            // 宸村溅娣栧皵
+            "宸村溅娣栧皵", "涓存渤", "浜斿師", "纾村彛", "涔屾媺鐗瑰墠鏃�", "涔屾媺鐗逛腑鏃�", "涔屾媺鐗瑰悗鏃�", "鏉敠鍚庢棗",
+            // 涔屽叞瀵熷竷
+            "涔屽叞瀵熷竷", "闆嗗畞", "涓伴晣", "鍗撹祫", "鍖栧痉", "鍟嗛兘", "鍏村拰", "鍑夊煄",
+            "瀵熷搱灏斿彸缈煎墠鏃�", "瀵熷搱灏斿彸缈间腑鏃�", "瀵熷搱灏斿彸缈煎悗鏃�", "鍥涘瓙鐜嬫棗",
+            // 鍏村畨鐩�
+            "鍏村畨鐩�", "涔屽叞娴╃壒", "闃垮皵灞�", "绉戝皵娌佸彸缈煎墠鏃�", "绉戝皵娌佸彸缈间腑鏃�", "鎵庤祲鐗规棗", "绐佹硥",
+            // 閿℃灄閮嫆鐩�
+            "閿℃灄閮嫆鐩�", "閿℃灄娴╃壒", "浜岃繛娴╃壒", "闃垮反鍢庢棗", "鑻忓凹鐗瑰乏鏃�", "鑻忓凹鐗瑰彸鏃�",
+            "涓滀箤鐝犵﹩娌佹棗", "瑗夸箤鐝犵﹩娌佹棗", "澶粏瀵烘棗", "闀堕粍鏃�", "姝i暥鐧芥棗", "姝h摑鏃�", "澶氫鸡",
+            // 闃挎媺鍠勭洘
+            "闃挎媺鍠勭洘", "闃挎媺鍠勫乏鏃�", "闃挎媺鍠勫彸鏃�", "棰濇祹绾虫棗",
+            //鑷畾涔�
+            "鑻忛噷鏍肩粡娴庡紑鍙戝尯", "鏉敠鏃椾紛鍜屼箤绱犺嫃鏈ㄨ崏鍘熺珯", "閯傛墭鍏嬪墠鏃椾笂娴峰簷闀�","鍐呰挋"
+    )),
+
+    /**
+     * 鍏朵粬鍦板尯
+     */
+    OTHER("鍏朵粬", Arrays.asList());
+
+
+    /**
+     * 褰掑睘鍦板悕绉�
+     */
+    private final String regionName;
+
+    /**
+     * 鍖归厤鍏抽敭瀛楀垪琛�
+     */
+    private final List<String> keyWords;
+
+    /**
+     * 鏋勯�犳柟娉�
+     */
+    AddressRegionEnum(String regionName, List<String> keyWords) {
+        this.regionName = regionName;
+        this.keyWords = keyWords;
+    }
+
+    // ==================== 鏍稿績鏂规硶锛氭牴鎹湴鍧�瀛楃涓插尮閰嶅綊灞炲湴 ====================
+    /**
+     * 鏍规嵁鍦板潃鏂囨湰鑷姩璇嗗埆褰掑睘鍦�
+     * @param address 璇︾粏鍦板潃瀛楃涓�
+     * @return 鍖归厤鍒扮殑褰掑睘鍦版灇涓撅紙榛樿杩斿洖OTHER锛�
+     */
+    public static AddressRegionEnum matchRegion(String address) {
+        // 鍦板潃涓虹┖/绌哄瓧绗︿覆锛岀洿鎺ヨ繑鍥炲叾浠�
+        if (address == null || address.trim().isEmpty()) {
+            return OTHER;
+        }
+
+        // 鎸変紭鍏堢骇鍖归厤锛氳嚜鎻� > 瀹佸鍚勫湴甯� > 鍐呰挋鍙� > 鍏朵粬
+        for (AddressRegionEnum region : values()) {
+            // 璺宠繃鏃犲叧閿瓧鐨凮THER
+            if (region.keyWords.isEmpty()) {
+                continue;
+            }
+            // 閬嶅巻鍏抽敭瀛楋紝鍦板潃鍖呭惈浠绘剰鍏抽敭瀛楀垯鍖归厤鎴愬姛
+            for (String keyword : region.keyWords) {
+                if (address.contains(keyword)) {
+                    return region;
+                }
+            }
+        }
+
+        // 鏃犲尮閰嶅叧閿瓧锛岃繑鍥炲叾浠�
+        return OTHER;
+    }
+}

--
Gitblit v1.9.3