xiaojiao
4 天以前 5ce21dbcd0849adc3afcf28fffc8933ce717c380
物料绑定组盘,下发AGV任务
已添加12个文件
已修改13个文件
1801 ■■■■ 文件已修改
项目代码/PDA/pages/Inbound/Inbound.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSClient/src/extension/basicinfo/extend/materialInfos.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSClient/src/extension/basicinfo/materialInfo.js 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSClient/src/router/viewGird.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSClient/src/views/basicinfo/materialInfo.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/.vs/WIDESEAWCS_Server/v18/DocumentLayout.backup.json 417 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json 413 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoRepository/Dt_ContainerInfoRepository.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoRepository/Dt_MaterialInfoRepository.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoService/Dt_MaterialInfoService.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_DTO/AGV/AgvStatusUpdateDTO.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_DTO/PDA/ContainerbindingDTO.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoRepository/IDt_ContainerInfoRepository.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoRepository/IDt_MaterialInfoRepository.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoService/IDt_MaterialInfoService.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_ContainerInfo.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_MaterialInfo.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_MaterialInfo_Hty.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Server/Controllers/BasicInfo/Dt_MaterialInfoController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Server/Log/AGV任务下发/2026-04-28/任务下发接口260428.txt 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Tasks/TaskAcquisition/Baseconversion.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WIDESEA_WCSServer/WIDESEAWCS_Tasks/TaskAcquisition/TaskAcquisition_Back1_Job.cs 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/PDA/pages/Inbound/Inbound.vue
@@ -60,12 +60,16 @@
            </view> -->
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="零件编号:">
                        <uni-easyinput type="text" placeholder="请扫描零件号" ref='midInput' :focus="focus" v-model="materSn" @blur="inputChangebarcode" />
                    </uni-forms-item>
                    <uni-forms-item label="载具编号">
                        <uni-easyinput type="text" :focus="barcodefocus" @input="inputChangebarcode"
                        <uni-easyinput type="text" :focus="barcodefocus1"
                            v-model="VehicleNumber" placeholder="请输入载具编号" ref='midInput' />
                    </uni-forms-item>
                    <uni-forms-item label="零件编号:">
                        <uni-easyinput type="text" placeholder="请扫描零件号" ref='midInput' :focus="focus" v-model="materSn" />
                    <uni-forms-item label="车型信息">
                        <uni-easyinput type="text"
                            v-model="Carmodel" placeholder="自动获取车型(除开手动输入零件号)" ref='midInput' />
                    </uni-forms-item>
                    <uni-forms-item label="当前位置:">
                        <uni-easyinput type="text" placeholder="请输入备料点位" ref='midInput' :focus="focus2" v-model="Position"/>
@@ -103,6 +107,7 @@
                istrue: false,
                addressFocus:false,
                barcodefocus: false,
                barcodefocus1:false,
                range: [],
                rangethree:[],
                group: [{
@@ -125,6 +130,7 @@
                items: ['物料绑定', '物料解绑'],
                current: 0,
                Position: '', //容器所在位置
                Carmodel:'', // è½¦åž‹
            }
        },
        onLoad(res) {
@@ -214,7 +220,10 @@
                //     })
                //     return;
                // }
                if (this.VehicleNumber.length <= 0 || this.materSn.length <= 0 || this.Position.length <= 0) {
                if (this.VehicleNumber.length <= 0
                || this.materSn.length <= 0
                || this.Position.length <= 0
                || this.Carmodel.length <= 0) {
                    this.$refs.luToast.show({
                        title: "数据输入不完整!",
                        type: "error"
@@ -225,7 +234,8 @@
                var param = {
                    "VehicleNumber": this.VehicleNumber,
                    "materSn":this.materSn,
                    "Position": this.Position
                    "Position": this.Position,
                    "Carmodel":this.Carmodel
                }
                console.log(param)
                
@@ -235,9 +245,7 @@
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode2 = "";
                        this.group = [];
                        this.barcodefocus = false;
                        this.Init();
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
@@ -246,7 +254,12 @@
                    }
                })
            },
            Init(){
                this.VehicleNumber = '';
                this.materSn = '';
                this.Position = '';
                this.Carmodel = '';
            },
            SolvePlate() {
                if (this.PalletCode3.length <= 0) {
                    this.$refs.luToast.show({
@@ -276,9 +289,9 @@
            },
            updateFocus() {
                this.$nextTick(() => {
                    this.materSn = '';
                    if (!this.focus) {
                        this.focus = true;
                    this.VehicleNumber = '';
                    if (!this.barcodefocus1) {
                        this.barcodefocus1 = true;
                    }
                });
            },
@@ -327,6 +340,21 @@
                })
            },
            inputChangebarcode() {
                var materSns = this.materSn;
                console.log(materSns)
                this.barcodefocus1 = true;
                if(materSns.indexOf(',') === -1){
                    return;
                }
                // 1. å¤„理零件号,取最后一段
                this.materSn = materSns.split(',').pop();
                // // 2. å¤„理车型,取第一段
                this.Carmodel = materSns.split(',')[0];
                // 3. å…³é”®ï¼šè¿”回处理后的值,uni-easyinput会自动更新v-model和界面
                console.log('处理后的零件号:', this.materSn);
                // this.$nextTick(() => {
                //     this.$u.post('/api/BoxingInfo/GetPalletCodeInfo?palletCode=' + this.PalletCode2, "").then(
                //         res => {
@@ -340,7 +368,7 @@
                //             }
                //         })
                // })
                setTimeout(this.updateFocus, 200);
            },
            removeScanItem(orderNo) {
                this.group = this.group.filter(item => item.orderNo !== orderNo);
ÏîÄ¿´úÂë/WIDESEA_WCSClient/src/extension/basicinfo/extend/materialInfos.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
<template>
  <div>
    <vol-box
      v-model="showDetialBox"
      :lazy="true"
      width="1200px"
      :padding="15"
      title="完整路由查看"
    >
      <div
        style="margin-bottom: 1%"
        v-for="(item, index) in routerDatas"
        :key="index"
      >
        <el-row>
          <el-col>
            <div
              class="grid-content right-text"
              style="font-weight: bold; font-size: 18px"
            >
              <span>{{ item.type == "Out" ? "出库路由" : "入库路由" }}</span>
            </div>
          </el-col>
        </el-row>
        <el-steps :active="item.routes.length" align-center simple>
          <el-step
            v-for="itemRouter in item.routes"
            :key="itemRouter"
            :title="itemRouter"
            icon=""
          ></el-step>
        </el-steps>
      </div>
    </vol-box>
  </div>
</template>
  <script>
import VolBox from "@/components/basic/VolBox.vue";
export default {
  components: { VolBox },
  data() {
    return {
      active: 0,
      showDetialBox: false,
      routerDatas: [],
    };
  },
  methods: {
    open() {
      this.showDetialBox = true;
      this.getData();
    },
    getData() {
      this.http.post("/api/Router/GetAllWholeRouters", {}, true).then((x) => {
        if (!x.status) return this.$message.error(x.message);
        this.routerDatas = x.data;
      });
    },
  },
  created() {},
};
</script>
  <style scoped>
.el-col {
  border-radius: 4px;
}
.grid-content {
  border-radius: 4px;
  min-height: 36px;
}
.content-text {
  display: flex;
  align-items: center;
  justify-content: center;
}
.left-text {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
</style>
  <style>
.el-table .warning-row {
  background: #fcf1e2;
}
.el-table .success-row {
  background: #f0f9eb;
}
.el-table .error-row {
  background: #fde2e2;
}
</style>
ÏîÄ¿´úÂë/WIDESEA_WCSClient/src/extension/basicinfo/materialInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
import gridBody from './extend/materialInfos.vue';
let extension = {
  components: {
    //查询界面扩展组件
    gridHeader: "",
    gridBody: gridBody,
    gridFooter: "",
    //新建、编辑弹出框扩展组件
    modelHeader: "",
    modelBody: "",
    modelFooter: "",
  },
  tableAction: "", //指定某张表的权限(这里填写表名,默认不用填写)
  buttons: { view: [], box: [], detail: [] }, //扩展的按钮
  methods: {
    //下面这些方法可以保留也可以删除
    onInit() {
      // console.log(this.detailOptions.buttons);
      // console.log(this.$refs.detail)
      var detailImport = this.detailOptions.buttons.find(
        (item) => item.value == "import"
      );
      if (detailImport) {
        detailImport.onClick = function () {
          this.$refs.gridBody.open();
        };
      }
      // this.buttons.unshift({
      //   //也可以用push或者splice方法来修改buttons数组
      //   name: "开启服务", //按钮名称
      //   icon: "el-icon-document", //按钮图标vue2版本见iview文档icon,vue3版本见element ui文档icon(注意不是element puls文档)
      //   type: "primary", //按钮样式vue2版本见iview文档button,vue3版本见element ui文档button
      //   onClick: function () {
      //     this.$Message.success("开启服务");
      //   },
      // });
    },
    onInited() {
      //框架初始化配置后
      //如果要配置明细表,在此方法操作
      // this.detailOptions.columns.forEach(column=>{ });
      // console.log(this)
    },
    searchBefore(param) {
      //界面查询前,可以给param.wheres添加查询参数
      //返回false,则不会执行查询
      return true;
    },
    searchAfter(result) {
      //查询后,result返回的查询数据,可以在显示到表格前处理表格的值
      return true;
    },
    addBefore(formData) {
      //新建保存前formData为对象,包括明细表,可以给给表单设置值,自己输出看formData的值
      return true;
    },
    updateBefore(formData) {
      //编辑保存前formData为对象,包括明细表、删除行的Id
      return true;
    },
    rowClick({ row, column, event }) {
      //查询界面点击行事件
      // this.$refs.table.$refs.table.toggleRowSelection(row); //单击行时选中当前行;
    },
    modelOpenAfter(row) {
      //点击编辑、新建按钮弹出框后,可以在此处写逻辑,如,从后台获取数据
      //(1)判断是编辑还是新建操作: this.currentAction=='Add';
      //(2)给弹出框设置默认值
      //(3)this.editFormFields.字段='xxx';
      //如果需要给下拉框设置默认值,请遍历this.editFormOptions找到字段配置对应data属性的key值
      //看不懂就把输出看:console.log(this.editFormOptions)
    },
    updated() {
      //console.log(this.$refs)
      this.$nextTick(() => {
        if (this.$refs.upload_excel) {
          alert("点击了上传按钮");
          this.$refs.upload_excel.upload = function () {
            console.log("点击了上传按钮");
          };
        }
        // alert(1)
      });
    },
  },
};
export default extension;
ÏîÄ¿´úÂë/WIDESEA_WCSClient/src/router/viewGird.js
@@ -62,6 +62,10 @@
    path: '/router',
    name: 'router',
    component: () => import('@/views/basicinfo/router.vue')
  },{
    path: '/materialInfo',
    name: 'Dt_MaterialInfo',
    component: () => import('@/views/basicinfo/materialInfo.vue')
  }
]
ÏîÄ¿´úÂë/WIDESEA_WCSClient/src/views/basicinfo/materialInfo.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
<template>
  <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
    :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
    :table="table" :extend="extend">
  </view-grid>
</template>
<script>
import extend from "@/extension/basicinfo/materialInfo.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
  setup() {
    const table = ref({
      key: "id",
      footer: "Foots",
      cnName: "物料绑定管理",
      name: "Dt_MaterialInfo",
      url: "/materialInfo/",
      sortName: "CreateDate",
    });
    const editFormFields = ref({
      taskNum: "",
      palletCode: "",
      roadway: "",
      taskType: "",
      taskState: "",
      wMSId: "",
      sourceAddress: "",
      targetAddress: "",
      currentAddress: "",
      nextAddress: "",
      creater: "",
      createDate: "",
      grade: "",
    });
    const editFormOptions = ref([[{ title: "优先级", field: "grade", type: "int" },]]);
    const searchFormFields = ref({
      taskNum: "",
      palletCode: "",
      roadway: "",
      sourceAddress: "",
      targetAddress: "",
      currentAddress: "",
      nextAddress: "",
      creater: "",
      createDate: "",
    });
    const searchFormOptions = ref([
      [
        { title: "任务号", field: "taskNum", type: "int" },
        { title: "托盘编号", field: "palletCode", type: "text" },
        {
          title: "任务类型",
          field: "taskType",
          type: "selectList",
          dataKey: "taskType",
          data: [],
        },
        {
          title: "任务状态",
          field: "taskState",
          type: "selectList",
          dataKey: "taskState",
          data: [],
        },
      ],
      [
        { title: "起始地址", field: "sourceAddress", type: "text" },
        { title: "目标地址", field: "targetAddress", type: "text" },
        { title: "当前位置", field: "currentAddress", type: "text" },
        { title: "下一位置", field: "nextAddress", type: "text" },
      ],
      [
        { title: "巷道号", field: "roadway", type: "text" },
        { title: "创建人", field: "creater", type: "text" },
        { title: "创建时间", field: "createDate", type: "datetime" },
      ],
    ]);
    const columns = ref([
      {
        field: "id",
        title: "id",
        type: "int",
        width: 90,
        hidden: true,
        readonly: true,
        require: true,
        align: "left",
      },
      {
        field: "ContainerCode",
        title: "容器编号",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "Position",
        title: "容器当前位置",
        type: "string",
        width: 160,
        align: "left",
      },
      {
        field: "EndPosition",
        title: "容器出场位置",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "IsNew",
        title: "是否属于新增容器",
        type: "int",
        width: 120,
        align: "left",
        bind: { key: "taskType", data: [] },
      },
      {
        field: "IsBind",
        title: "是否绑定",
        type: "int",
        width: 150,
        align: "left",
        bind: { key: "taskState", data: [] },
      },
      {
        field: "Carmodel",
        title: "车型",
        type: "string",
        width: 120,
        align: "left",
      },
      {
        field: "createDate",
        title: "创建时间",
        type: "datetime",
        width: 150,
        align: "left",
      },
      {
        field: "modifyDate",
        title: "修改时间",
        type: "datetime",
        width: 160,
        align: "left",
      },
      {
        field: "creater",
        title: "创建人",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "modifier",
        title: "修改人",
        type: "string",
        width: 90,
        align: "left",
      },
      {
        field: "remark",
        title: "备注",
        type: "string",
        width: 100,
        align: "left",
        hidden: true,
      },
    ]);
    const detail = ref({
      cnName: "",
      table: "",
      columns: [],
      sortName: "",
      key: "",
    });
    return {
      table,
      extend,
      editFormFields,
      editFormOptions,
      searchFormFields,
      searchFormOptions,
      columns,
      detail,
    };
  },
});
</script>
ÏîÄ¿´úÂë/WIDESEA_WCSServer/.vs/WIDESEAWCS_Server/v18/DocumentLayout.backup.json
@@ -7,96 +7,12 @@
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_back1_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_back2_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_back2_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\pda\\containerbindingdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\pda\\containerbindingdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_materialinfo.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_materialinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_containerinfo.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_containerinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_materialinfo_hty.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_materialinfo_hty.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvresponsecontent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvresponsecontent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvstatusupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvstatusupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\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:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvtasksenddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvtasksenddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_front_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_front_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_inventory.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_inventory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_apiinfo.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_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_itaskinfoservice\\itaskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.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\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -106,11 +22,37 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 1,
          "SelectedChildIndex": 3,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "Dt_Task.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ViewState": "AgIAADgAAAAAAAAAAAAgwF0AAAAjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-28T02:21:47.364Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "CommonAGVJob.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ViewState": "AgIAAFMAAAAAAAAAAAAQwGgAAAA6AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-28T01:58:09.73Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
@@ -120,308 +62,9 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ViewState": "AgIAABwAAAAAAAAAAAAYwC4AAAA0AAAAAAAAAA==",
              "ViewState": "AgIAAEIAAAAAAAAAAAAgwFQAAABbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:42:49.651Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TaskAcquisition_Back2_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAACEAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:26:57.909Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "ModbusTcpCommunicator.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ViewState": "AgIAAGYBAAAAAAAAAAASwHsBAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T02:02:47.844Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "ContainerbindingDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAswAsAAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T07:19:52.018Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "DeviceInfoService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ViewState": "AgIAADIAAAAAAAAAAAA6wEQAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T03:10:13.71Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAADkAAAAAAAAAAADwv1AAAAA4AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T03:08:18.301Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "Dt_ContainerInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "ViewState": "AgIAAE8AAAAAAAAAAAAkwBkAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:54:47.438Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "Dt_MaterialInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "ViewState": "AgIAACoAAAAAAAAAAAAowBwAAAA/AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:18:36.224Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "AGVController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAACkAAAAAAAAAAAAlwDYAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:50:37.27Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "CommonAGVJob.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAmwEYAAAA6AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:26:07.202Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "Dt_MaterialInfo_Hty.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T01:32:42.302Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "AgvResponseContent.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "ViewState": "AgIAAAMAAAAAAAAAAADwvwoAAAAHAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T07:20:01.193Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "InvokeAGVService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ViewState": "AgIAABkAAAAAAAAAAAAEwCwAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:44:23.538Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "AgvStatusUpdateDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "ViewState": "AgIAABAAAAAAAAAAAAASwB0AAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:43:59.412Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAFEBAAAAAAAAAAApwHEBAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T09:00:16.674Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAF8AAAAAAAAAAAAhwGsAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:57:16.185Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "AgvTaskSendDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "ViewState": "AgIAAJoAAAAAAAAAAAAMwFoAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:14:39.689Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskAcquisition_Front_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "ViewState": "AgIAAA8AAAAAAAAAAADwvxsAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:43:08.852Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "Dt_Inventory.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAAAEIAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:32:41.14Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:46:55.561Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "Dt_ApiInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAADwvxQAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:32:52.522Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "ITaskExecuteDetailService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAswB4AAAANAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T09:11:29.912Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAADwvxcAAAAgAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:51:05.266Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAA8AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-04-20T02:10:58.594Z",
              "EditorCaption": ""
            }
          ]
ÏîÄ¿´úÂë/WIDESEA_WCSServer/.vs/WIDESEAWCS_Server/v18/DocumentLayout.json
@@ -3,100 +3,16 @@
  "WorkspaceRootPath": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_back1_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_back1_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_back2_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_back2_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\pda\\containerbindingdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\pda\\containerbindingdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_materialinfo.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_materialinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_containerinfo.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_containerinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_materialinfo_hty.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_materialinfo_hty.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_back1_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_back1_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvresponsecontent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvresponsecontent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\invokeagvservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvstatusupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvstatusupdatedto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "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:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\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:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_dto\\agv\\agvtasksenddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\agv\\agvtasksenddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_tasks\\taskacquisition\\taskacquisition_front_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\taskacquisition\\taskacquisition_front_job.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_inventory.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_inventory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\basicinfo\\dt_apiinfo.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_apiinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_itaskinfoservice\\itaskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\controllers\\task\\taskexecutedetailcontroller.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\\taskexecutedetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\bjagv\\beijingbeiqiagv\\\u9879\u76EE\u4EE3\u7801\\widesea_wcsserver\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -106,7 +22,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 1,
          "SelectedChildIndex": 2,
          "Children": [
            {
              "$type": "Bookmark",
@@ -114,314 +30,41 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "TaskAcquisition_Back1_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ViewState": "AgIAAB8AAAAAAAAAAAAcwDsAAABIAAAAAAAAAA==",
              "DocumentIndex": 2,
              "Title": "Dt_Task.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ViewState": "AgIAADgAAAAAAAAAAAAgwF0AAAAjAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:42:49.651Z",
              "WhenOpened": "2026-04-28T02:21:47.364Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "TaskAcquisition_Back2_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back2_Job.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAACEAAAAIAAAAAAAAAA==",
              "DocumentIndex": 0,
              "Title": "CommonAGVJob.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs*",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs*",
              "ViewState": "AgIAAFEAAAAAAAAAAAAgwGMAAABGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:26:57.909Z",
              "WhenOpened": "2026-04-28T01:58:09.73Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "ModbusTcpCommunicator.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ViewState": "AgIAAGYBAAAAAAAAAAASwHsBAAAdAAAAAAAAAA==",
              "Title": "TaskAcquisition_Back1_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Back1_Job.cs",
              "ViewState": "AgIAAB0AAAAAAAAAAAAQwFQAAABbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T02:02:47.844Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "ContainerbindingDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\PDA\\ContainerbindingDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAswAsAAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T07:19:52.018Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "DeviceInfoService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "ViewState": "AgIAADIAAAAAAAAAAAA6wEQAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T03:10:13.71Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAADkAAAAAAAAAAADwv1AAAAA4AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-23T03:08:18.301Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "Dt_ContainerInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ContainerInfo.cs",
              "ViewState": "AgIAAE8AAAAAAAAAAAAkwBkAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:54:47.438Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "Dt_MaterialInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo.cs",
              "ViewState": "AgIAACoAAAAAAAAAAAAowBwAAAA/AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:18:36.224Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "AGVController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
              "ViewState": "AgIAACkAAAAAAAAAAAAlwDYAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:50:37.27Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "CommonAGVJob.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAAmwEYAAAA6AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:26:07.202Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "Dt_MaterialInfo_Hty.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_MaterialInfo_Hty.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T01:32:42.302Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "AgvResponseContent.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvResponseContent.cs",
              "ViewState": "AgIAAAMAAAAAAAAAAADwvwoAAAAHAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T07:20:01.193Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "InvokeAGVService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\InvokeAGVService.cs",
              "ViewState": "AgIAABkAAAAAAAAAAAAEwCwAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:44:23.538Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "AgvStatusUpdateDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvStatusUpdateDTO.cs",
              "ViewState": "AgIAABAAAAAAAAAAAAASwB0AAAAWAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:43:59.412Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAFEBAAAAAAAAAAApwHEBAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T09:00:16.674Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "ITaskService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
              "ViewState": "AgIAAF8AAAAAAAAAAAAhwGsAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:57:16.185Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "AgvTaskSendDTO.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\AGV\\AgvTaskSendDTO.cs",
              "ViewState": "AgIAAJoAAAAAAAAAAAAMwFoAAAAVAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:14:39.689Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskAcquisition_Front_Job.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\TaskAcquisition\\TaskAcquisition_Front_Job.cs",
              "ViewState": "AgIAAA8AAAAAAAAAAADwvxsAAAAbAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-22T02:43:08.852Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "Dt_Inventory.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_Inventory.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAAAEIAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:32:41.14Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:46:55.561Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "Dt_ApiInfo.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\BasicInfo\\Dt_ApiInfo.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAADwvxQAAAAQAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T07:32:52.522Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "ITaskExecuteDetailService.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskExecuteDetailService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAswB4AAAANAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T09:11:29.912Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "TaskExecuteDetailController.cs",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskExecuteDetailController.cs",
              "ViewState": "AgIAAAkAAAAAAAAAAADwvxcAAAAgAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2026-04-20T08:51:05.266Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\BJAGV\\BeiJingBeiQiAGV\\\u9879\u76EE\u4EE3\u7801\\WIDESEA_WCSServer\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAA8AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2026-04-20T02:10:58.594Z",
              "WhenOpened": "2026-04-22T02:42:49.651Z",
              "EditorCaption": ""
            }
          ]
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoRepository/Dt_ContainerInfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoRepository
{
    public class Dt_ContainerInfoRepository : RepositoryBase<Dt_ContainerInfo>, IDt_ContainerInfoRepository
    {
        public Dt_ContainerInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoRepository/Dt_MaterialInfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoRepository
{
    public class Dt_MaterialInfoRepository : RepositoryBase<Dt_MaterialInfo>, IDt_MaterialInfoRepository
    {
        public Dt_MaterialInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
        {
        }
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_BasicInfoService/Dt_MaterialInfoService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.PDA;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
{
    public class Dt_MaterialInfoService : ServiceBase<Dt_MaterialInfo, IDt_MaterialInfoRepository>, IDt_MaterialInfoService
    {
        private readonly IDt_ContainerInfoRepository _ContainerInfoRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        public Dt_MaterialInfoService(IDt_MaterialInfoRepository BaseDal, IDt_ContainerInfoRepository dt_ContainerInfoRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
        {
            _ContainerInfoRepository = dt_ContainerInfoRepository;
            _unitOfWorkManage = unitOfWorkManage;
        }
        /// <summary>
        /// æ–°å¢žç»„盘信息
        /// </summary>
        /// <param name="containerbindingDTO"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public async Task<WebResponseContent>  ContainerbindingAsync([FromBody] ContainerbindingDTO containerbindingDTO)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                _unitOfWorkManage.BeginTran();
                Dt_MaterialInfo dt_MaterialInfo = await BaseDal.QueryFirstAsync(x => x.ContainerCode == containerbindingDTO.VehicleNumber);
                if (dt_MaterialInfo != null) return content.Error("当前容器已绑定 è¯·å‹¿é‡å¤æäº¤");
                dt_MaterialInfo = await BaseDal.QueryFirstAsync(x => x.MaterialName == containerbindingDTO.materSn);
                if (dt_MaterialInfo != null) return content.Error("当前零件号已存在 è¯·å‹¿é‡å¤æäº¤");
                dt_MaterialInfo = new Dt_MaterialInfo();
                dt_MaterialInfo.MaterialName = containerbindingDTO.materSn;
                dt_MaterialInfo.ContainerCode = containerbindingDTO.VehicleNumber;
                dt_MaterialInfo.Position = containerbindingDTO.Position;
                dt_MaterialInfo.Carmodel = containerbindingDTO.Carmodel;
                string s = App.User.UserName;
                await BaseDal.AddDataAsync(dt_MaterialInfo);
                // 2. æ‰§è¡Œä¸€å®šä¼šæŠ¥é”™çš„代码:除以零
                //int a = 1;
                //int b = 0;
                //int result = a / b;  // è¿™é‡Œä¼šæŠ›å‡º DivideByZeroException
                Dt_ContainerInfo containerInfo = await _ContainerInfoRepository.QueryFirstAsync(x => x.ContainerCode == containerbindingDTO.VehicleNumber);
                if (containerInfo == null)
                {
                    containerInfo = new Dt_ContainerInfo();
                    containerInfo.RequestId = Guid.NewGuid().ToString().Replace("-", "");
                    containerInfo.ContainerCode = containerbindingDTO.VehicleNumber;
                    await _ContainerInfoRepository.AddDataAsync(containerInfo);
                }
                _unitOfWorkManage.CommitTran();
                return content.OK();
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content.Error(ex.Message);
                throw;
            }
        }
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_DTO/AGV/AgvStatusUpdateDTO.cs
@@ -35,8 +35,8 @@
        /// <summary>
        ///作业当前状态<br/>
        ///开始移动:MOVE_BEGIN<br/>
        ///料 ç®± å– æ–™ å®Œ æˆ:PICKER_RECEIVE<br/>
        ///料 ç®± ä¸‹ æ–™ å®Œ æˆ:PICKER_SEND<br/>
        ///货架 å– æ–™ å®Œ æˆ:PICKER_RECEIVE<br/>
        ///货架 ä¸‹ æ–™ å®Œ æˆ:PICKER_SEND<br/>
        ///等待放行:WAITFEEDBACK<br/>
        ///任务完成:COMPLETED<br/>
        ///任务取消完成:CANCELED<br/>
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_DTO/PDA/ContainerbindingDTO.cs
@@ -23,6 +23,10 @@
        /// å½“前点位
        /// </summary>
        public string Position {  get; set; }
        /// <summary>
        /// è½¦åž‹
        /// </summary>
        public string Carmodel { get; set; }
    }
    /// <summary>
    /// å®¹å™¨è§£ç»‘DTO
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoRepository/IDt_ContainerInfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_IBasicInfoRepository
{
    public interface IDt_ContainerInfoRepository : IRepository<Dt_ContainerInfo>
    {
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoRepository/IDt_MaterialInfoRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_IBasicInfoRepository
{
    public interface IDt_MaterialInfoRepository : IRepository<Dt_MaterialInfo>
    {
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_IBasicInfoService/IDt_MaterialInfoService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_DTO.PDA;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_IBasicInfoService
{
    public interface IDt_MaterialInfoService : IService<Dt_MaterialInfo>
    {
        /// <summary>
        /// æ–°å¢žç»„盘信息
        /// </summary>
        /// <returns></returns>
        public Task<WebResponseContent> ContainerbindingAsync([FromBody] ContainerbindingDTO containerbindingDTO);
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_ContainerInfo.cs
@@ -26,14 +26,8 @@
        /// <summary>
        /// å®¹å™¨ç±»åž‹
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "容器类型",DefaultValue = "RACK")]
        public string ContainerType { get; set; }
        /// <summary>
        /// å®¹å™¨æ¨¡åž‹ç¼–码
        /// </summary>
        //[SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "容器模型编码")]
        //public string ContainerModelCode { get; set; }
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "容器类型", DefaultValue = "RACK")]
        public string ContainerType { get; set; } = "RACK";
        /// <summary>
        /// å®¹å™¨ç¼–号
@@ -42,6 +36,12 @@
        public string ContainerCode { get; set; }
        /// <summary>
        /// å®¹å™¨æ¨¡åž‹ç¼–码
        /// </summary>
        //[SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "容器模型编码")]
        //public string ContainerModelCode { get; set; }
        /// <summary>
        /// å®¹å™¨å…¥åœºè§’度
        /// </summary>
        //[SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "容器入场角度")]
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_MaterialInfo.cs
@@ -18,7 +18,7 @@
        public int Id { get; set; }
        /// <summary>
        /// ç‰©æ–™åç§°
        /// ç‰©æ–™åç§° é›¶ä»¶å·
        /// </summary>
        [SugarColumn(Length = 100, ColumnDescription = "物料名称")]
        public string MaterialName { get; set; }
@@ -51,7 +51,19 @@
        /// å®¹å™¨æ˜¯å¦ç»‘定
        /// </summary>
        [SugarColumn(ColumnDescription = "容器是否绑定", DefaultValue = "1")]
        public bool IsBind { get; set; }
        public bool IsBind { get; set; } = true;
        /// <summary>
        /// è½¦åž‹
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "车型")]
        public string Carmodel { get; set; }
        /// <summary>
        /// åŒºåŸŸ
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "区域")]
        public string Region { get; set; }
        /// <summary>
        /// å¤‡ç”¨å­—段1
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/BasicInfo/Dt_MaterialInfo_Hty.cs
@@ -42,6 +42,18 @@
        public string EndPosition { get; set; }
        /// <summary>
        /// è½¦åž‹
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "车型")]
        public string Carmodel { get; set; }
        /// <summary>
        /// åŒºåŸŸ
        /// </summary>
        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "区域")]
        public string Region { get; set; }
        /// <summary>
        /// æ˜¯å¦æ–°å¢žå¢žå®¹å™¨
        /// </summary>
        [SugarColumn(ColumnDescription = "是否属于新增容器", DefaultValue = "0")]
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -43,10 +43,10 @@
        [ImporterHeader(Name = "任务号")]
        [ExporterHeader(DisplayName = "任务号")]
        [SugarColumn(IsNullable = true, ColumnDescription = "任务号")]
        public int TaskNum { get; set; }
        public int TaskNum { get; set; } = 0;
        /// <summary>
        /// æ‰˜ç›˜ç¼–号
        /// æ‰˜ç›˜/容器 ç¼–号
        /// </summary>
        [ImporterHeader(Name = "托盘编号")]
        [ExporterHeader(DisplayName = "托盘编号")]
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Server/Controllers/BasicInfo/Dt_MaterialInfoController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_Server.Controllers.BasicInfo
{
    [Route("api/Dt_MaterialInfo")]
    [ApiController]
    public class Dt_MaterialInfoController : ApiBaseController<IDt_MaterialInfoService, Dt_MaterialInfo>
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        public Dt_MaterialInfoController(IDt_MaterialInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
        {
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Server/Controllers/PDA/PDAController.cs
@@ -2,11 +2,14 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_DTO.Agv;
using WIDESEAWCS_DTO.PDA;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Repository;
namespace WIDESEAWCS_Server.Controllers.PDA
@@ -19,20 +22,27 @@
        private readonly ITaskService _taskService;
        private readonly ITaskRepository _taskRepository;
        private readonly IRouterRepository _routerRepository;
        private readonly IDt_MaterialInfoRepository _MaterialInfoRepository;
        private readonly IDt_ContainerInfoRepository _ContainerInfoRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        private readonly IDt_MaterialInfoService _IDt_MaterialInfoService;
        public PDAController(IDt_StationManagerRepository stationMangerRepository, ITaskService taskService, ITaskRepository taskRepository, IRouterRepository routerRepository)
        public PDAController(IDt_StationManagerRepository stationMangerRepository, ITaskService taskService, ITaskRepository taskRepository, IRouterRepository routerRepository, IDt_MaterialInfoRepository materialInfoRepository, IDt_ContainerInfoRepository containerInfoRepository, IDt_MaterialInfoService iDt_MaterialInfoService)
        {
            _stationMangerRepository = stationMangerRepository;
            _taskService = taskService;
            _taskRepository = taskRepository;
            _routerRepository = routerRepository;
            _MaterialInfoRepository = materialInfoRepository;
            _ContainerInfoRepository = containerInfoRepository;
            _IDt_MaterialInfoService = iDt_MaterialInfoService;
        }
        [HttpPost, HttpGet, Route("ContainerbindingAsync"), AllowAnonymous]
        public async Task<WebResponseContent> ContainerbindingAsync([FromBody] ContainerbindingDTO  containerbindingDTO)
        {
            WebResponseContent content = new WebResponseContent();
            return content.OK();
           return await _IDt_MaterialInfoService.ContainerbindingAsync(containerbindingDTO);
        }
    }
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Server/Log/AGVÈÎÎñÏ·¢/2026-04-28/ÈÎÎñÏ·¢½Ó¿Ú260428.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
2026/4/28 10:34:43.209
添加任务
"任务:[{\"TaskId\":2,\"TaskNum\":0,\"PalletCode\":\"8001\",\"Roadway\":\"1\",\"TaskType\":400,\"TaskState\":400,\"SourceAddress\":\"1001\",\"TargetAddress\":\"2001\",\"CurrentAddress\":\"1001\",\"NextAddress\":\"2001\",\"ExceptionMessage\":null,\"Grade\":2,\"Dispatchertime\":null,\"Remark\":null,\"AGVSign\":null,\"Creater\":\"System\",\"CreateDate\":\"2026-04-28T09:54:50.8\",\"Modifier\":null,\"ModifyDate\":null}]"
-------------------------------
2026/4/28 10:36:56.400
添加任务
"任务:[{\"TaskId\":2,\"TaskNum\":0,\"PalletCode\":\"8001\",\"Roadway\":\"1\",\"TaskType\":400,\"TaskState\":400,\"SourceAddress\":\"1001\",\"TargetAddress\":\"2001\",\"CurrentAddress\":\"1001\",\"NextAddress\":\"2001\",\"ExceptionMessage\":null,\"Grade\":2,\"Dispatchertime\":null,\"Remark\":null,\"AGVSign\":null,\"Creater\":\"System\",\"CreateDate\":\"2026-04-28T09:54:50.8\",\"Modifier\":null,\"ModifyDate\":null}]"
-------------------------------
2026/4/28 10:39:03.295
添加任务
"任务:[{\"TaskId\":2,\"TaskNum\":0,\"PalletCode\":\"8001\",\"Roadway\":\"1\",\"TaskType\":400,\"TaskState\":400,\"SourceAddress\":\"1001\",\"TargetAddress\":\"2001\",\"CurrentAddress\":\"1001\",\"NextAddress\":\"2001\",\"ExceptionMessage\":\"未找到任务号$2起始点1001位置信息\",\"Grade\":2,\"Dispatchertime\":null,\"Remark\":null,\"AGVSign\":null,\"Creater\":\"System\",\"CreateDate\":\"2026-04-28T09:54:50.8\",\"Modifier\":\"System\",\"ModifyDate\":\"2026-04-28T10:37:13.597\"}]"
-------------------------------
2026/4/28 10:42:18.106
添加任务
"任务:[{\"TaskId\":2,\"TaskNum\":0,\"PalletCode\":\"8001\",\"Roadway\":\"1\",\"TaskType\":400,\"TaskState\":400,\"SourceAddress\":\"1001\",\"TargetAddress\":\"2001\",\"CurrentAddress\":\"1001\",\"NextAddress\":\"2001\",\"ExceptionMessage\":\"未找到任务号$2起始点1001位置信息\",\"Grade\":2,\"Dispatchertime\":null,\"Remark\":null,\"AGVSign\":null,\"Creater\":\"System\",\"CreateDate\":\"2026-04-28T09:54:50.8\",\"Modifier\":\"System\",\"ModifyDate\":\"2026-04-28T10:37:13.597\"}]"
-------------------------------
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs
@@ -9,6 +9,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.Log;
@@ -35,7 +36,7 @@
        private readonly ITaskService _taskService;
        private readonly ISys_ConfigService _sys_ConfigService;
        private readonly IDt_StationManagerRepository _stationManagerRepository;
        public CommonAGVJob(ITaskRepository taskRepository,ITaskService taskService,ISys_ConfigService configService,IDt_StationManagerRepository stationManagerRepository)
        public CommonAGVJob(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
        {
            _taskRepository = taskRepository;
            _taskService = taskService;
@@ -45,76 +46,70 @@
        public Task Execute(IJobExecutionContext context)
        {
            var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt())).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
            var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryNew)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
            #region ä»»åŠ¡ä¸‹å‘
            if (newTasks.Count > 0)
            {
                WriteLog.Write_Log("AGV任务下发", "任务下发接口", "添加任务", $"任务:{newTasks.ToJson()}");
                try
                foreach (var task in newTasks)
                {
                    AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
                    try
                    {
                        MissionData = new List<MissionDataItem>()
                    };
                    string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
                        AgvTaskSendDTO agvTaskSend = new AgvTaskSendDTO()
                        {
                            MissionData = new List<MissionDataItem>()
                        };
                        string taskGroupId = Guid.NewGuid().ToString().Replace("-", "");
                    foreach (var task in newTasks)
                    {
                        //获取目标点货位
                        //Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.CurrentAddress);
                        //获取拣选出库站台
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.NextAddress);
                        // èŽ·å–èµ·å§‹ç«™å°
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.SourceAddress);
                        // èŽ·å–ç›®çš„ç«™å°
                        Dt_StationManager finalmission = _stationManagerRepository.QueryFirst(x => x.stationLocation == task.TargetAddress);
                        if (stationManagerEnd == null) throw new Exception($"未找到任务号${task.TaskNum}目标点{task.NextAddress}位置信息");
                        if (stationManagerEnd == null) throw new Exception($"未找到任务号${task.TaskId}起始点{task.SourceAddress}位置信息");
                        if (finalmission == null) throw new Exception($"未找到任务号${task.TaskId}目标点{task.TargetAddress}位置信息");
                        agvTaskSend.RequestId = taskGroupId;
                        agvTaskSend.MissionCode = task.TaskNum.ToString();
                        agvTaskSend.MissionCode = task.TaskId.ToString();
                        agvTaskSend.ViewBoardType = "W01";
                        //货架子搬运任务
                        MissionDataItem missionDataItem = new MissionDataItem()
                        MissionDataItem Startingmission = new MissionDataItem() // èµ·ç‚¹
                        {
                            Sequence = task.TaskNum,
                            Sequence = 1,
                            Position = stationManagerEnd.stationLocation,
                            //BinCode = task.PalletCode,
                            //StartPosition = stationManagerStart.stationLocation,
                            //EndPosition = stationManagerEnd.stationLocation,
                            //TakeActionConfirm = false,
                            //TakeActionInform = false,
                            //PutActionConfirm = true,
                            //PutActionInform = true,
                        };
                        agvTaskSend.MissionData.Add(missionDataItem);
                    }
                    if (newTasks.OrderByDescending(x => x.Grade).FirstOrDefault()?.Grade == 0)
                    {
                        agvTaskSend.Priority = 99;
                    }
                    else
                    {
                        agvTaskSend.Priority = 99 - newTasks.OrderByDescending(x => x.Grade).FirstOrDefault().Grade;
                    }
                    //发送AGV任务
                    WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
                    if (!content.Status)
                        throw new Exception(content.Message);
                    newTasks.ForEach(x =>
                    {
                        x.Dispatchertime = DateTime.Now;
                        x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryExecuting.ObjToInt();
                    });
                    _taskService.UpdateData(newTasks);
                    Thread.Sleep(500);
                }
                catch (Exception ex)
                {
                    newTasks.ForEach(x =>
                    {
                        x.TaskState = TaskAGVCarryStatusEnum.AGV_CarryException.ObjToInt();
                        x.ExceptionMessage = ex.Message;
                    });
                    _taskService.UpdateData(newTasks);
                }
                        MissionDataItem Finalmission = new MissionDataItem() // ç»ˆç‚¹
                        {
                            Sequence = 2,
                            Position = finalmission.stationLocation,
                        };
                        agvTaskSend.MissionData.Add(Startingmission);
                        agvTaskSend.MissionData.Add(Finalmission);
                        if (task.Grade == 0)
                        {
                            agvTaskSend.Priority = 99;
                        }
                        else
                        {
                            agvTaskSend.Priority = 99 - task.Grade;
                        }
                        //发送AGV任务
                        WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
                        if (!content.Status)
                            throw new Exception(content.Message);
                        task.Dispatchertime = DateTime.Now;
                        task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryExecuting;
                        _taskService.UpdateData(newTasks);
                        Thread.Sleep(500);
                    }
                    catch (Exception ex)
                    {
                        task.TaskState = (int)TaskAGVCarryStatusEnum.AGV_CarryException;
                        task.ExceptionMessage = ex.Message;
                        _taskService.UpdateData(newTasks);
                    }
                }
            }
            #endregion
            return Task.CompletedTask;
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Tasks/TaskAcquisition/Baseconversion.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WIDESEAWCS_Tasks.TaskAcquisition
{
    public class Baseconversion
    {
        /// <summary>
        /// 10进制转16进制
        /// </summary>
        /// <returns></returns>
        public string TenthTurn16(byte[] bytes)
        {
            try
            {
                string originalDecimalStr = Encoding.ASCII.GetString(bytes).TrimEnd('\0');
                // ä¸‹é¢è¿™ä¸€æ®µå°±æ˜¯ä½ è¦çš„:转 16 è¿›åˆ¶
                ulong number = ulong.Parse(originalDecimalStr);  // è½¬æˆæ•°å­—
                string hexStr = number.ToString("X");            // è½¬å¤§å†™16进制
                return hexStr;
            }
            catch (Exception)
            {
                return "";
                throw;
            }
        }
        /// <summary>
        /// 16进制转10进制
        /// </summary>
        /// <returns></returns>
        public string SixteenTurns10()
        {
            return "";
        }
    }
}
ÏîÄ¿´úÂë/WIDESEA_WCSServer/WIDESEAWCS_Tasks/TaskAcquisition/TaskAcquisition_Back1_Job.cs
@@ -1,15 +1,23 @@
using Quartz;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using Quartz;
using SixLabors.ImageSharp;
using SqlSugar.Extensions;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_IBasicInfoRepository;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_Tasks.TaskAcquisition;
namespace WIDESEAWCS_Tasks
{
@@ -24,36 +32,108 @@
        private readonly ITaskService _taskService;
        private readonly ISys_ConfigService _sys_ConfigService;
        private readonly IDt_StationManagerRepository _stationManagerRepository;
        public TaskAcquisition_Back1_Job(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository)
        private readonly IDt_MaterialInfoRepository _IDt_MaterialInfoRepository;
        public TaskAcquisition_Back1_Job(ITaskRepository taskRepository, ITaskService taskService, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_MaterialInfoRepository IDt_MaterialInfoRepository)
        {
            _taskRepository = taskRepository;
            _taskService = taskService;
            _sys_ConfigService = configService;
            _stationManagerRepository = stationManagerRepository;
            _IDt_MaterialInfoRepository = IDt_MaterialInfoRepository;
        }
        public Task Execute(IJobExecutionContext context)
        {
            string ip = "127.0.0.1";
            int port = 502;
            string name = "后底板1";
            ModbusTcp modbusTcp = new ModbusTcp(ip, port, name);
            string Region = "后底板1";
            ModbusTcp modbusTcp = new ModbusTcp(ip, port, Region);
            Baseconversion baseconversion = new Baseconversion();
            modbusTcp.Connect();
            //var a = modbusTcp.Read("40002", 20);
            //string barcode = Encoding.UTF8.GetString(a).Replace("\0", "").Replace("\\0", "");
            // è¯»å–指定的地址读到10进制的ascii码转成16进制
            byte[] rawBytes = modbusTcp.Read("10", 20);
            string originalDecimalStr = Encoding.ASCII.GetString(rawBytes).TrimEnd('\0');
            Console.WriteLine($"读取到的原始十进制字符串:{originalDecimalStr}");
            // ä¸‹é¢è¿™ä¸€æ®µå°±æ˜¯ä½ è¦çš„:转 16 è¿›åˆ¶
            ulong number = ulong.Parse(originalDecimalStr);  // è½¬æˆæ•°å­—
            string hexStr = number.ToString("X");            // è½¬å¤§å†™16进制
            Console.WriteLine("转换成16进制:" + hexStr);
            Dictionary<int, int> Signal = new Dictionary<int, int>() { [10] = 2, [30] = 3, [50] = 4, [70] = 5 };
            Dictionary<int, int> FeedingPoint = new Dictionary<int, int>() { [10] = 2001, [30] = 2002, [50] = 2003, [70] = 2004 }; // å«æ–™çš„点位 ç»ˆç‚¹ä½ç½®
            try
            {
                for (int i = 10; i < 90; i += 20)
                {
                    byte[] SignalNumber = modbusTcp.Read(Signal[i].ToString(), 1); // ä¿¡å· 1:叫料 2:拉出空框
                    if (SignalNumber[1] == 1)
                    {
                        byte[] PartNumber = modbusTcp.Read(i.ToString(), 20); // è¯»å–零件号
                        if (PartNumber[1] == 0) continue;
                        string Ku1_Value = baseconversion.TenthTurn16(PartNumber);
                        if (Ku1_Value != "" && Ku1_Value != null)
                        {
                            // ç­‰åŠŸèƒ½æµ‹è¯•å®Œï¼Œè¿™é‡Œè¦åšæ—¥å¿—è®°å½•
                            Console.WriteLine(Ku1_Value);
                            // æ‰¾å¯¹åº”的零件号是否已经绑定(组盘)
                            Dt_MaterialInfo dt_MaterialInfo = _IDt_MaterialInfoRepository.QueryFirst(x => x.MaterialName == Ku1_Value);
                            if (dt_MaterialInfo != null && dt_MaterialInfo.IsBind && dt_MaterialInfo.EndPosition == null)
                            {
                                Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.PalletCode == dt_MaterialInfo.ContainerCode);
                                if (dt_Task != null) continue; //证明有当前任务
                                dt_Task = new Dt_Task();
                                dt_Task.PalletCode = dt_MaterialInfo.ContainerCode;
                                dt_Task.SourceAddress = dt_MaterialInfo.Position; // å½“前位置
                                dt_Task.TargetAddress = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                dt_Task.Grade = 2;
                                dt_Task.TaskState = TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt();
                                dt_Task.TaskType = TaskAGVCarryTypeEnum.Carry.ObjToInt();
                                dt_Task.Roadway = (Signal[i] - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                                dt_Task.CurrentAddress = dt_MaterialInfo.Position; // å½“前位置
                                dt_Task.NextAddress = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                dt_MaterialInfo.EndPosition = FeedingPoint[i].ToString(); // ç»ˆç‚¹ä½ç½®
                                _taskRepository.AddData(dt_Task);
                                _IDt_MaterialInfoRepository.UpdateData(dt_MaterialInfo);
                            }
                            // å¦‚果没绑定则不生成任务 å¦‚果查找到对应的零件号绑定了 åˆ™ç”Ÿæˆä¸€æ¡ä»»åŠ¡æ•°æ®
                        }
                    }
                    if (SignalNumber[1] == 2) // è¡¨ç¤ºæ‹‰å‡ºç©ºæ¡†
                    {
                        Dictionary<int, int> Endpointposition = new Dictionary<int, int>() { [10] = 3001, [20] = 3002, [30] = 3003, [40] = 3004 }; // å«æ–™çš„点位 ç»ˆç‚¹ä½ç½®
                        Dt_Task dt_Task = _taskRepository.QueryFirst(x => x.SourceAddress == FeedingPoint[i].ToString() && x.TaskType == (int)TaskAGVCarryTypeEnum.CarryEmpty);
                        if (dt_Task != null) continue;
                        dt_Task = new Dt_Task();
                        dt_Task.PalletCode = "空框子";
                        dt_Task.SourceAddress = FeedingPoint[i].ToString();
                        dt_Task.TargetAddress = Endpointposition[i].ToString();
                        dt_Task.Grade = 2;
                        dt_Task.TaskState = TaskAGVCarryStatusEnum.AGV_CarryNew.ObjToInt();
                        dt_Task.TaskType = TaskAGVCarryTypeEnum.CarryEmpty.ObjToInt();
                        dt_Task.Roadway = (Signal[i] - 1).ToString(); // åº“1 å«æ–™é‚£å°±æ˜¯1巷道
                        dt_Task.CurrentAddress = FeedingPoint[i].ToString(); // å½“前位置
                        dt_Task.NextAddress = Endpointposition[i].ToString(); // ç»ˆç‚¹ä½ç½®
                        _taskRepository.AddData(dt_Task);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            // 16进制转成10进制
            // 2. 16进制 â†’ è½¬å›žåè¿›åˆ¶ï¼ˆä½ è¦çš„功能)
            ulong decimalResult = Convert.ToUInt64(hexStr, 16);
            ulong decimalResult = Convert.ToUInt64("123", 16);
            Console.WriteLine("16进制转回十进制:" + decimalResult);
            // å†™å…¥
            bool flag = modbusTcp.Write("30", decimalResult.ToString());
            modbusTcp.Disconnect();