You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
7.7 KiB
143 lines
7.7 KiB
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using WMS_GIRAF_Interface.Data;
|
|
using WMS_GIRAF_Interface.Models;
|
|
|
|
namespace WMS_GIRAF_Interface.Controllers
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
[ApiController, Route("Asrs")]
|
|
public class AsrsStatusController(IConfiguration configuration,MichelinDbContext context) : ControllerBase
|
|
{
|
|
private readonly IConfiguration _configuration = configuration;
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="asrsIdentifier"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("{asrsIdentifier}/status")]
|
|
public bool KeepAlive([FromRoute] string asrsIdentifier)
|
|
{
|
|
|
|
//返回true,表示服务正常
|
|
return true;
|
|
}
|
|
|
|
[HttpGet("{asrsIdentifier}/stock")]
|
|
public List<GetStockList.StockInfo> 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<GetStockList.StockInfo> 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<GetStockList.StockInfo>();
|
|
}
|
|
}
|
|
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<GetStockList.StockInfo> 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<GetStockList.StockInfo>();
|
|
}
|
|
else
|
|
{
|
|
//未查到对应sku的库存
|
|
return new List<GetStockList.StockInfo>();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|