111
cjs
4 天以前 99004292e20a9e1efa4e3b11b8c319bfd796912c
HH.WCS.Mobox3.NongFuLinZhi/process/TaskProcess.cs
@@ -1105,15 +1105,27 @@
                        Extend2 = db.Queryable<Location>().Where(a => a.S_CODE == mst.S_END_LOC).First().S_AGV_SITE;
                        if (mst.N_START_LAYER > 1)
                        {
                            Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE;
                            if(mst.S_TYPE != "瓶坯非急产空框入库" && mst.S_TYPE != "瓶坯接驳位入库" && mst.S_TYPE != "瓶盖空托入库")
                            {
                                Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == mst.N_START_LAYER).First().S_AGV_SITE;
                            }
                        }
                        if (mst.N_END_LAYER > 1)
                        {
                            Extend2 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_END_LOC && a.N_LAYER == mst.N_END_LAYER).First().S_AGV_SITE;
                        }
                        if(mst.S_TYPE == "瓶坯非急产补满框" || mst.S_TYPE == "瓶盖非急产补满框" || mst.S_TYPE == "瓶坯非急产补空框" || mst.S_TYPE == "瓶盖非急产补空框" || mst.S_TYPE == "注塑即产满托下线(瓶坯)")
                        if(mst.S_TYPE == "瓶坯非急产补满框" || mst.S_TYPE == "瓶盖非急产补满框大包装" || mst.S_TYPE == "瓶坯非急产补空框" || mst.S_TYPE == "瓶盖非急产补空框" || mst.S_TYPE == "注塑即产满托下线(瓶坯)")
                        {
                            Extend2 = Settings.dXSites.Where(it => it.loc == mst.S_END_LOC).First().site.ToString();
                        }
                        if(mst.S_TYPE == "接驳位入库")
                        {
                            if(mst.S_CNTR_CODE.Split(',').ToList().Count != 2)
                            {
                                Extend1 = db.Queryable<LocationExt>().Where(a => a.S_LOC_CODE == mst.S_START_LOC && a.N_LAYER == 1).First().S_AGV_SITE;
                            }
                        }
                        Extend3 = "0";
@@ -1125,28 +1137,28 @@
                        //Extend4 = db.Queryable<LinjiangBCPWorkOrder>().Where(a => a.S_WorkNo == workNo).First().S_UsingNow == "N" ? "2" : "1";
                        //瓶坯注塑机站点根据配置文件获取
                        if (taskType.Contains("注塑") && taskType.Contains("瓶坯"))
                        {
                            var devInfo = Settings.deviceInfos.Where(a => (a.TN_Location.Contains(mst.S_START_LOC) || a.TN_Location.Contains(mst.S_END_LOC)) && a.enable == 1).FirstOrDefault();
                            string machine = (devInfo.TN_Location[0] == mst.S_START_LOC || devInfo.TN_Location[0] == mst.S_END_LOC) ? "A" : "B";
                            string machineTwo = devInfo.deviceName.Split('-')[1] + machine;
                            LogHelper.Info($"机台:{machineTwo}");
                            var siteInfo = Settings.pPZSJSites.Where(a => a.siteName == machineTwo && a.enable == 1).FirstOrDefault();
                            if (siteInfo != null)
                            {
                                if (taskType.Contains("空托上线"))
                                {
                                    //改变终点站点
                                    Extend2 = siteInfo.site[1];
                                }
                                else
                                {
                                    //改变起点站点
                                    Extend1 = siteInfo.site[0];
                                }
                            }
                            else LogHelper.Info("配置文件未配置瓶坯注塑机站点");
                        }
                        //if (taskType.Contains("注塑") && taskType.Contains("瓶坯"))
                        //{
                        //    var devInfo = Settings.deviceInfos.Where(a => (a.TN_Location.Contains(mst.S_START_LOC) || a.TN_Location.Contains(mst.S_END_LOC)) && a.enable == 1).FirstOrDefault();
                        //    string machine = (devInfo.TN_Location[0] == mst.S_START_LOC || devInfo.TN_Location[0] == mst.S_END_LOC) ? "A" : "B";
                        //    string machineTwo = devInfo.deviceName.Split('-')[1] + machine;
                        //    LogHelper.Info($"机台:{machineTwo}");
                        //    var siteInfo = Settings.pPZSJSites.Where(a => a.siteName == machineTwo && a.enable == 1).FirstOrDefault();
                        //    if (siteInfo != null)
                        //    {
                        //        if (taskType.Contains("空托上线"))
                        //        {
                        //            //改变终点站点
                        //            Extend2 = siteInfo.site[1];
                        //        }
                        //        else
                        //        {
                        //            //改变起点站点
                        //            Extend1 = siteInfo.site[0];
                        //        }
                        //    }
                        //    else LogHelper.Info("配置文件未配置瓶坯注塑机站点");
                        //}
                    }
                    Console.WriteLine($"[SendTask]:TaskNo={mst.S_CODE.Trim()},start={Extend1},end={Extend2}");
@@ -1310,6 +1322,7 @@
                                    {
                                        locInfo = locInfo.Where(a => a.N_ROW == 1 || a.N_ROW == 2).ToList();
                                    }
                                    LogHelper.Info($"入库算法02:查询到可入货位的数量为:{locInfo.Count}");
                                    foreach (var a in locInfo)
                                    {
@@ -1324,7 +1337,7 @@
                                                var endItemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == endCntrInfo.S_CNTR_CODE).First();
                                                if (endItemInfo != null)
                                                {
                                                    endItemCode = endItemInfo.S_ITEM_CODE;
                                                    endItemCode = endItemInfo.S_ITEM_CODE + endItemInfo.S_BATCH_NO;
                                                }
                                            }
                                            else
@@ -1345,7 +1358,7 @@
                                                    else
                                                    {
                                                        //查询后面当前货位后一个
                                                        result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW > a.N_ROW && b.S_LOCK_STATE == "无").OrderBy(b => b.N_COL).First();
                                                        result = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.S_AREA_CODE && b.N_ROW == a.N_ROW && b.N_COL > a.N_COL && b.S_LOCK_STATE == "无").OrderBy(b => b.N_COL).First();
                                                    }
                                                    if (result != null)
                                                    {
@@ -1910,7 +1923,7 @@
        /// </summary>
        /// <param name="cntr"></param>
        /// <returns></returns>
        internal static bool BindLocCntr(string loc, string cntr, string itemCode, string batchNo, string deviceName = "", string itemlayer = "")
        internal static bool BindLocCntr(string loc, string cntr, string itemCode, string batchNo, string deviceName = "", string itemlayer = "",string itemName = "")
        {
            LogHelper.Info($"绑定货位容器表,loc:{loc},cntr:{cntr}");
            bool result = true;
@@ -1941,7 +1954,7 @@
                        }
                        if (!string.IsNullOrEmpty(itemCode))
                        {
                            BindCntrItem(cntrCode, itemCode, batchNo, itemlayer);
                            BindCntrItem(cntrCode, itemCode, batchNo, itemlayer, itemName);
                        }
                    }
                }
@@ -1957,7 +1970,7 @@
        /// <param name="batchNo"></param>
        /// <param name="qty"></param>
        /// <returns></returns>
        internal static bool BindCntrItem(string trayCode, string itemCode, string batchNo, string itemlayer = "")
        internal static bool BindCntrItem(string trayCode, string itemCode, string batchNo, string itemlayer = "",string itemName = "")
        {
            LogHelper.Info($"绑定容器物料表,trayCode:{trayCode}");
            var res = false;
@@ -1972,8 +1985,8 @@
                var info = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE.Trim() == trayCode.Trim()).First();
                if (info == null)
                {
                    var cir = new CntrItemRel { S_CNTR_CODE = trayCode, S_BATCH_NO = batchNo, S_ITEM_CODE = itemCode, S_ITEM_MODEL = itemlayer };
                    if (db.Insertable<CntrItemRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"容器物料表绑定成功,托盘号:{trayCode},物料编码:{itemCode},物料层数:{itemlayer}");
                    var cir = new CntrItemRel { S_CNTR_CODE = trayCode, S_BATCH_NO = batchNo, S_ITEM_CODE = itemCode, S_ITEM_MODEL = itemlayer,S_ITEM_NAME = itemName };
                    if (db.Insertable<CntrItemRel>(cir).ExecuteCommand() > 0) LogHelper.Info($"容器物料表绑定成功,托盘号:{trayCode},物料编码:{itemCode},物料层数:{itemlayer},物料名称:{itemName}");
                }