wxw
2 天以前 590ffa097029620655bf57947738df85dc8f5572
申请入库接口增加托盘重量
3个文件已修改
56 ■■■■■ 已修改文件
Admin.NET/WCS.Application/Model/TaskRequest.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/PLC/PLCService.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Util/HttpService.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -106,6 +106,10 @@
    /// 起始位置
    /// </summary>
    public string StartLocat { get; set; } = "";
    /// <summary>
    /// 托盘重量
    /// </summary>
    public string PalletWeight { get; set; } = "0";
}
Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -94,7 +94,7 @@
                    if (modTask.TaskType == TaskTypeEnum.Move)
                    {
                        // 移库目标地址
                        taskInfo = PLCCommon.GetEndPai(modTask.EndRoadway.Substring(1, 2), modTask.EndLocate.Substring(2, 2),
                        taskInfo = PLCCommon.GetEndPai(modTask.EndLocate.Substring(0, 2), modTask.EndLocate.Substring(2, 2),
                                    modTask.EndLocate.Substring(0, 2), modTask.EndLocate.Substring(4, 2),
                                    modTask.EndLocate.Substring(6, 2));
                        
@@ -265,7 +265,7 @@
                        // 写入跺机任务下发完成
                        var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "830");
                        // 将任务待执行改为正在执行
                        // 将移库任务待执行改为正在执行
                        _db.Updateable<WcsTask>()
                            .SetColumns(s => s.Status == TaskStatusEnum.Doing)
                            .Where(s => s.Id == modTask.Id)
@@ -1481,7 +1481,7 @@
                    }
                    //向WMS申请巷道
                    strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo, (int)palletHeightVal);
                    strMsg = http.RequestRoadWay(palletVal, modDevice.StationNum, taskModel, louCeng, ref EndLocate, ref TaskNo, (int)palletHeightVal, Convert.ToString(palletWeightVal));
                    if (!strMsg.Contains("-1"))
                    {
@@ -2211,6 +2211,13 @@
                            // 跺机非空闲等待
                            break;
                        }
                        //判断该巷道有没有待执行的移库/出库任务,优先执行移库/出库任务再执行入库任务
                        var taskOutMove = _db.Queryable<WcsTask>().First(s => s.Status == TaskStatusEnum.Wait && (s.TaskType == TaskTypeEnum.Out || s.TaskType == TaskTypeEnum.Move)
                        && s.StartRoadway == modDevice.StationNum);
                        if (taskOutMove != null)
                        {
                            break;
                        }
                        // 给PLC写入任务数据
                        var listResult = new List<Result>();
@@ -2808,6 +2815,7 @@
                            var retVal = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
                            break;
                        }
                        int chaNum = 0;
                        for (int i = 1; i <= boxNum; i++)
                        {
                            // 获取箱条码
@@ -2818,8 +2826,11 @@
                            if (string.IsNullOrEmpty(boxNo))
                            {
                                Log.Error(string.Format("码垛工位{0},箱码为null插码失败!请人工强制结批。", modDevice.StationNum));
                                // 写入插入结果 2:插码失败
                                plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
                                break;
                            }
                            Log.Information($"PLC请求插码,托盘号:{palletNo},箱码:{boxNo}");
                            // 验证箱码表是否存在此箱码
                            var boxInfo = _db.Queryable<WcsBoxInfo>().Where(w => w.IsDelete == false && w.BoxNo == boxNo).ToList();
                            if (boxInfo.Count == 0)
@@ -2844,20 +2855,24 @@
                                plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "2");
                                break;
                            }
                            chaNum++;
                        }
                        // 插码成功
                        var retVal2 = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1");
                        if (retVal2.IsSucceed)
                        if (chaNum == boxNum)
                        {
                            //更新已插码数量
                            checkTaskMedel.BoxCount += boxNum;
                            _db.Updateable(checkTaskMedel).ExecuteCommand();
                        }
                        else
                        {
                            // 写入失败
                            Log.Error(string.Format("写入PLC插码结果失败,码垛工位{1},托盘号{2}", modDevice.StationNum, palletNo));
                        }
                            // 插码成功
                            var retVal2 = plcConn.SetPlcDBValue(modAddCode.PosType, modDevice.DbNumber, modAddCode.PlcPos, "1");
                            if (retVal2.IsSucceed)
                            {
                                //更新已插码数量
                                checkTaskMedel.BoxCount += boxNum;
                                _db.Updateable(checkTaskMedel).ExecuteCommand();
                            }
                            else
                            {
                                // 写入失败
                                Log.Error(string.Format("写入PLC插码结果失败,码垛工位{1},托盘号{2}", modDevice.StationNum, palletNo));
                            }
                        }
                    }
                    break;
                case "40":
Admin.NET/WCS.Application/Util/HttpService.cs
@@ -32,8 +32,10 @@
    /// <param name="ceng"></param>
    /// <param name="endLocat"></param>
    /// <param name="taskNo"></param>
    /// <param name="palletHeight"></param>
    /// <param name="palletWeight"></param>
    /// <returns></returns>
    public string RequestRoadWay(string palletNo, string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo, int palletHeight)
    public string RequestRoadWay(string palletNo, string startLocat, string taskModel, string ceng, ref string endLocat, ref string taskNo, int palletHeight,string palletWeight)
    {
        Log.Information("调用WMS接口反馈任务接口-是否重复申请:" + palletNo);
        lock (OLock) 
@@ -51,7 +53,8 @@
                    HouseNo = "W01",
                    TaskModel = taskModel,
                    PalletHeight = palletHeight,
                    StartLocat = startLocat
                    StartLocat = startLocat,
                    PalletWeight = palletWeight
                };
                string url = Urls.WMSAddress + ":" + Urls.WMSPort;