From 7d9d48cf1e9d5b28e59ea52a0ee1acdfd15f88e7 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期二, 07 一月 2025 08:32:34 +0800
Subject: [PATCH] 问题修改

---
 Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs |  357 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 339 insertions(+), 18 deletions(-)

diff --git a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
index 0224c16..98397c0 100644
--- a/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
+++ b/Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,22 +1,343 @@
-锘縩amespace WCS.Application;
+锘縰sing DocumentFormat.OpenXml.Presentation;
+using Elastic.Clients.Elasticsearch;
+using Furion.Logging;
+using Newtonsoft.Json;
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Text;
+using WCS.Application.Entity;
 
-///// <summary>
-///// 绀轰緥寮�鏀炬帴鍙�
-///// </summary>
-//[ApiDescriptionSettings("寮�鏀炬帴鍙�", Name = "Demo", Order = 100)]
+namespace WCS.Application;
+
+/// <summary>
+/// 绀轰緥寮�鏀炬帴鍙�
+/// </summary>
+[ApiDescriptionSettings("寮�鏀炬帴鍙�", Name = "Demo", Order = 100)]
 //[Authorize(AuthenticationSchemes = SignatureAuthenticationDefaults.AuthenticationScheme)]
-//public class DemoOpenApi : IDynamicApiController
-//{
-//    private readonly UserManager _userManager;
+[AllowAnonymous]
+public class DemoOpenApi : IDynamicApiController
+{
+    private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
 
-//    public DemoOpenApi(UserManager userManager)
-//    {
-//        _userManager = userManager;
-//    }
+    private readonly UserManager _userManager;
 
-//    [HttpGet("helloWord")]
-//    public Task<string> HelloWord()
-//    {
-//        return Task.FromResult($"Hello word. {_userManager.Account}");
-//    }
-//}
\ No newline at end of file
+    public DemoOpenApi(UserManager userManager)
+    {
+        _userManager = userManager;
+    }
+
+    //[HttpGet("helloWord")]
+    //public Task<string> HelloWord()
+    //{
+    //    return Task.FromResult($"Hello word. {_userManager.Account}");
+    //}
+
+    // <summary>
+    /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(鍗曟潯浠诲姟)
+    /// </summary>
+    /// <param name="models">浠诲姟淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [AllowAnonymous]
+    public ResponseModel AddWcsTasks(List<ResponseTasksModel> modelList)
+    {
+        ResponseModel result = new ResponseModel();
+        result.StatusCode = 0;
+        try
+        {            
+            foreach (var models in modelList)
+            {
+                var res = AddWcsTask(models);
+                if (res.StatusCode == -1)
+                {
+                    result.StatusCode = -1;
+                    result.Msg = res.Msg;
+                }
+                else if (res.StatusCode == 0)
+                {
+                    result.StatusCode = 0;
+                    result.Msg = models.TaskNo + "浠诲姟" + res.Msg;
+                }
+            }            
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+        return result;
+    }
+    /// <summary>
+    /// WCS鎺ュ彈WMS涓嬪彂鐨勪换鍔�(鍗曟潯浠诲姟)
+    /// </summary>
+    /// <param name="models">浠诲姟淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [AllowAnonymous]
+    public ResponseModel AddWcsTask(ResponseTasksModel models)
+    {
+        ResponseModel result = new ResponseModel();
+        try
+        {
+            // 楠岃瘉浠诲姟鏄惁宸插瓨鍦�
+            var taskInfo = _db.Queryable<WcsTask>().First(w => w.TaskNo == models.TaskNo);
+            if (taskInfo != null)
+            {
+                result.StatusCode = -1;
+                result.Msg = "浠诲姟:" + models.TaskNo + ";宸插瓨鍦�!";
+                return result;
+            }
+            if (models.TaskType == "0" && models.TaskType == "0")
+            {
+                models.Order = 1;
+            }
+            else
+            {
+                models.Order = 2;
+            }
+            Enum type;
+            var bale = "0";
+            if (models.TaskType == "0" )
+            {
+                type = TaskTypeEnum.In;
+            }
+            else if (models.TaskType == "1")
+            {
+                type = TaskTypeEnum.Out;
+            }
+            else if (models.TaskType == "3")
+            {
+                type = TaskTypeEnum.In;
+                bale = "1";//瑁瑰寘
+            }
+            else
+            {
+                type = TaskTypeEnum.Move;
+            }
+            //鏂板浠诲姟
+            var taskAdd = new WcsTask()
+            {
+                TaskNo = models.TaskNo,
+                TaskType = (TaskTypeEnum?)type,
+                Status = TaskStatusEnum.Wait,
+                //IsSuccess =TaskSuccessEnum.Success,
+                Levels = 999,
+                Origin = "WMS",
+                StartRoadway= models.StartRoadway,
+                StartLocate = models.StartLocate,
+                EndLocate = models.EndLocate,
+                EndRoadway= models.EndRoadway,
+                PalletNo = models.PalletNo,
+                IsBale = bale,
+
+
+                //LotNo =models.LotNo,
+                //SkuNo=models.SkuNo,
+                //SkuName=models.SkuName,
+                //Qty=models.Qty
+            };
+            _db.Insertable(taskAdd).ExecuteCommand();           
+
+            return new ResponseModel() { StatusCode = 0, Msg = "鎻掑叆鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+    }
+
+    /// <summary>
+    /// WCS鎺ユ敹WMS涓嬪彂鐨勫嚭鍏ュ簱鍗曚换鍔�
+    /// </summary>
+    /// <param name="models"></param>
+    /// <returns></returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public ResponseModel AddOrderTask(List<ResponseOrderTaskModel> models)
+    {
+        ResponseModel result = new ResponseModel();
+        try
+        {
+            foreach (var item in models)
+            {
+                // 楠岃瘉浠诲姟鏄惁宸插瓨鍦�
+                //var taskInfo = _db.Queryable<WcsOderTask>().First(w => w.OrderNo == item.OrderNo && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
+                //if (taskInfo == null)
+                //{
+                    var orderAdd = new WcsOderTask()
+                    {
+                        OrderNo = item.OrderNo,
+                        TaskNo = "",
+                        LotNo = item.LotNo,
+                        SkuNo = item.SkuNo,
+                        SkuName = item.SkuName,
+                        BoxType = item.BoxType,
+                        Qty = item.Qty,
+                        TaskType = (TaskTypeEnum)item.TaskType,
+                    };
+                    _db.Insertable(orderAdd).ExecuteCommand();
+               //}
+            }
+            return new ResponseModel() { StatusCode = 0, Msg = "鎻掑叆鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
+        }
+    }
+
+
+    /// <summary>
+    /// WCS鎺ュ彈璧嬬爜绯荤粺鎺ㄩ�佺殑绠辩爜淇℃伅
+    /// </summary>
+    /// <param name="models">绠辩爜淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public ResponseFuMaModel AddHttpBoxInfo(FumaBoxInfoInput models)
+    {
+        
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹璧嬬爜鎺ㄩ�佺殑绠辩爜淇℃伅锛�"+str);
+            if (models.Origin != "璧嬬爜")
+            {
+                throw new Exception("鏉ユ簮鏈瘑鍒�");
+            }
+            var num = _db.Queryable<WcsBoxInfo>().Where(m=>m.BoxNo == models.BoxNo && m.IsDelete == false).ToList();
+            var type = "add";
+            if (num.Count>0)
+            {
+                //WCS瀛樺湪绠辩爜淇℃伅锛屾洿鏂扮鐮佷俊鎭�(闇�鍒ゆ柇绠辩爜鏄惁宸茬粍鐩樺叆搴�)
+                var num2 = num.Count(m => m.Status != "0" || !string.IsNullOrWhiteSpace(m.PalletNo));
+                if (num2 > 0)
+                {
+                    throw new Exception("璇ョ宸插叆鐩樺叆搴擄紝涓嶅彲鏇存柊淇℃伅");
+                }
+                type = "edit";
+            }
+            
+            if (models.DelistList.Count == 0) 
+            {
+                throw new Exception("鐩掔爜闆嗗悎涓嶈兘涓虹┖");
+            }
+            
+            var listBox = new List<WcsBoxInfo>();
+            foreach (var item in models.DelistList)
+            {
+                var level = "3";
+                if (string.IsNullOrWhiteSpace(item.BoxNo2))
+                {
+                    level = "2";
+                }
+                if (item.DelistList2.Count == 0)
+                {
+                    throw new Exception("鏀爜闆嗗悎涓嶈兘涓虹┖");
+                }
+                //浜岀骇鐮�
+                foreach (var item2 in item.DelistList2)
+                {
+                    if (string.IsNullOrWhiteSpace(models.ProductionTime) || string.IsNullOrWhiteSpace(models.ExpirationTime))
+                    {
+                        throw new Exception("鐢熶骇鏃ユ湡鎴栧け鏁堟棩鏈熶笉鑳戒负绌�");
+                    }
+                    DateTime proTime;
+                    DateTime expTime;
+                    var isValid = DateTime.TryParse(models.ProductionTime, out proTime);
+                    var isValid2 = DateTime.TryParse(models.ExpirationTime, out expTime);
+                    if (!isValid || !isValid2)
+                    {
+                        throw new Exception("鐢熶骇鏃ユ湡鎴栧け鏁堟棩鏈熸牸寮忛敊璇�");
+                    };
+                    DateTime? stortime = null;
+                    if (!string.IsNullOrWhiteSpace(models.StoreTime))
+                    {
+                        stortime = DateTime.Parse(models.StoreTime);
+                    }
+
+                    var boxAdd = new WcsBoxInfo()
+                    {
+                        BoxNo = models.BoxNo,
+                        //OrderNo = models.OrderNo,
+                        SkuNo = models.SkuNo,
+                        SkuName = models.SkuName,
+                        Standard = models.Standard,
+                        LotNo = models.LotNo,
+                        Qty = item2.Qty,
+                        FullQty = models.FullQty,
+                        //SupplierLot = models.SupplierLot,
+                        InsPectMark = models.InsPectMark,
+                        BitBoxMark = models.BitBoxMark,
+                        //InspectStatus = models.InspectStatus锛�
+                        ProductionTime = proTime,
+                        ExpirationTime = expTime,
+                        StoreTime = stortime,
+                        EndLotFlag = string.IsNullOrWhiteSpace(models.EndBatchMark) ? "0" : models.EndBatchMark,
+
+                        BoxNo2 = item.BoxNo2,
+                        BoxNo3 = item2.BoxNo3,
+                        QtyCount = item2.QtyCount,
+                        QtyOrd = item2.QtyOrd,
+
+                        Status = "0",
+                        Level = level,
+
+                        IsDelete = false
+                    };
+                    listBox.Add(boxAdd);
+                }
+
+            }
+            _db.Insertable(listBox).ExecuteCommand();
+            if (type == "edit")
+            {
+                //gen
+                _db.Deleteable(num).ExecuteCommand();
+                return new ResponseFuMaModel() { Success = "0", Message = "鏇存柊鎴愬姛" };
+            }
+            return new ResponseFuMaModel() { Success = "0", Message = "鎻掑叆鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseFuMaModel() { Success = "-1", Message = ex.Message };
+        }
+    }
+
+    /// <summary>
+    /// WCS鎺ュ彈璧嬬爜绯荤粺鎺ㄩ�佺殑绠辩爜绉婚櫎
+    /// </summary>
+    /// <param name="models">绠辩爜淇℃伅</param>
+    /// <returns>鍙嶉淇℃伅</returns>
+    [HttpPost]
+    [AllowAnonymous]
+    public ResponseFuMaModel DelgatesHttpBoxInfo(FumaBoxInfoInput models)
+    {
+
+        try
+        {
+            string str = JsonConvert.SerializeObject(models);
+            Log.Information("鎺ユ敹璧嬬爜鎺ㄩ�佺殑绠辩爜绉婚櫎锛�" + str);
+            var num = _db.Queryable<WcsBoxInfo>().Where(m => m.BoxNo == models.BoxNo && m.IsDelete == false).ToList();
+            if (num.Count > 0)
+            {
+                //WCS瀛樺湪绠辩爜淇℃伅锛屾洿鏂扮鐮佷俊鎭�(闇�鍒ゆ柇绠辩爜鏄惁宸茬粍鐩樺叆搴�)
+                var num2 = num.Count(m => m.Status != "0" || !string.IsNullOrWhiteSpace(m.PalletNo));
+                if (num2 > 0)
+                {
+                    throw new Exception("璇ョ宸茬洏鍏ュ簱锛屼笉鍙洿鏂颁俊鎭�");
+                }
+            }
+            if (num.Count == 0)
+            {
+                throw new Exception("鏈壘鍒拌绠辩爜锛岀鐮佺Щ闄ゅけ璐ワ紒");
+            }
+
+            _db.Deleteable(num).ExecuteCommand();
+            return new ResponseFuMaModel() { Success = "0", Message = "绉婚櫎绠辩爜鎴愬姛" };
+        }
+        catch (Exception ex)
+        {
+            return new ResponseFuMaModel() { Success = "-1", Message = ex.Message };
+        }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0