From 6cb85536a0b7edf936cfc7b68502c858068c140f Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期三, 10 十二月 2025 16:15:46 +0800
Subject: [PATCH] 在WCS中添加监控堆垛机和提升机状态和报警信息功能

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                               |   55 ---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                          |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                        |   11 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-shm |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db     |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/EquipmentStatusController.cs             |  234 ++++++++++++++
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                        |   55 ---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-wal |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Properties/PublishProfiles/FolderProfile.pubxml  |   11 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-wal      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs                      |    5 
 项目代码/WCS/WIDESEAWCS_Client/src/views/Index.vue                                                         |    4 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs                                 |    1 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs                      |   13 
 /dev/null                                                                                              |  107 ------
 项目资料/通信协议/~$提升机通讯协议2025.7.22新程序使用!(1).xlsx                                                             |    0 
 项目代码/WCS/WIDESEAWCS_Client/src/views/Equipmentstatus/Equipmentstatus.vue                               |  352 ++++++++++++++++++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs                            |    1 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                               |   46 --
 项目代码/WCS/WIDESEAWCS_Client/src/router/viewGird.js                                                      |    8 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-shm      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs           |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs                              |   21 +
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db          |    0 
 24 files changed, 667 insertions(+), 261 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
index d575e49..1b36551 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/router/viewGird.js"
@@ -87,10 +87,10 @@
       keepAlive: false
     }
   },
-  {
-    path: '/Elevator',
-    name: 'Elevator',
-    component: () => import('@/views/Elevator/Elevator.vue')
+    {
+    path: '/Equipmentstatus',
+    name: 'Equipmentstatus',
+    component: () => import('@/views/Equipmentstatus/Equipmentstatus.vue')
   },
 ]
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Elevator/Elevator.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Elevator/Elevator.vue"
deleted file mode 100644
index d324f92..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Elevator/Elevator.vue"
+++ /dev/null
@@ -1,107 +0,0 @@
-<template>
-    <div class="button-example">
-        <div class="button-row">
-            <el-button type="success" class="elevatorbtn" @click="startElevator()">
-                <span class="text">
-                    鍚姩
-                </span>
-            </el-button>
-            <el-button type="danger" class="elevatorbtn" @click="stopElevator()">
-                <span class="text">
-                    鍋滄
-                </span>
-            </el-button>
-            <el-button type="warning" class="elevatorbtn" @click="ResetElevator()">
-                <span class="text">
-                    澶嶄綅
-                </span>
-            </el-button>
-            <el-button type="primary" class="elevatorbtn" @click="initialzationElevator()">
-                <span class="text">
-                    鍒濆鍖�
-                </span>
-            </el-button>
-        </div>
-    </div>
-</template>
-<script>
-export default {
-    data() {
-        return {
-            show: false
-        }
-    },
-    methods: {
-        startElevator() {
-            this.http.post(`http://10.31.3.241:9291/api/Elevator/startElevator`)
-                .then((x) => {
-                    if (!x.status) {
-                        this.$message.error(x.message)
-                    } else {
-                        console.log(x);
-                        this.show = false
-                        this.$Message.success('鍚姩鎴愬姛')
-                        $vue.refresh();
-                    }
-                })
-        },
-        stopElevator() {
-            this.http.post(`http://10.31.3.241:9291/api/Elevator/stopElevator`)
-                .then((x) => {
-                    if (!x.status) {
-                        this.$message.error(x.message)
-                    } else {
-                        console.log(x);
-                        this.show = false
-                        this.$Message.success('鍋滄鎴愬姛')
-                        $vue.refresh();
-                    }
-                })
-        },
-        ResetElevator() {
-            this.http.post(`http://10.31.3.241:9291/api/Elevator/ResetElevator`)
-                .then((x) => {
-                    if (!x.status) {
-                        this.$message.error(x.message)
-                    } else {
-                        console.log(x);
-                        this.show = false
-                        this.$Message.success('澶嶄綅鎴愬姛')
-                        $vue.refresh();
-                    }
-                })
-        },
-        initialzationElevator() {
-            this.http.post(`http://10.31.3.241:9291/api/Elevator/initialization`)
-                .then((x) => {
-                    if (!x.status) {
-                        this.$message.error(x.message)
-                    } else {
-                        console.log(x);
-                        this.show = false
-                        this.$Message.success('鍒濆鍖栨垚鍔�')
-                        $vue.refresh();
-                    }
-                })
-        }
-    }
-}
-</script>
-<style>
-.elevatorbtn {
-    width: 13rem;
-    height: 7rem;
-    margin-right: 30px;
-}
-
-.text {
-    font-size: 50px;
-}
-
-.button-example {
-    width: 100%;
-    display: flex;
-    justify-content: center;
-    padding-top: 17rem;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Equipmentstatus/Equipmentstatus.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Equipmentstatus/Equipmentstatus.vue"
new file mode 100644
index 0000000..da385a7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Equipmentstatus/Equipmentstatus.vue"
@@ -0,0 +1,352 @@
+<template>
+    <div class="machine-monitor-container">
+        <!-- 椤甸潰澶撮儴 -->
+        <div class="monitor-header">
+            <h1>璁惧鐘舵�佺洃鎺т腑蹇�</h1>
+            <div class="header-actions">
+                <el-button type="success" @click="startElevator()">
+                    <span class="text">鍚姩鎻愬崌鏈�</span>
+                </el-button>
+                <el-button type="danger" @click="stopElevator()">
+                    <span class="text">鍋滄鎻愬崌鏈�</span>
+                </el-button>
+                <el-button type="warning" @click="resetElevator()">
+                    <span class="text">澶嶄綅鎻愬崌鏈�</span>
+                </el-button>
+                <el-button type="primary" @click="initializationElevator()">
+                    <span class="text">鍒濆鍖栨彁鍗囨満</span>
+                </el-button>
+                <el-button type="primary" @click="refreshData" :loading="refreshing" icon="Refresh">
+                    鎵嬪姩鍒锋柊
+                </el-button>
+                <el-switch v-model="autoRefresh" active-text="鑷姩鍒锋柊寮�鍚�" inactive-text="鑷姩鍒锋柊鍏抽棴"
+                    @change="toggleAutoRefresh" />
+            </div>
+        </div>
+
+        <!-- 缁熻鍗$墖 -->
+        <div class="stat-cards">
+            <el-card class="stat-card" :class="getStatusClass('normal')">
+                <div class="stat-content">
+                    <span class="stat-label">杩愯璁惧</span>
+                    <span class="stat-value">{{ normalCount }}</span>
+                </div>
+            </el-card>
+            <el-card class="stat-card" :class="getStatusClass('warning')">
+                <div class="stat-content">
+                    <span class="stat-label">绌洪棽璁惧</span>
+                    <span class="stat-value">{{ warningCount }}</span>
+                </div>
+            </el-card>
+            <el-card class="stat-card" :class="getStatusClass('error')">
+                <div class="stat-content">
+                    <span class="stat-label">鎶ヨ璁惧</span>
+                    <span class="stat-value">{{ errorCount }}</span>
+                </div>
+            </el-card>
+            <el-card class="stat-card" :class="getStatusClass('offline')">
+                <div class="stat-content">
+                    <span class="stat-label">绂荤嚎璁惧</span>
+                    <span class="stat-value">{{ offlineCount }}</span>
+                </div>
+            </el-card>
+            <el-card class="stat-card">
+                <div class="stat-content">
+                    <span class="stat-label">鎬昏璁惧</span>
+                    <span class="stat-value">{{ totalCount }}</span>
+                </div>
+            </el-card>
+        </div>
+
+        <!-- 璁惧鍒楄〃 -->
+        <div class="machine-list">
+            <el-table :data="filteredMachines" border stripe v-loading="tableLoading" style="width: 100%"
+                :empty-text="tableEmptyText">
+                <el-table-column prop="id" label="璁惧缂栧彿" width="120" />
+                <el-table-column prop="name" label="璁惧鍚嶇О" width="150" />
+                <el-table-column prop="type" label="璁惧绫诲瀷" width="240" />
+                <el-table-column prop="status" label="杩愯鐘舵��" min-width="150" />
+                <el-table-column prop="alarmInformation" label="鎶ヨ淇℃伅" min-width="250" />
+                <el-table-column prop="lastUpdate" label="鏈�鍚庢洿鏂�" width="200" />
+            </el-table>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { ref, computed, onMounted, onUnmounted } from 'vue'
+import { ElMessage } from 'element-plus' // 姝g‘瀵煎叆Element Plus娑堟伅缁勪欢
+import axios from 'axios' // 瀵煎叆axios
+
+const requestElevator = async (url, actionName) => {
+    try {
+        // 鍙戣捣POST璇锋眰锛堟浛鎹负浣犵殑瀹為檯鎺ュ彛鍦板潃锛�
+        const res = await axios.post(`http://10.31.3.241:9291/api/Elevator/${url}`)
+        // 鎺ュ彛杩斿洖閫昏緫锛氬亣璁緍es.data.status涓簍rue琛ㄧず鎴愬姛
+        if (!res.data.status) {
+            ElMessage.error(res.data.message || `${actionName}澶辫触`)
+        } else {
+            ElMessage.success(`${actionName}鎴愬姛`)
+            // 鍒锋柊璁惧鏁版嵁
+            await refreshData()
+        }
+    } catch (error) {
+        console.error(`${actionName}鎺ュ彛寮傚父锛歚, error)
+        ElMessage.error(`${actionName}澶辫触锛屾帴鍙h姹傚紓甯竊)
+    }
+}
+
+const machines = ref([])
+const searchKeyword = ref('')
+const statusFilter = ref('')
+const autoRefresh = ref(true)
+const refreshing = ref(false)
+const tableLoading = ref(false)
+const detailVisible = ref(false)
+const currentMachine = ref(null)
+const refreshTimer = ref(null)
+
+const filteredMachines = computed(() => {
+    let result = machines.value
+    return result
+})
+
+const normalCount = computed(() => machines.value.filter(item => item.status == '杩愯涓�').length)
+const warningCount = computed(() => machines.value.filter(item => item.status === '绌洪棽' || item.status == '寰呮満').length)
+const errorCount = computed(() => machines.value.filter(item => item.alarmInformation != null && item.alarmInformation != "").length)
+const offlineCount = computed(() => machines.value.filter(item => item.status === 'offline').length)
+const totalCount = computed(() => machines.value.length)
+
+const tableEmptyText = computed(() => {
+    if (searchKeyword.value || statusFilter.value) {
+        return '鏆傛棤鍖归厤鐨勮澶囨暟鎹�'
+    }
+    return '鏆傛棤璁惧鏁版嵁'
+})
+
+const getStatusClass = (status) => {
+    const classMap = {
+        normal: 'stat-normal',
+        warning: 'stat-warning',
+        error: 'stat-error',
+        offline: 'stat-offline'
+    }
+    return classMap[status] || ''
+}
+
+const refreshData = async () => {
+    refreshing.value = true
+    tableLoading.value = true
+    try {
+        const newData = await fetchEquipmentData()
+        machines.value = newData
+        ElMessage.success('鏁版嵁鍒锋柊鎴愬姛')
+    } catch (error) {
+        ElMessage.error('鏁版嵁鍒锋柊澶辫触')
+    } finally {
+        refreshing.value = false
+        tableLoading.value = false
+    }
+}
+
+const toggleAutoRefresh = () => {
+    if (autoRefresh.value) {
+        startAutoRefresh()
+        ElMessage.success('鑷姩鍒锋柊宸插紑鍚紙姣�10绉掞級')
+    } else {
+        stopAutoRefresh()
+        ElMessage.info('鑷姩鍒锋柊宸插叧闂�')
+    }
+}
+
+const startAutoRefresh = () => {
+    if (refreshTimer.value) clearInterval(refreshTimer.value)
+    refreshTimer.value = setInterval(refreshData, 10000)
+}
+
+const stopAutoRefresh = () => {
+    if (refreshTimer.value) {
+        clearInterval(refreshTimer.value)
+        refreshTimer.value = null
+    }
+}
+
+const fetchEquipmentData = async () => {
+    try {
+        const res = await axios.post('http://localhost:9291/api/EquipmentStatus/GetData')
+        if (!res.data || !Array.isArray(res.data.data)) {
+            return generateFallbackData()
+        }
+        const equipmentList = res.data.data.map(item => ({
+            id: item.deviceCode,
+            name: item.deviceName,
+            type: item.deviceType,
+            status: item.deviceRunStatus || ['normal', 'warning', 'error', 'offline'][Math.floor(Math.random() * 4)],
+            alarmInformation: item.alarmInformation,
+            lastUpdate: item.lastUpdate || new Date(Date.now() - Math.random() * 3600000 * 24).toLocaleString()
+        }))
+        return equipmentList
+    } catch (error) {
+        console.error('鑾峰彇璁惧鏁版嵁澶辫触锛�', error)
+        ElMessage.error('鑾峰彇璁惧鏁版嵁澶辫触锛屼娇鐢ㄥ鐢ㄦ暟鎹�')
+        return generateFallbackData()
+    }
+}
+
+const generateFallbackData = () => {
+    return [
+        {
+            id: 'TEST001',
+            name: '娴嬭瘯鎻愬崌鏈�01',
+            type: '鎻愬崌鏈�',
+            status: '杩愯涓�',
+            alarmInformation: '',
+            lastUpdate: new Date().toLocaleString()
+        },
+        {
+            id: 'TEST002',
+            name: '娴嬭瘯鎻愬崌鏈�02',
+            type: '鎻愬崌鏈�',
+            status: '绌洪棽',
+            alarmInformation: '',
+            lastUpdate: new Date().toLocaleString()
+        }
+    ]
+}
+// 鍚姩鎻愬崌鏈�
+const startElevator = () => {
+    requestElevator('startElevator', '鍚姩鎻愬崌鏈�')
+}
+
+// 鍋滄鎻愬崌鏈�
+const stopElevator = () => {
+    requestElevator('stopElevator', '鍋滄鎻愬崌鏈�')
+}
+
+// 澶嶄綅鎻愬崌鏈猴紙娉ㄦ剰鏂规硶鍚嶅皬鍐欏紑澶达紝绗﹀悎JS瑙勮寖锛�
+const resetElevator = () => {
+    requestElevator('ResetElevator', '澶嶄綅鎻愬崌鏈�')
+}
+
+// 鍒濆鍖栨彁鍗囨満
+const initializationElevator = () => {
+    requestElevator('initialization', '鍒濆鍖栨彁鍗囨満')
+}
+
+onMounted(async () => {
+    tableLoading.value = true
+    try {
+        const initData = await fetchEquipmentData()
+        machines.value = initData
+    } finally {
+        tableLoading.value = false
+    }
+    if (autoRefresh.value) {
+        startAutoRefresh()
+    }
+})
+
+onUnmounted(() => {
+    stopAutoRefresh()
+})
+</script>
+
+<style scoped>
+/* 鍘熸湁鏍峰紡淇濈暀 */
+.machine-monitor-container {
+    padding: 20px;
+    background-color: #f5f7fa;
+    min-height: 100vh;
+}
+
+.monitor-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+    flex-wrap: wrap;
+    gap: 10px;
+}
+
+.monitor-header h1 {
+    margin: 0;
+    color: #1989fa;
+}
+
+.header-actions {
+    display: flex;
+    align-items: center;
+    flex-wrap: wrap;
+    gap: 10px;
+}
+
+.stat-cards {
+    display: flex;
+    gap: 20px;
+    margin-bottom: 20px;
+    flex-wrap: wrap;
+}
+
+.stat-card {
+    flex: 1;
+    min-width: 180px;
+}
+
+.stat-content {
+    text-align: center;
+    padding: 10px 0;
+}
+
+.stat-label {
+    display: block;
+    font-size: 14px;
+    color: #666;
+    margin-bottom: 5px;
+}
+
+.stat-value {
+    font-size: 24px;
+    font-weight: bold;
+}
+
+.stat-normal .stat-value {
+    color: #67c23a;
+}
+
+.stat-warning .stat-value {
+    color: #e6a23c;
+}
+
+.stat-error .stat-value {
+    color: #f56c6c;
+}
+
+.stat-offline .stat-value {
+    color: #909399;
+}
+
+.machine-list {
+    background: #fff;
+    padding: 20px;
+    border-radius: 8px;
+}
+
+@media (max-width: 768px) {
+    .stat-cards {
+        flex-direction: column;
+    }
+
+    .monitor-header {
+        flex-direction: column;
+        align-items: flex-start;
+    }
+
+    .header-actions {
+        width: 100%;
+    }
+
+    .el-input {
+        width: 100% !important;
+    }
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Index.vue"
index 577313c..d362ca7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/views/Index.vue"
@@ -2,7 +2,7 @@
   <div id="vol-container" :class="['vol-theme-' + theme]">
     <div class="vol-aside" :style="{ width: menuWidth + 'px' }">
       <div class="header" :style="{ width: menuWidth - 1 + 'px' }">
-        <img v-show="!isCollapse" v-bind:src="logo" />
+        <!-- <img v-show="!isCollapse" v-bind:src="logo" /> -->
         <i @click="toggleLeft" class="el-icon-s-fold collapse-menu" />
       </div>
       <div class="vol-menu">
@@ -14,7 +14,7 @@
     </div>
     <div class="vol-container" :style="{ left: menuWidth - 1 + 'px' }">
       <div class="vol-header">
-        <div class="project-name">鏄庡拰WCS</div>
+        <div class="project-name">鏄庡拰鏅鸿兘璁惧鏈夐檺鍏徃</div>
         <div class="header-text">
           <!-- <div class="h-link">
             <a
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db"
index 95248f3..1df502c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-shm"
index b9f72d7..64d7a7f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-wal"
index 7311c52..85406a0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db"
index 195e6e8..ad2359a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-shm"
index 627009c..eeb1e44 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-wal"
index b8023c2..3b25317 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.995.13737/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index d3b48bb..752761f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -5,18 +5,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\elevatorcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\elevatorcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -44,48 +32,9 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
               "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAA1AAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwEAAAA1AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-12-05T05:48:32.783Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "CommonElevatorJob.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ViewState": "AgIAAB8AAAAAAAAAAAAzwC0AAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:21:04.493Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAADUAAAAAAAAAAAAuwDoAAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:18:08.305Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "ElevatorController.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "ViewState": "AgIAAAwAAAAAAAAAAAAAADkAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:16:54.858Z",
+              "WhenOpened": "2025-12-10T08:10:51.354Z",
               "EditorCaption": ""
             }
           ]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index d3b48bb..752761f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -5,18 +5,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\elevatorcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\elevatorcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -44,48 +32,9 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
               "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAA1AAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwEAAAA1AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-12-05T05:48:32.783Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "CommonElevatorJob.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
-              "ViewState": "AgIAAB8AAAAAAAAAAAAzwC0AAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:21:04.493Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAADUAAAAAAAAAAAAuwDoAAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:18:08.305Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "ElevatorController.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\ElevatorController.cs",
-              "ViewState": "AgIAAAwAAAAAAAAAAAAAADkAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:16:54.858Z",
+              "WhenOpened": "2025-12-10T08:10:51.354Z",
               "EditorCaption": ""
             }
           ]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs"
index 83621b7..2bfd6fa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs"
@@ -243,6 +243,7 @@
         }
 
         public virtual TEntity QueryFirst(Expression<Func<TEntity, bool>> whereExpression)
+        
         {
             return _db.CopyNew().Queryable<TEntity>().WhereIF(whereExpression != null, whereExpression).First();
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs"
index 2cfeef4..6663790 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs"
@@ -115,6 +115,7 @@
                 #endregion
 
                 SqlSugarScope sqlSugarClient = new SqlSugarScope(listConfig, db =>
+                
                 {
                     db.Aop.DataExecuting = SqlSugarAop.DataExecuting;
                 });
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/EquipmentStatusController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/EquipmentStatusController.cs"
new file mode 100644
index 0000000..d44eb0c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/EquipmentStatusController.cs"
@@ -0,0 +1,234 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_Tasks.ElevatorJob;
+using WIDESEAWCS_Tasks.StackerCraneJob;
+
+namespace WIDESEAWCS_Server.Controllers.Task
+{
+    [Route("/api/EquipmentStatus")]
+    [ApiController]
+    public class EquipmentStatusController : ControllerBase
+    {
+        private readonly IDeviceInfoRepository _deviceInfoRepository;
+
+        public EquipmentStatusController(IDeviceInfoRepository deviceInfoRepository)
+        {
+            _deviceInfoRepository = deviceInfoRepository;
+        }
+
+        [HttpGet, HttpPost, Route("GetData"), AllowAnonymous]
+        public WebResponseContent GetData()
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                List<Equipment> equipments = new List<Equipment>();
+                List<Dt_DeviceInfo> dt_DeviceInfos = _deviceInfoRepository.QueryData();
+                if(dt_DeviceInfos.Count() > 0)
+                {
+                   
+                    foreach(var item in dt_DeviceInfos)
+                    {
+                        Equipment equipment = new Equipment();
+                        if (item.DeviceCode == "1001") continue;
+                        if (item.DeviceCode == "TSJ2") continue;
+                        
+                        equipment.DeviceCode = item.DeviceCode;
+                        equipment.DeviceName = item.DeviceName;
+                        equipment.DeviceType = item.DeviceType;
+                        equipments.Add(equipment);
+                    }
+                }
+                else
+                {
+                    return content.Error("鏈煡璇㈠埌璁惧锛侊紒");
+
+                }
+                CommonElevator? commonElevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
+                CommonStackerCrane? commonStackerCrane = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "SC1") as CommonStackerCrane;
+                foreach (var item in equipments)
+                {
+                    if(item.DeviceCode == "TSJ1")
+                    {
+                        if (commonElevator.GetValue<ElevatorDBName, short>(ElevatorDBName.ElevatorStatus) == 0)
+                        {
+                            item.DeviceRunStatus = "鏃犵姸鎬�";
+                        }
+                        else if(commonElevator.GetValue<ElevatorDBName, short>(ElevatorDBName.ElevatorStatus) == 1)
+                        {
+                            item.DeviceRunStatus = "杩愯涓�";
+                        }
+                        else if (commonElevator.GetValue<ElevatorDBName, short>(ElevatorDBName.ElevatorStatus) == 2)
+                        {
+                            item.DeviceRunStatus = "寰呮満";
+                        }
+                        else
+                        {
+                            item.DeviceRunStatus = "鎶ヨ";
+                        }
+                        if(commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm1)) { item.AlarmInformation = "鎬ュ仠琚寜涓嬫姤璀�"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm2)) { item.AlarmInformation = "鐢垫鍐呰緭閫佺嚎鐢垫満杩囪浇鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm3)) { item.AlarmInformation = "鍦伴潰杈撻�佺嚎鐢垫満杩囪浇鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm4)) { item.AlarmInformation = "鐢垫绯荤粺寮傚父鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm5)) { item.AlarmInformation = "鍒濆鍖栨椂璁惧涓婃湁璐х墿鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm6)) { item.AlarmInformation = "涓�灞傝緭閫佺嚎AGV鏀捐揣寮傚父鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm7)) { item.AlarmInformation = "涓�灞傚厜骞曟娴嬪埌鐗╀綋鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm8)) { item.AlarmInformation = "浜屽眰鍏夊箷妫�娴嬪埌鐗╀綋鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm9)) { item.AlarmInformation = "浜屽眰杈撻�佺嚎AGV鏀捐揣寮傚父鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm10)) { item.AlarmInformation = "涓�灞傜數姊鍑嗗厜鐢垫湭妫�娴嬪埌鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm11)) { item.AlarmInformation = "浜屽眰鐢垫瀵瑰噯鍏夌數鏈娴嬪埌鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm12)) { item.AlarmInformation = "鏈夎揣鐗╁湪涓�灞傝緭閫佺嚎涓婃姤璀�"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm13)) { item.AlarmInformation = "AGV涓�灞傚彇璐у紓甯告姤璀�"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm14)) { item.AlarmInformation = "AGV浜屽眰鍙栬揣寮傚父鎶ヨ"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm15)) { item.AlarmInformation = "鏈夎揣鐗╁湪浜屽眰杈撻�佺嚎涓婃姤璀�"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm16)) { item.AlarmInformation = "鐢垫涓嶅湪1妤兼姤璀�"; }
+                        if (commonElevator.GetValue<ElevatorDBName, bool>(ElevatorDBName.ElevatorAlarm17)) { item.AlarmInformation = "鐢垫涓嶅湪2妤兼姤璀�"; }
+                    }
+                  
+                    if (item.DeviceCode == "SC1")
+                    {
+                        var alarm = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.Alarm);
+                        if(StackerCraneAlarm(alarm) != null)
+                        {
+                            item.AlarmInformation = StackerCraneAlarm(alarm);
+                        }
+                        var status = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.StackerCraneWorkStatus);
+                        if(StackerCraneStatus(status) != null)
+                        {
+                            item.DeviceRunStatus = StackerCraneStatus(status);
+                        }
+                        
+                    }
+                }
+                content = WebResponseContent.Instance.OK(data: equipments);
+            }
+            catch(Exception ex)
+            {
+                return content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        public class Equipment
+        {
+            public string DeviceCode { get; set; }
+            public string DeviceName { get; set; }
+            public string DeviceType { get; set; }
+            public string DeviceRunStatus { get; set; }
+            public string AlarmInformation {get; set;}
+        }
+
+        #region 鎶ヨ浠g爜杞崲鎴愭枃瀛楄鏄�
+        public string StackerCraneAlarm(short alarm) => alarm switch
+        {
+            1 => "宸﹁秴闄�",
+            2 => "鍙宠秴闄�",
+            3 => "鍓嶈秴闄�",
+            4 => "鍚庤秴闄�",
+            5 => "楂樿秴闄�",
+            6 => "鍙栬揣杞借揣鍙版湁璐�",
+            7 => "鏀捐揣杞借揣鍙版棤璐�",
+            8 => "鍙栬揣宸﹁揣鏍兼棤璐�",
+            9 => "鍙栬揣鍙宠揣鏍兼棤璐�",
+            10 => "鏀捐揣宸︿竴鏈夎揣",
+            11 => "鏀捐揣鍙充竴鏈夎揣",
+            12 => "鍙栧乏浜岃揣鏍兼棤璐�",
+            13 => "鍙栧彸浜岃揣鏍兼棤璐�",
+            14 => "鏀捐揣宸︿簩璐ф牸鏈夎揣",
+            15 => "鏀捐揣鍙充簩璐ф牸鏈夎揣",
+            16 => "宸︿簩鍙栬揣宸︿竴鏈夎揣",
+            17 => "鍙充簩鍙栬揣鍙充竴鏈夎揣",
+            18 => "宸﹀彇璐уけ璐�",
+            19 => "鍙冲彇璐уけ璐�",
+            20 => "宸︽斁璐уけ璐�",
+            21 => "鍙虫斁璐уけ璐�",
+            22 => "璐у弶杩愯瓒呮椂",
+            23 => "璐у弶鏂矾鍣ㄨ烦闂�",
+            24 => "璐у弶鍙橀鍣ㄦ姤璀�",
+            25 => "璐у弶缂栫爜鍣ㄦ晠闅�",
+            26 => "璐у弶浼稿弶鏁呴殰",
+            27 => "灞傝繍琛岃揣鍙変笉鍦ㄤ腑浣�",
+            28 => "鍒楄繍琛岃揣鍙変笉鍦ㄤ腑浣�",
+            29 => "璐у弶涓綅寮�鍏虫晠闅�",
+            30 => "璐у弶鍙橀鍣ㄩ�氳鏁呴殰",
+            31 => "璐у弶缂栫爜鍣ㄩ�氳鏁呴殰",
+            32 => "浼稿弶瓒呭嚭宸︽瀬闄�",
+            33 => "浼稿張瓒呭嚭鍙虫瀬闄�",
+            34 => "鍏ュ乏浜岃揣鏍艰揣鏃跺乏涓�璐ф牸鏈夎揣",
+            35 => "鍏ュ彸浜岃揣鏍艰揣鏃跺彸涓�璐ф牸鏈夎揣",
+            36 => "璐у弶鍙充晶鍥炰腑鍋滄浣嶇疆閿欒",
+            37 => "璐у弶宸︿晶鍥炰腑鍋滄浣嶇疆閿欒",
+            38 => "璐у弶宸︿晶鏋侀檺鍋滄浣嶇疆閿欒",
+            39 => "璐у弶鍙充晶鏋侀檺鍋滄浣嶇疆閿欒",
+            40 => "闈㈡澘鎬ュ仠",
+            41 => "杩滅▼鎬ュ仠",
+            42 => "涓绘帴瑙﹀櫒鎺у埗鍥炶矾鏁呴殰",
+            43 => "瓒呴噸淇濇姢",
+            44 => "鏉剧怀淇濇姢",
+            45 => "闄愰�熶繚鎶�",
+            46 => "灞傚仠姝綅缃敊璇�",
+            47 => "鍒楀仠姝綅缃敊璇�",
+            48 => "鎺ユ敹浠诲姟閿欒",
+            49 => "鎺ユ敹鍒楄秴闄�",
+            50 => "鎺ユ敹灞傝秴闄�",
+            51 => "琛岃蛋鍓嶈繘鏋侀檺",
+            52 => "琛岃蛋鍚庨��鏋侀檺",
+            53 => "鎻愬崌涓婃瀬闄�",
+            54 => "鎻愬崌涓嬫瀬闄�",
+            55 => "琛岃蛋杩愯瓒呮椂",
+            56 => "鎻愬崌杩愯瓒呮椂",
+            57 => "琛岃蛋鏂矾鍣ㄨ烦闂�",
+            58 => "鎻愬崌鏂矾鍣ㄨ烦闂�",
+            59 => "琛岃蛋鍙橀鍣ㄦ晠闅�",
+            60 => "鎻愬崌鍙橀鍣ㄦ晠闅�",
+            61 => "琛岃蛋娴嬭窛/鏉$爜鏁呴殰",
+            62 => "鎻愬崌娴嬭窛/鏉$爜鏁呴殰",
+            63 => "琛岃蛋娴嬭窛/鏉$爜琚尅",
+            64 => "鎻愬崌娴嬭窛/鏉$爜琚尅",
+            65 => "涓婂崌鍑忛�熷厜鐢垫晠闅�",
+            66 => "涓嬮檷鍑忛�熷厜鐢垫晠闅�",
+            67 => "鎻愬崌鍘熺偣鍏夌數鏁呴殰",
+            68 => "琛岃蛋鍓嶅噺閫熷厜鐢垫晠闅�",
+            69 => "琛岃蛋鍚庡噺閫熷厜鐢垫晠闅�",
+            70 => "琛岃蛋鍘熺偣鍏夌數鏁呴殰",
+            71 => "涓庤緭閫佹満閫氳鏁呴殰",
+            72 => "鍗囬檷瓒呭嚭鏈�灏忓眰",
+            73 => "鍗囬檷瓒呭嚭鏈�澶у眰",
+            74 => "琛岃蛋瓒呭嚭鏈�灏忓垪",
+            75 => "琛岃蛋瓒呭嚭鏈�澶у垪",
+            76 => "鎺ユ敹鎺掗敊璇�",
+            77 => "璧峰绔欒揣鏍艰绂佺敤",
+            78 => "鐩殑绔欒揣鏍艰绂佺敤",
+            79 => "琛岃蛋鎶遍椄鏁呴殰",
+            80 => "鎻愬崌鎶遍椄鏁呴殰",
+            81 => "瀹夊叏闂ㄦ墦寮�鏁呴殰",
+            _ =>  ""
+        };
+        #endregion
+        #region 璁惧鐘舵�佽浆鎹㈡垚鏂囧瓧璇存槑
+        public string StackerCraneStatus(short status) => status switch
+        {
+            0 => "绌洪棽",
+            1 => "鍙栬揣璧拌",
+            2 => "鍙栬揣绛夊緟",
+            3 => "鍙栬揣涓�",
+            4 => "鏀捐揣璧拌",
+            5 => "鏀捐揣绛夊緟",
+            6 => "鏀捐揣涓�",
+            7 => "鍥炲師鐐�",
+            8 => "鍥炲弽鍘熺偣",
+            9 => "璧拌涓�",
+            10 => "浠诲姟瀹屾垚绛夊緟WCS纭",
+            11 => "鏈夎揣寰呭懡",
+            99 => "鎶ヨ",
+            100 => "缁存姢",
+            _ => $"鏈煡鐘舵��({status})"
+        };
+        #endregion
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs"
index 97cb430..570902d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs"
@@ -24,7 +24,7 @@
             return Service.GetDetailInfo(taskNum);
         }
 
-        [HttpPost, HttpGet, Route("GetDetailDatas")]
+        [HttpPost, HttpGet, Route("GetDetailDatas"), AllowAnonymous]
         public WebResponseContent GetDetailDatas(int taskNum)
         {
             return Service.GetDetailDatas(taskNum);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
index d07b867..1beac91 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
@@ -1,5 +1,5 @@
 {
-  //"urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
+  "urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
   "Logging": {
     "LogLevel": {
       "Default": "Information",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Properties/PublishProfiles/FolderProfile.pubxml" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Properties/PublishProfiles/FolderProfile.pubxml"
new file mode 100644
index 0000000..a51c556
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Properties/PublishProfiles/FolderProfile.pubxml"
@@ -0,0 +1,11 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!-- https://go.microsoft.com/fwlink/?LinkID=208121. -->
+<Project>
+  <PropertyGroup>
+    <Configuration>Release</Configuration>
+    <Platform>Any CPU</Platform>
+    <PublishDir>bin\Release\net6.0\publish\</PublishDir>
+    <PublishProtocol>FileSystem</PublishProtocol>
+    <_TargetId>Folder</_TargetId>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
index 795c224..c6d4fb6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskExecuteDetailService.cs"
@@ -35,10 +35,12 @@
     public class TaskExecuteDetailService : ServiceBase<Dt_TaskExecuteDetail, ITaskExecuteDetailRepository>, ITaskExecuteDetailService
     {
         private readonly ITaskRepository _taskRepository;
+        private readonly ITask_HtyRepository _task_htyRepository;
 
-        public TaskExecuteDetailService(ITaskExecuteDetailRepository BaseDal, ITaskRepository taskRepository) : base(BaseDal)
+        public TaskExecuteDetailService(ITaskExecuteDetailRepository BaseDal, ITaskRepository taskRepository, ITask_HtyRepository task_HtyRepository) : base(BaseDal)
         {
             _taskRepository = taskRepository;
+            _task_htyRepository = task_HtyRepository;
         }
 
         public void AddTaskExecuteDetail(int taskId, string description = "")
@@ -245,18 +247,27 @@
             return content;
         }
 
+
+
         public WebResponseContent GetDetailDatas(int taskNum)
         {
             WebResponseContent content = new();
             try
             {
                 Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+                Dt_Task_Hty task_Hty = _task_htyRepository.QueryFirst(x => x.TaskNum == taskNum);
                 if (task != null)
                 {
                     List<Dt_TaskExecuteDetail> taskExecuteDetails = BaseDal.QueryData(x => x.TaskId == task.TaskId, new Dictionary<string, SqlSugar.OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), SqlSugar.OrderByType.Asc } });
 
                     content = WebResponseContent.Instance.OK(data: taskExecuteDetails);
                 }
+                else if (task_Hty != null)
+                {
+                    List<Dt_TaskExecuteDetail> taskExecuteDetails = BaseDal.QueryData(x => x.TaskNum == taskNum, new Dictionary<string, SqlSugar.OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), SqlSugar.OrderByType.Asc } });
+
+                    content = WebResponseContent.Instance.OK(data: taskExecuteDetails);
+                }
                 else
                 {
                     content = WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
index fcd47a5..3db68e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
@@ -140,5 +140,26 @@
         /// 澶嶄綅
         /// </summary>
         ResetElevator,
+
+        /// <summary>
+        /// 鎶ヨ淇℃伅
+        /// </summary>
+        ElevatorAlarm1,
+        ElevatorAlarm2,
+        ElevatorAlarm3,
+        ElevatorAlarm4,
+        ElevatorAlarm5,
+        ElevatorAlarm6,
+        ElevatorAlarm7,
+        ElevatorAlarm8,
+        ElevatorAlarm9,
+        ElevatorAlarm10,
+        ElevatorAlarm11,
+        ElevatorAlarm12,
+        ElevatorAlarm13,
+        ElevatorAlarm14,
+        ElevatorAlarm15,
+        ElevatorAlarm16,
+        ElevatorAlarm17,
     }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs"
index f972d04..30886b4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs"
@@ -80,5 +80,10 @@
         /// 鎶ヨ淇℃伅
         /// </summary>
         Alarm,
+
+        /// <summary>
+        /// 璁惧鐘舵��
+        /// </summary>
+        StackerCraneWorkStatus,
     }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
index 3fc81fd..7140ede 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
@@ -44,7 +44,7 @@
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
               "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAkAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
               "WhenOpened": "2025-12-05T02:47:46.451Z",
               "EditorCaption": ""
@@ -59,8 +59,7 @@
               "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
               "ViewState": "AgIAAKIAAAAAAAAAAAA9wLIAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:41:12.132Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-12-05T02:41:12.132Z"
             },
             {
               "$type": "Document",
@@ -72,8 +71,7 @@
               "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "ViewState": "AgIAAFIAAAAAAAAAAAD4v2EAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:41:00.007Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-12-05T02:41:00.007Z"
             },
             {
               "$type": "Document",
@@ -85,8 +83,7 @@
               "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "ViewState": "AgIAAJoAAAAAAAAAAADwv6wAAAABAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:40:46.147Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-12-05T02:40:46.147Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
index 3fc81fd..9941f02 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
@@ -3,20 +3,16 @@
   "WorkspaceRootPath": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|d:\\\u660E\u548C\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -39,45 +35,32 @@
             {
               "$type": "Document",
               "DocumentIndex": 0,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
-              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
+              "Title": "TaskExecuteDetailController.cs",
+              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskExecuteDetailController.cs",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskExecuteDetailController.cs",
+              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskExecuteDetailController.cs",
+              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskExecuteDetailController.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-12-05T02:47:46.451Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "IDt_TaskService.cs",
-              "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ViewState": "AgIAAKIAAAAAAAAAAAA9wLIAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:41:12.132Z",
+              "WhenOpened": "2025-12-09T08:24:11.519Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 1,
               "Title": "Dt_TaskService.cs",
               "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "ToolTip": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAAFIAAAAAAAAAAAD4v2EAAAAFAAAAAAAAAA==",
+              "ViewState": "AgIAAEMAAAAAAAAAAAAQwGEAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-12-05T02:41:00.007Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 2,
               "Title": "TaskController.cs",
               "DocumentMoniker": "D:\\\u660E\u548C\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
@@ -85,8 +68,7 @@
               "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "ViewState": "AgIAAJoAAAAAAAAAAADwv6wAAAABAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-12-05T02:40:46.147Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-12-05T02:40:46.147Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\217\220\345\215\207\346\234\272\351\200\232\350\256\257\345\215\217\350\256\2562025.7.22\346\226\260\347\250\213\345\272\217\344\275\277\347\224\250\357\274\201\0501\051.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\217\220\345\215\207\346\234\272\351\200\232\350\256\257\345\215\217\350\256\2562025.7.22\346\226\260\347\250\213\345\272\217\344\275\277\347\224\250\357\274\201\0501\051.xlsx"
new file mode 100644
index 0000000..1e0c8b3
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\217\220\345\215\207\346\234\272\351\200\232\350\256\257\345\215\217\350\256\2562025.7.22\346\226\260\347\250\213\345\272\217\344\275\277\347\224\250\357\274\201\0501\051.xlsx"
Binary files differ

--
Gitblit v1.9.3