huangxiaoqiang
2025-07-28 b31d961a3f0bcd2e555ea12b76c30c453826deba
代码提交
已修改32个文件
已添加11个文件
119116 ■■■■■ 文件已修改
项目代码/WCS/WIDESEAWCS_Client/src/uitils/signalr.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/Devicestatus/AGVStatus.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/Home.vue 1060 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/Index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineComponent copy.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/LineInfocopy.vue 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_hty.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Error_CommonStackerStationCraneJob_09-28-47.log 16045 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_一号RGV_09-19-28.log 9585 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_一号堆垛机_09-19-28.log 9396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_二号RGV_15-17-02.log 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_库前输送线_09-22-12.log 7211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_库后输送线_16-31-56.log 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Error_CommonStackerStationCraneJob_08-58-43.log 22179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_一号RGV_08-58-43.log 7587 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_一号堆垛机_08-58-43.log 10410 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_三号RGV_15-13-10.log 1389 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_二楼输送线_14-02-24.log 12851 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_库后输送线_08-58-43.log 10161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-27/Error_CommonStackerStationCraneJob_09-40-58.log 9937 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250724/生成任务_log20250724.log 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250725/生成任务_log20250725.log 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/RGVDBName.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/uitils/signalr.js
@@ -92,11 +92,14 @@
      eventBus.emit("stackerData", data);
    });
    connection.on("LineData", (data) => {
      eventBus.emit("locationData", data);
      eventBus.emit("LineData", data);
    });
    connection.on("Logs", (data) => {
      eventBus.emit("Logs", data);
    });
    connection.on("RGVData", (data) => {
      eventBus.emit("RGVData", data);
    });
  };
  //页面销毁
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/Devicestatus/AGVStatus.vue
@@ -38,6 +38,7 @@
         }
       }
   })
 });
 </script>
 <style scoped>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/Home.vue
@@ -1,572 +1,583 @@
<template>
    <div class="title">
        <el-row  style="height:100%">
      <el-col :span="16">
        <el-row :gutter="20" style="height:100%">
            <el-col :span="8">
                <span style="position: relative; top: 100px;left: 30px;">第一层</span>
                <el-row :gutter="20" style="height:1000px">
                    <el-col :span="8"></el-col>
                    <el-col :span="8">
                        <div class="line-container">
                            <div class="RGVline"></div>
                            <div :class="updateRGVOne()" :style="{ marginTop: RGV01.LevelPoint + 'px' }" ref="childDot" @click="mouseClick">1</div>
                            <div :class="updateRGVTwo()" :style="{ marginTop: RGV02.LevelPoint + 'px' }" ref="childDot" @click="mouseClick">2</div>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div>
                            <div v-for="(group, index) in groupedLines(linescopy1)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                            <div style="margin-top: 118px;"></div>
                            <div v-for="(group, index) in groupedLines(linescopy2)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                            <div style="margin-top: 115px;"></div>
                            <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                            <div style="margin-top: 112px;"></div>
                            <div v-for="(group, index) in groupedLines(linescopy4)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                            <div style="margin-top: 109px;"></div>
                            <div v-for="(group, index) in groupedLines(linescopy5)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                            <div style="margin-top: 107px;"></div>
                            <div v-for="(group, index) in groupedLines(linescopy6)" :key="index">
                                <div class="positionY-group">
                                    <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                        :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                        :positionY="line.positionY" :condition="line.condition" />
                                </div>
                            </div>
                        </div>
                    </el-col>
                </el-row>
            </el-col>
            <el-col :span="8">
                <!-- å †åž›æœº -->
                <div style="position: relative; top: 50px;">
                    <div class="stackerDiv">
                        <div class="stackDivName">一号堆垛机</div>
                        <LineComponent :x="xValue1" ref="lineComponent1" :equipNo="1"></LineComponent>
                        <LineComponent :x="xValue1" ref="stacker1" :equipNo="SC01"></LineComponent>
                    </div>
                    <el-divider></el-divider>
                    <div class="stackerDiv">
                        <div class="stackDivName">二号堆垛机</div>
                        <LineComponent :x="xValue2" ref="lineComponent2" :equipNo="2"></LineComponent>
                        <LineComponent :x="xValue2" ref="stacker2" :equipNo="SC02"></LineComponent>
                    </div>
          <div class="stackerDiv">
                    <el-divider></el-divider>
                    <div class="stackerDiv">
                        <div class="stackDivName">三号堆垛机</div>
                        <LineComponent :x="xValue2" ref="lineComponent2" :equipNo="2"></LineComponent>
                        <LineComponent :x="xValue3" ref="stacker3" :equipNo="SC03"></LineComponent>
                    </div>
          <div class="stackerDiv">
                    <el-divider></el-divider>
                    <div class="stackerDiv">
                        <div class="stackDivName">四号堆垛机</div>
                        <LineComponent :x="xValue2" ref="lineComponent2" :equipNo="2"></LineComponent>
                        <LineComponent :x="xValue4" ref="stacker4" :equipNo="SC04"></LineComponent>
                    </div>
                    <el-divider></el-divider>
                    <div class="stackerDiv">
                        <div class="stackDivName">五号堆垛机</div>
                        <LineComponent :x="xValue5" ref="stacker5" :equipNo="SC05"></LineComponent>
                    </div>
                    <el-divider></el-divider>
                    <div class="stackerDiv">
                        <div class="stackDivName">六号堆垛机</div>
                        <LineComponent :x="xValue6" ref="stacker6" :equipNo="SC06"></LineComponent>
                    </div>
                </div>
            </el-col>
        </el-row>
        <el-row :gutter="20" class="cardWidthrow">
      <el-col :span="7">
                <div class="cardWidth">
                    <div>
                        <span style="position: relative; top: 100px;left: 10px;">第一层前</span>
                        <div v-for="(group, index) in groupedLines(linescopy1)" :key="index">
                            <div class="positionY-group">
                                <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                    :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                    :positionY="line.positionY"
                                    :condition="line.condition" />
                            </div>
                        </div>
                    </div>
                    <!-- <el-divider class="divider"></el-divider>
                    <div>
                        <span style="position: relative; top: 120px;left: 30px;">第二层</span>
                        <div v-for="(group, index) in groupedLines(linescopy2)" :key="index">
                            <div class="positionY-group">
                                <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                    :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                    :positionY="line.positionY" url="api/Equipment/GetLineInfoByNo"
                                    :condition="line.condition" />
                            </div>
                        </div>
                    </div>
                    <el-divider class="divider"></el-divider>
                    <div>
                        <span style="position: relative; top: 120px;left: 30px;">第三层</span>
                        <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                            <div class="positionY-group">
                                <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                    :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                    :positionY="line.positionY" url="api/Equipment/GetLineInfoByNo"
                                    :condition="line.condition" />
                            </div>
                        </div>
                    </div> -->
                </div>
            </el-col>
            <!-- <el-col :span="12">
            <!-- <el-col :span="8">
                <div>
                    <span style="position: relative; top: 120px;left: 30px;">第四层</span>
                    <div v-for="(group, index) in groupedLines(linescopy4)" :key="index">
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                :positionY="line.positionY" url="api/Equipment/GetLineInfoByNo"
                                :condition="line.condition" />
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                </div>
            </el-col>
            <el-col :span="12">
                <div>
                    <span style="position: relative; top: 120px;left: 30px;">第五层</span>
                    <div v-for="(group, index) in groupedLines(linescopy5)" :key="index">
                    <div style="margin-top: 105px;"></div>
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex"
                                :equipNo="line.equipNo" :imgType="line.imgType" :positionX="line.positionX"
                                :positionY="line.positionY" url="api/Equipment/GetLineInfoByNo"
                                :condition="line.condition" />
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                    <div style="margin-top: 105px;"></div>
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                    <div style="margin-top: 105px;"></div>
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                    <div style="margin-top: 100px;"></div>
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                    <div style="margin-top: 100px;"></div>
                    <div v-for="(group, index) in groupedLines(linescopy3)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                </div>
            </el-col> -->
        </el-row>
        <el-row :gutter="20" class="cardWidthrow">
            <el-col :span="12">
                <div>
                    <span style="position: relative; top: 120px;left: 30px;">第二层</span>
                    <div v-for="(group, index) in groupedLines(linescopy4)" :key="index">
                        <div class="positionY-group">
                            <LineInfoCopy v-for="(line, lineIndex) in group.lines" :key="lineIndex" :equipNo="line.equipNo"
                                :imgType="line.imgType" :positionX="line.positionX" :positionY="line.positionY"
                                url="api/Equipment/GetLineInfoByNo" :condition="line.condition" />
                        </div>
                    </div>
                </div>
            </el-col>
        </el-row>
    </div>
</template>
<script>
import { ref, reactive } from "vue";
import { onMounted, ref, reactive } from "vue";
// import StackerInfo from "./StackerInfo.vue";
// import LineInfo from "./LineInfo.vue";
import LineInfoCopy from "./LineInfocopy.vue";
import LineComponent from './LineComponent.vue';
import eventBus from "../uitils/eventBus";
export default {
    data() {
        return {
            //#region ç¬¬ä¸€å±‚
            linescopy1: [
                //#region ç¬¬ä¸€æŽ’
                {
                    equipNo: "1103",
                    equipNo: "1005",
                    imgType: "1",
                    positionX: 1,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1102",
                    equipNo: "1006",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2103",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    condition: false,
                },
                // {
                //     equipNo: "2102",
                //     imgType: "1",
                //     positionX: 5,
                //     positionY: 1,
                //     condition: false,
                // },
                //#endregion
                //#region ç¬¬äºŒæŽ’
                {
                    equipNo: "1104",
                    equipNo: "1007",
                    imgType: "1",
                    positionX: 1,
                    positionY: 4,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1101",
                    equipNo: "1008",
                    imgType: "1",
                    positionX: 2,
                    positionY: 4,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2002",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2104",
                    equipNo: "2001",
                    imgType: "1",
                    positionX: 2,
                    positionY: 4,
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                // {
                //     equipNo: "2101",
                //     imgType: "1",
                //     positionX: 5,
                //     positionY: 2,
                //     condition: false,
                // },
                //#endregion
                {
                    equipNo: "2004",
                    imgType: "1",
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2003",
                    imgType: "1",
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
            ],
            //#endregion
            //#region ç¬¬äºŒå±‚
            linescopy2: [
                //#region ç¬¬ä¸€æŽ’
                {
                    equipNo: "1204",
                    equipNo: "1009",
                    imgType: "1",
                    positionX: 1,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1203",
                    equipNo: "1010",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2204",
                    imgType: "1",
                    positionX: 4,
                    positionY: 1,
                    condition: false,
                },
                {
                    equipNo: "2203",
                    imgType: "1",
                    positionX: 5,
                    positionY: 1,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬äºŒæŽ’
                {
                    equipNo: "1205",
                    equipNo: "1011",
                    imgType: "1",
                    positionX: 1,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1202",
                    equipNo: "1012",
                    imgType: "1",
                    positionX: 2,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2006",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2205",
                    equipNo: "2005",
                    imgType: "1",
                    positionX: 4,
                    positionY: 2,
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2202",
                    equipNo: "2008",
                    imgType: "1",
                    positionX: 5,
                    positionY: 2,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬ä¸‰æŽ’
                {
                    equipNo: "1206",
                    imgType: "1",
                    positionX: 1,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1201",
                    equipNo: "2007",
                    imgType: "1",
                    positionX: 2,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2205",
                    imgType: "1",
                    positionX: 4,
                    positionY: 3,
                    condition: false,
                },
                {
                    equipNo: "2201",
                    imgType: "1",
                    positionX: 5,
                    positionY: 3,
                    condition: false,
                },
                //#endregion
            ],
            //#endregion
            //#region ç¬¬ä¸‰å±‚
            linescopy3: [
                //#region ç¬¬ä¸€æŽ’
                {
                    equipNo: "1304",
                    equipNo: "1017",
                    imgType: "1",
                    positionX: 1,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1303",
                    equipNo: "1018",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2304",
                    imgType: "1",
                    positionX: 4,
                    positionY: 1,
                    condition: false,
                },
                {
                    equipNo: "2303",
                    imgType: "1",
                    positionX: 5,
                    positionY: 1,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬äºŒæŽ’
                {
                    equipNo: "1305",
                    equipNo: "1019",
                    imgType: "1",
                    positionX: 1,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1302",
                    equipNo: "1020",
                    imgType: "1",
                    positionX: 2,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2010",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2305",
                    equipNo: "2009",
                    imgType: "1",
                    positionX: 4,
                    positionY: 2,
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2302",
                    equipNo: "2012",
                    imgType: "1",
                    positionX: 5,
                    positionY: 2,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬ä¸‰æŽ’
                {
                    equipNo: "1306",
                    imgType: "1",
                    positionX: 1,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1301",
                    equipNo: "2011",
                    imgType: "1",
                    positionX: 2,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2305",
                    imgType: "1",
                    positionX: 4,
                    positionY: 3,
                    condition: false,
                },
                {
                    equipNo: "2301",
                    imgType: "1",
                    positionX: 5,
                    positionY: 3,
                    condition: false,
                },
                //#endregion
            ],
            //#endregion
            //#region ç¬¬å››å±‚
            linescopy4: [
                //#region ç¬¬ä¸€æŽ’
                {
                    equipNo: "1404",
                    equipNo: "1021",
                    imgType: "1",
                    positionX: 1,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1403",
                    equipNo: "1022",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2404",
                    imgType: "1",
                    positionX: 4,
                    positionY: 1,
                    condition: false,
                },
                {
                    equipNo: "2403",
                    imgType: "1",
                    positionX: 5,
                    positionY: 1,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬äºŒæŽ’
                {
                    equipNo: "1405",
                    equipNo: "1023",
                    imgType: "1",
                    positionX: 1,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1402",
                    equipNo: "1024",
                    imgType: "1",
                    positionX: 2,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2014",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2405",
                    equipNo: "2013",
                    imgType: "1",
                    positionX: 4,
                    positionY: 2,
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2402",
                    equipNo: "2016",
                    imgType: "1",
                    positionX: 5,
                    positionY: 2,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬ä¸‰æŽ’
                {
                    equipNo: "1406",
                    imgType: "1",
                    positionX: 1,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1401",
                    equipNo: "2015",
                    imgType: "1",
                    positionX: 2,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2405",
                    imgType: "1",
                    positionX: 4,
                    positionY: 3,
                    condition: false,
                },
                {
                    equipNo: "2401",
                    imgType: "1",
                    positionX: 5,
                    positionY: 3,
                    condition: false,
                },
                //#endregion
            ],
            //#endregion
            //#region ç¬¬äº”层
            linescopy5: [
                //#region ç¬¬ä¸€æŽ’
                {
                    equipNo: "1504",
                    equipNo: "1031",
                    imgType: "1",
                    positionX: 1,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1503",
                    equipNo: "1032",
                    imgType: "1",
                    positionX: 2,
                    positionY: 1,
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2504",
                    imgType: "1",
                    positionX: 4,
                    positionY: 1,
                    condition: false,
                },
                {
                    equipNo: "2503",
                    imgType: "1",
                    positionX: 5,
                    positionY: 1,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬äºŒæŽ’
                {
                    equipNo: "1505",
                    equipNo: "1033",
                    imgType: "1",
                    positionX: 1,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1502",
                    equipNo: "1034",
                    imgType: "1",
                    positionX: 2,
                    positionY: 2,
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2018",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2505",
                    equipNo: "2017",
                    imgType: "1",
                    positionX: 4,
                    positionY: 2,
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2502",
                    equipNo: "2020",
                    imgType: "1",
                    positionX: 5,
                    positionY: 2,
                    condition: false,
                },
                //#endregion
                //#region ç¬¬ä¸‰æŽ’
                {
                    equipNo: "1506",
                    imgType: "1",
                    positionX: 1,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1501",
                    equipNo: "2019",
                    imgType: "1",
                    positionX: 2,
                    positionY: 3,
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2505",
                    imgType: "1",
                    positionX: 4,
                    positionY: 3,
                    condition: false,
                },
                {
                    equipNo: "2501",
                    imgType: "1",
                    positionX: 5,
                    positionY: 3,
                    condition: false,
                },
                //#endregion
            ],
            //#endregion
            linescopy6: [
                {
                    equipNo: "1035",
                    imgType: "1",
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1036",
                    imgType: "1",
                    positionX: 0.6,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "1037",
                    imgType: "1",
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "1038",
                    imgType: "1",
                    positionX: 0.6,
                    positionY: 20,
                    condition: false,
                }, {
                    equipNo: "2022",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2021",
                    imgType: "1",
                    positionX: 26,
                    positionY: 8,
                    condition: false,
                },
                {
                    equipNo: "2024",
                    imgType: "1",
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
                {
                    equipNo: "2023",
                    imgType: "1",
                    positionX: 26,
                    positionY: 20,
                    condition: false,
                },
            ],
            StackerCrane: {
                Automatic: "",
                Fault: "",
                CurrentLayer: "",
                CurrentRow: "1",
                CurrentColumn: "",
                CurrentTaskNum: "",
                Running: "",
                DeviceName: "",
            },
            xValue1: 0,
            xValue2: 0,
            xValue3: 0,
            xValue4: 0,
            xValue5: 0,
            xValue6: 0,
            timer1: null, // å®šæ—¶å™¨å˜é‡
            timer2: null, // å®šæ—¶å™¨å˜é‡
            result1: 0,
            result1: 1,
            RGV01:{
                Automatic: "",
                Fault: "",
                LevelPoint:0,
                CurrentTaskNum: "",
                Running: "",
                DeviceName: "",
                DeviceCode:"RGV01",
            },
            RGV02:{
                Automatic: "",
                Fault: "",
                LevelPoint:1280,
                CurrentTaskNum: "",
                Running: "",
                DeviceName: "",
                DeviceCode:"RGV02",
            },
            RGV03:{
                Automatic: "",
                Fault: "",
                LevelPoint:0,
                CurrentTaskNum: "",
                Running: "",
                DeviceName: "",
                DeviceCode:"",
            },
        };
    },
    components: {
@@ -588,158 +599,119 @@
            });
            return Object.values(groups);
        },
        async increase() {
            this.xValue1 += 100;
            this.xValue2 += 100;
            // let abc = this.xValue + 100;
            // for (this.xValue; this.xValue < abc; this.xValue++) {
            //   await this.delay(10);
            if (this.xValue1 > 1120) {
                this.xValue1 = 1120;
                this.xValue2 = 1120;
            }
            this.$nextTick(() => {
                this.$refs.lineComponent1.moveDot(this.xValue1);
            });
            this.$nextTick(() => {
                this.$refs.lineComponent2.moveDot(this.xValue2);
            });
            // }
        updateRGVOne(){
        if(this.RGV01.Automatic&&!this.RGV01.Fault&&!this.RGV01.Running){
          return 'dot-Automatic ';
        }
        else if(!this.RGV01.Fault&&this.RGV01.Running){
          return 'dot-Running ';
        }else if(this.RGV01.Fault){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
        async decrease() {
            this.xValue1 -= 100;
            this.xValue2 -= 100;
            if (this.xValue1 < 0) {
                this.xValue1 = 0;
                this.xValue2 = 0;
            }
            // let abc = this.xValue - 100;
            // for (this.xValue; this.xValue > abc; this.xValue--) {
            //   await this.delay(10);
            this.$nextTick(() => {
                this.$refs.lineComponent1.moveDot(this.xValue1);
            });
            this.$nextTick(() => {
                this.$refs.lineComponent2.moveDot(this.xValue2);
            });
            // }
        updateRGVTwo(){
        if(this.RGV02.Automatic&&!this.RGV02.Fault&&!this.RGV02.Running){
          return 'dot-Automatic ';
        }
        else if(!this.RGV02.Fault&&this.RGV02.Running){
          return 'dot-Running ';
        }else if(this.RGV02.Fault){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
        delay(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        updateRGV03(){
        if(this.RGV03.Automatic&&!this.RGV03.Fault&&!this.RGV03.Running){
          return 'dot-Automatic ';
        }
        else if(!this.RGV03.Fault&&this.RGV03.Running){
          return 'dot-Running ';
        }else if(this.RGV03.Fault){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
        startTimer() {
            // å¼€å¯å®šæ—¶å™¨ï¼Œæ¯3秒执行一次
            this.timer1 = setInterval(() => {
                // æ‰§è¡Œå®šæ—¶å™¨çš„æ“ä½œ
                this.methodofexecution(1)
                if (this.result1 <= 0) {
                    this.result1 = 0
                }
                this.$nextTick(() => {
                    this.$refs.lineComponent1.moveDot(this.result1);
                });
            }, 3000);
            // å¼€å¯å®šæ—¶å™¨ï¼Œæ¯3秒执行一次
            this.timer2 = setInterval(() => {
                // æ‰§è¡Œå®šæ—¶å™¨çš„æ“ä½œ
                this.methodofexecution(2)
                if (this.result2 <= 0) {
                    this.result2 = 0
                }
                this.$nextTick(() => {
                    this.$refs.lineComponent2.moveDot(this.result2);
                });
            }, 3000);
        },
        stopTimer() {
            // å…³é—­å®šæ—¶å™¨
            clearInterval(this.timer1);
            clearInterval(this.timer2);
        },
        //获取并计算堆垛机位置
        methodofexecution(equipNo, data, x) {
            if (x) {
                let WalkingLaserValue = data.r_Stack_WalkingLaserValue;
                let Value = ((WalkingLaserValue - 1200) / 50) + 10
                if (equipNo === 1) {
                    this.result1 = Value
                }
                else if (equipNo === 2) {
                    this.result2 = Value
                }
            } else {
                // this.$message({
                //     type: "error",
                //     message: "x.message",
                // });
            }
        }
    },
    computed: {
    },
    mounted() {
        // åˆå§‹åŒ–页面时开启定时器
        // this.startTimer();
        // // ç›‘听路由变化
        // this.$router.beforeEach((to, from, next) => {
        //   this.stopTimer(); // å…³é—­å®šæ—¶å™¨
        //   next(); // ç»§ç»­è·¯ç”±å¯¼èˆª
        // });
    },
    created() {
        eventBus.on('stackerData', eventData => {
            // æ›´æ–°ç»„件的数据
            this.methodofexecution(parseInt(eventData.plcName, 10), eventData.data, true)
            const lineComponentsMap = {
                1: 'lineComponent1',
                2: 'lineComponent2',
            const stackerComponentsMap = {
                "SC01": 'stacker1',
                "SC02": 'stacker2',
                "SC03": 'stacker3',
                "SC04": 'stacker4',
                "SC05": 'stacker5',
                "SC06": 'stacker6',
            };
            const resultsMap = {
                1: this.result1,
                2: this.result2,
            };
            const componentKey = lineComponentsMap[eventData.plcName];
            const result = resultsMap[eventData.plcName];
            if (componentKey && result !== undefined) {
            const componentKey = stackerComponentsMap[eventData.data.deviceCode];
            if (componentKey) {
                this.StackerCrane.Automatic=eventData.data.automatic;
                this.StackerCrane.Fault=eventData.data.fault;
                this.StackerCrane.Running=eventData.data.running;
                this.StackerCrane.CurrentColumn=eventData.data.currentColumn;
                this.StackerCrane.CurrentLayer=eventData.data.currentLayer;
                this.StackerCrane.LevelPoint=eventData.data.levelPoint;
                this.StackerCrane.DeviceName=eventData.data.deviceName;
                this.$nextTick(() => {
                    this.$refs[componentKey].moveDot(result);
                    this.$refs[componentKey].moveDot(this.StackerCrane);
                });
            }
        });
        eventBus.on('RGVData', eventData => {
            if(eventData.data.deviceCode=="RGV01"){
                this.RGV01.Automatic=eventData.data.automatic;
                this.RGV01.Fault=eventData.data.fault;
                this.RGV01.Running=eventData.data.running;
                this.RGV01.LevelPoint=eventData.data.levelPoint;
                this.RGV01.DeviceName=eventData.data.deviceName;
                console.log(this.RGV01.LevelPoint)
            }else if(eventData.data.deviceCode=="RGV02"){
                this.RGV02.Automatic=eventData.data.automatic;
                this.RGV02.Fault=eventData.data.fault;
                this.RGV02.Running=eventData.data.running;
                this.RGV02.LevelPoint=eventData.data.levelPoint;
                this.RGV02.DeviceName=eventData.data.deviceName;
            }else if(eventData.data.deviceCode=="RGV03"){
                this.RGV03.Automatic=eventData.data.automatic;
                this.RGV03.Fault=eventData.data.fault;
                this.RGV03.Running=eventData.data.running;
                this.RGV03.LevelPoint=eventData.data.levelPoint;
                this.RGV03.DeviceName=eventData.data.deviceName;
            }
        });
        eventBus.on("LineData", eventData => {
            const stationMap = {
                "11": this.linescopy1,
                "10": this.linescopy1,
                "12": this.linescopy2,
                "22": this.linescopy2,
                "13": this.linescopy3,
                "23": this.linescopy3,
                "14": this.linescopy4,
                "24": this.linescopy4,
                "15": this.linescopy5,
                "25": this.linescopy5
                "SC01": this.linescopy1,
                "SC02": this.linescopy2,
                "SC03": this.linescopy3,
                "SC04": this.linescopy4,
                "SC05": this.linescopy5,
                "SC06": this.linescopy6,
                "SC07": this.linescopy7,
            };
            var station = eventData.station_code;
            var layer = station.substring(0, 2);
            if (stationMap[layer]) {
                stationMap[layer].forEach((line) => {
            var station = eventData.stationChildCode;
            if (stationMap[eventData.roadway]) {
                stationMap[eventData.roadway].forEach((line) => {
                    if (line.equipNo === station) {
                        line.condition = eventData.r_Line_HasPallet === 1;
                        line.condition = eventData.inStock;
                    }
                })
            }
        })
        for (let i = 1; i < 6; i++) {
            this.methodofexecution(i, null, false)
        }
    },
};
</script>
@@ -749,8 +721,7 @@
  margin-bottom: 10px;
} */
.title {
    height: 800px;
  margin-left: 20px;
    height: 1500px;
}
.cardWidth {
@@ -779,7 +750,7 @@
.stackerDiv {
    border: 1px solid rgba(0, 195, 255, 0.822);
    width: 1600px;
    width: 980px;
    padding-left: 3px;
}
@@ -788,4 +759,77 @@
    color: rgba(0, 195, 255, 0.822);
    margin-bottom: 12px;
}
.dot-Running {
  position: absolute;
  top: -5px;
  width: 20px;
    height: 20px;
  border-radius: 50%;
  background-color: #409eff;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.dot-Automatic {
  position: absolute;
  top: -5px;
  width: 20px;
    height: 20px;
  border-radius: 50%;
  background-color: #0df705;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.dot-Fault {
  position: absolute;
  top: -5px;
  width: 20px;
    height: 20px;
    /* right:0px; */
  border-radius: 50%;
  background-color: #f80410;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.line-container {
    position: relative;
    height: 1280px;
    background-color: #ecf5ff;
    width: 20px;
    top:30px;
    left:200px
}
.RGVline {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: #a0cfff;
}
.line {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background-color: #a0cfff;
}
</style>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/Index.vue
@@ -16,19 +16,7 @@
      <div class="vol-header">
        <div class="project-name">WCS</div>
        <div class="header-text">
          <!-- <div class="h-link">
            <a
              href="javascript:void(0)"
              @click="to(item)"
              v-for="(item, index) in links.filter((c) => {
                return !c.icon;
              })"
              :key="index"
            >
              <span v-if="!item.icon"> {{ item.text }}</span>
              <i v-else :class="item.icon"></i>
            </a>
          </div> -->
        </div>
        <div class="header-info">
          <div class="h-link">
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineComponent copy.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,248 @@
<template>
  <div>
    <el-row>
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
        </el-col>
      </template>
    </el-row>
    <el-row style="padding-bottom: 5px;">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
        </el-col>
      </template>
    </el-row>
  </div>
  <div class="line-container">
    <div class="line"></div>
    <!-- <div class="dot" :style="{ right: dotPosition + 'px' }" ref="childDot" @click="mouseClick"></div> -->
    <div :class="update()" :style="{ transform: `translateX(${StackerCrane.CurrentColumn<33?StackerCrane.CurrentColumn * 30-29:0}px)` }" ref="childDot" @click="mouseClick"></div>
  </div>
  <div>
    <el-row style="padding-top: 5px;">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
        </el-col>
      </template>
    </el-row>
    <el-row style="padding-bottom: 5px;">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
        </el-col>
      </template>
    </el-row>
  </div>
  <el-dialog v-model="dialogVisible" title="信息查看" :before-close="handleClose">
    <el-form ref="$form" :model="StackerCrane" label-position="left" label-width="100px" size="medium">
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="设备编号:">
            <!-- <el-input v-model="equipNo"></el-input> -->
            <j-el-description :value="StackerCrane.DeviceName" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="设备状态:">
            <j-el-description :value="StackerCrane.Fault" type="primary"
              ellipsis></j-el-description>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="工作模式:">
            <j-el-description :value="StackerCrane.Automatic" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="任务号:">
            <j-el-description :value="StackerCrane.CurrentTaskNum" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="作业状态:">
            <j-el-description :value="StackerCrane.Running" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="当前行列层:">
            <j-el-description
              :value="StackerCrane.CurrentRow + '-' + StackerCrane.CurrentColumn + '-' + StackerCrane.CurrentLayer"
              type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <template #footer>
      <div class="dialog-footer">
        <el-button @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="dialogVisible = false">
          ç¡®è®¤
        </el-button>
      </div>
    </template>
  </el-dialog>
</template>
<script>
import { id } from "element-plus/es/locale";
import JElDescription from "./JElDescription";
export default {
  components: {
    JElDescription
  },
  data() {
    return {
      x: 0, // åˆå§‹x值
      url: "api/Equipment/GetStackerInfoByNo",
      dialogVisible: false,
      StackerCrane: {
        Automatic: "",
        Fault: "",
        CurrentLayer: "1",
        CurrentRow: "1",
        CurrentColumn: "1",
        CurrentTaskNum: "",
        Running: "",
        DeviceName: "",
      }
    };
  },
  props: {
    equipNo: {
      type: String,
      default: "0",
    },
  },
  computed: {
    dotPosition() {
      return this.x;
    },
  },
  mounted() {
    this.moveDot(this.x);
  },
  methods: {
    moveDot(x) {
        this.StackerCrane.Automatic=x.Automatic==null?"故障":x.Automatic;
                this.StackerCrane.Fault=x.Fault==null?"故障":x.Fault;
                this.StackerCrane.Running=x.Running==null?"故障":x.Running;
                this.StackerCrane.CurrentColumn=x.CurrentColumn==undefined?1:x.CurrentColumn;
                this.StackerCrane.CurrentLayer=x.CurrentLayer==undefined?1:x.CurrentLayer;
                this.StackerCrane.LevelPoint=x.LevelPoint;
                this.StackerCrane.DeviceName=x.DeviceName;
    },
    update(){
        if(this.StackerCrane.Automatic&&!this.StackerCrane.Fault&&!this.StackerCrane.Running){
          return 'dot-Automatic ';
        }
        else if(!this.StackerCrane.Fault&&this.StackerCrane.Running){
          return 'dot-Running ';
        }else if(this.StackerCrane.Fault){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
    mouseClick() {
      this.fullscreenLoading = true;
      this.dialogVisible = true;
      this.fullscreenLoading = false;
    },
  },
};
</script>
<style scoped>
.line-container {
  position: relative;
  height: 20px;
  background-color: #ecf5ff;
  width: 960px;
}
.line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #a0cfff;
}
.dot-Running {
  position: absolute;
  top: -5px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #409eff;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.dot-Automatic {
  position: absolute;
  top: -5px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #0df705;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.dot-Fault {
  position: absolute;
  top: -5px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #f80410;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
img {
  width: 30px;
  height: 25px;
}
.image-text {
  position: absolute;
  top: 5px;
  /* left: 10px;  */
  color: white;
  /* æ–‡å­—颜色 */
  font-size: 12px;
  /* å­—号大小 */
  font-weight: bold;
  /* å­—体粗细 */
  margin-left: 5px;
}
</style>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineComponent.vue
@@ -1,7 +1,7 @@
<template>
  <div>
    <el-row>
      <template v-for="item in 56" :key="item">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
@@ -9,7 +9,7 @@
      </template>
    </el-row>
    <el-row style="padding-bottom: 5px;">
      <template v-for="item in 56" :key="item">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
@@ -19,11 +19,12 @@
  </div>
  <div class="line-container">
    <div class="line"></div>
    <div class="dot" :style="{ right: dotPosition + 'px' }" ref="childDot" @click="mouseClick"></div>
    <!-- <div class="dot" :style="{ right: dotPosition + 'px' }" ref="childDot" @click="mouseClick"></div> -->
    <div :class="update()" :style="{ transform: `translateX(${StackerCrane.CurrentColumn<33?StackerCrane.CurrentColumn * 30-29:0}px)` }" ref="childDot" @click="mouseClick"></div>
  </div>
  <div>
    <el-row style="padding-top: 5px;">
      <template v-for="item in 56" :key="item">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
@@ -31,7 +32,7 @@
      </template>
    </el-row>
    <el-row style="padding-bottom: 5px;">
      <template v-for="item in 56" :key="item">
      <template v-for="item in 32" :key="item">
        <el-col :span="0.9">
          <span class="image-text"></span>
          <img src="../../public/货架.jpeg" />
@@ -41,17 +42,17 @@
  </div>
  <el-dialog v-model="dialogVisible" title="信息查看" :before-close="handleClose">
    <el-form ref="$form" :model="stackerItemInfo" label-position="left" label-width="100px" size="medium">
    <el-form ref="$form" :model="StackerCrane" label-position="left" label-width="100px" size="medium">
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="设备编号:">
            <!-- <el-input v-model="equipNo"></el-input> -->
            <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description>
            <j-el-description :value="StackerCrane.DeviceName" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="设备状态:">
            <j-el-description :value="stackerItemInfo.r_Stack_EquipmentStatus" type="primary"
            <j-el-description :value="StackerCrane.Fault" type="primary"
              ellipsis></j-el-description>
          </el-form-item>
        </el-col>
@@ -59,25 +60,25 @@
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="工作模式:">
            <j-el-description :value="stackerItemInfo.r_Stack_WorkPattern" type="primary" ellipsis></j-el-description>
            <j-el-description :value="StackerCrane.Automatic" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="任务号:">
            <j-el-description :value="stackerItemInfo.r_Stack_tasknumber" type="primary" ellipsis></j-el-description>
            <j-el-description :value="StackerCrane.CurrentTaskNum" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="作业状态:">
            <j-el-description :value="stackerItemInfo.r_Stack_jobstate" type="primary" ellipsis></j-el-description>
            <j-el-description :value="StackerCrane.Running" type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
        <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
          <el-form-item label="当前行列层:">
            <j-el-description
              :value="stackerItemInfo.r_Stack_linenum + '-' + stackerItemInfo.r_Stack_olumnnum + '-' + stackerItemInfo.r_Stack_layernum"
              :value="StackerCrane.CurrentRow + '-' + StackerCrane.CurrentColumn + '-' + StackerCrane.CurrentLayer"
              type="primary" ellipsis></j-el-description>
          </el-form-item>
        </el-col>
@@ -95,6 +96,7 @@
</template>
<script>
import { id } from "element-plus/es/locale";
import JElDescription from "./JElDescription";
export default {
  components: {
@@ -105,15 +107,15 @@
      x: 0, // åˆå§‹x值
      url: "api/Equipment/GetStackerInfoByNo",
      dialogVisible: false,
      stackerItemInfo: {
        r_Stack_EquipmentStatus: "",
        r_Stack_jobstate: "",
        r_Stack_layernum: "",
        r_Stack_linenum: "",
        r_Stack_olumnnum: "",
        r_Stack_tasknumber: "",
        r_Stack_WalkingLaserValue: "",
        r_Stack_WorkPattern: "",
      StackerCrane: {
        Automatic: "",
        Fault: "",
        CurrentLayer: "1",
        CurrentRow: "1",
        CurrentColumn: "1",
        CurrentTaskNum: "",
        Running: "",
        DeviceName: "",
      }
    };
  },
@@ -125,36 +127,38 @@
  },
  computed: {
    dotPosition() {
      return -this.x;
      return this.x;
    },
  },
  mounted() {
    this.moveDot(-this.x);
    this.moveDot(this.x);
  },
  methods: {
    moveDot(x) {
      const dot = this.$refs.childDot;
      dot.style.transform = `translateX(${-x}px)`;
        this.StackerCrane.Automatic=x.Automatic==null?"故障":x.Automatic;
                this.StackerCrane.Fault=x.Fault==null?"故障":x.Fault;
                this.StackerCrane.Running=x.Running==null?"故障":x.Running;
                this.StackerCrane.CurrentColumn=x.CurrentColumn==undefined?1:x.CurrentColumn;
                this.StackerCrane.CurrentLayer=x.CurrentLayer==undefined?1:x.CurrentLayer;
                this.StackerCrane.LevelPoint=x.LevelPoint;
                this.StackerCrane.DeviceName=x.DeviceName;
    },
    update(){
        if(this.StackerCrane.Automatic&&!this.StackerCrane.Fault&&!this.StackerCrane.Running){
          return 'dot-Automatic ';
        }
        else if(!this.StackerCrane.Fault&&this.StackerCrane.Running){
          return 'dot-Running ';
        }else if(this.StackerCrane.Fault){
          return 'dot-Fault ';
        }else{
          return 'dot-Fault ';
        }
        },
    mouseClick() {
      this.fullscreenLoading = true;
      this.dialogVisible = true;
      // å¤„理点击事件
      if (this.url != "") {
        this.http.post(this.url + "?equipNo=" + this.equipNo, null, "")
          .then((x) => {
            if (x.status) {
              this.stackerItemInfo = x.data;
            } else {
              this.$message({
                type: "error",
                message: x.message,
              });
            }
          });
      }
      this.fullscreenLoading = false;
      // this.dialogVisible = false;
    },
  },
};
@@ -163,9 +167,9 @@
<style scoped>
.line-container {
  position: relative;
  height: 10px;
  height: 20px;
  background-color: #ecf5ff;
  width: 1570px;
  width: 960px;
}
.line {
@@ -177,11 +181,11 @@
  background-color: #a0cfff;
}
.dot {
.dot-Running {
  position: absolute;
  top: -5px;
  width: 20px;
  height: 20px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #409eff;
  transition: transform 0.3s ease;
@@ -191,14 +195,41 @@
  font-size: 9px;
  font-weight: bold;
  color: white;
  /* background-image: url("../../public/堆垛机.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; */
}
.dot-Automatic {
  position: absolute;
  top: -5px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #0df705;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
.dot-Fault {
  position: absolute;
  top: -5px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background-color: #f80410;
  transition: transform 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 9px;
  font-weight: bold;
  color: white;
}
img {
  width: 28px;
  width: 30px;
  height: 25px;
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineInfo.vue
@@ -11,7 +11,7 @@
          margin_top: marginTop
        }" style="position: absolute" @click="mouseClick">
          <img v-if="imgType == '1'" src="../../public/lines.png" style="width: 40px" />
          <img v-if="imgType == '2'" src="../../public/lines2.png" style="width: 40px" />
          <img v-if="imgType == '1'" src="../../public/lines2.png" style="width: 40px" />
          <label v-if="equipNo != ''" style="position: relative; margin-left: 5px; top: -35px;font-size: 12px;">{{
            equipNo }}</label>
        </div>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/LineInfocopy.vue
@@ -1,80 +1,10 @@
<template>
    <div :class="update()" :style="{ left: left, top: top, }" @click="mouseClick"
        v-loading.fullscreen.lock="fullscreenLoading" style="">
            <img v-if="imgType === '2'" src="../../public/lines.png" />
        <div :class="update()" :style="{ left: left, top: top, marginBottom:0+'px',marginTop:15+'px'} ">
        <img v-if="imgType === '2'" src="../../public/lines.png" />
        <img v-if="imgType === '1'" src="../../public/lines2.png" />
        <label v-if="equipNo" class="equip-no">{{ equipNo }}</label>
    </div>
    <!-- <el-dialog v-model="dialogVisible" title="信息查看" :before-close="handleClose">
        <el-form ref="$form" :model="lineItemInfo" label-position="left" label-width="100px" size="medium">
            <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="设备编号:">
                        <j-el-description :value="equipNo" type="primary" ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="是否有盘:">
                        <j-el-description :value="lineItemInfo.r_Line_HasPallet" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
            </el-row>
             <el-row :gutter="20" type="flex" justify="start" align="top" tag="div">
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="托盘条码:">
                        <j-el-description :value="lineItemInfo.r_Line_Barcode" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
                <el-col :span="12" :offset="0" :push="0" :pull="0" tag="div">
                    <el-form-item label="报警代码:">
                        <j-el-description :value="lineItemInfo.r_Line_ErrorCode" type="primary"
                            ellipsis></j-el-description>
                    </el-form-item>
                </el-col>
            </el-row> -->
        <!-- </el-form>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="dialogVisible = false">取消</el-button>
                <el-button type="primary" @click="dialogVisible = false">
                    ç¡®è®¤
                </el-button>
            </div>
        </template>
    </el-dialog> -->
    <!-- <el-dialog v-model="dialogVisible" title="信息查看" :before-close="handleClose">
        <el-row>
            <el-col :span="12">是否有盘:</el-col>
            <el-col :span="12">{{ lineItemInfo.r_Line_HasPallet }}</el-col>
        </el-row>
        <el-row>
            <el-col :span="12">托盘条码</el-col>
            <el-col :span="12">{{ lineItemInfo.r_Line_Barcode }}</el-col>
        </el-row>
        <el-row>
            <el-col :span="12">目标位置</el-col>
            <el-col :span="12">{{ lineItemInfo.r_Line_Target }}</el-col>
        </el-row>
        <el-row>
            <el-col :span="12">任务号</el-col>
            <el-col :span="12">{{ lineItemInfo.r_Line_TaskNum }}</el-col>
        </el-row>
        <el-row>
            <el-col :span="12">报警代码</el-col>
            <el-col :span="12">{{ lineItemInfo.r_Line_ErrorCode }}</el-col>
        </el-row>
        <template #footer>
            <div class="dialog-footer">
                <el-button @click="dialogVisible = false">取消</el-button>
                <el-button type="primary" @click="dialogVisible = false">
                    ç¡®è®¤
                </el-button>
            </div>
        </template>
    </el-dialog> -->
</template>
<script>
@@ -116,8 +46,8 @@
    },
    data() {
        return {
            left: "20px",
            top: "260px",
            left: "500px",
            top: "400px",
            dialogVisible: false,
            lineItemInfo: {
                r_Line_Barcode: "",
@@ -157,9 +87,16 @@
            this.fullscreenLoading = false;
            // this.dialogVisible = false;
        },
        update(){
             return !this.condition ? 'custom-img' : 'custom-img-color'
        }
        },
        startTimer() {
            // å¼€å¯å®šæ—¶å™¨ï¼Œæ¯3秒执行一次
            this.timer1 = setInterval(() => {
                update();
            }, 500);
        },
    },
});
</script>
@@ -173,21 +110,21 @@
.custom-img-color {
    position: relative;
    display: inline-block;
    background-color:  #409eff ;
    background-color:  #05fa7f ;
    color: white;
    text-align: center;
}
.custom-img-color::before {
/* .custom-img-color::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: #409eff;
  border-radius: 50%;  /* åˆ›å»ºä¸€ä¸ªåœ†å½¢çš„镂空效果 */
}
  background-color: #05fa7f;
  border-radius: 50%;
} */
.custom-img img {
    width: 40px;
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
@@ -54,7 +54,7 @@
      { field: "taskId", title: "TaskId", type: "int", width: 90, hidden: true, readonly: true, require: true, align: "left", },
      { field: "taskNum", title: "任务号", type: "int", width: 75, align: "left", },
      { field: "palletCode", title: "托盘号", type: "string", width: 150, align: "left",  },
      { field: "roadway", title: "巷道", type: "string", width: 60, align: "left", },
      { field: "roadway", title: "堆垛机", type: "string", width: 100, align: "left",  bind: { key: "Stacker", data: [] }, },
      { field: "floor", title: "楼层", type: "string", width: 60, align: "left", },
      { field: "taskType", title: "任务类型", type: "int", width: 90, align: "left", bind: { key: "taskType", data: [] }, },
      { field: "taskState", title: "任务状态", type: "int", width: 150, align: "left", bind: { key: "taskState", data: [] }, },
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_hty.vue
@@ -59,18 +59,20 @@
      ],
    ]);
    const columns = ref([
      { field: "taskId", title: "TaskId", type: "int", width: 90, hidden: true, readonly: true, require: true, align: "left", },
      { field: "taskNum", title: "任务号", type: "int", width: 90, align: "left", },
      { field: "palletCode", title: "托盘号", type: "string", width: 90, align: "left",  },
      { field: "roadway", title: "巷道", type: "string", width: 90, align: "left", },
    { field: "taskId", title: "TaskId", type: "int", width: 90, hidden: true, readonly: true, require: true, align: "left", },
      { field: "taskNum", title: "任务号", type: "int", width: 75, align: "left", },
      { field: "palletCode", title: "托盘号", type: "string", width: 150, align: "left",  },
      { field: "roadway", title: "堆垛机", type: "string", width: 100, align: "left",  bind: { key: "Stacker", data: [] }, },
      { field: "floor", title: "楼层", type: "string", width: 60, align: "left", },
      { field: "taskType", title: "任务类型", type: "int", width: 90, align: "left", bind: { key: "taskType", data: [] }, },
      { field: "taskState", title: "任务状态", type: "int", width: 150, align: "left", bind: { key: "taskState", data: [] }, },
      { field: "sourceAddress", title: "起始地址", type: "int", width: 120, align: "left",  },
      { field: "targetAddress", title: "目标地址", type: "string", width: 120, align: "left",  },
      { field: "currentAddress", title: "当前位置", type: "string", width: 120, align: "left",  },
      { field: "nextAddress", title: "下一位置", type: "string", width: 120, align: "left", },
      { field: "exceptionMessage", title: "异常信息", type: "string", width: 90, align: "left" },
      { field: "sourceAddress", title: "起始地址", type: "int", width: 120, align: "left", },
      { field: "targetAddress", title: "目标地址", type: "string", width: 120, align: "left", },
      { field: "currentAddress", title: "当前位置", type: "string", width: 120, align: "left" },
      { field: "nextAddress", title: "下一位置", type: "string", width: 120, align: "left",  },
      { field: "exceptionMessage", title: "异常信息", type: "string", width: 90, align: "left", hidden: true, },
      { field: "grade", title: "优先级", type: "int", width: 80, align: "left", },
      { field: "rgvName", title: "RGV名称", type: "string", width: 100, align: "left", },
      { field: "dispatchertime", title: "任务下发时间", type: "datetime", width: 150, align: "left", },
      { field: "wMSId", title: "WMS任务主键", type: "int", width: 120, align: "left", hidden: true, },
      { field: "creater", title: "创建人", type: "string", width: 90, align: "left", },
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
@@ -7,6 +7,26 @@
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -15,16 +35,8 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\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}"
    }
  ],
  "DocumentGroupContainers": [
@@ -34,7 +46,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 4,
          "SelectedChildIndex": 8,
          "Children": [
            {
              "$type": "Bookmark",
@@ -46,26 +58,77 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAEUAAAAAAAAAAAAvwFMAAABIAAAAAAAAAA==",
              "DocumentIndex": 1,
              "Title": "Dt_StationManager.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ViewState": "AgIAAHMAAAAAAAAAAAAAAHsAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:56:14.602Z",
              "WhenOpened": "2025-07-28T01:35:03.533Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAALUAAAAAAAAAAAAEwMgAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:31:58.229Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAADYAAAAAAAAAAAAgwEYAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:29:44.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAG4AAAAAAAAAAAAAwIMAAACDAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-07-25T06:21:40.241Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAAAUAAAAAAAAAAAAuwCEAAAAfAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAGsAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
@@ -78,46 +141,33 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAOICAAAAAAAAAADwv/0CAAAUAAAAAAAAAA==",
              "ViewState": "AgIAAC4EAAAAAAAAAAAuwEIEAAAsAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAMsAAAAAAAAAAAAAANUAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAJYAAAAAAAAAAAAQwLcAAAA1AAAAAAAAAA==",
              "ViewState": "AgIAAGgAAAAAAAAAAAAAAIIAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 2,
              "Title": "CommonRGVJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAAAKcAAAAcAAAAAAAAAA==",
              "ViewState": "AgIAAHIAAAAAAAAAAADwv4oAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -7,12 +7,20 @@
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\basicinfo\\dt_stationmanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgvjob\\commonrgvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\task\\requestinbound.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -23,8 +31,12 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\aotansiwcs\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\aotansiwcs\\\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}"
    }
  ],
  "DocumentGroupContainers": [
@@ -34,7 +46,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 4,
          "SelectedChildIndex": 8,
          "Children": [
            {
              "$type": "Bookmark",
@@ -46,26 +58,77 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAEUAAAAAAAAAAAAvwFMAAABIAAAAAAAAAA==",
              "DocumentIndex": 1,
              "Title": "Dt_StationManager.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_StationManager.cs",
              "ViewState": "AgIAAHMAAAAAAAAAAAAAAHsAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:56:14.602Z",
              "WhenOpened": "2025-07-28T01:35:03.533Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAALUAAAAAAAAAAAAEwMgAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:31:58.229Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAADYAAAAAAAAAAAAgwEYAAAAfAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-28T01:29:44.585Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAG4AAAAAAAAAAAAAwIMAAACDAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-07-25T06:21:40.241Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "RequestInbound.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\Task\\RequestInbound.cs",
              "ViewState": "AgIAAFAAAAAAAAAAAADwvzAAAAChAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAGsAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T04:21:01.123Z",
              "EditorCaption": ""
@@ -78,33 +141,20 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAMQAAAAAAAAAAAAAwNsAAAA4AAAAAAAAAA==",
              "ViewState": "AgIAAC4EAAAAAAAAAAAuwEIEAAAsAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.559Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs*",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs*",
              "ViewState": "AgIAAAEBAAAAAAAAAAAuwA4BAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:03.579Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAJYAAAAAAAAAAAAQwLcAAAA1AAAAAAAAAA==",
              "ViewState": "AgIAAGgAAAAAAAAAAAAAAIIAAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:54:34.335Z",
              "EditorCaption": ""
@@ -117,7 +167,7 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ToolTip": "E:\\GET\\AoTanSiWCS\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\RGVJob\\CommonRGVJob.cs",
              "ViewState": "AgIAAKsAAAAAAAAAAADwv7IAAABDAAAAAAAAAA==",
              "ViewState": "AgIAAHIAAAAAAAAAAADwv4oAAAAiAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-07-24T03:47:47.688Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -198,6 +198,7 @@
        /// <param name="taskNum">任务号</param>
        /// <returns>返回处理结果</returns>
        WebResponseContent RollbackTaskStatusToLast(int taskNum);
        WebResponseContent text(int taskNum);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs
@@ -118,5 +118,23 @@
        [ExporterHeader(DisplayName = "RGV名称")]
        [SugarColumn(IsNullable = false, ColumnDescription = "RGV名称")]
        public string RGVName { get; set; }
        /// <summary>
        /// ä¸€å·RGV水平位置
        /// </summary>
        [ImporterHeader(Name = "一号RGV水平位置")]
        [ExporterHeader(DisplayName = "一号RGV水平位置")]
        [SugarColumn(IsNullable = false, ColumnDescription = "一号RGV水平位置")]
        public int LevelPointFist { get; set; }
        /// <summary>
        /// äºŒå·RGV水平位置
        /// </summary>
        [ImporterHeader(Name = "二号RGV水平位置")]
        [ExporterHeader(DisplayName = "二号RGV水平位置")]
        [SugarColumn(IsNullable = false, ColumnDescription = "二号RGV水平位置")]
        public int LevelPointSecond { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -131,7 +131,7 @@
            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
            _deviceCode = deviceCode;
            _deviceName = deviceName;
            CheckConnect();
            //CheckConnect();
        }
        #endregion
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
@@ -61,5 +62,13 @@
        {
            return Service.RollbackTaskStatusToLast(taskNum);
        }
        [HttpPost, HttpGet, Route("text")]
        public WebResponseContent text(int taskNum)
        {
            return Service.text(taskNum);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Error_CommonStackerStationCraneJob_09-28-47.log
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_Ò»ºÅRGV_09-19-28.log
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_Ò»ºÅ¶Ñ¶â»ú_09-19-28.log
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_¶þºÅRGV_15-17-02.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
【2025/7/24 15:17:02】
写入任务成功写入次数0写入任务【{"PickupLocation":15,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":38,"ReadCount":6}】
【2025/7/24 15:39:41】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":13,"TaskType":4,"Spare":0,"TaskNum":38,"ReadCount":6}】
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_¿âǰÊäËÍÏß_09-22-12.log
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-24/Info_¿âºóÊäËÍÏß_16-31-56.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
【2025/7/24 16:31:56】
【库后输送线】站台【2002】请求取货
【2025/7/24 16:32:06】
【库后输送线】站台【2002】请求取货
【2025/7/24 16:32:07】
【库后输送线】站台【2002】请求取货
【2025/7/24 16:32:08】
【库后输送线】站台【2002】请求取货
【2025/7/24 16:32:11】
【库后输送线】站台【2002】请求取货
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Error_CommonStackerStationCraneJob_08-58-43.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_Ò»ºÅRGV_08-58-43.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_Ò»ºÅ¶Ñ¶â»ú_08-58-43.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_ÈýºÅRGV_15-13-10.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1389 @@
【2025/7/25 15:13:10】
写入任务成功写入次数0写入任务【{"PickupLocation":12,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":46,"ReadCount":6}】
【2025/7/25 15:14:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:04】
【2025/7/25 15:14:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:06】
【2025/7/25 15:14:08】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":14,"TaskType":4,"Spare":0,"TaskNum":46,"ReadCount":6}】
【2025/7/25 15:14:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:08】
【2025/7/25 15:14:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:08】
【2025/7/25 15:14:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:09】
【2025/7/25 15:14:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:10】
【2025/7/25 15:14:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:11】
【2025/7/25 15:14:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:12】
【2025/7/25 15:14:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:13】
【2025/7/25 15:14:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:14】
【2025/7/25 15:14:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:15】
【2025/7/25 15:14:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:16】
【2025/7/25 15:14:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:17】
【2025/7/25 15:14:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:18】
【2025/7/25 15:14:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:19】
【2025/7/25 15:14:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:20】
【2025/7/25 15:14:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:21】
【2025/7/25 15:14:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:22】
【2025/7/25 15:14:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:23】
【2025/7/25 15:14:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:24】
【2025/7/25 15:14:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:25】
【2025/7/25 15:14:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:26】
【2025/7/25 15:14:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:27】
【2025/7/25 15:14:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:28】
【2025/7/25 15:14:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:29】
【2025/7/25 15:14:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:30】
【2025/7/25 15:14:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:31】
【2025/7/25 15:14:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:32】
【2025/7/25 15:14:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:33】
【2025/7/25 15:14:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:34】
【2025/7/25 15:14:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:35】
【2025/7/25 15:14:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:36】
【2025/7/25 15:14:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:37】
【2025/7/25 15:14:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:38】
【2025/7/25 15:14:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:39】
【2025/7/25 15:14:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:40】
【2025/7/25 15:14:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:41】
【2025/7/25 15:14:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:42】
【2025/7/25 15:14:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:43】
【2025/7/25 15:14:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:44】
【2025/7/25 15:14:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:45】
【2025/7/25 15:14:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:46】
【2025/7/25 15:14:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:47】
【2025/7/25 15:14:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:48】
【2025/7/25 15:14:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:49】
【2025/7/25 15:14:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:50】
【2025/7/25 15:14:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:51】
【2025/7/25 15:14:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:52】
【2025/7/25 15:14:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:53】
【2025/7/25 15:14:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:54】
【2025/7/25 15:14:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:55】
【2025/7/25 15:14:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:56】
【2025/7/25 15:14:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:57】
【2025/7/25 15:14:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:58】
【2025/7/25 15:14:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:14:59】
【2025/7/25 15:15:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:00】
【2025/7/25 15:15:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:01】
【2025/7/25 15:15:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:02】
【2025/7/25 15:15:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:03】
【2025/7/25 15:15:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:04】
【2025/7/25 15:15:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:05】
【2025/7/25 15:15:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:06】
【2025/7/25 15:15:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:07】
【2025/7/25 15:15:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:08】
【2025/7/25 15:15:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:09】
【2025/7/25 15:15:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:10】
【2025/7/25 15:15:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:11】
【2025/7/25 15:15:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:12】
【2025/7/25 15:15:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:13】
【2025/7/25 15:15:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:14】
【2025/7/25 15:15:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:16】
【2025/7/25 15:15:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:16】
【2025/7/25 15:15:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:17】
【2025/7/25 15:15:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:18】
【2025/7/25 15:15:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:19】
【2025/7/25 15:15:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:20】
【2025/7/25 15:15:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:21】
【2025/7/25 15:15:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:22】
【2025/7/25 15:15:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:23】
【2025/7/25 15:15:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:24】
【2025/7/25 15:15:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:25】
【2025/7/25 15:15:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:26】
【2025/7/25 15:15:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:27】
【2025/7/25 15:15:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:29】
【2025/7/25 15:15:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:29】
【2025/7/25 15:15:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:30】
【2025/7/25 15:15:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:31】
【2025/7/25 15:15:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:32】
【2025/7/25 15:15:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:33】
【2025/7/25 15:15:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:34】
【2025/7/25 15:15:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:35】
【2025/7/25 15:15:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:36】
【2025/7/25 15:15:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:37】
【2025/7/25 15:15:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:38】
【2025/7/25 15:15:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:39】
【2025/7/25 15:15:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:40】
【2025/7/25 15:15:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:41】
【2025/7/25 15:15:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:42】
【2025/7/25 15:15:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:43】
【2025/7/25 15:15:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:44】
【2025/7/25 15:15:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:45】
【2025/7/25 15:15:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:46】
【2025/7/25 15:15:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:47】
【2025/7/25 15:15:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:49】
【2025/7/25 15:15:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:49】
【2025/7/25 15:15:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:50】
【2025/7/25 15:15:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:51】
【2025/7/25 15:15:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:52】
【2025/7/25 15:15:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:53】
【2025/7/25 15:15:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:54】
【2025/7/25 15:15:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:55】
【2025/7/25 15:15:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:56】
【2025/7/25 15:15:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:57】
【2025/7/25 15:15:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:58】
【2025/7/25 15:15:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:15:59】
【2025/7/25 15:16:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:00】
【2025/7/25 15:16:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:01】
【2025/7/25 15:16:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:02】
【2025/7/25 15:16:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:03】
【2025/7/25 15:16:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:04】
【2025/7/25 15:16:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:05】
【2025/7/25 15:16:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:06】
【2025/7/25 15:16:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:07】
【2025/7/25 15:16:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:08】
【2025/7/25 15:16:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:09】
【2025/7/25 15:16:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:10】
【2025/7/25 15:16:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:11】
【2025/7/25 15:16:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:12】
【2025/7/25 15:16:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:13】
【2025/7/25 15:16:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:14】
【2025/7/25 15:16:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:15】
【2025/7/25 15:16:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:16】
【2025/7/25 15:16:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:17】
【2025/7/25 15:16:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:18】
【2025/7/25 15:16:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:19】
【2025/7/25 15:16:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:20】
【2025/7/25 15:16:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:21】
【2025/7/25 15:16:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:22】
【2025/7/25 15:16:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:23】
【2025/7/25 15:16:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:24】
【2025/7/25 15:16:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:25】
【2025/7/25 15:16:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:26】
【2025/7/25 15:16:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:27】
【2025/7/25 15:16:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:28】
【2025/7/25 15:16:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:29】
【2025/7/25 15:16:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:30】
【2025/7/25 15:16:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:31】
【2025/7/25 15:16:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:32】
【2025/7/25 15:16:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:33】
【2025/7/25 15:16:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:34】
【2025/7/25 15:16:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:35】
【2025/7/25 15:16:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:36】
【2025/7/25 15:16:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:37】
【2025/7/25 15:16:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:38】
【2025/7/25 15:16:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:39】
【2025/7/25 15:16:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:40】
【2025/7/25 15:16:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:41】
【2025/7/25 15:16:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:42】
【2025/7/25 15:16:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:43】
【2025/7/25 15:16:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:44】
【2025/7/25 15:16:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:45】
【2025/7/25 15:16:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:46】
【2025/7/25 15:16:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:47】
【2025/7/25 15:16:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:48】
【2025/7/25 15:16:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:49】
【2025/7/25 15:16:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:50】
【2025/7/25 15:16:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:51】
【2025/7/25 15:16:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:52】
【2025/7/25 15:16:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:53】
【2025/7/25 15:16:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:54】
【2025/7/25 15:16:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:55】
【2025/7/25 15:16:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:56】
【2025/7/25 15:16:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:57】
【2025/7/25 15:16:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:58】
【2025/7/25 15:16:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:16:59】
【2025/7/25 15:17:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:00】
【2025/7/25 15:17:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:01】
【2025/7/25 15:17:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:02】
【2025/7/25 15:17:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:03】
【2025/7/25 15:17:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:04】
【2025/7/25 15:17:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:05】
【2025/7/25 15:17:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:06】
【2025/7/25 15:17:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:07】
【2025/7/25 15:17:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:08】
【2025/7/25 15:17:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:09】
【2025/7/25 15:17:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:10】
【2025/7/25 15:17:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:11】
【2025/7/25 15:17:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:12】
【2025/7/25 15:17:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:13】
【2025/7/25 15:17:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:14】
【2025/7/25 15:17:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:15】
【2025/7/25 15:17:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:16】
【2025/7/25 15:17:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:17】
【2025/7/25 15:17:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:18】
【2025/7/25 15:17:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:19】
【2025/7/25 15:17:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:20】
【2025/7/25 15:17:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:21】
【2025/7/25 15:17:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:22】
【2025/7/25 15:17:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:23】
【2025/7/25 15:17:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:24】
【2025/7/25 15:17:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:25】
【2025/7/25 15:17:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:26】
【2025/7/25 15:17:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:27】
【2025/7/25 15:17:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:28】
【2025/7/25 15:17:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:29】
【2025/7/25 15:17:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:30】
【2025/7/25 15:17:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:31】
【2025/7/25 15:17:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:32】
【2025/7/25 15:17:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:33】
【2025/7/25 15:17:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:34】
【2025/7/25 15:17:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:35】
【2025/7/25 15:17:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:36】
【2025/7/25 15:17:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:37】
【2025/7/25 15:17:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:38】
【2025/7/25 15:17:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:39】
【2025/7/25 15:17:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:40】
【2025/7/25 15:17:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:41】
【2025/7/25 15:17:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:42】
【2025/7/25 15:17:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:43】
【2025/7/25 15:17:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:44】
【2025/7/25 15:17:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:45】
【2025/7/25 15:17:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:46】
【2025/7/25 15:17:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:47】
【2025/7/25 15:17:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:17:48】
【2025/7/25 15:19:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:17】
【2025/7/25 15:19:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:18】
【2025/7/25 15:19:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:19】
【2025/7/25 15:19:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:20】
【2025/7/25 15:19:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:21】
【2025/7/25 15:19:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:22】
【2025/7/25 15:19:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:23】
【2025/7/25 15:19:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:24】
【2025/7/25 15:19:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:25】
【2025/7/25 15:19:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:26】
【2025/7/25 15:19:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:27】
【2025/7/25 15:19:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:28】
【2025/7/25 15:19:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:29】
【2025/7/25 15:19:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:30】
【2025/7/25 15:19:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:31】
【2025/7/25 15:19:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:32】
【2025/7/25 15:19:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:33】
【2025/7/25 15:19:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:34】
【2025/7/25 15:19:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:35】
【2025/7/25 15:19:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:36】
【2025/7/25 15:19:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:37】
【2025/7/25 15:19:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:38】
【2025/7/25 15:19:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:39】
【2025/7/25 15:19:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:40】
【2025/7/25 15:19:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:41】
【2025/7/25 15:19:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:42】
【2025/7/25 15:19:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:43】
【2025/7/25 15:19:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:53】
【2025/7/25 15:19:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:54】
【2025/7/25 15:19:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:55】
【2025/7/25 15:19:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:56】
【2025/7/25 15:19:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:57】
【2025/7/25 15:19:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:58】
【2025/7/25 15:19:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:19:59】
【2025/7/25 15:20:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:00】
【2025/7/25 15:20:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:01】
【2025/7/25 15:20:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:02】
【2025/7/25 15:20:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:03】
【2025/7/25 15:20:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:04】
【2025/7/25 15:20:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:05】
【2025/7/25 15:20:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:06】
【2025/7/25 15:20:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:07】
【2025/7/25 15:20:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:08】
【2025/7/25 15:20:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:09】
【2025/7/25 15:20:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:10】
【2025/7/25 15:20:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:11】
【2025/7/25 15:20:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:12】
【2025/7/25 15:20:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:13】
【2025/7/25 15:20:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:14】
【2025/7/25 15:20:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:15】
【2025/7/25 15:20:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:16】
【2025/7/25 15:20:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:17】
【2025/7/25 15:20:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:18】
【2025/7/25 15:20:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:19】
【2025/7/25 15:20:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:20】
【2025/7/25 15:20:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:21】
【2025/7/25 15:20:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:22】
【2025/7/25 15:20:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:23】
【2025/7/25 15:20:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:24】
【2025/7/25 15:20:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:25】
【2025/7/25 15:20:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:26】
【2025/7/25 15:20:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:27】
【2025/7/25 15:20:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:28】
【2025/7/25 15:20:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:29】
【2025/7/25 15:20:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:30】
【2025/7/25 15:20:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:31】
【2025/7/25 15:20:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:32】
【2025/7/25 15:20:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:33】
【2025/7/25 15:20:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:34】
【2025/7/25 15:20:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:35】
【2025/7/25 15:20:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:36】
【2025/7/25 15:20:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:37】
【2025/7/25 15:20:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:38】
【2025/7/25 15:20:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:39】
【2025/7/25 15:20:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:40】
【2025/7/25 15:20:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:41】
【2025/7/25 15:20:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:42】
【2025/7/25 15:20:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:43】
【2025/7/25 15:20:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:44】
【2025/7/25 15:20:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:45】
【2025/7/25 15:20:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:46】
【2025/7/25 15:20:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:47】
【2025/7/25 15:20:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:48】
【2025/7/25 15:20:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:49】
【2025/7/25 15:20:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:50】
【2025/7/25 15:20:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:51】
【2025/7/25 15:20:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:52】
【2025/7/25 15:20:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:53】
【2025/7/25 15:20:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:54】
【2025/7/25 15:20:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:20:55】
【2025/7/25 15:22:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:05】
【2025/7/25 15:22:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:06】
【2025/7/25 15:22:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:07】
【2025/7/25 15:22:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:08】
【2025/7/25 15:22:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:09】
【2025/7/25 15:22:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:10】
【2025/7/25 15:22:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:11】
【2025/7/25 15:22:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:12】
【2025/7/25 15:22:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:13】
【2025/7/25 15:22:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:14】
【2025/7/25 15:22:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:15】
【2025/7/25 15:22:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:16】
【2025/7/25 15:22:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:17】
【2025/7/25 15:22:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:18】
【2025/7/25 15:22:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:19】
【2025/7/25 15:22:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:20】
【2025/7/25 15:22:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:21】
【2025/7/25 15:22:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:22】
【2025/7/25 15:22:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:23】
【2025/7/25 15:22:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:24】
【2025/7/25 15:22:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:25】
【2025/7/25 15:22:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:26】
【2025/7/25 15:22:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:27】
【2025/7/25 15:22:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:28】
【2025/7/25 15:22:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:29】
【2025/7/25 15:22:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:30】
【2025/7/25 15:22:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:31】
【2025/7/25 15:22:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:32】
【2025/7/25 15:22:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:33】
【2025/7/25 15:22:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:34】
【2025/7/25 15:22:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:35】
【2025/7/25 15:22:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:36】
【2025/7/25 15:22:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:37】
【2025/7/25 15:22:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:38】
【2025/7/25 15:22:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:39】
【2025/7/25 15:22:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:40】
【2025/7/25 15:22:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:41】
【2025/7/25 15:22:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:42】
【2025/7/25 15:22:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:43】
【2025/7/25 15:22:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:44】
【2025/7/25 15:22:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:45】
【2025/7/25 15:22:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:46】
【2025/7/25 15:22:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:47】
【2025/7/25 15:22:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:48】
【2025/7/25 15:22:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:49】
【2025/7/25 15:22:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:50】
【2025/7/25 15:22:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:51】
【2025/7/25 15:22:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:52】
【2025/7/25 15:22:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:53】
【2025/7/25 15:22:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:54】
【2025/7/25 15:22:55】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:55】
【2025/7/25 15:22:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:56】
【2025/7/25 15:22:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:57】
【2025/7/25 15:22:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:58】
【2025/7/25 15:22:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:22:59】
【2025/7/25 15:23:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:00】
【2025/7/25 15:23:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:01】
【2025/7/25 15:23:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:02】
【2025/7/25 15:23:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:03】
【2025/7/25 15:23:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:04】
【2025/7/25 15:23:05】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:05】
【2025/7/25 15:23:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:06】
【2025/7/25 15:23:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:07】
【2025/7/25 15:23:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:08】
【2025/7/25 15:23:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:09】
【2025/7/25 15:23:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:10】
【2025/7/25 15:23:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:11】
【2025/7/25 15:23:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:12】
【2025/7/25 15:23:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:13】
【2025/7/25 15:23:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:14】
【2025/7/25 15:23:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:15】
【2025/7/25 15:23:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:16】
【2025/7/25 15:23:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:17】
【2025/7/25 15:23:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:18】
【2025/7/25 15:23:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:19】
【2025/7/25 15:23:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:20】
【2025/7/25 15:23:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:21】
【2025/7/25 15:23:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:22】
【2025/7/25 15:23:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:23】
【2025/7/25 15:23:24】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:24】
【2025/7/25 15:23:25】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:25】
【2025/7/25 15:23:26】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:26】
【2025/7/25 15:23:27】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:27】
【2025/7/25 15:23:28】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:28】
【2025/7/25 15:23:29】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:29】
【2025/7/25 15:23:30】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:30】
【2025/7/25 15:23:31】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:31】
【2025/7/25 15:23:32】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:32】
【2025/7/25 15:23:33】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:33】
【2025/7/25 15:23:34】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:34】
【2025/7/25 15:23:35】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:35】
【2025/7/25 15:23:36】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:36】
【2025/7/25 15:23:37】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:37】
【2025/7/25 15:23:38】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:38】
【2025/7/25 15:23:39】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:39】
【2025/7/25 15:23:40】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:40】
【2025/7/25 15:23:41】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:41】
【2025/7/25 15:23:42】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:42】
【2025/7/25 15:23:43】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:43】
【2025/7/25 15:23:44】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:44】
【2025/7/25 15:23:45】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:45】
【2025/7/25 15:23:46】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:46】
【2025/7/25 15:23:47】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:47】
【2025/7/25 15:23:48】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:48】
【2025/7/25 15:23:49】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:49】
【2025/7/25 15:23:50】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:50】
【2025/7/25 15:23:51】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:51】
【2025/7/25 15:23:52】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:52】
【2025/7/25 15:23:53】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:53】
【2025/7/25 15:23:54】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:54】
【2025/7/25 15:23:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:56】
【2025/7/25 15:23:56】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:56】
【2025/7/25 15:23:57】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:57】
【2025/7/25 15:23:58】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:58】
【2025/7/25 15:23:59】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:23:59】
【2025/7/25 15:24:00】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:00】
【2025/7/25 15:24:01】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:01】
【2025/7/25 15:24:02】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:02】
【2025/7/25 15:24:03】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:03】
【2025/7/25 15:24:04】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:04】
【2025/7/25 15:24:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:06】
【2025/7/25 15:24:06】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:06】
【2025/7/25 15:24:07】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:07】
【2025/7/25 15:24:08】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:08】
【2025/7/25 15:24:09】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:09】
【2025/7/25 15:24:10】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:10】
【2025/7/25 15:24:11】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:11】
【2025/7/25 15:24:12】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:12】
【2025/7/25 15:24:13】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:13】
【2025/7/25 15:24:14】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:14】
【2025/7/25 15:24:15】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:15】
【2025/7/25 15:24:16】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:16】
【2025/7/25 15:24:17】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:17】
【2025/7/25 15:24:18】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:18】
【2025/7/25 15:24:19】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:19】
【2025/7/25 15:24:20】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:20】
【2025/7/25 15:24:21】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:21】
【2025/7/25 15:24:22】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:22】
【2025/7/25 15:24:23】
【三号RGV】任务完成,任务号:【46】时间【2025/7/25 15:24:23】
【2025/7/25 15:56:20】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":48,"ReadCount":6}】
【2025/7/25 15:56:22】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 15:58:08】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 16:01:41】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 16:04:05】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 16:07:38】
写入任务成功写入次数0写入任务【{"PickupLocation":13,"PutcargoLocation":0,"TaskType":3,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 16:10:34】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":13,"TaskType":4,"Spare":0,"TaskNum":47,"ReadCount":6}】
【2025/7/25 16:14:08】
写入任务成功写入次数0写入任务【{"PickupLocation":0,"PutcargoLocation":11,"TaskType":4,"Spare":0,"TaskNum":47,"ReadCount":6}】
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_¶þÂ¥ÊäËÍÏß_14-02-24.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-25/Info_¿âºóÊäËÍÏß_08-58-43.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/2025-07-27/Error_CommonStackerStationCraneJob_09-40-58.log
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250724/Éú³ÉÈÎÎñ_log20250724.log
@@ -32,3 +32,13 @@
{"Status":false,"Code":0,"Message":"未找到该托盘【04819】任务","Data":null,"DevMessage":null}
时间:2025/7/24 14:04:22
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 15:05:54
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:不能将值 NULL æ’入列 'RGVName',表 'WIDESEAWCS_OTS.dbo.Dt_Task';列不允许有 Null å€¼ã€‚INSERT å¤±è´¥ã€‚\r\n语句已终止。","Data":null,"DevMessage":null}
时间:2025/7/24 15:06:28
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 15:38:37
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:不能将值 NULL æ’入列 'RGVName',表 'WIDESEAWCS_OTS.dbo.Dt_Task';列不允许有 Null å€¼ã€‚INSERT å¤±è´¥ã€‚\r\n语句已终止。","Data":null,"DevMessage":null}
时间:2025/7/24 15:39:39
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/24 16:07:58
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log/20250725/Éú³ÉÈÎÎñ_log20250725.log
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
时间:2025/7/25 9:08:22
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/25 9:14:29
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:Object reference not set to an instance of an object.","Data":null,"DevMessage":null}
时间:2025/7/25 9:14:40
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:不能将值 NULL æ’入列 'RGVName',表 'WIDESEAWCS_OTS.dbo.Dt_Task';列不允许有 Null å€¼ã€‚INSERT å¤±è´¥ã€‚\r\n语句已终止。","Data":null,"DevMessage":null}
时间:2025/7/25 9:16:06
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/25 13:51:49
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:Object reference not set to an instance of an object.","Data":null,"DevMessage":null}
时间:2025/7/25 13:52:42
{"Status":false,"Code":0,"Message":"生成任务失败,错误信息:Object reference not set to an instance of an object.","Data":null,"DevMessage":null}
时间:2025/7/25 13:53:11
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/25 16:08:30
{"Status":false,"Code":0,"Message":"未找到该托盘【04819】任务","Data":null,"DevMessage":null}
时间:2025/7/25 16:10:32
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
时间:2025/7/25 16:14:05
{"Status":true,"Code":0,"Message":"成功","Data":null,"DevMessage":null}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Hub/ISimpleHub.cs
@@ -27,6 +27,13 @@
    Task StackerData(object context);
    /// <summary>
    /// å †åž›æœºæ•°æ®
    /// </summary>
    /// <param name="context"></param>
    /// <returns></returns>
    Task RGVData(object context);
    /// <summary>
    /// çº¿ä½“数据
    /// </summary>
    /// <param name="context"></param>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/INoticeService.cs
@@ -44,6 +44,15 @@
    Task StackerData(int? userId, List<string> clientIds, object message);
    /// <summary>
    /// å †åž›æœºæ•°æ®
    /// </summary>
    /// <param name="userId">用户ID</param>
    /// <param name="clientIds">clientId列表</param>
    /// <param name="message">通知内容</param>
    /// <returns></returns>
    Task RGVData(int? userId, List<string> clientIds, object message);
    /// <summary>
    /// çº¿ä½“数据
    /// </summary>
    /// <param name="userId">用户ID</param>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/Service/SignalrNoticeService.cs
@@ -53,6 +53,13 @@
    }
    /// <inheritdoc/>
    public async Task RGVData(int? userId, List<string> clientIds, object message)
    {
        //发送消息给用户
        await GetHubContext().Clients.Users(clientIds).RGVData(message);
    }
    /// <inheritdoc/>
    public async Task LineData(int? userId, List<string> clientIds, object message)
    {
        //发送消息给用户
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -106,96 +106,155 @@
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                    if (item.TaskType == "2")
                    {
                        string[] targetCodes = item.BeginPoint.Split("-");
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode==item.EndPoint);
                        if (stationManagerEnd == null)
                        if (Convert.ToInt32(item.EndPoint) > 1999 && Convert.ToInt32(item.EndPoint) < 3000)
                        {
                            return content.Error("未找到出库站台信息");
                        }
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == GetScCode(Convert.ToInt32(targetCodes[0])) && x.stationType == 2 && x.stationFloor == stationManagerEnd.stationFloor);
                        var RGVName = string.Empty;
                        if (stationManager.stationFloor == "1F")
                        {
                            var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "OneFloor").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList();
                            if (deviceCode != null && deviceCode.Count() > 0)
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.EndPoint);
                            if (stationManagerStart == null)
                            {
                                if (deviceCode.Contains("RGV01")&& deviceCode.Contains("RGV02"))
                                return content.Error("未找到出库站台信息");
                            }
                            Dt_Task taskIn = new Dt_Task()
                            {
                                TaskNum = BaseDal.GetTaskNo().Result,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                                TaskState = (int)TaskOutStatusEnum.OutNew,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = item.BeginPoint,
                                Roadway = stationManagerStart.Roadway,
                                NextAddress = item.EndPoint,
                                TargetAddress = item.EndPoint,
                                Floor = stationManagerStart.stationFloor,
                                RGVName = ""
                            };
                            BaseDal.AddData(taskIn);
                        }
                        else
                        {
                            string[] targetCodes = item.BeginPoint.Split("-");
                            Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.EndPoint);
                            if (stationManagerEnd == null)
                            {
                                return content.Error("未找到出库站台信息");
                            }
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == GetScCode(Convert.ToInt32(targetCodes[0])) && x.stationType == 2 && x.stationFloor == stationManagerEnd.stationFloor);
                            var RGVName = string.Empty;
                            if (stationManager.stationFloor == "1F")
                            {
                                var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "1F").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList();
                                if (deviceCode != null && deviceCode.Count() > 0)
                                {
                                    var RGVOne = BaseDal.QueryData(x => x.RGVName == "RGV01").ToList();
                                    var RGVTwo = BaseDal.QueryData(x => x.RGVName == "RGV02").ToList();
                                    if (RGVOne.Count > RGVTwo.Count)
                                    if (deviceCode.Contains("RGV01") && deviceCode.Contains("RGV02"))
                                    {
                                        RGVName = "RGV01";
                                        var RGVOne = BaseDal.QueryData(x => x.RGVName == "RGV01").ToList();
                                        var RGVTwo = BaseDal.QueryData(x => x.RGVName == "RGV02").ToList();
                                        if (RGVOne.Count > RGVTwo.Count)
                                        {
                                            RGVName = "RGV01";
                                        }
                                        else
                                        {
                                            RGVName = "RGV02";
                                        }
                                    }
                                    else
                                    {
                                        RGVName = "RGV02";
                                        RGVName = deviceCode[0];
                                    }
                                }
                                else
                                {
                                    RGVName = deviceCode[0];
                                    RGVName = "RGV01";
                                }
                            }
                            else
                            Dt_Task taskOut = new Dt_Task()
                            {
                                RGVName = "RGV01";
                            }
                                TaskNum = BaseDal.GetTaskNo().Result,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskOutboundTypeEnum.Outbound,
                                TaskState = (int)TaskOutStatusEnum.OutNew,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = item.BeginPoint,
                                Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                                NextAddress = stationManager.stationChildCode,
                                TargetAddress = item.EndPoint,
                                RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                                Floor = stationManager.stationFloor,
                            };
                            BaseDal.AddData(taskOut);
                        }
                        Dt_Task taskOut = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
                            WMSTaskNum=item.TaskId,
                            Grade = 1,
                            PalletCode = item.TPbarcode,
                            TaskType = (int)TaskOutboundTypeEnum.Outbound,
                            TaskState = (int)TaskOutStatusEnum.OutNew,
                            SourceAddress = item.BeginPoint,
                            CurrentAddress = item.BeginPoint,
                            Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                            NextAddress = stationManager.stationChildCode,
                            TargetAddress = item.EndPoint,
                            RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                            Floor= stationManager.stationFloor,
                        };
                        BaseDal.AddData(taskOut);
                    }
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
                    else if (item.TaskType == "1")
                    {
                        var task = BaseDal.QueryFirst(x => x.PalletCode == item.TPbarcode);
                        if (task != null)
                        if (Convert.ToInt32(item.BeginPoint) > 1999 && Convert.ToInt32(item.BeginPoint) < 3000)
                        {
                            task.Creater = "WMS";
                            task.Grade = 1;
                            task.PalletCode = item.TPbarcode;
                        task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                        task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish;
                        task.CurrentAddress = item.BeginPoint;
                        task.WMSTaskNum = item.TaskId;
                        task.TargetAddress = item.EndPoint;
                        string[] targetCodes = item.EndPoint.Split("-");
                        task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0]));
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3);
                        task.NextAddress = stationManager.stationChildCode;
                        BaseDal.UpdateData(task);
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.BeginPoint);
                            if (stationManagerStart == null)
                            {
                                return content.Error("未找到出库站台信息");
                            }
                            Dt_Task taskIn = new Dt_Task()
                            {
                                TaskNum = BaseDal.GetTaskNo().Result,
                                Creater = "WMS",
                                WMSTaskNum = item.TaskId,
                                Grade = 1,
                                PalletCode = item.TPbarcode,
                                TaskType = (int)TaskInboundTypeEnum.Inbound,
                                TaskState = (int)TaskInStatusEnum.Line_InFinish,
                                SourceAddress = item.BeginPoint,
                                CurrentAddress = stationManagerStart.stationChildCode,
                                Roadway = stationManagerStart.Roadway,
                                NextAddress = item.EndPoint,
                                TargetAddress = item.EndPoint,
                                Floor = stationManagerStart.stationFloor,
                                RGVName = ""
                            };
                            BaseDal.AddData(taskIn);
                        }
                        else
                        {
                            return content.Error($"未找到该托盘【{item.TPbarcode}】任务");
                            var task = BaseDal.QueryFirst(x => x.PalletCode == item.TPbarcode);
                            if (task != null)
                            {
                                task.Creater = "WMS";
                                task.Grade = 1;
                                task.PalletCode = item.TPbarcode;
                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
                                task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish;
                                task.CurrentAddress = item.BeginPoint;
                                task.WMSTaskNum = item.TaskId;
                                task.TargetAddress = item.EndPoint;
                                string[] targetCodes = item.EndPoint.Split("-");
                                task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0]));
                                Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor);
                                task.NextAddress = stationManager.stationChildCode;
                                BaseDal.UpdateData(task);
                            }
                            else
                            {
                                return content.Error($"未找到该托盘【{item.TPbarcode}】任务");
                            }
                        }
                    }
                    else if (item.TaskType == "3")
@@ -770,17 +829,37 @@
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                {
                    task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                    if (Convert.ToInt32(task.TargetAddress) > 1999 && Convert.ToInt32(task.TargetAddress) < 3000)
                    {
                        task.TaskState = (int)TaskOutStatusEnum.OutFinish; ;
                        task.ModifyDate = DateTime.Now;
                        task.Modifier = "System";
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2 && x.stationFloor == task.Floor);
                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                        task_Hty.TaskId = 0;
                    task.CurrentAddress = task.NextAddress;
                        BaseDal.DeleteData(task);
                        _taskHtyRepository.AddData(task_Hty);
                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                    }
                    else
                    {
                        task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                    task.NextAddress = stationManager.stationNextChildCode;
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2 && x.stationFloor == task.Floor);
                    BaseDal.UpdateData(task);
                        task.CurrentAddress = task.NextAddress;
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                        task.NextAddress = stationManager.stationNextChildCode;
                        BaseDal.UpdateData(task);
                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                    }
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                {
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                {
@@ -1002,5 +1081,14 @@
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
        public WebResponseContent text(int taskNum)
        {
            WebResponseContent content = new WebResponseContent();
            var result = _stationManagerRepository.Db.Queryable<Dt_StationManager>()
                .Where(t => SqlFunc.Abs(t.LevelPointFist - taskNum) <= 10)
                .ToList();
            return content.OK(data: result);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -17,6 +17,7 @@
using AutoMapper;
using HslCommunication;
using HslCommunication.Profinet.OpenProtocol;
using Newtonsoft.Json;
using Quartz;
using System.Reflection;
@@ -116,7 +117,6 @@
                        userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList();
                        userIds = tokenInfos.Select(x => x.UserId).ToList();
                    }
                    #endregion è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                    // å°†äº¤äº’信号转换为布尔数组
@@ -129,6 +129,7 @@
                        foreach (var item in deviceProtocolDetails)
                        {
                            int itemValue = Convert.ToInt32(item.ProtocalDetailValue);
                            _noticeService.LineData(userIds?.FirstOrDefault(), userTokenIds, new { station.stationChildCode,InStock= structs[itemValue] , Roadway =station.Roadway});
                            if (structs[itemValue] == true)
                            {
                                MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType);
@@ -234,6 +235,7 @@
                {
                    Thread.Sleep(1000);
                    _taskService.UpdateTaskStatusToNext(task);
                }
            }
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -28,7 +28,9 @@
                case 1:
                    await RequestTask(conveyorLine, command, childDeviceCode, stationManager);
                    break;
                case 9:
                    RequestWMSTask(conveyorLine, stationManager);
                    break;
                case 2:
                case 3:
                    RequestNextAddress(command, conveyorLine, stationManager, task);
@@ -48,13 +50,13 @@
        private async Task RequestTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, Dt_StationManager stationManager)
        {
            var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode);
            var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode && x.TaskState < (int)TaskInStatusEnum.RGV_InExecutingFinish && x.TaskState >= (int)TaskInStatusEnum.InNew);
            if (hasTask != null)
            {
                var log = $"【{conveyorLine._deviceName}】任务号:【{hasTask.TaskNum}】,托盘条码:【{hasTask.PalletCode}】已到达【{childDeviceCode}】输送线存在任务";
                ConsoleHelper.WriteWarningLine(log);
               await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
                WriteInfo(conveyorLine.DeviceName, log);
                return;
            }
@@ -91,21 +93,51 @@
            {
                RGVName = "RGV03";
            }
                Dt_Task task = new Dt_Task()
                {
                    TaskNum = _taskRepository.GetTaskNo().Result,
                    TaskType = (int)TaskInboundTypeEnum.Inbound,
                    TaskState = (int)TaskInStatusEnum.InNew,
                    SourceAddress = childDeviceCode,
                    Dispatchertime = DateTime.Now,
                    Grade = 1, // è®¾ç½®é»˜è®¤ä¼˜å…ˆçº§ä¸º1
                    Creater = "System",
                    Floor = stationManager.stationFloor,
                    RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                };
            Dt_Task task = new Dt_Task()
            {
                TaskNum = _taskRepository.GetTaskNo().Result,
                TaskType = (int)TaskInboundTypeEnum.Inbound,
                TaskState = (int)TaskInStatusEnum.InNew,
                SourceAddress = childDeviceCode,
                Dispatchertime = DateTime.Now,
                Grade = 1, // è®¾ç½®é»˜è®¤ä¼˜å…ˆçº§ä¸º1
                Creater = "System",
                Floor = stationManager.stationFloor,
                RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
            };
            _taskRepository.AddData(task);
        }
        private void RequestWMSTask(CommonConveyorLine conveyorLine,  Dt_StationManager stationManager)
        {
            var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationNextChildCode);
            if (Barcode == "")
            {
                conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), stationManager.stationChildCode);
            }
            var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode);
            if (task != null)
            {
            }
            else
            {
                //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue;
                //var keys = new Dictionary<string, object>()
                //{
                //    {"TPbarcode", Barcode},
                //    {"WhCode", "1001"},
                //    {"BeginPoint", stationManager.stationChildCode}
                //};
                //if (wmsBase == null || requestTask == null)
                //{
                //    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                //}
                //var wmsIpAddress = wmsBase + requestTask;
                //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result;
            }
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/CommonRGVJob.cs
@@ -116,20 +116,32 @@
                    }
                    var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
                    var userIds = tokenInfos?.Select(x => x.UserId).ToList();
                    string RGVAutoStatus(bool AutoStatus) => AutoStatus switch
                    {
                        true => "联机模式",
                        false => "单机模式",
                    };
                    string RGVWorkStatus(bool WorkStatus) => WorkStatus switch
                    {
                        true => "运行中",
                        false => "待机",
                    };
                    string RGVStatus(bool Status) => Status switch
                    {
                        true => "故障",
                        false => "正常",
                    };
                    object obj = new
                    {
                        Automatic = commonRGV.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Automatic),
                        Fault = commonRGV.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Fault),
                        Running = commonRGV.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Running),
                        //commonRGV.StackerCraneAutoStatusDes,
                        //commonRGV.StackerCraneWorkStatusDes,
                        //commonRGV.DeviceCode,
                        //commonRGV.DeviceName,
                        //commonRGV.CurrentTaskNum,
                        //commonRGV.LastTaskNum,
                        Automatic = RGVAutoStatus(commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Automatic)),
                        Fault = RGVStatus(commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Fault)),
                        Running = RGVWorkStatus(commonRGV.GetValue<RGVDBName, bool>(RGVDBName.Running)),
                        LevelPoint = commonRGV.GetValue<RGVDBName, int>(RGVDBName.LevelPoint),
                        CurrentTaskNum = commonRGV.GetValue<RGVDBName, short>(RGVDBName.RGVTaskNum),
                        commonRGV.DeviceCode,
                        commonRGV.DeviceName,
                    };
                    _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { commonRGV.DeviceName, data = obj });
                    _noticeService.RGVData(userIds?.FirstOrDefault(), userTokenIds, new { commonRGV.DeviceName, data = obj });
                    #endregion è°ƒç”¨äº‹ä»¶æ€»çº¿é€šçŸ¥å‰ç«¯
                }
@@ -146,15 +158,6 @@
        {
            if (commonRGV != null)
            {
                #region æ—¥å¿—记录
                ConsoleHelper.WriteColorLine($"【{commonRGV.DeviceName}】堆垛机作业状态:【】时间【{DateTime.Now}】", ConsoleColor.Magenta);
                string str = $"【{commonRGV.DeviceName}】任务完成,任务号:【{TaskNum}】时间【{DateTime.Now}】";
                WriteInfo(commonRGV.DeviceName, str);
                ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
                #endregion
                var task = _taskRepository.QueryFirst(x => x.TaskNum == TaskNum);
                if (task != null)
                {
@@ -167,12 +170,11 @@
                            if (device != null)
                            {
                                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                //var x = conveyorLine.Communicator.Read<string>("DB1103.16");
                                Thread.Sleep(100);
                                
                                var Barcode = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.ConveyorLineBarcode, stationManager.stationChildCode);
                                if (Barcode == null)
                                if (Barcode == null||Barcode=="")
                                {
                                    return;
                                }
@@ -184,7 +186,7 @@
                    {
                        if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting)
                        {
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress&&x.stationType==7);
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress && x.stationType == 7);
                            if (stationManager != null)
                            {
                                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RGVJob/RGVDBName.cs
@@ -37,5 +37,7 @@
        PutcargoLocation,
        TaskType,
        TaskNum,
        LevelPoint,
        CurrentTaskNum,
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -26,6 +26,8 @@
using WIDESEAWCS_Model.BasicInfo;
using WIDESEAWCS_Tasks.RGVJob;
using WIDESEAWCS_Tasks.ConveyorLineJob;
using WIDESEAWCS_TaskInfoRepository;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace WIDESEAWCS_Tasks
{
@@ -112,17 +114,32 @@
                    var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList();
                    var userIds = tokenInfos?.Select(x => x.UserId).ToList();
                    string StackerCraneAutoStatus(bool AutoStatus) => AutoStatus switch
                    {
                        true => "联机模式",
                        false => "单机模式",
                    };
                    string StackerCraneWorkStatus(bool WorkStatus) => WorkStatus switch
                    {
                        true => "运行中",
                        false => "待机",
                    };
                    string StackerCraneStatus(bool Status) => Status switch
                    {
                        true => "故障",
                        false => "正常",
                    };
                    object obj = new
                    {
                        Automatic = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Automatic),
                        Fault = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Fault),
                        Running = commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Running),
                        //commonStackerCrane.StackerCraneAutoStatusDes,
                        //commonStackerCrane.StackerCraneWorkStatusDes,
                        //commonStackerCrane.DeviceCode,
                        //commonStackerCrane.DeviceName,
                        //commonStackerCrane.CurrentTaskNum,
                        //commonStackerCrane.LastTaskNum,
                        Automatic = StackerCraneAutoStatus(commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Automatic)),
                        Fault = StackerCraneStatus(commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Fault)),
                        Running = StackerCraneWorkStatus(commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Running)),
                        CurrentColumn = Convert.ToInt32(commonStackerCrane.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.CurrentColumn)),
                        CurrentLayer = Convert.ToInt32(commonStackerCrane.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.CurrentLayer)),
                        LevelPoint = commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.LevelPoint),
                        CurrentTaskNum = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CurrentTaskNum),
                        commonStackerCrane.DeviceCode,
                        commonStackerCrane.DeviceName,
                    };
                    _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { commonStackerCrane.DeviceName, data = obj });
@@ -169,18 +186,37 @@
        {
            if (commonStackerCrane != null)
            {
                #region æ—¥å¿—记录
                ConsoleHelper.WriteColorLine($"【{commonStackerCrane.DeviceName}】堆垛机作业状态:【】时间【{DateTime.Now}】", ConsoleColor.Magenta);
                string str = $"【{commonStackerCrane.DeviceName}】任务完成,任务号:【{TaskNum}】时间【{DateTime.Now}】";
                WriteInfo(commonStackerCrane.DeviceName, str);
                ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
                #endregion
                var task = _taskRepository.QueryFirst(x => x.TaskNum == TaskNum);
                if (task != null)
                {
                    if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                    {
                        if (Convert.ToInt32(task.TargetAddress) > 1999 && Convert.ToInt32(task.TargetAddress) < 3000)
                        {
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.TargetAddress);
                            if (stationManager != null)
                            {
                                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC);
                                if (device != null)
                                {
                                    CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                                    var InteractiveSignal = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.InteractiveSignal, stationManager.stationChildCode);
                                    var structs = BitConverter.GetBytes(InteractiveSignal).ToArray().ToBoolArray();
                                    if (structs[2])
                                    {
                                        conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, Convert.ToInt16(stationManager.stationNextChildCode), stationManager.stationChildCode);
                                        Thread.Sleep(100);
                                        conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, Convert.ToInt16(task.TaskNum), stationManager.stationChildCode);
                                        Thread.Sleep(100);
                                        conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(2), stationManager.stationChildCode);
                                    }
                                }
                            }
                        }
                    }
                    var content = _taskService.StackCraneTaskCompleted(TaskNum);
                }
            }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs
@@ -126,5 +126,20 @@
        InStock,
        PickupLocation,
        PutcargoLocation,
        /// <summary>
        /// å½“前列
        /// </summary>
        CurrentColumn,
        /// <summary>
        /// å½“前层
        /// </summary>
        CurrentLayer,
        /// <summary>
        /// æ°´å¹³ç‚¹ä½
        /// </summary>
        LevelPoint,
    }
}