From d553a4be94d4f6ee162cc353a28b220403909cfc Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期六, 03 十月 2026 00:58:19 +0800
Subject: [PATCH] ai优化

---
 src/api/ecg/queuesequence/index.ts |   95 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 87 insertions(+), 8 deletions(-)

diff --git a/src/api/ecg/queuesequence/index.ts b/src/api/ecg/queuesequence/index.ts
index 4490d6d..39f400b 100644
--- a/src/api/ecg/queuesequence/index.ts
+++ b/src/api/ecg/queuesequence/index.ts
@@ -1,14 +1,32 @@
 import request from '@/config/axios'
 
-// 鎺掗槦 VO
+/**
+ * 棰勭害鏃舵瑙勫垯锛坬ueue_sequence 琛級
+ *
+ * 涓氬姟璇存槑锛�
+ *   璇ヨ〃璁板綍**姣忎釜妫�鏌ラ」鐩湪姣忎釜棰勭害鏃舵鐨勫彇鍙疯鍒�**锛�
+ *     路 queueSet / queueFull 鈥斺�� 鏅�氭偅鑰呭湪璇ユ椂娈电殑銆岃捣濮嬪簭鍙枫�嶄笌銆屽簭鍙蜂笂闄愩��
+ *     路 queueNo            鈥斺�� 褰撳墠宸插彂鍒板嚑鍙凤紙鍙栧彿鏃朵粠姝ゅ�煎線鍚庡彂锛�
+ *     路 vip 涓変釜瀛楁鍚岀悊
+ *
+ *   璇ヨ〃**鍘熶负姣忓ぉ鑷姩鐢熸垚**锛岀幇宸叉敼涓�**鎵嬪伐缁存姢**锛堟晠闇�瑕佺淮鎶ょ晫闈級銆�
+ *   娉ㄦ剰锛氭瘡鏃ラ噸缃粛鍦ㄨ繍琛岋紙`QueueSequenceMapper#initNumber` 浼氭妸
+ *   `queue_no` 閲嶇疆鍥� `queue_set`锛夛紝鎵�浠ョ淮鎶ゆ椂**涓昏鏀� queueSet / queueFull**銆�
+ *
+ * 鏃舵鍊� timeSlot 涓� `HHMMHHMM` 褰㈠紡锛屽 `8000830` 琛ㄧず `08:00-08:30`
+ * 锛堝皬鏃朵笉琛ラ浂锛屾晠 800 鍗� 08:00锛夈�傚彲鐢ㄤ笅鏂� formatTimeSlot / parseTimeSlot 杞崲銆�
+ */
 export interface QueueSequenceVO {
-  id: number // id
-  checkType: number // 棰勭害妫�鏌ョ被鍨�
-  timeSlot: number
-  queueNo: number
-  queueVipNo: number
-  queueFull: number
-  queueVipFull: number
+  id?: number // id锛堟柊澧炴椂鐣欑┖锛�
+  checkType?: number // 妫�鏌ラ」鐩紙check_type.value锛�
+  timeSlot?: number // 鏃舵锛圚HMMHHMM锛�
+  queueNo?: number // 鏅�氾細褰撳墠搴忓彿
+  queueSet?: number // 鏅�氾細璧峰搴忓彿锛堟瘡鏃ラ噸缃洖鍒版鍊硷級
+  queueVipNo?: number // vip锛氬綋鍓嶅簭鍙�
+  queueVipSet?: number // vip锛氳捣濮嬪簭鍙�
+  queueFull?: number // 鏅�氾細搴忓彿涓婇檺
+  queueVipFull?: number // vip锛氬簭鍙蜂笂闄�
+  createTime?: Date
 }
 
 // 鎺掗槦 API
@@ -17,7 +35,68 @@
   // 鑾峰緱褰撳ぉ鏈弧鐨刅IP鏃堕棿娈�
   getTimeslotByCheckType: async (checkType: number) => {
     return await request.get({ url: `/ecg/queue-sequence/get-timeslot-by-checktype?checkType=` + checkType })
+  },
+
+  // ==================== 棰勭害鏃舵缁存姢锛堝 / 鍒� / 鏀� / 鏌ワ級 ====================
+
+  /** 鍒嗛〉鏌ヨ棰勭害鏃舵瑙勫垯 */
+  getQueueSequencePage: async (params: any) => {
+    return await request.get({ url: `/ecg/queue-sequence/page`, params })
+  },
+
+  /** 鏌ヨ鍗曟潯棰勭害鏃舵瑙勫垯 */
+  getQueueSequence: async (id: number) => {
+    return await request.get({ url: `/ecg/queue-sequence/get?id=` + id })
+  },
+
+  /** 鏂板棰勭害鏃舵瑙勫垯 */
+  createQueueSequence: async (data: QueueSequenceVO) => {
+    return await request.post({ url: `/ecg/queue-sequence/create`, data })
+  },
+
+  /** 淇敼棰勭害鏃舵瑙勫垯 */
+  updateQueueSequence: async (data: QueueSequenceVO) => {
+    return await request.put({ url: `/ecg/queue-sequence/update`, data })
+  },
+
+  /** 鍒犻櫎棰勭害鏃舵瑙勫垯 */
+  deleteQueueSequence: async (id: number) => {
+    return await request.delete({ url: `/ecg/queue-sequence/delete?id=` + id })
   }
 
 }
 
+/**
+ * 鎶� `HHMMHHMM` 褰㈠紡鐨勬椂娈靛�兼牸寮忓寲涓� `HH:mm-HH:mm`銆�
+ *
+ * 渚嬶細8000830 鈫� "08:00-08:30"锛�13301400 鈫� "13:30-14:00"
+ * 鏃犳硶瑙f瀽鏃跺師鏍疯繑鍥炲瓧绗︿覆銆�
+ */
+export function formatTimeSlot(timeSlot?: number | null): string {
+  if (timeSlot === null || timeSlot === undefined) return '-'
+  const s = String(timeSlot)
+  if (!/^\d{5,8}$/.test(s)) return s
+  // 绾﹀畾锛氭渶鍚� 4 浣嶄负缁撴潫 HHmm锛屽叾浣欎负寮�濮� HHmm
+  const endPart = s.slice(-4)
+  const startPart = s.slice(0, s.length - 4)
+  const fmt = (p: string): string => {
+    if (p.length < 3) return p
+    const mm = p.slice(-2)
+    const hh = p.slice(0, p.length - 2)
+    return `${hh.padStart(2, '0')}:${mm}`
+  }
+  return `${fmt(startPart)}-${fmt(endPart)}`
+}
+
+/**
+ * 鎶� `HH:mm-HH:mm` 瑙f瀽鍥� `HHMMHHMM` 鏁板�笺��
+ * 渚嬶細"08:00-08:30" 鈫� 8000830
+ * 瑙f瀽澶辫触杩斿洖 undefined銆�
+ */
+export function parseTimeSlot(text?: string | null): number | undefined {
+  if (!text) return undefined
+  const m = String(text).trim().match(/^(\d{1,2}):(\d{2})\s*-\s*(\d{1,2}):(\d{2})$/)
+  if (!m) return undefined
+  const [, h1, m1, h2, m2] = m
+  return Number(`${Number(h1)}${m1}${Number(h2)}${m2}`)
+}

--
Gitblit v1.9.3