From a65e9ae75629e1d87d6f373f9bdcfac32ccf1fea Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期三, 17 九月 2025 13:14:16 +0800
Subject: [PATCH] SJ,XJ,RKJ

---
 MES.Service/service/QC/SJService.cs |   99 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 97 insertions(+), 2 deletions(-)

diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs
index db188ef..9445acb 100644
--- a/MES.Service/service/QC/SJService.cs
+++ b/MES.Service/service/QC/SJService.cs
@@ -52,15 +52,46 @@
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                 "鏈畬鎴�".Equals(queryObj.Result),
-                a => a.Result == queryObj.Result)
+                a => SqlFunc.IsNull(a.Fsubmit, "0") != "1")
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
                 !"鏈畬鎴�".Equals(queryObj.Result),
-                a => a.Result != "鏈畬鎴�")
+                a => a.Fsubmit == "1")
             .OrderBy(a => a.BillNo, OrderByType.Desc)
             .ToPageList(queryObj.PageIndex, queryObj.Limit);
 
         return data;
+    }
+
+    //鑾峰彇鎵�鏈夋暟鎹垎椤碉紙鎼哄甫鎬绘暟锛�
+    public (List<SJPageResult> data, int totalCount) getPageWithTotal(SJPageResult queryObj)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        string[]? lineNo = null;
+
+        if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
+            lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
+
+        int totalCount = 0;
+        var data = 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 => SqlFunc.IsNull(a.Fsubmit, "0") != "1")
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.Result) &&
+                !"鏈畬鎴�".Equals(queryObj.Result),
+                a => a.Fsubmit == "1")
+            .OrderBy(a => a.BillNo, OrderByType.Desc)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (data, totalCount);
     }
 
 
@@ -455,4 +486,68 @@
 
         return withOracle;
     }
+
+    public int SJQaSubmit(string userNo, decimal id)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            var commit = 0;
+
+            // 鎻愪氦棣栨鍗�
+            var sql = "update QS_ITEM_IPI_REQ set FSUBMIT=1, FSUBMIT_BY=:userNo, FSUBMIT_DATE=SYSDATE where ID=:id";
+            var parameters = new List<SugarParameter>
+            {
+                new(":userNo", userNo),
+                new(":id", id)
+            };
+            commit += db.Ado.ExecuteCommand(sql, parameters);
+
+            // 璇诲彇棣栨鍗曪紝鍙栫粨鏋滀笌璁″垝缂栧彿
+            var req = db.Queryable<QsItemIpiReq>().Single(s => s.Id == id);
+            if (req != null)
+            {
+                // 閫氳繃 PBAID 鎵惧埌 WOMDAA 鑾峰彇璁″垝缂栧彿 DAA001
+                var wom = db.Queryable<Womdaa>().Single(s => s.Id == req.Pbaid);
+                if (wom != null && !string.IsNullOrWhiteSpace(wom.Daa001))
+                {
+                    var resultText = req.IsPass == 1 ? "鍚堟牸" : "涓嶅悎鏍�";
+                    // 鏇存柊 WOMDAA锛氶妫�鏍囪涓庣粨鏋�
+                    commit += db.Updateable<Womdaa>()
+                        .SetColumns(w => w.Daa025 == "1")
+                        .SetColumns(w => w.Daa026 == resultText)
+                        .Where(w => w.Daa001 == wom.Daa001)
+                        .ExecuteCommand();
+                }
+            }
+
+            return commit;
+        });
+    }
+
+    public (int code, string message) GenUpdateSJ(decimal id, string no, string userNo)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        // 杈撳嚭鍙傛暟
+        var poResult = new SugarParameter("PO_RESULT", null, System.Data.DbType.Int32, System.Data.ParameterDirection.Output, 4000);
+        var poText = new SugarParameter("PO_TEXT", null, System.Data.DbType.String, System.Data.ParameterDirection.Output, 4000);
+
+        // 杈撳叆鍙傛暟 + 杈撳嚭鍙傛暟
+        var parameters = new List<SugarParameter>
+        {
+            new("P_ID", id, System.Data.DbType.Decimal, System.Data.ParameterDirection.Input),
+            new("P_NO", no ?? string.Empty, System.Data.DbType.String, System.Data.ParameterDirection.Input),
+            new("P_USER", userNo ?? string.Empty, System.Data.DbType.String, System.Data.ParameterDirection.Input),
+            poResult,
+            poText
+        };
+
+        // 涓庢潵鏂欐涓�鑷寸殑璋冪敤椋庢牸
+        db.Ado.ExecuteCommand(
+            "BEGIN PRC_GEN_UPDATE_SJ(:P_ID, :P_NO, :P_USER, :PO_RESULT, :PO_TEXT); END;",
+            parameters.ToArray());
+
+        var code = Convert.ToInt32(poResult.Value?.ToString() ?? "0");
+        var message = poText.Value?.ToString() ?? "";
+        return (code, message);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3