kazelee
2025-06-12 48654bac6d758d6426a0e659a7d7bd08634acfc8
core/Monitor.cs
@@ -20,10 +20,13 @@
            public string cntr_code { get; set; }
        }
        public static void CheckInbound() {
            var taskName = TaskName.T托盘_满托下线入库;
        public static void CheckInbound() {
            var db = new SqlHelper<object>().GetInstance();
            var info = "";
            const string taskName = TaskName.T托盘_满托下线入库;
            const string cntrType = "托盘";
            try {
                // 查产线是否有物料信息
                foreach (var prod in Settings.ProductionLines) {
@@ -80,7 +83,7 @@
                        cntr = new TN_Container {
                            S_CODE = cntrCode,
                            S_TYPE = "托盘",
                            S_TYPE = cntrType,
                            S_SPEC = itemCode,
                        };
                    }
@@ -105,14 +108,13 @@
                        info = $"起点位置 '{startLocCode}' 不存在或不具备取货要求";
                        LogHelper.Info(info);
                        continue;
                        //return;
                    }
                    // 绑定货位和容器号
                    var locCntrRel = new TN_Loc_Container {
                        S_LOC_CODE = startLocCode,
                        S_CNTR_CODE = cgDetail.S_CNTR_CODE,
                        S_CNTR_TYPE = "托盘",
                        S_CNTR_TYPE = cntrType,
                    };
                    var endLoc = db.Queryable<TN_Location>()
@@ -174,7 +176,8 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                            it.N_CURRENT_NUM, // 起点货位绑定后,将货位状态更新
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新起点货位{startLoc.S_CODE}锁状态失败";
@@ -186,7 +189,7 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新终点货位{endLoc.S_CODE}锁状态失败";
@@ -196,13 +199,13 @@
                        if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                            info = $"生成任务'{taskName}'失败,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                            LogHelper.Info(info);
                            continue;
                        }
                        tran.CommitTran();
                        info = $"生成任务'{taskName}'成功,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                        info = $"生成任务'{taskName}'成功,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                        LogHelper.Info(info);
                        continue;
                    }
@@ -219,7 +222,7 @@
            var db = new SqlHelper<object>().GetInstance();
            var info = "";
            var taskName = TaskName.C成品胶出库;
            const string taskName = TaskName.C成品胶出库;
            try {
                var orderList = db.Queryable<TN_Outbound_Order>()
@@ -323,36 +326,36 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                            it.N_CURRENT_NUM, // 起点货位绑定后,将货位状态更新
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"轮询:{taskName}:生成任务'{taskName}'失败:更新起点货位{startLoc.S_CODE}锁状态失败";
                            info = $"生成任务'{taskName}'失败:更新起点货位{startLoc.S_CODE}锁状态失败";
                            LogHelper.Info(info);
                            continue;
                        }
                        if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new {
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"轮询:{taskName}:生成任务'{taskName}'失败:更新终点货位{endLoc.S_CODE}锁状态失败";
                            info = $"生成任务'{taskName}'失败:更新终点货位{endLoc.S_CODE}锁状态失败";
                            LogHelper.Info(info);
                            continue;
                        }
                        if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"轮询:{taskName}:生成任务'{taskName}'失败,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                            info = $"生成任务'{taskName}'失败,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                            LogHelper.Info(info);
                            continue;
                        }
                        tran.CommitTran();
                        info = $"轮询:{taskName}:生成任务'{taskName}'成功,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                        info = $"生成任务'{taskName}'成功,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                        LogHelper.Info(info);
                        continue;
                    }
@@ -400,7 +403,7 @@
            var db = new SqlHelper<object>().GetInstance();
            var info = "";
            var taskName = TaskName.C抽检_出库;
            const string taskName = TaskName.C抽检_出库;
            try {
                var orderList = db.Queryable<TN_Spot_Check>()
@@ -481,7 +484,8 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                            it.N_CURRENT_NUM, // 起点货位绑定后,将货位状态更新
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新起点货位{startLoc.S_CODE}锁状态失败";
@@ -493,7 +497,7 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新终点货位{endLoc.S_CODE}锁状态失败";
@@ -503,13 +507,13 @@
                        if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                            info = $"生成任务'{taskName}'失败,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                            LogHelper.Info(info);
                            continue;
                        }
                        tran.CommitTran();
                        info = $"生成任务'{taskName}'成功,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                        info = $"生成任务'{taskName}'成功,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                        LogHelper.Info(info);
                        continue;
                    }
@@ -520,10 +524,12 @@
            }
        }
        public static void CheckShiftOrder() {
            var taskName = TaskName.Y移库;
        public static void CheckShiftOrder() {
            var db = new SqlHelper<object>().GetInstance();
            var info = "";
            const string taskName = TaskName.Y移库;
            try {
                var orderList = db.Queryable<TN_Relocation_List>()
                    .Where(c => c.N_B_STATE == 1)
@@ -541,7 +547,7 @@
                        .Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); // 执行中
                    var allCount = db.Queryable<TN_RelocationList_Detail>()
                        .Count(d => d.S_OO_NO == order.S_NO);
                    LogHelper.Info($"轮询:{taskName}:统计{taskName}单'{order.S_NO}'任务已下发:{doingCount}/{allCount}");
                    LogHelper.Info($"轮询:{taskName}:统计{taskName}单={order.S_NO}任务已下发:{doingCount}/{allCount}");
                    if (doingCount == allCount) {
                        order.N_B_STATE = 2; // 所有任务都已执行
@@ -572,7 +578,8 @@
                        .First();
                    if (startLoc == null) {
                        LogHelper.Info($"轮询:{taskName}:没有找到合适的起点货位!");
                        info = $"轮询:{taskName}:没有找到容器号={detail.S_CNTR_CODE}的起点货位!需要满足:未上锁、当前容器数量=1";
                        LogHelper.Info(info);
                        continue;
                    }
@@ -582,7 +589,8 @@
                        .Where(a => a.N_CURRENT_NUM == 0).First();
                    if (endLoc == null) {
                        LogHelper.Info($"轮询:{taskName}:没有找到合适的终点货位!");
                        info = $"轮询:{taskName}:没有找到终点货位={detail.S_END_AREA}的终点货位!需要满足:未上锁、当前容器数量=0";
                        LogHelper.Info(info);
                        continue;
                    }
@@ -605,7 +613,8 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                            it.N_CURRENT_NUM, // 起点货位绑定后,将货位状态更新
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新起点货位{startLoc.S_CODE}锁状态失败";
@@ -617,7 +626,7 @@
                            it.N_LOCK_STATE,
                            it.S_LOCK_STATE,
                            it.S_LOCK_OP,
                            it.T_MODIFY
                            it.T_MODIFY,
                        }).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败:更新终点货位{endLoc.S_CODE}锁状态失败";
@@ -627,13 +636,13 @@
                        if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) {
                            tran.RollbackTran();
                            info = $"生成任务'{taskName}'失败,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                            info = $"生成任务'{taskName}'失败,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                            LogHelper.Info(info);
                            continue;
                        }
                        }
                        tran.CommitTran();
                        info = $"生成任务'{taskName}'成功,容器号{cntId},起点{startLoc.S_CODE},终点货架{endLoc.S_CODE}";
                        info = $"生成任务'{taskName}'成功,任务号={task.S_CODE},容器号={cntId},起点={startLoc.S_CODE},终点={endLoc.S_CODE}";
                        LogHelper.Info(info);
                        continue;
                    }