| | |
| | | { |
| | | var house = "W01";//叫桶位置,后续根据位置关联或定义,来判断叫桶位置所属车间 |
| | | var url = "";//回传MES的接口地址 |
| | | var noticeno = "";//出入库单据明细ID |
| | | var noticeno = "0";//出入库单据明细ID |
| | | var sql = "select PalletNo,LocatNo from DataStockDetail where Status = '0'"; |
| | | switch (pallnetmsg.Type) |
| | | { |
| | |
| | | CreateLotTask(ztask); |
| | | return; |
| | | } |
| | | //下发小车任务 |
| | | var task2 = new TaskDetial |
| | | { |
| | | Startport = item.LocatNo, |
| | | Endport = pallnetmsg.Location, |
| | | Pallno = item.PalletNo, |
| | | Type = pallnetmsg.Type, |
| | | Crtype = "1", |
| | | Noticedetailno = int.Parse(noticeno), |
| | | }; |
| | | CreateLotTask(task2); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | |
| | | //下发小车任务 |
| | | var task = new TaskDetial |
| | | { |
| | | Startport = pallnetmsg.Location, |
| | | Endport = pallet.LocatNo, |
| | | Startport = pallet.LocatNo, |
| | | Endport = pallnetmsg.Location, |
| | | Pallno = pallet.PackagNo, |
| | | Type = pallnetmsg.Type, |
| | | Crtype = "1", |
| | |
| | | var na = taskDetial.Crtype == "0"?"入库":"出库"; |
| | | var sql = ""; |
| | | var sql2 = ""; |
| | | var ordertype = "3"; |
| | | if (taskDetial.Type == "2" && taskDetial.Crtype =="1") |
| | | { |
| | | ordertype = "1"; |
| | | } |
| | | else if(taskDetial.Type =="2" && taskDetial.Crtype == "0") |
| | | { |
| | | ordertype = "0"; |
| | | } |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | //判断任务是否为新任务 |
| | | if (string.IsNullOrWhiteSpace(taskDetial.Taskno)) |
| | | { |
| | | taskDetial.Taskno = new Common().GetMaxNo("T"); |
| | | |
| | | } |
| | | var logTaskEntry = new LogTask |
| | | { |
| | | TaskNo = taskDetial.Taskno, |
| | |
| | | IsCancel = 1,//是否可取消 |
| | | IsFinish = 1,//是否可完成 |
| | | Type = taskDetial.Crtype,//任务类型 0 入库任务 1 出库任务 2 移库任务 |
| | | OrderType = ordertype,//单据类型 0 入库 1 出库 3其他 |
| | | Status = "0",//任务状态0:等待执行1正在执行2执行完成 |
| | | NoticeDetailNo = int.Parse(taskDetial.Noticedetailno.ToString()), |
| | | Msg = $"{taskDetial.Endport}的{na}任务", //关键信息 |
| | | }; |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | } |
| | | var Agv = new AgvTask |
| | | { |
| | | taskCode = taskDetial.Taskno, |
| | |
| | | genAgvSchedulingTaskRep chrep =genAgvSchedulingTask(Agv, "url"); |
| | | if (chrep.code != "0") |
| | | { |
| | | sql = $"UPDATE LogTask SET IsSuccess = '0' WHERE TaskNo = {taskDetial.Taskno}"; |
| | | Db.Ado.ExecuteCommand(sql); |
| | | logTaskEntry.IsSuccess = 0; |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | Db.CommitTran(); |
| | | throw new Exception("RCS任务下发错误,RCS返回消息:"+chrep.message); |
| | | } |
| | | sql = $"UPDATE LogTask SET IsSuccess = 1,BackDate = {DateTime.Now},Status = '1' WHERE TaskNo = {taskDetial.Taskno}"; |
| | | Db.Ado.ExecuteCommand(sql); |
| | | logTaskEntry.IsSuccess = 1; |
| | | logTaskEntry.BackDate = DateTime.Now; |
| | | logTaskEntry.Status = "1"; |
| | | if (taskDetial.Crtype == "0") |
| | | { |
| | | sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'"; |
| | |
| | | { |
| | | sql = $"UPDATE SysStorageLocat SET Status = '3' where LocatNo = '{taskDetial.Startport}' "; |
| | | } |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | Db.Ado.ExecuteCommand(sql); |
| | | //提交事务 |
| | | Db.CommitTran(); |