From 06ba27614f84eac11083ecd261b6fdc886ebd8bf Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期三, 11 九月 2024 16:34:28 +0800
Subject: [PATCH] 来料检验

---
 MES.Service/Modes/MesQaIqc.cs                  |   79 +++
 MES.Service/Modes/MesQaItemsDetectDetail12.cs  |   72 ++
 MES.Service/Dto/service/LLJDto.cs              |   35 +
 MES.Service/Modes/LtsLlj.cs                    |  142 +++++
 MES.Service/Modes/MesQaItemsDetect01.cs        |    6 
 MES.Service/Modes/MesQaItemsDetectDetail5.cs   |  335 ++++++------
 MES.Service/service/QC/LljService.cs           |  539 +++++++++++++++++++++
 MESApplication/Controllers/QC/LljController.cs |  252 ++++++++++
 8 files changed, 1,287 insertions(+), 173 deletions(-)

diff --git a/MES.Service/Dto/service/LLJDto.cs b/MES.Service/Dto/service/LLJDto.cs
new file mode 100644
index 0000000..b33df02
--- /dev/null
+++ b/MES.Service/Dto/service/LLJDto.cs
@@ -0,0 +1,35 @@
+锘縰sing MES.Service.Modes;
+
+namespace MES.Service.Dto.service;
+
+public class LLJDto
+{
+    public string? userNo { get; set; }
+    //妫�楠屽崟鍙�
+    public string? releaseNo { get; set; }
+    
+    //涓昏〃id
+    public int? gid { get; set; }
+
+    //瀛愯〃id
+    public int? pid { get; set; }
+
+    //瀛欒〃id
+    public int? id { get; set; }
+
+    //澶囨敞
+    public string? Remarks { get; set; }
+
+    //==========================================
+    //宸℃涓诲瓙琛ㄩ渶瑕佺殑鏁版嵁
+    public QsItemOqcReq? from { get; set; }
+    
+    public List<MesQaItemsDetectDetail5>? items { get; set; }
+
+    //==========================================
+    //宸℃瀛愬瓩琛ㄩ渶瑕佺殑鏁版嵁
+
+    public MesQaItemsDetectDetail5? ItemXj01 { get; set; }
+
+    public List<MesQaItemsDetectDetail12>? ItemXj02s { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/LtsLlj.cs b/MES.Service/Modes/LtsLlj.cs
new file mode 100644
index 0000000..3f345c5
--- /dev/null
+++ b/MES.Service/Modes/LtsLlj.cs
@@ -0,0 +1,142 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 鏁版嵁婧愬鍏�
+    ///</summary>
+    [SugarTable("LTS_LLJ")] 
+    public class LtsLlj
+    {
+     
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName="Id"    )]
+        public decimal? Id { get; set; }
+        /// <summary>
+        ///  瀹℃牳鏍囪瘑
+        ///</summary>
+         [SugarColumn(ColumnName="MODIFY1_FLAG"    )]
+         public decimal? Modify1Flag { get; set; }
+        /// <summary>
+        ///  閫佹鎵规
+        ///</summary>
+         [SugarColumn(ColumnName="LOT_NO"    )]
+         public string LotNo { get; set; }
+        /// <summary>
+        ///  澶勭悊鏂规硶
+        ///</summary>
+         [SugarColumn(ColumnName="FNG_HANDLE"    )]
+         public string FngHandle { get; set; }
+        /// <summary>
+        ///  鐗╂枡鐗堟湰
+        ///</summary>
+         [SugarColumn(ColumnName="FVERSION"    )]
+         public decimal? Fversion { get; set; }
+        /// <summary>
+        ///  澶囨敞淇℃伅
+        ///</summary>
+         [SugarColumn(ColumnName="LOT_NO1"    )]
+         public string LotNo1 { get; set; }
+        /// <summary>
+        ///  杞崲鏁伴噺
+        ///</summary>
+         [SugarColumn(ColumnName="FCOVERT_QTY"    )]
+         public string FcovertQty { get; set; }
+        /// <summary>
+        ///  妫�楠岀粨鏋�
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_RESU"    )]
+         public string FcheckResu { get; set; }
+        /// <summary>
+        ///  渚涘簲鍟嗙紪鐮�
+        ///</summary>
+         [SugarColumn(ColumnName="SUPP_NO"    )]
+         public string SuppNo { get; set; }
+        /// <summary>
+        ///  妫�楠屽崟鍙�
+        ///</summary>
+         [SugarColumn(ColumnName="RELEASE_NO"    )]
+         public string ReleaseNo { get; set; }
+        /// <summary>
+        ///  閲囪喘鏁伴噺
+        ///</summary>
+         [SugarColumn(ColumnName="FBATCH_QTY"    )]
+         public string FbatchQty { get; set; }
+        /// <summary>
+        ///  鐗╂枡缂栫爜
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_NO"    )]
+         public string ItemNo { get; set; }
+        /// <summary>
+        ///  妫�楠屼汉鍛�
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_BY"    )]
+         public string FcheckBy { get; set; }
+        /// <summary>
+        ///  涓嶈壇鎻忚堪
+        ///</summary>
+         [SugarColumn(ColumnName="FNG_DESC"    )]
+         public string FngDesc { get; set; }
+        /// <summary>
+        ///  鍒涘缓浜�
+        ///</summary>
+         [SugarColumn(ColumnName="CREATE_BY"    )]
+         public string CreateBy { get; set; }
+         /// <summary>
+         ///  鍒涘缓鏃堕棿
+         ///</summary>
+         [SugarColumn(ColumnName="CREATE_DATE"    )]
+         public string CreateDate { get; set; }
+        /// <summary>
+        ///  鏄惁鎬ユ枡
+        ///</summary>
+         [SugarColumn(ColumnName="URGENT_FLAG"    )]
+         public short? UrgentFlag { get; set; }
+        /// <summary>
+        ///  鐗╂枡鍚嶇О
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_NAME"    )]
+         public string ItemName { get; set; }
+        /// <summary>
+        ///  妫�楠岀被鍨�
+        ///</summary>
+         [SugarColumn(ColumnName="QATYPE"    )]
+         public string Qatype { get; set; }
+        /// <summary>
+        ///  妫�楠屾棩鏈�
+        ///</summary>
+         [SugarColumn(ColumnName="DATE_01"    )]
+         public string Date01 { get; set; }
+        /// <summary>
+        ///  渚涘簲鍟嗗悕绉�
+        ///</summary>
+         [SugarColumn(ColumnName="SUPP_NAME"    )]
+         public string SuppName { get; set; }
+        /// <summary>
+        ///  鐗╂枡瑙勬牸
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_MODEL"    )]
+         public string ItemModel { get; set; }
+        /// <summary>
+        ///  搴撳瓨鏁伴噺
+        ///</summary>
+         [SugarColumn(ColumnName="KC_QTY"    )]
+         public decimal? KcQty { get; set; }
+        /// <summary>
+        ///  鍗曟嵁鐘舵��
+        ///</summary>
+         [SugarColumn(ColumnName="STATUS"    )]
+         public string STATUS { get; set; }
+        
+         /// <summary>
+         ///  濮斿鏍囪瘑锛�0锛氶噰璐� 銆�1锛氬澶栵級
+         ///</summary>
+         [SugarColumn(ColumnName="F_TYPE"    )]
+         public int Ftype { get; set; }
+         
+    }
+}
diff --git a/MES.Service/Modes/MesQaIqc.cs b/MES.Service/Modes/MesQaIqc.cs
new file mode 100644
index 0000000..ee6425d
--- /dev/null
+++ b/MES.Service/Modes/MesQaIqc.cs
@@ -0,0 +1,79 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 鏁版嵁婧愬鍏�
+    ///</summary>
+    [SugarTable("Mes_Qa_Iqc")]
+    public class MesQaIqc
+    {
+     /// <summary>
+     ///  鎺ユ敹姘村钩
+     ///</summary>
+     [SugarColumn(ColumnName="ITEM_NO"    )]
+     public string ItemNo { get; set; }
+        /// <summary>
+        ///  鎺ユ敹姘村钩
+        ///</summary>
+         [SugarColumn(ColumnName="FAC_LEVEL"    )]
+         public string FacLevel { get; set; }
+        /// <summary>
+        ///  妫�楠岄」鐩�
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_ITEM"    )]
+         public string FcheckItem { get; set; }
+        /// <summary>
+        ///  妫�楠屽伐鍏�
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_TOOL"    )]
+         public string FcheckTool { get; set; }
+        /// <summary>
+        ///  涓嬮檺
+        ///</summary>
+         [SugarColumn(ColumnName="FDOWN_ALLOW"    )]
+         public string FdownAllow { get; set; }
+        /// <summary>
+        ///  妫�楠屾按骞�
+        ///</summary>
+         [SugarColumn(ColumnName="FREQUENCY"    )]
+         public string FREQUENCY { get; set; }
+        /// <summary>
+        ///  鏍囧噯
+        ///</summary>
+         [SugarColumn(ColumnName="FSTAND"    )]
+         public string FSTAND { get; set; }
+        /// <summary>
+        ///  涓婇檺
+        ///</summary>
+         [SugarColumn(ColumnName="FUP_ALLOW"    )]
+         public string FupAllow { get; set; }
+        /// <summary>
+        ///  妫�楠屾按鍑嗙紪鐮�
+        ///</summary>
+         [SugarColumn(ColumnName="SAMPLE_SIZE_NO"    )]
+         public string SampleSizeNo { get; set; }
+        /// <summary>
+        ///  瑙勬牸瑕佹眰
+        ///</summary>
+         [SugarColumn(ColumnName="FSPEC_REQU"    )]
+         public string FspecRequ { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="ISENABLED"    )]
+         public short? ISENABLED { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="EE"    )]
+         public short? EE { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FTYPE"    )]
+         public string FTYPE { get; set; }
+    }
+}
diff --git a/MES.Service/Modes/MesQaItemsDetect01.cs b/MES.Service/Modes/MesQaItemsDetect01.cs
index 14760fb..caa83d1 100644
--- a/MES.Service/Modes/MesQaItemsDetect01.cs
+++ b/MES.Service/Modes/MesQaItemsDetect01.cs
@@ -328,4 +328,10 @@
    /// </summary>
    [SugarColumn(ColumnName = "FMRMODE")]
     public string Fmrmode { get; set; }
+    /// <summary>
+    ///     涓嶈壇鎻忚堪
+    /// </summary>
+    [SugarColumn(ColumnName = "Remarks")]
+    public string Remarks { get; set; }
+    
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesQaItemsDetectDetail12.cs b/MES.Service/Modes/MesQaItemsDetectDetail12.cs
new file mode 100644
index 0000000..b54793e
--- /dev/null
+++ b/MES.Service/Modes/MesQaItemsDetectDetail12.cs
@@ -0,0 +1,72 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// IQC妫�楠�
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL12")]
+    public class MesQaItemsDetectDetail12
+    {
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="ID" ,OracleSequenceName = "SEQ_QM_ID",IsPrimaryKey = true   )]
+         public decimal Id { get; set; }
+        /// <summary>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_RESU"    )]
+         public string? FcheckResu { get; set; }
+        /// <summary>
+        /// 妫�楠岄」鐩� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_ITEM"    )]
+         public string? FcheckItem { get; set; }
+
+        /// <summary>
+        ///  妫�楠屽崟鍙�
+        ///</summary>
+         [SugarColumn(ColumnName="RELEASE_NO"    )]
+         public string? ReleaseNo { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="MAIN_ID"    )]
+         public decimal? MainId { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="CREATE_DATE"    )]
+         public DateTime? CreateDate { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="COMPANY"    )]
+         public string? Company { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FACTORY"    )]
+         public string? Factory { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FSTAND"    )]
+         public string? Fstand { get; set; }
+        /// <summary>
+        /// 鐢熸垚浜� 
+        ///</summary>
+         [SugarColumn(ColumnName="LASTUPDATE_BY"    )]
+         public string? LastupdateBy { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="CREATE_BY"    )]
+         public string? CreateBy { get; set; }
+        
+         [SugarColumn(IsIgnore = true)] public int? count { get; set; }
+    }
+}
diff --git a/MES.Service/Modes/MesQaItemsDetectDetail5.cs b/MES.Service/Modes/MesQaItemsDetectDetail5.cs
index 68ee666..24e9cbb 100644
--- a/MES.Service/Modes/MesQaItemsDetectDetail5.cs
+++ b/MES.Service/Modes/MesQaItemsDetectDetail5.cs
@@ -1,174 +1,163 @@
-锘縰sing SqlSugar;
-
-namespace MES.Service.Modes;
-
-/// <summary>
-///     鏉ユ枡妫�楠屼粠琛�
-/// </summary>
-[SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
-public class MesQaItemsDetectDetail5
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations.Schema;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
 {
-   /// <summary>
-   /// </summary>
-   [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
-    public decimal Id { get; set; }
-
-   /// <summary>
-   ///     鏍囧噯鍊肩被鍨�
-   /// </summary>
-   [SugarColumn(ColumnName = "FTEXT_TYPE")]
-    public string FtextType { get; set; }
-
-   /// <summary>
-   ///     鏍囧噯鍊�
-   /// </summary>
-   [SugarColumn(ColumnName = "FSTAND")]
-    public decimal? Fstand { get; set; }
-
-   /// <summary>
-   ///     涓婂叕宸�
-   /// </summary>
-   [SugarColumn(ColumnName = "FUP_ALLOW")]
-    public string FupAllow { get; set; }
-
-   /// <summary>
-   ///     涓嬪叕宸�
-   /// </summary>
-   [SugarColumn(ColumnName = "FDOWN_ALLOW")]
-    public string FdownAllow { get; set; }
-
-   /// <summary>
-   ///     妫�楠屾按鍑�
-   /// </summary>
-   [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")]
-    public string SampleSizeNo { get; set; }
-
-   /// <summary>
-   ///     妫�楠屾按骞�
-   /// </summary>
-   [SugarColumn(ColumnName = "FCHECK_LEVEL")]
-    public string FcheckLevel { get; set; }
-
-   /// <summary>
-   ///     鎷掓敹姘村钩
-   /// </summary>
-   [SugarColumn(ColumnName = "FAC_LEVEL")]
-    public string FacLevel { get; set; }
-
-   /// <summary>
-   ///     妫�楠岄」鐩�
-   /// </summary>
-   [SugarColumn(ColumnName = "FCHECK_ITEM")]
-    public string FcheckItem { get; set; }
-
-   /// <summary>
-   ///     瑙勬牸瑕佹眰
-   /// </summary>
-   [SugarColumn(ColumnName = "FSPEC_REQU")]
-    public string FspecRequ { get; set; }
-
-   /// <summary>
-   ///     鎶芥鏁伴噺
-   /// </summary>
-   [SugarColumn(ColumnName = "CHECK_QYT")]
-    public decimal? CheckQyt { get; set; }
-
-   /// <summary>
-   ///     妫�楠岀粨鏋�
-   /// </summary>
-   [SugarColumn(ColumnName = "FCHECK_RESU")]
-    public string FcheckResu { get; set; }
-
-   /// <summary>
-   ///     AC鏁伴噺
-   /// </summary>
-   [SugarColumn(ColumnName = "FAC_QTY")]
-    public decimal? FacQty { get; set; }
-
-   /// <summary>
-   ///     RE鏁伴噺
-   /// </summary>
-   [SugarColumn(ColumnName = "FRE_QTY")]
-    public decimal? FreQty { get; set; }
-
-   /// <summary>
-   ///     涓嶅悎鏍兼暟
-   /// </summary>
-   [SugarColumn(ColumnName = "FNG_QTY")]
-    public decimal? FngQty { get; set; }
-
-   /// <summary>
-   ///     涓嶈壇鐜�
-   /// </summary>
-   [SugarColumn(ColumnName = "FNG_RATE")]
-    public decimal? FngRate { get; set; }
-
-   /// <summary>
-   ///     宸插綍鍏ユ暟閲�
-   /// </summary>
-   [SugarColumn(ColumnName = "FENTER_QTY")]
-    public decimal? FenterQty { get; set; }
-
-   /// <summary>
-   /// </summary>
-   [SugarColumn(ColumnName = "RELEASE_NO")]
-    public string ReleaseNo { get; set; }
-
-   /// <summary>
-   /// </summary>
-   [SugarColumn(ColumnName = "COMPANY")]
-    public string Company { get; set; }
-
-   /// <summary>
-   /// </summary>
-   [SugarColumn(ColumnName = "FACTORY")]
-    public string Factory { get; set; }
-
-   /// <summary>
-   ///     妫�楠岄」鐩弿杩�
-   /// </summary>
-   [SugarColumn(ColumnName = "FCHECK_ITEM_DESC")]
-    public string FcheckItemDesc { get; set; }
-
-   /// <summary>
-   ///     宸ュ簭鍙�
-   /// </summary>
-   [SugarColumn(ColumnName = "PROC_NO")]
-    public string ProcNo { get; set; }
-
-   /// <summary>
-   ///     宸ヤ綔涓績缂栫爜
-   /// </summary>
-   [SugarColumn(ColumnName = "WORKSHOP_CENTER_CODE")]
-    public string WorkshopCenterCode { get; set; }
-
-   /// <summary>
-   ///     鍗曚綅
-   /// </summary>
-   [SugarColumn(ColumnName = "FUNIT")]
-    public string Funit { get; set; }
-
-   /// <summary>
-   ///     鐗瑰畾淇敼
-   /// </summary>
-   [SugarColumn(ColumnName = "GIVEN_MODIFY")]
-    public short? GivenModify { get; set; }
-
-   /// <summary>
-   ///     妫�楠屽伐鍏�
-   /// </summary>
-   [SugarColumn(ColumnName = "FCHECK_TOOL")]
-    public string FcheckTool { get; set; }
-
-   /// <summary>
-   ///     鏇存柊浜�
-   /// </summary>
-   [SugarColumn(ColumnName = "LASTUPDATE_BY")]
-    public string LastupdateBy { get; set; }
-
-   /// <summary>
-   ///     鏇存柊鏃堕棿
-   /// </summary>
-   [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
-    public DateTime? LastupdateDate { get; set; }
-}
\ No newline at end of file
+    /// <summary>
+    /// 鏉ユ枡妫�楠屼粠琛�
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
+    public class MesQaItemsDetectDetail5
+    {
+        /// <summary>
+        ///  
+        ///</summary>
+        [Column("ID")]
+         [SugarColumn(ColumnName="ID",OracleSequenceName = "SEQ_QM_ID",IsPrimaryKey = true   )]
+         public decimal ?Id { get; set; }
+        /// <summary>
+        /// 鏍囧噯鍊肩被鍨� 
+        ///</summary>
+         [SugarColumn(ColumnName="FTEXT_TYPE"    )]
+         public string? FtextType { get; set; }
+        /// <summary>
+        /// 鏍囧噯鍊� 
+        ///</summary>
+         [SugarColumn(ColumnName="FSTAND"    )]
+         public string? Fstand { get; set; }
+        /// <summary>
+        /// 涓婂叕宸� 
+        ///</summary>
+         [SugarColumn(ColumnName="FUP_ALLOW"    )]
+         public string? FupAllow { get; set; }
+        /// <summary>
+        /// 涓嬪叕宸� 
+        ///</summary>
+         [SugarColumn(ColumnName="FDOWN_ALLOW"    )]
+         public string? FdownAllow { get; set; }
+        /// <summary>
+        /// 妫�楠屾按鍑� 
+        ///</summary>
+         [SugarColumn(ColumnName="SAMPLE_SIZE_NO"    )]
+         public string? SampleSizeNo { get; set; }
+        /// <summary>
+        /// 妫�楠屾按骞� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_LEVEL"    )]
+         public string? FcheckLevel { get; set; }
+        /// <summary>
+        /// 鎷掓敹姘村钩 
+        ///</summary>
+         [SugarColumn(ColumnName="FAC_LEVEL"    )]
+         public string? FacLevel { get; set; }
+        /// <summary>
+        /// 妫�楠岄」鐩� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_ITEM"    )]
+         public string? FcheckItem { get; set; }
+        /// <summary>
+        /// 瑙勬牸瑕佹眰 
+        ///</summary>
+         [SugarColumn(ColumnName="FSPEC_REQU"    )]
+         public string? FspecRequ { get; set; }
+        /// <summary>
+        /// 鎶芥鏁伴噺 
+        ///</summary>
+         [SugarColumn(ColumnName="CHECK_QYT"    )]
+         public decimal? CheckQyt { get; set; }
+        /// <summary>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_RESU"    )]
+         public string? FcheckResu { get; set; }
+        /// <summary>
+        /// AC鏁伴噺 
+        ///</summary>
+         [SugarColumn(ColumnName="FAC_QTY"    )]
+         public decimal? FacQty { get; set; }
+        /// <summary>
+        /// RE鏁伴噺 
+        ///</summary>
+         [SugarColumn(ColumnName="FRE_QTY"    )]
+         public decimal? FreQty { get; set; }
+        /// <summary>
+        /// 涓嶅悎鏍兼暟 
+        ///</summary>
+         [SugarColumn(ColumnName="FNG_QTY"    )]
+         public decimal? FngQty { get; set; }
+        /// <summary>
+        /// 涓嶈壇鐜� 
+        ///</summary>
+         [SugarColumn(ColumnName="FNG_RATE"    )]
+         public decimal? FngRate { get; set; }
+        /// <summary>
+        /// 宸插綍鍏ユ暟閲� 
+        ///</summary>
+         [SugarColumn(ColumnName="FENTER_QTY"    )]
+         public decimal? FenterQty { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="RELEASE_NO"    )]
+         public string? ReleaseNo { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="COMPANY"    )]
+         public string? Company { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FACTORY"    )]
+         public string? Factory { get; set; }
+        /// <summary>
+        /// 妫�楠岄」鐩弿杩� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_ITEM_DESC"    )]
+         public string? FcheckItemDesc { get; set; }
+        /// <summary>
+        /// 宸ュ簭鍙� 
+        ///</summary>
+         [SugarColumn(ColumnName="PROC_NO"    )]
+         public string? ProcNo { get; set; }
+        /// <summary>
+        /// 宸ヤ綔涓績缂栫爜 
+        ///</summary>
+         [SugarColumn(ColumnName="WORKSHOP_CENTER_CODE"    )]
+         public string? WorkshopCenterCode { get; set; }
+        /// <summary>
+        /// 鍗曚綅 
+        ///</summary>
+         [SugarColumn(ColumnName="FUNIT"    )]
+         public string? Funit { get; set; }
+        /// <summary>
+        /// 鐗瑰畾淇敼 
+        ///</summary>
+         [SugarColumn(ColumnName="GIVEN_MODIFY"    )]
+         public short? GivenModify { get; set; }
+        /// <summary>
+        /// 妫�楠屽伐鍏� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_TOOL"    )]
+         public string? FcheckTool { get; set; }
+        /// <summary>
+        /// 鏇存柊浜� 
+        ///</summary>
+         [SugarColumn(ColumnName="LASTUPDATE_BY"    )]
+         public string? LastupdateBy { get; set; }
+        /// <summary>
+        /// 鏇存柊鏃堕棿 
+        ///</summary>
+         [SugarColumn(ColumnName="LASTUPDATE_DATE"    )]
+         public DateTime? LastupdateDate { get; set; }
+         /// <summary>
+         /// 涓嶈壇鎻忚堪 
+         ///</summary>
+         [SugarColumn(ColumnName="REMARKS"    )]
+         public string? Remarks { get; set; }
+         
+         [SugarColumn(IsIgnore = true)] public int? Unqualified { get; set; }
+    }
+}
diff --git a/MES.Service/service/QC/LljService.cs b/MES.Service/service/QC/LljService.cs
new file mode 100644
index 0000000..2c67b1e
--- /dev/null
+++ b/MES.Service/service/QC/LljService.cs
@@ -0,0 +1,539 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+
+
+namespace MES.Service.service.QC;
+
+public class LljService
+{
+
+    public List<LtsLlj> GetPage(XJPageResult queryObj)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        var id = Convert.ToDecimal(queryObj.id);
+        
+       return db.Queryable<LtsLlj>()
+           .WhereIF(
+               StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+               "鏈畬鎴�".Equals(queryObj.result),
+               (a) =>a.FcheckResu == null)
+           .WhereIF(
+               StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+               !"鏈畬鎴�".Equals(queryObj.result),
+               (a) => a.FcheckResu != null)
+           .WhereIF(id > 0, (a) => a.Id == id)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit);
+        
+    }
+  //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁�
+    public List<MesQaItemsDetectDetail5> SetItems(string itemNo, decimal quantity,string releaseNo)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        
+        var count = db.Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1
+                                                        && s.ItemNo == itemNo && s.FTYPE == "1").Count();
+
+        if (count <= 0) return [];
+
+        var mesQaIqcItem = db
+            .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1
+                                                        && s.ItemNo == itemNo && s.FTYPE == "1").Select(
+                b => new MesQaItemsDetectDetail5
+                {
+                    
+                    ReleaseNo = releaseNo, 
+                    FacLevel = b.FacLevel,        
+                    FcheckItem = b.FcheckItem ,       
+                    FdownAllow = b.FdownAllow,      
+                    FcheckLevel  = b.FREQUENCY,     
+                    Fstand =b.FSTAND,           
+                    FupAllow =  b.FupAllow,  
+                    SampleSizeNo = b.SampleSizeNo ,   
+                    FenterQty = 0,
+                    Factory = "1000", 
+                    Company = "1000",
+                    
+                   
+                   // FcheckItemDesc = "0",
+                   // FcheckResu = "0",
+                    FcheckTool =  b.FcheckTool,
+                    FspecRequ = b.FspecRequ,
+                   // FtextType = "0",
+                   // Funit = "0",
+                   // LastupdateBy = "0",
+                   // ProcNo = "0",
+                   // WorkshopCenterCode = "0"
+                    
+                }).ToList();
+
+        mesQaIqcItem.ForEach(item =>
+        {
+            string LEV = null;
+            switch (item.FcheckLevel)
+            {
+                case string s when s.Contains("S1"):
+                    LEV = "B.FLEVEL_S1";
+                    break;
+                case string s when s.Contains("S2"):
+                    LEV = "B.FLEVEL_S2";
+                    break;
+                case string s when s.Contains("S3"):
+                    LEV = "B.FLEVEL_S3";
+                    break;
+                case string s when s.Contains("S4"):
+                    LEV = "B.FLEVEL_S4";
+                    break;
+                case string s when s.Contains("(I)"):
+                    LEV = "B.FLEVEL_I";
+                    break;
+                case string s when s.Contains("(II)"):
+                    LEV = "B.FLEVEL_II";
+                    break;
+                case string s when s.Contains("(III)"):
+                    LEV = "B.FLEVEL_III";
+                    break;
+                default:
+                    LEV = ""; // 榛樿鍊�
+                    break;
+            }
+
+            var sql =
+                "SELECT " + LEV +
+                " FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL2 B ON B.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO='" +
+                item.SampleSizeNo + "' AND B.LOT_FROM<= " + quantity + "   AND " +
+                quantity + "<=B.LOT_TO";
+
+            var maxBillNo = db.Ado.SqlQuerySingle<string>(sql);
+
+
+            var result = ExtractSubstring(item.FacLevel, '(', ')');
+
+
+            sql = "SELECT FSAMPLE_SIZE_WORD, " + result +
+                  " Result FROM MES_QM_AQL1 A LEFT JOIN MES_QM_AQL3 C ON C.AQL1_ID=A.ID WHERE A.SAMPLE_SIZE_NO= '" +
+                  item.SampleSizeNo + "'  AND SAMPLE_SIZE_WORD= '" + maxBillNo + "'";
+            var resultClass = db.Ado.SqlQuerySingle<ResultClass>(sql);
+
+            item.CheckQyt = resultClass.FSAMPLE_SIZE_WORD;
+            item.FreQty = resultClass.Result;
+        });
+
+        return mesQaIqcItem;
+    }
+
+    private string ExtractSubstring(string input, char startChar, char endChar)
+    {
+        var startIndex = input.IndexOf(startChar);
+        var endIndex = input.IndexOf(endChar, startIndex);
+
+        if (startIndex == -1 || endIndex == -1)
+            // 濡傛灉鏈壘鍒拌捣濮嬪瓧绗︽垨缁撴潫瀛楃锛屽垯杩斿洖绌哄瓧绗︿覆鎴栬�呮姏鍑哄紓甯革紝鏍规嵁瀹為檯鎯呭喌閫夋嫨
+            return string.Empty;
+        // 鎴栬�呮姏鍑哄紓甯�
+        // throw new ArgumentException("Start or end character not found");
+        // 鎻愬彇瀛愬瓧绗︿覆
+        var length = endIndex - startIndex - 1;
+        return input.Substring(startIndex + 1, length);
+    }
+    public int saveItem(LLJDto rkjDto)
+    {
+        var items = rkjDto.items;
+        var userNo = rkjDto.userNo;
+
+        SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            foreach (var item in items) item.ReleaseNo = rkjDto.releaseNo;
+
+            return db.Insertable(items).ExecuteCommand();
+        });
+
+        rkjDto.items = GetItems(rkjDto.releaseNo, null);
+        
+        var db = SqlSugarHelper.GetInstance();
+
+        rkjDto.items.ForEach(s =>
+        {
+            if (s.FupAllow != null  || s.Fstand != null  ||
+                s.FdownAllow != null  ) return;
+            
+            // 娌℃湁褰曞叆鍙傝�冨�硷紝鍒ゆ柇鏈夊灏戜釜NG锛岄偅涔堝綍鍏ョ殑鎶芥缁撴灉蹇呴』鏄疧K鎴栬�匩G锛孨G浠h〃涓嶅悎鏍�
+            var ifck = db.Queryable<MesQaItemsDetectDetail12>()
+                .Where(x => x.FcheckResu == "NG" && x.MainId == s.Id).Count();
+
+            //妫�楠屾槑缁嗘�绘暟
+            var count = db.Queryable<MesQaItemsDetectDetail12>().Where(x1 => x1.MainId == s.Id).Count();
+
+            if (ifck > s.FreQty && s.CheckQyt == count)
+            {
+                s.FcheckResu = "涓嶅悎鏍�";
+            }else if (ifck < s.FreQty && s.CheckQyt == count)
+            {
+                s.FcheckResu = "鍚堟牸";
+            }
+            else
+            {
+                s.FcheckResu = "鏈畬鎴�";
+            }
+            
+            
+            var detail = new MesQaItemsDetectDetail12();
+            detail.MainId = s.Id;
+            detail.ReleaseNo = rkjDto.releaseNo;
+            detail.Fstand = "鈭�";
+            detail.FcheckResu = "OK";
+            detail.LastupdateBy = rkjDto.userNo;
+            detail.count = (int?)s.CheckQyt;
+            SetQSItemDetail(detail);
+        });
+
+        return Convert.ToInt32(rkjDto.gid);
+    }
+    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo, decimal? id)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        
+        return db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>((a, b) =>
+                new JoinQueryInfos(JoinType.Left, a.Id == b.MainId))
+            .Where((a, b) => a.ReleaseNo == releaseNo)
+           // .WhereIF(id > 0, (a, b) => a.Id == id)
+            .GroupBy((a, b) => new
+            {
+                a.Id,
+                a.ReleaseNo, 
+                a.FacLevel,        
+                a.FcheckItem ,       
+                 a.FcheckTool ,      
+                 a.FdownAllow,       
+                 a.FcheckLevel,     
+                 a.Fstand,           
+                 a.FupAllow,        
+                 a.SampleSizeNo ,   
+                 a.FspecRequ ,    
+                 a.FreQty,
+                 a.CheckQyt,
+                 a.FcheckResu
+                
+              
+            }).Select((a, b) => new MesQaItemsDetectDetail5
+            {
+                Id = a.Id,
+                ReleaseNo = a.ReleaseNo,
+                CheckQyt = a.CheckQyt,
+                FacLevel = a.FacLevel,        
+                FcheckItem = a.FcheckItem ,       
+                FcheckTool = a.FcheckTool ,      
+                FdownAllow = a.FdownAllow,       
+                FcheckLevel  = a.FcheckLevel,     
+                Fstand =a.Fstand,           
+                FupAllow = a.FupAllow,        
+                SampleSizeNo = a.SampleSizeNo ,   
+                FspecRequ =a.FspecRequ ,    
+                FreQty  = a.FreQty,
+                Factory = "1000", 
+                Company = "1000",
+                FenterQty = SqlFunc.AggregateCount(b.Id),
+                FcheckResu  = a.FcheckResu
+            }).ToList();
+    }
+    
+    public int SetQSItemDetail(MesQaItemsDetectDetail12 detail)
+    {
+        var dbd = SqlSugarHelper.GetInstance();
+        var oracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            List<MesQaItemsDetectDetail12> result = new();
+            for (var i = 0; i < detail.count; i++)
+            {
+                var item = new MesQaItemsDetectDetail12();
+                item.MainId = detail.MainId;
+                item.ReleaseNo = detail.ReleaseNo;
+                item.Fstand = detail.Fstand;
+                item.FcheckResu = detail.FcheckResu;
+                item.CreateBy = detail.LastupdateBy;
+                item.CreateDate = DateTime.Now;
+                item.Factory = "1000";
+                item.Company = "1000";
+                result.Add(item);
+              
+            }
+            
+            return db.Insertable(result).ExecuteCommand();
+            
+        });
+
+        detail.CreateBy = detail.LastupdateBy;
+       
+       
+        autoResult(detail);
+
+        return oracle;
+    }
+   
+    
+    private int autoResult(MesQaItemsDetectDetail12 detail)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+        var QsItemOqcItem = db.Queryable<MesQaItemsDetectDetail5>()
+            .Single(s => s.Id == detail.MainId);
+
+        if (QsItemOqcItem == null) return 0;
+
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠岀粨鏋�
+        var count = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId).Count();
+        
+        updateDetail5(detail);
+        var result = "";
+
+        //妫�楠屽疄闄呯粨鏋滀笉绛変簬搴旇妫�楠岀殑涓暟鏃剁洿鎺ユ帹鍑�
+        if (QsItemOqcItem.CheckQyt != count) return 0;
+
+        //鍚堟牸鐨勬湁澶氬皯涓�
+        var passCount = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId && s.Fstand == "鈭�").Count();
+        //涓嶅悎鏍肩殑鏈夊灏戜釜
+        var noCount = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId && s.Fstand == "脳").Count();
+
+        if (count == passCount)
+            result = "鍚堟牸";
+        //else if (count - passCount < QsItemOqcItem.FreQty) 
+        //    result = "涓嶅悎鏍�";
+        else if (noCount >= QsItemOqcItem.FreQty) 
+            result = "涓嶅悎鏍�";
+        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
+            db =>
+            {
+                var commit = 0;
+                commit += db.Updateable<MesQaItemsDetectDetail5>()
+                    .SetColumns(s => s.FcheckResu == result)
+                    .SetColumns(s => s.FenterQty == count)
+                    .Where(s => s.Id == detail.MainId)
+                    .ExecuteCommand();
+
+                return commit;
+            });
+
+        var isNull = db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == null).Count();
+
+        if (isNull > 0) return 1;
+
+
+        //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩殑涓暟
+        var sum = db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == detail.ReleaseNo).Count();
+
+        if (sum == 0) return 1;
+
+        //鑾峰彇妫�楠屽崟涓嬬殑鍚堟牸鐨勬楠岄」鐩釜鏁�
+        var icount = db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == "鍚堟牸").Count();
+
+        var FcheckResu = "涓嶅悎鏍�";
+
+        //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾
+        if (sum == icount)
+            //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸
+            FcheckResu = "鍚堟牸";
+
+        var sysUser = db.Queryable<SysUser>()
+            .Where(s => s.Fcode == detail.CreateBy).First();
+
+        SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesQaItemsDetect01>()
+                .SetColumns(s => s.FcheckResu == FcheckResu)
+                .SetColumns(s => s.FcheckDate == DateTime.Now)
+                .SetColumns(s => s.FcheckBy == sysUser.Fname)
+                .SetColumns(s => s.LastupdateBy == detail.CreateBy)
+                .SetColumns(s => s.LastupdateDate == DateTime.Now)
+                .Where(s => s.ReleaseNo == detail.ReleaseNo)
+                .ExecuteCommand();
+        });
+      //  if (FcheckResu.Equals("涓嶅悎鏍�"))
+            //鑷姩鐢熸垚鍏ュ簱妫�寮傚父瀵圭瓥
+       ///     saveDetect02(detail.Id, detail.CreateBy);
+
+        return useTransactionWithOracle;
+    }
+    /*  public int saveDetect02(decimal? gid, string? createBy)
+     {
+         var db = SqlSugarHelper.GetInstance();
+
+         var qsItemOqcReq =
+             db.Queryable<QsItemOqcReq>().Single(s => s.Id == gid);
+
+         var mesInvItemIns = db.Queryable<MesInvItemIns>()
+             .Single(s => s.BillNo == qsItemOqcReq.BillNo);
+
+         var mesSchemeResult = db.Queryable<MesSchemeResult>()
+             .Single(s => s.BillNo == mesInvItemIns.CbillNo);
+
+         var entity = new MesQaItemsDetect02();
+         entity.ItemNo = mesSchemeResult.BoardItem;
+         entity.BoardItem = mesSchemeResult.BoardItem;
+         entity.LineNo = mesSchemeResult.LineNo;
+         entity.Aufnr = mesSchemeResult.TaskNo;
+         entity.ReleaseNo = qsItemOqcReq.ReleaseNo;
+         entity.LotNo = qsItemOqcReq.BillNo;
+         entity.FcheckDate = qsItemOqcReq.FcheckDate;
+         entity.FcheckMemo = qsItemOqcReq.Remarks;
+         entity.Gid = qsItemOqcReq.Id;
+         // entity.PlanQty = qsItemOqcReq.FcheckDate;
+
+
+         entity.FcheckResu = "涓嶅悎鏍�";
+         entity.FcheckLevel = "涓ラ噸";
+         entity.CreateDate = DateTime.Now;
+         entity.Factory = "10000";
+         entity.Company = "1000";
+         entity.Ftype = "4";
+         entity.Fversion = 0;
+         entity.Modify1Flag = 0;
+         entity.IpqcStatus = 0;
+         entity.Fsubmit = 1;
+         entity.CreateBy = createBy;
+         entity.FcheckBy = createBy;
+
+         return SqlSugarHelper.UseTransactionWithOracle(db => db
+             .Insertable(entity)
+             .ExecuteCommand());
+     }
+     */
+    
+    public LLJDto getXjDetail02ById(decimal? id)
+    {
+        var rkjDto = new LLJDto();
+
+        var db = SqlSugarHelper.GetInstance();
+        var qsItemOqcItem =
+            db.Queryable<MesQaItemsDetectDetail5>().Single(s => s.Id == id);
+
+       /* if (qsItemOqcItem.IsPass == 0)
+            qsItemOqcItem.Result = "涓嶅悎鏍�";
+        else if (qsItemOqcItem.IsPass == 1)
+            qsItemOqcItem.Result = "鍚堟牸";
+        else
+            qsItemOqcItem.Result = "鏈畬鎴�";
+
+        if (qsItemOqcItem.Picture is { Length: > 0 })
+            qsItemOqcItem.imageData =
+                Convert.ToBase64String(qsItemOqcItem.Picture);
+*/
+        //鑾峰彇涓嶅悎鏍兼暟
+        var count = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.Fstand == "脳" && s.MainId == id).Count();
+
+        qsItemOqcItem.Unqualified = count;
+
+        rkjDto.ItemXj01 = qsItemOqcItem;
+
+
+        rkjDto.ItemXj02s = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == id)
+            .ToList();
+
+        return rkjDto;
+    }
+
+    public int UpdateQSItemDetail(MesQaItemsDetectDetail12 detail)
+    {
+        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesQaItemsDetectDetail12>()
+                .SetColumns(s => s.LastupdateBy == detail.LastupdateBy)
+               // .SetColumns(s => s.LastupdateDate == DateTime.Now)
+                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand),
+                
+                    s => s.Fstand == detail.Fstand)
+                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu),
+                    s => s.FcheckResu == detail.FcheckResu)
+                .Where(s => s.MainId == detail.MainId && s.Id == detail.Id)
+                .ExecuteCommand();
+        });
+
+        detail.CreateBy = detail.LastupdateBy;
+
+        withOracle += autoResult(detail);
+
+        return withOracle;
+    }
+//鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺  
+    private int updateDetail5(MesQaItemsDetectDetail12 detail)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠屾暟閲�
+        var count = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId).Count();
+        
+        //鑾峰彇涓嶅悎鏍兼暟
+        var countNo = db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId && s.Fstand == "脳").Count();
+        //鏇存柊妫�楠屾槑缁嗗凡妫�鏁伴噺  
+        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesQaItemsDetectDetail5>()
+                .SetColumns(s => s.FenterQty == count)
+                .SetColumns(s => s.FngQty == countNo)
+                .Where(s => s.Id == detail.MainId)
+                .ExecuteCommand();
+        });
+        
+        return withOracle;
+    }
+    //涓昏〃淇敼澶囨敞瀛楁
+    public int saveRemarksGid(LLJDto dto)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesQaItemsDetect01>()
+                .SetColumns(it =>
+                    it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .Where(it => it.ReleaseNo == dto.releaseNo)
+                .ExecuteCommand();
+        });
+    }
+    //瀛愯〃淇敼澶囨敞瀛楁
+    public int saveRemarksPid(LLJDto dto)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesQaItemsDetectDetail5>()
+                .SetColumns(it =>
+                    it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .Where(it => it.Id == dto.pid)
+                .ExecuteCommand();
+        });
+    }
+    
+    //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛�
+    public int removeXJ(string? releaseNo)
+    {
+        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            var commit = 0;
+            //鍒犻櫎涓昏〃
+            commit += db.Deleteable<MesQaItemsDetect01>().Where(s => s.ReleaseNo == releaseNo)
+                .ExecuteCommand();
+            //鍒犻櫎瀛愯〃
+            commit += db.Deleteable<MesQaItemsDetectDetail5>().Where(s => s.ReleaseNo == releaseNo)
+                .ExecuteCommand();
+            //鍒犻櫎瀛欒〃
+            commit += db.Deleteable<MesQaItemsDetectDetail12>()
+                .Where(s => s.ReleaseNo == releaseNo)
+                .ExecuteCommand();
+            return commit;
+        });
+
+        return withOracle;
+    }
+}
\ No newline at end of file
diff --git a/MESApplication/Controllers/QC/LljController.cs b/MESApplication/Controllers/QC/LljController.cs
new file mode 100644
index 0000000..e14f96f
--- /dev/null
+++ b/MESApplication/Controllers/QC/LljController.cs
@@ -0,0 +1,252 @@
+锘縰sing System.Dynamic;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.service.QC;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+
+namespace MESApplication.Controllers.QC;
+
+[Route("api/[controller]")]
+[ApiController]
+public class LljController: ControllerBase
+{
+    
+    [HttpPost("getPage")]
+    public ResponseResult getPage([FromBody] XJPageResult queryObj)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().GetPage(queryObj);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+
+    [HttpPost("setJYItem")]
+    public ResponseResult setJYItem([FromBody] JObject data)
+    {
+        var itemNo = data["itemNo"].ToString();
+        var quantity = Convert.ToDecimal(data["quantity"].ToString());
+        var releaseNo = data["releaseNo"].ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().SetItems(itemNo, quantity,releaseNo);
+            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] LLJDto lljDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().saveItem(lljDto);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    //getItems
+    [HttpPost("getJYItem")]
+    public ResponseResult getJYItem([FromBody] JObject data)
+    {
+       
+        var id  = data["id"]?.ToString();
+        var releaseNo = data["releaseNo"]?.ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().GetItems(releaseNo,
+                    Convert.ToDecimal(id));
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //getXjDetail02ById
+    [HttpPost("getXjDetail02ById")]
+    public ResponseResult getXjDetail02ById([FromBody] JObject data)
+    {
+        var id = data["id"]?.ToString();
+
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().getXjDetail02ById(Convert.ToDecimal(id));
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    
+    [HttpPost("SetQSItemDetail")]
+    public ResponseResult SetQSItemDetail([FromBody] MesQaItemsDetectDetail12 detail)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = new LljService();
+            var detail021 = tbBillList.SetQSItemDetail(detail);
+            resultInfos.tbBillList = detail021;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("UpdateQSItemDetail")]
+    public ResponseResult UpdateQSItemDetail(
+        [FromBody] MesQaItemsDetectDetail12 detail)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = new LljService();
+            var detail021 = tbBillList.UpdateQSItemDetail(detail);
+            resultInfos.tbBillList = detail021;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //saveRemarksGid 涓昏〃娣诲姞涓嶅悎鏍兼弿杩�
+    [HttpPost("saveRemarksGid")]
+    public ResponseResult saveRemarksGid([FromBody] LLJDto rkjDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().saveRemarksGid(rkjDto);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    //saveRemarksPid 瀛愯〃娣诲姞涓嶅悎鏍兼弿杩�
+    [HttpPost("saveRemarksPid")]
+    public ResponseResult saveRemarksPid([FromBody] LLJDto rkjDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().saveRemarksPid(rkjDto);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //removeXJ 鍒犻櫎
+    [HttpPost("removeXJ")]
+    public ResponseResult removeXJ([FromBody] JObject data)
+    {
+        var releaseNo = data["releaseNo"]?.ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().removeXJ(releaseNo);
+            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