海波 张
2025-05-12 80b87b4168415e34da04c75ad6dfea05bb4d97f3
空托修改
5个文件已添加
4个文件已修改
414 ■■■■■ 已修改文件
.vs/HH-0129_ZhongCeJinTan/v17/.wsuo 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH-0129_ZhongCeJinTan/v17/DocumentLayout.json 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VSWorkspaceState.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dispatch/WcsTask.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
process/TaskProcess.cs 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/TaskHelper.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wms/WMSModel.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HH-0129_ZhongCeJinTan/v17/.wsuo
Binary files differ
.vs/HH-0129_ZhongCeJinTan/v17/DocumentLayout.json
New file
@@ -0,0 +1,31 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
  "Documents": [],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": -1,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            }
          ]
        }
      ]
    }
  ]
}
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
New file
@@ -0,0 +1,66 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 3,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "WmsController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "WMSModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeDocumentMoniker": "wms\\WMSModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeToolTip": "wms\\WMSModel.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z",
              "EditorCaption": ""
            }
          ]
        }
      ]
    }
  ]
}
.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
New file
@@ -0,0 +1,65 @@
{
  "Version": 1,
  "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    }
  ],
  "DocumentGroupContainers": [
    {
      "Orientation": 0,
      "VerticalTabListWidth": 256,
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 3,
          "Children": [
            {
              "$type": "Bookmark",
              "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "WmsController.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeDocumentMoniker": "api\\WmsController.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
              "RelativeToolTip": "api\\WmsController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAADwvxsAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:08.931Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "WMSModel.cs",
              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeDocumentMoniker": "wms\\WMSModel.cs",
              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
              "RelativeToolTip": "wms\\WMSModel.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2025-05-12T09:36:05.064Z"
            }
          ]
        }
      ]
    }
  ]
}
.vs/VSWorkspaceState.json
New file
@@ -0,0 +1,7 @@
{
  "ExpandedNodes": [
    ""
  ],
  "SelectedNode": "\\HH.WCS.ZhongCeJinTan.sln",
  "PreviewInSolutionExplorer": false
}
dispatch/WcsTask.cs
@@ -398,18 +398,15 @@
                    //添加托盘
                    Container cntr1 = new Container();
                    cntr1.S_CODE = model.contNo;
                    cntr1.C_ENABLE = "Y";
                    cntr1.N_DETAIL_COUNT = 1;
                    cntr1.S_TYPE = "";
                    ContainerHelper.CreateCntr(cntr1);
                    if (model.code == "1" || model.contNo == "99") {
                        Container cntr1 = new Container();
                        cntr1.S_CODE = model.contNo;
                        cntr1.C_ENABLE = "Y";
                        cntr1.N_DETAIL_COUNT = 1;
                        cntr1.S_TYPE = "";
                        ContainerHelper.CreateCntr(cntr1);
                    }
                    //起点终点查找成功,创建作业
process/TaskProcess.cs
@@ -206,11 +206,54 @@
                {
                    LogHelper.Info($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务", "改道安全交互");
                    throw new Exception($"判断巷道可用失败,没找到对应{task.S_OP_CODE + "_2"}任务");
                }
                //判断接驳位可用
                var flag = true;
                //空托入库判断空托出缓存表,有对应记录直接改道到缓存表终点
                if (workFlow.FLOWCODE=="3") {
                    var kt = db.Queryable<MesKtTask>().Where(e => e.TOOLS_TPYE==task.TOOLSTYPE && e.Status=="N").First();
                    if (kt == null)
                    {
                        LogHelper.Info($"当前任务{task.S_CODE}没找到空托出缓存记录,不需要改道,直接修改参数6为1", "改道安全交互");
                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                        return;
                    }
                    else {
                        LogHelper.Info($"当前任务{task.S_CODE}找到空托出缓存记录:"+JsonConvert.SerializeObject(kt), "改道安全交互");
                        //查找给定终点
                        var end = LocationHelper.GetLoc(kt.Location_To);
                        //LogHelper.Info($"当前任务{task.S_CODE}改道终点信息" + JsonConvert.SerializeObject(end), "改道安全交互");
                        //if (end == null || end.S_LOCK_STATE != "无")
                        //{
                        //    LogHelper.Info($"当前任务{task.S_CODE}改道终点失败,终点:{kt.Location_To},没找到或有锁", "改道安全交互");
                        //}
                        LocationHelper.LockLoc(end.S_CODE, "入库锁", 1);
                        var endLoc = LocationHelper.GetLocOne(task.S_END_LOC);
                        endLoc.N_LOCK_STATE = 0;
                        endLoc.S_LOCK_STATE = "无";
                        db.BeginTran();
                        db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand();
                        //改一段任务终点
                        task.S_END_LOC = end.S_CODE;
                        db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC }).ExecuteCommand();
                        kt.Status = "Y";
                        db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand();
                        db.CommitTran();
                        WcsTask.WcsCancellTask(wcsTask);
                        var site = LocationHelper.GetAgvSiteZc(end.S_CODE);
                        LogHelper.Info($"任务{task.S_CODE}改道成功,改参数2为{site},参数6为1", "改道安全交互");
                        NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
                    }
                }
                if (workFlow.FLOWNAME.Contains("入库"))
                {
@@ -1198,10 +1241,10 @@
                    //查找起点
                    var start = LocationHelper.GetLoc(model.Location_From);
                    LogHelper.Info($"ZCSendTask入库任务下发起点信息"+JsonConvert.SerializeObject(start), "Mes任务下发");
                    LogHelper.Info($"ZCSendTask入库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                    if (start == null || start.S_LOCK_STATE!="无") {
                    if (start == null || start.S_LOCK_STATE != "无") {
                        LogHelper.Info($"ZCSendTask入库任务下发失败,起点:{model.Location_From},没找到或有锁", "Mes任务下发");
                        throw new Exception($"起点:{model.Location_From},没找到或有锁");
                    }
@@ -1210,7 +1253,7 @@
                    var connection = "";
                    //如果需要下发wcs立库,则需要寻找可用接驳位
                    if (workFlow.SENDWCS=="Y") {
                    if (workFlow.SENDWCS == "Y") {
                        //测试默认取一个接驳位
                        //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION);
@@ -1250,7 +1293,7 @@
                            throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败");
                        }
                        if (connection=="")
                        if (connection == "")
                        {
                            LogHelper.Info($"ZCSendTask入库任务下发寻找接驳位失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask入库任务下发寻找接驳位失败");
@@ -1271,20 +1314,20 @@
                    else if (workFlow.FLOWCODE == "3")
                    {
                        //空托入 优先入缓存区,没有入立库区
                        var ktHcq = Settings.EmptyPalletBufferArea;
                        //var ktHcq = Settings.EmptyPalletBufferArea;
                        cntrCount = 0;
                        var endList1 = LocationHelper.GetAllLocList1(ktHcq);
                        end = LocationHelper.FindEndcolByLoc(endList1, ktHcq);
                        LogHelper.Info($"ZCSendTask入库任务寻找空托缓存区终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                        if (end == null)
                        {
                        //var endList1 = LocationHelper.GetAllLocList1(ktHcq);
                        //end = LocationHelper.FindEndcolByLoc(endList1, ktHcq);
                        //LogHelper.Info($"ZCSendTask入库任务寻找空托缓存区终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                        //if (end == null)
                        //{
                            LogHelper.Info($"ZCSendTask入库任务没找到空托缓存区终点,寻找立库区空货位", "Mes任务下发");
                            end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                        }
                        else
                        {
                            connection = "";
                        }
                        //}
                        //else
                        //{
                        //    connection = "";
                        //}
                    }
                    else if (workFlow.FLOWCODE == "2")
                    {
@@ -1310,7 +1353,7 @@
                    }
                        LogHelper.Info($"ZCSendTask任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    LogHelper.Info($"ZCSendTask任务下发终点信息" + JsonConvert.SerializeObject(end), "Mes任务下发");
                    if (end == null) {
                        LogHelper.Info($"ZCSendTask任务下发失败,终点库区{workFlow.ENDAREA},没找到终点", "Mes任务下发");
@@ -1318,7 +1361,7 @@
                    }
                    //添加托盘物料关联表
                    if (cntrCount!=0)
                    if (cntrCount != 0)
                    {
                        CntrItemRel rel = new CntrItemRel();
                        rel.S_ITEM_CODE = model.PROD_NO;
@@ -1360,7 +1403,7 @@
                        rel.itemFeature = model.PROD_TECH;
                        ContainerHelper.CreateCntrItem(rel);
                    }
                    //添加托盘
@@ -1370,13 +1413,13 @@
                    cntr1.N_DETAIL_COUNT = cntrCount;
                    cntr1.S_TYPE = "";
                    LogHelper.Info($"添加容器信息"+JsonConvert.SerializeObject(cntr1), "Mes任务下发");
                    LogHelper.Info($"添加容器信息" + JsonConvert.SerializeObject(cntr1), "Mes任务下发");
                    if (ContainerHelper.CreateCntr(cntr1))
                    {
                        LogHelper.Info($"添加容器信息成功" , "Mes任务下发");
                        LogHelper.Info($"添加容器信息成功", "Mes任务下发");
                    }
                    else {
                        LogHelper.Info($"添加容器信息失败" , "Mes任务下发");
                        LogHelper.Info($"添加容器信息失败", "Mes任务下发");
                    }
@@ -1416,12 +1459,17 @@
                    };
                    //创建作业
                    if (WMSHelper.CreateWmsWork(operation)) {
                    if (WMSHelper.CreateWmsWork(operation))
                    {
                        LogHelper.Info($"ZCSendTask入库作业创建成功{operation.S_CODE}", "Mes任务下发");
                        result.errMsg = "入库作业创建成功";
                        result.errCode = 0;
                        result.success = true;
                        return result;
                    }
                    else {
                        LogHelper.Info($"ZCSendTask入库任务下发创建作业失败", "Mes任务下发");
                        throw new Exception($"ZCSendTask入库任务下发创建作业失败");
                    }
@@ -1460,7 +1508,7 @@
                            start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY);
                        }
                    }
                    else if (workFlow.FLOWCODE == "7") {
                        //寻找立库区空托
@@ -1470,11 +1518,47 @@
                    LogHelper.Info($"ZCSendTask出库任务下发起点信息" + JsonConvert.SerializeObject(start), "Mes任务下发");
                    if (start == null)
                    if (workFlow.FLOWCODE == "7" && start == null)
                    {
                        LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发");
                        throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                        //空托出没找到起点,先缓存到空托表
                        MesKtTask req = new MesKtTask()
                        {
                            Location_From_Area = workFlow.STARTAREA,
                            Location_To = end.S_CODE,
                            Priority = model.Priority,
                            CreateDate = DateTime.Now,
                            BUSI_TYPE = model.BUSI_TYPE,
                            TOOLS_TPYE = model.TOOLS_TPYE,
                            Status = "N"
                        };
                        if (TaskHelper.CreateMesKtTask(req))
                        {
                            LogHelper.Info($"ZCSendTask空托出创建成功", "Mes任务下发");
                            result.errMsg = "空托出库缓存成功";
                            result.errCode = 0;
                            result.success = true;
                            return result;
                        }
                        else
                        {
                            LogHelper.Info($"ZCSendTask空托出缓存失败", "Mes任务下发");
                            throw new Exception($"ZCSendTask空托出缓存失败");
                        }
                    }
                    else {
                        if (start == null)
                        {
                            LogHelper.Info($"ZCSendTask出库任务下发失败,起点库区{workFlow.STARTAREA},没找到起点", "Mes任务下发");
                            throw new Exception($"起点库区{workFlow.STARTAREA},没找到起点");
                        }
                    }
                    //获取托盘码
                    var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE);
@@ -1569,6 +1653,10 @@
                        result.success = true;
                        return result;
                    }
                    else {
                        LogHelper.Info($"ZCSendTask出库任务下发创建作业失败", "Mes任务下发");
                        throw new Exception($"ZCSendTask出库任务下发创建作业失败");
                    }
                }
                else {
wms/TaskHelper.cs
@@ -796,5 +796,24 @@
            }
        }
        internal static bool CreateMesKtTask(MesKtTask cntr)
        {
            try
            {
                var db = new SqlHelper<object>().GetInstance();
                return db.Insertable<MesKtTask>(cntr).ExecuteCommand() > 0;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogHelper.Info($"添加Mes空托缓存异常" + ex.Message, "Mes任务下发");
                throw;
            }
        }
    }
}
wms/WMSModel.cs
@@ -1053,10 +1053,69 @@
    //}
    /// <summary>
    /// 空托出缓存表
    /// </summary>
    [ST("空托出缓存表")]
    public class MesKtTask : BaseModel
    {
        /// <summary>
        /// 上下架表
        /// 工装类型 胎侧25,内衬35,胎体/帘布45,带束55,胎圈65,胎面15,纤维85,钢丝95
        /// </summary>
        [ST("上下架记录")]
        public string TOOLS_TPYE { get; set; }
        /// <summary>
        /// 起始库区编号
        /// </summary>
        public string Location_From_Area { get; set; }
        /// <summary>
        /// 目的库位编号
        /// </summary>
        public string Location_To { get; set; }
        /// <summary>
        /// 优先级0-普通:任务生成时,均为此级别;1-加急;2-紧急
        /// </summary>
        public int Priority { get; set; }
        /// <summary>
        /// 业务类型
        /// 1    半成品满托入库
        /// 2    成型机半桶回库
        /// 3    成型机空桶回库
        /// 4    成型机满托出库
        /// 5    成型机带束回库
        /// 6    成型机带束满托出库
        /// 7    半成品空托出库
        /// 8    胶料入库
        /// 9    呼叫胶料
        /// 10    叠盘机空托入库
        /// 11    胶料半桶回库
        /// 12    空架子入库
        /// 13    胎圈空托入不带垫片
        /// 14    胎圈空托出不带垫片
        /// 100    绑定
        /// 200    解绑
        /// </summary>
        public string BUSI_TYPE { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateDate { get; set; }
        /// <summary>
        /// 空托任务是否创建  Y/N   默认N
        /// </summary>
        public string Status { get; set; }
    }
    /// <summary>
    /// 上下架表
    /// </summary>
    [ST("上下架记录")]
        public class RecordUpAndDown : BaseModel
        {