| | |
| | | using SqlSugar.Extensions; |
| | | using Utility.Tools; |
| | | using WMS.BLL.LogServer; |
| | | using WMS.BLL.SysServer; |
| | | using WMS.DAL; |
| | | using WMS.Entity.BllAsnEntity; |
| | | using WMS.Entity.BllCheckEntity; |
| | |
| | | } |
| | | } |
| | | |
| | | //生成盘点记录 |
| | | //生成盘点记录 |
| | | Db.Insertable(logList).ExecuteCommand(); |
| | | } |
| | | // 储位号 |
| | |
| | | try |
| | | { |
| | | var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | //response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); //正式版本放开 |
| | | response = HttpHelper.DoPost(url, jsonData, "下发给WCS出库命令", "WCS"); //正式版本放开 |
| | | var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss") |
| | | |
| | | ////解析返回数据 |
| | | //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | //if (wcsModel.StatusCode == 0) |
| | | //{ |
| | | // //更改任务的发送返回时间// |
| | | // new TaskServer().EditTaskIssueOk(list2, time1, time2); |
| | | //str += "下发成功"; |
| | | //} |
| | | //if (wcsModel.StatusCode == -1) |
| | | //{ |
| | | // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | // throw new Exception(wcsModel.Msg); |
| | | //} |
| | | //解析返回数据 |
| | | var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); |
| | | if (wcsModel.StatusCode == 0) |
| | | { |
| | | //更改任务的发送返回时间// |
| | | new TaskServer().EditTaskIssueOk(list2, time1, time2); |
| | | str += "下发成功"; |
| | | } |
| | | if (wcsModel.StatusCode == -1) |
| | | { |
| | | new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); |
| | | throw new Exception(wcsModel.Msg); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | //出库任务号更改,如果由PLC出库,则PLC回传任务号为:任务号+实际出库口 |
| | | var TtaskNo = taskNo; |
| | | var outLine = ""; |
| | | if (taskNo.Length == 18) |
| | | { |
| | | TtaskNo = taskNo.Substring(0, taskNo.Length - 3); |
| | | outLine = taskNo.Substring(taskNo.Length - 3, 3); |
| | | } |
| | | //当前任务信息 |
| | | var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); |
| | | var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0"); |
| | | if (task == null) |
| | | { |
| | | throw new Exception($"未查询到任务号为:‘{taskNo}’的任务信息"); |
| | | throw new Exception($"未查询到任务号为:‘{TtaskNo}’的任务信息"); |
| | | } |
| | | if (task.Status == "2") |
| | | { |
| | |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | } |
| | | //盘点明细(更改状态) |
| | | var checkDetails = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToList(); |
| | | var checkDetails = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == TtaskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToList(); |
| | | |
| | | foreach (var item in checkDetails) |
| | | { |
| | |
| | | if (userId != 0) |
| | | { |
| | | //添加操作日志记录 |
| | | var k = new OperationCrServer().AddLogOperationCr("库内作业", "库内日志", taskNo, "完成", $"点击完成按钮、完成任务号为:{taskNo}的任务", userId); |
| | | var k = new OperationCrServer().AddLogOperationCr("库内作业", "库内日志", TtaskNo, "完成", $"点击完成按钮、完成任务号为:{TtaskNo}的任务", userId); |
| | | } |
| | | Db.CommitTran(); |
| | | |
| | |
| | | } |
| | | |
| | | //AGV移库完成 |
| | | public void MoveSuccess(string taskNo, int userId) |
| | | public void MoveSuccess(string taskNo,string mesTokenUrl, string mesUrl, int userId) |
| | | { |
| | | try |
| | | { |
| | |
| | | throw new Exception("目标储位状态非移入中"); |
| | | } |
| | | } |
| | | var data = new List<RequertBeiliaoInfoModel>(); |
| | | //更改库存明细 |
| | | foreach (var item in stockDetail) |
| | | { |
| | |
| | | |
| | | if (endLocate != null && endLocate.AreaNo == "B12") //是否是3楼缓存区 是:删除库存 |
| | | { |
| | | //库存箱码明细删除 |
| | | if (string.IsNullOrWhiteSpace(item.SONo)) |
| | | { |
| | | throw new Exception("当前托盘不是拼托出库托盘"); |
| | | } |
| | | //记录托盘上信息给MES |
| | | var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList(); |
| | | if (boxInfo.Count == 0) |
| | | { |
| | | throw new Exception("托盘上物料箱码信息不存在,请检查!"); |
| | | } |
| | | foreach (var item2 in boxInfo) |
| | | { |
| | | data.Add(new RequertBeiliaoInfoModel() |
| | | { |
| | | no = item2.BoxNo, |
| | | materiel_no = item.SkuNo, |
| | | materiel_name = item.SkuName, |
| | | qty = item.Qty, |
| | | batch = item.LotNo, |
| | | producttime = item2.ProductionTime.ToString().Substring(1, 8), |
| | | expiry = item2.ExpirationTime.ToString().Substring(1, 8) |
| | | |
| | | }); |
| | | } |
| | | //库存箱码明细删除 |
| | | Db.Deleteable(boxInfo).ExecuteCommand(); |
| | | //删除库存托盘信息 |
| | | Db.Deleteable(item).ExecuteCommand(); |
| | |
| | | //更改目标储位状态 |
| | | endLocate.Status = "1";//有物品 |
| | | Db.Updateable(endLocate).ExecuteCommand(); |
| | | } |
| | | |
| | | } |
| | | //正式运行程序放开 |
| | | if (endLocate != null && endLocate.AreaNo == "B12") |
| | | { |
| | | //获取令牌 |
| | | var token = new Token().GetMesToken(mesTokenUrl); |
| | | Dictionary<string, string> mesDic = new Dictionary<string, string>() |
| | | { |
| | | {"Authorization",token } |
| | | }; |
| | | var mesData = new RequertBeiliaoModel() |
| | | { |
| | | morder_no = stockDetail.First().SONo, |
| | | pallet = stockDetail.First().PalletNo, |
| | | layer_no = endLocate.LocatNo, |
| | | items = data |
| | | }; |
| | | var jsonData = JsonConvert.SerializeObject(mesData); |
| | | //调用接口 |
| | | var response = HttpHelper.DoPost(mesUrl, jsonData, "备料完成运至缓存区反馈至MES", "MES", mesDic); |
| | | |
| | | var obj = JsonConvert.DeserializeObject<MesModel>(response);//解析返回数据 |
| | | if (obj.status != "0") |
| | | { |
| | | throw new Exception("备料同步MES失败:" + obj.message); |
| | | } |
| | | |
| | | } |
| | | if (userId != 0) |
| | | { |
| | | //添加操作日志记录 |
| | |
| | | PalletNo = task.PalletNo,//托盘号 |
| | | StartLocate = locateNo, // 起始位置 |
| | | StartRoadway = locate.RoadwayNo, |
| | | EndLocate = "", // 目标位置 |
| | | EndLocate = task.EndLocat, // 目标位置 |
| | | TaskNo = task.TaskNo, // 任务号 |
| | | TaskType = "1",// 任务类型 (出库) |
| | | OutMode = "", //目标地址 |