From 0f0b7ba9b77c55db4e13b10fd5de3a01183fb356 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期一, 13 四月 2026 08:40:37 +0800
Subject: [PATCH] PLS接口开发

---
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/VMIItemCodeInfo.cs                      |   85 +++++
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json                      |    6 
 项目代码/WMS/WMSServices/WIDESEA_IInboundService/IMoInboundOrderService.cs       |   16 
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/ReturnMoInboundStatuModel.cs            |   49 ++
 项目代码/WMS/WMSServices/WIDESEA_Common/CommonEnum/EnableEnum.cs                 |    4 
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/MoInboundOrderDTO.cs                    |   89 +++++
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json                      |    2 
 项目代码/WMS/WMSServices/WIDESEA_IBasicService/IMaterielInfoService.cs           |    9 
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/PLSBaseModel.cs                         |   29 +
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/PLSRequestContent.cs                    |   51 +++
 项目代码/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs                       |    8 
 项目代码/WMS/WMSServices/WIDESEA_External/IPLSService/IInvokePLSService.cs       |   22 +
 项目代码/WMS/WMSServices/WIDESEA_InboundRepository/MoInboundOrderRepository.cs   |   18 +
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/PLS/PlsController.cs      |   56 +++
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs           |   31 +
 项目代码/WMS/WMSServices/WIDESEA_Common/PLSEnum/ReturnToPlsStatusEnum.cs         |   30 +
 项目代码/WMS/WMSServices/WIDESEA_External/PLSService/InvokePLSService.cs         |   44 ++
 项目代码/WMS/WMSServices/WIDESEA_Common/PLSEnum/VMIStatusEnum.cs                 |   42 ++
 项目代码/WMS/WMSServices/WIDESEA_IInboundRepository/IMoInboundOrderRepository.cs |   14 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MoInboundOrder.cs       |   95 +++++
 项目代码/WMS/WMSServices/WIDESEA_BasicService/Service/MaterielInfoService.cs     |   62 +++
 项目代码/WMS/WMSServices/WIDESEA_Model/WIDESEA_Model.csproj                      |    1 
 项目代码/WMS/WMSServices/WIDESEA_DTO/PLS/PlsResponseContent.cs                   |   91 +++++
 项目代码/WMS/WMSServices/WIDESEA_InboundService/MoInboundOrderService.cs         |  130 +++++++
 24 files changed, 968 insertions(+), 16 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
index 6cb0749..ec189c4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
@@ -12,7 +12,7 @@
   "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
   "DBType": "SqlServer",
   //杩炴帴瀛楃涓�
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HF;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HanDanWCS;User ID=sa;Password=root;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //璺ㄥ煙
   "Cors": {
     "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/MaterielInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/MaterielInfoService.cs"
index b3228d9..817cd43 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/MaterielInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_BasicService/Service/MaterielInfoService.cs"
@@ -11,6 +11,7 @@
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO.Basic;
 using WIDESEA_DTO.ERP;
+using WIDESEA_DTO.PLS;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IBasicService;
 using WIDESEA_Model.Models;
@@ -163,5 +164,66 @@
                 return WebResponseContent.Instance.OK(ex.Message);
             }
         }
+
+
+        /// <summary>
+        /// 鍚屾VMI鐗╂枡淇℃伅
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public WebResponseContent ReceiveVMIMaterial(VMIItemCodeInfo vmiModel)
+        {
+            try
+            {
+                ///鍙傛暟鏍¢獙
+                if (vmiModel == null || vmiModel.Data == null || !vmiModel.Data.Any())
+                {
+                    return WebResponseContent.Instance.Error("鎺ュ彛浼犲叆鐨勭墿鏂欐暟鎹泦鍚堜笉鑳戒负绌�");
+                }
+
+                foreach (var itemData in vmiModel.Data)
+                {
+                    var existMateriel = BaseDal.QueryFirst(x => x.MaterielCode == itemData.ItemCode);
+
+                    if (existMateriel == null)
+                    {
+                        Dt_MaterielInfo addEntity = new Dt_MaterielInfo()
+                        {
+                            MaterielCode = itemData.ItemCode,
+                            OrgId = itemData.OrgId,
+                            MaterielInvOrgId = itemData.SupplierCode,
+                            PackageQty = itemData.PackageQty,
+                            MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable,
+                            WarehouseId = 0,
+                            MaterielSourceType = 0,
+                            Creater = itemData.CreateUser,
+                            CreateDate = itemData.CreateDate,
+                            Modifier = itemData.UpdateUser,
+                            ModifyDate = itemData.UpdateDate
+                        };
+                        BaseDal.AddData(addEntity);
+                    }
+                    else
+                    {
+                        existMateriel.OrgId = itemData.OrgId;
+                        existMateriel.MaterielInvOrgId = itemData.SupplierCode;
+                        existMateriel.PackageQty = itemData.PackageQty;
+                        existMateriel.MaterielState = itemData.DeleteFlag == "0" ? EnableEnum.Enable : EnableEnum.Disable;
+
+                        existMateriel.Modifier = itemData.UpdateUser;
+                        existMateriel.ModifyDate = itemData.UpdateDate;
+
+                        BaseDal.UpdateData(existMateriel);
+                    }
+                }
+                // 澶勭悊瀹屾垚
+                return WebResponseContent.Instance.OK("VMI鐗╂枡鏁版嵁鍚屾鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                // 寮傚父杩斿洖
+                return WebResponseContent.Instance.Error($"VMI鐗╂枡鍚屾澶辫触锛歿ex.Message}");
+            }
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs"
index aa2255b..5083169 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/APIEnum/APIEnum.cs"
@@ -71,6 +71,12 @@
         /// 鍥炶皟WCS浠诲姟瀹屾垚
         /// </summary>
         [Description("鍥炶皟WCS浠诲姟瀹屾垚")]
-        FeedBackWCSTaskCompleted
+        FeedBackWCSTaskCompleted,
+
+        /// <summary>
+        /// PLS鎺ュ彛璋冪敤
+        /// </summary>
+        [Description("PLS鎺ュ彛璋冪敤")]
+        InvokePLSApi
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/EnableEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/EnableEnum.cs"
index e4d3718..3b91ef0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/EnableEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/EnableEnum.cs"
@@ -15,13 +15,13 @@
         /// <summary>
         /// 绂佺敤
         /// </summary>
-        [Description("绂佺敤")]
+        [Description("鏈夋晥")]
         Disable = 0,
 
         /// <summary>
         /// 鍚敤
         /// </summary>
-        [Description("鍚敤")]
+        [Description("鏃犳晥")]
         Enable = 1,
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/ReturnToPlsStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/ReturnToPlsStatusEnum.cs"
new file mode 100644
index 0000000..87ba0a6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/ReturnToPlsStatusEnum.cs"
@@ -0,0 +1,30 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common.PLSEnum
+{
+    public enum ReturnToPlsStatusEnum
+    {
+        /// <summary>
+        /// 鏈帹閫�
+        /// </summary>
+        [Description("鏈帹閫�")]
+        鏈帹閫� = 0,
+
+        /// <summary>
+        /// 鎺ㄩ�佹垚鍔�
+        /// </summary>
+        [Description("鎺ㄩ�佹垚鍔�")]
+        鎺ㄩ�佹垚鍔� = 1,
+
+        /// <summary>
+        /// 鎺ㄩ�佸け璐�
+        /// </summary>
+        [Description("鎺ㄩ�佸け璐�")]
+        鎺ㄩ�佸け璐� = 2,
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/VMIStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/VMIStatusEnum.cs"
new file mode 100644
index 0000000..7a5062a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/PLSEnum/VMIStatusEnum.cs"
@@ -0,0 +1,42 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common.PLSEnum
+{
+    public enum VMIStatusEnum
+    {
+        /// <summary>
+        /// 宸茬粦瀹�
+        /// </summary>
+        [Description("宸茬粦瀹�")]
+        宸茬粦瀹� = 1,
+
+        /// <summary>
+        /// 宸插叆搴�
+        /// </summary>
+        [Description("宸插叆搴�")]
+        宸插叆搴� = 2,
+
+        /// <summary>
+        /// 宸插喕缁�
+        /// </summary>
+        [Description("宸插喕缁�")]
+        宸插喕缁� = 3,
+
+        /// <summary>
+        /// 宸插嚭搴�
+        /// </summary>
+        [Description("宸插嚭搴�")]
+        宸插嚭搴� = 4,
+
+        /// <summary>
+        /// 宸查��璐�
+        /// </summary>
+        [Description("宸查��璐�")]
+        宸查��璐� = 5,
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/MoInboundOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/MoInboundOrderDTO.cs"
new file mode 100644
index 0000000..767b71c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/MoInboundOrderDTO.cs"
@@ -0,0 +1,89 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.PLS
+{
+    /// <summary>
+    /// MO绁ㄥ悓姝�
+    /// </summary>
+    public class MoInboundOrderDTO
+    {
+        /// <summary>
+        /// 鏃堕棿鎴�
+        /// </summary>
+        public string TimeStamp { get; set; }
+
+        /// <summary>
+        /// 绛惧悕
+        /// </summary>
+        public string Sign { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁闆嗗悎
+        /// </summary>
+        public List<PLS_MoStatusItemDto> Data { get; set; }
+    }
+
+    /// <summary>
+    /// MO绁ㄥ崟鏉℃暟鎹�
+    /// </summary>
+    public class PLS_MoStatusItemDto
+    {
+        /// <summary>
+        /// 缁勭粐缂栫爜
+        /// </summary>
+        public string OrgId { get; set; }
+        /// <summary>
+        /// MO绁ㄥ彿
+        /// </summary>
+        public string LabelNo { get; set; }
+        /// <summary>
+        /// VMI鐗╂祦鐘舵��
+        /// </summary>
+        public string Status { get; set; }
+        /// <summary>
+        /// 鍗曟嵁鍙�
+        /// </summary>
+        public string BarcodeNumber { get; set; }
+        /// <summary>
+        /// 渚涙柟缂栫爜
+        /// </summary>
+        public string SupplierCode { get; set; }
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        public decimal Qty { get; set; }
+        /// <summary>
+        /// 浣滀笟鍙�
+        /// </summary>
+        public string WorkOrderName { get; set; }
+        /// <summary>
+        /// 鏄惁鏈夋晥
+        /// </summary>
+        public long DeleteFlag { get; set; }
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string CreateUser { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateDate { get; set; }
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string UpdateUser { get; set; }
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UpdateDate { get; set; }
+    }
+
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSBaseModel.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSBaseModel.cs"
new file mode 100644
index 0000000..91778d2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSBaseModel.cs"
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.PLS
+{
+    /// <summary>
+    /// PLS閫氱敤瀹炰綋澶�
+    /// </summary>
+    public class PLSBaseModel<T>
+    {
+        /// <summary>
+        /// 鏃堕棿鎴�
+        /// </summary>
+        public long TimeStamp { get; set; }
+
+        /// <summary>
+        /// 绛惧悕
+        /// </summary>
+        public string Sign { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁瀵硅薄
+        /// </summary>
+        public T Data { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSRequestContent.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSRequestContent.cs"
new file mode 100644
index 0000000..f992de4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PLSRequestContent.cs"
@@ -0,0 +1,51 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.PLS
+{
+    /// <summary>
+    /// PLS鎺ュ彛鍝嶅簲瀹炰綋
+    /// </summary>
+    public class PLSRequestContent
+    {
+
+        /// <summary>
+        /// 鐘舵�佺爜 0-鎴愬姛锛�1-澶辫触
+        /// </summary>
+        public int Code { get; set; }
+
+        /// <summary>
+        /// 鍝嶅簲淇℃伅
+        /// </summary>
+        public string Msg { get; set; }
+
+        /// <summary>
+        /// 杩斿洖鏁版嵁闆嗗悎锛堟瘡鏉O绁ㄧ殑澶勭悊缁撴灉锛�
+        /// </summary>
+        public List<PlsMoStatusResult> Data { get; set; }
+        
+    }
+    /// <summary>
+    /// 鍗曟潯 MO 绁ㄧ姸鎬佹帹閫佺粨鏋�
+    /// </summary>
+    public class PlsMoStatusResult
+    {
+        /// <summary>
+        /// MO绁ㄥ彿
+        /// </summary>
+        public string LabelNo { get; set; }
+
+        /// <summary>
+        /// 鎺ㄩ�佹槸鍚︽垚鍔� 0-鎴愬姛 1-澶辫触
+        /// </summary>
+        public int Success { get; set; }
+
+        /// <summary>
+        /// 鍝嶅簲淇℃伅/澶辫触鍘熷洜
+        /// </summary>
+        public string Msg { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PlsResponseContent.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PlsResponseContent.cs"
new file mode 100644
index 0000000..3680234
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/PlsResponseContent.cs"
@@ -0,0 +1,91 @@
+锘縰sing System;
+using System.Collections.Generic;
+using WIDESEA_Core;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO
+{
+    /// <summary>
+    /// PLS鍝嶅簲瀹炰綋
+    /// </summary>
+    [ModelValidate]
+    public class ApiResponseContent
+    {
+        /// <summary>
+        /// 鐘舵�佺爜 0-鎴愬姛 1-澶辫触
+        /// </summary>
+        public int Code { get; set; } = 0;
+
+        /// <summary>
+        /// 鍝嶅簲淇℃伅
+        /// </summary>
+        public string Msg { get; set; } = "鎴愬姛";
+
+        /// <summary>
+        /// 杩斿洖鏁版嵁
+        /// </summary>
+        public object Data { get; set; } = null;
+
+        /// <summary>
+        /// 鍗曚緥瀹炰緥
+        /// </summary>
+        public static ApiResponseContent Instance
+        {
+            get { return new ApiResponseContent(); }
+        }
+
+        /// <summary>
+        /// 鎴愬姛杩斿洖
+        /// </summary>
+        public ApiResponseContent OK(string message = null)
+        {
+            Code = 0;
+            Msg = message ?? "鎴愬姛";
+            Data = null??"鏃�";
+            return this;
+        }
+
+        /// <summary>
+        /// 澶辫触杩斿洖
+        /// </summary>
+        public ApiResponseContent Error(string message = null)
+        {
+            Code = 1;
+            Msg = message ?? "澶辫触";
+            Data = null ?? "鏃�";
+            return this;
+        }
+
+        /// <summary>
+        /// 甯︽槑缁嗘暟鎹繑鍥烇紙MO绁ㄥ彿涓撶敤锛�
+        /// </summary>
+        public ApiResponseContent OK(List<LabelNoData> dataList, string message = null)
+        {
+            Code = 0;
+            Msg = message ?? "鎴愬姛";
+            Data = dataList;
+            return this;
+        }
+    }
+
+    /// <summary>
+    /// MO绁ㄥ彿杩斿洖鏄庣粏
+    /// </summary>
+    public class LabelNoData
+    {
+        /// <summary>
+        /// MO绁ㄥ彿
+        /// </summary>
+        public string LabelNo { get; set; }
+
+        /// <summary>
+        /// 鎺ㄩ�佹槸鍚︽垚鍔� 0-鎴愬姛 1-澶辫触
+        /// </summary>
+        public int Success { get; set; }
+
+        /// <summary>
+        /// 鍝嶅簲淇℃伅
+        /// </summary>
+        public object Msg { get; set; }
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/ReturnMoInboundStatuModel.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/ReturnMoInboundStatuModel.cs"
new file mode 100644
index 0000000..a8e7579
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/ReturnMoInboundStatuModel.cs"
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.PLS
+{
+    /// <summary>
+    /// MO绁ㄧ姸鎬佷笂鎶ュ疄浣�
+    /// </summary>
+    public class ReturnMoInboundStatuModel
+    {
+        /// <summary>
+        /// 缁勭粐缂栫爜
+        /// </summary>
+        public string OrgId { get; set; }
+        /// <summary>
+        /// MO绁ㄥ彿
+        /// </summary>
+        public string LabelNo { get; set; }
+        /// <summary>
+        /// VMI鐗╂祦鐘舵��
+        /// </summary>
+        public string Status { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鍙�
+        /// </summary>
+        public string BarcodeNumber { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string CreateUser { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateDate { get; set; }
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string UpdateUser { get; set; }
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UpdateDate { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/VMIItemCodeInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/VMIItemCodeInfo.cs"
new file mode 100644
index 0000000..79d9088
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/PLS/VMIItemCodeInfo.cs"
@@ -0,0 +1,85 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.PLS
+{
+    /// <summary>
+    /// VMI鐗╂枡鍚屾
+    /// </summary>
+    public class VMIItemCodeInfo
+    {
+        /// <summary>
+        /// 閴存潈璐﹀彿
+        /// </summary>
+        public string AppId {  get; set; }
+
+        /// <summary>
+        /// 鏃堕棿鎴�
+        /// </summary>
+        public long TimeStamp { get; set; }
+
+        /// <summary>
+        /// 绛惧悕
+        /// </summary>
+        public string Sign { get; set; }
+
+        /// <summary>
+        /// VMI鐗╂枡鏁版嵁闆嗗悎
+        /// </summary>
+        public List<VMIItemCodeData> Data { get; set; }
+    }
+
+    /// <summary>
+    /// VMI鐗╂枡鏁版嵁闆嗗悎
+    /// </summary>
+    public class VMIItemCodeData
+    {
+        /// <summary>
+        /// 闇�姹傜粍缁囩紪鐮�
+        /// </summary>
+        public long OrgId { get; set; }
+
+        /// <summary>
+        /// 渚涙柟缂栫爜
+        /// </summary>
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// 鍖呰鏁�
+        /// </summary>
+        public decimal PackageQty { get; set; }
+
+        /// <summary>
+        /// 鏈夋晥鏍囪瘑
+        /// </summary>
+        public string DeleteFlag { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string CreateUser { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateDate { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string UpdateUser { get; set; }
+
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime UpdateDate { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/IPLSService/IInvokePLSService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/IPLSService/IInvokePLSService.cs"
new file mode 100644
index 0000000..2e866b7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/IPLSService/IInvokePLSService.cs"
@@ -0,0 +1,22 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_DTO.PLS;
+using WIDESEA_External.Model;
+
+namespace WIDESEA_External.IPLSService
+{
+    public interface IInvokePLSService:IDependency
+    {
+
+        /// <summary>
+        /// MO绁ㄤ笂鎶LS鎺ュ彛璋冪敤
+        /// </summary>
+        /// <param name="receiveModel"></param>
+        /// <returns></returns>
+        string InvokeMoInboundStatuApi(ReturnMoInboundStatuModel moInboundStatuModel);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/PLSService/InvokePLSService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/PLSService/InvokePLSService.cs"
new file mode 100644
index 0000000..080f77d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_External/PLSService/InvokePLSService.cs"
@@ -0,0 +1,44 @@
+锘縰sing Newtonsoft.Json;
+using Newtonsoft.Json.Serialization;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.APIEnum;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.PLS;
+using WIDESEA_External.IPLSService;
+using WIDESEA_External.Model;
+using WIDESEA_IBasicRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_External.PLSService
+{
+    public class InvokePLSService : IInvokePLSService
+    {
+        private readonly IApiInfoRepository _apiInfoRepository;
+
+        public InvokePLSService(IApiInfoRepository apiInfoRepository)
+        {
+            _apiInfoRepository = apiInfoRepository;
+        }
+        JsonSerializerSettings settings = new JsonSerializerSettings
+        {
+            ContractResolver = new CamelCasePropertyNamesContractResolver()
+        };
+        public string InvokeMoInboundStatuApi(ReturnMoInboundStatuModel moInboundStatuModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokePLSApi.ToString());
+            PLSBaseModel<ReturnMoInboundStatuModel> model = new PLSBaseModel<ReturnMoInboundStatuModel>()
+            {
+                Data = moInboundStatuModel,
+                TimeStamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
+                Sign = "RWMS001"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IBasicService/IMaterielInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IBasicService/IMaterielInfoService.cs"
index 3a0f7b4..2d8cd82 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IBasicService/IMaterielInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IBasicService/IMaterielInfoService.cs"
@@ -7,6 +7,7 @@
 using WIDESEA_Core.BaseServices;
 using WIDESEA_DTO.Basic;
 using WIDESEA_DTO.ERP;
+using WIDESEA_DTO.PLS;
 using WIDESEA_IBasicRepository;
 using WIDESEA_Model.Models;
 
@@ -51,5 +52,13 @@
         /// <param name="model"></param>
         /// <returns></returns>
         WebResponseContent ReceiveMaterial(MaterielInfoDTO model);
+
+
+        /// <summary>
+        /// 鍚屾VMI鐗╂枡淇℃伅
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        WebResponseContent ReceiveVMIMaterial(VMIItemCodeInfo vmiModel);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMoInboundOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMoInboundOrderRepository.cs"
new file mode 100644
index 0000000..590039b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMoInboundOrderRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundRepository
+{
+    public interface IMoInboundOrderRepository : IRepository<Dt_MoInboundOrder>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMoInboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMoInboundOrderService.cs"
new file mode 100644
index 0000000..6402dde
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMoInboundOrderService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+    public interface IMoInboundOrderService : IService<Dt_MoInboundOrder>
+    {
+        IMoInboundOrderRepository Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MoInboundOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MoInboundOrderRepository.cs"
new file mode 100644
index 0000000..6eafd88
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MoInboundOrderRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+    public class MoInboundOrderRepository : RepositoryBase<Dt_MoInboundOrder>, IMoInboundOrderRepository
+    {
+        public MoInboundOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MoInboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MoInboundOrderService.cs"
new file mode 100644
index 0000000..32aff98
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MoInboundOrderService.cs"
@@ -0,0 +1,130 @@
+锘縰sing SqlSugar.Extensions;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.PLSEnum;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO;
+using WIDESEA_DTO.PLS;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IBasicService;
+using WIDESEA_IInboundRepository;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundService
+{
+    public class MoInboundOrderService : ServiceBase<Dt_MoInboundOrder, IMoInboundOrderRepository>, IMoInboundOrderService
+    {
+
+        public IMoInboundOrderRepository Repository => BaseDal;
+
+        public MoInboundOrderService(IMoInboundOrderRepository BaseDal) : base(BaseDal)
+        {
+        }
+
+
+        /// <summary>
+        /// PLS鍚屾MO绁ㄤ俊鎭�
+        /// </summary>
+        public ApiResponseContent ReceiveMoStatus(MoInboundOrderDTO model)
+        {
+            // 1. 鍩虹鍙傛暟鏍¢獙
+            if (model == null || model.Data == null || !model.Data.Any())
+            {
+                return ApiResponseContent.Instance.Error("MO绁ㄤ紶鍏ュ弬鏁颁负绌�");
+            }
+
+            var dataList = new List<LabelNoData>();
+            int successCount = 0;
+            int totalCount = model.Data.Count;
+
+            try
+            {
+                foreach (var item in model.Data)
+                {
+                    var itemResult = new LabelNoData
+                    {
+                        LabelNo = item.LabelNo
+                    };
+                    try
+                    {
+                        // 鍙傛暟鏍¢獙
+                        if (string.IsNullOrWhiteSpace(item.LabelNo))
+                        {
+                            throw new Exception("鏍囩鍙� LabelNo 涓嶈兘涓虹┖");
+                        }
+
+                        // 鏌ヨMO绁ㄦ槸鍚﹀凡瀛樺湪
+                        var existMo = BaseDal.QueryFirst(x => x.LabelNo == item.LabelNo);
+
+                        if (existMo == null)
+                        {
+                            var addEntity = new Dt_MoInboundOrder()
+                            {
+                                OrgId = item.OrgId,
+                                LabelNo = item.LabelNo,
+                                Status = item.Status,
+                                BarcodeNumber = item.BarcodeNumber,
+                                SupplierCode = item.SupplierCode,
+                                ItemCode = item.ItemCode,
+                                Qty = item.Qty,
+                                WorkOrderName = item.WorkOrderName,
+                                DeleteFlag = item.DeleteFlag,
+                                ReturnToPlsStatus = ReturnToPlsStatusEnum.鏈帹閫�.ObjToInt(),
+                                CreateDate = item.CreateDate,
+                                Creater = item.CreateUser,
+                                Modifier = item.UpdateUser,
+                                ModifyDate = item.UpdateDate
+                            };
+                            BaseDal.AddData(addEntity);
+                        }
+                        else
+                        {
+                            existMo.OrgId = item.OrgId;
+                            existMo.Status = item.Status;
+                            existMo.BarcodeNumber = item.BarcodeNumber;
+                            existMo.SupplierCode = item.SupplierCode;
+                            existMo.ItemCode = item.ItemCode;
+                            existMo.Qty = item.Qty;
+                            existMo.WorkOrderName = item.WorkOrderName;
+                            existMo.DeleteFlag = item.DeleteFlag;
+                            existMo.Modifier = item.UpdateUser;
+                            existMo.ModifyDate = item.UpdateDate;
+
+                            BaseDal.UpdateData(existMo);
+                        }
+
+                        // 鍗曟潯澶勭悊鎴愬姛
+                        itemResult.Success = 0;
+                        successCount++;
+                    }
+                    catch (Exception ex)
+                    {
+                        // 鍗曟潯澶勭悊澶辫触
+                        itemResult.Success = 1;
+                        itemResult.Msg = ex.Message;
+                    }
+                    finally
+                    {
+                        // 姣忔潯鏃犺鎴愬姛/澶辫触锛岄兘鍔犲叆杩斿洖鍒楄〃
+                        dataList.Add(itemResult);
+                    }
+                }
+
+                // 鍏ㄩ儴澶勭悊瀹屾垚锛岃繑鍥炵粨鏋�
+                return ApiResponseContent.Instance.OK(
+                    dataList,
+                    $"澶勭悊瀹屾垚锛氬叡{totalCount}鏉★紝鎴愬姛{successCount}鏉★紝澶辫触{totalCount - successCount}鏉�"
+                );
+            }
+            catch (Exception ex)
+            {
+                return ApiResponseContent.Instance.Error($"MO绁ㄥ悓姝ユ暣浣撳紓甯革細{ex.Message}");
+            }
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
index c49e419..5c87ac8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_MaterielInfo.cs"
@@ -26,7 +26,7 @@
         /// <summary>
         /// 浠撳簱缂栧彿
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱缂栧彿")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠撳簱缂栧彿")]
         public int WarehouseId { get; set; }
 
         /// <summary>
@@ -38,13 +38,13 @@
         /// <summary>
         /// 鐗╂枡鍚嶇О
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
         public string MaterielName { get; set; }
 
         /// <summary>
         /// 鐗╂枡瑙勬牸
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡瑙勬牸")]
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡瑙勬牸")]
         public string MaterielSpec { get; set; }
 
         /// <summary>
@@ -56,7 +56,7 @@
         /// <summary>
         /// 鍩烘湰鍗曚綅(buyUnitId/StockUnitId)
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍩烘湰鍗曚綅(buyUnitId/StockUnitId)")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍩烘湰鍗曚綅(buyUnitId/StockUnitId)")]
         public string MaterielUnit { get; set; }
 
         /// <summary>
@@ -96,21 +96,21 @@
         public string MaterielModel { get; set; }
 
         /// <summary>
-        /// 鐗╂枡鐘舵��(0:绂佺敤銆�1:鍙敤)
+        ///鏈夋晥鏍囪瘑(0:鏈夋晥銆�1:鏃犳晥)
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡鐘舵��(0:绂佺敤銆�1:鍙敤)")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏈夋晥鏍囪瘑(0:鏈夋晥銆�1:鏃犳晥)")]
         public EnableEnum MaterielState { get; set; }
 
         /// <summary>
-        /// 搴撳瓨缁勭粐(榛樿:娣畨鐗瑰垱浜屽巶)
+        /// 渚涙柟缂栫爜
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "搴撳瓨缁勭粐")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "渚涙柟缂栫爜")]
         public string MaterielInvOrgId { get; set; }
 
         /// <summary>
         /// 鏄惁闇�瑕佽川妫�
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁闇�瑕佽川妫�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁闇�瑕佽川妫�")]
         public WhetherEnum IsCheck { get; set; }
 
         /// <summary>
@@ -118,5 +118,18 @@
         /// </summary>
         [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
+
+        /// <summary>
+        /// 闇�姹傜粍缁囩紪鐮�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "闇�姹傜粍缁囩紪鐮�")]
+        public long OrgId { get; set; }
+
+        /// <summary>
+        /// 鍖呰鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍖呰鏁�")]
+        public decimal PackageQty { get; set; }
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MoInboundOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MoInboundOrder.cs"
new file mode 100644
index 0000000..fcc3540
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MoInboundOrder.cs"
@@ -0,0 +1,95 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// MO绁ㄥ叆搴撳崟鎹〃
+    /// </summary>
+    [SugarTable(nameof(Dt_MoInboundOrder), "MO绁ㄥ叆搴撳崟鎹〃")]
+    public class Dt_MoInboundOrder:BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
+        public string ItemCode { get; set; }
+
+        /// <summary>
+        /// MO绁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "MO绁�")]
+        public string LabelNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鍗曟嵁鍙�")]
+        public string BarcodeNumber { get; set; }
+
+        /// <summary>
+        /// VMI鐗╂祦鐘舵��(宸插垱寤猴紝宸插璐э紝宸插彂杩愶紝宸插彇娑�)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 10, ColumnDescription = "VMI鐗╂祦鐘舵��(宸插垱寤猴紝宸插璐э紝宸插彂杩愶紝宸插彇娑�)")]
+        public string Status { get; set; }
+
+
+        /// <summary>
+        ///鏈夋晥鏍囪瘑(0:鏈夋晥銆�1:鏃犳晥)
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏈夋晥鏍囪瘑(0:鏈夋晥銆�1:鏃犳晥)")]
+        public long DeleteFlag { get; set; }
+
+        /// <summary>
+        /// 渚涙柟缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "渚涙柟缂栫爜")]
+        public string SupplierCode { get; set; }
+
+        /// <summary>
+        /// 闇�姹傜粍缁囩紪鐮�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "闇�姹傜粍缁囩紪鐮�")]
+        public string OrgId { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false,  ColumnDescription = "鏁伴噺")]
+        public decimal Qty { get; set; }
+
+
+        /// <summary>
+        /// 浣滀笟鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "浣滀笟鍙�")]
+        public string WorkOrderName { get; set; }
+
+
+        /// <summary>
+        /// 鎺ㄩ�佺姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鎺ㄩ�佺姸鎬�")]
+        public int ReturnToPlsStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/WIDESEA_Model.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/WIDESEA_Model.csproj"
index a838071..139965f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/WIDESEA_Model.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/WIDESEA_Model.csproj"
@@ -18,7 +18,6 @@
 
 	<ItemGroup>
 	  <Folder Include="Models\Check\" />
-	  <Folder Include="Models\Inbound\" />
 	  <Folder Include="Models\Outbound\" />
 	</ItemGroup>
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/PLS/PlsController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/PLS/PlsController.cs"
new file mode 100644
index 0000000..661b1ac
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/PLS/PlsController.cs"
@@ -0,0 +1,56 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core;
+using WIDESEA_DTO.ERP;
+using WIDESEA_DTO;
+using WIDESEA_External.ERPService;
+using WIDESEA_IBasicService;
+using WIDESEA_DTO.PLS;
+using WIDESEA_External.Model;
+using WIDESEA_External.IPLSService;
+
+
+namespace WIDESEA_WMSServer.Controllers.PLS
+{
+    [Route("api/Pls")]
+    [ApiController]
+    public class PlsController:ControllerBase
+    {
+        private readonly IBasicService _basicService;
+        private readonly IInvokePLSService _invokePLSService;
+
+        public PlsController(IBasicService basicService,IInvokePLSService invokePLSService)
+        {
+            _basicService = basicService;
+            _invokePLSService = invokePLSService;
+        }
+
+        /// <summary>
+        /// 鎺ユ敹PLS鍚屾VMI鐗╂枡淇℃伅
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost, Route("ReceiveVMIMaterial"), AllowAnonymous, MethodParamsValidate]
+        public ApiResponseContent ReceiveVMIMaterial([FromBody] VMIItemCodeInfo vmiModel)
+        {
+            WebResponseContent content = _basicService.MaterielInfoService.ReceiveVMIMaterial(vmiModel);
+            if (content.Status) {
+                return ApiResponseContent.Instance.OK();
+            } 
+            else {
+                return ApiResponseContent.Instance.Error();
+            }
+        }
+
+        /// <summary>
+        /// MO绁ㄧ姸鎬佷笂鎶LS
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("InvokeMoInboundStatuApi"), AllowAnonymous]
+        public string InvokeMoInboundStatuApi([FromBody] ReturnMoInboundStatuModel moInboundStatuModel)
+        {
+            return _invokePLSService.InvokeMoInboundStatuApi(moInboundStatuModel);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
index 79fa023..cc3c481 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json"
@@ -13,7 +13,7 @@
   //杩炴帴瀛楃涓�
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
   //"ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_HanDanWMS;User ID=sa;Password=root;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=WMS_TC;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //鏃MS鏁版嵁搴撹繛鎺�
   //"TeConnectionString": "Data Source=10.30.4.92;Initial Catalog=TeChuang;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
@@ -32,5 +32,7 @@
   "ExpMinutes": 120,
   "QuartzJobAutoStart": true,
   "PDAVersion": "4",
-  "WebSocketPort": 9296
+  "WebSocketPort": "9296锛�",
+  "DBSeedEnable": true
+
 }

--
Gitblit v1.9.3