| | |
| | | /// <param name="warehouseno">库区</param> |
| | | /// <param name="type">叫料类型</param> |
| | | /// <returns></returns> |
| | | public void GetPalletNo(Pallnetmsg model,string url) |
| | | public void GetPalletNo(Pallnetmsg model,string url,out string taskNo) |
| | | { |
| | | DataStockDetail pallet = new DataStockDetail(); |
| | | try |
| | |
| | | { |
| | | throw new Exception("批次号为空!"); |
| | | } |
| | | /*BllArrivalNoticeDetail ArriveMes = new BllArrivalNoticeDetail(); |
| | | //判断该批次是否有对应入库单 |
| | | sql = $"select * from BllArrivalNoticeDetail where LotNo = '{pallnetmsg.LotNo}' order by CreateTime desc"; |
| | | ArriveMes = Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sql).FirstOrDefault(); |
| | | if (ArriveMes == null) |
| | | { |
| | | throw new Exception("该批次没有对应的入库单"); |
| | | } |
| | | noticeno = ArriveMes.Id.ToString();*/ |
| | | //查找库存中是否有可用的此批次的混料桶 |
| | | sql= $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{model.LotNo}'and (AreaNo like '%02' or AreaNo like '%12' or AreaNo like '%22' or AreaNo like '%32') |
| | | and WareHouseNo = '{house}' and status = '0' and PalletStatus = '1' order by CompleteTime desc"; |
| | |
| | | Crtype = "1", |
| | | Noticedetailno = int.Parse(noticeno), |
| | | }; |
| | | CreateLotTask(task2, url); |
| | | CreateLotTask(task2, url, out taskNo); |
| | | return; |
| | | } |
| | | break; |
| | |
| | | Noticedetailno = int.Parse(noticeno), |
| | | LotNo = model.LotNo, |
| | | }; |
| | | CreateLotTask(task, url); |
| | | CreateLotTask(task, url, out taskNo); |
| | | return; |
| | | } |
| | | catch (Exception ex) |
| | |
| | | Crtype = "2", |
| | | Noticedetailno = 0, |
| | | }; |
| | | CreateLotTask(ztask,url); |
| | | string taskNo = ""; |
| | | CreateLotTask(ztask, url, out taskNo); |
| | | |
| | | statrtLocat.Status = "3";//出库中 |
| | | //修改起始储位状态 |
| | |
| | | Noticedetailno = 0, |
| | | LotNo = "", |
| | | }; |
| | | CreateLotTask(task,url); |
| | | string taskNo = ""; |
| | | CreateLotTask(task,url, out taskNo); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="PalletNo"></param> |
| | | /// <returns></returns> |
| | | public void ApplyLocatNo(Pallnetmsg model,string url) |
| | | public void ApplyLocatNo(Pallnetmsg model,string url, out string taskNo) |
| | | { |
| | | var sql = $"select LocatNo from SysStorageLocat where status = '0'"; |
| | | var sql2 = ""; |
| | |
| | | Noticedetailno = int.Parse(noticeno), |
| | | LotNo = model.LotNo, |
| | | }; |
| | | CreateLotTask(task,url); |
| | | CreateLotTask(task, url, out taskNo); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="req"></param> |
| | | /// <returns></returns> |
| | | public void CreateLotTask(TaskDetial taskDetial,string url) |
| | | public void CreateLotTask(TaskDetial taskDetial,string url,out string taskNo) |
| | | { |
| | | try |
| | | { |
| | |
| | | msg = "脏桶" + typeDesc + "任务"; |
| | | break; |
| | | } |
| | | #region 储位信息 |
| | | //起始储位地址信息 |
| | | var startLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel=="0" && w.LocatNo == taskDetial.Startport); |
| | | if (startLoction == null) |
| | | { |
| | | throw new Exception($"起始目标储位信息不存在,桶号:{taskDetial.Startport}"); |
| | | } |
| | | //目标储位地址信息 |
| | | var endLoction = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == taskDetial.Endport); |
| | | if (endLoction == null) |
| | | { |
| | | throw new Exception($"目标目标储位信息不存在,桶号:{taskDetial.Endport}"); |
| | | } |
| | | #endregion |
| | | var sql = ""; |
| | | var sql2 = ""; |
| | | var ordertype = "3"; |
| | |
| | | NoticeDetailNo = int.Parse(taskDetial.Noticedetailno.ToString()), |
| | | Msg = msg, //关键信息 |
| | | }; |
| | | taskNo = logTaskEntry.TaskNo; |
| | | |
| | | #region 呼叫小车代码 |
| | | List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>(); |
| | |
| | | path1.positionCode = taskDetial.Startport; |
| | | if (taskDetial.Crtype == "1")//叫桶(桶出库) |
| | | { |
| | | path1.type = "00"; |
| | | path1.type = "05"; |
| | | } |
| | | else//申请储位(桶入库) |
| | | { |
| | | path1.type = "05"; |
| | | } |
| | | |
| | | |
| | | pahtList.Add(path1); |
| | | |
| | | //目标位置 |
| | |
| | | } |
| | | else//申请储位(桶入库) |
| | | { |
| | | path2.type = "00"; |
| | | path2.type = "05"; |
| | | } |
| | | |
| | | pahtList.Add(path2); |
| | | |
| | | //下车任务单 |
| | | AgvSchedulingTask agvTask = new AgvSchedulingTask(); |
| | | agvTask.reqCode = logTaskEntry.TaskNo;//任务号 |
| | |
| | | agvTask.wbCode = ""; |
| | | agvTask.positionCodePath = pahtList;//小车路径 |
| | | agvTask.podCode = ""; |
| | | agvTask.userCallCode = taskDetial.Endport;//目标位置 |
| | | agvTask.userCallCode = "";//taskDetial.Endport;//目标位置 |
| | | if (taskDetial.Crtype == "1")//叫桶(桶出库) |
| | | { |
| | | agvTask.taskTyp = "Z3";//任务类型 线边到托盘收集器 Z1, 托盘垛申请入库 Z2 |
| | |
| | | //请求成功修改任务表相应字段状态 |
| | | logTaskEntry.IsSuccess = 1; |
| | | logTaskEntry.BackDate = DateTime.Now; |
| | | logTaskEntry.Status = "1"; |
| | | if (taskDetial.Crtype == "0" || taskDetial.Crtype == "2") |
| | | { |
| | | sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'"; |
| | | if (taskDetial.Type == "2") |
| | | { |
| | | sql2 = $"UPDATE DataStockDetail SET PalletStatus = '{taskDetial.Type}'" + |
| | | $"where PalletNo = '{taskDetial.Pallno}'"; |
| | | Db.Ado.ExecuteCommand(sql2); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sql = $"UPDATE SysStorageLocat SET Status = '3' where LocatNo = '{taskDetial.Startport}' "; |
| | | } |
| | | logTaskEntry.Status = "1"; |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | Db.Ado.ExecuteCommand(sql); |
| | | |
| | | startLoction.Status = "3";//出库中 |
| | | Db.Updateable(startLoction).ExecuteCommand(); |
| | | |
| | | endLoction.Status = "2";//入库中 |
| | | Db.Updateable(endLoction).ExecuteCommand(); |
| | | } |
| | | if (agvModel.Code == "1") |
| | | { |