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.
94 lines
4.2 KiB
94 lines
4.2 KiB
using Microsoft.AspNetCore.Mvc;
|
|
using Newtonsoft.Json;
|
|
using Serilog;
|
|
using WMS_GIRAF_Interface.Models;
|
|
using WMS_GIRAF_Interface.Repositories.Interface;
|
|
|
|
namespace WMS_GIRAF_Interface.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("products")]
|
|
public class UpdateProductsController(
|
|
IStorageMainRepository storageMainRepository
|
|
) : ControllerBase
|
|
{
|
|
/// <summary>
|
|
/// 更新产品信息
|
|
/// </summary>
|
|
/// <param name="updateProducts"></param>
|
|
/// <returns></returns>
|
|
[HttpPut]
|
|
public UpdateProductsReturn UpdateProducts(UpdateProducts.RootObjectForUpdateProducts? updateProducts)
|
|
{
|
|
//根据提供的轮胎条码更新产品信息
|
|
UpdateProductsReturn returnJson = new UpdateProductsReturn();
|
|
if (updateProducts != null && !string.IsNullOrEmpty(updateProducts.updateRequestId))
|
|
{
|
|
|
|
if (updateProducts.products is{Length:>0})
|
|
{
|
|
int countNumber = updateProducts.products.Length;
|
|
foreach (var productInfo in updateProducts.products)
|
|
{
|
|
//检查轮胎条码是否
|
|
var checkBarcode = storageMainRepository.GetStorageMain("barcode", productInfo.identifier);
|
|
if (checkBarcode != null)
|
|
{
|
|
Log.Information($"{nameof(updateProducts)}: Record Tire Information: {JsonConvert.SerializeObject(checkBarcode)}");
|
|
//根据接口提供的信息进行更新
|
|
checkBarcode.IsBlocked = productInfo.isBlocked;
|
|
checkBarcode.IsPriority = productInfo.isPriority;
|
|
checkBarcode.PopulationNumber = productInfo.productClass;
|
|
checkBarcode.DryDateTimeInUtc = productInfo.maturationDate;
|
|
checkBarcode.OldDateTimeInUtc = productInfo.highPriorityDate;
|
|
checkBarcode.HdvDateTimeInUtc = productInfo.expirationDate;
|
|
if (string.IsNullOrEmpty(productInfo.newIdentifier) && checkBarcode.STOCK_BARCODE!=productInfo.identifier)
|
|
{
|
|
checkBarcode.STOCK_BARCODE = productInfo.identifier;
|
|
Log.Information($"{nameof(updateProducts)} change stock barcode {checkBarcode.STOCK_BARCODE} to {productInfo.identifier}");
|
|
}
|
|
|
|
storageMainRepository.UpdateStorageMain(checkBarcode);
|
|
Log.Information($"{nameof(updateProducts)}: Update tire ({checkBarcode.STOCK_BARCODE}) Information{JsonConvert.SerializeObject(checkBarcode)}");
|
|
countNumber--;
|
|
}
|
|
else
|
|
{
|
|
//未找到库存
|
|
Log.Information($"{nameof(updateProducts)}: tire ({productInfo.identifier}) have not found the storage Information ");
|
|
|
|
}
|
|
}
|
|
|
|
if (countNumber==0)
|
|
{
|
|
returnJson.status = "1";
|
|
returnJson.errorDetails = string.Empty;
|
|
}
|
|
else
|
|
{
|
|
returnJson.status = "2";
|
|
returnJson.errorDetails = "UpdatedPartially";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//无轮胎信息更新
|
|
Log.Information($"{nameof(updateProducts)}: Json didn't have Product parameters");
|
|
returnJson.status = "3";
|
|
returnJson.errorDetails = "RefusedBecauseEmptyProductParameter";
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//json为空或者缺少必要参数
|
|
Log.Information($"{nameof(updateProducts)}: json is empty or missing necessary parameters");
|
|
returnJson.status = "3";
|
|
returnJson.errorDetails = "RefusedBecauseEmptyParameter";
|
|
}
|
|
return returnJson;
|
|
}
|
|
}
|
|
}
|