1
pulg
2025-07-02 265e2fa111ae3e6b3ff242d2478d3facc06f7d6b
1
5个文件已修改
113 ■■■■■ 已修改文件
HH.WCS.QingXiNongfu/Program.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/bin/Debug/settings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/core/Monitor.cs 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/settings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/wms/WCSModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HH.WCS.QingXiNongfu/Program.cs
@@ -19,7 +19,6 @@
using System.Threading;
using System.Threading.Tasks;
using Topshelf;
using static System.Net.Mime.MediaTypeNames;
using Monitor = HH.WCS.QingXigongchang.core.Monitor;
namespace HH.WCS.QingXigongchang
@@ -755,8 +754,8 @@
                    //原材料 自动中转 - 展示流程。 前期测试用的
                    //GetTask(Monitor.AutoRun),
                    GetTask(Monitor.YwlTKPEBQ_Auto),//标签无菌水线出入库。
                    //原材料的 新中转流程。
                    GetTask(Monitor.YWL_ZX_Turn),
                    //原材料的 新中转流程。
                    GetTask(Monitor.YWL_ZX_Turn),//--移库
                    GetTask(Monitor.BottTask),// 纸箱自动中转
                    GetTask(Monitor.AutoRunABD),
                    GetTask(Monitor.AutoRun13TSJ),
HH.WCS.QingXiNongfu/bin/Debug/settings.xml
@@ -127,8 +127,8 @@
    {"address":"10.140.3.187","deviceName":"瓶盖5L翻斗机","deviceNo":["","187"],"location":["SXFDJ-1"],"deviceType":10,"areaPriy":["PGMKCK"],"enable":1},
    
    {"address":"10.140.3.170","deviceName":"T2提升机","deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.167","deviceName":"T1提升机","deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.167","deviceName":"T2提升机","deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.168","deviceName":"T1提升机","deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
    
    ]]]>
    
HH.WCS.QingXiNongfu/core/Monitor.cs
@@ -1470,7 +1470,7 @@
                try
                {
                    // 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 && 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 (!yuworders.Any())
                    {
                        YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ);
@@ -2292,12 +2292,12 @@
            if (order != null)
            {
                var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
                if (Porder == null)
                {
                    LogHelper.CErrorLog("SX标签出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                    yuworders.Remove(order);
                    goto retuse;
                }
                //if (Porder == null)
                //{
                //    LogHelper.CErrorLog("SX标签出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                //    yuworders.Remove(order);
                //    goto retuse;
                //}
                var oto = new List<string>();
                //if (!string.IsNullOrEmpty(order.TagOver))
                //    oto = order.TagOver.Split(',').ToList();
@@ -2786,12 +2786,12 @@
            if (order != null)
            {
                var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
                if (Porder == null)
                {
                    LogHelper.CErrorLog("无菌标签出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                    yuworders.Remove(order);
                    goto retuse;
                }
                //if (Porder == null)
                //{
                //    LogHelper.CErrorLog("无菌标签出库:" + (order.SQL_LinkLineNO) + "没有【执行中】的工单");
                //    yuworders.Remove(order);
                //    goto retuse;
                //}
                var oto = new List<string>();
                //if (!string.IsNullOrEmpty(order.TagOver))
@@ -4345,6 +4345,8 @@
        /// </summary>
        internal static void YWL_ZX_Turn()
        {
            var dbcd = new SqlHelper<object>().GetInstance();
            foreach (var ODs in LocationHelper.GetList<YWLZXtake>(X => X.S_ZX_STATE == "执行").GroupBy(x => x.S_START_AREA))
            {
                var locS = LocationHelper.GetAreaNormalLocList(ODs.Key);
@@ -4380,6 +4382,26 @@
                        }
                        else
                        {
                            if (od.N_END_ROW > 0)
                            {
                                var EndRow = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_ROW == od.N_END_ROW && l.N_CURRENT_NUM == 0).ToList();
                                if (EndRow.Count() == 0)
                                {
                                    //置为完成。
                                    od.S_ZX_STATE = "完成";
                                    WCSHelper.Do(db => db.Updateable(od).UpdateColumns(x => new { x.S_ZX_STATE }).ExecuteCommand());
                                }
                            }
                            else
                            {
                                var EndRow = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_CURRENT_NUM == 0).ToList();
                                if (EndRow.Count() == 0)
                                {
                                    //置为完成。
                                    od.S_ZX_STATE = "完成";
                                    WCSHelper.Do(db => db.Updateable(od).UpdateColumns(x => new { x.S_ZX_STATE }).ExecuteCommand());
                                }
                            }
                            var lastful = rows.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
                            if (lastful != null)
                            {
@@ -4410,27 +4432,49 @@
                                string nextarea = !string.IsNullOrEmpty(od.S_ZZ_AREA) ? od.S_ZZ_AREA : od.S_END_AREA;
                                var zzlocs = LocationHelper.GetAreaNormalLocList(nextarea);
                                Location Endbit = null;
                                foreach (var zzrs in zzlocs.GroupBy(x => x.N_ROW).OrderBy(x => x.Key))
                                if (od.N_END_ROW == 0 && zzlocs.Any())
                                {
                                    var zzrloclist = zzrs.ToList();
                                    var _cl2 = zzrloclist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
                                    if (_cl2 != null)
                                    foreach (var zzrs in zzlocs.GroupBy(x => x.N_ROW).OrderBy(x => x.Key))
                                    {
                                        var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE);
                                        var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault();
                                        if (cntrrel == null)
                                            continue;
                                        if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME)
                                        var zzrloclist = zzrs.ToList();
                                        var _cl2 = zzrloclist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
                                        if (_cl2 != null)
                                        {
                                            var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE);
                                            var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault();
                                            if (cntrrel == null)
                                                continue;
                                            if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME)
                                            {
                                                Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
                                            }
                                        }
                                        else
                                            Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
                                        if (Endbit != null)
                                        {
                                            LogHelper.Info($"入中转区{nextarea}使用{Endbit.S_LOC_CODE}");
                                            break;
                                        }
                                    }
                                    else
                                        Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
                                    if (Endbit != null)
                                }
                                else
                                {
                                    if (zzlocs.Any() && od.N_END_ROW > 0)//用于库内 比如A库某排移到A库的另一排
                                    {
                                        LogHelper.Info($"入中转区{nextarea}使用{Endbit.S_LOC_CODE}");
                                        break;
                                        zzlocs = zzlocs.FindAll(e => e.N_ROW == od.N_END_ROW);
                                        //
                                        var EndMt = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_ROW == od.N_END_ROW && l.N_CURRENT_NUM > 0).ToList();
                                        if (EndMt.Any())
                                        {
                                            var ggh = EndMt.OrderByDescending(e => e.N_COL).FirstOrDefault();
                                            zzlocs = zzlocs.FindAll(e => e.N_COL > ggh.N_COL).ToList();
                                        }
                                        if (zzlocs.Any())
                                        {
                                            Endbit = zzlocs.OrderBy(e => e.N_COL).FirstOrDefault();
                                        }
                                    }
                                }
                                LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 找到移库终点》{Endbit?.S_LOC_CODE}");
@@ -4445,6 +4489,7 @@
                            }
                        }
                    }
                }
            }
        }
HH.WCS.QingXiNongfu/settings.xml
@@ -127,8 +127,8 @@
    {"address":"10.140.3.187","deviceName":"瓶盖5L翻斗机","deviceNo":["","187"],"location":["SXFDJ-1"],"deviceType":10,"areaPriy":["PGMKCK"],"enable":1},
    
    {"address":"10.140.3.170","deviceName":"T2提升机","deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.167","deviceName":"T1提升机","deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.167","deviceName":"T2提升机","deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
    {"address":"10.140.9.168","deviceName":"T1提升机","deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
    
    ]]]>
    
HH.WCS.QingXiNongfu/wms/WCSModel.cs
@@ -507,6 +507,7 @@
        public string SQL_WorkNo { get; set; }
        public string S_START_AREA { get; set; }
        public int N_START_ROW { get; set; }
        public int N_END_ROW { get; set; }
        public string S_ZZ_AREA { get; set; }
        public string S_END_AREA { get; set; }
        public string S_ZX_STATE { get; set; }