1
pulg
2025-07-02 265e2fa111ae3e6b3ff242d2478d3facc06f7d6b
HH.WCS.QingXiNongfu/process/TaskProcess.cs
@@ -387,31 +387,34 @@
                }
                //终点货位为 YWLT1TSJCD  或者 YWLT2TSJCD 的 要取货完成解锁起点,解绑起点,绑定终点,卸货完成,解锁终点  2025年6月10日  Plg
                if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD")
                {
                    //解绑起点
                    CacheBitUpdate(mst, load: true);
                    //绑定终点
                    CacheBitUpdate(mst, load: false);
                }
                //if (mst.S_END_LAREA?.Trim() == "YWLT1TSJCD" || mst.S_END_LAREA?.Trim() == "YWLT2TSJCD")
                //{
                //    //解绑起点
                //    CacheBitUpdate(mst, load: true);
                //    //绑定终点
                //    CacheBitUpdate(mst, load: false);
                //}
                LocationHelper.UnLockLoc(mst.S_START_LOC.Trim());
            }
            //new List<string> { "成品满框-入库", "" }
            if (state == 6 || state == 5)
            {
                ///只需要释放货位就行了
                if (mst.S_END_LOC?.Trim() == "YWLT1TSJCD" || mst.S_END_LOC?.Trim() == "YWLT2TSJCD")
                {
                    LocationHelper.UnLockLoc(mst.S_END_LOC.Trim());
                    return r;
                }
                LogHelper.Info($"任务类型:{mst.S_TYPE}- 动作:{state}. 是否5算6?{mst.S_TYPE.Contains("成品满框") || mst.S_TYPE.Contains("备货")} ");
                if (mst.S_TYPE.Contains("备货"))
                {
                    if (state == 6) goto vvv;
                }
                else if (state == 5) goto vvv;
                else if (state == 5)
                {
                    ///只需要释放货位就行了
                    //if (mst.S_END_LAREA?.Trim() == "YWLT1TSJCD" || mst.S_END_LAREA?.Trim() == "YWLT2TSJCD")
                    //{
                    //    LocationHelper.UnLockLoc(mst.S_END_LOC.Trim());
                    //    return r;
                    //}
                    goto vvv;
                }
                if (mst.S_TYPE.Trim() == "J空瓶坯-出库")
                {
@@ -1109,6 +1112,12 @@
            {
                CacheBitCancelUpdate(mst, out r, true);
            }
            if (state == 9)
            {
                CacheBitUpdate(mst, load: true);
                var g = LocationHelper.UnLockLoc(mst.S_END_LOC.Trim());
                var T = LocationHelper.UnLockLoc(mst.S_START_LOC.Trim());
            }
            return r;
        }
@@ -1346,6 +1355,48 @@
                        else return false;
                    }
                }
                //else if (taskType.Contains("收缩膜叉运-入库") || taskType.Contains("收缩膜叉运-入库") || taskType.Contains("收缩膜叉运-货架出提升机"))
                //{
                //    var ts = 5;
                //    start = LocationHelper.GetAgvSite(mst.S_START_LOC);//起点站点
                //    end = LocationHelper.GetAgvSite(mst.S_END_LOC);//终点站点
                //    var dic = new Dictionary<string, string>();
                //    dic.Add("From", start.ToString());
                //    dic.Add("To", end.ToString());
                //    dic.Add("FUNC", "0");
                //    dic.Add("DATA", "0");
                //    int height = 0;
                //    var itemcode = "";
                //    var ItemLayer = 0;
                //    var db = new SqlHelper<object>().GetInstance();
                //    var cirs = ContainerHelper.GetCntrItemRel(mst.S_CNTRS.Split(',').ToList().FirstOrDefault()).First();
                //    LogHelper.Info($"原物料 收缩膜叉运 容器物料表数据{JsonConvert.SerializeObject(cirs)}", "HosttoagvTask");
                //    if (cirs != null)
                //    {
                //        var ItemF = db.Queryable<ItemInfo>().Where(a => a.S_ITEM_CODE == cirs.S_ITEM_CODE).First();
                //        itemcode = ItemF.S_ITEM_CODE;
                //        ItemLayer = ItemF.ItemLayer;
                //        if (mst.N_START_LAYER < 3 || mst.N_END_LAYER < 3)
                //        {
                //            height = ItemF.trayHeight;
                //        }
                //        else
                //        {
                //            height = ItemF.trayHeight1;
                //        }
                //    }
                //    dic.Add("ItemHeight", height.ToString());
                //    dic.Add("StaItemHeight", "0");
                //    dic.Add("TrayType", $"{mst.N_START_LAYER}{mst.N_END_LAYER}");
                //    var ggh = NDC.AddTaskNew(ts, mst.N_PRIORITY, mst.S_TASK_NO, dic);
                //    if (ggh)
                //    {
                //        TaskHelper.UpdateStatus(mst, "已推送");
                //        result = true;
                //        GeneralInterFaceFunc(mst, 8 + "");
                //    }
                //}
                //else if ( mst.S_END_LAREA == "WJBQDDKQ" || mst.S_END_LAREA == "SXBQDDKQ"|| mst.S_START_LAREA == "WJBQDDKQ" ||mst.S_START_LAREA == "SXBQDDKQ" )
                //{
                //    if (start == 0)
@@ -1413,6 +1464,7 @@
                //}
                else
                {
                    if (start == 0)
                    {
                        //bool flag3 = ;
@@ -1523,12 +1575,10 @@
                    }
                }
                if (Settings.GetDeviceInfoList().Find(x => x.location.Contains(mst.S_END_LOC))?.deviceType == 13 && mst.S_TYPE.Contains("收缩膜叉运"))
                {
                    end = 7682;
                }
                //if (Settings.GetDeviceInfoList().Find(x => x.location.Contains(mst.S_END_LOC))?.deviceType == 13 && mst.S_TYPE.Contains("收缩膜叉运"))
                //{
                //    end = 7027;
                //}
                LogHelper.Info("SendTask " + mst.S_TASK_NO);
                Console.WriteLine("start=" + start.ToString());
@@ -1609,6 +1659,9 @@
        /// <returns></returns>
        public static bool CreateTransport(string wWorkNo, string start, string end, string taskType, List<string> cntrs, int startLayer, int endLayer, int trayCarryCount = 1, int priority = 1, string note = "", string TwoEndLoc = "")
        {
            if (string.IsNullOrEmpty(start) || string.IsNullOrEmpty(end))
                return false;
            var result = false;
            //批次号存托盘号,1~3个托盘
            var trayCodes = string.Join(",", cntrs);