From a619299816f2f632c7c6ba3a1bb869e2c212797d Mon Sep 17 00:00:00 2001
From: fcx <2246384483@qq.com>
Date: 星期五, 19 十二月 2025 14:12:33 +0800
Subject: [PATCH] 对添加巡检单物料编码进行去重

---
 StandardPda/MES.Service/service/QC/SJService.cs |  150 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 129 insertions(+), 21 deletions(-)

diff --git a/StandardPda/MES.Service/service/QC/SJService.cs b/StandardPda/MES.Service/service/QC/SJService.cs
index acd61fa..cf35419 100644
--- a/StandardPda/MES.Service/service/QC/SJService.cs
+++ b/StandardPda/MES.Service/service/QC/SJService.cs
@@ -4,6 +4,7 @@
 using MES.Service.util;
 using SqlSugar;
 using System.Data;
+using System.Runtime.InteropServices.JavaScript;
 
 namespace MES.Service.service.QC;
 
@@ -74,16 +75,110 @@
     //    return (data, totalCount);
     //}
 
-    public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
+    //public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult queryObj)
+    //{
+    //    var db = SqlSugarHelper.GetInstance();
+
+    //    string[]? lineNo = null;
+
+    //    // if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
+    //    //     lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
+
+    //    var totalCount = 0;
+    //    string searchValue = queryObj.searchValue?.Trim();
+
+    //    // ========= 鏋勫缓鍩虹 query =========
+    //    var query = db.Queryable<SJPageResult>()
+    //        .WhereIF(lineNo != null && lineNo.Length > 0,
+    //            a => lineNo.Contains(a.line))
+    //        .WhereIF(queryObj.Id != null,
+    //            a => a.Id == queryObj.Id)
+    //        .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo),
+    //            a => a.BillNo == queryObj.BillNo)
+    //        // 鏈畬鎴�
+    //        .WhereIF(
+    //            StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+    //            "鏈畬鎴�".Equals(queryObj.Result),
+    //            a => a.FSubmit == 0 || a.FSubmit == null)
+    //        // 宸插畬鎴�
+    //        .WhereIF(
+    //            StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+    //            !"鏈畬鎴�".Equals(queryObj.Result),
+    //            a => a.FSubmit == 1);
+
+    //    // ========= SearchValue 鍒ゆ柇 =========
+
+    //    // SearchValue 涓虹┖锛氳繑鍥炲叏閮�
+    //    if (string.IsNullOrWhiteSpace(searchValue))
+    //    {
+    //        var allData = query
+    //            .OrderBy(a => a.BillNo, OrderByType.Desc)
+    //            .ToPageList(
+    //                Math.Max(queryObj.PageIndex, 1),
+    //                Math.Max(queryObj.Limit, 1),
+    //                ref totalCount
+    //            );
+
+    //        return (allData, totalCount);
+    //    }
+
+    //    // SearchValue 涓嶄负绌猴細妯$硦鏌� BILL_NO / ITEM_NO
+    //    query = query.Where(a =>
+    //        SqlFunc.Like(SqlFunc.Trim(a.BillNo).ToLower(), $"%{searchValue.ToLower()}%") ||
+    //        SqlFunc.Like(SqlFunc.Trim(a.ItemNo).ToLower(), $"%{searchValue.ToLower()}%")
+    //    );
+
+    //    // ========= 鎵ц鍒嗛〉 =========
+    //    var data = query
+    //        .OrderBy(a => a.BillNo, OrderByType.Desc)
+    //        .ToPageList(
+    //            Math.Max(queryObj.PageIndex, 1),
+    //            Math.Max(queryObj.Limit, 1),
+    //            ref totalCount
+    //        );
+
+    //    return (data, totalCount);
+    //}
+
+
+
+    public (List<SJPageResult> item, int TotalCount) getPage(SJPageResult2 queryObj)
     {
         var db = SqlSugarHelper.GetInstance();
-        int totalCount = 0;
 
+        string[]? lineNo = null;
+
+        // if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
+        //     lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
+
+        var totalCount = 0;
         string searchValue = queryObj.searchValue?.Trim();
 
-        var query = db.Queryable<SJPageResult>();
+        // 鑾峰彇鎼滅储閫夐」绱㈠紩 (0:椤圭洰, 1:绾夸綋, 2:宸ュ崟鍙�, 3:鐗╂枡鍙�, 4:鐗╂枡鍚�)
+        int selectedIndex = queryObj.selectedIndex ?? 0;
 
-        // 1锔忊儯 濡傛灉 SearchValue 涓虹┖ 鈫� 鏌ヨ鍏ㄩ儴
+        // ========= 鏋勫缓鍩虹 query =========
+        var query = db.Queryable<SJPageResult>()
+            .WhereIF(lineNo != null && lineNo.Length > 0,
+                a => lineNo.Contains(a.line))
+            .WhereIF(queryObj.Id != null,
+                a => a.Id == queryObj.Id)
+            .WhereIF(StringUtil.IsNotNullOrEmpty(queryObj.BillNo),
+                a => a.BillNo == queryObj.BillNo)
+            // 鏈畬鎴�
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+                "鏈畬鎴�".Equals(queryObj.Result),
+                a => a.FSubmit == 0 || a.FSubmit == null)
+            // 宸插畬鎴�
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+                !"鏈畬鎴�".Equals(queryObj.Result),
+                a => a.FSubmit == 1);
+
+        // ========= SearchValue 鍒ゆ柇 =========
+
+        // SearchValue 涓虹┖锛氳繑鍥炲叏閮�
         if (string.IsNullOrWhiteSpace(searchValue))
         {
             var allData = query
@@ -91,32 +186,45 @@
                 .ToPageList(
                     Math.Max(queryObj.PageIndex, 1),
                     Math.Max(queryObj.Limit, 1),
-                    ref totalCount);
+                    ref totalCount
+                );
 
             return (allData, totalCount);
         }
 
-        // 2锔忊儯 SearchValue 闈炵┖ 鈫� 妯$硦鍖归厤 BILL_NO 鎴� ITEM_NO
-        query = query.Where(a =>
-            SqlFunc.Like(SqlFunc.Trim(a.BillNo).ToLower(), $"%{searchValue.ToLower()}%") ||
-            SqlFunc.Like(SqlFunc.Trim(a.ItemNo).ToLower(), $"%{searchValue.ToLower()}%")
-        );
+        // SearchValue 涓嶄负绌猴細鏍规嵁selectedIndex杩涜涓嶅悓瀛楁鐨勬ā绯婃煡璇�
+        switch (queryObj.selectedIndex)
+        {
+            case 2: // 宸ュ崟鍙�
+                query = query.Where(a => SqlFunc.Like(a.daa001.ToLower(), $"%{searchValue.ToLower()}%"));
+                break;
+            case 3: // 鐗╂枡鍙�
+                query = query.Where(a => SqlFunc.Like(a.ItemNo.ToLower(), $"%{searchValue.ToLower()}%"));
+                break;
+            case 4: // 鐗╂枡鍚嶇О
+                query = query.Where(a => SqlFunc.Like(a.Daa003.ToLower(), $"%{searchValue.ToLower()}%"));
+                break;
+            case 0: // 椤圭洰缂栫爜
+                query = query.Where(a => SqlFunc.Like(a.PROJECT_CODE.ToLower(), $"%{searchValue.ToLower()}%"));
+                break;
+            case 1: // 绾夸綋
+                query = query.Where(a => SqlFunc.Like(a.line.ToLower(), $"%{searchValue.ToLower()}%"));
+                break;
+            default:
+                return (new List<SJPageResult>(), 0);
+        }
 
+        // ========= 鎵ц鍒嗛〉 =========
         var data = query
             .OrderBy(a => a.BillNo, OrderByType.Desc)
             .ToPageList(
                 Math.Max(queryObj.PageIndex, 1),
                 Math.Max(queryObj.Limit, 1),
-                ref totalCount);
-
-        // 3锔忊儯 濡傛灉娌℃湁鍖归厤鏁版嵁 鈫� 杩斿洖绌哄垪琛�
-        if (totalCount == 0)
-            return (new List<SJPageResult>(), 0);
+                ref totalCount
+            );
 
         return (data, totalCount);
     }
-
-
 
 
 
@@ -185,7 +293,8 @@
                     Picture = b.Picture,
                     Picturename = b.Picturename,
                     result = "鏈娴�",
-                    isCheck = 0,UP_FILE=b.UP_FILE
+                    isCheck = 0,
+                    UP_FILE=b.UP_FILE
                 }).ToList();
     }
 
@@ -281,7 +390,7 @@
         });
 
         item.Items = getQSItems(qsItemIpiReq.Id, null);
-        var sjPageResult = new SJPageResult
+        var sjPageResult = new SJPageResult2
             { Id = item.From.Id, Limit = 1, PageIndex = 1 };
         var pageResult = getPage(sjPageResult);
         item.Result = pageResult.item[0];
@@ -305,7 +414,7 @@
 
             // 2. 鏌ユ壘 MesQa 瀵瑰簲涓昏〃ID锛堥�氳繃 item.ItemNo锛�
             var mesQa = db.Queryable<MesQa>()
-                .Where(q => q.ItemNo == item.ItemNo)
+                .Where(q => q.ItemNo == item.ItemNo && q.QsType== "1")
                 .Select(q => new { q.Id })
                 .First();
 
@@ -626,7 +735,6 @@
             SqlSugarHelper.UseTransactionWithOracle(db =>
             {
                 return db.Updateable<QsItemIpiReq>()
-                    .SetColumns(s => s.Fsubmit == 1)
                     .SetColumns(s => s.FsubmitBy == rkjDto.userNo)
                     .SetColumns(s => s.FsubmitDate == DateTime.Now)
                     .Where(s => s.Id == rkjDto.gid)

--
Gitblit v1.9.3