//using Furion.DatabaseAccessor; //using Furion.DependencyInjection; //using Furion.DynamicApiController; //using Mapster; //using Microsoft.AspNetCore.Mvc; //using Microsoft.EntityFrameworkCore; //using Admin.NET.Core; //namespace Admin.NET.Application //{ // /// // /// 库位试图服务 // /// // [ApiDescriptionSettings("仓库作业", Name = "LocationView", Order = 104)] // [Route("api/[Controller]")] // public class LocationViewService : IDynamicApiController, ITransient // { // private readonly IRepository _wmsAreaRep; // private readonly IRepository _wmsPlaceRep; // private readonly IRepository _wmsMaterialStockRep; // private readonly IRepository _wmsContainerPlaceRep; // private readonly IRepository _wmsContainerRep; // private readonly IRepository _wmsMaterialContainerRep; // /// // /// 构造函数 // /// // public LocationViewService( // IRepository wmsAreaRep, // IRepository wmsPlaceRep, // IRepository wmsMaterialStockRep, // IRepository wmsContainerPlaceRe, // IRepository wmsContainerRep, // IRepository wmsMaterialContainer // ) // { // _wmsAreaRep = wmsAreaRep; // _wmsPlaceRep = wmsPlaceRep; // _wmsMaterialStockRep = wmsMaterialStockRep; // _wmsContainerPlaceRep = wmsContainerPlaceRe; // _wmsContainerRep = wmsContainerRep; // _wmsMaterialContainerRep = wmsMaterialContainer; // } // /// // /// 获取库区信息 // /// // /// // [HttpGet("GetArea")] // public async Task> GetArea() // { // var areaList = await _wmsAreaRep.Where(n => n.AreaStatus == CommonStatus.ENABLE && n.WorkShopType == LesWorkShopType.FAPAOCHEJIAN).ToListAsync(); // return areaList; // } // /// // /// 根据库区获取巷道 // /// // /// // /// // [HttpGet("GetAisle")] // public async Task GetPalceAisle([FromQuery] GetPalceAisleInput input) // { // var objList=await _wmsPlaceRep.Where(n => n.AreaId == input.Areaid).OrderBy(n=>n.Aisle).Select(n => n.Aisle).Distinct().ToArrayAsync(); // for (int i = 0; i < objList.Length-1; i++) // { // for (int j = 0; j < objList.Length-1; j++) // { // int k = j + 1; // if (objList[j] >objList[k]) // { // var temp = objList[k]; // objList[k] = objList[j]; // objList[j] = temp; // } // } // } // return objList; // } // /// // /// 根据库区和巷道获取排 // /// // /// // /// // [HttpGet("GetPalceRowno")] // public async Task GetPalceRowno([FromQuery] GetPalceAisleRownoInput input) // { // var objList=await _wmsPlaceRep.Where(n => n.AreaId == input.Areaid && n.Aisle==input.Aisleid && n.WmsArea.WorkShopType == LesWorkShopType.FAPAOCHEJIAN).OrderBy(n => n.RowNo).Select(n => n.RowNo).Distinct().ToArrayAsync(); // for (int i = 0; i < objList.Length - 1; i++) // { // for (int j = 0; j < objList.Length - 1; j++) // { // int k = j + 1; // if (objList[j] > objList[k]) // { // var temp = objList[k]; // objList[k] = objList[j]; // objList[j] = temp; // } // } // } // return objList; // } // /// // /// 根据库区 排获取库位信息 // /// // /// // /// // [HttpGet("GetPalceList")] // public async Task GetPalceList([FromQuery] GetPalceListInput input) // { // var palceList = await _wmsPlaceRep.DetachedEntities // .Where(p => p.AreaId == input.Areaid) // .Where(input.Aisleid != 0, p => p.Aisle == input.Aisleid) // .Where(input.Rowno != 0, p => p.RowNo == input.Rowno) // .ToListAsync(); // //获取有多少巷,排,列,层 // var Aisles = palceList.OrderBy(n => n.Aisle).Select(n => n.Aisle).Distinct().ToList(); // var locationDataList = new List(); // //巷道 // foreach (var aisle in Aisles) // { // var aisleData = new WareLocationAisleData(); // aisleData.Aisle = aisle; // aisleData.wareLocationRownoData = new List(); // //排 // var RowNos = palceList.Where(p=>p.Aisle==aisle).OrderBy(n => n.RowNo).Select(n => n.RowNo).Distinct().ToList(); // foreach (var row in RowNos) // { // var rownoData = new WareLocationRownoData(); // rownoData.Rowno = row; // rownoData.wareLocationLayerData = new List(); // //层 // var LayerNo = palceList.Where(p=>p.Aisle==aisle && p.RowNo==row).OrderByDescending(n => n.LayerNo).Select(n => n.LayerNo).Distinct(); // foreach (var lay in LayerNo) // { // var layerData = new WareLocationLayerData(); // layerData.Layer = lay; // layerData.wareLocationColumnNoData = new List(); // //列 // var ColumnNos = palceList.Where(p=>p.Aisle==aisle && p.RowNo==row).OrderByDescending(n => n.ColumnNo).Select(n => n.ColumnNo).Distinct(); // foreach (var col in ColumnNos) // { // var wareLocationMdoel = palceList.Where(p =>p.Aisle==aisle && p.RowNo == row && p.LayerNo == lay && p.ColumnNo == col).FirstOrDefault(); // if (wareLocationMdoel != null) // { // var locationDetail = new PalceDetail() // { // Id = wareLocationMdoel.Id, // RowNo = wareLocationMdoel.RowNo, // ColumnNo = wareLocationMdoel.ColumnNo, // LayerNo = wareLocationMdoel.LayerNo, // PlaceCode = wareLocationMdoel.PlaceCode, // Islock = wareLocationMdoel.Islock, // EmptyContainer = wareLocationMdoel.EmptyContainer, // PlaceStatus = wareLocationMdoel.PlaceStatus, // }; // layerData.wareLocationColumnNoData.Add(locationDetail); // } // else // { // layerData.wareLocationColumnNoData.Add(null); // } // } // rownoData.wareLocationLayerData.Add(layerData); // } // aisleData.wareLocationRownoData.Add(rownoData); // } // locationDataList.Add(aisleData); // } // return new PalceInfoOtput() // { // countNum = palceList.Count, // cunhuoNum = palceList.Where(n => n.PlaceStatus == PlaceStatus.CUNHUO).Count(), // emptyNum = palceList.Where(n => n.PlaceStatus == PlaceStatus.KONGXIAN).Count(), // DaiRuNum = palceList.Where(n => n.PlaceStatus == PlaceStatus.DAIRU).Count(), // DaichuNum = palceList.Where(n => n.PlaceStatus == PlaceStatus.DAICHU).Count(), // emptyContainerNum = palceList.Where(p => p.EmptyContainer == YesOrNot.Y && p.PlaceStatus == PlaceStatus.CUNHUO).Count(), // materialNum = palceList.Where(p => p.EmptyContainer == YesOrNot.N && p.PlaceStatus == PlaceStatus.CUNHUO).Count(), // lockNum = palceList.Where(p => p.Islock == YesOrNot.Y).Count(), // PalceDetails = locationDataList, // }; // } // /// // /// 根据库位获取对应信息 // /// // /// // /// // [HttpGet("GetMaterialDetail")] // [UnifyResult(typeof(MaterialDetailsOutput))] // public async Task GetMaterialDetail([FromQuery] GetMaterialDetailInput input) // { // var palceModel = await _wmsPlaceRep.FirstOrDefaultAsync(p => p.Id == input.Id); // if (palceModel == null) return XnRestfulResultProvider.RESTfulMesaage("库位信息不存在!"); // var MaterialStockList = await _wmsMaterialStockRep.Where(p => p.PlaceCode == palceModel.PlaceCode).ToListAsync(); // var model = new MaterialDetailsOutput() // { // PalceDetails = palceModel.Adapt() // }; // if (MaterialStockList.Count > 0) // { // model.Containercode = MaterialStockList.FirstOrDefault().ContainerCode; // model.WmsMaterialStocks = MaterialStockList; // } // return XnRestfulResultProvider.RESTfulResult(model); // } // /// // /// 修改库位锁定信息 // /// // /// // /// // [HttpGet("UpdatePalceIslock")] // [UnifyResult(typeof(object))] // public async Task UpdatePalceIslock([FromQuery] GetMaterialDetailInput input) // { // var palceModel = await _wmsPlaceRep.FirstOrDefaultAsync(p => p.Id == input.Id); // if (palceModel == null) return XnRestfulResultProvider.RESTfulMesaage("库位信息不存在!"); // if (palceModel.Islock == YesOrNot.Y) // { // palceModel.Islock = YesOrNot.N; // } // else // { // palceModel.Islock = YesOrNot.Y; // } // await _wmsPlaceRep.UpdateAsync(palceModel); // return XnRestfulResultProvider.RESTfulResult(); // } // /// // /// 将库位置为空闲 // /// // /// // /// // [HttpGet("UpdatePalceKongXian")] // [UnifyResult(typeof(object))] // [UnitOfWork] // public async Task UpdatePalceKongXian([FromQuery] GetMaterialDetailInput input) // { // var palceModel = await _wmsPlaceRep.FirstOrDefaultAsync(p => p.Id == input.Id); // if (palceModel == null) return XnRestfulResultProvider.RESTfulMesaage("库位信息不存在!"); // palceModel.PlaceStatus = PlaceStatus.KONGXIAN; // await _wmsPlaceRep.UpdateAsync(palceModel); // var materialStockModel = await _wmsMaterialStockRep.Where(p => p.PlaceCode == palceModel.PlaceCode).FirstOrDefaultAsync(); // if (materialStockModel != null) // { // await _wmsMaterialStockRep.DeleteAsync(materialStockModel); // } // var containerPlaceModel = await _wmsContainerPlaceRep.Where(p => p.PlaceCode == palceModel.PlaceCode && p.ContainerPlaceStatus == CommonStatus.ENABLE).FirstOrDefaultAsync(); // if (containerPlaceModel != null) // { // containerPlaceModel.ContainerPlaceStatus = CommonStatus.DISABLE; // await _wmsContainerPlaceRep.UpdateAsync(containerPlaceModel); // var wmsMaterialContainerModal = await _wmsMaterialContainerRep.FirstOrDefaultAsync(p => p.ContainerCode == containerPlaceModel.ContainerCode && p.BindStatus == CommonStatus.ENABLE); // if (containerPlaceModel != null) return XnRestfulResultProvider.RESTfulMesaage("物料托盘信息不存在!"); // containerPlaceModel.ContainerPlaceStatus = CommonStatus.DISABLE; // await _wmsMaterialContainerRep.UpdateAsync(wmsMaterialContainerModal); // var containerModel = await _wmsContainerRep.FirstOrDefaultAsync(p => p.ContainerCode == containerPlaceModel.ContainerCode); // if (containerModel != null) // { // containerModel.ContainerStatus = ContainerStatus.KOUXIAN; // await _wmsContainerRep.UpdateAsync(containerModel); // } // } // return XnRestfulResultProvider.RESTfulResult(); // } // } //}