From e9269528ae01bc4572b68148b9c801b51f23b669 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 04 9月 2025 10:41:45 +0800
Subject: [PATCH] 查询优化

---
 wcs/yunneiWCS/yunneiWCS/wcf/yunneiWcf.cs |  275 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 272 insertions(+), 3 deletions(-)

diff --git a/wcs/yunneiWCS/yunneiWCS/wcf/yunneiWcf.cs b/wcs/yunneiWCS/yunneiWCS/wcf/yunneiWcf.cs
index 214b050..cb25b19 100644
--- a/wcs/yunneiWCS/yunneiWCS/wcf/yunneiWcf.cs
+++ b/wcs/yunneiWCS/yunneiWCS/wcf/yunneiWcf.cs
@@ -903,6 +903,235 @@
             return msg;
         }
 
+        /// <summary>鏌ユ壘鍑哄叆搴撹褰曠粰MES [EditBy shaocx,2025-09-01]
+        /// 
+        /// </summary>
+        /// <param name="page">鍒嗛〉</param>
+        /// <returns></returns>
+        public resMsg<Wms_outInStockRecord_V2_Mes> findOutInStockRecord_V2_Mes(paging page, Wms_outInStockRecord_V2_Mes value)
+        {
+            resMsg<Wms_outInStockRecord_V2_Mes> msg = new resMsg<Wms_outInStockRecord_V2_Mes>();
+            msg.status = 400;
+            try
+            {
+                using (dbmodel mod = new dbmodel())
+                {
+                    string sql = "SELECT * FROM [LA20025].[dbo].[Wms_outInStockRecord_V2_Mes]  ";
+                    sql = sql + " WHERE 1=1 ";
+                    if (!string.IsNullOrEmpty(value.sourcePlace))//璧风偣
+                    {
+                        sql = sql + " and sourcePlace='" + value.sourcePlace + "' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.toPlace))//鐩爣鐐�
+                    {
+                        sql = sql + " and toPlace='" + value.toPlace + "' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.containerCode))//鎵樼洏鍙�
+                    {
+                        sql = sql + " and containerCode like'%" + value.containerCode + "%' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.materialCode))//鐗╂枡缂栧彿
+                    {
+                        sql = sql + " and materialCode like '%" + value.materialCode + "%'";
+                    }
+                    if (!string.IsNullOrEmpty(value.materialName))//鐗╂枡鍚嶇О
+                    {
+                        sql = sql + " and  materialName like '%" + value.materialName + "%' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.version))//鏈哄瀷
+                    {
+                        sql = sql + " and  version like '%" + value.version + "%' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.supplier))//渚涘簲鍟�
+                    {
+                        sql = sql + "  and  supplier like '%" + value.supplier + "%'";
+                    }
+                    if (value.isSendToMes != null)
+                    {
+                        sql = sql + " and isSendToMes = '" + value.isSendToMes + "' ";
+                    }
+                    //if (value.positionType == (byte)positionType.浣欐枡鍥炲簱)//鏄惁鏌ヨ浣欐枡
+                    //{
+                    //    sql = sql + " and  positionType =" + value.positionType;
+                    //}
+                    if (page.startDateTime != DateTime.Parse("1900-01-01 0:00:00") && page.startDateTime != DateTime.Parse("0001-01-01 0:00:00"))//璧峰鏃堕棿
+                    {
+                        sql = sql + " and CreateTime >'" + page.startDateTime + "'";
+                    }
+                    if (page.endDateTime != DateTime.Parse("1900-01-01 0:00:00") && page.endDateTime != DateTime.Parse("0001-01-01 0:00:00"))//鎴鏃堕棿
+                    {
+                        sql = sql + " and CreateTime <'" + page.endDateTime + "'";
+                    }
+
+                    sql = sql + " order by CreateTime desc";
+                    List<Wms_outInStockRecord_V2_Mes> dataList = mod.Database.SqlQuery<Wms_outInStockRecord_V2_Mes>(sql).ToList();
+
+                    if (dataList.Count > 0)
+                    {
+                        //msg.quantity = (int)dataList.Sum(x => x.quantity);
+                        msg.totalNum = dataList.Count;
+                        msg.dateAll = dataList;
+                        //鍒嗛〉璁$畻
+                        List<Wms_outInStockRecord_V2_Mes> fenyeRerult = new List<Wms_outInStockRecord_V2_Mes>();
+                        msg.status = 200;
+
+                        //鍋囧姣忛〉鏁伴噺 澶т簬鐩樼偣鏁版嵁
+                        if (page.pagesize > dataList.Count)
+                        {
+                            msg.date = dataList;
+                            msg.total = 1;
+                        }
+                        else
+                        {
+                            #region 鍒嗛〉璁$畻
+                            int a = page.pagesize;
+                            int b = page.pagenum;
+                            int c = (int)Math.Ceiling((double)dataList.Count / a);
+                            msg.total = c;
+                            int d = dataList.Count % a;
+                            int e = 0;
+                            int f = a * (b - 1);
+                            if (d != 0 && b == c)
+                            {
+                                e = d + f;
+                            }
+                            else
+                            {
+                                e = a + f;
+                            }
+                            for (int i = f; i < e; i++)
+                            {
+                                fenyeRerult.Add(dataList[i]);
+                            }
+
+                            msg.date = fenyeRerult;
+                            #endregion
+                        }
+
+                    }
+                    else
+                    {
+                        msg.status = 200;
+                        msg.msg = "鏌ユ壘鏁版嵁涓�0,璇锋洿鎹㈡煡璇㈡潯浠�";
+                    }
+
+                }
+            }
+            catch (Exception ex)
+            {
+                msg.msg = "鏌ヨ澶辫触";
+                WZ.Useful.Commons.LogTextHelper.WriteLine("IyunneiWcf", "findOutInStockRecord_V2_Mes", ex.ToString());
+            }
+
+            return msg;
+        }
+
+        /// <summary>鏌ユ壘鍑哄叆搴撹褰曟槑缁嗙粰MES [EditBy shaocx,2025-09-01]
+        /// 
+        /// </summary>
+        /// <param name="page">鍒嗛〉</param>
+        /// <returns></returns>
+        public resMsg<Wms_outInStockRecord_Details_V2_Mes> findOutInStockRecord_Details_V2_Mes_Page(paging page, Wms_outInStockRecord_Details_V2_Mes value)
+        {
+            resMsg<Wms_outInStockRecord_Details_V2_Mes> msg = new resMsg<Wms_outInStockRecord_Details_V2_Mes>();
+            msg.status = 400;
+            try
+            {
+                using (dbmodel mod = new dbmodel())
+                {
+                    string sql = "SELECT * FROM [LA20025].[dbo].[Wms_outInStockRecord_Details_V2_Mes]  ";
+                    sql = sql + " WHERE 1=1 ";
+
+                    if (!string.IsNullOrEmpty(value.containerCode))//鎵樼洏鍙�
+                    {
+                        sql = sql + " and containerCode like '%" + value.containerCode + "%'";
+                    }
+                    if (!string.IsNullOrEmpty(value.productCode))//鐗╂枡缂栧彿
+                    {
+                        sql = sql + " and productCode like '%" + value.productCode + "%'";
+                    }
+                    if (!string.IsNullOrEmpty(value.productName))//鐗╂枡鍚嶇О
+                    {
+                        sql = sql + " and  productName like '%" + value.productName + "%' ";
+                    }
+                    if (!string.IsNullOrEmpty(value.serialNumber))//娴佹按鍙�
+                    {
+                        sql = sql + " and  serialNumber like '%" + value.serialNumber + "%' ";
+                    }
+
+                    if (page.startDateTime != DateTime.Parse("1900-01-01 0:00:00") && page.startDateTime != DateTime.Parse("0001-01-01 0:00:00"))//璧峰鏃堕棿
+                    {
+                        sql = sql + " and CreateTime >'" + page.startDateTime + "'";
+                    }
+                    if (page.endDateTime != DateTime.Parse("1900-01-01 0:00:00") && page.endDateTime != DateTime.Parse("0001-01-01 0:00:00"))//鎴鏃堕棿
+                    {
+                        sql = sql + " and CreateTime <'" + page.endDateTime + "'";
+                    }
+
+                    sql = sql + " order by CreateTime desc";
+                    List<Wms_outInStockRecord_Details_V2_Mes> dataList = mod.Database.SqlQuery<Wms_outInStockRecord_Details_V2_Mes>(sql).ToList();
+
+                    if (dataList.Count > 0)
+                    {
+                        //msg.quantity = (int)dataList.Sum(x => x.quantity);
+                        msg.totalNum = dataList.Count;
+                        msg.dateAll = dataList;
+                        //鍒嗛〉璁$畻
+                        List<Wms_outInStockRecord_Details_V2_Mes> fenyeRerult = new List<Wms_outInStockRecord_Details_V2_Mes>();
+                        msg.status = 200;
+
+                        //鍋囧姣忛〉鏁伴噺 澶т簬鐩樼偣鏁版嵁
+                        if (page.pagesize > dataList.Count)
+                        {
+                            msg.date = dataList;
+                            msg.total = 1;
+                        }
+                        else
+                        {
+                            #region 鍒嗛〉璁$畻
+                            int a = page.pagesize;
+                            int b = page.pagenum;
+                            int c = (int)Math.Ceiling((double)dataList.Count / a);
+                            msg.total = c;
+                            int d = dataList.Count % a;
+                            int e = 0;
+                            int f = a * (b - 1);
+                            if (d != 0 && b == c)
+                            {
+                                e = d + f;
+                            }
+                            else
+                            {
+                                e = a + f;
+                            }
+                            for (int i = f; i < e; i++)
+                            {
+                                fenyeRerult.Add(dataList[i]);
+                            }
+
+                            msg.date = fenyeRerult;
+                            #endregion
+                        }
+
+                    }
+                    else
+                    {
+                        msg.status = 200;
+                        msg.msg = "鏌ユ壘鏁版嵁涓�0,璇锋洿鎹㈡煡璇㈡潯浠�";
+                    }
+
+                }
+            }
+            catch (Exception ex)
+            {
+                msg.msg = "鏌ヨ澶辫触";
+                WZ.Useful.Commons.LogTextHelper.WriteLine("IyunneiWcf", "Wms_outInStockRecord_Details_V2_Mes", ex.ToString());
+            }
+
+            return msg;
+        }
+
+
         /// <summary>鏌ユ壘鍏ュ簱鍗曟祦姘村彿
         /// 
         /// </summary>
@@ -934,6 +1163,41 @@
                     {
                         res.msg = "鏌ヤ笉鍏ュ簱鍗�";
                     }
+                }
+            }
+            catch (Exception)
+            {
+                res.msg = "鏌ヨ寮傚父";
+            }
+            return res;
+        }
+
+
+        /// <summary>鏌ユ壘鍑哄叆搴撹褰曟帹琛宮es璇︽儏
+        /// 
+        /// </summary>
+        /// <param name="inStockCode"></param>
+        /// <returns></returns>
+        public resMsg<Wms_outInStockRecord_Details_V2_Mes> findOutInStockRecord_Details_V2_Mes(long mainId)
+        {
+            resMsg<Wms_outInStockRecord_Details_V2_Mes> res = new resMsg<Wms_outInStockRecord_Details_V2_Mes>();
+            res.status = 400;
+            try
+            {
+                using (dbmodel mod = new dbmodel())
+                {
+
+                    List<Wms_outInStockRecord_Details_V2_Mes> instockList = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == mainId).ToList();
+                    if (instockList.Count > 0)
+                    {
+                        res.status = 200;
+                        res.date = instockList;
+                    }
+                    else
+                    {
+                        res.msg = "鏌ヤ笉鍒版槑缁�";
+                    }
+
                 }
             }
             catch (Exception)
@@ -2015,12 +2279,13 @@
                             mod.productStockList.Add(newList);
 
                         }
-
+                        List<productStockList> record_delteList = new List<productStockList>();
                         var realDeleteList = all_serialNumberList.Where(x => !now_serialNumberList.Contains(x)).ToList();
                         foreach (var item in deleteList)
                         {
                             if (realDeleteList.Contains(item.serialNumber))
                             {
+                                record_delteList.Add(item);
                                 //璁板綍鏃ュ織 [EditBy shaocx,2022-03-16]
                                 StockClearLog _StockClearLog = new StockClearLog()
                                 {
@@ -2042,7 +2307,7 @@
                                 mod.StockClearLog.Add(_StockClearLog);
                             }
                         }
-
+                        var preLog = "鏅�氬垹闄�";
                         if (taskId > 0)
                         {//璇存槑鏄� 鍑哄簱鍒嗘嫞 銆怑ditby shaocx,2022-03-02銆�
                             var task = mod.task.Where(x => x.taskId == taskId).FirstOrDefault();
@@ -2057,7 +2322,11 @@
                                 return msg;
                             }
                             task.taskStatus = (int)taskStatus.鍒嗘嫞瀹屾垚;
+                            preLog = "浜哄伐鍒嗘嫞";
                         }
+
+                        OutInStockRecord_V2_MesHandler.AddRecordForPersonDelete(mod, OutInFlag.鍑哄簱, "浜哄伐鍒犻櫎搴撳瓨:" + preLog,
+                            record_delteList, modfiyStock, (currentStock != null ? currentStock.positionName : ""));//鍫嗗灈鏈轰换鍔″畬鎴愬悗鐨勫嚭搴�
 
                         int res = mod.SaveChanges();
                         if (res > 0)
@@ -2828,7 +3097,7 @@
             {
                 using (dbmodel mod = new dbmodel())
                 {
-                    var b_result = MyExtend.deleteProduct(true, user, mod, positionName, null, ref res);
+                    var b_result = MyExtend.deleteProduct(true, user, mod, positionName, null, ref res, "浜哄伐鐩存帴鍒犻櫎搴撳瓨");
                     if (b_result == false)
                     {
                         return FunctionReturnEntity<bool>.Fail("鍒犻櫎澶辫触:" + res);

--
Gitblit v1.9.3