diff --git a/Controllers/OutputRequestController.cs b/Controllers/OutputRequestController.cs
index 710bcf9..b29594d 100644
--- a/Controllers/OutputRequestController.cs
+++ b/Controllers/OutputRequestController.cs
@@ -159,12 +159,70 @@ namespace WMS_GIRAF_Interface.Controllers
}
return returnJsonString;
}
-
-
+ ///
+ /// 根据Sku生成出库任务
+ /// SendOutputRequestByLotWithManyPool
+ ///
+ ///
[HttpPost("BySku")]
- public void OutputRequestBySku(OutputRequestBySku.RootObjectForOutputRequestBySku outputRequest)
+ public OutputRequestBySkuReturn OutputRequestBySku(OutputRequestBySku.RootObjectForOutputRequestBySku? outputRequest)
{
+ bool bResult = true;
+ string sResult = string.Empty;
+ OutputRequestBySkuReturn returnJsonString = new OutputRequestBySkuReturn();
+ if (outputRequest!=null)
+ {
+ //先判断当前sku是否有可用库存,然后筛选出库,如果没有的话就就启用备用sku的库存出库
+ if (context.V_StorageList.FromSqlRaw($"SELECT TOP 1 STOCK_BARCODE FROM V_STORAGE_LIST WHERE requestNumber = '{outputRequest.outputRequestId}'").ToList().Count>0)
+ {
+ returnJsonString.status = "0";
+ returnJsonString.evacuationPost = string.Empty;
+ returnJsonString.estimatedExitTime = string.Empty;
+ returnJsonString.errorDetails = "RefusedBecauseSameRequestNumber";
+ }
+ else
+ {
+ //检查post number
+ var checkPost =
+ destinationIdRepository.GetDestinationId(outputRequest.evacuationPost);
+ if (checkPost==null)
+ {
+ returnJsonString.status = "0";
+ returnJsonString.evacuationPost = string.Empty;
+ returnJsonString.estimatedExitTime = string.Empty;
+ returnJsonString.errorDetails = "RefusedBecauseUnknownPostNumber";
+ }
+ else
+ {
+ //tlt:根据SKu来筛选物料信息
+ //无需筛选巷道状态,直接选择可用轮胎,只需考虑availableEvacuationPosts即可,筛选lane_way
+ #region outlevel 4/3/2/1
+
+ var checkHighPriorityTire = context.V_StorageList.FromSqlRaw(
+ $@"SELECT TOP 1 STORAGE_ID FROM V_STORAGE_LIST
+ WHERE RUN_STATUS = 'Enable'
+ AND (requestNumber IS NULL OR requestNumber = '')
+ AND IsBlocked = {(outputRequest.productIsBlocked ? 1 : 0)}
+ AND LOTNUMBER = '{outputRequest.sku}'
+ AND PopulationNumber = '{outputRequest.productClass}'
+ AND Lane_way IN({string.Join(",",outputRequest.availableEvacuationPosts)})");
+
+ #endregion
+
+
+ }
+ }
+ }
+ else
+ {
+ //当前入参为空
+ returnJsonString.status = "3";
+ returnJsonString.evacuationPost = string.Empty;
+ returnJsonString.estimatedExitTime = string.Empty;
+ returnJsonString.errorDetails = "RefusedBecauseEmptyInputParameter";
+ }
+ return returnJsonString;
}
[HttpPut]
diff --git a/Entities/MANAGE_DETAIL.cs b/Entities/MANAGE_DETAIL.cs
new file mode 100644
index 0000000..e62be69
--- /dev/null
+++ b/Entities/MANAGE_DETAIL.cs
@@ -0,0 +1,41 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Runtime.Serialization;
+
+namespace WMS_GIRAF_Interface.Entities;
+
+[Table("MANAGE_DETAIL")]
+public class MANAGE_DETAIL
+{
+ [Column("requestNumber")]
+
+ public string? requestNumber { get; set; }
+
+ [Column("poolNumber")]
+ public string? poolNumber { get; set; }
+
+ [Column("lotNumber")]
+ public string? lotNumber { get; set; }
+
+ [Column("populationNumber")]
+ public string? populationNumber { get; set; }
+
+ [Column("destinationId")]
+ public string? destinationId { get; set; }
+
+ [Column("targetOutputDateInUtc")]
+ public DateTime? targetOutputDateInUtc { get; set; }
+
+ [Column("keepRequestInMemoryEvenIfMechanicalIssue")]
+ public bool? keepRequestInMemoryEvenIfMechanicalIssue { get; set; }
+
+ [Column("keepRequestInMemoryEvenIfLackOfProductIssue")]
+ public bool? KeepRequestInMemoryEvenIfLackOfProductIssue { get; set; }
+
+ [Column("requestStatus")]
+ public int? requestStatus { get; set; }
+
+ [Column("errorText")]
+ public string? errorText { get; set; }
+
+}
\ No newline at end of file