diff --git a/Controllers/AsrsStatusController.cs b/Controllers/AsrsStatusController.cs new file mode 100644 index 0000000..b9f4685 --- /dev/null +++ b/Controllers/AsrsStatusController.cs @@ -0,0 +1,40 @@ +using Microsoft.AspNetCore.Mvc; + +namespace WMS_GIRAF_Interface.Controllers +{ + /// + /// + /// + + [ApiController, Route("Asrs")] + public class AsrsStatusController : ControllerBase + { + private readonly IConfiguration _configuration; + + public AsrsStatusController(IConfiguration configuration) + { + _configuration = configuration; + + } + + /// + /// + /// + /// + /// + [HttpGet("[asrsIdentifier]/status")] + public bool KeepAlive([FromRoute] string asrsIdentifier) + { + + return true; + } + + [HttpGet("[asrsIdentifier]/stock")] + public bool GetStock( + [FromRoute] string asrsIdentifier, + [FromQuery] string sku) + { + + } + } +} diff --git a/Controllers/InputRequestController.cs b/Controllers/InputRequestController.cs new file mode 100644 index 0000000..7f0d246 --- /dev/null +++ b/Controllers/InputRequestController.cs @@ -0,0 +1,47 @@ +using Microsoft.AspNetCore.Mvc; +using WMS_GIRAF_Interface.Models; + +namespace WMS_GIRAF_Interface.Controllers; + +/// +/// 入库申请Giraf->WMS +/// +[ApiController, Route("/Input")] +public class InputRequestController : ControllerBase +{ + /// + /// 入库任务请求 + /// + /// 轮胎入库任务请求json + [HttpPost] + public void GetInputRequestFromGiraf(InputRequest.RootObject inputRequest) + { + //TODO:获取入库任务,并生成到巷道的任务 + + } + + /// + /// 删除入库请求 + /// /Input/ItemDropped + /// + /// 取消入库请求报文 + [HttpPost("ItemDropped")] + public void GetItemDroppedFromGiraf(ItemDropped.RootObject itemDropped) + { + //TODO:获取轮胎post信息,并进行更新 + + + + } + /// + /// 取消入库请求 + /// + /// + [HttpPost("Cancel")] + + public void CancelInputRequest(CancelInputRequest.RootObject inputRequest) + { + //TODO:取消入库请求,如果已经到入库口,无法进行取消 + } + +} \ No newline at end of file diff --git a/Controllers/IsAliveController.cs b/Controllers/IsAliveController.cs deleted file mode 100644 index aa5e51c..0000000 --- a/Controllers/IsAliveController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace WMS_GIRAF_Interface.Controllers -{ - [ApiController, Route("api/[controller]")] - public class IsAliveController : ControllerBase - { - - [HttpGet] - public bool SendWmsStatus() - { - - return true; - } - } -} diff --git a/Controllers/OutputRequestController.cs b/Controllers/OutputRequestController.cs new file mode 100644 index 0000000..ab9c972 --- /dev/null +++ b/Controllers/OutputRequestController.cs @@ -0,0 +1,34 @@ +using Microsoft.AspNetCore.Mvc; +using WMS_GIRAF_Interface.Models; + +namespace WMS_GIRAF_Interface.Controllers +{ + [ApiController, Route("/Output")] + public class OutputRequestController : ControllerBase + { + [HttpPost("ByProductIds")] + public void OutputRequestByProductIds(OutputRequestByProductIds.RootObject outputRequest) + { + + } + + + [HttpPost("BySku")] + public void OutputRequestBySku(OutputRequestBySku.RootObject outputRequest) + { + + } + + [HttpPut] + public void UpdateOutputRequest(UpdateOutputRequest.RootObject updateOutputRequest) + { + + } + + [HttpPost("Cancel")] + public void CancelOutputRequest(CancelOutputRequest.RootObject cancelOutputRequest) + { + + } + } +} diff --git a/Controllers/SendInputStorageLinePathStateController.cs b/Controllers/SendInputStorageLinePathStateController.cs deleted file mode 100644 index 4ac0cda..0000000 --- a/Controllers/SendInputStorageLinePathStateController.cs +++ /dev/null @@ -1,45 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using WMS_GIRAF_Interface.Models; -using WMS_GIRAF_Interface.Repositories.Implement; -using WMS_GIRAF_Interface.Repositories.Interface; - -namespace WMS_GIRAF_Interface.Controllers -{ - - [ApiController, Route("api/[controller]")] - public class SendInputStorageLinePathStateController :ControllerBase - { - private readonly IdestinationIdRepository _destinationIdRepository; - - public SendInputStorageLinePathStateController(IdestinationIdRepository destinationIdRepository) - { - _destinationIdRepository = destinationIdRepository; - } - /// - /// 更新入库路径状态 - /// - [HttpPost] - public void GetInputStatusFromGiraf(InputStorageLinePathState.Rootobject inputStorageLinePathState ) - { - //根据LineNumber获取巷道信息 - if (inputStorageLinePathState.LineNumber!=0) - { - var LaneWayInfo = _destinationIdRepository.GetDestinationId(inputStorageLinePathState.LineNumber); - if (LaneWayInfo!=null) - { - - } - - } - else - { - //tlt:line number不可以为0 - - } - - } - - } - - -} diff --git a/Controllers/UpdateProductsController.cs b/Controllers/UpdateProductsController.cs new file mode 100644 index 0000000..8c722a4 --- /dev/null +++ b/Controllers/UpdateProductsController.cs @@ -0,0 +1,15 @@ +using Microsoft.AspNetCore.Mvc; + +namespace WMS_GIRAF_Interface.Controllers +{ + [ApiController] + [Route("products")] + public class UpdateProductsController : ControllerBase + { + [HttpPut] + public IActionResult UpdateProducts() + { + return Ok(); + } + } +} diff --git a/Models/CancelInputRequest.cs b/Models/CancelInputRequest.cs new file mode 100644 index 0000000..120c3eb --- /dev/null +++ b/Models/CancelInputRequest.cs @@ -0,0 +1,22 @@ +namespace WMS_GIRAF_Interface.Models; + +public class CancelInputRequest +{ + + public class RootObject + { + /// + /// ASRS identifier + /// + public string asrsIdentifier { get; set; } + /// + /// Sender + /// + public string sender { get; set; } + /// + /// Input request id + /// + public string inputRequestId { get; set; } + } + +} \ No newline at end of file diff --git a/Models/CancelInputRequestReturn.cs b/Models/CancelInputRequestReturn.cs new file mode 100644 index 0000000..c1cc737 --- /dev/null +++ b/Models/CancelInputRequestReturn.cs @@ -0,0 +1,15 @@ +namespace WMS_GIRAF_Interface.Models; + +public class CancelInputRequestReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Ok;2:UnknownPost;3:UnknownInputRequestId;4:AlreadyDone + /// + public string status { get; set; } + + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/Models/CancelOutputRequest.cs b/Models/CancelOutputRequest.cs new file mode 100644 index 0000000..d556f8f --- /dev/null +++ b/Models/CancelOutputRequest.cs @@ -0,0 +1,20 @@ +namespace WMS_GIRAF_Interface.Models; + +public class CancelOutputRequest +{ + public class RootObject + { + /// + /// ASRS identifier + /// + public string asrsIdentifier { get; set; } + /// + /// Sender + /// + public string sender { get; set; } + /// + /// Input request id + /// + public string inputRequestId { get; set; } + } +} \ No newline at end of file diff --git a/Models/CancelOutputRequestReturn.cs b/Models/CancelOutputRequestReturn.cs new file mode 100644 index 0000000..28c3cd2 --- /dev/null +++ b/Models/CancelOutputRequestReturn.cs @@ -0,0 +1,15 @@ +namespace WMS_GIRAF_Interface.Models; + +public class CancelOutputRequestReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Ok;2:UnknownPost;3:UnknownInputRequestId;4:AlreadyDone + /// + public string status { get; set; } + + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/Models/GetStock.cs b/Models/GetStock.cs new file mode 100644 index 0000000..d511711 --- /dev/null +++ b/Models/GetStock.cs @@ -0,0 +1,39 @@ +namespace WMS_GIRAF_Interface.Models; + +public class GetStock +{ + + public class RootObject + { + public StockInfo[] stockInfos { get; set; } + } + + public class StockInfo + { + public string sku { get; set; } + public string storageAddress { get; set; } + public Support support { get; set; } + public Product[] products { get; set; } + } + + public class Support + { + public string type { get; set; } + public string identifier { get; set; } + public bool IsBlocked { get; set; } + } + + public class Product + { + public string identifier { get; set; } + public bool isBlocked { get; set; } + public bool isPriority { get; set; } + public string productClass { get; set; } + public DateTime fabricationDate { get; set; } + public DateTime maturationDate { get; set; } + public DateTime expirationDate { get; set; } + public DateTime highPriorityDate { get; set; } + public bool IsAccessible { get; set; } + } + +} \ No newline at end of file diff --git a/Models/InputRequest.cs b/Models/InputRequest.cs new file mode 100644 index 0000000..5d6d02b --- /dev/null +++ b/Models/InputRequest.cs @@ -0,0 +1,99 @@ +namespace WMS_GIRAF_Interface.Models; + +public class InputRequest +{ + + public class RootObject + { + /// + /// Identifier of the ASRS + /// + public string asrsIdentifier { get; set; } + /// + /// Application that sent the request + /// + public string sender { get; set; } + /// + /// Identifier of the input request (unique per sender) + /// + public string inputRequestId { get; set; } + /// + /// Type of item to insert(lot number) + /// + public string sku { get; set; } + /// + /// Post where the item will be dropped + /// + public string? introductionPost { get; set; } + /// + /// Possible posts where the item could be dropped + /// + public string[]? availableIntroductionPosts { get; set; } + /// + /// Support information + /// + public Support? support { get; set; } + /// + /// Products information + /// + public List products { get; set; } + } + /// + /// Support information + /// + public class Support + { + /// + /// type of support + /// + public string type { get; set; } + /// + /// identifier of support + /// + public string? identifier { get; set; } + /// + /// if support is blocked + /// + public bool IsBlocked { get; set; } + } + /// + /// product information + /// + public class Product + { + /// + /// tire barcode + /// + public string identifier { get; set; } + /// + /// if product is blocked + /// + public bool isBlocked { get; set; } + /// + /// if product is priority + /// + public bool isPriority { get; set; } + /// + /// population number + /// + public string? productClass { get; set; } + /// + /// fabrication date + /// + public DateTime? fabricationDate { get; set; } + /// + /// dry date + /// + public DateTime? maturationDate { get; set; } + /// + /// old time + /// + public DateTime? expirationDate { get; set; } + /// + /// + /// high priority date + /// + public DateTime? highPriorityDate { get; set; } + } + +} \ No newline at end of file diff --git a/Models/InputRequestReturn.cs b/Models/InputRequestReturn.cs new file mode 100644 index 0000000..24f3841 --- /dev/null +++ b/Models/InputRequestReturn.cs @@ -0,0 +1,21 @@ +namespace WMS_GIRAF_Interface.Models; + +public class InputRequestReturn +{ + public class RootObject + { + /// + /// The status of the request + /// 0:UnknownError;1:Created;2:WrongParameters;3:NoStorageSpace;4:MechanicalIssue;5:UnknownPost + /// + public string status { get; set; } + /// + /// if status is 1, this will be the introduction post + /// + public string? introductionPost { get; set; } + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } + } +} \ No newline at end of file diff --git a/Models/ItemDropped.cs b/Models/ItemDropped.cs new file mode 100644 index 0000000..72d797d --- /dev/null +++ b/Models/ItemDropped.cs @@ -0,0 +1,14 @@ +namespace WMS_GIRAF_Interface.Models; + +public class ItemDropped +{ + + public class RootObject + { + public string asrsIdentifier { get; set; } + public string sender { get; set; } + public string inputRequestId { get; set; } + public string introductionPost { get; set; } + } + +} \ No newline at end of file diff --git a/Models/ItemDroppedReturn.cs b/Models/ItemDroppedReturn.cs new file mode 100644 index 0000000..1e1c195 --- /dev/null +++ b/Models/ItemDroppedReturn.cs @@ -0,0 +1,18 @@ +namespace WMS_GIRAF_Interface.Models; + +public class ItemDroppedReturn +{ + public class RootObject + { + /// + /// The status of the request + /// 0:UnknownError;1:Ok;2:UnknownPost;3:UnknownInputRequestId;4:AlreadyDone + /// + public string status { get; set; } + + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } + } +} \ No newline at end of file diff --git a/Models/OutputRequestByProductIds.cs b/Models/OutputRequestByProductIds.cs new file mode 100644 index 0000000..7732ce3 --- /dev/null +++ b/Models/OutputRequestByProductIds.cs @@ -0,0 +1,18 @@ +namespace WMS_GIRAF_Interface.Models; + +public class OutputRequestByProductIds +{ + + public class RootObject + { + public string asrsIdentifier { get; set; } + public string sender { get; set; } + public string outputRequestId { get; set; } + public string evacuationPost { get; set; } + public string[] availableEvacuationPosts { get; set; } + public int priority { get; set; } + public string expectedCompletionDate { get; set; } + public string[] productIds { get; set; } + } + +} \ No newline at end of file diff --git a/Models/OutputRequestByProductIdsReturn.cs b/Models/OutputRequestByProductIdsReturn.cs new file mode 100644 index 0000000..c5d6342 --- /dev/null +++ b/Models/OutputRequestByProductIdsReturn.cs @@ -0,0 +1,22 @@ +namespace WMS_GIRAF_Interface.Models; + +public class OutputRequestByProductIdsReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Created;2:WrongParameters;3:NoStorageSpace;4:MechanicalIssue;5:UnknownPost + /// + public string status { get; set; } + /// + /// If status = 1 : post where items will be unloaded + /// + public string? evacuationPost { get; set; } + /// + /// If status = 1 : mandatory + /// + public string? estimatedExitTime { get; set; } + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/Models/OutputRequestBySku.cs b/Models/OutputRequestBySku.cs new file mode 100644 index 0000000..46d0e17 --- /dev/null +++ b/Models/OutputRequestBySku.cs @@ -0,0 +1,24 @@ +namespace WMS_GIRAF_Interface.Models; + +public class OutputRequestBySku +{ + + public class RootObject + { + public string asrsIdentifier { get; set; } + public string sender { get; set; } + public string outputRequestId { get; set; } + public string evacuationPost { get; set; } + public string[] availableEvacuationPosts { get; set; } + public int priority { get; set; } + public string expectedCompletionDate { get; set; } + public string sku { get; set; } + public string[] substitutionSkus { get; set; } + public bool productIsBlocked { get; set; } + public string productClass { get; set; } + public bool productIsExpired { get; set; } + public string productMinFabricationDate { get; set; } + public string productMaxFabricationDate { get; set; } + } + +} \ No newline at end of file diff --git a/Models/OutputRequestBySkuReturn.cs b/Models/OutputRequestBySkuReturn.cs new file mode 100644 index 0000000..29783b5 --- /dev/null +++ b/Models/OutputRequestBySkuReturn.cs @@ -0,0 +1,22 @@ +namespace WMS_GIRAF_Interface.Models; + +public class OutputRequestBySkuReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Created;2:WrongParameters;3:NoStorageSpace;4:MechanicalIssue;5:UnknownPost + /// + public string status { get; set; } + /// + /// If status = 1 : post where items will be unloaded + /// + public string? evacuationPost { get; set; } + /// + /// If status = 1 : mandatory + /// + public string? estimatedExitTime { get; set; } + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/Models/UpdateOutputRequest.cs b/Models/UpdateOutputRequest.cs new file mode 100644 index 0000000..56f5609 --- /dev/null +++ b/Models/UpdateOutputRequest.cs @@ -0,0 +1,16 @@ +namespace WMS_GIRAF_Interface.Models; + +public class UpdateOutputRequest +{ + + public class RootObject + { + public string asrsIdentifier { get; set; } + public string sender { get; set; } + public string outputRequestId { get; set; } + public string evacuationPost { get; set; } + public int priority { get; set; } + public DateTime expectedCompletionDate { get; set; } + } + +} \ No newline at end of file diff --git a/Models/UpdateOutputRequestReturn.cs b/Models/UpdateOutputRequestReturn.cs new file mode 100644 index 0000000..ebf9f11 --- /dev/null +++ b/Models/UpdateOutputRequestReturn.cs @@ -0,0 +1,15 @@ +namespace WMS_GIRAF_Interface.Models; + +public class UpdateOutputRequestReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Ok;2:UnknownPost;3:UnknownInputRequestId;4:AlreadyDone + /// + public string status { get; set; } + + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/Models/UpdateProducts.cs b/Models/UpdateProducts.cs new file mode 100644 index 0000000..a8e579e --- /dev/null +++ b/Models/UpdateProducts.cs @@ -0,0 +1,26 @@ +namespace WMS_GIRAF_Interface.Models; + +public class UpdateProducts +{ + + public class Rootobject + { + public string asrsIdentifier { get; set; } + public string sender { get; set; } + public string updateRequestId { get; set; } + public Product[] products { get; set; } + } + + public class Product + { + public string identifier { get; set; } + public bool isBlocked { get; set; } + public bool isPriority { get; set; } + public string productClass { get; set; } + public DateTime maturationDate { get; set; } + public DateTime expirationDate { get; set; } + public DateTime highPriorityDate { get; set; } + public string newIdentifier { get; set; } + } + +} \ No newline at end of file diff --git a/Models/UpdateProductsReturn.cs b/Models/UpdateProductsReturn.cs new file mode 100644 index 0000000..feb6eed --- /dev/null +++ b/Models/UpdateProductsReturn.cs @@ -0,0 +1,15 @@ +namespace WMS_GIRAF_Interface.Models; + +public class UpdateProductsReturn +{ + /// + /// The status of the request + /// 0:UnknownError;1:Ok;2:updatePartially;3:wrongParameters; + /// + public string status { get; set; } + + /// + /// if status !=1 error details + /// + public string? errorDetails { get; set; } +} \ No newline at end of file diff --git a/appsettings.json b/appsettings.json index 10f68b8..3cf1463 100644 --- a/appsettings.json +++ b/appsettings.json @@ -5,5 +5,10 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "*" + "AllowedHosts": "*", + //APPToken + "APPToken": { + "WMSToken": "OLS" + } + }