From 90e42f99c2b3a4b8226e9a6951c2b7b9a968df10 Mon Sep 17 00:00:00 2001
From: zyf <1071160500@qq.com>
Date: 星期五, 22 八月 2025 14:38:46 +0800
Subject: [PATCH] 入库检新增销售订单号

---
 MES.Service/service/QC/RKJService.cs |  122 ++++++++++++++++++++++++++--------------
 1 files changed, 78 insertions(+), 44 deletions(-)

diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs
index cb96dae..886d05b 100644
--- a/MES.Service/service/QC/RKJService.cs
+++ b/MES.Service/service/QC/RKJService.cs
@@ -70,7 +70,7 @@
         // 鍙傛暟楠岃瘉
         if (string.IsNullOrWhiteSpace(itemNo))
             throw new ArgumentException("鐗╂枡缂栧彿涓嶈兘涓虹┖", nameof(itemNo));
-        
+
         if (quantity <= 0)
             throw new ArgumentException("鏁伴噺蹇呴』澶т簬0", nameof(quantity));
 
@@ -81,7 +81,7 @@
             .Where(s => s.QsType == "3" && s.ItemNo == itemNo && s.Fsubmit == 1)
             .Count();
 
-        if (count <= 0) 
+        if (count <= 0)
             return [];
 
         // 鑾峰彇璐ㄩ噺鏍囧噯
@@ -132,10 +132,12 @@
         return qsItemOqcItems;
     }
 
-    private void ProcessQualityItem(ISqlSugarClient db, QsItemOqcItem item, decimal quantity)
+    private void ProcessQualityItem(ISqlSugarClient db, QsItemOqcItem item,
+        decimal quantity)
     {
         // 楠岃瘉蹇呰瀛楁
-        if (string.IsNullOrWhiteSpace(item.FcheckLevel) || string.IsNullOrWhiteSpace(item.QsCode))
+        if (string.IsNullOrWhiteSpace(item.FcheckLevel) ||
+            string.IsNullOrWhiteSpace(item.QsCode))
         {
             item.LevelNum = 1;
             item.FreQty = 0;
@@ -144,12 +146,14 @@
 
         // 鑾峰彇妫�楠岀骇鍒搴旂殑鏁版嵁搴撳瓧娈�
         var levelField = GetLevelField(item.FcheckLevel);
-        
+
         // 浣跨敤鍙傛暟鍖栨煡璇㈤槻姝QL娉ㄥ叆
-        var sql = $"SELECT {levelField} FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID = A.ID " +
-                  $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND B.LOT_FROM <= @Quantity AND @Quantity <= B.LOT_TO";
-        
-        var aqlResult = db.Ado.SqlQuerySingle<string>(sql, new { QsCode = item.QsCode, Quantity = quantity });
+        var sql =
+            $"SELECT {levelField} FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID = A.ID " +
+            $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND B.LOT_FROM <= @Quantity AND @Quantity <= B.LOT_TO";
+
+        var aqlResult = db.Ado.SqlQuerySingle<string>(sql,
+            new { QsCode = item.QsCode, Quantity = quantity });
 
         if (string.IsNullOrWhiteSpace(aqlResult))
         {
@@ -162,17 +166,19 @@
         var facLevelValue = ExtractSubstring(item.FacLevel ?? "", '(', ')');
         if (string.IsNullOrWhiteSpace(facLevelValue))
         {
-            item.LevelNum = decimal.TryParse(aqlResult, out var level) ? level : 1;
+            item.LevelNum =
+                decimal.TryParse(aqlResult, out var level) ? level : 1;
             item.FreQty = 0;
             return;
         }
 
         // 鑾峰彇鏍锋湰澶у皬鍜岀粨鏋�
-        var resultSql = $"SELECT FSAMPLE_SIZE_WORD, {facLevelValue} as Result FROM MES_QM_AQL1 A " +
-                       $"LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID = A.ID " +
-                       $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND SAMPLE_SIZE_WORD = @LevelValue";
-        
-        var resultQuery = db.Ado.SqlQuerySingle<ResultClass>(resultSql, 
+        var resultSql =
+            $"SELECT FSAMPLE_SIZE_WORD, {facLevelValue} as Result FROM MES_QM_AQL1 A " +
+            $"LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID = A.ID " +
+            $"WHERE A.SAMPLE_SIZE_NO = @QsCode AND SAMPLE_SIZE_WORD = @LevelValue";
+
+        var resultQuery = db.Ado.SqlQuerySingle<ResultClass>(resultSql,
             new { QsCode = item.QsCode, LevelValue = aqlResult });
 
         if (resultQuery != null)
@@ -195,7 +201,7 @@
         return checkLevel switch
         {
             var s when s.Contains("S1") => "B.FLEVEL_S1",
-            var s when s.Contains("S2") => "B.FLEVEL_S2", 
+            var s when s.Contains("S2") => "B.FLEVEL_S2",
             var s when s.Contains("S3") => "B.FLEVEL_S3",
             var s when s.Contains("S4") => "B.FLEVEL_S4",
             var s when s.Contains("(I)") => "B.FLEVEL_I",
@@ -409,8 +415,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>()
@@ -508,34 +514,42 @@
     }
 
 
-    public (List<QsItemOqcReq> items, int TotalCount) GetPage(XJPageResult queryObj)
+    public (List<QsItemOqcReq> items, int TotalCount) GetPage(
+        XJPageResult queryObj)
     {
         var db = SqlSugarHelper.GetInstance();
         var totalCount = 0;
-        
 
-        var query = db.Queryable<QsItemOqcReq, MesItems, Womdaa,MesLine,SysUser>((a, b, da,c,us) =>
-            new JoinQueryInfos(
-                JoinType.Left, a.ItemNo == b.ItemNo,       // 鍏宠仈鐗╂枡淇℃伅
-                JoinType.Left, a.BillNo == da.Daa001,       // 鍏宠仈宸ュ崟淇℃伅
-                JoinType.Left, da.Daa015 == c.LineNo,        // 鍏宠仈宸ュ崟淇℃伅
-                JoinType.Left, us.Fcode == a.CreateBy         // 鍏宠仈宸ュ崟淇℃伅
-            ))
+
+        var query = db
+            .Queryable<QsItemOqcReq, MesItems, Womdaa, MesLine, SysUser,Womcaa>((a, b,
+                    da, c, us, ca) =>
+                new JoinQueryInfos(
+                    JoinType.Left, a.ItemNo == b.ItemNo, // 鍏宠仈鐗╂枡淇℃伅
+                    JoinType.Left, a.BillNo == da.Daa001, // 鍏宠仈宸ュ崟淇℃伅
+                    JoinType.Left, da.Daa021 == ca.Caa020,//浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
+                    JoinType.Left, da.Daa015 == c.LineNo, // 鍏宠仈宸ュ崟淇℃伅
+                    JoinType.Left, us.Fcode == a.CreateBy // 鍏宠仈宸ュ崟淇℃伅
+                ))
             // 鐢ㄦ埛绾夸綋杩囨护鏉′欢
             //.WhereIF(lineNo != null && lineNo.Length > 0 && !"PL017".Equals(queryObj.createUser),
             //    (a, b, da) => lineNo.Contains(da.Daa015))
             // ID绮剧‘鏌ヨ
             .WhereIF(!string.IsNullOrEmpty(queryObj.id),
-                (a, b, da,c,us) => a.Id.ToString() == queryObj.id)
+                (a, b, da, c, us) => a.Id.ToString() == queryObj.id)
             // 瀹屾垚鐘舵�佽繃婊�
-            .WhereIF("鏈畬鎴�".Equals(queryObj.result), (a, b, da,c,us) => a.FcheckResu == null)
-            .WhereIF(!"鏈畬鎴�".Equals(queryObj.result), (a, b, da,c,us) => a.FcheckResu != null)
+            .WhereIF("鏈畬鎴�".Equals(queryObj.result),
+                (a, b, da, c, us) => a.Fsubmit == null || a.Fsubmit == 0)
+            .WhereIF(!"鏈畬鎴�".Equals(queryObj.result),
+                (a, b, da, c, us) => a.Fsubmit == 1)
             // 鎼滅储鏉′欢锛堢墿鏂欏悕绉�/缂栧彿锛�
             .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
-                (a, b, da,c,us) => b.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
-                                   a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+                (a, b, da, c, us) =>
+                    b.ItemName.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
             // 鏌ヨ瀛楁
-            .Select((a, b, da,c,us) => new QsItemOqcReq
+            .Select((a, b, da, c, us, ca) => new QsItemOqcReq
             {
                 Id = a.Id,
                 BillNo = a.BillNo,
@@ -550,16 +564,18 @@
                 FcheckDate = a.FcheckDate,
                 ReleaseNo = a.ReleaseNo,
                 Remarks = a.Remarks,
-                Daa015 = da.Daa015,  // 宸ュ崟绾夸綋
+                Daa015 = da.Daa015, // 宸ュ崟绾夸綋
                 Fsubmit = a.Fsubmit,
                 Quantity = da.Daa008,
-                LineNo = c.LineName
+                LineNo = c.LineName,
+                SaleOederNo = ca.Caa015
             })
             // 鎺掑簭
             .OrderBy(a => a.CreateDate, OrderByType.Desc);
 
         // 鍒嗛〉鏌ヨ
-        var result = query.ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+        var result = query.ToPageList(queryObj.PageIndex, queryObj.Limit,
+            ref totalCount);
 
         return (result, totalCount);
     }
@@ -585,7 +601,7 @@
 
         return withOracle;
     }
-    
+
     public int saveNotesPid(RKJDto dto)
     {
         return SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -705,25 +721,26 @@
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             var commit = 0;
-            
+
             // 1. 娓呯┖鐜版湁鐨勬楠岃缁嗚褰曪紙瀛欒〃锛�
             commit += db.Deleteable<QsItemOqcItemDetail>()
                 .Where(s => s.Gid == rkjDto.gid)
                 .ExecuteCommand();
-            
+
             // 2. 娓呯┖鐜版湁鐨勬楠岄」鐩褰曪紙瀛愯〃锛�
             commit += db.Deleteable<QsItemOqcItem>()
                 .Where(s => s.Pid == rkjDto.gid)
                 .ExecuteCommand();
-            
+
             // 3. 鎵归噺鎻掑叆items
             foreach (var item in items) item.Pid = rkjDto.gid;
             commit += db.Insertable(items).ExecuteCommand();
 
             // 4. 鑾峰彇闇�瑕佸鐞嗙殑妫�楠岄」鐩紙鍙煡璇㈠繀瑕佸瓧娈垫彁鍗囨�ц兘锛�
             var processItems = db.Queryable<QsItemOqcItem>()
-                .Where(s => s.Pid == rkjDto.gid && 
-                           s.MaxValue == null && s.StandardValue == null && s.MinValue == null)
+                .Where(s => s.Pid == rkjDto.gid &&
+                            s.MaxValue == null && s.StandardValue == null &&
+                            s.MinValue == null)
                 .Select(s => new { s.Id, s.LevelNum })
                 .ToList();
 
@@ -774,7 +791,8 @@
         });
     }
 
-    private int UpdateMainInspectionStatus(ISqlSugarClient db, decimal? gid, string userNo)
+    private int UpdateMainInspectionStatus(ISqlSugarClient db, decimal? gid,
+        string userNo)
     {
         // 妫�鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勬楠岄」鐩�
         var unfinishedCount = db.Queryable<QsItemOqcItem>()
@@ -822,7 +840,8 @@
         return updateResult;
     }
 
-    private void GenerateQualityIssueRecord(ISqlSugarClient db, decimal? gid, string userNo)
+    private void GenerateQualityIssueRecord(ISqlSugarClient db, decimal? gid,
+        string userNo)
     {
         try
         {
@@ -873,6 +892,21 @@
         }
     }
 
+    public int IqcQaSubmit(RKJDto dto)
+    {
+        SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+           return db.Updateable<QsItemOqcReq>()
+                .SetColumns(a => a.Fsubmit == 1)
+                .SetColumns(a => a.FsubmitBy == dto.userNo)
+                .SetColumns(a => a.FsubmitDate == DateTime.Now)
+                .Where(a => a.ReleaseNo == dto.releaseNo)
+                .ExecuteCommand();
+        });
+
+        return 0;
+    }
+
     // 澶囦唤锛氬師濮嬬増鏈殑saveItem鏂规硶
     public int saveItemOriginal(RKJDto rkjDto)
     {

--
Gitblit v1.9.3