From ac8cd71489628366930b48ed650e2559ec98d339 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期五, 15 十一月 2024 15:24:50 +0800
Subject: [PATCH] 来料入库检

---
 entity/MesQaIqc.cs                 |   91 ++
 entity/MesQaItemsDetect01.cs       |  397 +++++++++++
 entity/MesQaItemsDetectDetail5.cs  |  194 +++++
 entity/LLJView.cs                  |  157 ++++
 entity/QsItemOqcReq.cs             |  105 +++
 Dto/service/LLJDto.cs              |   36 +
 NewPdaSqlServer.csproj             |    4 
 entity/MesQaItemsDetectDetail12.cs |   76 ++
 Dto/service/XJPageResult.cs        |   11 
 Controllers/QC/LljController.cs    |  276 ++++++++
 Dto/service/ResultClass.cs         |    7 
 service/QC/LljService.cs           |  683 ++++++++++++++++++++
 12 files changed, 2,033 insertions(+), 4 deletions(-)

diff --git a/Controllers/QC/LljController.cs b/Controllers/QC/LljController.cs
new file mode 100644
index 0000000..553b613
--- /dev/null
+++ b/Controllers/QC/LljController.cs
@@ -0,0 +1,276 @@
+锘縰sing System.Dynamic;
+using Microsoft.AspNetCore.Mvc;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.service.QC;
+using NewPdaSqlServer.util;
+using Newtonsoft.Json.Linq;
+
+namespace NewPdaSqlServer.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(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/Dto/service/LLJDto.cs b/Dto/service/LLJDto.cs
new file mode 100644
index 0000000..10a2f7c
--- /dev/null
+++ b/Dto/service/LLJDto.cs
@@ -0,0 +1,36 @@
+锘縰sing NewPdaSqlServer.entity;
+
+namespace NewPdaSqlServer.Dto.service;
+
+public class LLJDto
+{
+    public string? userNo { get; set; }
+
+    //妫�楠屽崟鍙�
+    public string? releaseNo { get; set; }
+
+    //涓昏〃id
+    public string? gid { get; set; }
+
+    //瀛愯〃id
+    public string? pid { get; set; }
+
+    //瀛欒〃id
+    public string? 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/Dto/service/ResultClass.cs b/Dto/service/ResultClass.cs
new file mode 100644
index 0000000..72bd2b7
--- /dev/null
+++ b/Dto/service/ResultClass.cs
@@ -0,0 +1,7 @@
+锘縩amespace NewPdaSqlServer.Dto.service;
+
+public class ResultClass
+{
+    public decimal FSAMPLE_SIZE_WORD { get; set; }
+    public decimal Result { get; set; }
+}
\ No newline at end of file
diff --git a/Dto/service/XJPageResult.cs b/Dto/service/XJPageResult.cs
new file mode 100644
index 0000000..385520d
--- /dev/null
+++ b/Dto/service/XJPageResult.cs
@@ -0,0 +1,11 @@
+锘縰sing NewPdaSqlServer.Dto.@base;
+
+namespace NewPdaSqlServer.Dto.service;
+
+public class XJPageResult : Page
+{
+    public string? createUser { get; set; }
+    public string? result { get; set; }
+
+    public string? id { get; set; }
+}
\ No newline at end of file
diff --git a/NewPdaSqlServer.csproj b/NewPdaSqlServer.csproj
index 095432a..55d24ed 100644
--- a/NewPdaSqlServer.csproj
+++ b/NewPdaSqlServer.csproj
@@ -13,8 +13,4 @@
     <PackageReference Include="Swashbuckle.AspNetCore" Version="6.8.0" />
   </ItemGroup>
 
-  <ItemGroup>
-    <Folder Include="Dto\" />
-  </ItemGroup>
-
 </Project>
diff --git a/entity/LLJView.cs b/entity/LLJView.cs
new file mode 100644
index 0000000..11013c8
--- /dev/null
+++ b/entity/LLJView.cs
@@ -0,0 +1,157 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+///     鏁版嵁婧愬鍏�
+/// </summary>
+[SugarTable("V_LLJ")]
+public class LLJView
+{
+    /// <summary>
+    ///  
+    ///</summary>
+    [SugarColumn(ColumnName = "guid")]
+    public Guid guid { get; set; }
+    
+    [SugarColumn(ColumnName = "fsubmit")]
+    public int? fsubmit{ 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 = "STATUS")]
+    public string STATUS { get; set; }
+
+    /// <summary>
+    ///     濮斿鏍囪瘑锛�0锛氶噰璐� 銆�1锛氬澶栵級
+    /// </summary>
+    [SugarColumn(ColumnName = "F_TYPE")]
+    public bool? Ftype { get; set; }
+}
\ No newline at end of file
diff --git a/entity/MesQaIqc.cs b/entity/MesQaIqc.cs
new file mode 100644
index 0000000..35177e0
--- /dev/null
+++ b/entity/MesQaIqc.cs
@@ -0,0 +1,91 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity;
+
+/// <summary>
+///     鏁版嵁婧愬鍏�
+/// </summary>
+[SugarTable("Mes_Qa_Iqc")]
+public class MesQaIqc
+{
+    /// <summary>
+    ///     鐗╂枡id
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_ID")]
+    public string ItemId { get; set; }
+    
+    /// <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; }
+}
\ No newline at end of file
diff --git a/entity/MesQaItemsDetect01.cs b/entity/MesQaItemsDetect01.cs
new file mode 100644
index 0000000..1040d23
--- /dev/null
+++ b/entity/MesQaItemsDetect01.cs
@@ -0,0 +1,397 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity
+{
+    /// <summary>
+    /// 
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_01")]
+    public class MesQaItemsDetect01
+    {
+        /// <summary>
+        ///  
+        /// 榛樿鍊�: (newid())
+        ///</summary>
+        [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+        public Guid Guid { get; set; }
+
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "about_Guid")]
+        public Guid? AboutGuid { 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_by")]
+        public string FcheckBy { 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 = "frece_qty")]
+        public string FreceQty { get; set; }
+
+        /// <summary>
+        /// 渚涘簲鍟咺D 
+        ///</summary>
+        [SugarColumn(ColumnName = "supp_id")]
+        public string SuppId { 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 = "freview")]
+        public string Freview { 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 = "check_qty")]
+        public string CheckQty { 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 = "fhandle")]
+        public string Fhandle { 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 = "lastupdate_by")]
+        public string LastupdateBy { get; set; }
+
+        /// <summary>
+        /// 鏇存柊鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "lastupdate_date")]
+        public DateTime? LastupdateDate { get; set; }
+
+        /// <summary>
+        /// 鏄惁瀹℃牳 
+        ///</summary>
+        [SugarColumn(ColumnName = "modify1_flag")]
+        public int? Modify1Flag { 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 = "factory")]
+        public string Factory { 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 = "fcancel")]
+        public int? Fcancel { get; set; }
+
+        /// <summary>
+        /// 鎻愪氦鏍囪瘑 
+        ///</summary>
+        [SugarColumn(ColumnName = "fsubmit")]
+        public int? Fsubmit { get; set; }
+
+        /// <summary>
+        /// 妫�楠屼緷鎹� 
+        ///</summary>
+        [SugarColumn(ColumnName = "fcheck_accord")]
+        public string FcheckAccord { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷(0 鏉ユ枡 1 鍦ㄥ簱) 
+        ///</summary>
+        [SugarColumn(ColumnName = "ftype")]
+        public int? Ftype { 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 = "fexemption")]
+        public int? Fexemption { 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 = "fmanage_no")]
+        public string FmanageNo { get; set; }
+
+        /// <summary>
+        /// 杞崲鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "fcovert_qty")]
+        public string FcovertQty { get; set; }
+
+        /// <summary>
+        /// 鐗堟湰 
+        ///</summary>
+        [SugarColumn(ColumnName = "fversion")]
+        public int? Fversion { 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 = "max_check_qty")]
+        public int? MaxCheckQty { get; set; }
+
+        /// <summary>
+        /// 鐗瑰畾淇敼鏄惁瀹℃牳 
+        ///</summary>
+        [SugarColumn(ColumnName = "modify1_flag1")]
+        public int? Modify1Flag1 { 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 = "lot_no1")]
+        public string LotNo1 { 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 = "work_no")]
+        public string WorkNo { get; set; }
+
+        /// <summary>
+        /// 鍒拌揣鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "dha018")]
+        public string Dha018 { get; set; }
+
+        /// <summary>
+        /// 琛屽彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "dhb002")]
+        public int? Dhb002 { 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 = "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 int? EbelnK3id { get; set; }
+
+        /// <summary>
+        /// 閲囪喘璁㈠崟琛孖D 
+        ///</summary>
+        [SugarColumn(ColumnName = "line_k3id")]
+        public int? LineK3id { get; set; }
+
+        /// <summary>
+        /// 璐ㄩ噺瀹℃牳鏍囪瘑 
+        /// 榛樿鍊�: ((0))
+        ///</summary>
+        [SugarColumn(ColumnName = "quality_audit")]
+        public int? QualityAudit { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡ID 
+        ///</summary>
+        [SugarColumn(ColumnName = "item_id")]
+        public int? ItemId { get; set; }
+
+        /// <summary>
+        /// 涓嶈壇鎻忚堪 
+        ///</summary>
+        [SugarColumn(ColumnName = "remarks")]
+        public string Remarks { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/entity/MesQaItemsDetectDetail12.cs b/entity/MesQaItemsDetectDetail12.cs
new file mode 100644
index 0000000..73da3ee
--- /dev/null
+++ b/entity/MesQaItemsDetectDetail12.cs
@@ -0,0 +1,76 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+
+namespace NewPdaSqlServer.entity
+{
+    /// <summary>
+    /// 
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL12")]
+    public class MesQaItemsDetectDetail12
+    {
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+        public Guid Guid { get; set; }
+
+        /// <summary>
+        /// 鐖朵翰Guid 
+        ///</summary>
+        [SugarColumn(ColumnName = "parent_guid")]
+        public Guid? ParentGuid { get; set; }
+
+        /// <summary>
+        /// 鐖风埛Guid 
+        ///</summary>
+        [SugarColumn(ColumnName = "grandpa_guid")]
+        public Guid? GrandpaGuid { 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 = "create_date")]
+        public DateTime? CreateDate { 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/entity/MesQaItemsDetectDetail5.cs b/entity/MesQaItemsDetectDetail5.cs
new file mode 100644
index 0000000..274d3bb
--- /dev/null
+++ b/entity/MesQaItemsDetectDetail5.cs
@@ -0,0 +1,194 @@
+锘縰sing SqlSugar;
+
+namespace NewPdaSqlServer.entity
+{
+    /// <summary>
+    /// 
+    ///</summary>
+    [SugarTable("MES_QA_ITEMS_DETECT_DETAIL5")]
+    public class MesQaItemsDetectDetail5
+    {
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
+        public Guid Guid { get; set; }
+
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "parent_guid")]
+        public Guid? ParentGuid { get; set; }
+
+        /// <summary>
+        /// 鏍囧噯鍊肩被鍨� 
+        ///</summary>
+        [SugarColumn(ColumnName = "ftext_type")]
+        public string? FtextType { get; set; }
+
+        /// <summary>
+        /// 鏍囧噯鍊� 
+        ///</summary>
+        [SugarColumn(ColumnName = "fstand")]
+        public int? 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 int? CheckQyt { get; set; }
+
+        /// <summary>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+        [SugarColumn(ColumnName = "fcheck_resu")]
+        public string? FcheckResu { get; set; }
+
+        /// <summary>
+        /// AC鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "fac_qty")]
+        public int? FacQty { get; set; }
+
+        /// <summary>
+        /// RE鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "fre_qty")]
+        public int? FreQty { get; set; }
+
+        /// <summary>
+        /// 涓嶅悎鏍兼暟 
+        ///</summary>
+        [SugarColumn(ColumnName = "fng_qty")]
+        public int? 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>
+        /// 鐗瑰畾淇敼 
+        /// 榛樿鍊�: ((0))
+        ///</summary>
+        [SugarColumn(ColumnName = "given_modify")]
+        public int? 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; }
+    }
+}
\ No newline at end of file
diff --git a/entity/QsItemOqcReq.cs b/entity/QsItemOqcReq.cs
new file mode 100644
index 0000000..337a7f1
--- /dev/null
+++ b/entity/QsItemOqcReq.cs
@@ -0,0 +1,105 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace NewPdaSqlServer.entity
+{
+    /// <summary>
+    /// 鍏ュ簱妫�妫�楠岃〃澶�
+    ///</summary>
+    [SugarTable("QS_ITEM_OQC_REQ")]
+    public class QsItemOqcReq
+    {
+        /// <summary>
+        ///  
+        /// 榛樿鍊�: (newid())
+        ///</summary>
+         [SugarColumn(ColumnName="guid" ,IsPrimaryKey = true   )]
+         public Guid Guid { 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_BY"    )]
+         public string FcheckBy { get; set; }
+        /// <summary>
+        /// 鐗╂枡缂栫爜 
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_NO"    )]
+         public string ItemNo { get; set; }
+        /// <summary>
+        /// 妫�楠岀粨鏋� 
+        ///</summary>
+         [SugarColumn(ColumnName="FCHECK_RESU"    )]
+         public string FcheckResu { 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="LASTUPDATE_BY"    )]
+         public string LastupdateBy { get; set; }
+        /// <summary>
+        /// 鏇存柊鏃ユ湡 
+        ///</summary>
+         [SugarColumn(ColumnName="LASTUPDATE_DATE"    )]
+         public DateTime? LastupdateDate { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="MODIFY1_BY"    )]
+         public string Modify1By { get; set; }
+        /// <summary>
+        /// 鍏ュ簱鐢宠鍗曞彿 
+        ///</summary>
+         [SugarColumn(ColumnName="BILL_NO"    )]
+         public string BillNo { get; set; }
+        /// <summary>
+        /// 妯″叿鍙� 
+        ///</summary>
+         [SugarColumn(ColumnName="MOID_NUM"    )]
+         public string MoidNum { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FSUBMIT_BY"    )]
+         public string FsubmitBy { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FSUBMIT_DATE"    )]
+         public DateTime? FsubmitDate { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+         [SugarColumn(ColumnName="FSUBMIT"    )]
+         public int? Fsubmit { get; set; }
+        /// <summary>
+        /// 澶囨敞 
+        ///</summary>
+         [SugarColumn(ColumnName="REMARKS"    )]
+         public string Remarks { get; set; }
+        /// <summary>
+        /// 鐗╂枡ID 
+        ///</summary>
+         [SugarColumn(ColumnName="ITEM_ID"    )]
+         public int? ItemId { get; set; }
+    }
+}
diff --git a/service/QC/LljService.cs b/service/QC/LljService.cs
new file mode 100644
index 0000000..d46b42c
--- /dev/null
+++ b/service/QC/LljService.cs
@@ -0,0 +1,683 @@
+锘縰sing System.Data;
+using Microsoft.IdentityModel.Tokens;
+using NewPdaSqlServer.DB;
+using NewPdaSqlServer.Dto.service;
+using NewPdaSqlServer.entity;
+using NewPdaSqlServer.util;
+using SqlSugar;
+using DbType = System.Data.DbType;
+
+
+namespace NewPdaSqlServer.service.QC;
+
+public class LljService : RepositoryNoEntity
+{
+    public (List<LLJView> item, int TotalCount) GetPage(XJPageResult queryObj)
+    {
+        var parsedGuid = Guid.Empty;
+        if (!queryObj.id.IsNullOrEmpty())
+        {
+            bool isValid = Guid.TryParse(queryObj.id, out parsedGuid);
+            if (!isValid)
+                throw new ApplicationException("GUID杞崲閿欒");
+        }
+
+
+        var totalCount = 0;
+
+        var pageList = Db.Queryable<LLJView>()
+            .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(UtilityHelper.CheckGuid(parsedGuid),
+                a => a.guid == parsedGuid)
+            .OrderByDescending(a => a.CreateDate)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+
+        return (pageList, totalCount);
+    }
+
+    //鏍规嵁妫�楠屾爣鍑嗘潵璁$畻妫�楠屼釜鏁�
+    public List<MesQaItemsDetectDetail5> SetItems(string itemId,
+        decimal quantity, string releaseNo)
+    {
+        var count = Db.Queryable<MesQaIqc>().Where(s => s.EE == 1 &&
+            s.ISENABLED == 1
+            && s.ItemId == itemId && s.FTYPE == "1").Count();
+
+        if (count <= 0) return [];
+
+        var mesQaIqcItem = Db
+            .Queryable<MesQaIqc>().Where(s => s.EE == 1 && s.ISENABLED == 1
+                && s.ItemId == itemId && s.FTYPE == "1").Select(
+                b => new MesQaItemsDetectDetail5
+                {
+                    ReleaseNo = releaseNo,
+                    FacLevel = b.FacLevel,
+                    FcheckItem = b.FcheckItem,
+                    FdownAllow = b.FdownAllow,
+                    FcheckLevel = b.FREQUENCY,
+                    Fstand = Convert.ToInt32(b.FSTAND),
+                    FupAllow = b.FupAllow,
+                    SampleSizeNo = b.SampleSizeNo,
+                    FenterQty = 0,
+                    Factory = "1000",
+                    Company = "1000",
+                    FcheckTool = b.FcheckTool,
+                    FspecRequ = b.FspecRequ
+                }).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.guid 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 = (int)resultClass.FSAMPLE_SIZE_WORD;
+            item.FreQty = (int)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;
+
+        UseTransaction(db =>
+        {
+            foreach (var item in items) item.ReleaseNo = rkjDto.releaseNo;
+
+            return db.Insertable(items).ExecuteCommand();
+        });
+
+        rkjDto.items = GetItems(rkjDto.releaseNo, null);
+
+
+        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.ParentGuid == s.Guid)
+                .Count();
+
+            //妫�楠屾槑缁嗘�绘暟
+            var count = Db.Queryable<MesQaItemsDetectDetail12>()
+                .Where(x1 => x1.ParentGuid == s.Guid).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.ParentGuid = s.Guid;
+            // detail.ReleaseNo = rkjDto.releaseNo;
+            detail.Fstand = "鈭�";
+            detail.FcheckResu = "OK";
+            detail.LastupdateBy = rkjDto.userNo;
+            detail.count = s.CheckQyt;
+            SetQSItemDetail(detail);
+        });
+
+        return Convert.ToInt32(rkjDto.gid);
+    }
+
+    public List<MesQaItemsDetectDetail5> GetItems(string? releaseNo,
+        decimal? id)
+    {
+        return Db.Queryable<MesQaItemsDetectDetail5, MesQaItemsDetectDetail12>(
+                (a, b) =>
+                    new JoinQueryInfos(JoinType.Left, a.Guid == b.ParentGuid))
+            .Where((a, b) => a.ReleaseNo == releaseNo)
+            // .WhereIF(id > 0, (a, b) => a.Id == id)
+            .GroupBy((a, b) => new
+            {
+                a.Guid,
+                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
+            {
+                Guid = a.Guid,
+                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.Guid),
+                FcheckResu = a.FcheckResu
+            }).ToList();
+    }
+
+    public int SetQSItemDetail(MesQaItemsDetectDetail12 detail)
+    {
+        var oracle = UseTransaction(db =>
+        {
+            List<MesQaItemsDetectDetail12> result = new();
+            for (var i = 0; i < detail.count; i++)
+            {
+                var item = new MesQaItemsDetectDetail12();
+                item.ParentGuid = detail.ParentGuid;
+                item.Fstand = detail.Fstand;
+                item.FcheckResu = detail.FcheckResu;
+                item.CreateBy = detail.LastupdateBy;
+                item.CreateDate = DateTime.Now;
+                result.Add(item);
+            }
+
+            return db.Insertable(result).ExecuteCommand();
+        });
+
+        detail.CreateBy = detail.LastupdateBy;
+
+
+        autoResult(detail);
+
+        return oracle;
+    }
+
+
+    private int autoResult(MesQaItemsDetectDetail12 detail)
+    {
+        // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+        var QsItemOqcItem = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Single(s => s.Guid == detail.ParentGuid);
+
+        if (QsItemOqcItem == null) return 0;
+
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠岀粨鏋�
+        var count = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == detail.ParentGuid).Count();
+
+        updateDetail5(detail);
+        var result = "";
+
+        //妫�楠屽疄闄呯粨鏋滀笉绛変簬搴旇妫�楠岀殑涓暟鏃剁洿鎺ユ帹鍑�
+        if (QsItemOqcItem.CheckQyt != count) return 0;
+
+        //鍚堟牸鐨勬湁澶氬皯涓�
+        var passCount = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "鈭�")
+            .Count();
+        //涓嶅悎鏍肩殑鏈夊灏戜釜
+        var noCount = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "脳")
+            .Count();
+
+        if (count == passCount)
+            result = "鍚堟牸";
+        //else if (count - passCount < QsItemOqcItem.FreQty) 
+        //    result = "涓嶅悎鏍�";
+        else if (noCount >= QsItemOqcItem.FreQty)
+            result = "涓嶅悎鏍�";
+        var useTransactionWithOracle = UseTransaction(
+            db =>
+            {
+                var commit = 0;
+                commit += db.Updateable<MesQaItemsDetectDetail5>()
+                    .SetColumns(s => s.FcheckResu == result)
+                    .SetColumns(s => s.FenterQty == count)
+                    .Where(s => s.Guid == detail.ParentGuid)
+                    .ExecuteCommand();
+
+                return commit;
+            });
+
+        var isNull = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.Guid == detail.ParentGuid && s.FcheckResu == null)
+            .Count();
+
+        if (isNull > 0) return 1;
+
+
+        //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩殑涓暟
+        var sum = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.Guid == detail.ParentGuid).Count();
+
+        if (sum == 0) return 1;
+
+        //鑾峰彇妫�楠屽崟涓嬬殑鍚堟牸鐨勬楠岄」鐩釜鏁�
+        var icount = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.Guid == detail.ParentGuid && s.FcheckResu == "鍚堟牸")
+            .Count();
+
+        var FcheckResu = "涓嶅悎鏍�";
+
+        //瀹為檯涓暟绛変簬鐞嗚涓暟鏃跺妫�楠屽崟杩涜鍒ゅ畾
+        if (sum == icount)
+            //鍚堟牸鐨勬楠岀粨鏋滅瓑浜庢�绘楠屾暟瑙嗕负鍚堟牸
+            FcheckResu = "鍚堟牸";
+
+        var sysUser = Db.Queryable<SysUser>()
+            .Where(s => s.Account == detail.CreateBy).First();
+
+        UseTransaction(db =>
+        {
+            return db.Updateable<MesQaItemsDetect01>()
+                .SetColumns(s => s.FcheckResu == FcheckResu)
+                .SetColumns(s => s.FcheckDate == DateTime.Now)
+                .SetColumns(s => s.FcheckBy == sysUser.Account)
+                .SetColumns(s => s.LastupdateBy == detail.CreateBy)
+                .SetColumns(s => s.LastupdateDate == DateTime.Now)
+                .Where(s => s.Guid == detail.GrandpaGuid)
+                .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(string? id)
+    {
+        var rkjDto = new LLJDto();
+
+        bool isValid = Guid.TryParse(id, out var parsedGuid);
+
+        if (!isValid)
+        {
+            throw new Exception("GUID杞崲閿欒");
+        }
+
+        var qsItemOqcItem =
+            Db.Queryable<MesQaItemsDetectDetail5>()
+                .Single(s => s.Guid == parsedGuid);
+
+        /* 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.ParentGuid == parsedGuid).Count();
+
+        qsItemOqcItem.Unqualified = count;
+
+        rkjDto.ItemXj01 = qsItemOqcItem;
+
+
+        rkjDto.ItemXj02s = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == parsedGuid)
+            .ToList();
+
+        return rkjDto;
+    }
+
+    public int UpdateQSItemDetail(MesQaItemsDetectDetail12 detail)
+    {
+        var withOracle = UseTransaction(db =>
+        {
+            return db.Updateable<MesQaItemsDetectDetail12>()
+                .SetColumns(s => s.LastupdateBy == detail.LastupdateBy)
+                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.Fstand),
+                    s => s.Fstand == detail.Fstand)
+                .SetColumnsIF(StringUtil.IsNotNullOrEmpty(detail.FcheckResu),
+                    s => s.FcheckResu == detail.FcheckResu)
+                .Where(s => s.ParentGuid
+                    == detail.ParentGuid && s.Guid == detail.Guid)
+                .ExecuteCommand();
+        });
+
+        detail.CreateBy = detail.LastupdateBy;
+
+        withOracle += autoResult(detail);
+
+        return withOracle;
+    }
+
+//鏇存柊妫�楠屾槑缁嗗凡妫�銆佷笉鍚堟牸鏁伴噺  
+    private int updateDetail5(MesQaItemsDetectDetail12 detail)
+    {
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠屾暟閲�
+        var count = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == detail.ParentGuid).Count();
+
+        //鑾峰彇涓嶅悎鏍兼暟
+        var countNo = Db.Queryable<MesQaItemsDetectDetail12>()
+            .Where(s => s.ParentGuid == detail.ParentGuid && s.Fstand == "脳")
+            .Count();
+        //鏇存柊妫�楠屾槑缁嗗凡妫�鏁伴噺  
+        var withOracle = UseTransaction(db =>
+        {
+            return db.Updateable<MesQaItemsDetectDetail5>()
+                .SetColumns(s => s.FenterQty == count)
+                .SetColumns(s => s.FngQty == countNo)
+                .Where(s => s.Guid == detail.ParentGuid)
+                .ExecuteCommand();
+        });
+
+        return withOracle;
+    }
+
+    //涓昏〃淇敼澶囨敞瀛楁
+    public int saveRemarksGid(LLJDto dto)
+    {
+        return UseTransaction(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)
+    {
+        bool isValid = Guid.TryParse(dto.pid, out var parsedGuid);
+
+        if (isValid)
+        {
+            return UseTransaction(db =>
+            {
+                return db.Updateable<MesQaItemsDetectDetail5>()
+                    .SetColumns(it =>
+                        it.Remarks == dto.Remarks)
+                    .Where(it => it.Guid == parsedGuid)
+                    .ExecuteCommand();
+            });
+        }
+
+        throw new Exception("GUID杞崲閿欒");
+    }
+
+    //鍒犻櫎涓昏〃骞朵笖杩炵骇鍒犻櫎瀛愯〃鍜屽瓩琛�
+    public int removeXJ(string? releaseNo)
+    {
+        var withOracle = UseTransaction(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);
+        var sysUser = Db.Queryable<SysUser>()
+            .Where(s => s.Account == dto.userNo).First();
+
+        if (sysUser == null)
+            return false;
+
+        var mesQaItemsDetect01 = Db.Queryable<MesQaItemsDetect01>()
+            .Where(s => s.ReleaseNo == dto.releaseNo).First();
+
+        if (mesQaItemsDetect01 == null)
+            return false;
+
+        if (mesQaItemsDetect01.Fsubmit == 1)
+            throw new Exception("璇ユ楠屽崟宸叉彁浜�");
+
+        if (mesQaItemsDetect01.FcheckDate == null)
+            throw new Exception("璇ユ娴嬪崟鏈緭鍏ユ楠屾棩鏈燂紝璇锋牳瀵广��");
+
+        if (mesQaItemsDetect01.FcheckBy.IsNullOrEmpty())
+            throw new Exception("璇ユ娴嬪崟鏈緭鍏ユ楠屼汉鍛橈紝璇锋牳瀵广��");
+
+        var list = Db.Queryable<MesQaItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == dto.releaseNo).ToList();
+
+        if (CollectionUtil.IsNullOrEmpty(list))
+            throw new Exception("鎶芥牱淇℃伅浠庤〃涓嶅厑璁镐负绌�,璇风淮鎶ゆ楠岄」鐩�");
+
+        foreach (var mesQaItemsDetectDetail5 in list)
+        {
+            mesQaItemsDetectDetail5.FenterQty ??= 0;
+            if (mesQaItemsDetectDetail5.FenterQty == 0)
+            {
+                throw new Exception("妫�楠岄」鐩�:" +
+                                    mesQaItemsDetectDetail5.FcheckItem +
+                                    " 宸插綍鍏ユ暟閲忎负0锛岃纭銆�");
+            }
+        }
+
+        var com = UseTransaction(db =>
+        {
+            var executeCommand = db.Updateable<MesQaItemsDetect01>()
+                .SetColumns(s => s.Fsubmit == 1)
+                .Where(s => s.ReleaseNo == dto.releaseNo)
+                .ExecuteCommand();
+
+            var mesInvItemArn = db.Queryable<MesInvItemArn>()
+                .Where(b => b.BillNo == mesQaItemsDetect01.LotNo).First();
+
+            if (mesInvItemArn == null)
+                throw new Exception(mesQaItemsDetect01.LotNo + "鍒拌揣鍗曚笉瀛樺湪锛岃鏍稿銆�");
+
+            if ("鍚堟牸".Equals(mesQaItemsDetect01.FcheckResu))
+            {
+                executeCommand += db.Updateable<MesInvItemArnDetail>()
+                    .SetColumns(s => s.CheckStates == "宸叉")
+                    .SetColumns(s => s.CheckRes == "鍚堟牸")
+                    .SetColumns(s => s.Ischeck == 1)
+                    .SetColumns(s => s.CheckDate == DateTime.Now)
+                    .Where(s => s.ParentGuid == mesInvItemArn.Guid
+                                && s.ItemId == mesQaItemsDetect01.ItemId)
+                    .ExecuteCommand();
+
+                executeCommand += db.Updateable<MesQaItemsDetect01>()
+                    .SetColumns(s => s.Modify1Flag == 1)
+                    .SetColumns(s => s.Modify1By == sysUser.Account)
+                    .SetColumns(s => s.Modify1Date == DateTime.Now)
+                    .SetColumns(s => s.FngHandle == "")
+                    .SetColumns(s => s.IqcDate == DateTime.Now)
+                    .SetColumns(s => s.FcheckDate == DateTime.Now)
+                    .SetColumns(s => s.FcheckBy == sysUser.Account)
+                    .Where(s => s.Guid == mesQaItemsDetect01.Guid)
+                    .ExecuteCommand();
+
+                //MesInvItemStocks
+                executeCommand += db.Updateable<MesInvItemStocks>()
+                    .SetColumns(t => t.CheckDate == DateTime.Now)
+                    .SetColumns(t => t.IqcStatus == "宸叉")
+                    .Where(t => t.ItemId == mesQaItemsDetect01.ItemId
+                                && t.BillNo == mesQaItemsDetect01.LotNo)
+                    .ExecuteCommand();
+
+                var first = db
+                    .Queryable<MesInvItemArnDetail, MesInvItemArn>(
+                        (b, a) => new object[]
+                        {
+                            JoinType.Left, b.ParentGuid == a.Guid
+                        })
+                    .Where((b, a) =>
+                        a.BillNo == mesQaItemsDetect01.LotNo &&
+                        b.ReturnFlag == 0)
+                    .Select((b, a) => new
+                    {
+                        TotalQuantity =
+                            SqlFunc.AggregateSum(b.Quantity),
+                        TotalOkRkQty = SqlFunc.AggregateSum(b.OkRkqty)
+                    })
+                    .First();
+                
+                var totalQuantity = first.TotalQuantity ?? 0;
+                var totalOkRkQty = first.TotalOkRkQty ?? 0;
+
+                if (totalQuantity == totalOkRkQty)
+                    executeCommand += db.Updateable<MesInvItemArn>()
+                        .SetColumns(s => s.Status == 1)
+                        .Where(s => s.BillNo == mesQaItemsDetect01.LotNo)
+                        .ExecuteCommand();
+            }
+            else
+            {
+                executeCommand += db.Updateable<MesInvItemArnDetail>()
+                    .SetColumns(s => s.CheckStates == "涓嶅悎鏍煎緟瀹℃壒")
+                    .SetColumns(s => s.Ischeck == 1)
+                    .SetColumns(s => s.CheckRes == mesQaItemsDetect01.FcheckResu)
+                    .SetColumns(s => s.CheckDate == DateTime.Now)
+                    .Where(s => s.ParentGuid == mesInvItemArn.Guid
+                                && s.ItemId == mesQaItemsDetect01.ItemId)
+                    .ExecuteCommand();
+                
+                executeCommand += db.Updateable<MesQaItemsDetect01>()
+                    .SetColumns(s => s.IqcDate == DateTime.Now)
+                    .SetColumns(s => s.FcheckDate == DateTime.Now)
+                    .SetColumns(s => s.FcheckBy == sysUser.Account)
+                    .Where(s => s.Guid == mesQaItemsDetect01.Guid)
+                    .ExecuteCommand();
+            }
+
+            if (executeCommand >=3)
+                return executeCommand;
+
+            throw new Exception("鏇存柊澶辫触");
+        });
+
+        return com > 0;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3