1
czw
7 天以前 c97f5e8db6360135d481e933fdac5d3682057adc
HH.WCS.QingXiNongfu/core/Monitor.cs
@@ -1470,11 +1470,10 @@
                {
                    // var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "无菌标签出库" && x.WorkType == 6 && x.SQL_State == "执行中").FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).OrderBy(x => x.TagOverTime).ToList();
                    var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "无菌标签出库" && x.WorkType == 6 && x.SQL_State == "执行中").FindAll(x => x.OutNum > 0).OrderBy(x => x.TagOverTime).ToList();
                    if (LocLock(WJ_BQ.RK_BBHJQ))
                    {
                        //标签入库
                        YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ);
                    }
                    //标签入库
                    YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ);
                    if (yuworders.Any())
                    {
                        LogHelper.Info($" 无菌出库  工单开启中 ");
@@ -1494,11 +1493,10 @@
                {
                    // var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "无菌标签出库" && x.WorkType == 6 && x.SQL_State == "执行中").FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).OrderBy(x => x.TagOverTime).ToList();
                    var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "中水标签出库" && x.WorkType == 6 && x.SQL_State == "执行中").FindAll(x => x.OutNum > 0).OrderBy(x => x.TagOverTime).ToList();
                    if (LocLock(SX_BQ.RK_BBHJQ))
                    {
                        //水标入库
                        YwlBQ_CreInwork(SblocsFirst, SX_BQ.RK_BQDDQ, SX_BQ.RK_BBHJQ);
                    }
                    //水标入库
                    YwlBQ_CreInwork(SblocsFirst, SX_BQ.RK_BQDDQ, SX_BQ.RK_BBHJQ);
                    if (yuworders.Any())
                    {
                        LogHelper.Info($" 无菌出库  工单开启中 ");
@@ -1713,13 +1711,13 @@
                        }
                        if (order != null)
                        {
                            var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
                            if (Porder == null)
                            {
                                LogHelper.CErrorLog("小水出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                                yuworders.Remove(order);
                                goto retuse;
                            }
                            // var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
                            //if (Porder == null)
                            //{
                            //    LogHelper.CErrorLog("小水出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                            //    yuworders.Remove(order);
                            //    goto retuse;
                            //}
                            var oto = new List<string>();
                            //if (!string.IsNullOrEmpty(order.TagOver))
                            //    oto = order.TagOver.Split(',').ToList();
@@ -2001,18 +1999,26 @@
                            var cir = cirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault();
                            if (CNTR.FirstOrDefault().S_TYPE == BQ_PRA.B)
                            {
                                var s_type = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE).FirstOrDefault()?.N_BQ_TRAY_TYPE ?? 0;
                                Location Endbit = null;
                                //if (area == area/* WJ_BQ.RK_BQJBQ*/)
                                //{
                                var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false);
                                var Type = s_type == .5 ? 1 : (s_type == .75 ? 2 : 3);
                                Endbit = hjs.FindAll(x => x.N_CURRENT_NUM == 0 && x.N_LAYER == Type).OrderBy(x => x.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault();
                                if (Endbit != null)
                                if (cirs.FirstOrDefault().S_ITEM_NAME.Contains("空框"))//空框 退到空框缓存区
                                {
                                    var re = TaskProcess.CreateTransport("", lastfull.S_LOC_CODE.Trim(), Endbit.S_LOC_CODE, "标签叉运-线边标签退库", CNTR.Select(x => x.S_CNTR_CODE).ToList(), 1, 1, 1, 62);
                                    LogHelper.CSucessLog($"from {lastfull.S_LOC_CODE} to {Endbit.S_LOC_CODE} 标签叉运-接驳标签退库 ,创建{re}");
                                    var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false);
                                }
                                else
                                {
                                    var s_type = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE).FirstOrDefault()?.N_BQ_TRAY_TYPE ?? 0;
                                    Location Endbit = null;
                                    //if (area == area/* WJ_BQ.RK_BQJBQ*/)
                                    //{
                                    var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false);
                                    var Type = s_type == .5 ? 1 : (s_type == .75 ? 2 : 3);
                                    Endbit = hjs.FindAll(x => x.N_CURRENT_NUM == 0 && x.N_LAYER == Type).OrderBy(x => x.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault();
                                    if (Endbit != null)
                                    {
                                        var re = TaskProcess.CreateTransport("", lastfull.S_LOC_CODE.Trim(), Endbit.S_LOC_CODE, "标签叉运-线边标签退库", CNTR.Select(x => x.S_CNTR_CODE).ToList(), 1, 1, 1, 62);
                                        LogHelper.CSucessLog($"from {lastfull.S_LOC_CODE} to {Endbit.S_LOC_CODE} 标签叉运-接驳标签退库 ,创建{re}");
                                    }
                                }
                                // }
                                //else
@@ -2052,7 +2058,6 @@
                //执行退库。。。 
                // Console.WriteLine($"{v.FirstOrDefault()?.S_LOC_CODE} 需要退库-- 自动退库-未实现");
            }
        }
        private static void YwlPETKOutOrder(string v, string v1, string v2, int v3 = 3)
@@ -4573,7 +4578,7 @@
                if (PLC.deviceName.Contains("T2"))
                    pline = "T2提升机-纸箱";
                var orkOrd = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == pline && x.WorkType == 6 && x.SQL_State == "执行中");
                var orkOrd = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == pline && x.WorkType == 6 && x.SQL_State == "执行中").ToList();
                bool can = false;
                if (orkOrd.Any())
                {
@@ -4586,10 +4591,10 @@
                    can = true;
                }
                orkOrd = orkOrd.FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10);
                orkOrd = orkOrd.FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).ToList();
                ReadCCK = can;
                if (orkOrd.Any())
                    foreach (var od in orkOrd.OrderBy(x => x.TagOverTime).ThenBy(x => x.OutNum))
                    foreach (var od in orkOrd.OrderBy(x => x.TagOverTime).ThenBy(x => x.OutNum).ToList())
                    //foreach (var od in od2.ToList())
                    {
                        var l2 = new List<string>() { "YWLAQWJ", "YWLBQWJ" };//, "YWLCQSX", "YWLDQWJ" };
@@ -4778,11 +4783,11 @@
                                        var db = new SqlHelper<object>().GetInstance();
                                        od.TagOverTime = DateTime.Now;
                                        od.TagOver = StartBit.S_AREA_CODE;
                                        if (od.OutNum >= StartBit.N_CURRENT_NUM)
                                        {
                                            od.OutNum = od.OutNum - StartBit.N_CURRENT_NUM;
                                        }
                                        var ggf = db.Updateable(od).UpdateColumns(it => new { it.TagOverTime, it.TagOver, it.OutNum }).ExecuteCommand();
                                        //if (od.OutNum >= StartBit.N_CURRENT_NUM)
                                        //{
                                        //    od.OutNum = od.OutNum - StartBit.N_CURRENT_NUM;
                                        //}
                                        var ggf = db.Updateable(od).UpdateColumns(it => new { it.TagOverTime, it.TagOver }).ExecuteCommand();
                                        LogHelper.Info($"上提升机任务 更新工单的时间影响行数: {ggf}");
                                        // var r = new RowLock { S_LOCK_SRC = od.SQL_ItemCode, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "出库锁", S_AREA_CODE = StartBit.S_AREA_CODE, N_ROW = StartBit.N_ROW };