using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using WMS_GIRAF_Interface.Data; using WMS_GIRAF_Interface.Models; namespace WMS_GIRAF_Interface.Controllers { /// /// /// [ApiController, Route("Asrs")] public class AsrsStatusController(IConfiguration configuration,MichelinDbContext context) : ControllerBase { private readonly IConfiguration _configuration = configuration; /// /// /// /// /// [HttpGet("{asrsIdentifier}/status")] public bool KeepAlive([FromRoute] string asrsIdentifier) { //返回true,表示服务正常 return true; } [HttpGet("{asrsIdentifier}/stock")] public List GetStock( [FromRoute] string asrsIdentifier, [FromQuery] string? sku) { //根据用户给出的sku,返回库存信息, if (!string.IsNullOrEmpty(sku)) { //根据lot number和WAREHOUSE code来生成库存信息 var getStockList = context.GetStockList.FromSqlRaw($@"SELECT STOCK_BARCODE,LOTNUMBER,CELL_CODE, CELL_MODEL,supportIdentifier,supportIsBlocked, IsBlocked,IsPriority, PopulationNumber, DryDateTimeInUtc,DryDateTimeInLoc, OldDateTimeInUtc,OldDateTimeInLoc, HdvDateTimeInUtc,HdvDateTimeInLoc, FabricationDateTimeInUtc,FabricationDateTimeInLoc, IsAccessible FROM V_STORAGE_LIST WHERE WAREHOUSE_CODE = '{asrsIdentifier}' AND LOTNUMBER = '{sku}' ") .ToList(); if (getStockList is {Count:>0}) { List newReturnJson = getStockList.Select(getStockListModel => new GetStockList.StockInfo() { sku = getStockListModel.LOTNUMBER, storageAddress = getStockListModel.CELL_CODE, IsAccessible = getStockListModel.IsAccessible==1, support = new GetStockList.SupportS() { type = getStockListModel.CELL_MODEL, identifier = getStockListModel.supportIdentifier, IsBlocked = getStockListModel.supportIsBlocked }, products = new GetStockList.ProductForGetStock[] { new GetStockList.ProductForGetStock() { identifier = getStockListModel.STOCK_BARCODE, isBlocked = getStockListModel.IsBlocked, isPriority = getStockListModel.IsPriority, productClass = getStockListModel.PopulationNumber??"0000000000", fabricationDate = getStockListModel.FabricationDateTimeInLoc, maturationDate = getStockListModel.DryDateTimeInLoc, expirationDate = getStockListModel.OldDateTimeInLoc, highPriorityDate = getStockListModel.HdvDateTimeInLoc } } }) .ToList(); //获取库存信息 return newReturnJson; } else { //未查到对应sku的库存 return new List(); } } else { //查询当前库中所有库存信息 var getStockList = context.GetStockList.FromSqlRaw($@"SELECT STOCK_BARCODE,LOTNUMBER,CELL_CODE, CELL_MODEL,supportIdentifier,supportIsBlocked IsBlocked,IsPriority, PopulationNumber, DryDateTimeInUtc,DryDateTimeInLoc, OldDateTimeInUtc,OldDateTimeInLoc, HdvDateTimeInUtc,HdvDateTimeInLoc, FabricationDateTimeInUtc,FabricationDateTimeInLoc, IsAccessible FROM V_STORAGE_LIST WHERE WAREHOUSE_CODE = '{asrsIdentifier}' ") .ToList(); if (getStockList is { Count: > 0 }) { List newReturnJson = getStockList.Select(getStockListModel => new GetStockList.StockInfo() { sku = getStockListModel.LOTNUMBER, storageAddress = getStockListModel.CELL_CODE, IsAccessible = getStockListModel.IsAccessible==1, support = new GetStockList.SupportS() { type = getStockListModel.CELL_MODEL, identifier = getStockListModel.supportIdentifier, IsBlocked = getStockListModel.supportIsBlocked }, products = new GetStockList.ProductForGetStock[] { new GetStockList.ProductForGetStock() { identifier = getStockListModel.STOCK_BARCODE, isBlocked = getStockListModel.IsBlocked, isPriority = getStockListModel.IsPriority, productClass = getStockListModel.PopulationNumber ?? "0000000000", fabricationDate = getStockListModel.FabricationDateTimeInLoc, maturationDate = getStockListModel.DryDateTimeInLoc, expirationDate = getStockListModel.OldDateTimeInLoc, highPriorityDate = getStockListModel.HdvDateTimeInLoc } } }) .ToList(); //获取库存信息 return new List(); } else { //未查到对应sku的库存 return new List(); } } } } }