From 3296c70dfc999ff1d09ac28d6205197c11825c5f Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期四, 22 五月 2025 14:58:26 +0800
Subject: [PATCH] 1,来料检添加‘往期检验履历’,‘最大抽检数量’两个字段 2,一致性核对添加图片是否上传校验

---
 StandardPda/MES.Service/service/QC/LljService.cs |  244 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 229 insertions(+), 15 deletions(-)

diff --git a/StandardPda/MES.Service/service/QC/LljService.cs b/StandardPda/MES.Service/service/QC/LljService.cs
index 471b21c..0ef3a9a 100644
--- a/StandardPda/MES.Service/service/QC/LljService.cs
+++ b/StandardPda/MES.Service/service/QC/LljService.cs
@@ -3,10 +3,13 @@
 using MES.Service.Dto.service;
 using MES.Service.Modes;
 using MES.Service.util;
+using MySqlConnector;
 using Newtonsoft.Json;
 using SharpCompress.Factories;
 using SqlSugar;
+using System.ComponentModel;
 using System.Data;
+using System.Xml.Linq;
 using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
 using DbType = System.Data.DbType;
 
@@ -31,12 +34,14 @@
 
         var pageList = db
             .Queryable<LtsLlj, IqcBefore, VMesQaItemsDetect01, SysUser,
-                IqcBeforeFrom, SysUser>((a, b, d, e, f, g) =>
+                IqcBeforeFrom, SysUser, InspectorChangeLog, SysUser>((a, b, d, e, f, g,h,i) =>
                 new JoinQueryInfos(JoinType.Left, a.ItemId == b.ItemId,
                     JoinType.Inner, a.Id == d.Id,
                     JoinType.Left, a.CreateBy == e.Fcode,
                     JoinType.Left, f.Id == b.PID,
-                    JoinType.Left, f.Sid == g.Fid
+                    JoinType.Left, f.Sid == g.Fid,
+                    JoinType.Left,a.ReleaseNo==h.InspectionNo && h.IsValid=="Y",
+                    JoinType.Left,i.Fcode==h.Inspector
                 ))
             .WhereIF(
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
@@ -50,7 +55,7 @@
             //    itemIds is { Length: > 0 },
             //    (a, b, c) => itemIds.Contains(a.ItemId))
             .WhereIF(id > 0, (a, b, d) => a.Id == id)
-            .WhereIF(true, (a, b, d, e, f, g) => (g.Fcode == queryObj.createUser || g.Fcode == null))
+            .WhereIF(queryObj.createUser!="PL017"&& queryObj.UserIndex=="0", (a, b, d, e, f, g,h, i) => (g.Fcode == queryObj.createUser || i.Fcode == queryObj.createUser))//鍒ゆ柇姝ゅ崟鐨勬楠屽憳锛屾垨鑰呮楠屼负绌哄氨鏄剧ず姝ゅ崟鎹�
             //鍔犵瓫閫夋潯浠�,鏍规嵁渚涘簲鍟嗭紝鐗╂枡缂栫爜锛岀墿鏂欏悕绉帮紝椤圭洰鎼滅储
             //.WhereIF(queryObj.SearchValue != null && queryObj.SearchValue != "",
             //(a, b, d) => (a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower())
@@ -64,11 +69,15 @@
             .WhereIF(queryObj.SelectedIndex == "1" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower())))
             .WhereIF(queryObj.SelectedIndex == "2" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower())))
             .WhereIF(queryObj.SelectedIndex == "3" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d) => (a.SuppName.ToLower().Contains(queryObj.SearchValue.ToLower())))
-            .WhereIF(queryObj.SelectedIndex == "4" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d, e) => (e.Fname.ToLower().Contains(queryObj.SearchValue.ToLower())))
-            .OrderByDescending((a, b, d) => a.Id)
-            .Select((a, b, d, e, f, g) => new LtsLlj
+            .WhereIF(queryObj.result== "宸插畬鎴�", (a, b, d, e) => (a.IqcDate>= queryObj.startDate.ToDateTime()&& a.IqcDate <= queryObj.endDate.ToDateTime().AddDays(1)))
+            .WhereIF(queryObj.result == "宸插畬鎴�" && queryObj.state!= "鎵�鏈夌姸鎬�",(a, b, d, e) => (a.FcheckResu == queryObj.state))
+            // .WhereIF(queryObj.result == "鏈畬鎴�" && queryObj.SearchValue != null && queryObj.SearchValue != "", (a, b, d, e) => (e.Fname.ToLower().Contains(queryObj.SearchValue.ToLower())))
+            //.OrderByDescending((a, b, d) => a.Id)
+            .Select((a, b, d, e, f, g,h,i) => new LtsLlj
             {
-                UserName = g.Fname,
+                //UserName = g.Fname,
+                //UserName = (i.Fname!=null ||i.Fname!="") ? i.Fname : g.Fname,
+                UserName = (i.Fname!=null ||i.Fname!="") ? i.Fname : g.Fname,
                 FIRST = d.First,
                 CreateUserName = e.Fname,
                 NewFngDesc = d.NewFngDesc,
@@ -224,7 +233,7 @@
           DbType.String, ParameterDirection.Input),
       outputResult,
       outputMessage
-  };
+        };
 
         var db = SqlSugarHelper.GetInstance();
 
@@ -242,6 +251,61 @@
         return msg;
 
     }
+
+
+
+
+    /// <summary>
+    /// 淇濆瓨鏂版楠屽憳
+    /// </summary>
+    /// <param name="NewStaffUserID">鏂版楠屽憳ID</param>
+    /// <param name="userID">淇敼浜�</param>
+    /// <param name="releaseNo">妫�楠屽崟鍙�</param>
+    /// <returns></returns>
+    public string[] SaveCheckBy(string NewStaffUserID, string userID, string releaseNo)
+    {
+        // 瀹氫箟杈撳嚭鍙傛暟
+        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_FCHECK_BY", NewStaffUserID,
+          DbType.String, ParameterDirection.Input),
+              new("p_Release_No", releaseNo,
+          DbType.String, ParameterDirection.Input),
+            new("p_User", userID,
+          DbType.String, ParameterDirection.Input),
+          
+      outputResult,
+      outputMessage
+        };
+
+        var db = SqlSugarHelper.GetInstance();
+
+        // 浣跨敤 SqlSugar 鎵ц瀛樺偍杩囩▼
+        db.Ado.ExecuteCommand(
+            "BEGIN Prc_Mes_Iqc_Qa_Update_CheckBy(:P_FCHECK_BY,:p_Release_No,:p_User, :o_Result, :o_Msg); END;",
+            parameters.ToArray());
+
+        // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
+        var resultValue = outputResult.Value?.ToString();
+        var messageValue = outputMessage.Value?.ToString();
+        string[] msg = new string[2];
+        msg[0] = resultValue;
+        msg[1] = messageValue;
+        return msg;
+
+    }
+
+
+
     public string[] SaveSysSubmit(SysSubmit sysSubmit)
     {
         // 瀹氫箟杈撳嚭鍙傛暟
@@ -373,6 +437,7 @@
                     new JoinQueryInfos(JoinType.Left, a.Id == b.MainId))
             .Where((a, b) => a.ReleaseNo == releaseNo)
             // .WhereIF(id > 0, (a, b) => a.Id == id)
+            .OrderByDescending((a, b) => a.FcheckItem)
             .GroupBy((a, b) => new
             {
                 a.Id,
@@ -412,6 +477,16 @@
                 FcheckItemDesc = a.FcheckItemDesc
             }).ToList();
     }
+
+
+
+    public DataTable getAllInspectors()
+    {
+         OracleSQLHelper SQLHelper = new();
+         var sql =string.Format(@"select a.USER_NAME label,U.FCODE value from IQC_BEFORE_FROM a JOIN SYS_USER U ON U.FID=A.SID");
+         return SQLHelper.ExecuteQuery(sql);
+    }
+
 
     public int SetQSItemDetail(MesQaItemsDetectDetail12 detail)
     {
@@ -616,6 +691,144 @@
         return rkjDto;
     }
 
+
+    public DataTable getFromInfo(string BarCode)
+    {
+        OracleSQLHelper SQLHelper = new();
+        var sql = string.Format(@"select b.ID,b.LOT_NO,b.RELEASE_NO,b.FSUBMIT from MES_INV_ITEM_BARCODES A
+                                    left join MES_QA_ITEMS_DETECT_01 B on A.BILL_NO=b.LOT_NO and A.ITEM_ID=b.ITEM_ID
+                                    where ITEM_BARCODE='"+ BarCode + "'");
+        return SQLHelper.ExecuteQuery(sql);
+    }
+    public DataTable getImgBDlist(string id)
+    {
+        OracleSQLHelper SQLHelper = new();
+        var sql = string.Format(@"select id,FID,IMAGE_DATA from MES_QS_IMAGE where FID="+id+"");
+        return SQLHelper.ExecuteQuery(sql);
+    }
+    /// <summary>
+    /// 涓�鑷存�ч」鐩�
+    /// </summary>
+    public class Component
+    {
+        public string Name { get; set; }
+        public List<string> Specs { get; set; }
+        public List<string> Manufacturers { get; set; }
+        public List<string> Id { get; set; }
+        public int SelectedSpec { get; set; }
+        public int SelectedMfg { get; set; }
+    }
+    public List<Component> getYzxBDlist(string id)
+    {
+        OracleSQLHelper SQLHelper = new();
+        //鏌ュ厓鍣ㄤ欢
+        var sql1 = string.Format(@"select ITEMNAME from MES_IQC_CONSISTENCY_ck where PID='"+id+"' group by ITEMNAME order by ITEMNAME");
+        //鏌ユ槑缁�
+        var sql2 = string.Format(@"select * from MES_IQC_CONSISTENCY_ck where PID='"+id+"' order by ITEMNAME,ITEMMODE,SUPPNAME");
+        DataTable dataTable1= SQLHelper.ExecuteQuery(sql1);
+        DataTable dataTable2 = SQLHelper.ExecuteQuery(sql2);
+        List<Component> Components = new List<Component>();
+
+
+
+        for (int i = 0; i <dataTable1.Rows.Count; i++)
+        {
+            Component component = new Component();
+            component.Name= dataTable1.Rows[i]["ITEMNAME"].ToString();
+            component.Specs= new List<string>();
+            component.Manufacturers = new List<string>();
+            component.Id = new List<string>();
+            component.SelectedSpec = -1;
+            component.SelectedMfg = -1;
+            int index = 0;
+            for (int j = 0; j < dataTable2.Rows.Count; j++)
+            {
+                
+                if (dataTable2.Rows[j]["ITEMNAME"].ToString()== dataTable1.Rows[i]["ITEMNAME"].ToString())
+                {
+                    component.Specs.Add(dataTable2.Rows[j]["ITEMMODE"].ToString());
+                    component.Manufacturers.Add(dataTable2.Rows[j]["SUPPNAME"].ToString());
+                    component.Id.Add(dataTable2.Rows[j]["ID"].ToString());
+                    if (dataTable2.Rows[j]["ISCHACK"].ToString()=="1")
+                    {
+                        component.SelectedSpec = index;
+                        component.SelectedMfg = index;
+                    }
+                    index++;
+                }
+            }
+
+            Components.Add(component);
+        }
+        return Components;
+    }
+
+    public DataTable getBlmsItem()
+    {
+        OracleSQLHelper SQLHelper = new();
+        //鏌ヤ笉鑹弿杩�
+        var sql1 = string.Format(@"select DEFECT_NAME
+                                    from MES_DEFECT_CODE A
+                                    left join MES_DEFECT_TYPE X ON X.TYPE_NO = A.DEFECT_SORT AND X.COMPANY = A.COMPANY AND X.FACTORY = A.FACTORY");
+      
+        return SQLHelper.ExecuteQuery(sql1);
+    }
+    public DataTable getBlmsItem(string id)
+    {
+        OracleSQLHelper SQLHelper = new();
+        //鏌ヤ笉鑹弿杩�
+        var sql1 = string.Format(@"select FCHECK_ITEM,FUNIT from mes_qa_items_detect_detail5 f where RELEASE_NO='"+id+"' and FUNIT is not null order by FCHECK_ITEM");
+
+        return SQLHelper.ExecuteQuery(sql1);
+    }
+    public void saveYzxBDlist(string id,DataTable DB)
+    {
+        OracleSQLHelper SQLHelper = new();
+        //鍏堟妸缁撴灉娓呯┖
+        var sql1 = string.Format(@"update MES_IQC_CONSISTENCY_ck set ISCHACK=0 where PID='"+ id + "' ");
+        SQLHelper.ExecuteQuery(sql1);
+        string rowId = "";
+        for (int i = 0; i < DB.Rows.Count; i++)
+        {
+            rowId += "'" + DB.Rows[i]["id"] + "',";
+        }
+        rowId = rowId.Substring(0, rowId.Length - 1);
+
+
+        //淇敼缁撴灉
+        var sql2 = string.Format(@"update MES_IQC_CONSISTENCY_ck set ISCHACK=1 where PID='" + id + "'and id in("+ rowId + ") ");
+        SQLHelper.ExecuteQuery(sql2);
+
+    }
+
+    public string[] YzxImgVerify(string id)
+    {
+        string[] msgStr = new string[2];
+        
+        OracleSQLHelper SQLHelper = new();
+        //淇敼缁撴灉
+        var sql2 = string.Format(@"select A.ITEMNAME from ( select 888||min(id) id,ITEMNAME from MES_IQC_CONSISTENCY_CK where pid='"+ id + "' group by  ITEMNAME) A " +
+            "left join MES_QS_IMAGE b on a.id=b.fid where B.id is null order by ITEMNAME");
+        DataTable db= SQLHelper.ExecuteQuery(sql2);
+        if (db.Rows.Count > 0)
+        {
+            msgStr[1] = "鍏冨櫒浠讹細";
+            for (int i = 0; i < db.Rows.Count; i++)
+            {
+                msgStr[1] += db.Rows[i]["ITEMNAME"]+ ",";
+            }
+            msgStr[1] += "鏈畬鎴愬浘鐗囦笂浼狅紝璇蜂笂浼狅紒";
+            msgStr[0] = "1";
+        }
+        else 
+        {
+            msgStr[0] = "0";
+            msgStr[1] = "ok";
+        }
+
+    return msgStr;
+    }
+
     public int UpdateQSItemDetail(MesQaItemsDetectDetail12 detail)
     {
         var withOracle = SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -682,8 +895,8 @@
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<MesQaItemsDetectDetail5>()
-                // .SetColumns(it =>
-                //     it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                 .SetColumns(it =>
+                     it.Funit == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
                 .Where(it => it.Id == dto.pid)
                 .ExecuteCommand();
         });
@@ -713,7 +926,7 @@
         return withOracle;
     }
 
-    public bool IqcQaSubmit(LLJDto dto)
+    public string[] IqcQaSubmit(LLJDto dto)
     {
         var (factory, company) = UserUtil.GetFactory(dto.userNo);
         try
@@ -752,10 +965,11 @@
             // 鑾峰彇杈撳嚭鍙傛暟鐨勫��
             var resultValue = outputResult.Value?.ToString();
             var messageValue = outputMessage.Value?.ToString();
-
-            if ("1".Equals(resultValue)) throw new Exception(messageValue);
-
-            return true;
+            string[] msg = new string[2];
+            msg[0] = resultValue;
+            msg[1] = messageValue;
+            return msg;
+             
         }
         catch (Exception ex)
         {

--
Gitblit v1.9.3