| | |
| | | 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; |
| | |
| | | LotNo = m.LotNo, |
| | | LotText = m.LotText, |
| | | SupplierLot = m.SupplierLot, |
| | | Qty = (int)m.Qty, |
| | | Qty = m.Qty, |
| | | |
| | | PalletNo = m.PalletNo |
| | | }).ToList(); |
| | |
| | | BoxNo2 = l.BoxNo2, |
| | | BoxNo3 = l.BoxNo3, |
| | | PalletNo = l.PalletNo, |
| | | Qty = (int)l.RealQty, |
| | | Qty = (decimal)l.RealQty, |
| | | FullQty = stockBoxInfo.FullQty,//满箱数量 |
| | | Status = "2", |
| | | SkuNo = l.SkuNo, |
| | |
| | | } |
| | | } |
| | | |
| | | //生成盘点记录 |
| | | //生成盘点记录 |
| | | Db.Insertable(logList).ExecuteCommand(); |
| | | } |
| | | // 储位号 |
| | |
| | | } |
| | | |
| | | //AGV移库完成 |
| | | public void MoveSuccess(string taskNo, int userId) |
| | | public void MoveSuccess(string taskNo,string mesTokenUrl, string mesUrl, int userId) |
| | | { |
| | | try |
| | | { |
| | |
| | | var endLocate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); |
| | | if (endLocate != null) |
| | | { |
| | | if (endLocate.Status != "0") |
| | | if (endLocate.Status != "4") |
| | | { |
| | | throw new Exception("目标储位状态非空储位"); |
| | | throw new Exception("目标储位状态非移入中"); |
| | | } |
| | | } |
| | | var data = new List<RequertBeiliaoInfoModel>(); |
| | | //更改库存明细 |
| | | foreach (var item in stockDetail) |
| | | { |
| | | item.Status = "0";//待分配 |
| | | item.LockQty = 0;//锁定数量改为0 |
| | | //item.Status = "0";//待分配 |
| | | //item.LockQty = 0;//锁定数量改为0 |
| | | if (endLocate != null)//有目标储位说明移到其他区域储位 |
| | | { |
| | | item.LocatNo = endLocate.LocatNo;//储位更改 |
| | | item.WareHouseNo = endLocate.WareHouseNo;//所属仓库更改 |
| | | item.RoadwayNo = endLocate.RoadwayNo;//所属巷道更改 |
| | | item.AreaNo = endLocate.AreaNo;//所属区域更改 |
| | | item.AreaNo = endLocate.AreaNo;//所属区域更改 |
| | | |
| | | } |
| | | else//没有目标储位说明移到入库口 |
| | | { |
| | |
| | | item.WareHouseNo = "";//所属仓库更改(改为空) |
| | | item.RoadwayNo = "";//所属巷道更改(改为空) |
| | | item.AreaNo = "";//所属区域更改(改为空) |
| | | } |
| | | } |
| | | if (item.Qty == item.LockQty && item.LockQty>0) |
| | | { |
| | | item.Status = "2"; |
| | | } |
| | | else if (item.Qty > item.LockQty && item.LockQty > 0) |
| | | { |
| | | item.Status = "1"; |
| | | } |
| | | else if (item.Qty > item.LockQty && item.LockQty == 0) |
| | | { |
| | | item.Status = "0"; |
| | | } |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | |
| | | //更改库存总表 |
| | | var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); |
| | | stock.LockQty -= (decimal)item.Qty; |
| | | Db.Updateable(stock).ExecuteCommand(); |
| | | |
| | | |
| | | |
| | | 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(); |
| | | //更改库存总表 |
| | | var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); |
| | | stock.LockQty -= (decimal)item.Qty; |
| | | stock.Qty -= (decimal)item.Qty; |
| | | Db.Updateable(stock).ExecuteCommand(); |
| | | //更改托盘状态 |
| | | var pallet = Db.Queryable<SysPallets>().First(m=>m.IsDel =="0" && m.PalletNo == task.PalletNo); |
| | | if (pallet != null) |
| | | { |
| | | pallet.Status = "0"; |
| | | Db.Updateable(pallet).ExecuteCommand(); |
| | | } |
| | | } |
| | | } |
| | | if (endLocate != null) |
| | | { |
| | | //更改目标储位状态 |
| | | 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) |
| | | { |
| | | //添加操作日志记录 |