From b1c2dd1869a51b8f0e4acb9ddeb148f796db147f Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期三, 25 六月 2025 19:10:58 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs |  271 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 184 insertions(+), 87 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
index c520dd4..6a3ac42 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
@@ -14,6 +14,10 @@
 using WIDESEA_Common.ZY;
 using Autofac.Core;
 using NetTaste;
+using AngleSharp.Io;
+using WIDESEA_IRepository;
+using WIDESEA_Core.Const;
+using WIDESEA_IServices;
 
 namespace WIDESEA_StorageBasicService;
 
@@ -22,11 +26,13 @@
     private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
     private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository;
     private readonly IToZYService _toZYService;
-    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService) : base(BaseDal)
+    private readonly ISys_ConfigService _sys_ConfigService;
+    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService, ISys_ConfigService ISys_ConfigService) : base(BaseDal)
     {
         _SelectionStandardsRepository = selectionStandardsRepository;
         _WheelsStock_HtyRepository = WheelsStock_HtyRepository;
         _toZYService = toZYService;
+        _sys_ConfigService = ISys_ConfigService;
     }
 
     /// <summary>
@@ -70,17 +76,16 @@
         //杩囩泩閲忎笅闄�
         decimal selectionLowerValue = selectionStandards.lowerValue;
 
-        decimal mesStand = 0;
         string level = string.Empty;
         if ("left".Equals(wheelsPosition))  //鍖归厤宸﹁疆搴ц疆瀛�
         {
-            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
+            decimal mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
             level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
             WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
         }
         else    //鍚﹀垯鍖归厤鍙宠疆搴ц疆瀛�
         {
-            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
+            decimal mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
             level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
             WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
         }
@@ -130,109 +135,201 @@
 
 
 
-    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld)
+    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld, string wheelsProps)
     {
-        //杩囩泩閲忎笂闄�
-        decimal selectionUpperValue = selectionStandards.upperValue;
-        //杩囩泩閲忎笅闄�
-        decimal selectionLowerValue = selectionStandards.lowerValue;
-
-        decimal mesStand = 0;
-        string level = string.Empty;
-
-
-        if ("left".Equals(wheelsPosition))  //鍖归厤宸﹁疆搴ц疆瀛�
+        try
         {
-            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
-            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
-            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
-        }
-        else    //鍚﹀垯鍖归厤鍙宠疆搴ц疆瀛�
-        {
-            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
-            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
-            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
-        }
-        foreach (var item in wheelsStocks)
-        {
-            string Wheels_gkcc = "";
-            string Wheels_gkzja = "";
-            string Wheels_gkzjb = "";
-            string Wheels_gkzjc = "";
+            //杩囩泩閲忎笂闄�
+            decimal selectionUpperValue = selectionStandards.upperValue;
+            //杩囩泩閲忎笅闄�
+            decimal selectionLowerValue = selectionStandards.lowerValue;
 
-            SaveModel saveModel = new SaveModel();
-            saveModel.MainData = new Dictionary<string, object>
+            decimal mesStand = 0;
+            string level = string.Empty;
+
+
+            if ("left".Equals(wheelsPosition))  //鍖归厤宸﹁疆搴ц疆瀛�
             {
-                { "cltm", item.wheel_code }
-            };
-            WebResponseContent webResponse= _toZYService.ZY_GetCLInfo(saveModel);
-            if (webResponse.Status)
-            {
-                var dta = JsonConvert.DeserializeObject<CLInfo_ZY>(webResponse.Data.ToString());
-
-                Wheels_gkcc = dta.gkcc;
-                // 姣傚瓟a鐣岄潰鍧囧��
-                Wheels_gkzja = dta.GKZJA;
-                //姣傚瓟b鐣岄潰鍧囧��
-                Wheels_gkzjb = dta.GKZJB;
-                //姣傚瓟c鐣岄潰鍧囧��
-                Wheels_gkzjc = dta.GKZJC;
+                mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
+                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
+                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
             }
-
-            if(Wheels_gkcc !="" && Wheels_gkzja!="" && Wheels_gkzjb !="" && Wheels_gkzjc != "")
+            else    //鍚﹀垯鍖归厤鍙宠疆搴ц疆瀛�
             {
-                //鏌ュ嚭鏉ュ湪鑼冨洿涔嬪鐨勮繘琛屽垹闄�
-                if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue)
-                {
+                mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
+                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
 
-                    wheelsStocks.Remove(item);
-                }
-                if (selectionStandards.isCantainGK)
-                {
-                    //鎴潰杩囩泩閲忎笂闄�
-                    decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
-                    //鎴潰杩囩泩閲忎笅闄�
-                    decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
+                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
+            }
+            foreach (var item in wheelsStocks)
+            {
+                string Wheels_gkcc = "";
+                string Wheels_gkzja = "";
+                string Wheels_gkzjb = "";
+                string Wheels_gkzjc = "";
+                string clsx = "";
 
-                    if ("left".Equals(wheelsPosition))
+                SaveModel saveModel = new SaveModel();
+                saveModel.MainData = new Dictionary<string, object>
+                {
+                    { "cltm", item.wheel_code }
+                };
+                WebResponseContent webResponse = _toZYService.ZY_GetCLInfo(saveModel);
+                if (webResponse.Status)
+                {
+                    CLInfo_ZY data = (CLInfo_ZY)webResponse.Data;
+
+                    if(wheelsProps== data.CLSX)
                     {
-                        decimal ZLZA = decimal.Parse(CZInfo_Mes.ZLZA);
-                        decimal ZLZB = decimal.Parse(CZInfo_Mes.ZLZB);
-                        decimal ZLZC = decimal.Parse(CZInfo_Mes.ZLZC);
+                        wheelsStocks.Remove(item);
+                        continue;
+                    }
 
-                        //鍒ゆ柇鍙栧弽锛岃繘琛屽垹闄�
-                        if (ZLZA - (decimal.Parse(Wheels_gkzja)) < selectionLowerValue_gk && ZLZA - (decimal.Parse(Wheels_gkzja)) > selectionUpperValue_gk
-                            && ZLZB - (decimal.Parse(Wheels_gkzjb)) < selectionLowerValue_gk && ZLZB - (decimal.Parse(Wheels_gkzjb)) > selectionUpperValue_gk
-                            && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
+                    Wheels_gkcc = data.gkcc;
+                    // 姣傚瓟a鐣岄潰鍧囧��
+                    Wheels_gkzja = data.GKZJA;
+                    //姣傚瓟b鐣岄潰鍧囧��
+                    Wheels_gkzjb = data.GKZJB;
+                    //姣傚瓟c鐣岄潰鍧囧��
+                    Wheels_gkzjc = data.GKZJC;
+                }
+
+                if (Wheels_gkcc != "" && Wheels_gkzja != "" && Wheels_gkzjb != "" && Wheels_gkzjc != "")
+                {
+                    //鏌ュ嚭鏉ュ湪鑼冨洿涔嬪鐨勮繘琛屽垹闄�
+                    if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue)
+                    {
+
+                        wheelsStocks.Remove(item);
+                        continue;
+                    }
+                    if (selectionStandards.isCantainGK)
+                    {
+                        //鎴潰杩囩泩閲忎笂闄�
+                        decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
+                        //鎴潰杩囩泩閲忎笅闄�
+                        decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
+
+                        if ("left".Equals(wheelsPosition))
                         {
-                            wheelsStocks.Remove(item);
+                            decimal ZLZA = decimal.Parse(CZInfo_Mes.ZLZA);
+                            decimal ZLZB = decimal.Parse(CZInfo_Mes.ZLZB);
+                            decimal ZLZC = decimal.Parse(CZInfo_Mes.ZLZC);
+
+                            //鍒ゆ柇鍙栧弽锛岃繘琛屽垹闄�
+                            if (ZLZA - (decimal.Parse(Wheels_gkzja)) < selectionLowerValue_gk && ZLZA - (decimal.Parse(Wheels_gkzja)) > selectionUpperValue_gk
+                                && ZLZB - (decimal.Parse(Wheels_gkzjb)) < selectionLowerValue_gk && ZLZB - (decimal.Parse(Wheels_gkzjb)) > selectionUpperValue_gk
+                                && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
+                            {
+                                wheelsStocks.Remove(item);
+                                continue;
+                            }
+                        }
+                        else
+                        {
+                            decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA);
+                            decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB);
+                            decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC);
+
+                            if (YLZA - (decimal.Parse(Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(Wheels_gkzja)) <= selectionUpperValue_gk
+                                && YLZB - (decimal.Parse(Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(Wheels_gkzjb)) <= selectionUpperValue_gk
+                                && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
+                            {
+                                wheelsStocks.Remove(item);
+                                continue;
+                            }
+
+
                         }
                     }
-                    else
-                    {
-                        decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA);
-                        decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB);
-                        decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC);
-
-                        if (YLZA - (decimal.Parse(Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(Wheels_gkzja)) <= selectionUpperValue_gk
-                            && YLZB - (decimal.Parse(Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(Wheels_gkzjb)) <= selectionUpperValue_gk
-                            && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
-                        {
-                            wheelsStocks.Remove(item);
-                        }
-
-
-                    }
                 }
+
+
             }
-            
 
+            return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault();
         }
+        catch (Exception ex)
+        {
 
-        return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault();
+            throw;
+        }
+    }
+
+    public WebResponseContent InventoryStatistics()
+    {
+        WebResponseContent content = new WebResponseContent();
+
+        List<Dt_WheelsStock> stockInfos = BaseDal.QueryData();
+
+        //鑾峰彇杞﹀瀷
+        List<string> Wheels_CarTypeList = stockInfos.Select(x => x.Wheels_CarType).Distinct().ToList();
+        List<WheelGroupInfo> groupedData = new List<WheelGroupInfo>();
+
+        foreach (var CarType in Wheels_CarTypeList)
+        {
+            var kd = stockInfos.Where(x => x.Wheels_CarType == CarType).GroupBy(w => w.Wheels_ldxh)
+           .Select(typeGroup => new WheelGroupInfo
+           {
+               Wheels_CarType = CarType,    //杞﹀瀷
+               Wheels_ldxh = typeGroup.Key,
+               Count = typeGroup.Count(),
+
+           }).ToList();
+
+            groupedData.AddRange(kd);
+        }
+        content.Data = groupedData;
+        return content;
     }
 
 
+    public class WheelGroupInfo
+    {
+        public string Wheels_CarType { get; set; }
+        public string Wheels_ldxh { get; set; }
+        public int Count { get; set; }
+        
+    }
 
-    
+
+    public WebResponseContent UpdateInventoryStatue()
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            
+            List<Dt_WheelsStock> groupedData = new List<Dt_WheelsStock>();
+
+            var hourpara = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_Parameters, SysConfigConst.InventoryMarket);
+            int hour = hourpara.ConfigValue.ObjToInt(); //鑾峰彇璁剧疆鐨勯鏈熸椂闂�
+
+            List<Dt_WheelsStock> WheelsList = BaseDal.QueryData();      //鑾峰彇鍏ㄩ儴杞﹁疆淇℃伅
+
+            foreach (var item in WheelsList)
+            {
+                TimeSpan timeDifference = DateTime.Today - item.CreateDate.Date;
+                item.Wheels_DateDet = (int)timeDifference.TotalDays;
+
+                if (item.Wheels_DateDet >= hour)
+                {
+                    item.Wheels_Statue = 1;
+                }
+                else
+                {
+                    item.Wheels_Statue = 0;
+                }
+                groupedData.Add(item);
+            }
+
+             BaseDal.UpdateData(groupedData);
+
+            return content.OK();
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+            throw;
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3