From 37faeb3fd7d8f204298d4d24a8a98110992d6b58 Mon Sep 17 00:00:00 2001
From: pan <antony1029@163.com>
Date: 星期三, 19 十一月 2025 08:38:28 +0800
Subject: [PATCH] 提交

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs |   68 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 3 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs"
index 361a8e5..c2a1334 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs"
@@ -1,9 +1,16 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using System.Data.Common;
+using System.Diagnostics.Eventing.Reader;
+using WIDESEA_Core;
+using WIDESEA_Core.Attributes;
 using WIDESEA_Core.BaseController;
+using WIDESEA_DTO.Allocate;
 using WIDESEA_IAllocateService;
 using WIDESEA_IInboundService;
 using WIDESEA_Model.Models;
-using WIDESEA_Model.Models.Allocate;
+using WIDESEA_WMSServer.Controllers.Check;
+
 
 namespace WIDESEA_WMSServer.Controllers.Allocate
 {
@@ -15,11 +22,66 @@
     [ApiController]
     public class AllocateOrderController : ApiBaseController<IAllocateService, Dt_AllocateOrder>
     {
-        public AllocateOrderController(IAllocateService service) : base(service)
+        private readonly ILogger<AllocateOrderController> _logger;
+        public AllocateOrderController(IAllocateService service, ILogger<AllocateOrderController> logger) : base(service)
         {
+            _logger = logger;
         }
 
+        [HttpPost, Route("ReceiveAllocateOrder"), MethodParamsValidate, AllowAnonymous]
+        public WebResponseContent ReceiveAllocateOrder([FromBody] AllocateDto model)
+        {
+            Dt_AllocateOrder allocateOrder = new Dt_AllocateOrder
+            {
+                OrderNo = model.OrderNo,
+                UpperOrderNo = model.OrderNo,
+                BusinessType=model.BusinessType,
+                FactoryArea=model.FactoryArea,
+                IsBatch=model.IsBatch,
+                CreateType = model.OperationType,
+                Details = new List<Dt_AllocateOrderDetail>() 
+            };
 
+            foreach (var detailDto in model.Details)
+            {
+                if (detailDto.Barcodes != null && detailDto.Barcodes.Any())
+                {
+                    foreach (var barcodeDto in detailDto.Barcodes)
+                    {
+                        Dt_AllocateOrderDetail orderDetail = new Dt_AllocateOrderDetail
+                        {
+                            WarehouseCode = detailDto.WarehouseCode,
+                            MaterielCode = detailDto.MaterialCode,
+                            LineNo = detailDto.LineNo,
+                            OrderQuantity = detailDto.Qty,
+                            Unit = detailDto.Unit,
+                            Barcode = barcodeDto.Barcode,
+                            BatchNo = barcodeDto.BatchNo,
+                            BarcodeQty = barcodeDto.Qty,
+                            BarcodeUnit = barcodeDto.Unit
+                        };
+                        allocateOrder.Details.Add(orderDetail);
+                    }
+                }
+                else
+                {
+                    Dt_AllocateOrderDetail orderDetail = new Dt_AllocateOrderDetail
+                    {
+                        WarehouseCode = detailDto.WarehouseCode,
+                        MaterielCode = detailDto.MaterialCode,
+                        LineNo = detailDto.LineNo,
+                        OrderQuantity = detailDto.Qty,
+                        Unit = detailDto.Unit
+                    };
+                    allocateOrder.Details.Add(orderDetail);
+                }
+                allocateOrder.Details.AddRange(allocateOrder.Details);
+            }
+            var content = Service.ReceiveAllocateOrder(allocateOrder, model.OperationType);
+
+            if (content.Status) return WebResponseContent.Instance.OK(200);
+            else return WebResponseContent.Instance.Error(content.Message);
+        }
     }
 
 }

--
Gitblit v1.9.3