From 3a23f941956f3a7b800a66719c64e550ba11f226 Mon Sep 17 00:00:00 2001
From: xwt <2740516069@qq.com>
Date: 星期四, 18 九月 2025 22:59:55 +0800
Subject: [PATCH] SJ,XJ,RKJ

---
 MESApplication/Controllers/QC/XJController.cs  |   92 +++---
 MES.Service/service/QC/XJService.cs            |  125 +++-----
 MESApplication/Controllers/QC/SJController.cs  |   42 ---
 MES.Service/service/QC/SJService.cs            |   66 ----
 MESApplication/Controllers/QC/RKJController.cs |  107 ++++---
 MES.Service/Dto/service/RKJPageResult.cs       |   17 +
 MES.Service/Dto/service/XJPageResult.cs        |    4 
 MES.Service/Modes/V_RKJ_INSPECTION_LIST.cs     |   74 +++++
 MES.Service/service/QC/RKJService.cs           |  278 ++++++++++---------
 9 files changed, 394 insertions(+), 411 deletions(-)

diff --git a/MES.Service/Dto/service/RKJPageResult.cs b/MES.Service/Dto/service/RKJPageResult.cs
new file mode 100644
index 0000000..12e492e
--- /dev/null
+++ b/MES.Service/Dto/service/RKJPageResult.cs
@@ -0,0 +1,17 @@
+using MES.Service.Dto.@base;
+
+namespace MES.Service.Dto.service;
+
+public class RKJPageResult : Page
+{
+    public string? createUser { get; set; }
+    public string? result { get; set; }
+
+    public string? id { get; set; }
+
+    public string? SearchValue { get; set; }
+    
+    public int? fsubmit { get; set; }
+    
+    public string? lineNo { get; set; }
+}
diff --git a/MES.Service/Dto/service/XJPageResult.cs b/MES.Service/Dto/service/XJPageResult.cs
index 09cc6c5..73f54b6 100644
--- a/MES.Service/Dto/service/XJPageResult.cs
+++ b/MES.Service/Dto/service/XJPageResult.cs
@@ -10,4 +10,8 @@
     public string? id { get; set; }
 
     public string? SearchValue { get; set; }
+    
+    public int? fsubmit { get; set; }
+    
+    public string? lineNo { get; set; }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/V_RKJ_INSPECTION_LIST.cs b/MES.Service/Modes/V_RKJ_INSPECTION_LIST.cs
new file mode 100644
index 0000000..a83efaf
--- /dev/null
+++ b/MES.Service/Modes/V_RKJ_INSPECTION_LIST.cs
@@ -0,0 +1,74 @@
+using SqlSugar;
+
+namespace MES.Service.Modes
+{
+    [SugarTable("V_RKJ_INSPECTION_LIST")]
+    public class V_RKJ_INSPECTION_LIST
+    {
+        [SugarColumn(ColumnName = "ID")]
+        public decimal Id { get; set; }
+
+        [SugarColumn(ColumnName = "RELEASE_NO")]
+        public string? ReleaseNo { get; set; }
+
+        [SugarColumn(ColumnName = "FCHECK_DATE")]
+        public DateTime? FcheckDate { get; set; }
+
+        [SugarColumn(ColumnName = "FCHECK_BY")]
+        public string? FcheckBy { get; set; }
+
+        [SugarColumn(ColumnName = "ITEM_NO")]
+        public string? ItemNo { get; set; }
+
+        [SugarColumn(ColumnName = "FCHECK_RESU")]
+        public string? FcheckResu { get; set; }
+
+        [SugarColumn(ColumnName = "CREATE_BY")]
+        public string? CreateBy { get; set; }
+
+        [SugarColumn(ColumnName = "CREATE_DATE")]
+        public DateTime? CreateDate { get; set; }
+
+        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+        public string? LastupdateBy { get; set; }
+
+        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
+
+        [SugarColumn(ColumnName = "BILL_NO")]
+        public string? BillNo { get; set; }
+
+        [SugarColumn(ColumnName = "FSUBMIT_BY")]
+        public string? FsubmitBy { get; set; }
+
+        [SugarColumn(ColumnName = "FSUBMIT_DATE")]
+        public DateTime? FsubmitDate { get; set; }
+
+        [SugarColumn(ColumnName = "FSUBMIT")]
+        public decimal? Fsubmit { get; set; }
+
+        [SugarColumn(ColumnName = "REMARKS")]
+        public string? Remarks { get; set; }
+
+        [SugarColumn(ColumnName = "ITEM_ID")]
+        public decimal? ItemId { get; set; }
+
+        [SugarColumn(ColumnName = "ITEM_NAME")]
+        public string? ItemName { get; set; }
+
+        [SugarColumn(ColumnName = "ITEM_MODEL")]
+        public string? ItemModel { get; set; }
+
+        [SugarColumn(ColumnName = "DAA015")]
+        public string? Daa015 { get; set; }
+
+        [SugarColumn(ColumnName = "QUANTITY")]
+        public decimal? Quantity { get; set; }
+
+        [SugarColumn(ColumnName = "STATUS_DESC")]
+        public string? StatusDesc { get; set; }
+
+        [SugarColumn(ColumnName = "RESULT_STATUS")]
+        public string? ResultStatus { get; set; }
+    }
+}
diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs
index 8656f8a..f1b75b0 100644
--- a/MES.Service/service/QC/RKJService.cs
+++ b/MES.Service/service/QC/RKJService.cs
@@ -10,29 +10,6 @@
 {
     private readonly BaseService _baseService = new();
 
-    //鎵嬪姩鎵цsql
-    //鐢熸垚妫�楠屽崟鍙�
-    public string getMaxBillNo()
-    {
-        var db = SqlSugarHelper.GetInstance();
-        var date = DateTime.Now.ToString("yyyy-MM-dd");
-        var sql =
-            "select max(RELEASE_NO) from QS_ITEM_OQC_REQ where RELEASE_NO like 'RKJN%' and to_char(CREATE_DATE,'yyyy-mm-dd') ='" +
-            date + "'";
-
-        var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
-
-        var number = "0001";
-        if (maxBillNo != null)
-        {
-            maxBillNo = maxBillNo.Substring(12);
-            var no = Convert.ToInt32(maxBillNo);
-            no++;
-            number = no.ToString().PadLeft(4, '0');
-        }
-
-        return "RKJN" + date.Replace("-", "") + number;
-    }
 
     //閫夋嫨浜х嚎
     public List<MesLine> getLineNo()
@@ -220,85 +197,6 @@
             }).OrderBy("result desc").ToList();
     }
 
-    public dynamic save(RKJDto rkjDto)
-    {
-        var xj = rkjDto.from;
-        var items = rkjDto.items;
-        var userNo = rkjDto.userNo;
-
-        SqlSugarHelper.UseTransactionWithOracle(db =>
-        {
-            var commit = 0;
-
-            xj.CreateBy = userNo;
-            xj.CreateDate = DateTime.Now;
-
-            var pid = db.Insertable(xj).ExecuteReturnIdentity();
-
-            xj.Id = pid;
-
-            rkjDto.gid = pid;
-
-            foreach (var item in items) item.Pid = pid;
-
-            commit += db.Insertable(items).ExecuteCommand();
-
-            return commit;
-        });
-
-
-        // using (var connection =
-        //        new OracleConnection(OracleSQLHelper.ConnectionString))        //     connection.Open();
-        //
-        //     var transaction = connection.BeginTransaction();
-        //
-        //     try
-        //     {
-        //         using (var command = new OracleCommand())
-        //         {
-        //             command.Connection = connection;
-        //             command.Transaction = transaction;
-        //             command.CommandText = "insert_and_update_picture_RKJ";
-        //             command.CommandType = CommandType.StoredProcedure;
-        //
-        //             // Add parameters
-        //             command.Parameters.Add("p_QS_TYPE", OracleDbType.Varchar2)
-        //                 .Value = "3";
-        //             command.Parameters.Add("p_MOID_NUM", OracleDbType.Varchar2)
-        //                 .Value = rkjDto.moidNum;
-        //             command.Parameters.Add("p_pid", OracleDbType.Int32).Value =
-        //                 xj.Id;
-        //
-        //             command.ExecuteNonQuery();
-        //         }
-        //
-        //         transaction.Commit();
-        //     }
-        //     catch (Exception)
-        //     {
-        //         transaction.Rollback();
-        //         throw;
-        //     }
-        // }
-
-        rkjDto.items = GetItems(xj.Id, null);
-
-        rkjDto.items.ForEach(s =>
-        {
-            if (s.MaxValue != null || s.StandardValue != null ||
-                s.MinValue != null) return;
-            var detail = new QsItemOqcItemDetail();
-            detail.Pid = s.Id;
-            detail.Gid = rkjDto.gid;
-            detail.Fstand = "鈭�";
-            detail.FcheckResu = "1";
-            detail.UpdateBy = rkjDto.userNo;
-            detail.count = (int?)s.LevelNum;
-            SetQSItemDetail(detail);
-        });
-
-        return Convert.ToInt32(xj.Id);
-    }
 
     public int SetQSItemDetail(QsItemOqcItemDetail detail)
     {
@@ -454,48 +352,103 @@
     }
 
 
-    public List<QsItemOqcReq> getPage(XJPageResult queryObj)
+    public List<QsItemOqcReq> getPage(RKJPageResult queryObj)
     {
         var db = SqlSugarHelper.GetInstance();
+        var id = StringUtil.IsNotNullOrEmpty(queryObj.id) ? Convert.ToDecimal(queryObj.id) : 0;
 
         return db
-            .Queryable<QsItemOqcReq, Womdaa, MesItems, MesInvItemIns, Womdab,
-                MesInvTransaction, RKJDaa001>(
-                (a, da, b, c, d, ca, m) => new JoinQueryInfos(
-                    JoinType.Left, da.Daa001 == a.BillNo,
-                    JoinType.Left, a.ItemId == b.Id,
-                    JoinType.Left, a.BillNo == c.BillNo,
-                    JoinType.Left, c.CbillNo == d.Dab001,
-                    JoinType.Left,
-                    c.TransctionNo == ca.TransactionNo.ToString() &&
-                    c.Company == ca.Company && c.Factory == ca.Factory,
-                    JoinType.Left, c.Id == m.ItemInId && a.ItemNo == m.ItemNo
-                ))
-            .Select((a, da, b, c, d, ca, m) => new QsItemOqcReq
+            .Queryable<V_RKJ_INSPECTION_LIST>()
+            .WhereIF(id > 0, v => v.Id == id)
+
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                "鏈畬鎴�".Equals(queryObj.result),
+                v => v.StatusDesc == "鏈畬鎴�")
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                !"鏈畬鎴�".Equals(queryObj.result),
+                v => v.StatusDesc == "宸插畬鎴�")
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 1,
+                v => v.Fsubmit == 1)
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 0,
+                v => SqlFunc.IsNull(v.Fsubmit, 0) != 1)
+            .Select(v => new QsItemOqcReq
             {
-                BillNo = a.BillNo,
-                Remarks = a.Remarks,
-                Id = a.Id,
-                CreateDate = a.CreateDate,
-                CreateBy = a.CreateBy,
-                FcheckResu = a.FcheckResu,
-                ItemNo = a.ItemNo,
-                FcheckBy = a.FcheckBy,
-                FcheckDate = a.FcheckDate,
-                ReleaseNo = a.ReleaseNo,
-                // 娣诲姞鍏朵粬瀛楁
-                // 濡傛灉鍦� QsItemOqcReq 涓畾涔変簡棰濆瀛楁锛屽垯闇�瑕佸皢瀹冧滑璧嬪��
-                // 渚嬪:
-                ItemName = b.ItemName,
-                ItemModel = b.ItemModel,
-                TaskNo = c.TaskNo,
-                CbillNo = c.CbillNo,
-                Dab001 = d.Dab001,
-                Daa015 = da.Daa015,
-                LineNo = c.LineNo,
-                Quantity = m.Quantity
-            }).OrderBy(a => a.CreateDate, OrderByType.Desc)
+                Id = v.Id,
+                ReleaseNo = v.ReleaseNo,
+                FcheckDate = v.FcheckDate,
+                FcheckBy = v.FcheckBy,
+                ItemNo = v.ItemNo,
+                FcheckResu = v.FcheckResu,
+                CreateBy = v.CreateBy,
+                CreateDate = v.CreateDate,
+                LastupdateBy = v.LastupdateBy,
+                LastupdateDate = v.LastupdateDate,
+                BillNo = v.BillNo,
+                FsubmitBy = v.FsubmitBy,
+                FsubmitDate = v.FsubmitDate,
+                Fsubmit = v.Fsubmit,
+                Remarks = v.Remarks,
+                ItemId = v.ItemId,
+                ItemName = v.ItemName,
+                ItemModel = v.ItemModel,
+                Daa015 = v.Daa015,
+                Quantity = v.Quantity
+            })
+            .OrderBy(v => v.CreateDate, OrderByType.Desc)
             .ToPageList(queryObj.PageIndex, queryObj.Limit);
+    }
+
+    //鑾峰彇鎵�鏈夋暟鎹垎椤碉紙鎼哄甫鎬绘暟锛�
+    public (List<QsItemOqcReq> data, int totalCount) getPageWithTotal(RKJPageResult queryObj)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        var id = StringUtil.IsNotNullOrEmpty(queryObj.id) ? Convert.ToDecimal(queryObj.id) : 0;
+
+        int totalCount = 0;
+        var data = db
+            .Queryable<V_RKJ_INSPECTION_LIST>()
+            .WhereIF(id > 0, v => v.Id == id)
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                "鏈畬鎴�".Equals(queryObj.result),
+                v => v.StatusDesc == "鏈畬鎴�")
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                !"鏈畬鎴�".Equals(queryObj.result),
+                v => v.StatusDesc == "宸插畬鎴�")
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 1,
+                v => v.Fsubmit == 1)
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 0,
+                v => SqlFunc.IsNull(v.Fsubmit, 0) != 1)
+            .Select(v => new QsItemOqcReq
+            {
+                Id = v.Id,
+                ReleaseNo = v.ReleaseNo,
+                FcheckDate = v.FcheckDate,
+                FcheckBy = v.FcheckBy,
+                ItemNo = v.ItemNo,
+                FcheckResu = v.FcheckResu,
+                CreateBy = v.CreateBy,
+                CreateDate = v.CreateDate,
+                LastupdateBy = v.LastupdateBy,
+                LastupdateDate = v.LastupdateDate,
+                BillNo = v.BillNo,
+                FsubmitBy = v.FsubmitBy,
+                FsubmitDate = v.FsubmitDate,
+                Fsubmit = v.Fsubmit,
+                Remarks = v.Remarks,
+                ItemId = v.ItemId,
+                ItemName = v.ItemName,
+                ItemModel = v.ItemModel,
+                Daa015 = v.Daa015,
+                Quantity = v.Quantity
+            })
+            .OrderBy(v => v.CreateDate, OrderByType.Desc)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (data, totalCount);
     }
 
     //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛�
@@ -648,4 +601,53 @@
 
         return Convert.ToInt32(rkjDto.gid);
     }
+
+    public (int code, string message) GenUpdateRKJ(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_UPDATE3(: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);
+    }
+
+    /// <summary>
+    /// 鎻愪氦鍏ュ簱妫�楠屽崟
+    /// </summary>
+    /// <param name="userNo">鎻愪氦浜�</param>
+    /// <param name="id">妫�楠屽崟ID</param>
+    /// <returns>褰卞搷琛屾暟</returns>
+    public int RKJQaSubmit(string userNo, decimal id)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            var commit = 0;
+
+            // 鎻愪氦鍏ュ簱妫�楠屽崟 - 鏇存柊QS_ITEM_OQC_REQ琛�
+            var sql = "update QS_ITEM_OQC_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);
+
+            return commit;
+        });
+    }
 }
\ No newline at end of file
diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs
index 9445acb..04c5723 100644
--- a/MES.Service/service/QC/SJService.cs
+++ b/MES.Service/service/QC/SJService.cs
@@ -10,29 +10,6 @@
 {
     private readonly BaseService _baseService = new();
 
-    //鑾峰彇鏈�澶у崟鍙�
-    public string getMaxBillNo()
-    {
-        var db = SqlSugarHelper.GetInstance();
-        var date = DateTime.Now.ToString("yyyy-MM-dd");
-        var sql =
-            "select max(BILL_NO) from QS_ITEM_IPI_REQ where to_char(CREATE_TIME,'yyyy-mm-dd') = '" +
-            date + "'";
-
-        var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
-
-        var number = "0001";
-        if (maxBillNo != null)
-        {
-            maxBillNo = maxBillNo.Substring(12);
-            var no = Convert.ToInt32(maxBillNo);
-            no++;
-            number = no.ToString().PadLeft(4, '0');
-        }
-
-        return "SJN" + date.Replace("-", "") + number;
-    }
-
     //鑾峰彇鎵�鏈夋暟鎹垎椤�
     public List<SJPageResult> getPage(SJPageResult queryObj)
     {
@@ -215,49 +192,6 @@
         return qsItemIpiItems;
     }
 
-    public QsItem Save(QsItem item)
-    {
-        var qsItemIpiReq = item.From;
-        var qsItemIpiItems = item.Items;
-        SqlSugarHelper.UseTransactionWithOracle(
-            db =>
-            {
-                qsItemIpiReq.StatusDate = DateTime.Now;
-                var pid = db.Insertable(qsItemIpiReq)
-                    .ExecuteReturnIdentity();
-                qsItemIpiReq.Id = pid;
-
-                item.gid = pid;
-
-                qsItemIpiItems.ForEach(s => s.Pid = pid);
-
-                return db.Insertable(qsItemIpiItems)
-                    .ExecuteCommand();
-            });
-        item.Items = getQSItems(qsItemIpiReq.Id, null);
-
-        //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸
-        item.Items.ForEach(s =>
-        {
-            if (s.MaxValue != null || s.StandardValue != null ||
-                s.MinValue != null) return;
-            var detail = new QsItemIpiItemDetail();
-            detail.Pid = s.Id;
-            detail.Gid = item.gid;
-            detail.Fstand = "鈭�";
-            detail.FcheckResu = "1";
-            detail.UpdateBy = item.From.StatusUser;
-            detail.count = (int?)s.LevelNum;
-            SetQSItemDetail(detail);
-        });
-
-        item.Items = getQSItems(qsItemIpiReq.Id, null);
-        var sjPageResult = new SJPageResult
-            { Id = item.From.Id, Limit = 1, PageIndex = 1 };
-        item.Result = getPage(sjPageResult)[0];
-
-        return item;
-    }
 
     public QsItem SaveItem(QsItem item)
     {
diff --git a/MES.Service/service/QC/XJService.cs b/MES.Service/service/QC/XJService.cs
index 9ed2beb..8c17a7f 100644
--- a/MES.Service/service/QC/XJService.cs
+++ b/MES.Service/service/QC/XJService.cs
@@ -15,28 +15,6 @@
 
     private readonly string[] statusArray = ["寮�宸�", "寰呭紑宸�"];
 
-    //鐢熸垚鏈�鏂扮殑妫�楠屽崟鍙�
-    public string getMaxReleaseNo()
-    {
-        var sql =
-            string.Format(
-                "select max(RELEASE_NO) from QS_QA_ITEM_XJ where RELEASE_NO like 'XJN%' and to_char(CREATE_DATE,'yyyy-mm-dd') = '{0}'",
-                DateTime.Now.ToString("yyyy-MM-dd"));
-
-        var executeScalar = SQLHelper.ExecuteScalar(sql);
-        var date = DateTime.Now.ToString("yyMMdd");
-        var number = "0001";
-        var olReleaseNo = executeScalar.ToString();
-        //鍒ゆ柇浠婂ぉ鏄惁鐢熸垚浜嗗贰妫�鍗�
-        if (string.IsNullOrEmpty(olReleaseNo)) return "XJN" + date + number;
-        //鎴彇鍚庡洓浣嶇殑娴佹按鍙风疮鍔�
-        var substring = Convert.ToInt32(olReleaseNo.Substring(10));
-        substring += 1;
-        number = substring.ToString("D4");
-
-        //濡傛灉涓虹┖鐩存帴杩斿洖0001
-        return "XJN" + date + number;
-    }
 
     public List<Womdaa> getItem(string daa001)
     {
@@ -112,10 +90,7 @@
 
         var id = Convert.ToDecimal(queryObj.id);
 
-        string[]? lineNo = null;
-
-        if (StringUtil.IsNotNullOrEmpty(queryObj.createUser))
-            lineNo = _baseService.getUserLineNo(queryObj.createUser);
+        // 鍙栨秷浜х嚎杩囨护锛屾樉绀烘墍鏈変骇绾跨殑鏁版嵁
 
         return db
             .Queryable<QsQaItemXj, Womdaa, MesLine,
@@ -126,8 +101,6 @@
                     JoinType.Left, s.ItemId == b.Id
                 )
             )
-            .WhereIF(lineNo != null && lineNo.Length > 0,
-                (s, a, c, b) => lineNo.Contains(c.LineNo))
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                 "鏈畬鎴�".Equals(queryObj.result),
@@ -136,6 +109,10 @@
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                 !"鏈畬鎴�".Equals(queryObj.result),
                 (s, a, c, b) => s.FcheckResu != null)
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 1,
+                (s, a, c, b) => s.Fsubmit == 1)
+            .WhereIF(queryObj.fsubmit.HasValue && queryObj.fsubmit.Value == 0,
+                (s, a, c, b) => SqlFunc.IsNull(s.Fsubmit, 0) != 1)
             .WhereIF(id > 0, (s, a, c, b) => s.Id == id)
             .Select((s, a, c, b) => new QsQaItemXj
             {
@@ -151,7 +128,10 @@
                 ItemModel = b.ItemModel,
                 FcheckBy = s.FcheckBy,
                 FcheckResu = s.FcheckResu,
-                Remarks = s.Remarks
+                Remarks = s.Remarks,
+                Fsubmit = s.Fsubmit,
+                FsubmitBy = s.FsubmitBy,
+                FsubmitDate = s.FsubmitDate
             }).OrderBy(s => s.CreateDate, OrderByType.Desc)
             .ToPageList(queryObj.PageIndex, queryObj.Limit);
     }
@@ -243,50 +223,6 @@
     }
 
 
-    public int save(XJDto xjDto)
-    {
-        var xj = xjDto.from;
-        var items = xjDto.items;
-        var userNo = xjDto.userNo;
-
-        SqlSugarHelper.UseTransactionWithOracle(db =>
-        {
-            var commit = 0;
-
-            xj.CreateBy = userNo;
-            xj.CreateDate = DateTime.Now;
-
-            var pid = db.Insertable(xj).ExecuteReturnIdentity();
-
-            xj.Id = pid;
-
-            xjDto.gid = pid;
-
-            foreach (var item in items) item.Pid = pid;
-
-            commit += db.Insertable(items).ExecuteCommand();
-
-            return commit;
-        });
-
-        xjDto.items = getJYItem(xj.Id, null);
-
-        xjDto.items.ForEach(s =>
-        {
-            if (s.MaxValue != null || s.StandardValue != null ||
-                s.MinValue != null) return;
-            var detail = new QsQaItemXj02();
-            detail.Pid = s.Id;
-            detail.Gid = xjDto.gid;
-            detail.Fstand = "鈭�";
-            detail.FcheckResu = "1";
-            detail.UpdateBy = xjDto.userNo;
-            detail.count = (int?)s.LevelNum;
-            SetQSItemDetail(detail);
-        });
-
-        return Convert.ToInt32(xj.Id);
-    }
 
     public int saveItem(XJDto xjDto)
     {
@@ -528,4 +464,47 @@
                 .ExecuteCommand();
         });
     }
+
+    public (int code, string message) GenUpdateXJ(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_XJ(: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);
+    }
+
+    public int XJQaSubmit(string userNo, decimal id)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            var commit = 0;
+
+            // 鎻愪氦宸℃鍗� - 鍙傝�僑J鐨勫疄鐜版柟寮�
+            var sql = "update QS_QA_ITEM_XJ 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);
+
+            return commit;
+        });
+    }
 }
\ No newline at end of file
diff --git a/MESApplication/Controllers/QC/RKJController.cs b/MESApplication/Controllers/QC/RKJController.cs
index 3aea949..9bdcb0e 100644
--- a/MESApplication/Controllers/QC/RKJController.cs
+++ b/MESApplication/Controllers/QC/RKJController.cs
@@ -12,28 +12,6 @@
 [ApiController]
 public class RKJController : ControllerBase
 {
-    //getMaxReleaseNo
-    [HttpPost("getMaxReleaseNo")]
-    public ResponseResult getMaxReleaseNo()
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new RKJService().getMaxBillNo();
-            resultInfos.tbBillList = tbBillList;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
     //getLine
     [HttpPost("getLineAll")]
@@ -107,20 +85,23 @@
         }
     }
 
-    [HttpPost("save")]
-    public ResponseResult save([FromBody] RKJDto rkjDto)
+
+    //GetPage
+    [HttpPost("GetPage")]
+    public ResponseResult GetPage([FromBody] RKJPageResult queryObj)
     {
         try
         {
             dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new RKJService().save(rkjDto);
+            var service = new RKJService();
+            var (tbBillList, totalCount) = service.getPageWithTotal(queryObj);
             resultInfos.tbBillList = tbBillList;
             return new ResponseResult
             {
                 status = 0,
                 message = "OK",
-                data = resultInfos
+                data = resultInfos,
+                TotalCount = totalCount
             };
         }
         catch (Exception ex)
@@ -129,27 +110,6 @@
         }
     }
 
-    [HttpPost("getPage")]
-    public ResponseResult getPage([FromBody] XJPageResult queryObj)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new RKJService().getPage(queryObj);
-            resultInfos.tbBillList = tbBillList;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
     //getItems
     [HttpPost("getItems")]
@@ -364,4 +324,55 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    [HttpPost("GenUpdateRKJ")]
+    public ResponseResult GenUpdateRKJ([FromBody] JObject data)
+    {
+        var id = Convert.ToDecimal(data["id"]?.ToString());
+        var no = data["no"]?.ToString();
+        var userNo = data["userNo"]?.ToString();
+        try
+        {
+            var service = new RKJService();
+            var (code, message) = service.GenUpdateRKJ(id, no, userNo);
+            return new ResponseResult
+            {
+                status = code,
+                message = message,
+                data = new ExpandoObject()
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    /// 鎻愪氦鍏ュ簱妫�楠屽崟
+    /// </summary>
+    /// <param name="data">鍖呭惈gid鍜寀serNo鐨凧SON鏁版嵁</param>
+    /// <returns>鎻愪氦缁撴灉</returns>
+    [HttpPost("RKJQaSubmit")]
+    public ResponseResult RKJQaSubmit([FromBody] JObject data)
+    {
+        var userNo = data["userNo"]?.ToString();
+        var id = Convert.ToDecimal(data["gid"]?.ToString());
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = new RKJService().RKJQaSubmit(userNo, id);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "鎻愪氦鎴愬姛",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
 }
\ No newline at end of file
diff --git a/MESApplication/Controllers/QC/SJController.cs b/MESApplication/Controllers/QC/SJController.cs
index 732a88b..5848463 100644
--- a/MESApplication/Controllers/QC/SJController.cs
+++ b/MESApplication/Controllers/QC/SJController.cs
@@ -12,27 +12,6 @@
 [ApiController]
 public class SJController : ControllerBase
 {
-    [HttpPost("GetMaxBillNo")]
-    public ResponseResult GetMaxBillNo()
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new SJService().getMaxBillNo();
-            resultInfos.tbBillList = tbBillList;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
 
     [HttpPost("GetPage")]
@@ -83,27 +62,6 @@
         }
     }
 
-    [HttpPost("Save")]
-    public ResponseResult Save([FromBody] QsItem item)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList = new SJService();
-            var detail021 = tbBillList.Save(item);
-            resultInfos.tbBillList = detail021;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
     //SaveItem
     [HttpPost("SaveItem")]
diff --git a/MESApplication/Controllers/QC/XJController.cs b/MESApplication/Controllers/QC/XJController.cs
index ef25d6b..b6c260d 100644
--- a/MESApplication/Controllers/QC/XJController.cs
+++ b/MESApplication/Controllers/QC/XJController.cs
@@ -35,28 +35,6 @@
         }
     }
 
-    //getMaxReleaseNo
-    [HttpPost("getMaxReleaseNo")]
-    public ResponseResult getMaxReleaseNo()
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new XJService().getMaxReleaseNo();
-            resultInfos.tbBillList = tbBillList;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
     //getLine
     [HttpPost("getLineAll")]
@@ -184,28 +162,6 @@
         }
     }
 
-    //save
-    [HttpPost("save")]
-    public ResponseResult save([FromBody] XJDto xjDto)
-    {
-        try
-        {
-            dynamic resultInfos = new ExpandoObject();
-            var tbBillList =
-                new XJService().save(xjDto);
-            resultInfos.tbBillList = tbBillList;
-            return new ResponseResult
-            {
-                status = 0,
-                message = "OK",
-                data = resultInfos
-            };
-        }
-        catch (Exception ex)
-        {
-            return ResponseResult.ResponseError(ex);
-        }
-    }
 
     [HttpPost("saveItem")]
     public ResponseResult saveItem([FromBody] XJDto xjDto)
@@ -220,6 +176,31 @@
             {
                 status = 0,
                 message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    [HttpPost("GenUpdateXJ")]
+    public ResponseResult GenUpdateXJ([FromBody] JObject data)
+    {
+        var id = Convert.ToDecimal(data["id"]?.ToString());
+        var no = data["no"]?.ToString();
+        var userNo = data["userNo"]?.ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var service = new XJService();
+            var (code, msg) = service.GenUpdateXJ(id, no, userNo);
+            resultInfos.tbBillList = new { result = code, message = msg };
+            return new ResponseResult
+            {
+                status = code,
+                message = msg,
                 data = resultInfos
             };
         }
@@ -442,4 +423,27 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+
+    [HttpPost("XJQaSubmit")]
+    public ResponseResult XJQaSubmit([FromBody] JObject data)
+    {
+        var userNo = data["userNo"]?.ToString();
+        var id = Convert.ToDecimal(data["gid"]?.ToString());
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = new XJService().XJQaSubmit(userNo, id);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3