From 5de35354e8dfcb4933350d0d1b645d400bcf23ab Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期二, 22 七月 2025 15:30:09 +0800
Subject: [PATCH] 优化多组织

---
 MES.Service/service/QC/RKJService.cs |  202 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 130 insertions(+), 72 deletions(-)

diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs
index 4963929..56e9ef3 100644
--- a/MES.Service/service/QC/RKJService.cs
+++ b/MES.Service/service/QC/RKJService.cs
@@ -54,13 +54,10 @@
 
 
     //鑾峰彇宸ュ崟鍙�
-    public List<RKJDaa001> GetDaa001s(string lineNo)
+    public List<RkDaa002> GetDaa001s(string lineNo)
     {
         var db = SqlSugarHelper.GetInstance();
-        return db.Queryable<RKJDaa001>()
-            .Where(t => t.LineNo == lineNo)
-            .OrderBy(t => t.BillNo, OrderByType.Desc)
-            .ToList();
+        return null;
     }
 
     //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁�
@@ -76,29 +73,28 @@
         var qsItemOqcItems = db
             .Queryable<MesQualityStandard>()
             .Where(b => b.QsType == "3"
-                        && b.ItemNo == itemNo).Select(
-                b => new QsItemOqcItem
-                {
-                    ProjName = b.ProjName,
-                    ItemMod = b.ItemMod,
-                    InspectionMethod = b.InspectionMethod,
-                    UsingInstruments = b.UsingInstruments,
-                    LevelNum = SqlFunc.IsNull(
-                        SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
-                        b.InspectionLevel),
-                    MaxValue = b.MaxValue,
-                    StandardValue = b.StandardValue,
-                    MinValue = b.MinValue,
-                    Notes = b.Notes,
-                    FcheckLevel = b.FcheckLevel,
-                    FacLevel = b.FacLevel,
-                    QsCode = b.QsCode,
-                    QsName = b.QsName,
-                    Result = "鏈娴�",
-                    isCheck = 0,
-                    Picture = b.Picture,
-                    Picturename = b.Picturename
-                }).ToList();
+                        && b.ItemNo == itemNo).Select(b => new QsItemOqcItem
+            {
+                ProjName = b.ProjName,
+                ItemMod = b.ItemMod,
+                InspectionMethod = b.InspectionMethod,
+                UsingInstruments = b.UsingInstruments,
+                LevelNum = SqlFunc.IsNull(
+                    SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
+                    b.InspectionLevel),
+                MaxValue = b.MaxValue,
+                StandardValue = b.StandardValue,
+                MinValue = b.MinValue,
+                Notes = b.Notes,
+                FcheckLevel = b.FcheckLevel,
+                FacLevel = b.FacLevel,
+                QsCode = b.QsCode,
+                QsName = b.QsName,
+                Result = "鏈娴�",
+                isCheck = 0,
+                Picture = b.Picture,
+                Picturename = b.Picturename
+            }).ToList();
 
         qsItemOqcItems.ForEach(item =>
         {
@@ -229,10 +225,17 @@
         {
             var commit = 0;
 
-            xj.CreateBy = userNo;
-            xj.CreateDate = DateTime.Now;
+            // xj.CreateBy = userNo;
+            // xj.CreateDate = DateTime.Now;
 
-            var pid = db.Insertable(xj).ExecuteReturnIdentity();
+            var qsItemOqcReq = db.Queryable<QsItemOqcReq>()
+                .Where(s => s.Id == xj.Id)
+                .First();
+
+            decimal? pid = 0;
+            pid = qsItemOqcReq == null
+                ? db.Insertable(xj).ExecuteReturnIdentity()
+                : qsItemOqcReq.Id;
 
             xj.Id = pid;
 
@@ -354,8 +357,8 @@
             result = 1;
         else if (count - passCount < QsItemOqcItem.FreQty) result = 1;
 
-        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
-            db =>
+        var useTransactionWithOracle =
+            SqlSugarHelper.UseTransactionWithOracle(db =>
             {
                 var commit = 0;
                 commit += db.Updateable<QsItemOqcItem>()
@@ -401,9 +404,24 @@
                 .ExecuteCommand();
         });
 
-        if (FcheckResu.Equals("涓嶅悎鏍�"))
-            //鑷姩鐢熸垚鍏ュ簱妫�寮傚父瀵圭瓥
-            saveDetect02(detail.Gid, detail.CreateBy);
+        //if (FcheckResu.Equals("涓嶅悎鏍�"))
+        //    //鑷姩鐢熸垚鍏ュ簱妫�寮傚父瀵圭瓥
+        //    saveDetect02(detail.Gid, detail.CreateBy);
+
+
+        var oqcReq = db.Queryable<QsItemOqcReq>()
+            .Where(s => s.Id == detail.Gid)
+            .Select<string?>(s => s.BillNo)
+            .First();
+
+        if (oqcReq != null)
+            //FSTATUS
+            //CHECK_RES
+            db.Updateable<MesInvItemIns>()
+                .SetColumns(s => s.Fstatus == 1)
+                .SetColumns(s => s.CheckRes == FcheckResu)
+                .Where(s => s.BillNo == oqcReq)
+                .ExecuteCommand();
 
         return useTransactionWithOracle;
     }
@@ -418,14 +436,14 @@
         var mesInvItemIns = db.Queryable<MesInvItemIns>()
             .Single(s => s.BillNo == qsItemOqcReq.BillNo);
 
-        var mesSchemeResult = db.Queryable<MesSchemeResult>()
-            .Single(s => s.BillNo == mesInvItemIns.CbillNo);
+        var mesSchemeResult = db.Queryable<Womdaa>()
+            .Single(s => s.Daa001 == mesInvItemIns.CbillNo);
 
         var entity = new MesQaItemsDetect02();
-        entity.ItemNo = mesSchemeResult.BoardItem;
-        entity.BoardItem = mesSchemeResult.BoardItem;
-        entity.LineNo = mesSchemeResult.LineNo;
-        entity.Aufnr = mesSchemeResult.TaskNo;
+        // entity.ItemNo = mesSchemeResult.BoardItem;
+        // entity.BoardItem = mesSchemeResult.BoardItem;
+        entity.LineNo = mesSchemeResult.Daa015;
+        // entity.Aufnr = mesSchemeResult.TaskNo;
         entity.ReleaseNo = qsItemOqcReq.ReleaseNo;
         entity.LotNo = qsItemOqcReq.BillNo;
         entity.FcheckDate = qsItemOqcReq.FcheckDate;
@@ -453,52 +471,68 @@
     }
 
 
-    public List<QsItemOqcReq> getPage(XJPageResult queryObj)
+    public (List<QsItemOqcReq> items, int TotalCount) getPage(
+        XJPageResult queryObj)
     {
         var db = SqlSugarHelper.GetInstance();
 
-        var id = Convert.ToDecimal(queryObj.id);
+        var totalCount = 0;
 
-        string[]? lineNo = null;
-
-        if (StringUtil.IsNotNullOrEmpty(queryObj.createUser))
-            lineNo = _baseService.getUserLineNo(queryObj.createUser);
-
-        return db.Queryable<QsItemOqcReq, RKJDaa001>((a, b) =>
-                new JoinQueryInfos(JoinType.Left, a.BillNo == b.BillNo))
-            .WhereIF(lineNo != null && lineNo.Length > 0,
-                (a, b) => lineNo.Contains(b.LineNo))
+        var qsItemOqcReqs = db
+            .Queryable<QsItemOqcReq, MesItems, MesInvItemIns, Womdaa,
+                MesInvTransaction, RKJDaa001,
+                MesLine>((a, b, c, da, ca, m, l) => new JoinQueryInfos(
+                JoinType.Left, a.ItemNo == b.Id.ToString(),
+                JoinType.Left, a.BillNo == c.BillNo,
+                JoinType.Left, da.Daa001 == c.RbillNo,
+                JoinType.Left, c.TransctionNo == ca.TransactionNo.ToString()
+                               && c.Company == ca.Company
+                               && c.Factory == ca.Factory,
+                JoinType.Left, m.ItemInId == c.Id,
+                JoinType.Left, l.LineNo == da.Daa015
+            ))
+            //.WhereIF(!"PL017".Equals(queryObj.createUser),
+            //    (a, b, c, da, ca, m) => lineNo.Contains(da.Daa015))
+            .WhereIF(!string.IsNullOrEmpty(queryObj.id),
+                (a, b, c, da, ca, m, l) => a.Id.ToString() == queryObj.id)
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                 "鏈畬鎴�".Equals(queryObj.result),
-                (a, b) => a.FcheckResu == null)
+                (a, b, c, da, ca, m, l) => a.FcheckResu == null)
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                 !"鏈畬鎴�".Equals(queryObj.result),
-                (a, b) => a.FcheckResu != null)
-            .WhereIF(id > 0, (a, b) => a.Id == id)
-            .Select((a, b) => new QsItemOqcReq
+                (a, b, c, da, ca, m, l) => a.FcheckResu != null)
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.SearchValue),
+                (a, b, c, da, ca, m, l) =>
+                    a.ReleaseNo.Contains(queryObj.SearchValue)
+                    || b.ItemNo.Contains(queryObj.SearchValue)
+            )
+            .Select((a, b, c, da, ca, m, l) => new QsItemOqcReq
             {
-                Id = a.Id,
-                ReleaseNo = a.ReleaseNo,
                 BillNo = a.BillNo,
-                LineName = b.LineNo,
-                Quantity = b.Quantity,
-                CreateBy = a.CreateBy,
+                Remarks = a.Remarks,
+                Id = a.Id,
                 CreateDate = a.CreateDate,
-                ItemNo = a.ItemNo,
-                Mocode = b.Mocode,
-                BoardModel = b.BoardModel,
-                TaskNo = b.TaskNo,
+                CreateBy = a.CreateBy,
                 FcheckResu = a.FcheckResu,
+                ItemNo = b.ItemNo,
                 FcheckBy = a.FcheckBy,
                 FcheckDate = a.FcheckDate,
-                MoidNum = a.MoidNum,
-                BoardName = b.BoardName,
-                ColorName = b.ColorName,
-                Remarks = a.Remarks
-            }).OrderBy(a => a.CreateDate, OrderByType.Desc)
-            .ToPageList(queryObj.PageIndex, queryObj.Limit);
+                ReleaseNo = a.ReleaseNo,
+                ItemName = b.ItemName,
+                ItemModel = b.ItemModel,
+                TaskNo = c.RbillNo,
+                //CbillNo = c.CbillNo,  
+                //LineNo = da.Daa015,
+                LineNo = l.LineName,
+                Quantity = m.Quantity
+            })
+            .OrderBy(a => a.CreateDate, OrderByType.Desc)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (qsItemOqcReqs, totalCount);
     }
 
     //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛�
@@ -651,4 +685,28 @@
 
         return Convert.ToInt32(rkjDto.gid);
     }
+
+    public List<MesInvItemInCDetails2> GetRKDetail(RKJDto rkjDto)
+    {
+        //鐗╂枡鏉$爜鍜岀墿鏂欑紪鐮侊紝鏁伴噺   MES_INV_ITEM_IN_C_DETAILS2
+        var db = SqlSugarHelper.GetInstance();
+
+        var oqcReq = db.Queryable<QsItemOqcReq>()
+            .Where(s => s.Id == rkjDto.gid)
+            .Select<string?>(s => s.BillNo)
+            .First();
+
+        if (oqcReq != null)
+        {
+            //FSTATUS
+            //CHECK_RES
+            var mesInvItemIns = db.Queryable<MesInvItemIns>()
+                .Where(s => s.BillNo == oqcReq).First();
+
+            return db.Queryable<MesInvItemInCDetails2>()
+                .Where(a => a.ItemInId == mesInvItemIns.Id).ToList();
+        }
+
+        return new List<MesInvItemInCDetails2>();
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3