| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | internal static WeiLiResult AddTask(AddTaskModel model) |
| | | { |
| | | var result = new WeiLiResult(); |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var cntrweight = model.cntrWeight == 1 ? 2 : model.cntrWeight == 2 ? 3 : model.cntrWeight == 3 ? 11 : model.cntrWeight == 4 ? 30 : model.cntrWeight == 5 ? 150 : 0; |
| | | if (!string.IsNullOrEmpty(model.startBit) && !string.IsNullOrEmpty(model.endBit)) |
| | | { |
| | | if (!string.IsNullOrEmpty(model.TaskNo)) |
| | | { |
| | | var taskinfo = db.Queryable<WMSTask>().Where(a => a.S_CODE == model.TaskNo).First(); |
| | | if (taskinfo == null) |
| | | { |
| | | var startinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.startBit).First(); |
| | | var endinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.endBit).First(); |
| | | if (startinfo != null && endinfo != null) |
| | | { |
| | | if (startinfo.N_LOCK_STATE != 0 || endinfo.N_LOCK_STATE != 0) |
| | | { |
| | | result.code = 500; |
| | | result.msg = "起点或终点货位锁定状态异常 不予创建任务"; |
| | | return result; |
| | | } |
| | | |
| | | var startloccntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == startinfo.S_CODE).First(); |
| | | LogHelper.Info("查询起点是否绑定托盘"); |
| | | if (startloccntr == null) |
| | | { |
| | | LogHelper.Info("起点未绑定托盘 准备绑定托盘"); |
| | | //绑定起点托盘 |
| | | LocationHelper.BindingLoc(model.startBit, new List<string>() { model.cntrNo }); |
| | | } |
| | | else if (startloccntr.S_CNTR_CODE != model.cntrNo) |
| | | { |
| | | result.code = 500; |
| | | result.msg = $"起点已绑定托盘{startloccntr.S_CNTR_CODE} 与任务托盘{model.cntrNo} 不符"; |
| | | return result; |
| | | } |
| | | |
| | | LogHelper.Info("转运任务 创建作业"); |
| | | |
| | | //创建作业 |
| | | var optask = new WMSTask |
| | | { |
| | | S_CODE = model.TaskNo, |
| | | S_START_LOC = startinfo.S_CODE, |
| | | S_END_LOC = endinfo.S_CODE, |
| | | S_END_AREA = endinfo.S_AREA_CODE, |
| | | S_START_AREA = startinfo.S_AREA_CODE, |
| | | S_START_WH = startinfo.S_WH_CODE, |
| | | S_END_WH = endinfo.S_WH_CODE, |
| | | S_TYPE = "转运", |
| | | N_TYPE = 3, |
| | | N_B_STATE = 0, |
| | | S_CNTR_CODE = model.cntrNo, |
| | | S_OP_DEF_NAME = "转运", |
| | | S_BS_NO = model.workNo, |
| | | N_PRIORITY = model.priority, |
| | | N_TRAY_WEIGHT = cntrweight |
| | | }; |
| | | |
| | | var note = Settings.Tasktypes.Where(a => a.StartArea == optask.S_START_AREA && a.EndArea == optask.S_END_AREA).FirstOrDefault(); |
| | | if (note != null) |
| | | { |
| | | optask.S_NOTE = note.TaskType; |
| | | } |
| | | |
| | | |
| | | |
| | | db.Insertable(optask).ExecuteCommand(); |
| | | LocationHelper.LockLoc(startinfo.S_CODE, 2); |
| | | LocationHelper.LockLoc(endinfo.S_CODE, 1); |
| | | } |
| | | else |
| | | { |
| | | result.code = 500; |
| | | result.msg = "起点或终点信息有误 查询不到站点信息"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.code = 500; |
| | | result.msg = "任务号重复 请勿重复下发任务"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.code = 500; |
| | | result.msg = "任务号不能为空"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.code = 500; |
| | | result.msg = "起点或终点不能为空"; |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | internal static TaskStateresutl GetTaskState(GetTaskStateModel model) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | TaskStateresutl result = new TaskStateresutl { success = false, code = 0}; |
| | | if (!string.IsNullOrEmpty(model.taskNo)) |
| | | { |
| | | var info = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == model.taskNo).First(); |
| | | if (info!=null) |
| | | { |
| | | var TaskStates = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == info.S_CODE).ToList(); |
| | | TaskStates=TaskStates.OrderBy(a => a.T_CREATE).ToList(); |
| | | for (int i = 0; i < TaskStates.Count; i++) |
| | | { |
| | | TaskState task = new TaskState |
| | | { |
| | | state = TaskStates[i].N_ACTION_CODE.ToString(), |
| | | errMsg = "", |
| | | taskNo = model.taskNo, |
| | | transferTime = TaskStates[i].T_CREATE.ToString() |
| | | }; |
| | | if (!string.IsNullOrEmpty(TaskStates[i].S_EQ_CODE)) |
| | | { |
| | | task.agvNo = int.Parse(TaskStates[i].S_EQ_CODE); |
| | | } |
| | | result.data.Add(task); |
| | | } |
| | | result.success = true ; |
| | | } |
| | | else |
| | | { |
| | | result.code = 1; |
| | | result.msg = "该任务号没有状态记录!"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | result.code = 1; |
| | | result.msg = "请求任务号不能为空!"; |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | internal static PlcSendTaskres PlcCallbackState(PlcState model) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |