| | |
| | | Db.Updateable(pallet).ExecuteCommand(); |
| | | |
| | | taskMsg = "设备叫净桶任务"; |
| | | |
| | | try |
| | | { |
| | | #region 请求MES接口发送净桶编号 |
| | | var reObj = new |
| | | { |
| | | deviceCode = pallet.PackagNo, |
| | | reqType = "1" |
| | | }; |
| | | string jsonReq = JsonConvert.SerializeObject(reObj); |
| | | var response = HttpHelper.DoPost(urlMes, jsonReq, "回传MES净桶编号接料设备", "MES").ToString(); |
| | | var obj = JsonConvert.DeserializeObject<ReMes>(response);//解析返回数据 |
| | | #endregion |
| | | } |
| | | catch |
| | | { |
| | | |
| | | } |
| | | } |
| | | break; |
| | | case "1"://混料设备叫料桶(混料) |
| | |
| | | //遍历库存脏桶,返回MES验证 |
| | | foreach (var item in palletList) |
| | | { |
| | | #region 去掉MES |
| | | #region 请求MES接口验证该桶是否支持小清洗 |
| | | var reObj = new |
| | | { |
| | | devive = item.PackagNo |
| | | deviceCode = item.PalletNo, |
| | | reqType = "0" |
| | | }; |
| | | string jsonReq = JsonConvert.SerializeObject(reObj); |
| | | var response = HttpHelper.DoPost(urlMes, jsonReq, "回传MES脏桶编号判断是否可清洗", "MES").ToString(); |
| | | var obj = JsonConvert.DeserializeObject<ReMes>(response);//解析返回数据 |
| | | if (obj.state == "200") |
| | | { |
| | | if (obj.data != "1")//不可清洗,将脏桶冻结 |
| | | if (obj.data.status != "1")//不可清洗,将脏桶冻结 |
| | | { |
| | | item.Status = "5";//异常冻结 |
| | | //修改该桶库存状态 |
| | |
| | | Db.BeginTran(); |
| | | |
| | | //查找是否有空余脏桶位 |
| | | var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo.Contains("04") && w.Status == "0" && w.Flag == "0"); |
| | | var endLocat = GetLocatModel(detail.WareHouseNo, "3"); |
| | | if (endLocat == null) |
| | | { |
| | | detail.Status = "5";//异常锁定 |
| | |
| | | } |
| | | else |
| | | { |
| | | //生成调度小车净桶去脏桶区任务 |
| | | var ztask = new TaskDetial |
| | | var taskNo = new Common().GetMaxNo("TN");//任务号 |
| | | //任务信息 |
| | | var logTaskEntry = new LogTask |
| | | { |
| | | Startport = detail.LocatNo, |
| | | Endport = endLocat.LocatNo, |
| | | Pallno = PalletNo, |
| | | Crtype = "2", |
| | | TaskNo = taskNo, |
| | | Sender = "WMS", |
| | | Receiver = "RCS", |
| | | //IsSuccess = 1, //是否下发成功 0失败 1成功 |
| | | SendDate = DateTime.Now, //发送时间 |
| | | //BackDate = DateTime.Now, //返回时间 |
| | | StartLocat = statrtLocat.LocatNo,//起始位置 |
| | | EndLocat = endLocat.LocatNo,//目标位置 |
| | | PalletNo = detail.PalletNo,//桶号 |
| | | IsSend = 1,//是否可再次下发 |
| | | IsCancel = 1,//是否可取消 |
| | | IsFinish = 1,//是否可完成 |
| | | Type = "0",//任务类型 0 入库任务 1 出库任务 2 移库任务 |
| | | OrderType = "3",//单据类型 0 入库 1 出库 3 移库 |
| | | Status = "0",//任务状态0:等待执行1正在执行2执行完成 |
| | | NoticeDetailNo = 0, |
| | | Msg = "MES下发将净桶改为脏桶并拉到脏桶区", //关键信息 |
| | | LotNo = ""//批次号 |
| | | }; |
| | | string taskNo = ""; |
| | | var task = new TaskDetial |
| | | { |
| | | Taskno = taskNo,//任务号 |
| | | Startport = statrtLocat.LocatNo,//起始位置 |
| | | Endport = endLocat.LocatNo,//目标位置 |
| | | Pallno = detail.PalletNo, |
| | | Crtype = "2",//平层搬运 |
| | | WareHouseNo = detail.WareHouseNo |
| | | }; |
| | | string agvMsg = string.Empty; |
| | | CreateTaskForAgv(ztask, url, out agvMsg); |
| | | //给下车下发任务 |
| | | logTaskEntry.SendDate = DateTime.Now;//发送时间 |
| | | var agvResult = CreateTaskForAgv(task, url, out agvMsg); |
| | | if (agvResult)//成功 |
| | | { |
| | | //请求成功修改任务表相应字段状态 |
| | | logTaskEntry.IsSuccess = 1; |
| | | logTaskEntry.IsSend = 0; |
| | | //logTaskEntry.IsCancel = 0; |
| | | logTaskEntry.BackDate = DateTime.Now; |
| | | logTaskEntry.Status = "1";//正在执行 |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | |
| | | statrtLocat.Status = "3";//出库中 |
| | | //修改起始储位状态 |
| | | Db.Updateable(statrtLocat).ExecuteCommand(); |
| | | statrtLocat.Status = "3";//出库中 |
| | | Db.Updateable(statrtLocat).ExecuteCommand(); |
| | | |
| | | detail.Status = "5";//异常锁定 |
| | | detail.PalletStatus = "3";//脏桶 |
| | | //修改库存状态 |
| | | Db.Updateable(detail).ExecuteCommand(); |
| | | endLocat.Status = "2";//入库中 |
| | | Db.Updateable(endLocat).ExecuteCommand(); |
| | | |
| | | detail.Status = "2";//分配状态 0:待分配,1:部分分配 , 2:已分配 |
| | | //更新桶库存明细 |
| | | Db.Updateable(detail).ExecuteCommand(); |
| | | |
| | | } |
| | | else//失败 |
| | | { |
| | | logTaskEntry.IsSuccess = 0; |
| | | logTaskEntry.Information = agvMsg; |
| | | Db.Insertable(logTaskEntry).ExecuteCommand(); |
| | | } |
| | | } |
| | | //提交事务 |
| | | Db.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | { |
| | | Taskno = taskNo,//任务号 |
| | | Startport = startLoction.LocatNo,//起始位置 |
| | | Endport = endLoction.LocatNo,//目标位置 |
| | | Endport = pallnetmsg.Location,//目标位置 |
| | | Pallno = detail.PalletNo,//桶号 |
| | | Crtype = "1",//叫桶 |
| | | WareHouseNo = detail.WareHouseNo//车间编码 |