| | |
| | | try |
| | | { |
| | | string taskMsg = ""; |
| | | //查找该桶有没有正在执行的任务 |
| | | var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == model.PalletNo); |
| | | if (tasking != null) |
| | | { |
| | | throw new Exception($"该桶有正在执行的任务,PalletNo:{model.PalletNo}"); |
| | | } |
| | | |
| | | //通过设备号查找到所属设备(区域) |
| | | var deviceInfo = Db.Queryable<SysStorageArea>().First(w => w.IsDel == "0" && w.DeviceCode.Contains(model.Location)); |
| | | if (deviceInfo == null) |
| | | { |
| | | throw new Exception("设备信息不存在"); |
| | | } |
| | | var houseNo = deviceInfo.WareHouseNo;//申请储位设备所在车间编号 |
| | | //申请储位设备所在车间编号 |
| | | var houseNo = deviceInfo.WareHouseNo; |
| | | //设备所在储位信息(起始储位) |
| | | var deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo); |
| | | if (deviceLocatInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}"); |
| | | } |
| | | |
| | | var noticeno = "0";//出入库单据明细ID |
| | | var deviceLocatInfo = new SysStorageLocat(); |
| | | //出入库单据明细ID |
| | | var noticeno = "0"; |
| | | //目标储位信息 |
| | | var loction = new SysStorageLocat(); |
| | | //桶库存信息 |
| | | var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo); |
| | | if (palletInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该桶的库存信息,PalletNo:{model.PalletNo}"); |
| | | } |
| | | var palletInfo = new DataStockDetail(); |
| | | |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().Where(w => w.IsDel == "0" && w.Status == "0"); |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | |
| | | SysStorageLocat loction = new SysStorageLocat();//目标储位信息 |
| | | switch (model.Type) |
| | | { |
| | | case "3"://清洗设备申请储位(净桶申请储位) |
| | | { |
| | | //设备放桶储位信息(原始叫桶目标储位) |
| | | var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 清洗储位,Column=2 清洗完料储位 |
| | | if (deviceLocatInfo2 == null) |
| | | { |
| | | throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}"); |
| | | } |
| | | //查找桶库存信息 |
| | | palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First(); |
| | | if (palletInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该设备上桶的库存信息"); |
| | | } |
| | | //查找该桶有没有正在执行的任务 |
| | | var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo); |
| | | if (tasking != null) |
| | | { |
| | | throw new Exception($"该桶有正在执行的任务,PalletNo:{palletInfo.PalletNo}"); |
| | | } |
| | | |
| | | //设备所在储位信息(起始储位) |
| | | deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 2);// Column=1 清洗储位,Column=2 清洗完料储位 |
| | | if (deviceLocatInfo == null) |
| | |
| | | { |
| | | throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}"); |
| | | } |
| | | //查找桶库存信息 |
| | | palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First(); |
| | | if (palletInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该设备上桶的库存信息"); |
| | | } |
| | | palletInfo.LotNo = model.LotNo;//批次号 |
| | | //更新桶库存信息 |
| | | Db.Updateable(palletInfo).ExecuteCommand(); |
| | | |
| | | //查找该桶有没有正在执行的任务 |
| | | var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo); |
| | | if (tasking != null) |
| | | { |
| | | throw new Exception($"该桶有正在执行的任务,PalletNo:{palletInfo.PalletNo}"); |
| | | } |
| | | |
| | | //判断是否有批次号 |
| | | if (string.IsNullOrWhiteSpace(model.LotNo)) |
| | | { |
| | |
| | | { |
| | | throw new Exception("该车间预混区暂无空余储位"); |
| | | } |
| | | palletInfo.LotNo = model.LotNo;//批次号 |
| | | //更新桶库存信息 |
| | | Db.Updateable(palletInfo).ExecuteCommand(); |
| | | |
| | | |
| | | taskMsg = "接料设备(预混料桶)申请储位任务"; |
| | | } |
| | |
| | | { |
| | | throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}"); |
| | | } |
| | | //查找桶库存信息 |
| | | palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First(); |
| | | if (palletInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该设备上桶的库存信息"); |
| | | } |
| | | //查找该桶有没有正在执行的任务 |
| | | var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo); |
| | | if (tasking != null) |
| | | { |
| | | throw new Exception($"该桶有正在执行的任务,PalletNo:{palletInfo.PalletNo}"); |
| | | } |
| | | |
| | | //判断是否有批次号 |
| | | if (string.IsNullOrWhiteSpace(model.LotNo)) |
| | | { |
| | |
| | | throw new Exception("该批次没有对应的入库单"); |
| | | } |
| | | notice.Status = "1";//正在执行 |
| | | //更新入库单状态 |
| | | //更新入库单状态 |
| | | Db.Updateable(notice).ExecuteCommand(); |
| | | |
| | | //查找到该车间半成品区 |
| | |
| | | break; |
| | | case "2"://下料设备申请储位(脏桶申请储位) |
| | | { |
| | | //设备放桶储位信息(原始叫桶目标储位) |
| | | var deviceLocatInfo2 = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1);// Column=1 投料储位,Column=2 投完料储位 |
| | | if (deviceLocatInfo2 == null) |
| | | { |
| | | throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}"); |
| | | } |
| | | //查找桶库存信息 |
| | | palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo2.WareHouseNo && w.AreaNo == deviceLocatInfo2.AreaNo && w.LocatNo == deviceLocatInfo2.LocatNo).OrderBy(o => o.UpdateTime).First(); |
| | | if (palletInfo == null) |
| | | { |
| | | throw new Exception($"未查询到该设备上桶的库存信息"); |
| | | } |
| | | //查找该桶有没有正在执行的任务 |
| | | var tasking = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.PalletNo == palletInfo.PalletNo); |
| | | if (tasking != null) |
| | | { |
| | | throw new Exception($"该桶有正在执行的任务,PalletNo:{palletInfo.PalletNo}"); |
| | | } |
| | | if (houseNo == "M04")//除了喷干车间下料口都是2个储位(投料储位、投完料储位) |
| | | { |
| | | //设备所在储位信息(起始储位) |
| | | deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo); |
| | | deviceLocatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.WareHouseNo == houseNo && w.AreaNo == deviceInfo.AreaNo && w.Column == 1); |
| | | } |
| | | else |
| | | { |
| | |
| | | //BackDate = DateTime.Now, //返回时间 |
| | | StartLocat = deviceLocatInfo.LocatNo,//起始位置 |
| | | EndLocat = loction.LocatNo,//目标位置 |
| | | PalletNo = model.PalletNo,//桶号 |
| | | PalletNo = palletInfo.PalletNo,//桶号 |
| | | IsSend = 1,//是否可再次下发 |
| | | IsCancel = 1,//是否可取消 |
| | | IsFinish = 1,//是否可完成 |
| | |
| | | Taskno = taskNo,//任务号 |
| | | Startport = deviceLocatInfo.LocatNo, |
| | | Endport = loction.LocatNo, |
| | | Pallno = model.PalletNo, |
| | | Pallno = palletInfo.PalletNo, |
| | | Crtype = "0",//入库 |
| | | WareHouseNo = houseNo |
| | | }; |
| | |
| | | stockDetail.WareHouseNo = endLocatInfo.WareHouseNo;//所属仓库 |
| | | stockDetail.RoadwayNo = endLocatInfo.RoadwayNo;//所属巷道 |
| | | stockDetail.AreaNo = endLocatInfo.AreaNo;//所属区域 |
| | | stockDetail.LocatNo = endLocatInfo.LocatNo;//储位地址 |
| | | stockDetail.LocatNo = endLocatInfo.LocatNo;//储位地址 |
| | | stockDetail.UpdateTime = DateTime.Now;//更新时间 |
| | | if (endAreaInfo.Type == "0")//洁净区 |
| | | { |
| | | stockDetail.PalletStatus = "0"; |