qinchulong
2025-03-03 aeaab43f0a625382eaa85144b20d15eb00862a4c
20250303调试后

20250303调试后
已删除2个文件
已修改7个文件
222 ■■■■■ 文件已修改
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/~$有色WMS与天车交互协议.docx 补丁 | 查看 | 原始文档 | blame | 历史
项目资料/通信协议/~$机组通信协议.doc 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,8 +3,8 @@
  "WorkspaceRootPath": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "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:{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:{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}",
@@ -15,16 +15,12 @@
      "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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\zxj\\zxjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\zxj\\zxjjob.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:{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\\oht\\ohttaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohttaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
@@ -34,21 +30,8 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 3,
          "SelectedChildIndex": 4,
          "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,
@@ -57,35 +40,35 @@
              "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": "AQIAABsAAAAAAAAAAAAAADIAAAAIAAAA",
              "ViewState": "AQIAAI0CAAAAAAAAAAAuwKICAAAUAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T12:38:43.767Z",
              "WhenOpened": "2025-03-03T08:49:39.365Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "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",
              "Title": "OHTTaskCommand.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTTaskCommand.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTTaskCommand.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTTaskCommand.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTTaskCommand.cs",
              "ViewState": "AQIAACkAAAAAAAAAAAAswDoAAAAeAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T12:35:09.785Z",
              "WhenOpened": "2025-03-03T08:27:17.639Z",
              "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",
              "DocumentIndex": 3,
              "Title": "ZXJJob.cs",
              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
              "ViewState": "AQIAAD0AAAAAAAAAAAAIwGAAAAAcAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T12:29:34.803Z",
              "WhenOpened": "2025-03-03T06:27:45.31Z",
              "EditorCaption": ""
            },
            {
@@ -96,20 +79,20 @@
              "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": "AQIAAAwAAAAAAAAAAAAlwBcAAAAAAAAA",
              "ViewState": "AQIAAE8AAAAAAAAAAAAuwNUAAAAUAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-02T07:23:03.899Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "DocumentIndex": 0,
              "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": "AQIAAEAAAAAAAAAAAAApwCUAAABGAAAA",
              "ViewState": "AQIAAE4AAAAAAAAAAAAuwGkAAAAZAAAA",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-03-01T14:47:49.318Z",
              "EditorCaption": ""
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -102,7 +102,7 @@
        public string CurrentAddress { get; set; }
        /// <summary>
        /// ä¸‹ä¸€åœ°å€
        /// ä¸‹ä¸€åœ°å€  ç”¨æ¥ä¿å­˜ç›¸é‚»çš„货位信息
        /// </summary>
        [ImporterHeader(Name = "下一地址")]
        [ExporterHeader(DisplayName = "下一地址")]
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -253,11 +253,11 @@
                    return task;
                }
                //查询当前任务池中是否存在状态为非新建的
                task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew);
                if (task != null)
                {
                    throw new Exception($"当前任务池中存在执行中的任务,任务号:【{task.TaskNum}】");
                }
                //task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew);
                //if (task != null)
                //{
                //    throw new Exception($"当前任务池中存在执行中的任务,任务号:【{task.TaskNum}】");
                //}
                if (workTpe.Equals("In"))
                {
                    task = BaseDal.QueryData(v=>v.TaskType==(int)TaskInboundTypeEnum.Inbound && v.TaskState==(int)TaskInStatusEnum.InNew).OrderByDescending(v=>v.Grade) .OrderBy(v=>v.CreateDate).First();
@@ -311,7 +311,7 @@
        /// <returns>返回任务实体对象,可能为null</returns>
        public Dt_Task QueryTakNnmTask(int taskNum)
        {
            return BaseDal.QueryFirst(v=>v.TaskNum== taskNum);
            return BaseDal.QueryFirst(v=>v.TaskId== taskNum);
        }
        /// <summary>
        /// ä¿®æ”¹å¤©è½¦ä»»åŠ¡çŠ¶æ€ï¼Œå°†å…¥åº“å–è´§æ‰§è¡Œä¸­ä¿®æ”¹ä¸ºå…¥åº“å–è´§å®Œæˆ
@@ -566,7 +566,7 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                var nawtask = BaseDal.QueryFirst(v=>v.TaskNum== taskNum);
                var nawtask = BaseDal.QueryFirst(v=>v.TaskId== taskNum);
                if (nawtask == null)
                {
                    throw new Exception(string.Format("天车放货完成任务未查询到任务号{0}", taskNum));
@@ -578,7 +578,7 @@
                    Dt_StockInfo stock = new Dt_StockInfo();
                    stock.LocationCode = nawtask.TargetAddress;
                    stock.Weight = (decimal)weight;
                    stock.StockStatus = (int)stockEnum.Lock;
                    stock.StockStatus = (int)stockEnum.Free;
                    stock.BatchNo = batck.InBatch;
                    if (nawtask.Remark== (int)MateTypeEnum.ZiChan)
                    {
@@ -588,9 +588,25 @@
                    {
                        stock.Remark = (int)MateTypeEnum.WaiGou;
                    }
                    Dt_StockInfo stockTow = new Dt_StockInfo();
                    stockTow.LocationCode = nawtask.NextAddress;
                    stockTow.Weight = (decimal)weight;
                    stockTow.StockStatus = (int)stockEnum.Free;
                    stockTow.BatchNo = batck.InBatch;
                    if (nawtask.Remark == (int)MateTypeEnum.ZiChan)
                    {
                        stockTow.Remark = (int)MateTypeEnum.ZiChan;
                    }
                    else
                    {
                        stockTow.Remark = (int)MateTypeEnum.WaiGou;
                    }
                    //修改货位信息
                    var location = _locationRepository.QueryFirst(v=>v.LocationCode==nawtask.TargetAddress);
                    location.LocationStatus = (int)LocationStatusEnum.InStock;
                    //修改货位信息
                    var locationtow = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress);
                    locationtow.LocationStatus = (int)LocationStatusEnum.InStock;
                    //处理任务信息
                    Dt_Task_hty taskhty = new Dt_Task_hty();
                    taskhty.TaskNum = nawtask.TaskNum;
@@ -603,10 +619,15 @@
                    taskhty.Grade = nawtask.Grade;
                    taskhty.Dispatchertime = nawtask.Dispatchertime;
                    taskhty.Remark = nawtask.Remark;
                    taskhty.PalletCode = nawtask.PalletCode;
                    taskhty.NextAddress = nawtask.NextAddress;
                    taskhty.CurrentAddress = nawtask.CurrentAddress;
                    //开始数据库事务
                    _unitOfWorkManage.BeginTran();
                    _stockRepository.AddData(stock);
                    _stockRepository.AddData(stockTow);
                    _locationRepository.UpdateData(location);
                    _locationRepository.UpdateData(locationtow);
                    _taskhtyRepository.AddData(taskhty);
                    BaseDal.DeleteData(nawtask);
                    //提交事务
@@ -615,14 +636,18 @@
                else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                {
                    //查找库存
                    var stock = _stockRepository.QueryFirst(v=>v.LocationCode== nawtask.TargetAddress);
                    var stock = _stockRepository.QueryFirst(v=>v.LocationCode== nawtask.SourceAddress);
                    if (stock == null) 
                    {
                        throw new Exception($"未找到库存信息货位号:【{nawtask.TargetAddress}】");
                    }
                    var Towstock = _stockRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress);
                    //修改货位状态
                    var location = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.TargetAddress);
                    var location = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.SourceAddress);
                    location.LocationStatus = (int)LocationStatusEnum.Free;
                    //修改货位状态
                    var locationTow = _locationRepository.QueryFirst(v => v.LocationCode == nawtask.NextAddress);
                    locationTow.LocationStatus = (int)LocationStatusEnum.Free;
                    //准备历史任务数据
                    Dt_Task_hty taskhty = new Dt_Task_hty();
                    taskhty.TaskNum = nawtask.TaskNum;
@@ -635,11 +660,16 @@
                    taskhty.Grade = nawtask.Grade;
                    taskhty.Dispatchertime = nawtask.Dispatchertime;
                    taskhty.Remark = nawtask.Remark;
                    taskhty.PalletCode = nawtask.PalletCode;
                    taskhty.NextAddress = nawtask.NextAddress;
                    taskhty.CurrentAddress = nawtask.CurrentAddress;
                    //开始数据库事务
                    _unitOfWorkManage.BeginTran();
                    _stockRepository.DeleteData(stock);
                    _stockRepository.DeleteData(Towstock);
                    _locationRepository.UpdateData(location);
                    _taskhtyRepository.AddData(taskhty);
                    _locationRepository.UpdateData(locationTow);
                    //_taskhtyRepository.AddData(taskhty);
                    BaseDal.DeleteData(nawtask);
                    //提交事务
                    _unitOfWorkManage.CommitTran();
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs
@@ -15,6 +15,7 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.BaseRepository;
@@ -43,6 +44,8 @@
        private readonly IRepository<dt_outstockinfo> _outStockRepository;
        private readonly IRepository<dt_batchInfo> _batchInfoRepository;
        private readonly IRepository<Dt_StockInfo> _StockInfoRepository;
        private readonly IRepository<Dt_LocationInfo> _LocationInfoRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        WebSocketServer _webSocketServer;
        public GZJJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService,
@@ -53,7 +56,9 @@
            IRepository<dt_outstockinfo> outStockRepository,
            IRepository<dt_storagemode> storagemodeRepository,
            IRepository<dt_batchInfo> batchInfoRepository,
            IRepository<Dt_StockInfo> StockInfoRepository)
            IRepository<Dt_StockInfo> StockInfoRepository,
            IRepository<Dt_LocationInfo> LocationInfoRepository,
            IUnitOfWorkManage unitOfWorkManage)
        {
            _taskService = taskService;//注入
            _webSocketServer = webSocketServer;
@@ -65,6 +70,8 @@
            _outStockRepository = outStockRepository;
            _batchInfoRepository = batchInfoRepository;
            _StockInfoRepository = StockInfoRepository;
            _LocationInfoRepository = LocationInfoRepository;
            _unitOfWorkManage = unitOfWorkManage;
        }
        public Task Execute(IJobExecutionContext context)
@@ -155,16 +162,16 @@
                try
                {
                    #region ç”Ÿæˆå‡ºåº“任务
                    if (!OHTJob.oHTReadData.R_ZXJ_isWork)
                    {
                        throw new Exception($"整形机投入使用信号为false");
                    }
                    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)
                    if (!OHTJob.oHTReadData.R_ZXJ_TCMode || !OHTJob.oHTReadData.R_HC_isReadyWork)
                    {
                        throw new Exception($"整形机不属于天车上料模式或天车放板信号为false");
                    }
@@ -177,11 +184,30 @@
                    //查询当前需要出库的批次号,以及出库物料类型
                    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();
                    var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus==0)
                        .OrderBy(v => v.CreateDate).ToList();
                    if (stocks.Count <= 0)
                    {
                        throw new Exception($"当前库存中没有【{batch.materType}】(0自产 1外购)且批次为【{batch.OutBatch}】的物料");
                    }
                    //查询货位
                    var locaOne=_LocationInfoRepository.QueryFirst(v=>v.LocationCode== stocks[0].LocationCode);
                    //查询相邻的货位
                    Dt_LocationInfo locaTow = new Dt_LocationInfo();
                    if (locaOne.Depth==1)
                    {
                        locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row &&v.Column== locaOne.Column && v.Depth==2);
                    }
                    else
                    {
                        locaTow = _LocationInfoRepository.QueryFirst(v => v.Row == locaOne.Row && v.Column == locaOne.Column && v.Depth == 1);
                    }
                    locaOne.LocationStatus = (int)LocationStatusEnum.Lock;
                    locaTow.LocationStatus = (int)LocationStatusEnum.Lock;
                    //查询相邻的库存
                    var BBstock = _StockInfoRepository.QueryFirst(v=>v.LocationCode== locaTow.LocationCode);
                    BBstock.StockStatus = 1;
                    stocks[0].StockStatus = 1;
                    //查询终点站台信息
                    var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "整形机放料位");
                    //开始创建任务
@@ -190,14 +216,26 @@
                    outtask.TaskType = (int)TaskOutboundTypeEnum.Outbound;
                    outtask.TaskState = (int)TaskOutStatusEnum.OutNew;
                    outtask.SourceAddress = stocks[0].LocationCode;
                    outtask.TargetAddress = station.Row + "-" + station.Column + "-1"; ;
                    outtask.TargetAddress = station.Row + "-" + station.Column + "-1";
                    outtask.NextAddress = locaTow.LocationCode;
                    outtask.Grade = 1;
                    outtask.WMSId = 3;
                    outtask.Remark = batch.materType;
                    outtask.PalletCode = "text";
                    outtask.CurrentAddress = "text";
                    _unitOfWorkManage.BeginTran();
                    _LocationInfoRepository.UpdateData(locaOne);
                    _LocationInfoRepository.UpdateData(locaTow);
                    _StockInfoRepository.UpdateData(BBstock);
                    _dt_taskRepositiry.AddData(outtask);
                    _StockInfoRepository.UpdateData(stocks[0]);
                    _unitOfWorkManage.CommitTran();
                    #endregion
                }
                catch (Exception ex)
                {
                    _unitOfWorkManage.RollbackTran();
                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3);
                }
            }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs
@@ -263,6 +263,11 @@
        /// </summary>
        [Description("进料小车安全位")]
        R_issafe,
        /// <summary>
        /// å†™è„‰å†²ä¿¡å·
        /// </summary>
        [Description("写脉冲信号")]
        W_ZXJ_HeartBeat,
    }
    public enum GZJDBName 
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs
@@ -55,10 +55,10 @@
                var ZXJdevice = Storage.Devices.Find(v => v.DeviceName == "阳极整形机");
                //规整机PLC对象
                var GZJevice = Storage.Devices.Find(v => v.DeviceName == "阳极规整机");
                if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
                {
                    return Task.CompletedTask;
                }
                //if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
                //{
                //    return Task.CompletedTask;
                //}
                try
                {
                    #region å¤©è½¦å®Œæˆä»»åŠ¡é€»è¾‘
@@ -111,7 +111,7 @@
                    #endregion
                    #region å¤©è½¦å‘送任务逻辑
                    if (oHTReadData.R_RunMode == (int)RunModeEnum.Automatic && oHTReadData.R_AlarmCode == (int)AlarmCodeEnum.Normal)
                    if (oHTReadData.R_RunMode == (int)RunModeEnum.Automatic )
                    {
                        if (oHTReadData.R_RunState == (int)RunStateEnum.Standby)
                        {
@@ -121,6 +121,8 @@
                                OHTTaskCommand? oHTTaskCommand = ConvertToOHTTaskCommand(task);
                                if (oHTTaskCommand != null)
                                {
                                    //给天车下发任务之前将此值写0
                                    device.SetValue(DeviceDBName.W_ConfirmSignal, 0);
                                    //todo:写入任务命令
                                    device.SetValue(DeviceDBName.W_Task_Type, oHTTaskCommand.W_Task_Type);
                                    device.SetValue(DeviceDBName.W_Pick_Line, oHTTaskCommand.W_Pick_Line);
@@ -184,7 +186,7 @@
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"任务源地址配置错误!");
                    return null;
                }
                oHtTaskCommand.W_CheckValue = task.TaskType + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
                oHtTaskCommand.W_CheckValue = 2 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
            }
            else if (task.TaskState == (int)TaskInStatusEnum.Line_Ingrab || task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
            {
@@ -203,7 +205,7 @@
                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"任务源地址配置错误!");
                    return null;
                }
                oHtTaskCommand.W_CheckValue = task.TaskType + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
                oHtTaskCommand.W_CheckValue = 3 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
            }
            
            if (task.WMSId==1)
@@ -249,6 +251,17 @@
                    InorOut = "In";
                }
            }
            else
            {
                if (workType.Equals("In"))
                {
                    InorOut = "Out";
                }
                else
                {
                    InorOut = "In";
                }
            }
            return task;
        }
    }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs
@@ -30,6 +30,7 @@
    [DisallowConcurrentExecution]
    public class ZXJJob : JobBase, IJob
    {
        public static bool W_ZXJ_Heat = true;
        private readonly ITaskService _taskService;
        WebSocketServer _webSocketServer;
        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
@@ -88,6 +89,16 @@
                        OHTJob.oHTReadData.R_HC_isReadyWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReadyWork);
                        OHTJob.oHTReadData.R_issafe = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_issafe);
                        #endregion
                        if (W_ZXJ_Heat)
                        {
                            W_ZXJ_Heat = false;
                            device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat);
                        }
                        else
                        {
                            W_ZXJ_Heat = true;
                            device.SetValue(ZXJDBName.W_ZXJ_HeartBeat, W_ZXJ_Heat);
                        }
                    }
                    else
                    {
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/~$ÓÐÉ«WMSÓëÌì³µ½»»¥Ð­Òé.docx
Binary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅЭÒé/~$»ú×éͨÐÅЭÒé.doc
Binary files differ