From 68628c6cc163cddfcc745c225a9f3f34767261ef Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期六, 22 十一月 2025 20:44:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Allocate/AllocateOrderController.cs |   79 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 76 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..31f6001 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,18 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using System.Data.Common;
+using System.Diagnostics.Eventing.Reader;
+using System.Threading.Tasks;
+using WIDESEA_Common.AllocateEnum;
+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 +24,75 @@
     [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 async Task<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,
+                FromWarehouse=model.fromWarehouse,
+                ToWarehouse=model.toWarehouse,                
+                Details = new List<Dt_AllocateOrderDetail>()
+            };
+            Enum.TryParse<BusinessTypeEnum>(allocateOrder.BusinessType, out var businessType);
 
+
+            foreach (var detailDto in model.Details)
+            {
+                if (businessType == BusinessTypeEnum.鏅轰粨璋冨閮ㄤ粨搴� && (detailDto.Barcodes == null || !detailDto.Barcodes.Any()))
+                {
+                    return WebResponseContent.Instance.Error($"鏉$爜涓嶈兘涓虹┖");
+                }
+                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,
+                            SupplyCode = barcodeDto.SupplyCode,
+                            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 = await Service.ReceiveAllocateOrder(allocateOrder, model.OperationType);
+
+            if (content.Status) return WebResponseContent.Instance.OK(200);
+            else return WebResponseContent.Instance.Error(content.Message);
+        }
     }
 
 }

--
Gitblit v1.9.3