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"
+ }
+
}