在WCS中添加监控堆垛机和提升机状态和报警信息功能
| | |
| | | keepAlive: false |
| | | } |
| | | }, |
| | | { |
| | | path: '/Elevator', |
| | | name: 'Elevator', |
| | | component: () => import('@/views/Elevator/Elevator.vue') |
| | | { |
| | | path: '/Equipmentstatus', |
| | | name: 'Equipmentstatus', |
| | | component: () => import('@/views/Equipmentstatus/Equipmentstatus.vue') |
| | | }, |
| | | ] |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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' // æ£ç¡®å¯¼å
¥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}`) |
| | | // æ¥å£è¿åé»è¾ï¼å设res.data.status为true表示æå |
| | | 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}å¤±è´¥ï¼æ¥å£è¯·æ±å¼å¸¸`) |
| | | } |
| | | } |
| | | |
| | | 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> |
| | |
| | | <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"> |
| | |
| | | </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 |
| | |
| | | { |
| | | "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": [ |
| | |
| | | "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": "" |
| | | } |
| | | ] |
| | |
| | | { |
| | | "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": [ |
| | |
| | | "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": "" |
| | | } |
| | | ] |
| | |
| | | } |
| | | |
| | | public virtual TEntity QueryFirst(Expression<Func<TEntity, bool>> whereExpression) |
| | | |
| | | { |
| | | return _db.CopyNew().Queryable<TEntity>().WhereIF(whereExpression != null, whereExpression).First(); |
| | | } |
| | |
| | | #endregion |
| | | |
| | | SqlSugarScope sqlSugarClient = new SqlSugarScope(listConfig, db => |
| | | |
| | | { |
| | | db.Aop.DataExecuting = SqlSugarAop.DataExecuting; |
| | | }); |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using 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 æ¥è¦ä»£ç è½¬æ¢ææå说æ |
| | | 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 |
| | | } |
| | | } |
| | |
| | | return Service.GetDetailInfo(taskNum); |
| | | } |
| | | |
| | | [HttpPost, HttpGet, Route("GetDetailDatas")] |
| | | [HttpPost, HttpGet, Route("GetDetailDatas"), AllowAnonymous] |
| | | public WebResponseContent GetDetailDatas(int taskNum) |
| | | { |
| | | return Service.GetDetailDatas(taskNum); |
| | |
| | | { |
| | | //"urls": "http://*:9291", //webæå¡ç«¯å£ï¼å¦æç¨IISé¨ç½²ï¼æè¿ä¸ªå»æ |
| | | "urls": "http://*:9291", //webæå¡ç«¯å£ï¼å¦æç¨IISé¨ç½²ï¼æè¿ä¸ªå»æ |
| | | "Logging": { |
| | | "LogLevel": { |
| | | "Default": "Information", |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?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> |
| | |
| | | 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 = "") |
| | |
| | | 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}ã"); |
| | |
| | | /// å¤ä½ |
| | | /// </summary> |
| | | ResetElevator, |
| | | |
| | | /// <summary> |
| | | /// æ¥è¦ä¿¡æ¯ |
| | | /// </summary> |
| | | ElevatorAlarm1, |
| | | ElevatorAlarm2, |
| | | ElevatorAlarm3, |
| | | ElevatorAlarm4, |
| | | ElevatorAlarm5, |
| | | ElevatorAlarm6, |
| | | ElevatorAlarm7, |
| | | ElevatorAlarm8, |
| | | ElevatorAlarm9, |
| | | ElevatorAlarm10, |
| | | ElevatorAlarm11, |
| | | ElevatorAlarm12, |
| | | ElevatorAlarm13, |
| | | ElevatorAlarm14, |
| | | ElevatorAlarm15, |
| | | ElevatorAlarm16, |
| | | ElevatorAlarm17, |
| | | } |
| | | } |
| | |
| | | /// æ¥è¦ä¿¡æ¯ |
| | | /// </summary> |
| | | Alarm, |
| | | |
| | | /// <summary> |
| | | /// 设å¤ç¶æ |
| | | /// </summary> |
| | | StackerCraneWorkStatus, |
| | | } |
| | | } |
| | |
| | | "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": "" |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | | } |
| | | ] |
| | | } |
| | |
| | | "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": [ |
| | |
| | | { |
| | | "$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", |
| | |
| | | "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" |
| | | } |
| | | ] |
| | | } |