| | |
| | | } |
| | | |
| | | public static void CheckInbound() { |
| | | var taskName = TaskName.T托盘_满托下线入库; |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var info = ""; |
| | | |
| | | const string taskName = TaskName.T托盘_满托下线入库; |
| | | const string cntrType = "托盘"; |
| | | |
| | | try { |
| | | // 查产线是否有物料信息 |
| | | foreach (var prod in Settings.ProductionLines) { |
| | |
| | | |
| | | cntr = new TN_Container { |
| | | S_CODE = cntrCode, |
| | | S_TYPE = "托盘", |
| | | S_TYPE = cntrType, |
| | | S_SPEC = itemCode, |
| | | }; |
| | | } |
| | |
| | | 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>() |
| | |
| | | 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}锁状态失败"; |
| | |
| | | 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}锁状态失败"; |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | 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>() |
| | |
| | | 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; |
| | | } |
| | |
| | | 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>() |
| | |
| | | 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}锁状态失败"; |
| | |
| | | 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}锁状态失败"; |
| | |
| | | |
| | | 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; |
| | | } |
| | |
| | | } |
| | | |
| | | public static void CheckShiftOrder() { |
| | | var taskName = TaskName.Y移库; |
| | | 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) |
| | |
| | | .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; // 所有任务都已执行 |
| | |
| | | .First(); |
| | | |
| | | if (startLoc == null) { |
| | | LogHelper.Info($"轮询:{taskName}:没有找到合适的起点货位!"); |
| | | info = $"轮询:{taskName}:没有找到容器号={detail.S_CNTR_CODE}的起点货位!需要满足:未上锁、当前容器数量=1"; |
| | | LogHelper.Info(info); |
| | | continue; |
| | | } |
| | | |
| | |
| | | .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; |
| | | } |
| | | |
| | |
| | | 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}锁状态失败"; |
| | |
| | | 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}锁状态失败"; |
| | |
| | | |
| | | 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; |
| | | } |