huangxiaoqiang
2025-11-29 f9e8a2d52fe52fb2389892a46c12d4d262ee9aaf
增加提升机可进行一次进俩托物料出入库
已添加4个文件
已修改25个文件
748 ■■■■ 文件已修改
项目代码/PDA/common/config.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/common/http.interceptor.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/task/Inbound.vue 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/api/buttons.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/api/http.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/WMS/WMSTaskDTO.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_ProductionOutboundOrderService.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/PDA/common/config.js
@@ -126,6 +126,16 @@
            text: "二楼AGVB5-G5缓存区"
        }
    ],
    AcrossFloor: [
        {
            value: "5",
            text: "二楼AGVB4-G4缓存区"
        },
        {
            value: "6",
            text: "二楼AGVB5-G5缓存区"
        }
    ],
    OutArea: [
        {
            value: "2",
ÏîÄ¿´úÂë/PDA/common/http.interceptor.js
@@ -1,6 +1,6 @@
// let baseUrl = 'http://127.0.0.1:5000'
let baseUrl = 'http://127.0.0.1:5000'
// let baseUrl = 'http://10.31.3.252:5000'
let baseUrl = 'http://10.31.3.241:5000'
// let baseUrl = 'http://10.31.3.241:5000'
const install = (Vue, vm) => {
    // æ­¤ä¸ºè‡ªå®šä¹‰é…ç½®å‚数,具体参数见上方说明
ÏîÄ¿´úÂë/PDA/pages/task/Inbound.vue
@@ -13,17 +13,12 @@
                        <uni-easyinput type="text" :focus="addressFocus" v-model="SourceAddress" placeholder="请输入入库起点"
                            ref='midInput' />
                    </uni-forms-item>
                    <!-- <uni-forms-item label="入库终点">
                        <uni-easyinput type="text" :focus="istrue" v-model="TargetAddress" placeholder="请输入入库终点"
                            ref='midInput' />
                    </uni-forms-item> -->
                    <uni-forms-item label="终点区域">
                        <uni-data-select :focus="!istrue" v-model="AreaId" :localdata="range"
                            placeholder="请输选择入库终点区域"></uni-data-select>
                    </uni-forms-item>
                </uni-forms>
                <button @click="InboundTask" type="primary" size="default" style="margin-top: 2%;">入库</button>
            </view>
        </view>
        <view v-show="current === 1">
@@ -75,6 +70,25 @@
                <button @click="SolvePlate" type="primary" size="default" style="margin-top: 2%;">解盘</button>
            </view>
        </view>
        <view v-show="current === 3">
            <view style="padding: 5%;">
                <uni-forms label-width="120">
                    <uni-forms-item label="托盘编码">
                        <uni-easyinput type="text" :focus="barcodeFocus" v-model="PalletCode3" placeholder="请输入托盘编码"
                            ref='midInput' @input="Changebarcode()"/>
                    </uni-forms-item>
                    <uni-forms-item label="入库起点">
                        <uni-easyinput type="text" :focus="addressFocus" v-model="SourceAddress3" placeholder="请输入入库起点"
                            ref='midInput' />
                    </uni-forms-item>
                    <uni-forms-item label="终点区域">
                        <uni-data-select :focus="!istrue" v-model="acrossFloor" :localdata="rangethree"
                            placeholder="请输选择入库终点区域"></uni-data-select>
                    </uni-forms-item>
                </uni-forms>
                <button @click="SendTask" type="primary" size="default" style="margin-top: 2%;">发送任务</button>
            </view>
        </view>
        <u-toast ref="luToast" />
    </view>
</template>
@@ -93,8 +107,10 @@
                addressFocus:false,
                barcodefocus: false,
                range: [],
                rangethree:[],
                group: [],
                AreaId: 0,
                acrossFloor:0,
                quantity: "",
                SourceAddress: "",
                TargetAddress: "",
@@ -102,12 +118,13 @@
                PalletCode2: "",
                PalletCode3: "",
                materSn: "",
                items: ['入库', '组盘', '解盘'],
                items: ['入库', '组盘', '解盘','双托跨楼层'],
                current: 0
            }
        },
        onLoad(res) {
            this.range = config.AreaId;
            this.rangethree = config.AcrossFloor;
        },
        methods: {
            onClickItem(e) {
@@ -152,6 +169,38 @@
                    }
                })
            },
            SendTask() {
                if (this.PalletCode3.length <= 0 && this.SourceAddress3.length) {
                    this.$refs.luToast.show({
                        title: "托盘编码跟绑定货位不能为空",
                        type: "error"
                    })
                    return;
                }
                var param = {
                    "PalletCode": this.PalletCode3,
                    "Position": this.SourceAddress3,
                    "AreaId": this.acrossFloor,
                    "DoubleTray":1,
                }
                this.$u.post('/api/Task/RequestInboundTaskAsync', param).then(res => {
                    if (res.status) {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "success"
                        })
                        this.PalletCode3 = "";
                        this.SourceAddress3 = "";
                        this.acrossFloor = "";
                        this.istrue = false;
                    } else {
                        this.$refs.luToast.show({
                            title: res.message,
                            type: "error"
                        })
                    }
                })
            },
            GroupPlate() {
                if (this.PalletCode2.length <= 0 && this.InBoundOrder.length) {
                    this.$refs.luToast.show({
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
@@ -3,6 +3,10 @@
  "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -15,12 +19,12 @@
      "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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -38,11 +42,24 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 6,
          "SelectedChildIndex": 3,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 4,
              "Title": "Dt_Task.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ViewState": "AgIAAJ4AAAAAAAAAAADwv7IAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T03:39:13.34Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
@@ -55,7 +72,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 7,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
@@ -63,24 +80,24 @@
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAAAMAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-13T02:24:58.44Z",
              "EditorCaption": ""
              "WhenOpened": "2025-11-13T02:24:58.44Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 0,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAACEAAABaAAAAAAAAAA==",
              "ViewState": "AgIAAE8CAAAAAAAAAAAUwFECAAA1AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-09-25T03:21:17.498Z"
              "WhenOpened": "2025-09-25T03:21:17.498Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
@@ -92,7 +109,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 5,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
@@ -104,26 +121,26 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 2,
              "Title": "CommonAGVJob.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ViewState": "AgIAAMsAAAAAAAAAAAAjwNwAAAAMAAAAAAAAAA==",
              "ViewState": "AgIAAGQAAAAAAAAAAAAjwLoAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-10-09T05:11:29.775Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 1,
              "Title": "AGVSignal.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "ViewState": "AgIAADYAAAAAAAAAAAAUwFUAAAAiAAAAAAAAAA==",
              "ViewState": "AgIAAKEAAAAAAAAAAAAjwLIAAAAYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-10-13T01:17:34.312Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,12 +3,12 @@
  "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agv\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agv\\commonagvjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -17,6 +17,10 @@
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\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}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -38,8 +42,21 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 2,
          "SelectedChildIndex": 7,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "Dt_Task.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
              "ViewState": "AgIAAJ4AAAAAAAAAAADwv7IAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T03:39:13.34Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
@@ -50,11 +67,12 @@
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvw4AAAA7AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-11-13T02:26:06.738Z"
              "WhenOpened": "2025-11-13T02:26:06.738Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "DocumentIndex": 7,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
@@ -66,20 +84,20 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "DocumentIndex": 1,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAK4BAAAAAAAAAAAUwLUBAAAiAAAAAAAAAA==",
              "ViewState": "AgIAAE8CAAAAAAAAAAAUwFECAAA1AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-09-25T03:21:17.498Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
@@ -91,7 +109,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "DocumentIndex": 5,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
@@ -109,19 +127,20 @@
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\CommonAGVJob.cs",
              "ViewState": "AgIAAMsAAAAAAAAAAAAjwNwAAAAMAAAAAAAAAA==",
              "ViewState": "AgIAAGQAAAAAAAAAAAAjwLoAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-10-09T05:11:29.775Z"
              "WhenOpened": "2025-10-09T05:11:29.775Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 0,
              "Title": "AGVSignal.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGV\\AGVSignal.cs",
              "ViewState": "AgIAAFwAAAAAAAAAAAAYwG8AAAAvAAAAAAAAAA==",
              "ViewState": "AgIAAJoAAAAAAAAAAAAhwMYAAAAhAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-10-13T01:17:34.312Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs
@@ -62,5 +62,6 @@
        public string Remark { get; set; }
        public string Floor { get; set; }
        public int DoubleTray { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -174,5 +174,14 @@
        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "取放货标识")]
        public string AGVSign { get; set; }
        /// <summary>
        /// æ˜¯å¦åŒæ‰˜è·¨æ¥¼å±‚0否1是
        /// </summary>
        [ImporterHeader(Name = "是否双托跨楼层0否1是")]
        [ExporterHeader(DisplayName = "是否双托跨楼层0否1是")]
        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "是否双托跨楼层0否1是")]
        public int DoubleTray { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -141,6 +141,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -187,6 +189,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -232,6 +236,8 @@
                            task.Floor = item.Floor;
                            task.AGVSign = "";
                            task.DoubleTray = item.DoubleTray;
                        }
                        else if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
                        {
@@ -583,73 +589,19 @@
                    if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish)
                    {
                        Dt_StationManager stationManager = new Dt_StationManager();
                        string TaskTemplate = string.Empty;
                        if (task.Floor == "1F")
                        if (task.DoubleTray != 1)
                        {
                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F");
                            TaskTemplate = "BBB";
                            RequestAcrossFloor(task,0);
                        }
                        else
                        {
                            stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
                            TaskTemplate = "CCC";
                            var taskDouble = BaseDal.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish);
                            if (taskDouble != null)
                            {
                                RequestAcrossFloor(task,1);
                                RequestAcrossFloor(taskDouble,1);
                            }
                        }
                        var taskDto = new RequestAcrossFloorTaskDto()
                        {
                            NextAddress = task.NextAddress,
                            PalletCode = task.PalletCode,
                            TaskNum = task.TaskNum
                        };
                        // èŽ·å–WMSip地址
                        var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                        var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
                        var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.AcrossFloorTask).FirstOrDefault()?.ConfigValue;
                        if (wmsBasez == null || requestLocation == null)
                        {
                            throw new InvalidOperationException("WMS IP æœªé…ç½®");
                        }
                        var wmsIpAddrss = wmsBasez + requestLocation;
                        var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
                        if (abc == null)
                            return content.Error();
                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
                        if (!content.Status)
                        {
                            return content;
                        }
                        // ååºåˆ—化任务数据
                        var taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
                        Dt_Task taskNew = _mapper.Map<Dt_Task>(taskDTO);
                        task.Creater = "WMS";
                        taskNew.CurrentAddress = stationManager.stationChildCode;
                        taskNew.NextAddress = taskDTO.TargetAddress;
                        taskNew.Floor = stationManager.stationFloor;
                        taskNew.AGVSign = "";
                        task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
                        task.ModifyDate = DateTime.Now;
                        task.Modifier = "System";
                        Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                        task_Hty.TaskId = 0;
                        BaseDal.DeleteData(task);
                        _taskHtyRepository.AddData(task_Hty);
                        BaseDal.AddData(taskNew);
                        SendAgvTask(TaskTemplate, taskNew.TaskNum);
                    }
                }
                else
@@ -694,6 +646,80 @@
            return content;
        }
        public WebResponseContent RequestAcrossFloor(Dt_Task task,int DoubleTray)
        {
            WebResponseContent content = new WebResponseContent();
            Dt_StationManager stationManager = new Dt_StationManager();
            string TaskTemplate = string.Empty;
            if (task.Floor == "1F")
            {
                stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "2F");
                TaskTemplate = "BBB";
            }
            else
            {
                stationManager = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == "1F");
                TaskTemplate = "CCC";
            }
            var taskDto = new RequestAcrossFloorTaskDto()
            {
                NextAddress = task.NextAddress,
                PalletCode = task.PalletCode,
                TaskNum = task.TaskNum
            };
            // èŽ·å–WMSip地址
            var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
            var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue;
            var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.AcrossFloorTask).FirstOrDefault()?.ConfigValue;
            if (wmsBasez == null || requestLocation == null)
            {
                throw new InvalidOperationException("WMS IP æœªé…ç½®");
            }
            var wmsIpAddrss = wmsBasez + requestLocation;
            var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result;
            if (abc == null)
                return content.Error();
            content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
            if (!content.Status)
            {
                return content;
            }
            // ååºåˆ—化任务数据
            var taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
            Dt_Task taskNew = _mapper.Map<Dt_Task>(taskDTO);
            task.Creater = "WMS";
            taskNew.CurrentAddress = stationManager.stationChildCode;
            taskNew.NextAddress = taskDTO.TargetAddress;
            taskNew.Floor = stationManager.stationFloor;
            taskNew.AGVSign = "";
            taskNew.DoubleTray = DoubleTray;
            task.TaskState = (int)TaskAcrossFloorStatusEnum.FirstCarryFinish;
            task.ModifyDate = DateTime.Now;
            task.Modifier = "System";
            Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
            task_Hty.TaskId = 0;
            BaseDal.DeleteData(task);
            _taskHtyRepository.AddData(task_Hty);
            BaseDal.AddData(taskNew);
            return SendAgvTask(TaskTemplate, taskNew.TaskNum);
        }
        public string GetLocation(string palletCode)
        {
            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVSignal.cs
@@ -91,13 +91,31 @@
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarry)
                {
                    if (task.Floor == "1F")
                    if (task.DoubleTray != 1)
                    {
                        elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                        if (task.Floor == "1F")
                        {
                            elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                        }
                        else
                        {
                            elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                        }
                    }
                    else
                    {
                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                        var taskDouble = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.FirstCarryFinish && x.DoubleTray==1);
                        if (taskDouble != null)
                        {
                            if (task.Floor == "1F")
                            {
                                elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                            }
                            else
                            {
                                elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                            }
                        }
                    }
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
@@ -151,15 +169,34 @@
                if (task.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry)
                {
                    if (task.Floor == "1F")
                    if (task.DoubleTray != 1)
                    {
                        elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
                        if (task.Floor == "1F")
                        {
                            elevator.SetValue(ElevatorDBName.OneLayerPickUpFinish, 1);
                        }
                        else
                        {
                            elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
                        }
                    }
                    else
                    {
                        elevator.SetValue(ElevatorDBName.TwoLayerPickUpFinish, 1);
                        var taskDouble = _taskRepository.QueryFirst(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.SecondCarry && x.DoubleTray == 1 && x.PalletCode != task.PalletCode);
                        if (taskDouble == null)
                        {
                            if (task.Floor == "1F")
                            {
                                elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
                            }
                            else
                            {
                                elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
                            }
                        }
                    }
                    _taskService.UpdateTaskStatusToNext(task.TaskNum);
                    content.OK();
                }
                
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/CommonAGVJob.cs
@@ -53,29 +53,28 @@
            #region AGV跨楼层任务
            var AcrossFloorTasks = _taskRepository.QueryData(x => x.TaskState == (int)TaskAcrossFloorStatusEnum.CarryNew);
            if (AcrossFloorTasks.Count()>0)
            if (AcrossFloorTasks.Count() > 0)
            {
                var task = _taskRepository.QueryFirst(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting);
                if(task == null)
                if (task == null)
                {
                    Dt_Task? AcrossFloorTask = null;
                    if (AcrossFloorTasks[0].Floor == "2F")
                    {
                        AcrossFloorTask = AcrossFloorTasks.OrderBy(x => x.Grade).ToList().FirstOrDefault();
                        AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray != 1).OrderBy(x => x.Grade).ToList().FirstOrDefault();
                    }
                    else
                    {
                        AcrossFloorTask = AcrossFloorTasks.OrderByDescending(x => x.Grade).ToList().FirstOrDefault();
                        AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray != 1).OrderByDescending(x => x.Grade).ToList().FirstOrDefault();
                    }
                    CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
                    if (elevator != null)
                    if (AcrossFloorTask != null)
                    {
                        if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1)
                        CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
                        if (elevator != null)
                        {
                            if (AcrossFloorTask != null)
                            if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1)
                            {
                                if (Relocation(AcrossFloorTask))
                                {
                                    if (AcrossFloorTask.Floor == "1F")
@@ -107,6 +106,84 @@
                        }
                    }
                }
                var taskDouble = _taskRepository.QueryData(x => x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && x.TaskState < (int)TaskAcrossFloorStatusEnum.EndAddressExecuting && x.DoubleTray == 1);
                if (taskDouble.Count() < 2)
                {
                    if (taskDouble.Count == 0)
                    {
                        Dt_Task? AcrossFloorTask = null;
                        if (AcrossFloorTasks.Where(x=>x.DoubleTray==1).FirstOrDefault().Floor == "2F")
                        {
                            AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray == 1).OrderBy(x => x.Grade).ToList().FirstOrDefault();
                        }
                        else
                        {
                            AcrossFloorTask = AcrossFloorTasks.Where(x => x.DoubleTray == 1).OrderByDescending(x => x.Grade).ToList().FirstOrDefault();
                        }
                        if (AcrossFloorTask != null)
                        {
                            CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ1") as CommonElevator;
                            if (elevator != null)
                            {
                                if (elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.Model) == 1)
                                {
                                    if (AcrossFloorTask != null)
                                    {
                                        if (Relocation(AcrossFloorTask))
                                        {
                                            if (AcrossFloorTask.Floor == "1F")
                                            {
                                                elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(AcrossFloorTask.TaskNum));
                                                elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2));
                                                elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(1));
                                                elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(2));
                                                Thread.Sleep(1000);
                                                elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1));
                                                _taskService.SendAgvTask("AAA", AcrossFloorTask.TaskNum);
                                                _taskService.UpdateTaskStatusToNext(AcrossFloorTask.TaskNum);
                                            }
                                            else
                                            {
                                                elevator.SetValue(ElevatorDBName.TaskNum, Convert.ToInt16(AcrossFloorTask.TaskNum));
                                                elevator.SetValue(ElevatorDBName.FlagBit, Convert.ToInt16(2));
                                                elevator.SetValue(ElevatorDBName.StartFloor, Convert.ToInt16(2));
                                                elevator.SetValue(ElevatorDBName.EdnFloor, Convert.ToInt16(1));
                                                Thread.Sleep(1000);
                                                elevator.SetValue(ElevatorDBName.StartCommand, Convert.ToInt16(1));
                                                _taskService.SendAgvTask("DDD", AcrossFloorTask.TaskNum);
                                                _taskService.UpdateTaskStatusToNext(AcrossFloorTask.TaskNum);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        var taskSecond = AcrossFloorTasks.Where(x => x.Floor == taskDouble.FirstOrDefault().Floor && x.DoubleTray==1).FirstOrDefault();
                        if (taskSecond != null)
                        {
                            if (Relocation(taskSecond))
                            {
                                if (taskSecond.Floor == "1F")
                                {
                                    _taskService.SendAgvTask("AAA", taskSecond.TaskNum);
                                    _taskService.UpdateTaskStatusToNext(taskSecond.TaskNum);
                                }
                                else
                                {
                                    _taskService.SendAgvTask("DDD", taskSecond.TaskNum);
                                    _taskService.UpdateTaskStatusToNext(taskSecond.TaskNum);
                                }
                            }
                        }
                    }
                }
            }
            #endregion
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/api/buttons.js
@@ -163,6 +163,14 @@
      
    }
    
  },{
    name: '多托出库',
    type: 'primary',
    value: 'DoubleTray',
    onClick: function () {
    }
  },
]
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/api/http.js
@@ -11,8 +11,8 @@
let loadingInstance
let loadingStatus = false
if (process.env.NODE_ENV == 'development') {
  //  axios.defaults.baseURL = 'http://localhost:5000/';
  axios.defaults.baseURL = 'http://10.31.3.241:5000/';
   axios.defaults.baseURL = 'http://localhost:5000/';
  // axios.defaults.baseURL = 'http://10.31.3.241:5000/';
}
else if (process.env.NODE_ENV == 'debug') {
  axios.defaults.baseURL = 'http://192.168.15.253:5000/';
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx
@@ -48,6 +48,24 @@
      //     })
      //   }
      // });
      var DoubleTrayBtn = this.buttons.find(x => x.value == "DoubleTray");
        if (DoubleTrayBtn != null) {
          DoubleTrayBtn.onClick = () => {
                let rows = this.$refs.table.getSelected();
                if (rows.length == 0) return this.$error("请选择数据!");
                if (rows.length >1) return this.$error("请选择数据!");
                this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${rows[0].palletCode}&remark=${""}&doubleTray=${1}`, {}, '数据处理中...')
                    .then((x) => {
                        if (x.status) {
                            this.$Message.success('成功.');
                            this.refresh();
                        } else {
                            return this.$error(x.message);
                        }
                    });
            }
        }
      this.boxButtons.push({
        name: '确定出库', //按钮名称
        type: 'danger',
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json
@@ -3,8 +3,20 @@
  "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
@@ -31,32 +43,71 @@
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAFIAAAAAAAAAAAAswF0AAABHAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T08:44:56.656Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "IDt_TaskService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "ViewState": "AgIAAFYAAAAAAAAAAAAswGYAAABeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T08:44:47.025Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "RequestTaskDto.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "RelativeToolTip": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "ViewState": "AgIAABcAAAAAAAAAAAAQwCsAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T04:30:22.23Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "Dt_TaskService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "ViewState": "AgIAACABAAAAAAAAAAAjwDwBAAAtAAAAAAAAAA==",
              "ViewState": "AgIAAIwCAAAAAAAAAAAjwGgCAABqAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-25T03:32:15.952Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 4,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAuAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-11-24T07:24:53.694Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 6,
              "Title": "InboundOrderController.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
@@ -68,7 +119,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 5,
              "Title": "Dt_InboundOrderService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json
@@ -7,6 +7,18 @@
      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\requesttaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
    },
@@ -26,8 +38,47 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 0,
          "SelectedChildIndex": 3,
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskController.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
              "ViewState": "AgIAAFIAAAAAAAAAAAAswF0AAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T08:44:56.656Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "IDt_TaskService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
              "ViewState": "AgIAAFYAAAAAAAAAAAAswGYAAABeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T08:44:47.025Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "RequestTaskDto.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "RelativeToolTip": "WIDESEA_DTO\\Basic\\RequestTaskDto.cs",
              "ViewState": "AgIAABcAAAAAAAAAAAAQwCsAAAAZAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-29T04:30:22.23Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
@@ -36,27 +87,27 @@
              "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
              "ViewState": "AgIAACABAAAAAAAAAAAjwDwBAAAtAAAAAAAAAA==",
              "ViewState": "AgIAAAcBAAAAAAAAAAAUwGoCAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-11-25T03:32:15.952Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "DocumentIndex": 4,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAuAAAAAAAAAA==",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvw8AAAAkAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2025-11-24T07:24:53.694Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 6,
              "Title": "InboundOrderController.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Order\\InboundOrderController.cs",
@@ -68,7 +119,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "DocumentIndex": 5,
              "Title": "Dt_InboundOrderService.cs",
              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
@@ -40,6 +40,9 @@
    /// </summary>
    public int TaskType { get; set; }
    public int DoubleTray { get; set; }
}
public class RequestAcrossFloorTaskDto
{
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_DTO/WMS/WMSTaskDTO.cs
@@ -62,5 +62,6 @@
        public string? Remark { get; set; }
        public string? Floor { get; set; }
        public int? DoubleTray { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -100,7 +100,7 @@
    /// </summary>
    /// <param name="palletCode"></param>
    /// <returns></returns>
    Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark);
    Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark,int doubleTray);
    Task<WebResponseContent> OtherOutBoundTaskAsync(List<DtStockInfoDetail> details);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs
@@ -134,7 +134,14 @@
    ///</summary>
    [SugarColumn(ColumnName = "AGVTaskNum", Length = 255, IsNullable = true)]
    public string? AGVTaskNum { get; set; }
    /// <summary>
    /// å¤‡  æ³¨: æ˜¯å¦åŒæ‰˜è·¨æ¥¼å±‚0否1是
    /// é»˜è®¤å€¼:
    ///</summary>
    [SugarColumn(ColumnName = "DoubleTray", IsNullable = true)]
    public int DoubleTray { get; set; }
    /// <summary>
    /// ä»»åŠ¡æ‰§è¡Œæ˜Žç»†
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs
@@ -268,6 +268,7 @@
                AGVTaskNum = task.AGVTaskNum,
                Remark = task.Remark,
                Floor = task.Floor,
                DoubleTray = task.DoubleTray,
            };
        }
        public (List<DtStockInfo>, Dt_AllocateOutboundOrderDetail) AssignStockOutbound(Dt_AllocateOutboundOrderDetail allocateoutboundOrderdetail, List<StockSelectViewDTO> stockSelectViews)
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_ProductionOutboundOrderService.cs
@@ -251,6 +251,7 @@
                AGVTaskNum = task.AGVTaskNum,
                Remark = task.Remark,
                Floor =task.Floor,
                DoubleTray = task.DoubleTray,
            };
        }
        public (List<DtStockInfo>, Dt_ProductionOutboundOrderDetail) AssignStockOutbound(Dt_ProductionOutboundOrderDetail outboundOrderdetail, List<StockSelectViewDTO> stockSelectViews)
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -363,64 +363,6 @@
    }
    #endregion å…¥åº“任务完成
    #region AGV搬运任务完成
    public async Task<WebResponseContent> CompleteCarryTaskAsync(Dt_Task task,DtStockInfo stockInfo)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            var Sourcelocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.SourceAddress);
            var Targetlocation = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
            //UpdateLocationStatus(Sourcelocation, LocationEnum.Free);
            //UpdateLocationStatus(Targetlocation, LocationEnum.InStock);
            task.TaskState = (int)TaskAGVCarryStatusEnum.CarryFinish;
            var taskHty = task.Adapt<Dt_Task_Hty>();
            taskHty.FinishTime = DateTime.Now;
            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.人工完成 : (int)OperateTypeEnum.自动完成;
            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
                await DeleteTaskAsync(task.TaskId);
                await AddTaskHtyAsync(taskHty);
            });
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
        return content;
    }
    #endregion
    #region AGV跨楼层任务完成
    public async Task<WebResponseContent> CompleteAcrossFloorTaskAsync(Dt_Task task, DtStockInfo stockInfo)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryFinish;
            var taskHty = task.Adapt<Dt_Task_Hty>();
            taskHty.FinishTime = DateTime.Now;
            taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.人工完成 : (int)OperateTypeEnum.自动完成;
            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
                await DeleteTaskAsync(task.TaskId);
                await AddTaskHtyAsync(taskHty);
            });
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
        return content;
    }
    #endregion
    #region ä»»åŠ¡å®Œæˆ
    /// <summary>
@@ -522,14 +464,14 @@
                return content.Error("托盘信息不存在,请确认托盘已组盘成功");
            }
            foreach (var item in boxingInfo.BoxingInfoDetails)
            {
                var ERPStock = SqlSugarHelper.DBERP.Queryable<用友即时库存_ST>().Where(x => x.存储地点名称 == item.Warehouse && x.料号 == item.MaterielCode && x.品名 == item.MaterielName && x.库存数量 >= item.Quantity).ToList().FirstOrDefault();
                if (ERPStock == null)
                {
                    return content.Error($"组盘数据未在ERP库存数据中,请人工确认数据是否正确");
                }
            }
            //foreach (var item in boxingInfo.BoxingInfoDetails)
            //{
            //    var ERPStock = SqlSugarHelper.DBERP.Queryable<用友即时库存_ST>().Where(x => x.存储地点名称 == item.Warehouse && x.料号 == item.MaterielCode && x.品名 == item.MaterielName && x.库存数量 >= item.Quantity).ToList().FirstOrDefault();
            //    if (ERPStock == null)
            //    {
            //        return content.Error($"组盘数据未在ERP库存数据中,请人工确认数据是否正确");
            //    }
            //}
            var StartAddress = await _locationRepository.QueryFirstAsync(x => x.LocationCode == taskDto.Position);
            if (StartAddress == null)
@@ -672,7 +614,7 @@
    /// </summary>
    /// <param name="palletCode"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> OutBoundTaskAsync(string palletCode,string remark)
    public async Task<WebResponseContent> OutBoundTaskAsync(string palletCode,string remark,int doubleTray)
    {
        WebResponseContent content = new WebResponseContent();
        try
@@ -699,7 +641,7 @@
                return content.Error("该托盘库存已在出库缓存区");
            }
            Dt_Task taskNew = await RequestOutboundTaskAsync(new RequestTaskDto { PalletCode = palletCode, AreaId = 2, Position = stcok.LocationCode, TaskType = (int)TaskOutboundTypeEnum.Outbound });
            Dt_Task taskNew = await RequestOutboundTaskAsync(new RequestTaskDto { PalletCode = palletCode, AreaId = 2, Position = stcok.LocationCode, TaskType = (int)TaskOutboundTypeEnum.Outbound, DoubleTray= doubleTray });
            List<Dt_InventoryRecord> records = new List<Dt_InventoryRecord>();
            stcok.StockInfoDetails.ForEach(x =>
            {
@@ -732,6 +674,12 @@
        }
    }
    /// <summary>
    /// å…¶ä»–出库
    /// </summary>
    /// <param name="details"></param>
    /// <returns></returns>
    public async Task<WebResponseContent> OtherOutBoundTaskAsync(List<DtStockInfoDetail> details)
    {
@@ -1149,6 +1097,7 @@
            Remark = StartAddress.AreaId.ToString(),
            AGVTaskNum = GenerateUniqueId(),
            Floor = StartAddress.Floor,
            DoubleTray = taskDto.DoubleTray,
        };
    }
@@ -2109,6 +2058,7 @@
            TaskType = task.TaskType,
            Floor =task.Floor,
            AGVTaskNum = task.AGVTaskNum,
            DoubleTray = task.DoubleTray,
        } };
    }
@@ -2128,6 +2078,7 @@
            AGVTaskNum = task.AGVTaskNum,
            Remark = task.Remark,
            Floor = task.Floor,
            DoubleTray = task.DoubleTray,
        };
    }
    private List<WMSTaskDTO> CreateTaskDTO(List<Dt_Task> task)
@@ -2149,6 +2100,7 @@
                AGVTaskNum = item.AGVTaskNum,
                Remark = item.Remark,
                Floor = item.Floor,
                DoubleTray = item.DoubleTray,
            });
        }
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs
@@ -89,9 +89,9 @@
    /// <returns></returns>
    [HttpPost, HttpGet, AllowAnonymous, Route("OutBoundTaskAsync")]
    [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 2 })]
    public Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark)
    public Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark, int doubleTray)
    {
        return Service.OutBoundTaskAsync(palletCode, remark);
        return Service.OutBoundTaskAsync(palletCode, remark, doubleTray);
    }
    [HttpPost, HttpGet, AllowAnonymous, Route("OtherOutBoundTaskAsync")]
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -13,7 +13,7 @@
  //"DBType": "MySql",
  //"DBType": "SqlServer",
  //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
  "ConnectionString": "Data Source=10.31.3.241;Initial Catalog=WIDESEAWMS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultipleActiveResultSets=True",
  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultipleActiveResultSets=True",
  //"ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEAWCS_MHLK;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  "ConnectionStringERP": "Data Source=192.168.117.110;Initial Catalog=MHI;User ID=wms2;Password=Wms2025;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=true",
  "ConnectionStringERPText": "Data Source=192.168.117.109;Initial Catalog=MHI;User ID=Wms3;Password=Wms2025;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=true",