From 35558fe5ed20893bb9595e9688e3e6db67f2f76d Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 19 二月 2025 20:32:25 +0800
Subject: [PATCH] iqc来料检验

---
 StandardPda/MES.Service/Modes/MesQaItemsDetectDetail5.cs       |  298 +++---
 StandardPda/MESApplication/Controllers/QC/LljController.cs     |  276 ++++++
 StandardPda/MESApplication/appsettings.json                    |    2 
 StandardPda/MES.Service/service/BasicData/MesStaffManager.cs   |    2 
 StandardPda/MES.Service/service/QC/LljService.cs               |  628 ++++++++++++++
 StandardPda/MES.Service/Dto/service/LLJDto.cs                  |   36 
 StandardPda/MES.Service/Modes/IqcBefore.cs                     |   27 
 StandardPda/MES.Service/Modes/MesQaItemsDetectDetail12.cs      |   88 ++
 StandardPda/MES.Service/service/LoginService.cs                |   88 ++
 StandardPda/MES.Service/Modes/MesRohIn.cs                      |    2 
 StandardPda/MESApplication/Controllers/Base/LoginController.cs |  108 ++
 StandardPda/MES.Service/Modes/LtsLlj.cs                        |  172 +++
 StandardPda/MES.Service/Modes/MesQaIqc.cs                      |   85 +
 StandardPda/MES.Service/Modes/MesQaItemsDetect01.cs            |  705 +++++++++------
 StandardPda/MES.Service/service/BasicData/MesRohInManager.cs   |    2 
 StandardPda/MES.Service/util/UserUtil.cs                       |   17 
 StandardPda/MES.Service/Modes/IqcBeforeFrom.cs                 |   53 +
 StandardPda/MES.Service/Modes/SysUser.cs                       |    2 
 StandardPda/MES.Service/util/ResponseResult.cs                 |    2 
 19 files changed, 2,170 insertions(+), 423 deletions(-)

diff --git a/StandardPda/MES.Service/Dto/service/LLJDto.cs b/StandardPda/MES.Service/Dto/service/LLJDto.cs
new file mode 100644
index 0000000..6ee2a7b
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/service/LLJDto.cs
@@ -0,0 +1,36 @@
+锘縰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/StandardPda/MES.Service/Modes/IqcBefore.cs b/StandardPda/MES.Service/Modes/IqcBefore.cs
new file mode 100644
index 0000000..917f19d
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/IqcBefore.cs
@@ -0,0 +1,27 @@
+锘�
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 鐢ㄦ埛瀵瑰簲鐨勭墿鏂欐楠岃〃
+    ///</summary>
+    [SugarTable("IQC_BEFORE")]
+    public class IqcBefore
+    {
+        /// <summary>
+        /// SEQ_IQC_Before 
+        ///</summary>
+         [SugarColumn(ColumnName="ID" ,IsPrimaryKey = true   )]
+         public decimal Id { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛id 
+        ///</summary>
+         [SugarColumn(ColumnName="SID"    )]
+         public decimal Sid { get; set; }
+        /// <summary>
+        /// 鐗╂枡id 
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_ID"    )]
+         public decimal ItemId { get; set; }
+    }
+}
diff --git a/StandardPda/MES.Service/Modes/IqcBeforeFrom.cs b/StandardPda/MES.Service/Modes/IqcBeforeFrom.cs
new file mode 100644
index 0000000..1339ecc
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/IqcBeforeFrom.cs
@@ -0,0 +1,53 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 鐢ㄦ埛瀵瑰簲鐨勭墿鏂欐楠屼富琛�
+    ///</summary>
+    [SugarTable("IQC_BEFORE_FROM")]
+    public class IqcBeforeFrom
+    {
+        /// <summary>
+        /// SEQ_IQC_Before 
+        ///</summary>
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        public decimal Id { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛id 
+        ///</summary>
+        [SugarColumn(ColumnName = "SID")]
+        public decimal? Sid { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛鍚� 
+        ///</summary>
+        [SugarColumn(ColumnName = "USER_NAME")]
+        public string? UserName { get; set; }
+
+        /// <summary>
+        /// 缁勭粐id 
+        ///</summary>
+        [SugarColumn(ColumnName = "ORGANIZE_ID")]
+        public string? OrganizeId { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CHECK_USER")]
+        public string? CheckUser { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "CHECK_DATE")]
+        public DateTime? CheckDate { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鐘舵��(榛樿鍊硷細0) 
+        ///</summary>
+        [SugarColumn(ColumnName = "STATUS")]
+        public short? Status { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/LtsLlj.cs b/StandardPda/MES.Service/Modes/LtsLlj.cs
new file mode 100644
index 0000000..8f0af97
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/LtsLlj.cs
@@ -0,0 +1,172 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鏁版嵁婧愬鍏�
+/// </summary>
+[SugarTable("V_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; }
+
+    [SugarColumn(ColumnName = "ITEM_ID")] public decimal ItemId { 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 DateTime? CreateDate { get; set; }
+
+    [SugarColumn(ColumnName = "USER_NO")] public string? UserNo { get; set; }
+
+    [SugarColumn(ColumnName = "MODIFY1_BY")]
+    public string? Modify1By { get; set; }
+
+    [SugarColumn(ColumnName = "MODIFY1_DATE")]
+    public DateTime? Modify1Date { get; set; }
+
+    [SugarColumn(ColumnName = "IQC_DATE")]
+    public DateTime? IqcDate { 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; }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesQaIqc.cs b/StandardPda/MES.Service/Modes/MesQaIqc.cs
new file mode 100644
index 0000000..f79b200
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesQaIqc.cs
@@ -0,0 +1,85 @@
+锘縰sing 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 decimal? 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; }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesQaItemsDetect01.cs b/StandardPda/MES.Service/Modes/MesQaItemsDetect01.cs
index 2a26d0c..71b0a9e 100644
--- a/StandardPda/MES.Service/Modes/MesQaItemsDetect01.cs
+++ b/StandardPda/MES.Service/Modes/MesQaItemsDetect01.cs
@@ -1,331 +1,488 @@
-锘縰sing SqlSugar;
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
 
-namespace MES.Service.Modes;
-
-/// <summary>
-///     鏉ユ枡鍏ュ簱妫�楠岃〃澶�
-/// </summary>
-[SugarTable("MES_QA_ITEMS_DETECT_01")]
-public class MesQaItemsDetect01
+namespace MES.Service.Modes
 {
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
-    public decimal Id { get; set; }
+    /// <summary>
+    /// 鏉ユ枡鍏ュ簱妫�楠岃〃澶�
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_01")]
+    public class MesQaItemsDetect01
+    {
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        public decimal Id { get; set; }
 
- /// <summary>
- ///     妫�楠屽崟鍙�
- /// </summary>
- [SugarColumn(ColumnName = "RELEASE_NO")]
-    public string ReleaseNo { get; set; }
+        /// <summary>
+        /// 妫�楠屽崟鍙� 
+        ///</summary>
+        [SugarColumn(ColumnName = "RELEASE_NO")]
+        public string ReleaseNo { get; set; }
 
- /// <summary>
- ///     妫�楠屾棩鏈�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_DATE")]
-    public DateTime? FcheckDate { get; set; }
+        /// <summary>
+        /// 妫�楠屾棩鏈� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_DATE")]
+        public DateTime? FcheckDate { get; set; }
 
- /// <summary>
- ///     妫�楠屼汉鍛�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_BY")]
-    public string FcheckBy { get; set; }
+        /// <summary>
+        /// 妫�楠屼汉鍛� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_BY")]
+        public string FcheckBy { get; set; }
 
- /// <summary>
- ///     鐗╂枡缂栫爜
- /// </summary>
- [SugarColumn(ColumnName = "ITEM_NO")]
-    public string ItemNo { get; set; }
+        /// <summary>
+        /// 鐗╂枡缂栫爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_NO")]
+        public string ItemNo { get; set; }
 
- /// <summary>
- ///     鏉ユ枡鏁伴噺
- /// </summary>
- [SugarColumn(ColumnName = "FBATCH_QTY")]
-    public decimal? FbatchQty { get; set; }
+        /// <summary>
+        /// 鏉ユ枡鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "FBATCH_QTY")]
+        public decimal? FbatchQty { get; set; }
 
- /// <summary>
- ///     鍒ゅ畾缁撴灉
- /// </summary>
- [SugarColumn(ColumnName = "FRECE_QTY")]
-    public string FreceQty { get; set; }
+        /// <summary>
+        /// 鎺ユ敹鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "FRECE_QTY")]
+        public string FreceQty { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "SUPP_NO")]
-    public string SuppNo { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟嗙紪鍙� 
+        ///</summary>
+        [SugarColumn(ColumnName = "SUPP_NO")]
+        public string SuppNo { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FNG_DESC")]
-    public string FngDesc { get; set; }
+        /// <summary>
+        /// 澶囨敞 
+        ///</summary>
+        [SugarColumn(ColumnName = "FNG_DESC")]
+        public string FngDesc { get; set; }
 
- /// <summary>
- ///     妫�楠岀粨鏋�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_RESU")]
-    public string FcheckResu { get; set; }
+        /// <summary>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_RESU")]
+        public string FcheckResu { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FREVIEW")]
-    public string Freview { get; set; }
+        /// <summary>
+        /// OA璇勫鍙嶉 
+        ///</summary>
+        [SugarColumn(ColumnName = "FREVIEW")]
+        public string Freview { get; set; }
 
- /// <summary>
- ///     妫�楠屾按鍑�
- /// </summary>
- [SugarColumn(ColumnName = "SAMPLE_SIZE_NO")]
-    public string SampleSizeNo { 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 = "FCHECK_LEVEL")]
+        public string FcheckLevel { get; set; }
 
- /// <summary>
- ///     鎷掓敹姘村钩
- /// </summary>
- [SugarColumn(ColumnName = "FAC_LEVEL")]
-    public string FacLevel { get; set; }
+        /// <summary>
+        /// 鎷掓敹姘村钩 
+        ///</summary>
+        [SugarColumn(ColumnName = "FAC_LEVEL")]
+        public string FacLevel { get; set; }
 
- /// <summary>
- ///     鎶芥鏁伴噺
- /// </summary>
- [SugarColumn(ColumnName = "CHECK_QTY")]
-    public string CheckQty { get; set; }
+        /// <summary>
+        /// 鎶芥鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "CHECK_QTY")]
+        public string CheckQty { get; set; }
 
- /// <summary>
- ///     鎵规鍙�  --鍒拌揣鍗曞彿
- /// </summary>
- [SugarColumn(ColumnName = "LOT_NO")]
-    public string LotNo { get; set; }
+        /// <summary>
+        /// 鎵规鍙�  --鍒拌揣鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "LOT_NO")]
+        public string LotNo { get; set; }
 
- /// <summary>
- ///     鏄惁鎺ㄩ��
- /// </summary>
- [SugarColumn(ColumnName = "FMOVE")]
-    public string Fmove { get; set; }
+        /// <summary>
+        /// 鏄惁鎺ㄩ�� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FMOVE")]
+        public string Fmove { get; set; }
 
- /// <summary>
- ///     鏄惁澶勭悊
- /// </summary>
- [SugarColumn(ColumnName = "FHANDLE")]
-    public string Fhandle { get; set; }
+        /// <summary>
+        /// 鏄惁澶勭悊 
+        ///</summary>
+        [SugarColumn(ColumnName = "FHANDLE")]
+        public string Fhandle { get; set; }
 
- /// <summary>
- ///     鍒涘缓浜�
- /// </summary>
- [SugarColumn(ColumnName = "CREATE_BY")]
-    public string CreateBy { get; set; }
+        /// <summary>
+        /// 鍒涘缓浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_BY")]
+        public string CreateBy { get; set; }
 
- /// <summary>
- ///     鍒涘缓鏃ユ湡
- /// </summary>
- [SugarColumn(ColumnName = "CREATE_DATE")]
-    public DateTime? CreateDate { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_DATE")]
+        public DateTime? CreateDate { get; set; }
 
- /// <summary>
- ///     鏇存柊浜�
- /// </summary>
- [SugarColumn(ColumnName = "LASTUPDATE_BY")]
-    public string LastupdateBy { 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 = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
 
- /// <summary>
- ///     鏄惁瀹℃牳
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_FLAG")]
-    public decimal? Modify1Flag { get; set; }
+        /// <summary>
+        /// 鏄惁瀹℃牳 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_FLAG")]
+        public decimal? Modify1Flag { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_BY")]
-    public string Modify1By { get; set; }
+        /// <summary>
+        /// 瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_BY")]
+        public string Modify1By { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_DATE")]
-    public DateTime? Modify1Date { get; set; }
+        /// <summary>
+        /// 瀹℃牳鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_DATE")]
+        public DateTime? Modify1Date { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FACTORY")]
-    public string Factory { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "FACTORY")]
+        public string Factory { get; set; }
 
- /// <summary>
- ///     XRF娴嬭瘯鎶ュ憡缂栧彿
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_REPNO")]
-    public string FcheckRepno { get; set; }
+        /// <summary>
+        /// XRF娴嬭瘯鎶ュ憡缂栧彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_REPNO")]
+        public string FcheckRepno { get; set; }
 
- /// <summary>
- ///     绗笁鏂规姤鍛�
- /// </summary>
- [SugarColumn(ColumnName = "FTHIRD_REP")]
-    public string FthirdRep { get; set; }
+        /// <summary>
+        /// 绗笁鏂规姤鍛� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FTHIRD_REP")]
+        public string FthirdRep { get; set; }
 
- /// <summary>
- ///     鏄惁浣滃簾
- /// </summary>
- [SugarColumn(ColumnName = "FCANCEL")]
-    public decimal? Fcancel { get; set; }
+        /// <summary>
+        /// 鏄惁浣滃簾 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCANCEL")]
+        public decimal? Fcancel { get; set; }
 
- /// <summary>
- ///     鎻愪氦鏍囪瘑
- /// </summary>
- [SugarColumn(ColumnName = "FSUBMIT")]
-    public decimal? Fsubmit { get; set; }
+        /// <summary>
+        /// 鎻愪氦鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "FSUBMIT")]
+        public decimal? Fsubmit { get; set; }
 
- /// <summary>
- ///     妫�楠屼緷鎹�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_ACCORD")]
-    public string FcheckAccord { get; set; }
+        /// <summary>
+        /// 妫�楠屼緷鎹� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_ACCORD")]
+        public string FcheckAccord { get; set; }
 
- /// <summary>
- ///     绫诲瀷(0 鏉ユ枡 1 鍦ㄥ簱)
- /// </summary>
- [SugarColumn(ColumnName = "FTYPE")]
-    public short? Ftype { get; set; }
+        /// <summary>
+        /// 绫诲瀷(0 鏉ユ枡 1 鍦ㄥ簱) 
+        ///</summary>
+        [SugarColumn(ColumnName = "FTYPE")]
+        public short? Ftype { get; set; }
 
- /// <summary>
- ///     鍗曚綅
- /// </summary>
- [SugarColumn(ColumnName = "ITEM_UNIT")]
-    public string ItemUnit { get; set; }
+        /// <summary>
+        /// 鍗曚綅 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_UNIT")]
+        public string ItemUnit { get; set; }
 
- /// <summary>
- ///     鍑鸿揣鏃ユ湡
- /// </summary>
- [SugarColumn(ColumnName = "OUT_DATE")]
-    public string OutDate { get; set; }
+        /// <summary>
+        /// 鍑鸿揣鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "OUT_DATE")]
+        public string OutDate { get; set; }
 
- /// <summary>
- ///     鏄惁鍏嶆
- /// </summary>
- [SugarColumn(ColumnName = "FEXEMPTION")]
-    public decimal? Fexemption { get; set; }
+        /// <summary>
+        /// 鏄惁鍏嶆 
+        ///</summary>
+        [SugarColumn(ColumnName = "FEXEMPTION")]
+        public decimal? Fexemption { get; set; }
 
- /// <summary>
- ///     妗d綅鏍囧噯
- /// </summary>
- [SugarColumn(ColumnName = "FGEAR_STAND")]
-    public string FgearStand { get; set; }
+        /// <summary>
+        /// 妗d綅鏍囧噯 
+        ///</summary>
+        [SugarColumn(ColumnName = "FGEAR_STAND")]
+        public string FgearStand { get; set; }
 
- /// <summary>
- ///     涓嶈壇澶勭悊鏂规硶
- /// </summary>
- [SugarColumn(ColumnName = "FNG_HANDLE")]
-    public string FngHandle { get; set; }
+        /// <summary>
+        /// 涓嶈壇鏈�缁堝鐞嗘柟寮� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FNG_HANDLE")]
+        public string FngHandle { get; set; }
 
- /// <summary>
- ///     绠$悊缂栧彿
- /// </summary>
- [SugarColumn(ColumnName = "FMANAGE_NO")]
-    public string FmanageNo { get; set; }
+        /// <summary>
+        /// 绠$悊缂栧彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "FMANAGE_NO")]
+        public string FmanageNo { get; set; }
 
- /// <summary>
- ///     杞崲鏁伴噺
- /// </summary>
- [SugarColumn(ColumnName = "FCOVERT_QTY")]
-    public string FcovertQty { get; set; }
+        /// <summary>
+        /// 杞崲鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCOVERT_QTY")]
+        public string FcovertQty { get; set; }
 
- /// <summary>
- ///     鐗堟湰
- /// </summary>
- [SugarColumn(ColumnName = "FVERSION")]
-    public decimal? Fversion { get; set; }
+        /// <summary>
+        /// 鐗堟湰 
+        ///</summary>
+        [SugarColumn(ColumnName = "FVERSION")]
+        public decimal? Fversion { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "COMPANY")]
-    public string Company { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "COMPANY")]
+        public string Company { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FSECOND_RESU")]
-    public string FsecondResu { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "FSECOND_RESU")]
+        public string FsecondResu { get; set; }
 
- /// <summary>
- ///     鏈�澶ф娊妫�鏁�
- /// </summary>
- [SugarColumn(ColumnName = "MAX_CHECK_QTY")]
-    public decimal? MaxCheckQty { get; set; }
+        /// <summary>
+        /// 鏈�澶ф娊妫�鏁� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MAX_CHECK_QTY")]
+        public decimal? MaxCheckQty { get; set; }
 
- /// <summary>
- ///     鐗瑰畾淇敼鏄惁瀹℃牳
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_FLAG1")]
-    public decimal? Modify1Flag1 { get; set; }
+        /// <summary>
+        /// 鐗瑰畾淇敼鏄惁瀹℃牳 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_FLAG1")]
+        public decimal? Modify1Flag1 { get; set; }
 
- /// <summary>
- ///     鐗瑰畾淇敼瀹℃牳浜�
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_BY1")]
-    public string Modify1By1 { get; set; }
+        /// <summary>
+        /// 鐗瑰畾淇敼瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_BY1")]
+        public string Modify1By1 { get; set; }
 
- /// <summary>
- ///     鐗瑰畾淇敼瀹℃牳鏃堕棿
- /// </summary>
- [SugarColumn(ColumnName = "MODIFY1_DATE1")]
-    public DateTime? Modify1Date1 { get; set; }
+        /// <summary>
+        /// 鐗瑰畾淇敼瀹℃牳鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "MODIFY1_DATE1")]
+        public DateTime? Modify1Date1 { get; set; }
 
- /// <summary>
- ///     灏忔壒娆″彿
- /// </summary>
- [SugarColumn(ColumnName = "LOT_NO1")]
-    public string LotNo1 { get; set; }
+        /// <summary>
+        /// 灏忔壒娆″彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "LOT_NO1")]
+        public string LotNo1 { get; set; }
 
- /// <summary>
- ///     閲囪喘鍗曞彿
- /// </summary>
- [SugarColumn(ColumnName = "LOT_NO2")]
-    public string LotNo2 { get; set; }
+        /// <summary>
+        /// 閲囪喘鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "LOT_NO2")]
+        public string LotNo2 { get; set; }
 
- /// <summary>
- ///     浜у搧鍨嬪彿
- /// </summary>
- [SugarColumn(ColumnName = "BOARD_STYLE")]
-    public string BoardStyle { get; set; }
+        /// <summary>
+        /// 浜у搧鍨嬪彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "BOARD_STYLE")]
+        public string BoardStyle { get; set; }
 
- /// <summary>
- ///     浠诲姟鍗曞彿
- /// </summary>
- [SugarColumn(ColumnName = "WORK_NO")]
-    public string WorkNo { get; set; }
+        /// <summary>
+        /// 浠诲姟鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "WORK_NO")]
+        public string WorkNo { get; set; }
 
- /// <summary>
- ///     鍒拌揣鏃堕棿
- /// </summary>
- [SugarColumn(ColumnName = "DHA018")]
-    public string Dha018 { get; set; }
+        /// <summary>
+        /// 鍒拌揣鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "DHA018")]
+        public string Dha018 { get; set; }
 
- /// <summary>
- ///     琛屽彿
- /// </summary>
- [SugarColumn(ColumnName = "DHB002")]
-    public decimal? Dhb002 { get; set; }
+        /// <summary>
+        /// 琛屽彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "DHB002")]
+        public decimal? Dhb002 { get; set; }
 
- /// <summary>
- ///     鍒拌揣鍗曞彿
- /// </summary>
- [SugarColumn(ColumnName = "DHB001")]
-    public string Dhb001 { get; set; }
+        /// <summary>
+        /// 鍒拌揣鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "DHB001")]
+        public string Dhb001 { get; set; }
 
- /// <summary>
- ///     渚涘簲鍟�
- /// </summary>
- [SugarColumn(ColumnName = "LIFNR")]
-    public string Lifnr { get; set; }
+        /// <summary>
+        /// 渚涘簲鍟� 
+        ///</summary>
+        [SugarColumn(ColumnName = "LIFNR")]
+        public string Lifnr { get; set; }
 
- /// <summary>
- ///     閫�鏂欐柟寮�
- /// </summary>
- [SugarColumn(ColumnName = "FMRMODE")]
-    public string Fmrmode { get; set; }
+        /// <summary>
+        /// 閫�鏂欐柟寮� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FMRMODE")]
+        public string Fmrmode { get; set; }
+
+        /// <summary>
+        /// erp杩斿洖淇℃伅 
+        ///</summary>
+        [SugarColumn(ColumnName = "MSG")]
+        public string Msg { get; set; }
+
+        /// <summary>
+        /// 鐘舵�� 
+        ///</summary>
+        [SugarColumn(ColumnName = "STATES")]
+        public string States { get; set; }
+
+        /// <summary>
+        /// IQC鎻愪氦鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "IQC_DATE")]
+        public DateTime? IqcDate { get; set; }
+
+        /// <summary>
+        /// 閲囪喘璁㈠崟ID 
+        ///</summary>
+        [SugarColumn(ColumnName = "EBELN_K3ID")]
+        public decimal? EbelnK3id { get; set; }
+
+        /// <summary>
+        /// 閲囪喘璁㈠崟琛孖D 
+        ///</summary>
+        [SugarColumn(ColumnName = "LINE_K3ID")]
+        public decimal? LineK3id { get; set; }
+
+        /// <summary>
+        /// 鍝佽川瀹℃牳鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "QUALITY_AUDIT")]
+        public decimal? QualityAudit { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡ID 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_ID")]
+        public decimal? ItemId { get; set; }
+
+        /// <summary>
+        /// 楠屾敹鏁� 
+        ///</summary>
+        [SugarColumn(ColumnName = "YANS_NUM")]
+        public decimal? YansNum { get; set; }
+
+        /// <summary>
+        /// 楠岄��鏁� 
+        ///</summary>
+        [SugarColumn(ColumnName = "YANT_NUM")]
+        public decimal? YantNum { get; set; }
+
+        /// <summary>
+        /// 閲囪喘瀹℃牳鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "CG_AUDIT")]
+        public decimal? CgAudit { get; set; }
+
+        /// <summary>
+        /// 閲囪喘鎰忚 
+        ///</summary>
+        [SugarColumn(ColumnName = "CG_OPINION")]
+        public string CgOpinion { get; set; }
+
+        /// <summary>
+        /// 閲囪喘澶勭悊鏂瑰紡 
+        ///</summary>
+        [SugarColumn(ColumnName = "CG_HANDLE")]
+        public string CgHandle { get; set; }
+
+        /// <summary>
+        /// 鍝佽川鎰忚 
+        ///</summary>
+        [SugarColumn(ColumnName = "QC_OPINION")]
+        public string QcOpinion { get; set; }
+
+        /// <summary>
+        /// 鍝佽川澶勭悊鏂瑰紡 
+        ///</summary>
+        [SugarColumn(ColumnName = "QC_HANDLE")]
+        public string QcHandle { get; set; }
+
+        /// <summary>
+        /// 缁忕悊瀹℃牳鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "MANAGER_AUDIT")]
+        public decimal? ManagerAudit { get; set; }
+
+        /// <summary>
+        /// 缁忕悊鎰忚 
+        ///</summary>
+        [SugarColumn(ColumnName = "MANAGER_OPINION")]
+        public string ManagerOpinion { get; set; }
+
+        /// <summary>
+        /// 缁忕悊澶勭悊鏂瑰紡 
+        ///</summary>
+        [SugarColumn(ColumnName = "MANAGER_HANDLE")]
+        public string ManagerHandle { get; set; }
+
+        /// <summary>
+        /// 閿�鍞鍗� 
+        ///</summary>
+        [SugarColumn(ColumnName = "SALES_ORDER")]
+        public string SalesOrder { get; set; }
+
+        /// <summary>
+        /// 閲囪喘瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CG_USER")]
+        public string CgUser { get; set; }
+
+        /// <summary>
+        /// 鍝佽川瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "QC_USER")]
+        public string QcUser { get; set; }
+
+        /// <summary>
+        /// 缁忕悊瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MANAGER_USER")]
+        public string ManagerUser { get; set; }
+
+        /// <summary>
+        /// 璁″垝璺熻釜鍙� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FMTONO")]
+        public string Fmtono { get; set; }
+
+        /// <summary>
+        /// 瀹為獙瀹ら�佹鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "IS_SJ")]
+        public decimal? IsSj { get; set; }
+
+        /// <summary>
+        /// 瀹為獙瀹ら�佹鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "SJ_NO")]
+        public string SjNo { get; set; }
+    }
 }
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail12.cs b/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail12.cs
new file mode 100644
index 0000000..479f7f7
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail12.cs
@@ -0,0 +1,88 @@
+锘縰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", 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 = "ITEM_BARCODE")]
+        public string ItemBarcode { 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; }
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail5.cs b/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail5.cs
index d6159cc..ba13fce 100644
--- a/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail5.cs
+++ b/StandardPda/MES.Service/Modes/MesQaItemsDetectDetail5.cs
@@ -1,174 +1,184 @@
-锘縰sing SqlSugar;
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
 
-namespace MES.Service.Modes;
-
-/// <summary>
-///     鏉ユ枡妫�楠屼粠琛�
-/// </summary>
-[SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
-public class MesQaItemsDetectDetail5
+namespace MES.Service.Modes
 {
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
-    public decimal Id { get; set; }
+    /// <summary>
+    /// 鏉ユ枡妫�楠屼粠琛�
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
+    public class MesQaItemsDetectDetail5
+    {
+        /// <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 = "FTEXT_TYPE")]
+        public string FtextType { get; set; }
 
- /// <summary>
- ///     鏍囧噯鍊�
- /// </summary>
- [SugarColumn(ColumnName = "FSTAND")]
-    public decimal? Fstand { 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 = "FUP_ALLOW")]
+        public string FupAllow { get; set; }
 
- /// <summary>
- ///     涓嬪叕宸�
- /// </summary>
- [SugarColumn(ColumnName = "FDOWN_ALLOW")]
-    public string FdownAllow { 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 = "SAMPLE_SIZE_NO")]
+        public string SampleSizeNo { get; set; }
 
- /// <summary>
- ///     妫�楠屾按骞�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_LEVEL")]
-    public string FcheckLevel { 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 = "FAC_LEVEL")]
+        public string FacLevel { get; set; }
 
- /// <summary>
- ///     妫�楠岄」鐩�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_ITEM")]
-    public string FcheckItem { 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 = "FSPEC_REQU")]
+        public string FspecRequ { get; set; }
 
- /// <summary>
- ///     鎶芥鏁伴噺
- /// </summary>
- [SugarColumn(ColumnName = "CHECK_QYT")]
-    public decimal? CheckQyt { 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>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+        [SugarColumn(ColumnName = "FCHECK_RESU")]
+        public string FcheckResu { get; set; }
 
- /// <summary>
- ///     AC鏁伴噺
- /// </summary>
- [SugarColumn(ColumnName = "FAC_QTY")]
-    public decimal? FacQty { 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>
+        /// 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_QTY")]
+        public decimal? FngQty { get; set; }
 
- /// <summary>
- ///     涓嶈壇鐜�
- /// </summary>
- [SugarColumn(ColumnName = "FNG_RATE")]
-    public decimal? FngRate { 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 = "FENTER_QTY")]
+        public decimal? FenterQty { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "RELEASE_NO")]
-    public string ReleaseNo { 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 = "COMPANY")]
+        public string Company { get; set; }
 
- /// <summary>
- /// </summary>
- [SugarColumn(ColumnName = "FACTORY")]
-    public string Factory { 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 = "FCHECK_ITEM_DESC")]
+        public string FcheckItemDesc { get; set; }
 
- /// <summary>
- ///     宸ュ簭鍙�
- /// </summary>
- [SugarColumn(ColumnName = "PROC_NO")]
-    public string ProcNo { 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 = "WORKSHOP_CENTER_CODE")]
+        public string WorkshopCenterCode { get; set; }
 
- /// <summary>
- ///     鍗曚綅
- /// </summary>
- [SugarColumn(ColumnName = "FUNIT")]
-    public string Funit { 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 = "GIVEN_MODIFY")]
+        public short? GivenModify { get; set; }
 
- /// <summary>
- ///     妫�楠屽伐鍏�
- /// </summary>
- [SugarColumn(ColumnName = "FCHECK_TOOL")]
-    public string FcheckTool { 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_BY")]
+        public string LastupdateBy { get; set; }
 
- /// <summary>
- ///     鏇存柊鏃堕棿
- /// </summary>
- [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
-    public DateTime? LastupdateDate { get; set; }
+        /// <summary>
+        /// 鏇存柊鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
+
+        [SugarColumn(IsIgnore = true)] public int? Unqualified { get; set; }
+    }
 }
\ No newline at end of file
diff --git a/StandardPda/MES.Service/Modes/MesRohIn.cs b/StandardPda/MES.Service/Modes/MesRohIn.cs
index ef5a023..5d5e6a8 100644
--- a/StandardPda/MES.Service/Modes/MesRohIn.cs
+++ b/StandardPda/MES.Service/Modes/MesRohIn.cs
@@ -254,7 +254,7 @@
     ///     鏀舵枡缁勭粐
     /// </summary>
     [SugarColumn(ColumnName = "RECEIVE_ORG")]
-    public decimal? ReceiveOrg { get; set; }
+    public string? ReceiveOrg { get; set; }
 
     /// <summary>
     ///     瀹℃壒鎰忚
diff --git a/StandardPda/MES.Service/Modes/SysUser.cs b/StandardPda/MES.Service/Modes/SysUser.cs
index a318f0d..fba9fff 100644
--- a/StandardPda/MES.Service/Modes/SysUser.cs
+++ b/StandardPda/MES.Service/Modes/SysUser.cs
@@ -18,7 +18,7 @@
     [StringLength(20, ErrorMessage = "Fid闀垮害涓嶈兘瓒呭嚭20")]
     [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "BASEINFO",
         ColumnName = "FID")] //鐢ㄤ簬SqlSugar
-    public string Fid { get; set; }
+    public decimal Fid { get; set; }
 
 
     [StringLength(20, ErrorMessage = "Sid闀垮害涓嶈兘瓒呭嚭20")]
diff --git a/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs b/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs
index 0332ba0..3444d92 100644
--- a/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs
@@ -136,7 +136,7 @@
         mesRohIn.ErpCheckBy = rohIn.FApproverId;
         mesRohIn.ErpCheckDate = rohIn.FApproveDate;
         mesRohIn.Changereason = rohIn.PubDescSeg2;
-        mesRohIn.ReceiveOrg = Convert.ToDecimal(rohIn.FReceiveOrgId);
+        mesRohIn.ReceiveOrg = rohIn.FReceiveOrgId;
         mesRohIn.Remarks = rohIn.Remarks;
         mesRohIn.SrcDocType = rohIn.FSrcDocType;
         mesRohIn.SrcDoc = rohIn.FSrcDoc;
diff --git a/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs b/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
index a832cfb..075b229 100644
--- a/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
+++ b/StandardPda/MES.Service/service/BasicData/MesStaffManager.cs
@@ -140,7 +140,7 @@
             Sid = Convert.ToDecimal(staff.Id),
             Fcode = staff.FStaffNumber,
             Fname = staff.FName,
-            Fpassword = "8+()./,", // 鍒濆瀵嗙爜
+            Fpassword = "8+()./,", // 鍒濆瀵嗙爜 123456
             Lever = 0,
             Fcompany = "1000",
             Ffactory = "1000",
diff --git a/StandardPda/MES.Service/service/LoginService.cs b/StandardPda/MES.Service/service/LoginService.cs
new file mode 100644
index 0000000..be647dc
--- /dev/null
+++ b/StandardPda/MES.Service/service/LoginService.cs
@@ -0,0 +1,88 @@
+锘縰sing System.Data;
+using System.Text;
+using MES.Service.DB;
+
+namespace MES.Service.service;
+
+public class LoginService
+{
+    public static OracleSQLHelper SQLHelper = new();
+
+    public DataTable login(string name, string pwd)
+    {
+        var sql =
+            string.Format(@"select * from SYS_USER where FCODE = '{0}'",
+                name);
+        var dataTable = SQLHelper.ExecuteQuery(sql);
+        if (dataTable.Rows.Count <= 0) throw new Exception("鐢ㄦ埛涓嶅瓨鍦�");
+
+        var row = dataTable.Rows[0];
+        var db_password = row["FPASSWORD"].ToString();
+        db_password = ProPass(db_password);
+        if (!pwd.Equals(db_password)) throw new Exception("鐢ㄦ埛鍚嶆垨鑰呭瘑鐮侀敊璇�");
+
+        return dataTable;
+    }
+
+    public DataTable getUserMenu(string name)
+    {
+        var sql = "";
+
+        if ("PL017".Equals(name))
+            sql = "select PAGE_VIEW,PATH,ICOIMG from  MES_SYS_PAGEVIEW";
+        else
+            sql = string.Format(@"select PAGE_VIEW,PATH,ICOIMG
+                    from (select PAGE_VIEW,PATH,ICOIMG
+                          from MES_SYS_GUP_USER a
+                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
+                                   join SYS_USER_ROLE c on to_char(c.ROLEID) = a.ROLEID
+                          where USERID = (select fid from SYS_USER where FCODE = '{0}')
+                          union all
+                          select PAGE_VIEW,PATH,ICOIMG
+                          from MES_SYS_GUP_USER a
+                                   join MES_SYS_PAGEVIEW b on a.PAGEID = b.ID
+                          where a.ROLEID = (select FCODE from SYS_USER where FCODE = '{0}'))
+                    group by PATH, PAGE_VIEW, ICOIMG", name);
+
+        return SQLHelper.ExecuteQuery(sql);
+    }
+
+    public int resetPassword(string newPwd, string name, string pwd)
+    {
+        login(name, pwd);
+        var passwordHash = encryptPass(newPwd);
+        var sql = string.Format(
+            @"update SYS_USER set FPASSWORD = '{0}' where FCODE = '{1}'",
+            passwordHash,
+            name);
+        return SQLHelper.ExecuteNonQuery(sql);
+    }
+
+    private string encryptPass(string str)
+    {
+        var b = Encoding.GetEncoding("iso-8859-1").GetBytes(str);
+        var temp = (byte[])b.Clone();
+        for (var i = 0; i < b.Length; i++) temp[i] = (byte)(b[i] ^ (8 + 18));
+
+        var result =
+            8 + Encoding.GetEncoding("iso-8859-1").GetString(temp);
+        return result;
+    }
+
+
+    private string ProPass(string src)
+    {
+        var result = "";
+        var first = int.Parse(src.Substring(0, 1));
+        var src_tem = src.Substring(1);
+        var b = Encoding.GetEncoding("iso-8859-1")
+            .GetBytes(src_tem);
+        var temp = (byte[])b.Clone();
+        for (var i = 0; i < b.Length; i++)
+            temp[i] = (byte)(temp[i] ^ (first + 18));
+
+        result = Encoding.GetEncoding("iso-8859-1")
+            .GetString(temp);
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/service/QC/LljService.cs b/StandardPda/MES.Service/service/QC/LljService.cs
new file mode 100644
index 0000000..5e571dc
--- /dev/null
+++ b/StandardPda/MES.Service/service/QC/LljService.cs
@@ -0,0 +1,628 @@
+锘縰sing System.Data;
+using Masuit.Tools;
+using MES.Service.DB;
+using MES.Service.Dto.service;
+using MES.Service.Modes;
+using MES.Service.util;
+using SqlSugar;
+using DbType = System.Data.DbType;
+
+
+namespace MES.Service.service.QC;
+
+public class LljService
+{
+    public (List<LtsLlj> item, int TotalCount) GetPage(XJPageResult queryObj)
+    {
+        if (queryObj.createUser.IsNullOrEmpty())
+        {
+            return ([], 0);
+        }
+
+        var db = SqlSugarHelper.GetInstance();
+
+        var id = Convert.ToDecimal(queryObj.id);
+
+        var totalCount = 0;
+
+        var itemIds = GetQaItem(db, queryObj.createUser);
+
+        var pageList = 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(
+                itemIds is { Length: > 0 },
+                a => itemIds.Contains(a.ItemId))
+            .WhereIF(id > 0, a => a.Id == id)
+            .OrderByDescending(a => a.Id)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (pageList, totalCount);
+    }
+
+    private decimal[] GetQaItem(SqlSugarClient db, string? user)
+    {
+        var itemsId = db.Queryable<MesItems>()
+            .Select(s => s.Id).ToList();
+
+        var iqc = db.Queryable<IqcBefore>()
+            .Select(a => a.ItemId).ToList();
+
+        var decimals = itemsId.Except(iqc).ToList();
+
+        var array = db.Queryable<SysUser, IqcBefore, MesItems>((a, b, c) =>
+                new JoinQueryInfos(JoinType.Inner, a.Fid == b.Sid,
+                    JoinType.Inner, b.ItemId == c.Id))
+            .Where((a, b, c) => a.Fcode == user)
+            .Select((a, b, c) => c.Id).ToList();
+
+        decimals.AddRange(array);
+
+        var decimals1 = decimals.Distinct().ToArray();
+
+        return decimals1;
+    }
+
+
+    //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁�
+    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 = item.FcheckLevel switch
+            {
+                null => "" // 榛樿鍊�
+                ,
+                { } s when s.Contains("S1") => "B.FLEVEL_S1",
+                { } s when s.Contains("S2") => "B.FLEVEL_S2",
+                { } s when s.Contains("S3") => "B.FLEVEL_S3",
+                { } s when s.Contains("S4") => "B.FLEVEL_S4",
+                { } s when s.Contains("(I)") => "B.FLEVEL_I",
+                { } s when s.Contains("(II)") => "B.FLEVEL_II",
+                { } s when s.Contains("(III)") => "B.FLEVEL_III",
+                _ => ""
+            };
+
+            if (string.IsNullOrEmpty(LEV))
+                throw new Exception(item.SampleSizeNo + "鐨勬楠屾按骞充笉姝g‘");
+
+            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);
+
+            if (string.IsNullOrEmpty(maxBillNo))
+                throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity +
+                                    "杩欎釜鑼冨洿涓嬫病鏈夊尮閰嶅埌妫�楠岄」鐩�");
+
+            var result = ExtractSubstring(item.FacLevel, '(', ')');
+
+            if (string.IsNullOrEmpty(result))
+                throw new Exception(item.SampleSizeNo + "涓嬬殑" + quantity +
+                                    "鎷掓敹姘村钩涓嶆纭�");
+
+            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;
+    }
+
+    public bool IqcQaSubmit(LLJDto dto)
+    {
+        var (factory, company) = UserUtil.GetFactory(dto.userNo);
+        try
+        {
+            // 瀹氫箟杈撳嚭鍙傛暟
+            var outputResult = new SugarParameter("o_Result", null,
+                DbType.Int32, ParameterDirection.Output,
+                4000);
+
+            var outputMessage = new SugarParameter("o_Msg", null,
+                DbType.String,
+                ParameterDirection.Output, 4000);
+
+            // 瀹氫箟杈撳叆鍙傛暟
+            var parameters = new List<SugarParameter>
+            {
+                new("PI_FACTORY", factory,
+                    DbType.String, ParameterDirection.Input),
+                new("PI_COMPANY", company, DbType.String,
+                    ParameterDirection.Input),
+                new("p_Release_No", dto.releaseNo, DbType.String,
+                    ParameterDirection.Input),
+                new("p_User", dto.userNo, DbType.String,
+                    ParameterDirection.Input),
+                outputResult,
+                outputMessage
+            };
+
+            var db = SqlSugarHelper.GetInstance();
+
+            // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+            db.Ado.ExecuteCommand(
+                "BEGIN Prc_Mes_Iqc_Qa_Submit82(:PI_FACTORY, :PI_COMPANY, :p_Release_No, :p_User, :o_Result, :o_Msg); END;",
+                parameters.ToArray());
+
+            // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+            var resultValue = outputResult.Value?.ToString();
+            var messageValue = outputMessage.Value?.ToString();
+
+            if ("1".Equals(resultValue)) throw new Exception(messageValue);
+
+            return true;
+        }
+        catch (Exception ex)
+        {
+            throw new Exception(ex.Message);
+        }
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MES.Service/util/ResponseResult.cs b/StandardPda/MES.Service/util/ResponseResult.cs
index 830da6b..cd81c43 100644
--- a/StandardPda/MES.Service/util/ResponseResult.cs
+++ b/StandardPda/MES.Service/util/ResponseResult.cs
@@ -15,6 +15,8 @@
     //杩斿洖鐨勬暟鎹�
     public object data { get; set; }
 
+    public int TotalCount { get; set; } = 0;
+
     //澶辫触鐨勮繑鍥炵粨鏋�
     public static ResponseResult ResponseError(Exception e)
     {
diff --git a/StandardPda/MES.Service/util/UserUtil.cs b/StandardPda/MES.Service/util/UserUtil.cs
new file mode 100644
index 0000000..7908e22
--- /dev/null
+++ b/StandardPda/MES.Service/util/UserUtil.cs
@@ -0,0 +1,17 @@
+锘縰sing MES.Service.DB;
+
+namespace MES.Service.util;
+
+public class UserUtil : RepositoryNoEntity
+{
+    public static (string factory, string company) GetFactory(string user)
+    {
+        var sql =
+            "select t.Ffactory factory, t.Fcompany company from sys_user t where t.fcode = upper(trim('" +
+            user + "'))";
+
+        var sqlQuerySingle = Db.Ado.SqlQuerySingle<dynamic>(sql);
+
+        return (sqlQuerySingle.FACTORY, sqlQuerySingle.COMPANY);
+    }
+}
\ No newline at end of file
diff --git a/StandardPda/MESApplication/Controllers/Base/LoginController.cs b/StandardPda/MESApplication/Controllers/Base/LoginController.cs
new file mode 100644
index 0000000..aede14c
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/Base/LoginController.cs
@@ -0,0 +1,108 @@
+锘縰sing System.Dynamic;
+using MES.Service.Dto.@base;
+using MES.Service.service;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+
+namespace MESApplication.Controllers.Base;
+
+/// <summary>
+///     鐢ㄦ埛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class LoginController : ControllerBase
+{
+    /// <summary>
+    ///     鐧诲綍
+    /// </summary>
+    /// <param name="model"></param>
+    /// <returns></returns>
+    [HttpPost("login")]
+    public ResponseResult login([FromBody] LoginModel model)
+    {
+        //鐧诲綍
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LoginService().login(model.userID, model.userPass);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     閲嶈瀵嗙爜
+    /// </summary>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    [HttpPost("resetPassword")]
+    public ResponseResult resetPassword([FromBody] JObject data)
+    {
+        var name = data["name"].ToString();
+        var pwd = data["pwd"].ToString();
+        var newPwd = data["newPwd"].ToString();
+        //鐧诲綍
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LoginService().resetPassword(newPwd, name, pwd);
+            if (tbBillList > 0)
+                return new ResponseResult
+                {
+                    status = 0,
+                    message = "淇敼鎴愬姛",
+                    data = resultInfos
+                };
+            return new ResponseResult
+            {
+                status = 1,
+                message = "淇敼澶辫触",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鐢ㄦ埛鑿滃崟
+    /// </summary>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    [HttpPost("getUserMenu")]
+    public ResponseResult getUserMenu([FromBody] JObject data)
+    {
+        var name = data["name"].ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = new LoginService().getUserMenu(name);
+            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
diff --git a/StandardPda/MESApplication/Controllers/QC/LljController.cs b/StandardPda/MESApplication/Controllers/QC/LljController.cs
new file mode 100644
index 0000000..529ba55
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/QC/LljController.cs
@@ -0,0 +1,276 @@
+锘縰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 (item, totalCount) = new LljService().GetPage(queryObj);
+            var tbBillList =
+                resultInfos.tbBillList = item;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos,
+                TotalCount = totalCount
+            };
+        }
+        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);
+        }
+    }
+
+    //IqcQaSubmit
+    [HttpPost("IqcQaSubmit")]
+    public ResponseResult IqcQaSubmit(LLJDto rkjDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new LljService().IqcQaSubmit(rkjDto);
+            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
diff --git a/StandardPda/MESApplication/appsettings.json b/StandardPda/MESApplication/appsettings.json
index 53646b7..02d37db 100644
--- a/StandardPda/MESApplication/appsettings.json
+++ b/StandardPda/MESApplication/appsettings.json
@@ -10,6 +10,6 @@
   "AppSettings": {
     "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo",
     "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal",
-    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.104 )(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = zmz_prd; Password=zmzprd"
+    "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 122.226.249.238 )(PORT = 5936))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = zmz_prd; Password=zmzprd"
   }
 }

--
Gitblit v1.9.3