//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
|
//{
|
// /// <summary>
|
// /// 库位试图服务
|
// /// </summary>
|
// [ApiDescriptionSettings("仓库作业", Name = "LocationView", Order = 104)]
|
// [Route("api/[Controller]")]
|
// public class LocationViewService : IDynamicApiController, ITransient
|
// {
|
// private readonly IRepository<WmsArea, MasterDbContextLocator> _wmsAreaRep;
|
// private readonly IRepository<WmsPlace, MasterDbContextLocator> _wmsPlaceRep;
|
// private readonly IRepository<WmsMaterialStock, MasterDbContextLocator> _wmsMaterialStockRep;
|
// private readonly IRepository<WmsContainerPlace, MasterDbContextLocator> _wmsContainerPlaceRep;
|
// private readonly IRepository<WmsContainer, MasterDbContextLocator> _wmsContainerRep;
|
// private readonly IRepository<WmsMaterialContainer, MasterDbContextLocator> _wmsMaterialContainerRep;
|
|
// /// <summary>
|
// /// 构造函数
|
// /// </summary>
|
// public LocationViewService(
|
// IRepository<WmsArea, MasterDbContextLocator> wmsAreaRep,
|
// IRepository<WmsPlace, MasterDbContextLocator> wmsPlaceRep,
|
// IRepository<WmsMaterialStock, MasterDbContextLocator> wmsMaterialStockRep,
|
// IRepository<WmsContainerPlace, MasterDbContextLocator> wmsContainerPlaceRe,
|
// IRepository<WmsContainer, MasterDbContextLocator> wmsContainerRep,
|
// IRepository<WmsMaterialContainer, MasterDbContextLocator> wmsMaterialContainer
|
// )
|
// {
|
// _wmsAreaRep = wmsAreaRep;
|
// _wmsPlaceRep = wmsPlaceRep;
|
// _wmsMaterialStockRep = wmsMaterialStockRep;
|
// _wmsContainerPlaceRep = wmsContainerPlaceRe;
|
// _wmsContainerRep = wmsContainerRep;
|
// _wmsMaterialContainerRep = wmsMaterialContainer;
|
// }
|
|
// /// <summary>
|
// /// 获取库区信息
|
// /// </summary>
|
// /// <returns></returns>
|
// [HttpGet("GetArea")]
|
// public async Task<List<WmsArea>> GetArea()
|
// {
|
// var areaList = await _wmsAreaRep.Where(n => n.AreaStatus == CommonStatus.ENABLE && n.WorkShopType == LesWorkShopType.FAPAOCHEJIAN).ToListAsync();
|
// return areaList;
|
// }
|
|
// /// <summary>
|
// /// 根据库区获取巷道
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("GetAisle")]
|
// public async Task<object> 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;
|
// }
|
|
// /// <summary>
|
// /// 根据库区和巷道获取排
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("GetPalceRowno")]
|
// public async Task<object> 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;
|
// }
|
|
// /// <summary>
|
// /// 根据库区 排获取库位信息
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("GetPalceList")]
|
// public async Task<PalceInfoOtput> 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<WareLocationAisleData>();
|
// //巷道
|
// foreach (var aisle in Aisles)
|
// {
|
// var aisleData = new WareLocationAisleData();
|
// aisleData.Aisle = aisle;
|
// aisleData.wareLocationRownoData = new List<WareLocationRownoData>();
|
// //排
|
// 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<WareLocationLayerData>();
|
// //层
|
// 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<PalceDetail>();
|
// //列
|
// 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,
|
// };
|
// }
|
|
// /// <summary>
|
// /// 根据库位获取对应信息
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("GetMaterialDetail")]
|
// [UnifyResult(typeof(MaterialDetailsOutput))]
|
// public async Task<object> 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<PalceDetail>()
|
// };
|
// if (MaterialStockList.Count > 0)
|
// {
|
// model.Containercode = MaterialStockList.FirstOrDefault().ContainerCode;
|
// model.WmsMaterialStocks = MaterialStockList;
|
// }
|
// return XnRestfulResultProvider.RESTfulResult(model);
|
// }
|
|
// /// <summary>
|
// /// 修改库位锁定信息
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("UpdatePalceIslock")]
|
// [UnifyResult(typeof(object))]
|
// public async Task<object> 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();
|
// }
|
|
// /// <summary>
|
// /// 将库位置为空闲
|
// /// </summary>
|
// /// <param name="input"></param>
|
// /// <returns></returns>
|
// [HttpGet("UpdatePalceKongXian")]
|
// [UnifyResult(typeof(object))]
|
// [UnitOfWork]
|
// public async Task<object> 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();
|
// }
|
// }
|
//}
|