From f6598be8fdb51673c0a48ddeac8bd0e622835b35 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期三, 16 七月 2025 11:58:10 +0800
Subject: [PATCH] 111

---
 MES.Service/Modes/MesQsImage.cs                                |    2 
 MESApplication/Controllers/QC/MesOqcItemsDetect02Controller.cs |  155 +++++++++++
 MES.Service/service/QC/MesOqcItemsDetect02Manager.cs           |  445 ++++++++++++++++++++++++++++---
 MES.Service/Dto/service/OQCDto.cs                              |   22 +
 MES.Service/Modes/MesOqcItemsDetect02.cs                       |   16 +
 MES.Service/service/QC/BaseService.cs                          |   16 +
 MES.Service/Modes/MesItems.cs                                  |   96 +++---
 MES.Service/Modes/MesOqcItemsDetectDetail5.cs                  |    2 
 MESApplication/Controllers/QC/BaseController.cs                |   29 ++
 MES.Service/Modes/MesOqcBarcode.cs                             |   11 
 10 files changed, 695 insertions(+), 99 deletions(-)

diff --git a/MES.Service/Dto/service/OQCDto.cs b/MES.Service/Dto/service/OQCDto.cs
new file mode 100644
index 0000000..0afdc61
--- /dev/null
+++ b/MES.Service/Dto/service/OQCDto.cs
@@ -0,0 +1,22 @@
+锘縰sing MES.Service.Dto.@base;
+using MES.Service.Modes;
+
+namespace MES.Service.Dto.service;
+
+public class OQCDto : Page
+{
+    public string? CreateUser { get; set; }
+
+    public decimal? Id { get; set; }
+
+    public decimal? MainId { get; set; }
+
+    public string? ReleaseNo { get; set; }
+
+    public List<MesInvItemStocks>? ItemBarCodeData { get; set; }
+    
+    
+    public MesOqcItemsDetectDetail5? ItemXj01 { get; set; }
+
+    public List<MesOqcItemsDetectDetail12>? ItemXj02s { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/MesItems.cs b/MES.Service/Modes/MesItems.cs
index b8ab9d1..89236f3 100644
--- a/MES.Service/Modes/MesItems.cs
+++ b/MES.Service/Modes/MesItems.cs
@@ -18,73 +18,73 @@
     /// 宸ュ巶 
     ///</summary>
     [SugarColumn(ColumnName = "FACTORY")]
-    public string Factory { get; set; }
+    public string? Factory { get; set; }
 
     /// <summary>
     /// 鍏徃缂栧彿 
     ///</summary>
     [SugarColumn(ColumnName = "COMPANY")]
-    public string Company { get; set; }
+    public string? Company { get; set; }
 
     /// <summary>
     /// 鐗╂枡缂栫爜 = ERP鐗╂枡缂栧彿||棰滆壊缂栧彿 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_NO")]
-    public string ItemNo { get; set; }
+    public string? ItemNo { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍚嶇О 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_NAME")]
-    public string ItemName { get; set; }
+    public string? ItemName { get; set; }
 
     /// <summary>
     /// 鐗╂枡绠�绉� 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_SNAME")]
-    public string ItemSname { get; set; }
+    public string? ItemSname { get; set; }
 
     /// <summary>
     /// 瑙勬牸鍨嬪彿 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_MODEL")]
-    public string ItemModel { get; set; }
+    public string? ItemModel { get; set; }
 
     /// <summary>
     /// 鐗╂枡鎻忚堪 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_DESCRIPTION")]
-    public string ItemDescription { get; set; }
+    public string? ItemDescription { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_UNIT")]
-    public string ItemUnit { get; set; }
+    public string? ItemUnit { get; set; }
 
     /// <summary>
     /// 鐗╂枡绫诲瀷 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_TYPE")]
-    public string ItemType { get; set; }
+    public string? ItemType { get; set; }
 
     /// <summary>
     /// 浜у搧鐗堟湰 
     ///</summary>
     [SugarColumn(ColumnName = "ITEM_VERSION")]
-    public string ItemVersion { get; set; }
+    public string? ItemVersion { get; set; }
 
     /// <summary>
     /// 瀹㈡埛缂栧彿 
     ///</summary>
     [SugarColumn(ColumnName = "CUST_NO")]
-    public string CustNo { get; set; }
+    public string? CustNo { get; set; }
 
     /// <summary>
     /// 鍒涘缓浜� 
     ///</summary>
     [SugarColumn(ColumnName = "CREATE_BY")]
-    public string CreateBy { get; set; }
+    public string? CreateBy { get; set; }
 
     /// <summary>
     /// 鍒涘缓鏃堕棿 
@@ -96,7 +96,7 @@
     /// 鏈�鍚庢洿鏂颁汉 
     ///</summary>
     [SugarColumn(ColumnName = "LASTUPDATE_BY")]
-    public string LastupdateBy { get; set; }
+    public string? LastupdateBy { get; set; }
 
     /// <summary>
     /// 鏈�鍚庢洿鏂版椂闂� 
@@ -126,25 +126,25 @@
     /// 璁㈠崟鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "ORDERUNIT")]
-    public string Orderunit { get; set; }
+    public string? Orderunit { get; set; }
 
     /// <summary>
     /// 閿�鍞崟浣� 
     ///</summary>
     [SugarColumn(ColumnName = "SALEUNIT")]
-    public string Saleunit { get; set; }
+    public string? Saleunit { get; set; }
 
     /// <summary>
     /// 搴撴埧鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "STOREUNIT")]
-    public string Storeunit { get; set; }
+    public string? Storeunit { get; set; }
 
     /// <summary>
     /// 鐢熶骇鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "PRODUCTUNIT")]
-    public string Productunit { get; set; }
+    public string? Productunit { get; set; }
 
     /// <summary>
     /// 鐗╂枡ID 
@@ -156,43 +156,43 @@
     /// ERP鏂欏彿 
     ///</summary>
     [SugarColumn(ColumnName = "ERP_ITEM_NO")]
-    public string ErpItemNo { get; set; }
+    public string? ErpItemNo { get; set; }
 
     /// <summary>
     /// 榛樿浠撳簱 
     ///</summary>
     [SugarColumn(ColumnName = "DEPOT_CODE")]
-    public string DepotCode { get; set; }
+    public string? DepotCode { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍒嗙被缂栧彿 
     ///</summary>
     [SugarColumn(ColumnName = "PPBOM00019124")]
-    public string Ppbom00019124 { get; set; }
+    public string? Ppbom00019124 { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍒嗙粍 
     ///</summary>
     [SugarColumn(ColumnName = "REMARKS")]
-    public string Remarks { get; set; }
+    public string? Remarks { get; set; }
 
     /// <summary>
     /// 閲囪喘鍛� 
     ///</summary>
     [SugarColumn(ColumnName = "FPURCHASERID")]
-    public string Fpurchaserid { get; set; }
+    public string? Fpurchaserid { get; set; }
 
     /// <summary>
     /// 绂佺敤鐘舵�� 
     ///</summary>
     [SugarColumn(ColumnName = "FFORBIDSTATUS")]
-    public string Fforbidstatus { get; set; }
+    public string? Fforbidstatus { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍒嗙粍 
     ///</summary>
     [SugarColumn(ColumnName = "FMATERIALGROUP")]
-    public string Fmaterialgroup { get; set; }
+    public string? Fmaterialgroup { get; set; }
 
     /// <summary>
     /// 瀹屽伐瓒呮敹姣斾緥 
@@ -204,7 +204,7 @@
     /// 鍙戞枡鏂瑰紡 
     ///</summary>
     [SugarColumn(ColumnName = "FISSUETYPE")]
-    public string Fissuetype { get; set; }
+    public string? Fissuetype { get; set; }
 
     /// <summary>
     /// 鍚敤鎵瑰彿绠$悊 
@@ -222,91 +222,91 @@
     /// 鑷畾涔夊瓧娈�1 
     ///</summary>
     [SugarColumn(ColumnName = "REMARK1")]
-    public string Remark1 { get; set; }
+    public string? Remark1 { get; set; }
 
     /// <summary>
     /// 鑷畾涔夊瓧娈�2 
     ///</summary>
     [SugarColumn(ColumnName = "REMARK2")]
-    public string Remark2 { get; set; }
+    public string? Remark2 { get; set; }
 
     /// <summary>
     /// 鑷畾涔夊瓧娈�3 
     ///</summary>
     [SugarColumn(ColumnName = "REMARK3")]
-    public string Remark3 { get; set; }
+    public string? Remark3 { get; set; }
 
     /// <summary>
     /// 鑷畾涔夊瓧娈�4 
     ///</summary>
     [SugarColumn(ColumnName = "REMARK4")]
-    public string Remark4 { get; set; }
+    public string? Remark4 { get; set; }
 
     /// <summary>
     /// 鑷畾涔夊瓧娈�5 
     ///</summary>
     [SugarColumn(ColumnName = "REMARK5")]
-    public string Remark5 { get; set; }
+    public string? Remark5 { get; set; }
 
     /// <summary>
     /// 鐢熶骇杞﹂棿 
     ///</summary>
     [SugarColumn(ColumnName = "PRODUCTION_WORKSHOP")]
-    public string ProductionWorkshop { get; set; }
+    public string? ProductionWorkshop { get; set; }
 
     /// <summary>
     /// 鐗╂枡灞炴�� 
     ///</summary>
     [SugarColumn(ColumnName = "MATERIAL_PROPERTI")]
-    public string MaterialProperti { get; set; }
+    public string? MaterialProperti { get; set; }
 
     /// <summary>
     /// 鐢熶骇鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "PRODUCE_UNIT")]
-    public string ProduceUnit { get; set; }
+    public string? ProduceUnit { get; set; }
 
     /// <summary>
     /// 濮斿鍗曚綅 
     ///</summary>
     [SugarColumn(ColumnName = "SUBCON_UNIT")]
-    public string SubconUnit { get; set; }
+    public string? SubconUnit { get; set; }
 
     /// <summary>
     /// 鍥剧墖1 
     ///</summary>
     [SugarColumn(ColumnName = "BZ06")]
-    public string Bz06 { get; set; }
+    public string? Bz06 { get; set; }
 
     /// <summary>
     /// 鍥剧墖2 
     ///</summary>
     [SugarColumn(ColumnName = "BZ07")]
-    public string Bz07 { get; set; }
+    public string? Bz07 { get; set; }
 
     /// <summary>
     /// 鍥剧墖3 
     ///</summary>
     [SugarColumn(ColumnName = "BZ08")]
-    public string Bz08 { get; set; }
+    public string? Bz08 { get; set; }
 
     /// <summary>
     /// 鍥剧墖4 
     ///</summary>
     [SugarColumn(ColumnName = "BZ09")]
-    public string Bz09 { get; set; }
+    public string? Bz09 { get; set; }
 
     /// <summary>
     /// 鍥剧墖5 
     ///</summary>
     [SugarColumn(ColumnName = "BZ10")]
-    public string Bz10 { get; set; }
+    public string? Bz10 { get; set; }
 
     /// <summary>
     /// QC鍒嗙粍ID 
     ///</summary>
     [SugarColumn(ColumnName = "QC_TEAMID")]
-    public string QcTeamid { get; set; }
+    public string? QcTeamid { get; set; }
 
     /// <summary>
     /// 浣跨敤缁勭粐 
@@ -330,49 +330,49 @@
     /// 鍔╄鐮� 
     ///</summary>
     [SugarColumn(ColumnName = "FMNEMONICCODE")]
-    public string Fmnemoniccode { get; set; }
+    public string? Fmnemoniccode { get; set; }
 
     /// <summary>
     /// 淇濊川鏈� 
     ///</summary>
     [SugarColumn(ColumnName = "FEXPPERIOD")]
-    public string Fexpperiod { get; set; }
+    public string? Fexpperiod { get; set; }
 
     /// <summary>
     /// 棰滆壊 
     ///</summary>
     [SugarColumn(ColumnName = "COLOR_NAME")]
-    public string ColorName { get; set; }
+    public string? ColorName { get; set; }
 
     /// <summary>
     /// 鎹熻�楃巼 
     ///</summary>
     [SugarColumn(ColumnName = "FLOSSPERCENT")]
-    public string Flosspercent { get; set; }
+    public string? Flosspercent { get; set; }
 
     /// <summary>
     /// 鏍囧噯浜ц兘 
     ///</summary>
     [SugarColumn(ColumnName = "SP_CAPACITY")]
-    public string SpCapacity { get; set; }
+    public string? SpCapacity { get; set; }
 
     /// <summary>
     /// 鏄惁鍏抽敭浠� 
     ///</summary>
     [SugarColumn(ColumnName = "FISKITTING")]
-    public string Fiskitting { get; set; }
+    public string? Fiskitting { get; set; }
 
     /// <summary>
     /// 鍘熶骇鍦帮紙鍝佺墝鏂癸級 
     ///</summary>
     [SugarColumn(ColumnName = "PROVENANCE")]
-    public string Provenance { get; set; }
+    public string? Provenance { get; set; }
 
     /// <summary>
     /// 鏉愯川 
     ///</summary>
     [SugarColumn(ColumnName = "MATERIAL")]
-    public string Material { get; set; }
+    public string? Material { get; set; }
 
 
     [SugarColumn(IsIgnore = true)] public string? Type { get; set; }
diff --git a/MES.Service/Modes/MesOqcBarcode.cs b/MES.Service/Modes/MesOqcBarcode.cs
index 1ef0204..4206e8a 100644
--- a/MES.Service/Modes/MesOqcBarcode.cs
+++ b/MES.Service/Modes/MesOqcBarcode.cs
@@ -25,7 +25,7 @@
     ///     鎵爜浜�
     /// </summary>
     [SugarColumn(ColumnName = "CREATE_BY")]
-    public string CreateBy { get; set; }
+    public string? CreateBy { get; set; }
 
     /// <summary>
     ///     鎵爜鏃堕棿
@@ -37,7 +37,7 @@
     ///     鐗╂枡鏉$爜
     /// </summary>
     [SugarColumn(ColumnName = "ITEM_BARCODE")]
-    public string ItemBarcode { get; set; }
+    public string? ItemBarcode { get; set; }
 
     /// <summary>
     ///     鏁伴噺
@@ -55,11 +55,12 @@
     ///     鐗╂枡鍙�
     /// </summary>
     [SugarColumn(ColumnName = "ITEM_NO")]
-    public string ItemNo { get; set; }
+    public string? ItemNo { get; set; }
 
     /// <summary>
-    ///     閿�鍞鍗曞彿
+    ///     宸ュ崟鍙�
     /// </summary>
     [SugarColumn(ColumnName = "SALE_ORDER_NO")]
-    public string SaleOrderNo { get; set; }
+    public string? SaleOrderNo { get; set; }
+    
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesOqcItemsDetect02.cs b/MES.Service/Modes/MesOqcItemsDetect02.cs
index 7847d4e..2e3896b 100644
--- a/MES.Service/Modes/MesOqcItemsDetect02.cs
+++ b/MES.Service/Modes/MesOqcItemsDetect02.cs
@@ -134,5 +134,21 @@
         ///</summary>
         [SugarColumn(ColumnName = "DEPOT_ID")]
         public decimal? DepotId { get; set; }
+        
+        [SugarColumn(IsIgnore = true)]
+        public string? ItemName{ get; set; }
+    
+        [SugarColumn(IsIgnore = true)]
+        public string? ItemModel { get; set; }
+        
+        [SugarColumn(IsIgnore = true)]
+        public string? CreateUser { get; set; }
+        
+        //fcheckBy
+        [SugarColumn(IsIgnore = true)]
+        public string? FcheckUser { get; set; }
+        
+        [SugarColumn(IsIgnore = true)]
+        public string? DepotName { get; set; }
     }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesOqcItemsDetectDetail5.cs b/MES.Service/Modes/MesOqcItemsDetectDetail5.cs
index 9046c5f..7368f96 100644
--- a/MES.Service/Modes/MesOqcItemsDetectDetail5.cs
+++ b/MES.Service/Modes/MesOqcItemsDetectDetail5.cs
@@ -191,5 +191,7 @@
         ///</summary>
         [SugarColumn(ColumnName = "FEATU_PROC")]
         public string? FeatuProc { get; set; }
+        
+        [SugarColumn(IsIgnore = true)] public int? Unqualified { get; set; }
     }
 }
\ No newline at end of file
diff --git a/MES.Service/Modes/MesQsImage.cs b/MES.Service/Modes/MesQsImage.cs
index 3f627b2..59f1546 100644
--- a/MES.Service/Modes/MesQsImage.cs
+++ b/MES.Service/Modes/MesQsImage.cs
@@ -36,7 +36,7 @@
     public byte[]? ImageData { get; set; }
 
     /// <summary>
-    ///     1涓洪妫�锛�2涓哄贰妫�锛�3涓哄叆搴撴
+    ///     1涓洪妫�锛�2涓哄贰妫�锛�3涓哄叆搴撴,4涓烘潵鏂欐楠�,5涓篛QC
     /// </summary>
     [Column("QS_TYPE")]
     [SugarColumn(ColumnName = "QS_TYPE")] //鐢ㄤ簬SqlSugar
diff --git a/MES.Service/service/QC/BaseService.cs b/MES.Service/service/QC/BaseService.cs
index a827168..11a21c6 100644
--- a/MES.Service/service/QC/BaseService.cs
+++ b/MES.Service/service/QC/BaseService.cs
@@ -1,5 +1,6 @@
 锘縰sing MES.Service.DB;
 using MES.Service.Modes;
+using SqlSugar;
 
 namespace MES.Service.service.QC;
 
@@ -49,4 +50,19 @@
         });
         return mesQsImages;
     }
+    
+    public List<MesQsImage> getLljAllImgByFid(string id, string qsType)
+    {
+        var db = SqlSugarHelper.GetInstance();
+        var mesQsImages = db
+            .Queryable<MesQsImage, MesOqcItemsDetectDetail5>((a, b) =>
+                new JoinQueryInfos(JoinType.Left, a.Fid == b.Id))
+            .Where((a, b) => b.ReleaseNo == id && a.Id != null).ToList();
+        mesQsImages.ForEach(s =>
+        {
+            if (s.ImageData is { Length: > 0 })
+                s.base64Date = Convert.ToBase64String(s.ImageData);
+        });
+        return mesQsImages;
+    }
 }
\ No newline at end of file
diff --git a/MES.Service/service/QC/MesOqcItemsDetect02Manager.cs b/MES.Service/service/QC/MesOqcItemsDetect02Manager.cs
index a461509..35830d6 100644
--- a/MES.Service/service/QC/MesOqcItemsDetect02Manager.cs
+++ b/MES.Service/service/QC/MesOqcItemsDetect02Manager.cs
@@ -1,10 +1,11 @@
-锘縰sing Masuit.Tools;
+锘縰sing System.Data;
+using Masuit.Tools;
 using MES.Service.DB;
 using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.util;
-using Microsoft.CSharp.RuntimeBinder;
 using SqlSugar;
+using DbType = System.Data.DbType;
 
 namespace MES.Service.service.QC;
 
@@ -29,45 +30,49 @@
 
         var totalCount = 0;
 
-        //var itemIds = GetQaItem(db, queryObj.createUser);
+        var pageList = Db.Queryable<MesOqcItemsDetect02, MesItems
+                , SysUser, SysUser, MesDepots>((a, b, c, d, e) =>
+                new JoinQueryInfos(JoinType.Left, a.ItemId == b.Id,
+                    JoinType.Left, a.CreateBy == c.Fcode,
+                    JoinType.Left, a.FcheckBy == d.Fcode,
+                    JoinType.Left, a.DepotId == e.DepotId
+                ))
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                "鏈畬鎴�".Equals(queryObj.result),
+                (a, b, c, d, e) => a.FcheckResu == null || a.Fsubmit == 0)
+            .WhereIF(
+                StringUtil.IsNotNullOrEmpty(queryObj.result) &&
+                !"鏈畬鎴�".Equals(queryObj.result),
+                (a, b, c, d, e) => a.FcheckResu != null && a.Fsubmit == 1)
+            .WhereIF(id > 0, (a, b, c, d, e) => a.Id == id)
+            .OrderByDescending((a, b, c, d, e) => a.Id)
+            .Select((a, b, c, d, e) => new MesOqcItemsDetect02()
+            {
+                ItemNo = b.ItemNo,
+                ItemName = b.ItemName,
+                ItemModel = b.ItemModel,
+                CreateUser = c.Fname,
+                FcheckUser = d.Fname,
+                DepotName = e.DepotName
+            }, true)
+            .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
+        return (pageList, totalCount);
+    }
 
-        // 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(id > 0, a => a.Id == id)
+    public List<MesOqcItemsDetectDetail5> GetDetail5(OQCDto dto)
+    {
+        return Db.Queryable<MesOqcItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == dto.ReleaseNo)
+            .ToList();
+    }
 
-        //鍔犵瓫閫夋潯浠�,鏍规嵁渚涘簲鍟嗭紝鐗╂枡缂栫爜锛岀墿鏂欏悕绉版悳绱�
-        //.WhereIF(queryObj.SearchValue!=null && queryObj.SearchValue!="", (a) => a.SuppName == queryObj.SearchValue|| a.ItemName == queryObj.SearchValue || a.ItemNo == queryObj.SearchValue )
-        // .WhereIF(
-        //     queryObj.SelectedIndex == "0" &&
-        //     !string.IsNullOrEmpty(queryObj.SearchValue),
-        //     a => (a.ItemNo.ToLower()
-        //         .Contains(queryObj.SearchValue.ToLower())))
-        // .WhereIF(
-        //     queryObj.SelectedIndex == "1" &&
-        //     !string.IsNullOrEmpty(queryObj.SearchValue),
-        //     a => (a.ItemName.ToLower()
-        //         .Contains(queryObj.SearchValue.ToLower())))
-        // .WhereIF(
-        //     queryObj.SelectedIndex == "2" &&
-        //     !string.IsNullOrEmpty(queryObj.SearchValue),
-        //     a => (a.SuppName.ToLower()
-        //         .Contains(queryObj.SearchValue.ToLower())))
-        // .WhereIF(queryObj.result == "宸插畬鎴�",
-        //     a => (a.IqcDate >= queryObj.startDate.ToDateTime() &&
-        //           a.IqcDate <= queryObj.endDate.ToDateTime().AddDays(1)))
-        // .WhereIF(queryObj.result == "宸插畬鎴�" && queryObj.state != "鎵�鏈夌姸鎬�",
-        //     a => a.FcheckResu == queryObj.state)
-        //     .OrderByDescending(a => a.Id)
-        //     .ToPageList(queryObj.PageIndex, queryObj.Limit, ref totalCount);
-        // return (pageList, totalCount);
-        return (new List<MesOqcItemsDetect02>(), totalCount);
+    public List<MesOqcItemsDetectDetail12> GetDetail12(OQCDto dto)
+    {
+        return Db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.ReleaseNo == dto.ReleaseNo
+                        && s.MainId == dto.MainId)
+            .ToList();
     }
 
     public MesInvItemStocks GetItemBarCode(XJPageResult queryObj)
@@ -86,6 +91,16 @@
             throw new NotImplementedException("鏉$爜涓嶅瓨鍦ㄤ簬搴撳瓨涓�");
         }
 
+        // 妫�鏌ユ潯鐮佹槸鍚﹀凡缁忓瓨鍦ㄤ簬MesOqcBarcode琛ㄤ腑锛堝凡妫�楠岃繃锛�
+        var existingBarcode = Db.Queryable<MesOqcBarcode>()
+            .Where(a => a.ItemBarcode == queryObj.ItemCode)
+            .First();
+
+        if (existingBarcode != null)
+        {
+            throw new NotImplementedException("璇ユ潯鐮佸凡缁忔楠岃繃锛屼笉鑳介噸澶嶆楠�");
+        }
+
         var mesDepots = Db.Queryable<MesDepots>()
             .Where(s => s.DepotId == 121163).First();
 
@@ -94,21 +109,361 @@
             throw new NotImplementedException("鍙兘鎵弿" + mesDepots.DepotCode +
                                               "浠撳簱鐨勭爜");
         }
-        
+
         if (mesInvItemStocks.ItemId is null or 0)
         {
             throw new NotImplementedException("鐗╂枡鏄潪娉曠殑");
         }
 
         var mesItems = Db.Queryable<MesItems>()
-            .Where(b=>b.Id == mesInvItemStocks.ItemId)
+            .Where(b => b.Id == mesInvItemStocks.ItemId)
+            .Select<MesItems>(b => new MesItems
+            {
+                ItemName = b.ItemName,
+                ItemModel = b.ItemModel,
+            })
             .First();
-        
-        // mesInvItemStocks.ItemName = mesItems.ItemName;
-        // mesInvItemStocks.ItemModel = mesItems.ItemModel;
+
+        mesInvItemStocks.ItemName = mesItems.ItemName;
+        mesInvItemStocks.ItemModel = mesItems.ItemModel;
 
         return mesInvItemStocks;
     }
+
+    //OQCDto
+    public int ItemBarCodeSubmit(OQCDto dto)
+    {
+        //getbillcode1
+        var billNo = Db.Ado.GetString(
+            "SELECT getbillcode1('1000', '1000', 'OQC') FROM DUAL");
+
+        var dtoItemBarCodeData = dto.ItemBarCodeData;
+
+        var sum = dtoItemBarCodeData.Sum(s => s.Quantity);
+
+        MesOqcItemsDetect02 from = new MesOqcItemsDetect02
+        {
+            CreateBy = dto.CreateUser,
+            CreateDate = DateTime.Now,
+            ReleaseNo = billNo,
+            Fsubmit = 0,
+            Ismodify1 = 0,
+            FcheckBy = dto.CreateUser,
+            FcheckDate = DateTime.Now,
+            ItemNo = dtoItemBarCodeData[0].ItemNo,
+            ItemId = dtoItemBarCodeData[0].ItemId,
+            PlanQty = sum,
+            SaleOrderNo = dtoItemBarCodeData[0].TaskNo,
+            DepotId = 121163
+        };
+
+        var id = Db.Insertable(from)
+            .IgnoreColumns(ignoreNullColumn: true)
+            .ExecuteReturnIdentity();
+
+        //璁板綍鏉$爜
+        List<MesOqcBarcode> oqcBarcodes = new List<MesOqcBarcode>();
+
+        foreach (var mesInvItemStockse in dtoItemBarCodeData)
+        {
+            MesOqcBarcode entity = new MesOqcBarcode()
+            {
+                CreateBy = dto.CreateUser,
+                CreateDate = DateTime.Now,
+                ItemBarcode = mesInvItemStockse.ItemBarcode,
+                ItemId = mesInvItemStockse.ItemId,
+                ItemNo = mesInvItemStockse.ItemNo,
+                Qty = mesInvItemStockse.Quantity,
+                Pid = id,
+                SaleOrderNo = mesInvItemStockse.TaskNo,
+            };
+            oqcBarcodes.Add(entity);
+        }
+
+        var executeCommand = Db.Insertable(oqcBarcodes).PageSize(1)
+            .IgnoreColumnsNull()
+            .ExecuteCommand();
+
+        //PRC_OQC_ITEM_INSERT_BTN
+        if (executeCommand > 0 && id > 0)
+        {
+            // 瀹氫箟杈撳嚭鍙傛暟
+            var outputResult = new SugarParameter("PO_RESULT", null,
+                DbType.Int32, ParameterDirection.Output, 4000);
+            var outputMessage = new SugarParameter("PO_TEXT", null,
+                DbType.String,
+                ParameterDirection.Output, 4000);
+
+            // 瀹氫箟杈撳叆鍙傛暟
+            var parameters = new List<SugarParameter>
+            {
+                new("P_RELEASE_NO", from.ReleaseNo, DbType.String,
+                    ParameterDirection.Input),
+                new("P_ITEM_ID", from.ItemId, DbType.Int32,
+                    ParameterDirection.Input),
+                new("P_BILL_NO  ", "", DbType.String,
+                    ParameterDirection.Input),
+                outputResult,
+                outputMessage
+            };
+
+            var db = SqlSugarHelper.GetInstance();
+
+            // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+            db.Ado.ExecuteCommand(
+                "BEGIN PRC_OQC_ITEM_INSERT_BTN(:P_RELEASE_NO,:P_ITEM_ID,:P_BILL_NO,:PO_RESULT, :PO_TEXT); END;",
+                parameters.ToArray());
+
+            // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+            var resultValue = outputResult.Value?.ToString();
+            var messageValue = outputMessage.Value?.ToString();
+
+            if ("1".Equals(resultValue))
+                // 澶勭悊澶辫触鎯呭喌锛岃繑鍥為敊璇俊鎭�
+                throw new Exception($"鎿嶄綔澶辫触: {messageValue}");
+
+            // 褰� resultValue 涓� "0" 鏃惰繑鍥炴垚鍔熺姸鎬�
+            return id;
+        }
+
+        return 0;
+    }
+
+    public OQCDto getXjDetail02ById(decimal? id)
+    {
+        var rkjDto = new OQCDto();
+
+        var qsItemOqcItem =
+            Db.Queryable<MesOqcItemsDetectDetail5>().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<MesOqcItemsDetectDetail12>()
+            .Where(s => s.Fstand == "脳" && s.MainId == id).Count();
+
+        qsItemOqcItem.Unqualified = count;
+
+        rkjDto.ItemXj01 = qsItemOqcItem;
+
+
+        rkjDto.ItemXj02s = Db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.MainId == id)
+            .ToList();
+
+        return rkjDto;
+    }
+
+    public int UpdateQSItemDetail(MesOqcItemsDetectDetail12 detail)
+    {
+        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesOqcItemsDetectDetail12>()
+                .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 autoResult(MesOqcItemsDetectDetail12 detail)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        // Single 娌℃湁鏌ヨ鍒扮粨鏋滄椂杩斿洖Null锛屽鏋滅粨鏋滃ぇ浜�1鏉′細鎶涘嚭閿欒
+        var QsItemOqcItem = db.Queryable<MesOqcItemsDetectDetail5>()
+            .Single(s => s.Id == detail.MainId);
+
+        if (QsItemOqcItem == null) return 0;
+
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠岀粨鏋�
+        var count = db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId).Count();
+
+        updateDetail5(detail);
+        var result = "";
+
+        //妫�楠屽疄闄呯粨鏋滀笉绛変簬搴旇妫�楠岀殑涓暟鏃剁洿鎺ユ帹鍑�
+        if (QsItemOqcItem.CheckQyt != count) return 0;
+
+        //鍚堟牸鐨勬湁澶氬皯涓�
+        var passCount = db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId && s.Fstand == "鈭�").Count();
+        //涓嶅悎鏍肩殑鏈夊灏戜釜
+        var noCount = db.Queryable<MesOqcItemsDetectDetail12>()
+            .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<MesOqcItemsDetectDetail5>()
+                    .SetColumns(s => s.FcheckResu == result)
+                    .SetColumns(s => s.FenterQty == count)
+                    .Where(s => s.Id == detail.MainId)
+                    .ExecuteCommand();
+
+                return commit;
+            });
+
+        var isNull = db.Queryable<MesOqcItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == detail.ReleaseNo && s.FcheckResu == null)
+            .Count();
+
+        if (isNull > 0) return 1;
+        //鑾峰彇妫�楠屽崟鐨勬楠岄」鐩殑涓暟
+        var sum = db.Queryable<MesOqcItemsDetectDetail5>()
+            .Where(s => s.ReleaseNo == detail.ReleaseNo).Count();
+
+        if (sum == 0) return 1;
+
+        //鑾峰彇妫�楠屽崟涓嬬殑鍚堟牸鐨勬楠岄」鐩釜鏁�
+        var icount = db.Queryable<MesOqcItemsDetectDetail5>()
+            .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<MesOqcItemsDetect02>()
+                .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;
+    }
+
+    private int updateDetail5(MesOqcItemsDetectDetail12 detail)
+    {
+        var db = SqlSugarHelper.GetInstance();
+
+        //鏌ヨ杩欎釜妫�楠岄」鐩笅鐨勬楠屾暟閲�
+        var count = db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId).Count();
+
+        //鑾峰彇涓嶅悎鏍兼暟
+        var countNo = db.Queryable<MesOqcItemsDetectDetail12>()
+            .Where(s => s.MainId == detail.MainId && s.Fstand == "脳").Count();
+        //鏇存柊妫�楠屾槑缁嗗凡妫�鏁伴噺  
+        var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesOqcItemsDetectDetail5>()
+                .SetColumns(s => s.FenterQty == count)
+                .SetColumns(s => s.FngQty == countNo)
+                .Where(s => s.Id == detail.MainId)
+                .ExecuteCommand();
+        });
+
+        return withOracle;
+    }
+
+    public int saveRemarksPid(LLJDto dto)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesOqcItemsDetectDetail5>()
+                .SetColumns(it =>
+                    it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .Where(it => it.Id == dto.pid)
+                .ExecuteCommand();
+        });
+    }
+
+    public bool IqcQaSubmit(LLJDto dto)
+    {
+        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("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_OQC_QA_SUBMIT82(: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);
+        }
+    }
     
-    
+    public int saveRemarksGid(LLJDto dto)
+    {
+        return SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            return db.Updateable<MesOqcItemsDetect02>()
+                .SetColumns(it =>
+                    it.Remeke == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .Where(it => it.ReleaseNo == dto.releaseNo)
+                .ExecuteCommand();
+        });
+    }
 }
\ No newline at end of file
diff --git a/MESApplication/Controllers/QC/BaseController.cs b/MESApplication/Controllers/QC/BaseController.cs
index dd54e7f..5b35c14 100644
--- a/MESApplication/Controllers/QC/BaseController.cs
+++ b/MESApplication/Controllers/QC/BaseController.cs
@@ -81,4 +81,33 @@
             return ResponseResult.ResponseError(ex);
         }
     }
+    
+    /// <summary>
+    ///     鑾峰彇鏉ユ枡妫�鍗曚釜妫�楠屽崟涓婁紶鐨勬墍鏈夊浘鐗�
+    /// </summary>
+    /// <param name="data"></param>
+    /// <returns></returns>
+    [HttpPost("getLljAllImgByFid")]
+    public ResponseResult getLljAllImgByFid([FromBody] JObject data)
+    {
+        var id = data["id"].ToString();
+        var qsType = data["qsType"].ToString();
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList =
+                new BaseService().getLljAllImgByFid(id, qsType);
+            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/MESApplication/Controllers/QC/MesOqcItemsDetect02Controller.cs b/MESApplication/Controllers/QC/MesOqcItemsDetect02Controller.cs
index 58926ae..8aaca72 100644
--- a/MESApplication/Controllers/QC/MesOqcItemsDetect02Controller.cs
+++ b/MESApplication/Controllers/QC/MesOqcItemsDetect02Controller.cs
@@ -4,6 +4,7 @@
 using MES.Service.service.QC;
 using MES.Service.util;
 using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
 
 namespace MESApplication.Controllers.QC;
 
@@ -13,6 +14,160 @@
 {
     private readonly MesOqcItemsDetect02Manager m = new();
     
+    //saveRemarksGid 涓昏〃娣诲姞涓嶅悎鏍兼弿杩�
+    [HttpPost("saveRemarksGid")]
+    public ResponseResult saveRemarksGid([FromBody] LLJDto rkjDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = m.saveRemarksGid(rkjDto);
+            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 = m.IqcQaSubmit(rkjDto);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("saveRemarksPid")]
+    public ResponseResult saveRemarksPid([FromBody] LLJDto rkjDto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = m.saveRemarksPid(rkjDto);
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("UpdateQSItemDetail")]
+    public ResponseResult UpdateQSItemDetail(
+        [FromBody] MesOqcItemsDetectDetail12 detail)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject(); 
+            var detail021 = m.UpdateQSItemDetail(detail);
+            resultInfos.tbBillList = detail021;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("getXjDetail02ById")]
+    public ResponseResult getXjDetail02ById([FromBody] JObject data)
+    {
+        var id = data["id"]?.ToString();
+
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var tbBillList = m.getXjDetail02ById(Convert.ToDecimal(id));
+            resultInfos.tbBillList = tbBillList;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    //ItemBarCodeSubmit(OQCDto dto)
+    [HttpPost("ItemBarCodeSubmit")]
+    public ResponseResult ItemBarCodeSubmit([FromBody] OQCDto dto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var item = m.ItemBarCodeSubmit(dto);
+            var tbBillList =
+                resultInfos.tbBillList = item;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = tbBillList
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
+    [HttpPost("GetDetail5")]
+    public ResponseResult GetDetail5([FromBody] OQCDto dto)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var item = m.GetDetail5(dto);
+            var tbBillList =
+                resultInfos.tbBillList = item;
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = tbBillList
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+    
     [HttpPost("getPage")]
     public ResponseResult getPage([FromBody] XJPageResult queryObj)
     {

--
Gitblit v1.9.3