qinchulong
2025-03-02 547436626cfe9cb01ae95b0bde9886b9cf46a9f2
第一版完成

第一版完成
已修改17个文件
已添加4个文件
574 ■■■■ 文件已修改
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_batchinfoService.cs 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_outstockinfoService.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_storagemodeService.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs 140 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,28 +3,28 @@
  "WorkspaceRootPath": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\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|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\system\\dt_stationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\dt_stationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -38,52 +38,65 @@
          "Children": [
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "LocationEnum.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
              "ViewState": "AQIAAAkAAAAAAAAAAADwvwwAAAAiAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T12:50:53.078Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "TaskService.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AQIAADUCAAAAAAAAAADgv0UCAABCAAAA",
              "ViewState": "AQIAABsAAAAAAAAAAAAAADIAAAAIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:53:59.024Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAADwvwkAAAAgAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:50:10.929Z",
              "WhenOpened": "2025-03-02T12:38:43.767Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "TaskTypeEnum.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAADwvwkAAAAjAAAA",
              "Title": "TaskStatusEnum.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
              "ViewState": "AQIAAHsAAAAAAAAAAAA1wIoAAAAfAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:49:15.488Z",
              "WhenOpened": "2025-03-02T12:35:09.785Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "LocationInfoService.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs*",
              "RelativeToolTip": "WIDESEAWCS_WMSPart\\LocationInfoService.cs*",
              "ViewState": "AQIAAAgAAAAAAAAAAAASwBYAAABIAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T12:29:34.803Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "GZJJob.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
              "ViewState": "AQIAAGYAAAAAAAAAAAAYwHMAAAAZAAAA",
              "ViewState": "AQIAAAwAAAAAAAAAAAAlwBcAAAAAAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:23:03.899Z",
              "EditorCaption": ""
@@ -91,25 +104,12 @@
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "dt_stationInfo.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
              "ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAjAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:08:19.45Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "OHTJob.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
              "ViewState": "AQIAABsAAAAAAAAAAAAtwIYAAAAdAAAA",
              "ViewState": "AQIAAEAAAAAAAAAAAAApwCUAAABGAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-01T14:47:49.318Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs
@@ -135,4 +135,18 @@
        [Description("外购")]
        WaiGou,
    }
    public enum StorageModeEnum
    {
        /// <summary>
        /// å‡ºåº“优先
        /// </summary>
        [Description("出库优先")]
        Out=1,
        /// <summary>
        /// å…¥åº“优先
        /// </summary>
        [Description("入库优先")]
        In = 2,
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
@@ -10,5 +11,8 @@
{
    public interface Idt_BatchinfoService : IService<dt_batchInfo>
    {
        WebResponseContent UpdateInBatch(string batch);
        WebResponseContent UpdateOutBatch(string batch);
        WebResponseContent UpdateOutStorageMode(int mode);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
@@ -10,6 +11,6 @@
{
    public interface Idt_OutstockinfoService : IService<dt_outstockinfo>
    {
        WebResponseContent UpdateIsOutStock(int isout);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_ISystemServices
{
    public interface Idt_StoragemodeService : IService<dt_storagemode>
    {
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs
@@ -21,5 +21,12 @@
        WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO);
        WebResponseContent getlocation();
        /// <summary>
        /// æ ¹æ®é€‰æ‹©çš„入库规则分配货位
        /// </summary>
        /// <param name="InMode"></param>
        /// <returns></returns>
        Dt_LocationInfo GetInLocation(int InMode);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs
@@ -21,10 +21,16 @@
        public int Id { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// å…¥åº“批次号
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "批次号")]
        public string Batch { get; set; }
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "入库批次号")]
        public string InBatch { get; set; }
        /// <summary>
        /// å‡ºåº“批次号
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "出库批次号")]
        public string OutBatch { get; set; }
        /// <summary>
        /// ç‰©æ–™ä¿¡æ¯ï¼Œè‡ªäº§æˆ–外购
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs
@@ -17,7 +17,7 @@
        public int Id { get; set; }
        /// <summary>
        /// æ˜¯å¦å‡ºåº“
        /// æ˜¯å¦å‡ºåº“ 0不出库  1出库
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "是否出库")]
        public int isout { get; set; }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.DB.Models;
namespace WIDESEAWCS_Model.Models
{
    public class dt_storagemode : BaseEntity
    {
        /// <summary>
        /// ä¸»é”®
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int Id { get; set; }
        /// <summary>
        /// å…¥åº“模式
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "入库模式")]
        public int storagemode { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs
@@ -51,9 +51,9 @@
        public int StockStatus { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// 0自产  1外购
        /// </summary>
        [SugarColumn(IsNullable = true, ColumnDescription = "备注")]
        [SugarColumn(IsNullable = true, ColumnDescription = "0自产  1外购")]
        public int Remark { get; set; }
        /// <summary>
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs
@@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using Autofac.Core;
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_ISystemServices;
@@ -16,5 +18,38 @@
        {
            _httpContextAccessor = httpContextAccessor;
        }
        /// <summary>
        /// ä¿®æ”¹å…¥åº“批次信息
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("UpdateInBatch")]
        public WebResponseContent UpdateInBatch(string batch)
        {
            return Service.UpdateInBatch(batch);
        }
        /// <summary>
        /// ä¿®æ”¹å‡ºåº“批次信息
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("UpdateOutBatch")]
        public WebResponseContent UpdateOutBatch(string batch)
        {
            return Service.UpdateOutBatch(batch);
        }
        /// <summary>
        /// ä¿®æ”¹å‡ºåº“物料信息,需要出外购还是自产 0不出库   1出库
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("UpdateOutStorageMode")]
        public WebResponseContent UpdateOutStorageMode(int mode)
        {
            return Service.UpdateOutStorageMode(mode);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
@@ -14,5 +15,16 @@
        {
            _httpContextAccessor = httpContextAccessor;
        }
        /// <summary>
        /// ä¿®æ”¹å½“前是否需要出库
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        [HttpPost, HttpGet, Route("UpdateIsOutStock")]
        public WebResponseContent UpdateIsOutStock(int isout)
        {
            return Service.UpdateIsOutStock(isout);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_Server.Controllers.System
{
    [Route("api/StorageMode")]
    [ApiController]
    public class StoragemodeController : ApiBaseController<Idt_StoragemodeService, dt_storagemode>
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        public StoragemodeController(Idt_StoragemodeService service, IHttpContextAccessor httpContextAccessor) : base(service)
        {
            _httpContextAccessor = httpContextAccessor;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_batchinfoService.cs
@@ -5,6 +5,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemServices;
@@ -24,5 +25,73 @@
            _mapper = mapper;
        }
        /// <summary>
        /// ä¿®æ”¹å…¥åº“批次信息
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        public WebResponseContent UpdateInBatch(string batch)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var batchibfo = BaseDal.QueryFirst(v=>v.Id==1);
                batchibfo.InBatch = batch;
                BaseDal.UpdateData(batchibfo);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error($"修改入库批次号失败:【{ex.Message}】");
            }
            return content;
        }
        /// <summary>
        /// ä¿®æ”¹å‡ºåº“批次信息
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        public WebResponseContent UpdateOutBatch(string batch)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var batchibfo = BaseDal.QueryFirst(v => v.Id == 1);
                batchibfo.OutBatch = batch;
                BaseDal.UpdateData(batchibfo);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error($"修改入库批次号失败:【{ex.Message}】");
            }
            return content;
        }
        /// <summary>
        /// ä¿®æ”¹å‡ºåº“物料信息,需要出外购还是自产
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        public WebResponseContent UpdateOutStorageMode(int mode)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var batchibfo = BaseDal.QueryFirst(v => v.Id == 1);
                batchibfo.materType = mode;
                BaseDal.UpdateData(batchibfo);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error($"修改入库批次号失败:【{ex.Message}】");
            }
            return content;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_errormsginfoService.cs
@@ -33,9 +33,13 @@
        {
            WebResponseContent webResponse = new WebResponseContent();
            var error = BaseDal.QueryFirst(v=>v.Id==id);
            error.errormsg = message;
            error.ModifyDate = DateTime.Now;
            BaseDal.UpdateData(error);
            DateTime dTime = (DateTime)error.ModifyDate;
            if (error.mesg.Equals(message) && (DateTime.Now - dTime).TotalSeconds > 10)
            {
                error.errormsg = message;
                error.ModifyDate = DateTime.Now;
                BaseDal.UpdateData(error);
            }
            return webResponse.OK();
        }
    }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_outstockinfoService.cs
@@ -4,6 +4,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemServices;
@@ -22,5 +23,28 @@
        {
            _mapper = mapper;
        }
        /// <summary>
        /// ä¿®æ”¹å‡ºåº“物料信息,需要出外购还是自产
        /// </summary>
        /// <param name="batch"></param>
        /// <returns></returns>
        public WebResponseContent UpdateIsOutStock(int isout)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var isoutstock = BaseDal.QueryFirst(v => v.Id == 1);
                isoutstock.isout = isout;
                BaseDal.UpdateData(isoutstock);
                content = WebResponseContent.Instance.OK();
            }
            catch (Exception ex)
            {
                content = WebResponseContent.Instance.Error($"修改入库批次号失败:【{ex.Message}】");
            }
            return content;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_storagemodeService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using AutoMapper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_SystemServices
{
    public class dt_storagemodeService : ServiceBase<dt_storagemode, IRepository<dt_storagemode>>, Idt_StoragemodeService
    {
        private readonly IMapper _mapper;
        /// <summary>
        /// ä»“储层(数据库访问)
        /// </summary>
        public IRepository<dt_storagemode> Repository => BaseDal;
        public dt_storagemodeService(IRepository<dt_storagemode> BaseDal, IMapper mapper) : base(BaseDal)
        {
            _mapper = mapper;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -19,6 +19,7 @@
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.StockEnum;
using WIDESEAWCS_Common.TaskEnum;
@@ -431,7 +432,7 @@
            }
            catch (Exception ex)
            {
                _ErrormsginfoService.UpdateErrorMsg(ex.Message,1);
                UpdateTaskExceptionMessage(taskNum, ex.Message);
            }
        }
@@ -578,7 +579,7 @@
                    stock.LocationCode = nawtask.TargetAddress;
                    stock.Weight = (decimal)weight;
                    stock.StockStatus = (int)stockEnum.Lock;
                    stock.BatchNo = batck.Batch;
                    stock.BatchNo = batck.InBatch;
                    if (nawtask.Remark== (int)MateTypeEnum.ZiChan)
                    {
                        stock.Remark = (int)MateTypeEnum.ZiChan;
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs
@@ -21,10 +21,12 @@
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_IWMSPart;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_TaskInfoService;
using WIDESEAWCS_Tasks.OHT;
namespace WIDESEAWCS_Tasks
@@ -36,18 +38,33 @@
        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
        private readonly IRepository<dt_stationInfo> _dt_stationInfoRepository;
        private readonly IRepository<Dt_Task> _dt_taskRepositiry;
        private readonly ILocationInfoService _locationInfoService;
        private readonly IRepository<dt_storagemode> _storagemodeRepository;
        private readonly IRepository<dt_outstockinfo> _outStockRepository;
        private readonly IRepository<dt_batchInfo> _batchInfoRepository;
        private readonly IRepository<Dt_StockInfo> _StockInfoRepository;
        WebSocketServer _webSocketServer;
        public GZJJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService,
            Idt_StationinfoService stationinfoService,
            IRepository<dt_stationInfo> dt_stationInfoRepository,
            IRepository<Dt_Task> dt_taskRepositiry)
            IRepository<Dt_Task> dt_taskRepositiry,
            ILocationInfoService locationInfoService,
            IRepository<dt_outstockinfo> outStockRepository,
            IRepository<dt_storagemode> storagemodeRepository,
            IRepository<dt_batchInfo> batchInfoRepository,
            IRepository<Dt_StockInfo> StockInfoRepository)
        {
            _taskService = taskService;//注入
            _webSocketServer = webSocketServer;
            _ErrormsginfoService = errormsginfoService;
            _dt_stationInfoRepository = dt_stationInfoRepository;
            _dt_taskRepositiry = dt_taskRepositiry;
            _locationInfoService = locationInfoService;
            _storagemodeRepository = storagemodeRepository;
            _outStockRepository = outStockRepository;
            _batchInfoRepository = batchInfoRepository;
            _StockInfoRepository = StockInfoRepository;
        }
        public Task Execute(IJobExecutionContext context)
@@ -65,12 +82,12 @@
                        throw new Exception($"规整机投入使用信号为false");
                    }
                    Dt_Task task = new Dt_Task();
                    var storagemode = _storagemodeRepository.QueryFirst(v=>v.Id==1);
                    if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV上料模式,且东跨架子有上料信号
                    {
                        var station=_dt_stationInfoRepository.QueryFirst(v=>v.msg== "东跨架子");
                        task.SourceAddress = station.Row + "-" + station.Column + "-1";
                        task.TargetAddress = "";
                        task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                        task.Grade = 1;
                        task.Remark = (int)MateTypeEnum.ZiChan;
                    }
@@ -78,7 +95,7 @@
                    {
                        var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                        task.SourceAddress = station.Row + "-" + station.Column + "-1";
                        task.TargetAddress = "";
                        task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                        var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                        string address= DKstation.Row + "-" + DKstation.Column + "-1";
                        var oldtask = _dt_taskRepositiry.QueryFirst(v=>v.SourceAddress== address);
@@ -96,7 +113,7 @@
                    {
                        var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                        task.SourceAddress = station.Row + "-" + station.Column + "-1";
                        task.TargetAddress = "";
                        task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                        task.Grade = 1;
                        task.Remark = (int)MateTypeEnum.WaiGou;
                    }
@@ -104,7 +121,7 @@
                    {
                        var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "东跨架子");
                        task.SourceAddress = station.Row + "-" + station.Column + "-1";
                        task.TargetAddress = "";
                        task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
                        var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "西跨架子");
                        string address= XKstation.Row + "-" + XKstation.Column + "-1";
                        var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
@@ -134,70 +151,57 @@
                {
                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 2);
                }
                try
                {
                    #region ç”Ÿæˆå‡ºåº“任务
                    var isout = _outStockRepository.QueryFirst(v => v.Id == 1);
                    if (isout.isout != 1)
                    {
                        throw new Exception($"当前系统设置为不出库模式");
                    }
                    if (!OHTJob.oHTReadData.R_ZXJ_isWork)
                    {
                        throw new Exception($"整形机投入使用信号为false");
                    }
                    if (!OHTJob.oHTReadData.R_ZXJ_TCMode || OHTJob.oHTReadData.R_HC_isReadyWork)
                    {
                        throw new Exception($"整形机不属于天车上料模式或天车放板信号为false");
                    }
                    //查询当前任务池中是否存在出库任务,出库任务只能存在一条
                    var oldtask = _dt_taskRepositiry.QueryFirst(v => v.TaskType == (int)TaskOutboundTypeEnum.Outbound);
                    if (oldtask != null)
                    {
                        throw new Exception($"当前任务池中已存在一条出库任务");
                    }
                    //查询当前需要出库的批次号,以及出库物料类型
                    var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
                    //查询库存物料库存信息
                    var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch).OrderBy(v => v.CreateDate).ToList();
                    if (stocks.Count <= 0)
                    {
                        throw new Exception($"当前库存中没有【{batch.materType}】(0自产 1外购)且批次为【{batch.OutBatch}】的物料");
                    }
                    //查询终点站台信息
                    var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "整形机放料位");
                    //开始创建任务
                    Dt_Task outtask = new Dt_Task();
                    outtask.Roadway = "TC01";
                    outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                    outtask.TaskState = (int)TaskOutStatusEnum.OutNew;
                    outtask.SourceAddress = stocks[0].LocationCode;
                    outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; ;
                    outtask.Grade = 1;
                    outtask.Remark = batch.materType;
                    _dt_taskRepositiry.AddData(outtask);
                    #endregion
                }
                catch (Exception ex)
                {
                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3);
                }
            }
            return Task.CompletedTask;
        }
        /// <summary>
        /// ä»»åŠ¡å®žä½“è½¬æ¢æˆå‘½ä»¤Model
        /// </summary>
        /// <param name="task">任务实体</param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public OHTTaskCommand? ConvertToOHTTaskCommand([NotNull] Dt_Task task)
        {
            OHTTaskCommand oHtTaskCommand = new OHTTaskCommand();
            oHtTaskCommand.W_Task_Type = 1;
            oHtTaskCommand.W_Load_Layer = 0;
            oHtTaskCommand.W_Pick_Line = 1;
            string[] SourceCodes = task.SourceAddress.Split("-");
            if (SourceCodes.Length == 3)
            {
                oHtTaskCommand.W_Pick_Line = Convert.ToInt16(SourceCodes[1]);
                oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[2]);
                oHtTaskCommand.W_Put_Layer = Convert.ToInt16(SourceCodes[3]);
            }
            else
            {
                //数据配置错误
                _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"任务源地址配置错误!");
                return null;
            }
            string[] targetCodes = task.TargetAddress.Split("-");
            if (targetCodes.Length == 3)
            {
                oHtTaskCommand.W_Put_Line = Convert.ToInt16(targetCodes[1]);
                oHtTaskCommand.W_Put_Column = Convert.ToInt16(targetCodes[2]);
                oHtTaskCommand.W_Put_Layer = Convert.ToInt16(targetCodes[3]);
            }
            else
            {
                //数据配置错误
                _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"任务目标地址配置错误");
                return null;
            }
            return oHtTaskCommand;
        }
        /// <summary>
        /// èŽ·å–ä»»åŠ¡
        /// </summary>
        /// <returns></returns>
        private Dt_Task? GetTask()
        {
            Dt_Task task;
            task = _taskService.QueryStackerCraneTask("R01");
            return task;
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs
@@ -224,8 +224,8 @@
                oHtTaskCommand.W_Catch_2 = 1;
                oHtTaskCommand.W_CheckValue += 2;
            }
            oHtTaskCommand.W_TaskNumber = task.TaskNum;
            oHtTaskCommand.W_CheckValue += task.TaskNum;
            oHtTaskCommand.W_TaskNumber = task.TaskId;
            oHtTaskCommand.W_CheckValue += task.TaskId;
            return oHtTaskCommand;
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs
@@ -1,7 +1,6 @@

using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using AutoMapper;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
@@ -16,12 +15,17 @@
    /// <summary>
    /// è´§ä½ä¿¡æ¯ä¸šåŠ¡æŽ¥å£å®žçŽ°å±‚
    /// </summary>
    public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
    public class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
    {
        public IRepository<Dt_LocationInfo> Repository => BaseDal;
        private readonly IRepository<dt_storagemode> _dt_storagemode;
        private readonly IMapper _mapper;
        //private readonly Idt_ErrormsginfoService _ErrormsginfoService;
        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal) : base(BaseDal)
        public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal)
        {
            _dt_storagemode = storagemode;
            _mapper = mapper;
        }
        public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
@@ -91,6 +95,43 @@
            }
        }
        /// <summary>
        /// æ ¹æ®é€‰æ‹©çš„入库规则分配货位
        /// </summary>
        /// <param name="InMode"></param>
        /// <returns></returns>
        public Dt_LocationInfo GetInLocation(int InMode)
        {
            Dt_LocationInfo location = new Dt_LocationInfo();
            try
            {
                var mode = _dt_storagemode.QueryFirst(v=>v.Id==1);
                if (mode.storagemode==(int)StorageModeEnum.Out)
                {
                    var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free).OrderBy(v=>v.Row).ToList();
                    if (locations.Count<=0)
                    {
                        throw new Exception($"出库优先货位分配失败,当前无空闲货位");
                    }
                    location = locations[0];
                }
                else if(mode.storagemode == (int)StorageModeEnum.In)
                {
                    var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free).OrderByDescending(v => v.Row).ToList();
                    if (locations.Count <= 0)
                    {
                        throw new Exception($"入库优先货位分配失败,当前无空闲货位");
                    }
                    location = locations[0];
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return location;
        }
        public WebResponseContent GetLocationConfigs(int layer)
        {
            try