From 1ef909b2c886c9f20f05c8e61efd555ef377b715 Mon Sep 17 00:00:00 2001
From: hudong <Administrator@PC-20250329JZUF>
Date: 星期四, 10 七月 2025 15:14:12 +0800
Subject: [PATCH] 优化bug

---
 api/WmsSapController.cs |  324 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 230 insertions(+), 94 deletions(-)

diff --git a/api/WmsSapController.cs b/api/WmsSapController.cs
index 8c0fbd4..de39f0d 100644
--- a/api/WmsSapController.cs
+++ b/api/WmsSapController.cs
@@ -17,22 +17,196 @@
 using static HH.WCS.Mobox3.pinggao.api.OtherModel;
 using static HH.WCS.Mobox3.pinggao.api.ApibackModel;
 using HH.WCS.Mobox3.pinggao.models;
+using static HH.WCS.Mobox3.pinggao.models.DAPING;
+using HH.WCS.Mobox3.pinggao.util;
+using SqlSugar;
+using System.Diagnostics;
 
 namespace HH.WCS.Mobox3.pinggao.api
 {
     public class WmsSapController : System.Web.Http.ApiController
     {
         /// <summary>
-        /// 鐢熶骇璁㈠崟淇℃伅鑾峰彇
+        /// 鍑哄韩浠诲嫏鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public DPList DpRecord(DpDto dpDto)
+        {
+            var response = new DPList
+            {
+                DpList = new List<DP> { }
+            };
+            if (string.IsNullOrEmpty(dpDto.Code))
+            {
+                LogHelper.Info("璐т綅淇℃伅涓嶈兘涓虹┖" );
+                return response;
+            }
+            var db = new SqlHelper<object>().GetInstance();
+            var list =db.Queryable<TN_DPRECORD>().Where(s=>s.S_LOCATION== dpDto.Code).OrderByDescending(s=>s.T_CREATE).ToList();
+            var tasksList = list.Select(t => new DP
+            {
+                S_NO = t.S_NO,
+                S_WLBM = t.S_WLBM,
+                S_WLMC = t.S_WLMC,
+                N_COUNT = t.N_COUNT,
+                S_LOCATION = t.S_LOCATION
+            }).ToList();
+            response.DpList = tasksList;
+            return response;
+
+        }
+        #region 澶у睆鏁版嵁鎺ュ彛
+            /// <summary>
+            /// 澶у睆鏁版嵁
+            /// </summary>
+            /// <returns></returns>
+        public BarChartResponse InOut(){
+
+            var response = new BarChartResponse
+            {
+                OutboundData = new List<BarChartData>
+                {
+                },
+                InboundData = new List<BarChartData>
+                {
+
+                },
+                CKNData = new List<NB> { },
+                ListTask = new List<Tasks> { },
+                Inttbounddjcount = 0,
+                Outtbounddjcount=0,
+                IntodayCount = 0,
+                OuttodayCount = 0
+
+            };
+
+            var db = new SqlHelper<object>().GetInstance();
+            #region 鍑哄簱
+            // 1. 鑾峰彇褰撳墠骞翠唤锛堟垨鎸囧畾骞翠唤锛�+            int year = DateTime.Now.Year; // 濡�023
+
+            // 2. 鐢熸垚1-12鏈堟墍鏈夋湀浠斤紙纭繚瀹屾暣鎬э級
+            var allMonths = Enumerable.Range(1, 12)
+                .Select(m => new DateTime(year, m, 1).ToString("MM"))
+                .ToList();
+
+            //var allMonths = Enumerable.Range(1, 12).ToList();
+            // 3. 鏌ヨ鏁版嵁搴撹幏鍙栧嚭搴撴暟鎹紙鎸夋湀浠藉垎缁勭粺璁★級
+            var outboundCounts = db.Queryable<WCSTask>()
+                .Where(a => a.S_TYPE.Contains("鍑哄簱") &&a.N_B_STATE==3&& a.T_END_TIME != null&&a.T_END_TIME.Value.Year== year)
+                .ToList() // 鍔犺浇鍒板唴瀛�+                .GroupBy(a => a.T_END_TIME.Value.ToString("MM")) // 鎸夋湀浠藉垎缁�+                .ToDictionary(g => g.Key, g => g.Count()); // 杞负瀛楀吀锛堟湀浠�璁板綍鏁帮級
+
+            // 3. 鏋勫缓瀹屾暣1-12鏈堟暟鎹紙缂哄け鏈堜唤琛�锛�+            var outboundData = allMonths.Select(month => new BarChartData
+            {
+                Month = int.Parse(month),
+                Count = outboundCounts.TryGetValue(month, out var count) ? count : 0
+            }).ToList();
+            response.OutboundData = outboundData;
+            #endregion
+            #region 鍏ュ簱
+            var inttboundCounts = db.Queryable<WCSTask>()
+           .Where(a => a.S_TYPE.Contains("鍏ュ簱") && a.N_B_STATE == 3 && a.T_END_TIME != null && a.T_END_TIME.Value.Year == year)
+           .ToList() // 鍔犺浇鍒板唴瀛�+           .GroupBy(a => a.T_END_TIME.Value.ToString("MM")) // 鎸夋湀浠藉垎缁�+           .ToDictionary(g => g.Key, g => g.Count()); // 杞负瀛楀吀锛堟湀浠�璁板綍鏁帮級
+            var intboundData = allMonths.Select(month => new BarChartData
+            {
+                Month = int.Parse(month),
+                Count = inttboundCounts.TryGetValue(month, out var count) ? count : 0
+            }).ToList();
+            response.InboundData = intboundData;
+            #endregion
+            #region 鏈畬鎴愬崟鎹噺
+            var Inttbounddjcount = db.Queryable<TN_Inbound_Order>().Where(s=>s.N_B_STATE==0).Count();
+            var Outtbounddjcount = db.Queryable<TN_Ll_Order>().Where(s=>s.N_B_STATE==0).Count();
+            var today = DateTime.Today;
+            var tomorrow = today.AddDays(1);
+
+            var IntodayCount = db.Queryable<WCSTask>()
+                .Where(s => s.N_B_STATE == 3 && s.S_TYPE.Contains("鍏ュ簱")&&
+                            s.T_END_TIME >= today &&
+                            s.T_END_TIME < tomorrow).Count();
+            var OuttodayCount = db.Queryable<WCSTask>()
+            .Where(s => s.N_B_STATE == 3 && s.S_TYPE.Contains("鍑哄簱") &&
+                        s.T_END_TIME >= today &&
+                        s.T_END_TIME < tomorrow).Count();
+            response.Inttbounddjcount = Inttbounddjcount;
+            response.Outtbounddjcount = Outtbounddjcount;
+            response.OuttodayCount = OuttodayCount;
+            response.IntodayCount = IntodayCount;
+            #endregion
+            #region 浠诲姟鍒楄〃
+            var tasklist = db.Queryable<WCSTask>().Where(s => s.N_B_STATE != 2).Select(s => new { s.S_CNTR_CODE, s.S_START_AREA, s.S_END_AREA, s.S_B_STATE }).Take(5).ToList() ;
+            var tasksList = tasklist.Select(t => new Tasks
+            {
+                S_CNTR_CODE = t.S_CNTR_CODE,
+                S_START_AREA = t.S_START_AREA,
+                S_END_AREA = t.S_END_AREA,
+                S_B_STATE = t.S_B_STATE
+            }).ToList();
+            response.ListTask = tasksList;
+            #endregion
+
+
+            #region 浠撳簱搴撳唴瀹℃牳
+            var ManCount = db.Queryable<CntrItemRel>()
+                           .Where(s => s.S_CNTR_TYPE == "婊℃墭")
+                           .GroupBy(s => s.S_CNTR_CODE)
+                           .Select(s => new { s.S_CNTR_CODE })
+                           .Count();
+            var ManName = "婊℃墭鐩�;
+
+            var BanCount = db.Queryable<CntrItemRel>()
+                           .Where(s => s.S_CNTR_TYPE == "鍗婃墭")
+                           .GroupBy(s => s.S_CNTR_CODE)
+                           .Select(s => new { s.S_CNTR_CODE })
+                           .Count();
+            var BanName = "鍗婃墭鐩�;
+            //鎵�湁瀹瑰櫒鐨勬暟閲�+            int allCntrcout = db.Queryable<LocCntrRel>().Count();
+            //鎵�湁瀹瑰櫒鐗╂枡鏁伴噺
+            int alltprcout = db.Queryable<CntrItemRel>()
+                     .GroupBy(s => s.S_CNTR_CODE)
+                     .Select(s => new { s.S_CNTR_CODE })
+                     .Count();
+
+            var KTCount = allCntrcout - alltprcout;
+            var KTName = "绌烘墭鐩�;
+
+            int alllocationcout = db.Queryable<Location>().Count();
+            var KHWCount = alllocationcout - allCntrcout;
+            var KHWName = "绌鸿揣浣�;
+
+            var list = new List<NB>
+        {
+            new NB { Name = ManName, Count = ManCount },
+            new NB { Name = BanName, Count = BanCount },
+            new NB { Name = KTName, Count = KTCount },
+            new NB { Name = KHWName, Count = KHWCount }
+        };
+            response.CKNData = list;
+            #endregion
+            return response;
+        
+        }
+
+            
+        #endregion
+
+        /// <summary>
+        /// 渚涘簲鍟嗘帴鏀舵帴鍙h幏鍙�         /// </summary>
         /// <param name="xmlData"></param>
         /// <returns></returns>
         [HttpPost]
-        public Orderback.Root GYSReceiveXmlData([FromBody] GYSDto.Root xmlData)
+        public GYSReturnRoot.Root GYSReceiveXmlData([FromBody] GYSDto.Root xmlData)
         {
             #region xml鏁版嵁鎺ユ敹杞暟缁� 
-            LogHelper.Info("渚涘簲鍟嗘帴鏀舵帴鍙o細" + JsonConvert.SerializeObject(xmlData));
+            //LogHelper.Info("渚涘簲鍟嗘帴鏀舵帴鍙o細" + JsonConvert.SerializeObject(xmlData));
 
             ////鎺ユ敹xml鏁版嵁
             //XmlDocument xmlDoc = new XmlDocument();
@@ -48,7 +222,7 @@
             #endregion
 
             #region 澶栭噰鍏ュ簱涓氬姟娴佺▼
-            //Orderback.Root simpleResult = WmsSpaHelper.Mater_In(xmlData);
+            GYSReturnRoot.Root simpleResult = WmsSpaHelper.GYS_In(xmlData);
             //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡
             //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
 
@@ -61,7 +235,7 @@
             //    Content = new StringContent(xml, Encoding.UTF8, "application/xml")
             //};
             //return response;
-            return null;
+            return simpleResult;
             #endregion
         }
 
@@ -76,7 +250,7 @@
         {
             #region xml鏁版嵁鎺ユ敹杞暟缁� 
-            LogHelper.Info("鐢熶骇璁㈠崟鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
+            //LogHelper.Info("鐢熶骇璁㈠崟鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
 
             ////鎺ユ敹xml鏁版嵁
             //XmlDocument xmlDoc = new XmlDocument();
@@ -115,39 +289,15 @@
         /// <returns></returns>
 
         [HttpPost]
-        public SimpleResult MaterReceiveXmlData([FromBody] MaterDto.Root xmlData)
+        public WLReturnRoot.Root MaterReceiveXmlData([FromBody] MaterDto.Root xmlData)
         {
-            #region xml鏁版嵁鎺ユ敹杞暟缁�-
-            LogHelper.Info("鐗╂枡鎺ユ敹鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
-
-            ////鎺ユ敹xml鏁版嵁
-            //XmlDocument xmlDoc = new XmlDocument();
-            //xmlDoc.LoadXml(xmlData.ToString());
-
-            //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�-            //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
-
-            //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍
-            //WmsSpaHelper.EnsureArrayFormats(jsonObject, "ITEM");
-            //// 鍙嶅簭鍒楀寲涓篟ootWithArray
-            //var data = JsonConvert.DeserializeObject<MaterDto.Root>(jsonObject.ToString());
-            #endregion
+            
 
             #region 澶栭噰鍏ュ簱涓氬姟娴佺▼
-            SimpleResult simpleResult = WmsSpaHelper.Mater_In(xmlData);
-            //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡
-            //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
+            WLReturnRoot.Root simpleResult = WmsSpaHelper.Mater_In(xmlData);
+         
 
-            //#endregion
-            //#region  杩斿洖xml
-            //string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
-            ////杩斿洖json
-            //var response = new HttpResponseMessage()
-            //{
-            //    Content = new StringContent(xml, Encoding.UTF8, "application/xml")
-            //};
-            //return response;
+            var json = JsonConvert.SerializeObject(simpleResult);
             return simpleResult;
             #endregion
         }
@@ -162,7 +312,7 @@
         public WcReturnRoot.Root WCReceiveXmlData([FromBody] SapRoot.Root xmlData)
         {
             #region xml鏁版嵁鎺ユ敹杞暟缁�-            LogHelper.Info("澶栭噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
+            //LogHelper.Info("澶栭噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
             //鎺ユ敹xml鏁版嵁
             //XmlDocument xmlDoc = new XmlDocument();
             //xmlDoc.LoadXml(xmlData.ToString());
@@ -225,7 +375,7 @@
 
             //NcDto.ROOT rOOT = new NcDto.ROOT();
             //rOOT.WLPZ = new NcDto.WLPZ();
-            LogHelper.Info("鍐呴噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
+            //LogHelper.Info("鍐呴噰鏀惰揣鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
 
             ////鎺ユ敹xmloo
             //XmlDocument xmlDoc = new XmlDocument();
@@ -289,48 +439,23 @@
         [HttpPost]
         public OtherReturnRoot.Root OtherReceiveXmlData([FromBody] otherDto.Root xmlData)
         {
-            #region xml鏁版嵁鎺ユ敹杞暟缁�-            LogHelper.Info("鍏朵粬鍑哄叆搴搒ap鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
-
-            ////鎺ユ敹xml鏁版嵁
-            //XmlDocument xmlDoc = new XmlDocument();
-            //xmlDoc.LoadXml(xmlData.ToString());
-
-            //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�-            //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
-
-            //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍
-            //WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITEM", "ITEM1");
-            //// 鍙嶅簭鍒楀寲涓篟ootWithArray
-            //var data = JsonConvert.DeserializeObject<otherDto.Root>(jsonObject.ToString());
-            #endregion
+           
             #region 鍏朵粬鍑哄叆搴撲笟鍔℃祦绋�             List<SimpleResult> simpleResult = WmsSpaHelper.Otherbound_Order_In(xmlData);
-            //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡
-            //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
 
             #endregion
             #region  杩斿洖xml
-            //string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
-            ////杩斿洖json
-            //var response = new HttpResponseMessage()
-            //{
-            //    Content = new StringContent(xml, Encoding.UTF8, "application/xml")
-            //};
-            //return response;
             #endregion
             List<OtherReturnRoot.ITEM> wcReturnRoots = new List<OtherReturnRoot.ITEM>();
             foreach (var item in simpleResult)
             {
                 OtherReturnRoot.ITEM wcReturnRoot = new OtherReturnRoot.ITEM();
                 wcReturnRoot.WLPZBH = item.WLPZBH;
-                wcReturnRoot.WLPZND = item.WLPZND;
+                wcReturnRoot.ND = item.WLPZND;
                 wcReturnRoot.MSGCODE = item.resultCode;
                 wcReturnRoot.MSGDESP = item.resultMsg;
                 wcReturnRoots.Add(wcReturnRoot);
             }
-            //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
-            // 瀹屾暣宓屽瀹炰緥鍖�             var result = new OtherReturnRoot.Root
             {
                 ROOT = new OtherReturnRoot.ROOT
@@ -358,6 +483,17 @@
         }
 
         /// <summary>
+        /// pda鍒嗘嫞瀹屾暣鐗�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public Task<SimpleResult> AllOutboundOrderSorting(FJSorting model)
+        {
+            return WmsSpaHelper.ALLOutboundOrderSorting(model);
+        }
+
+        /// <summary>
         /// pda鍒嗘嫞
         /// </summary>
         /// <param name="model"></param>
@@ -367,7 +503,26 @@
         {
             return WmsSpaHelper.OutboundOrderSorting(model);
         }
-
+        /// <summary>
+        /// 鍥炲簱
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public Task<SimpleResult> HkGet(HuiK model)
+        {
+            return WmsSpaHelper.HkGets(model);
+        }
+        /// <summary>
+        /// 绌烘墭鍑哄叆搴�+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public Task<SimpleResult> InOutKT(KtSorting model)
+        {
+            return WmsSpaHelper.KtSorting(model);
+        }
 
 
         /// <summary>
@@ -427,42 +582,23 @@
         [HttpPost]
         public LLDReturnRoot.Root LLDReceiveXmlData([FromBody] CKDdto.Root xmlData)
         {
+            //Stopwatch sw = new Stopwatch();
+            //sw.Start();
             #region xml鏁版嵁鎺ユ敹杞暟缁�-            LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
+            //LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�鎺ュ彛锛� + JsonConvert.SerializeObject(xmlData));
 
-            ////鎺ユ敹xml鏁版嵁
-            //XmlDocument xmlDoc = new XmlDocument();
-            //xmlDoc.LoadXml(xmlData.ToString());
 
-            //// 灏�XmlDocument 杞崲涓�JSON 瀛楃涓�-            //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
-
-            //// 澶勭悊鐗瑰畾瀛楁锛屽己鍒惰浆鎹负鏁扮粍
-
-            ////WmsSpaHelper.EnsureArrayFormat(jsonObject, "ITME");
-            //WmsSpaHelper.EnsureArrayFormat(jsonObject["ROOT"]["SCDDLL"] as JObject, "ITEM");
-            //// 鍙嶅簭鍒楀寲涓篟ootWithArray
-            //var data = JsonConvert.DeserializeObject<CKDdto.Root>(jsonObject.ToString());
             #endregion
 
             #region 鍑哄簱涓氬姟娴佺▼
-            LLDReturnRoot.Root json = WmsSpaHelper.Out_Order_Ins(xmlData);
-            //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡
-            //var json = WmsSpaHelper.GetJsonResult(simpleResult.WLPZBH, simpleResult.resultCode.ToString(), simpleResult.resultMsg);
-            //鎺ユ敹杩斿洖鍙傛暟 鐢熸垚sap瀵规帴鏂囨。杩斿洖鏍煎紡
-            List<WcReturnRoot.ITEM> wcReturnRoots = new List<WcReturnRoot.ITEM>();
+            return WmsSpaHelper.Out_Order_Ins(xmlData);
 
-            return json;
+
+            //sw.Stop();
+            //long elapsedMilliseconds = sw.ElapsedMilliseconds;
+            //LogHelper.Info("鐢熶骇璁㈠崟棰嗘枡鍗�鐢熸垚棰嗘枡鍗�杩斿洖鏃堕暱锛� + elapsedMilliseconds);
+
             #endregion
-            //#region  杩斿洖xml
-            //string xml = JsonConvert.DeserializeXmlNode(json, "root").OuterXml;
-            ////杩斿洖json
-            //var response = new HttpResponseMessage()
-            //{
-            //    Content = new StringContent(xml, Encoding.UTF8, "application/xml")
-            //};
-            //return response;
-            //#endregion
         }
 
         /// <summary>
@@ -476,7 +612,7 @@
         {
 
 
-            var json = WmsSpaHelper.Out_Order_Inss(dto.S_NO);
+            var json = WmsSpaHelper.Out_Order_Inss(dto.S_NO,dto.N_PRIORITY);
 
 
             return json;

--
Gitblit v1.9.1