| | |
| | | using System.Text; |
| | | using Model.ModelDto; |
| | | using Model.ModelDto.DataDto; |
| | | using Model.ModelDto.SysDto; |
| | | using Model.ModelVm.DataVm; |
| | | using SqlSugar; |
| | | using WMS.DAL; |
| | | using WMS.Entity.BllSoEntity; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.LogEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.IDataServer; |
| | | |
| | |
| | | /// <param name="palletNo">托盘条码</param> |
| | | /// <param name="status">库存状态</param> |
| | | /// <param name="inspectStatus">质检状态</param> |
| | | /// <param name="houseNo">所属仓库</param> |
| | | /// <param name="areaNo">所属区域</param> |
| | | /// <param name="type">物料类型</param> |
| | | /// <param name="ownerNo">货主编号</param> |
| | | /// <param name="ownerName">货主名称</param> |
| | | /// <returns></returns> |
| | | public List<StockDetailDto> GetInventoryList1(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, |
| | | string status, string inspectStatus, string ownerNo, string ownerName) |
| | | string status, string inspectStatus, string ownerNo, string ownerName, string houseNo, string areaNo, string categoryNo, string type) |
| | | { |
| | | string str = "select detail.*,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName," + |
| | | string str = "select detail.*,sku.Type,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName," + |
| | | "roadway.RoadwayNo + '-' + roadway.RoadwayName as RoadwayName,area.AreaNo + '-' + area.AreaName as AreaName " + |
| | | "from DataStockDetail detail " + |
| | | "left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo " + |
| | | "left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo " + |
| | | "left join SysStorageArea area on detail.AreaNo = area.AreaNo " + |
| | | "left join SysMaterials as sku on detail.skuNo = sku.skuNo " + |
| | | "left join SysMaterialCategory as cat on sku.CategoryNo = cat.CategoryNo " + |
| | | "Where detail.IsDel = @isdel"; |
| | | //判断物料编码是否为空 |
| | | if (!string.IsNullOrEmpty(skuNo)) |
| | |
| | | if (!string.IsNullOrEmpty(ownerName)) |
| | | { |
| | | str += " and detail.OwnerName like @ownerName"; |
| | | } |
| | | if (!string.IsNullOrEmpty(houseNo)) |
| | | { |
| | | str += " and house.WareHouseNo = @wareHouseNo"; |
| | | } |
| | | if (!string.IsNullOrEmpty(areaNo)) |
| | | { |
| | | str += " and area.AreaNo = @areaNo"; |
| | | } |
| | | if (!string.IsNullOrEmpty(categoryNo)) |
| | | { |
| | | str += " and cat.CategoryNo = @categoryNo"; |
| | | } |
| | | if (!string.IsNullOrEmpty(type)) |
| | | { |
| | | str += " and sku.Type = @type"; |
| | | } |
| | | |
| | | //排序 |
| | | str += " order by detail.SkuNo,detail.PalletNo,detail.LotNo"; |
| | | List<StockDetailDto> stockDetailsList = Db.Ado.SqlQuery<StockDetailDto>(str, new |
| | | { |
| | | isdel = "0", //是否删除 |
| | | skuno = "%" + skuNo + "%", //物料编码 |
| | | skuname = "%" + skuName + "%", //物料名称 |
| | | lotno = "%" + lotNo + "%", //批次 |
| | | locatno = "%" + locatNo + "%", //储位地址 |
| | | palletno = "%" + palletNo + "%", //托盘条码 |
| | | status = status, //库存状态 |
| | | inspectstatus = inspectStatus, //质检状态 |
| | | ownerNo = "%" + ownerNo + "%", //货主编码 |
| | | ownerName = "%" + ownerName + "%" //货主名称 |
| | | isdel = "0", //是否删除 |
| | | skuno = "%" + skuNo + "%", //物料编码 |
| | | skuname = "%" + skuName + "%", //物料名称 |
| | | lotno = "%" + lotNo + "%", //批次 |
| | | locatno = "%" + locatNo + "%", //储位地址 |
| | | palletno = "%" + palletNo + "%", //托盘条码 |
| | | status = status, //库存状态 |
| | | inspectstatus = inspectStatus, //质检状态 |
| | | ownerNo = "%" + ownerNo + "%", //货主编码 |
| | | ownerName = "%" + ownerName + "%", //货主名称 |
| | | wareHouseNo = houseNo, |
| | | areaNo = areaNo, //所属区域 |
| | | categoryNo = categoryNo, //逻辑库区 |
| | | type = type |
| | | }); |
| | | return stockDetailsList; |
| | | } |
| | |
| | | "where bind.IsDel = '0' and notice.IsDel = '0' and bind.LotNo in (select LotNo from DataStock where IsDel = '0') "; |
| | | //出库 |
| | | string cstr = "select notice.SONo,allot.LotNo,allot.TaskNo CTaskNo,allot.SkuNo,allot.SkuName,allot.PalletNo," + |
| | | "allot.CreateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," + |
| | | "allot.UpdateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," + |
| | | "allot.LotText,allot.SupplierLot " + |
| | | "from BllExportAllot allot left join BllExportNoticeDetail notice on allot.SODetailNo = notice.Id " + |
| | | "where allot.IsDel = '0' and notice.IsDel = '0' " + |
| | |
| | | { |
| | | EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString(); |
| | | } |
| | | int countjie = 0; //统计结存数量 |
| | | decimal countjie = 0; //统计结存数量 |
| | | ////判断库存信息是否为空 |
| | | //if (stockInfo != null) |
| | | //{ |
| | |
| | | } |
| | | |
| | | //} |
| | | int yeara = 0; //年入库 |
| | | int years = 0; //年出库 |
| | | int montha = 0; //月入库 |
| | | int months = 0; //月出库 |
| | | decimal yeara = 0; //年入库 |
| | | decimal years = 0; //年出库 |
| | | decimal montha = 0; //月入库 |
| | | decimal months = 0; //月出库 |
| | | DateTime createTime = DateTime.Now.AddYears(-1000); //时间 |
| | | |
| | | //获取有多少年 |
| | |
| | | //判断物料是否相同 |
| | | if (dto.SkuNo == item.SkuNo) |
| | | { |
| | | dto.Qty = (Convert.ToInt32(dto.Qty) + Convert.ToInt32(item.Qty)).ToString(); |
| | | dto.FrozenQty = (Convert.ToInt32(dto.FrozenQty) + Convert.ToInt32(item.FrozenQty)).ToString(); |
| | | dto.LockQty = (Convert.ToInt32(dto.LockQty) + Convert.ToInt32(item.LockQty)).ToString(); |
| | | dto.ResidueQty = (Convert.ToInt32(dto.ResidueQty) + Convert.ToInt32(item.ResidueQty)).ToString(); |
| | | var s = Convert.ToDecimal(dto.Qty) ; |
| | | var ss = Convert.ToDecimal(item.Qty); |
| | | dto.Qty = (Convert.ToDecimal(dto.Qty) + Convert.ToDecimal(item.Qty)).ToString(); |
| | | dto.FrozenQty = (Convert.ToDecimal(dto.FrozenQty) + Convert.ToDecimal(item.FrozenQty)).ToString(); |
| | | dto.LockQty = (Convert.ToDecimal(dto.LockQty) + Convert.ToDecimal(item.LockQty)).ToString(); |
| | | dto.ResidueQty = (Convert.ToDecimal(dto.ResidueQty) + Convert.ToDecimal(item.ResidueQty)).ToString(); |
| | | break; |
| | | } |
| | | i += 1; |
| | |
| | | return stockDetailsList; |
| | | } |
| | | #endregion |
| | | |
| | | #region AGV小车任务完成 |
| | | |
| | | /// <summary> |
| | | /// AGV入库完成 |
| | | /// </summary> |
| | | /// <param name="TaskCode">任务号</param> |
| | | /// <returns></returns> |
| | | public void ArriveFinish(string TaskCode) |
| | | { |
| | | try |
| | | { |
| | | var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "0");//获取任务信息 |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //获取库位信息 |
| | | var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | |
| | | //修改起始库位状态 |
| | | storageLocat.Status = "0";//0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 |
| | | Db.Updateable(storageLocat).ExecuteCommand(); |
| | | |
| | | //修改任务状态 |
| | | palletNo.Status = "2"; //已完成 |
| | | Db.Updateable(palletNo).ExecuteCommand(); |
| | | |
| | | //修改库存明细 |
| | | stockDetail.Status = "0";//待分配 |
| | | stockDetail.LocatNo = ""; |
| | | stockDetail.AreaNo = ""; |
| | | stockDetail.RoadwayNo = ""; |
| | | stockDetail.WareHouseNo = ""; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | |
| | | //下发WCS申请入库 |
| | | |
| | | |
| | | Db.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw new Exception("AGV返回入库完成信号处理错误,错误信息:" + ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// AGV出库完成 |
| | | /// </summary> |
| | | /// <param name="TaskCode">任务号</param> |
| | | /// <returns></returns> |
| | | public void SoFinish(string TaskCode) |
| | | { |
| | | try |
| | | { |
| | | var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "1");//获取任务信息 |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //获取库位信息 |
| | | var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //获取库位信息 |
| | | var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //获取库存信息 |
| | | |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | //修改目的库位状态 |
| | | storageLocat.Status = "1";//0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 |
| | | Db.Updateable(storageLocat).ExecuteCommand(); |
| | | |
| | | //修改任务状态 |
| | | palletNo.Status = "2"; //已完成 |
| | | Db.Updateable(palletNo).ExecuteCommand(); |
| | | |
| | | //修改库存明细 |
| | | stockDetail.Status = "2";// 0:待分配 1:部分分配 2:已分配 3:盘点锁定: 4移库锁定 |
| | | stockDetail.LocatNo = storageLocat.LocatNo; |
| | | stockDetail.AreaNo = storageLocat.AreaNo; |
| | | stockDetail.RoadwayNo = storageLocat.RoadwayNo; |
| | | stockDetail.WareHouseNo = storageLocat.WareHouseNo; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | |
| | | |
| | | Db.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception ex ) |
| | | { |
| | | |
| | | throw new Exception("AGV返回出库完成信号处理错误,错误信息:" + ex); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// AGV移库完成 |
| | | /// </summary> |
| | | /// <param name="TaskCode">任务号</param> |
| | | /// <returns></returns> |
| | | public void MoveFinish(string TaskCode) |
| | | { |
| | | try |
| | | { |
| | | var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.OrderType == "3");//获取任务信息 |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //获取库位信息 |
| | | var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //获取库位信息 |
| | | var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //获取库存信息 |
| | | //var soAllot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);//获取分配信息 |
| | | |
| | | |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | //修改起始库位状态 |
| | | storageLocat.Status = "0";//0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 |
| | | Db.Updateable(storageLocat).ExecuteCommand(); |
| | | |
| | | //修改目的库位状态 |
| | | storageLocat.Status = "1";//0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 |
| | | Db.Updateable(storageLocat).ExecuteCommand(); |
| | | |
| | | //修改任务状态 |
| | | palletNo.Status = "2"; //已完成 |
| | | Db.Updateable(palletNo).ExecuteCommand(); |
| | | |
| | | //修改库存明细 |
| | | stockDetail.Status = "2";// 0:待分配 1:部分分配 2:已分配 3:盘点锁定: 4移库锁定 |
| | | stockDetail.LocatNo = storageLocat.LocatNo; |
| | | stockDetail.AreaNo = storageLocat.AreaNo; |
| | | stockDetail.RoadwayNo = storageLocat.RoadwayNo; |
| | | stockDetail.WareHouseNo = storageLocat.WareHouseNo; |
| | | Db.Updateable(stockDetail).ExecuteCommand(); |
| | | |
| | | |
| | | Db.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | throw new Exception("AGV返回移库完成信号处理错误,错误信息:"+ex); |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |