1
pulg
9 小时以前 8741f7e84dc7c0a1150c92758ebb2cf4b7d18c73
1
4个文件已修改
84 ■■■■ 已修改文件
HH.WCS.QingXiNongfu/core/Monitor.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/process/DeviceProcess.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/process/TaskProcess.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/wms/TaskHelper.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
                    }
                    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);
                    }
                    if (yuworders.Any())
                    {
                        LogHelper.Info($" 无菌出库  工单开启中 ");
@@ -2001,6 +1999,12 @@
                            var cir = cirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault();
                            if (CNTR.FirstOrDefault().S_TYPE == BQ_PRA.B)
                            {
                                if (cirs.FirstOrDefault().S_ITEM_NAME.Contains("空框"))//空框 退到空框缓存区
                                {
                                    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*/)
@@ -2013,6 +2017,8 @@
                                    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
@@ -4573,7 +4579,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 +4592,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 +4784,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 };
HH.WCS.QingXiNongfu/process/DeviceProcess.cs
@@ -334,7 +334,7 @@
                            }
                            else
                            {
                                if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 3 || !string.IsNullOrEmpty(_clrel0.S_TYPE))
                                if (!string.IsNullOrEmpty(_clrel0.S_TYPE))
                                    goto ballll;
                            }
                        }
@@ -2312,7 +2312,7 @@
                        }
                        //获取指定库区 指定排 满的货位 然后排除 比最大列还小的空货位
                        var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0).ToList();
                        var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0 && e.S_LOCK_STATE == "无").ToList();
                        if (Mhw.Count() > 0)
                        {
                            var RowLis = Mhw.GroupBy(e => e.N_ROW).Select(f => f.First()).ToList();
@@ -4219,6 +4219,13 @@
                    }
                    if (hojs.N_CURRENT_NUM == 0)//上托盘 否则下托盘
                    {
                        List<string> TaskState = new List<string>() { "完成", "取消" };
                        var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_START_LOC == location && !TaskState.Contains(x.S_B_STATE));
                        if (TaskListNum.Count() > 0)
                        {
                            throw new Exception("只能生成一个任务 进出");
                        }
                        //上托盘 满托
                        var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "满托").OrderByDescending(g => g.N_PRI).ToList();
                        var AreaList = jcjykk.Select(e => e.S_AREA_CODE).Distinct().ToList();
@@ -4277,11 +4284,17 @@
                    {
                        var time = LocationHelper.GetT_FULL_TIME(location);
                        LogHelper.Info(location + ":托盘放置时间:(" + time + ") 货位托盘数量(" + hojs.N_CURRENT_NUM + ")");
                        if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalMinutes < 1)
                        if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalSeconds < 10)
                        {
                            PlcHelper.SendHex(plc.address, "3F00110D0A");
                            return false;
                        }
                        List<string> TaskState = new List<string>() { "完成", "取消", "推送异常" };
                        var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LOC == location && !TaskState.Contains(x.S_B_STATE));
                        if (TaskListNum.Count() > 0)
                        {
                            throw new Exception("只能生成一个任务 进出");
                        }
                        LocCntrRel _clrel = LocationHelper.GetLocCntrRel(hojs.S_LOC_CODE).FirstOrDefault();
                        //下托盘 空框
                        var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "空托").OrderByDescending(g => g.N_PRI).ToList();
HH.WCS.QingXiNongfu/process/TaskProcess.cs
@@ -433,9 +433,11 @@
                    && mst.S_TYPE.Trim() != "青溪纸箱搬运物料"
                    && !mst.S_TYPE.Trim().Contains("自由点对点"))
                {
                    if (mst.S_END_LOC != "YWLT1TSJ")
                    {
                    CacheBitUpdate(mst, load: false, mst.S_NOTE);
                }
                }
                if (mst.S_TYPE.Trim().Contains("成品-空托上线"))
                {
@@ -479,7 +481,8 @@
                    {
                        // to.AlQty += mst.S_CNTRS.Split(',').Length;// mst.S_CNTRS.Substring(1).Split('v').Length;
                        to.OutNum -= mst.S_CNTRS.Split(',').Length;
                        db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand();
                        var ggi = db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand();
                        LogHelper.Info($"更新 提升机上料工单表数量为 {to.OutNum} 影响行数为:{ggi}");
                    }
                }
@@ -1353,18 +1356,18 @@
                        else return false;
                    }
                }
                else if (taskType.Contains("瓶坯翻斗机空托") && mst.S_END_LAREA == "QXPPXXQ")
                else if (taskType.Contains("瓶坯翻斗机空托"))
                {
                    start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                    end = LocationHelper.GetAgvSite(mst.S_END_LOC, "2");
                    LogHelper.Info($"瓶坯机任务 起点终点对应的agv站点 start {start} end {end}  任务:" + mst.S_TASK_NO);
                    LogHelper.Info($"瓶坯机翻斗机任务 起点终点对应的agv站点 start {start} end {end}  任务:" + mst.S_TASK_NO);
                }
                else if (taskType.Contains("瓶坯翻斗机满托") && mst.S_START_LAREA == "QXPPXXQ")
                else if (taskType.Contains("瓶坯翻斗机满托"))
                {
                    start = LocationHelper.GetAgvSite(mst.S_START_LOC, "2");
                    end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                    LogHelper.Info($"瓶坯机任务 起点终点对应的agv站点 start {start} end {end}  任务:" + mst.S_TASK_NO);
                    LogHelper.Info($"瓶坯机翻斗机任务 起点终点对应的agv站点 start {start} end {end}  任务:" + mst.S_TASK_NO);
                }
                //else if (taskType.Contains("收缩膜叉运-入库") || taskType.Contains("收缩膜叉运-入库") || taskType.Contains("收缩膜叉运-货架出提升机"))
                //{
HH.WCS.QingXiNongfu/wms/TaskHelper.cs
@@ -1,4 +1,5 @@
using HH.WCS.QingXigongchang.dispatch;
using HH.WCS.QingXigongchang.process;
using HH.WCS.QingXigongchang.util;
using Newtonsoft.Json;
using SqlSugar;
@@ -241,6 +242,21 @@
        {
            var db = new SqlHelper<object>().GetInstance();
            if (task.S_START_LOC == "YWLT1TSJCD-1" && task.N_START_LAYER == 2)
            {
                var _clrel = LocationHelper.GetLocCntrRel(task.S_START_LOC);
                if (_clrel != null)
                {
                    var sta = db.Queryable<Location>().Where(l => l.S_LOC_CODE == task.S_START_LOC).First();
                    if (sta.N_CURRENT_NUM > 0 && sta.S_LOCK_STATE == "无")
                    {
                        var sign = Settings.GetTimeStamp();
                        var res = TaskProcess.CreateTransport(sign, task.S_START_LOC, task.S_END_LOC, "原物料搬运-纸箱", new List<string> { _clrel.FirstOrDefault().S_CNTR_CODE }, sta.N_CURRENT_NUM, 1, 1, 60);
                    }
                }
            }
            if (task.S_END_LAREA == "YWLYLTKQ" || task.S_END_LAREA == "YWLTKKTQ")
            {
                //查询出库锁YWLWJJB