From fa53abd5d374862c640da5310d0bd1bb641a0d5b Mon Sep 17 00:00:00 2001
From: zyf <1071160500@qq.com>
Date: 星期二, 26 八月 2025 19:15:29 +0800
Subject: [PATCH] 检验查询功能新增、检验根据车间显示单据

---
 MES.Service/service/QC/SJService.cs |   94 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 69 insertions(+), 25 deletions(-)

diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs
index c139b94..555ec39 100644
--- a/MES.Service/service/QC/SJService.cs
+++ b/MES.Service/service/QC/SJService.cs
@@ -48,7 +48,15 @@
         //if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
         //    lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
 
-        var data = db.Queryable<SJPageResult>()
+        var data = db.Queryable<SJPageResult, Womdaa, Womcaa, SysDepartment, MesUserDepartmentQc,MesItems> ((a,
+                    da,ca,d,dq,i) =>
+                new JoinQueryInfos(
+                    JoinType.Left, Convert.ToDecimal(a.Pbaid) == da.Id, // 鍏宠仈宸ュ崟淇℃伅
+                    JoinType.Left, da.Daa021 == ca.Caa020,//浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
+                    JoinType.Left, d.Departmentid == Convert.ToDecimal(da.Daa013),//鏌ヨ杞﹂棿
+                    JoinType.Left, dq.Departmentcode == d.Departmentcode,//鏌ヨ鐢ㄦ埛鏉冮檺
+                    JoinType.Left, i.Id == Convert.ToDecimal(da.Daa002)//鏌ヨ鐢ㄦ埛鏉冮檺
+                ))
             //.WhereIF(lineNo != null && lineNo.Length > 0,
             //    a => lineNo.Contains(a.line))
             .WhereIF(queryObj.Id != null, a => a.Id == queryObj.Id)
@@ -62,6 +70,43 @@
                 StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                 !"鏈畬鎴�".Equals(queryObj.Result),
                 a => a.FSubmit == "1")
+            //鍖归厤鏉冮檺
+            .WhereIF(!string.IsNullOrEmpty(queryObj.LoginUser),
+                (a, da, ca, d, dq) => dq.Usercode == queryObj.LoginUser)
+            //鍖归厤鎼滅储瀛楃涓�
+            .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
+                (a, da, ca, d, dq,i) =>
+                a.BillNo.ToLower().Contains(queryObj.SearchValue.ToLower())||
+                i.ItemName.ToLower() .Contains(queryObj.SearchValue.ToLower()) ||
+                ca.Caa015.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
+                i.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+            .Select((a, da, ca, d, dq) => new SJPageResult
+            {
+                Id = a.Id,
+                BillNo = a.BillNo,
+                StatusDate = a.StatusDate,
+                FName = a.FName,
+                Result = a.Result,
+                FSubmit = a.FSubmit,
+                FSubmitBy = a.FSubmitBy,
+                FSubmitDate = a.FSubmitDate,
+                MoidNum = a.MoidNum,
+                StatusUser = a.StatusUser,
+                Pbaid = a.Pbaid,
+                CreateTime = a.CreateTime,
+                Comments = a.Comments,
+                ItemMod = a.ItemMod,
+                ItemNo = a.ItemNo,
+                daa001 = a.daa001,
+                line = a.line,
+                Remarks = a.Remarks,
+                Daa003 = a.Daa003,
+                Daa004 = a.Daa004,
+                Daa008 = a.Daa008,
+                LineName = a.LineName,
+                SaleOrder = ca.Caa015,
+                DepartName = d.Departmentname
+            })
             .OrderBy(a => a.CreateTime, OrderByType.Desc);
         var items = data.ToPageList(queryObj.PageIndex, queryObj.Limit,ref totalCount);
 
@@ -136,15 +181,10 @@
     public List<QsItemIpiItem> getQSItems(decimal? pid, decimal? id)
     {
         var db = SqlSugarHelper.GetInstance();
-        var qsItemIpiItems = db
-            .Queryable<QsItemIpiItem>()
-            .WhereIF(pid > 0, a => a.Pid == pid)
-            .WhereIF(id > 0, a => a.Id == id).ToList();
+        var qsItemIpiItems = db.Queryable<QsItemIpiItem>().WhereIF(pid > 0, a => a.Pid == pid).WhereIF(id > 0, a => a.Id == id).ToList();
 
         var array = qsItemIpiItems.Select(s => s.Id).ToArray();
-        var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>()
-            .Where(s => array.Contains(s.Pid))
-            .GroupBy(s => s.Pid)
+        var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>().Where(s => array.Contains(s.Pid)).GroupBy(s => s.Pid)
             .Select(s => new
             {
                 s.Pid,
@@ -172,9 +212,7 @@
         });
 
         //浣跨敤linq琛ㄨ揪寮忚繃婊ゅ嚭鍥剧墖id涓嶄负绌虹殑鏁版嵁
-        var itemIpiItems =
-            qsItemIpiItems.Where(s => s.Picture is { Length: > 0 })
-                .ToList();
+        var itemIpiItems =qsItemIpiItems.Where(s => s.Picture is { Length: > 0 }).ToList();
         if (itemIpiItems.Count > 0)
             itemIpiItems.ForEach(s =>
             {
@@ -197,16 +235,14 @@
             db =>
             {
                 qsItemIpiReq.StatusDate = DateTime.Now;
-                var pid = db.Insertable(qsItemIpiReq)
-                    .ExecuteReturnIdentity();
+                var pid = db.Insertable(qsItemIpiReq).ExecuteReturnIdentity();
                 qsItemIpiReq.Id = pid;
 
                 item.gid = pid;
 
                 qsItemIpiItems.ForEach(s => s.Pid = pid);
 
-                return db.Insertable(qsItemIpiItems)
-                    .ExecuteCommand();
+                return db.Insertable(qsItemIpiItems).ExecuteCommand();
             });
         item.Items = getQSItems(qsItemIpiReq.Id, null);
 
@@ -235,22 +271,33 @@
 
     public QsItem SaveItem(QsItem item)
     {
+        var db = SqlSugarHelper.GetInstance();
+
+        var del = db.Deleteable<QsItemIpiItem>()
+            .Where(s=>s.Pid == item.gid)
+            .ExecuteCommand();
+
+        //QsItemIpiItemDetail
+        var del1 = db.Deleteable<QsItemIpiItemDetail>()
+            .Where(s => s.Gid == item.gid)
+            .ExecuteCommand();
+
         var qsItemIpiItems = item.Items;
         SqlSugarHelper.UseTransactionWithOracle(
             db =>
             {
                 qsItemIpiItems.ForEach(s => s.Pid = item.gid);
-
-                return db.Insertable(qsItemIpiItems)
-                    .ExecuteCommand();
+                return db.Insertable(qsItemIpiItems).ExecuteCommand();
             });
         item.Items = getQSItems(item.gid, null);
 
         //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸
         item.Items.ForEach(s =>
         {
-            if (s.MaxValue != null || s.StandardValue != null ||
-                s.MinValue != null) return;
+            if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null)
+            {
+                return;
+            }
             var detail = new QsItemIpiItemDetail();
             detail.Pid = s.Id;
             detail.Gid = item.gid;
@@ -282,7 +329,6 @@
                 item.CreateDate = DateTime.Now;
                 result.Add(item);
             }
-
             return db.Insertable(result).ExecuteCommand();
         });
 
@@ -434,8 +480,7 @@
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<QsItemIpiItem>()
-                .SetColumns(it =>
-                    it.Notes == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .SetColumns(it =>it.Notes == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
                 .Where(it => it.Id == dto.pid)
                 .ExecuteCommand();
         });
@@ -447,8 +492,7 @@
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<QsItemIpiItemDetail>()
-                .SetColumns(it =>
-                    it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .SetColumns(it =>it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
                 .Where(it => it.Id == dto.id)
                 .ExecuteCommand();
         });

--
Gitblit v1.9.3