From 662c8acd89bdcbbd92d1b917d6128cbcce0134d7 Mon Sep 17 00:00:00 2001
From: tjx <t2856754968@163.com>
Date: 星期四, 04 十二月 2025 14:42:55 +0800
Subject: [PATCH] 三个检验增加钉钉推送

---
 MES.Service/Modes/QaRkj.cs           |   64 +++
 MES.Service/service/QC/XJService.cs  |  165 +++++---
 MES.Service/Modes/QaXj.cs            |   64 +++
 MES.Service/service/QC/SJService.cs  |  672 +++++++++++++++++++++-------------
 MES.Service/Modes/QaSj.cs            |   64 +++
 MES.Service/service/QC/RKJService.cs |   92 +++-
 6 files changed, 779 insertions(+), 342 deletions(-)

diff --git a/MES.Service/Modes/QaRkj.cs b/MES.Service/Modes/QaRkj.cs
new file mode 100644
index 0000000..6b12324
--- /dev/null
+++ b/MES.Service/Modes/QaRkj.cs
@@ -0,0 +1,64 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// QA_RKJ 妫�楠岃鍥惧疄浣�
+/// </summary>
+[SugarTable("QA_RKJ")]
+public class QaRkj
+{
+    /// <summary>
+    /// ID
+    /// </summary>
+    [SugarColumn(ColumnName = "ID")]
+    public int Id { get; set; }
+
+    /// <summary>
+    /// 鍙戝竷鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string? ReleaseNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string? ItemName { get; set; }
+
+    /// <summary>
+    /// 渚涘簲鍟�/瀹㈡埛
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA020")]
+    public string? Daa020 { get; set; }
+
+    /// <summary>
+    /// 閮ㄩ棬鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPARTMENTNAME")]
+    public string? Departmentname { get; set; }
+
+    /// <summary>
+    /// 鎻愪氦浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FSUBMIT")]
+    public string? Fsubmit { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇璁㈠崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA001")]
+    public int? Daa001 { get; set; }
+
+    /// <summary>
+    /// 妫�楠岀粨鏋�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCHECK_RESU")]
+    public string? FcheckResu { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/QaSj.cs b/MES.Service/Modes/QaSj.cs
new file mode 100644
index 0000000..c227a94
--- /dev/null
+++ b/MES.Service/Modes/QaSj.cs
@@ -0,0 +1,64 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// QA_SJ 妫�楠岃鍥惧疄浣�
+/// </summary>
+[SugarTable("QA_SJ")]
+public class QaSj
+{
+    /// <summary>
+    /// ID
+    /// </summary>
+    [SugarColumn(IsPrimaryKey = true, ColumnName = "ID")]
+    public int Id { get; set; }
+
+    /// <summary>
+    /// 鍗曟嵁缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_NO")]
+    public string? BillNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string? ItemName { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇绾垮悕绉�
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_NAME")]
+    public string? LineName { get; set; }
+
+    /// <summary>
+    /// 杞﹂棿鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "WORKSHOP_NAME")]
+    public string? WorkshopName { get; set; }
+
+    /// <summary>
+    /// 鎻愪氦浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FSUBMIT")]
+    public string? Fsubmit { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇璁㈠崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA001")]
+    public int? Daa001 { get; set; }
+
+    /// <summary>
+    /// 妫�楠岀粨鏋�
+    /// </summary>
+    [SugarColumn(ColumnName = "JYJG")]
+    public string? Jyjg { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/Modes/QaXj.cs b/MES.Service/Modes/QaXj.cs
new file mode 100644
index 0000000..ecca2d8
--- /dev/null
+++ b/MES.Service/Modes/QaXj.cs
@@ -0,0 +1,64 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// QA_XJ 妫�楠岃鍥惧疄浣�
+/// </summary>
+[SugarTable("QA_XJ")]
+public class QaXj
+{
+    /// <summary>
+    /// ID
+    /// </summary>
+    [SugarColumn(ColumnName = "ID")]
+    public int Id { get; set; }
+
+    /// <summary>
+    /// 鍙戝竷鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "RELEASE_NO")]
+    public string? ReleaseNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡缂栧彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NO")]
+    public string? ItemNo { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "ITEM_NAME")]
+    public string? ItemName { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇绾垮悕绉�
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_NAME")]
+    public string? LineName { get; set; }
+
+    /// <summary>
+    /// 閮ㄩ棬鍚嶇О
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPARTMENTNAME")]
+    public string? Departmentname { get; set; }
+
+    /// <summary>
+    /// 鎻愪氦浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "FSUBMIT")]
+    public string? Fsubmit { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇璁㈠崟鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "DAA001")]
+    public int? Daa001 { get; set; }
+
+    /// <summary>
+    /// 妫�楠岀粨鏋�
+    /// </summary>
+    [SugarColumn(ColumnName = "FCHECK_RESU")]
+    public string? FcheckResu { get; set; }
+}
\ No newline at end of file
diff --git a/MES.Service/service/QC/RKJService.cs b/MES.Service/service/QC/RKJService.cs
index e3d073d..30bfad8 100644
--- a/MES.Service/service/QC/RKJService.cs
+++ b/MES.Service/service/QC/RKJService.cs
@@ -87,7 +87,7 @@
 
         decimal? ID = db.Queryable<MesQa>()
             .Where(s => s.QsType == "3" && s.ItemNo == itemNo && s.Fsubmit == 1)
-            .Select(s=> s.Id)
+            .Select(s => s.Id)
             .First();
 
         // 鑾峰彇璐ㄩ噺鏍囧噯
@@ -528,16 +528,19 @@
 
 
         var query = db
-            .Queryable<QsItemOqcReq, MesItems, Womdaa, MesLine, SysUser, Womcaa, SysDepartment,MesUserDepartmentQc, SysUser>((a, b,
+            .Queryable<QsItemOqcReq, MesItems, Womdaa, MesLine, SysUser, Womcaa,
+                SysDepartment, MesUserDepartmentQc, SysUser>((a, b,
                     da, c, us, ca, d, dq, us2) =>
                 new JoinQueryInfos(
                     JoinType.Left, a.ItemNo == b.ItemNo, // 鍏宠仈鐗╂枡淇℃伅
                     JoinType.Left, a.BillNo == da.Daa001, // 鍏宠仈宸ュ崟淇℃伅
                     JoinType.Left, da.Daa015 == c.LineNo, // 鍏宠仈宸ュ崟淇℃伅
                     JoinType.Left, us.Fcode == a.CreateBy, // 鍏宠仈宸ュ崟淇℃伅
-                    JoinType.Left, da.Daa021 == ca.Caa020,//浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
-                    JoinType.Left, d.Departmentid == Convert.ToDecimal(da.Daa013),//鏌ヨ杞﹂棿
-                    JoinType.Left, dq.Departmentcode == d.Departmentcode,//鏌ヨ鐢ㄦ埛鏉冮檺
+                    JoinType.Left, da.Daa021 == ca.Caa020, //浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
+                    JoinType.Left,
+                    d.Departmentid == Convert.ToDecimal(da.Daa013), //鏌ヨ杞﹂棿
+                    JoinType.Left,
+                    dq.Departmentcode == d.Departmentcode, //鏌ヨ鐢ㄦ埛鏉冮檺
                     JoinType.Left, us2.Fcode == a.FcheckBy
                 ))
             // 鐢ㄦ埛绾夸綋杩囨护鏉′欢
@@ -553,7 +556,7 @@
                 (a, b, da, c, us) => a.Fsubmit == 1)
             // 鎼滅储鏉′欢锛堢墿鏂欏悕绉�/缂栧彿锛�
             .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
-                (a, b, da, c, us,ca) =>
+                (a, b, da, c, us, ca) =>
                     b.ItemName.ToLower()
                         .Contains(queryObj.SearchValue.ToLower()) ||
                     ca.Caa015.ToLower()
@@ -561,9 +564,10 @@
                     a.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
             // 鏂板锛氱敤鎴穋ode杩囨护
             .WhereIF(!string.IsNullOrEmpty(queryObj.LoginUser),
-                (a, b, da, c, us, ca, d, dq) => dq.Usercode == queryObj.LoginUser)
+                (a, b, da, c, us, ca, d, dq) =>
+                    dq.Usercode == queryObj.LoginUser)
             // 鏌ヨ瀛楁
-            .Select((a, b, da, c, us, ca,d,dq,us2) => new QsItemOqcReq
+            .Select((a, b, da, c, us, ca, d, dq, us2) => new QsItemOqcReq
             {
                 Id = a.Id,
                 BillNo = a.BillNo,
@@ -572,13 +576,14 @@
                 ItemModel = b.ItemModel,
                 CreateDate = a.CreateDate,
                 CreateBy = a.CreateBy,
-                CreateUser = us.Fname==null ? a.CreateBy: us.Fname,
+                CreateUser = us.Fname == null ? a.CreateBy : us.Fname,
                 FcheckResu = a.FcheckResu,
-                FcheckBy = us2.Fname,//a.FcheckBy,
+                FcheckBy = us2.Fname, //a.FcheckBy,
                 FcheckDate = a.FcheckDate,
                 ReleaseNo = a.ReleaseNo,
                 Remarks = a.Remarks,
-                Daa015 = d.Departmentname=="娉ㄥ杞﹂棿" ? da.Daa020:da.Daa015, // 宸ュ崟绾夸綋
+                Daa015 =
+                    d.Departmentname == "娉ㄥ杞﹂棿" ? da.Daa020 : da.Daa015, // 宸ュ崟绾夸綋
                 Fsubmit = a.Fsubmit,
                 Quantity = da.Daa008,
                 LineNo = d.Departmentname == "娉ㄥ杞﹂棿" ? da.Daa020 : c.LineName,
@@ -909,17 +914,52 @@
 
     public int IqcQaSubmit(RKJDto dto)
     {
-        SqlSugarHelper.UseTransactionWithOracle(db =>
-        {
-           return db.Updateable<QsItemOqcReq>()
-                .SetColumns(a => a.Fsubmit == 1)
-                .SetColumns(a => a.FsubmitBy == dto.userNo)
-                .SetColumns(a => a.FsubmitDate == DateTime.Now)
-                .Where(a => a.ReleaseNo == dto.releaseNo)
-                .ExecuteCommand();
-        });
+        var useTransactionWithOracle =
+            SqlSugarHelper.UseTransactionWithOracle(db =>
+            {
+                return db.Updateable<QsItemOqcReq>()
+                    .SetColumns(a => a.Fsubmit == 1)
+                    .SetColumns(a => a.FsubmitBy == dto.userNo)
+                    .SetColumns(a => a.FsubmitDate == DateTime.Now)
+                    .Where(a => a.ReleaseNo == dto.releaseNo)
+                    .ExecuteCommand();
+            });
 
-        return 0;
+        if (useTransactionWithOracle > 0)
+        {
+            var db = SqlSugarHelper.GetInstance();
+            // 鎴愬姛鎻愪氦鍚庢帹閫侀拤閽夋秷鎭�
+            var qaRkj = db.Queryable<QaRkj>()
+                .Where(s => s.ReleaseNo == dto.releaseNo)
+                .First();
+
+            if (qaRkj != null)
+            {
+                try
+                {
+                    var qaMsgDto = new
+                    {
+                        id = qaRkj.Id,
+                        lineName = qaRkj.Daa020,
+                        workshopName = qaRkj.Departmentname,
+                        qaType = "鍏ュ簱妫�妫�楠屽畬鎴�"
+                    };
+
+                    // 璋冪敤閽夐拤娑堟伅鎺ㄩ�佹帴鍙�
+                    var client = new System.Net.Http.HttpClient();
+                    var json = Newtonsoft.Json.JsonConvert.SerializeObject(qaMsgDto);
+                    var content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
+                    var response = client.PostAsync("http://192.168.0.100:9096/MesQaDingtalk/sendQaMsgRKJ", content).Result;
+                }
+                catch (Exception ex)
+                {
+                    // 璁板綍閽夐拤鎺ㄩ�佸紓甯革紝浣嗕笉褰卞搷涓绘祦绋�
+                    Console.WriteLine($"閽夐拤娑堟伅鎺ㄩ�佸け璐�: {ex.Message}");
+                }
+            }
+        }
+
+        return useTransactionWithOracle;
     }
 
     public int reSubmit(RKJDto dto)
@@ -927,11 +967,11 @@
         SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<QsItemOqcReq>()
-                 .SetColumns(a => a.Fsubmit == 0)
-                 .SetColumns(a => a.FsubmitBy == null)
-                 .SetColumns(a => a.FsubmitDate == null)
-                 .Where(a => a.ReleaseNo == dto.releaseNo)
-                 .ExecuteCommand();
+                .SetColumns(a => a.Fsubmit == 0)
+                .SetColumns(a => a.FsubmitBy == null)
+                .SetColumns(a => a.FsubmitDate == null)
+                .Where(a => a.ReleaseNo == dto.releaseNo)
+                .ExecuteCommand();
         });
 
         return 0;
diff --git a/MES.Service/service/QC/SJService.cs b/MES.Service/service/QC/SJService.cs
index 7344103..3d9effa 100644
--- a/MES.Service/service/QC/SJService.cs
+++ b/MES.Service/service/QC/SJService.cs
@@ -48,7 +48,8 @@
     }
 
     //鑾峰彇鎵�鏈夋暟鎹垎椤�
-    public (List<SJPageResult> items, int totalCount) getPage(SJPageResult queryObj)
+    public (List<SJPageResult> items, int totalCount) getPage(
+        SJPageResult queryObj)
     {
         var db = SqlSugarHelper.GetInstance();
 
@@ -59,14 +60,19 @@
         //if (StringUtil.IsNotNullOrEmpty(queryObj.StatusUser))
         //    lineNo = _baseService.getUserLineNo(queryObj.StatusUser);
 
-        var data = db.Queryable<SJPageResult, Womdaa, Womcaa, SysDepartment, MesUserDepartmentQc,MesItems> ((a,
-                    da,ca,d,dq,i) =>
+        var data = db
+            .Queryable<SJPageResult, Womdaa, Womcaa, SysDepartment,
+                MesUserDepartmentQc, MesItems>((a,
+                    da, ca, d, dq, i) =>
                 new JoinQueryInfos(
-                    JoinType.Left, Convert.ToDecimal(a.Pbaid) == da.Id, // 鍏宠仈宸ュ崟淇℃伅
-                    JoinType.Left, da.Daa021 == ca.Caa020,//浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
-                    JoinType.Left, d.Departmentid == Convert.ToDecimal(da.Daa013),//鏌ヨ杞﹂棿
-                    JoinType.Left, dq.Departmentcode == d.Departmentcode,//鏌ヨ鐢ㄦ埛鏉冮檺
-                    JoinType.Left, i.Id == Convert.ToDecimal(da.Daa002)//鏌ヨ鐢ㄦ埛鏉冮檺
+                    JoinType.Left,
+                    Convert.ToDecimal(a.Pbaid) == da.Id, // 鍏宠仈宸ュ崟淇℃伅
+                    JoinType.Left, da.Daa021 == ca.Caa020, //浠诲姟鍗曪紝鐢ㄤ簬鏌ヨ閿�鍞鍗曞彿
+                    JoinType.Left,
+                    d.Departmentid == Convert.ToDecimal(da.Daa013), //鏌ヨ杞﹂棿
+                    JoinType.Left,
+                    dq.Departmentcode == d.Departmentcode, //鏌ヨ鐢ㄦ埛鏉冮檺
+                    JoinType.Left, i.Id == Convert.ToDecimal(da.Daa002) //鏌ヨ鐢ㄦ埛鏉冮檺
                 ))
             //.WhereIF(lineNo != null && lineNo.Length > 0,
             //    a => lineNo.Contains(a.line))
@@ -86,11 +92,14 @@
                 (a, da, ca, d, dq) => dq.Usercode == queryObj.LoginUser)
             //鍖归厤鎼滅储瀛楃涓�
             .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
-                (a, da, ca, d, dq,i) =>
-                a.BillNo.ToLower().Contains(queryObj.SearchValue.ToLower())||
-                i.ItemName.ToLower() .Contains(queryObj.SearchValue.ToLower()) ||
-                ca.Caa015.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
-                i.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+                (a, da, ca, d, dq, i) =>
+                    a.BillNo.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    i.ItemName.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    ca.Caa015.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    i.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
             .Select((a, da, ca, d, dq) => new SJPageResult
             {
                 Id = a.Id,
@@ -120,7 +129,8 @@
                 PlanName = a.PlanName
             })
             .OrderBy(a => a.CreateTime, OrderByType.Desc);
-        var items = data.ToPageList(queryObj.PageIndex, queryObj.Limit,ref totalCount);
+        var items = data.ToPageList(queryObj.PageIndex, queryObj.Limit,
+            ref totalCount);
 
         return (items, totalCount);
     }
@@ -154,66 +164,66 @@
     //                 result = "鏈娴�"
     //             }).ToList();
     // }
-    public List<QsItemIpiItem> SetQSItems(string itemNo,string planName)
+    public List<QsItemIpiItem> SetQSItems(string itemNo, string planName)
     {
         var db = SqlSugarHelper.GetInstance();
 
         var count = db.Queryable<MesQa>().Where(s => s.QsType == "1"
-            && s.ItemNo == itemNo &&s.QaPlan == planName && s.Fsubmit == 1).Count();
+                && s.ItemNo == itemNo && s.QaPlan == planName && s.Fsubmit == 1)
+            .Count();
 
         if (count <= 0) return [];
 
         //鏂板鏍规嵁璁″垝鍚嶇О鏌ヨID
         decimal? QsId = db.Queryable<MesQa>()
-                            .Where(s => s.QsType == "1"
-                                && s.ItemNo == itemNo
-                                && s.QaPlan == planName
-                                && s.Fsubmit == 1)
-                            .Select(s => s.Id)
-                            .First();
+            .Where(s => s.QsType == "1"
+                        && s.ItemNo == itemNo
+                        && s.QaPlan == planName
+                        && s.Fsubmit == 1)
+            .Select(s => s.Id)
+            .First();
 
         return db //鏍规嵁涓昏〃ID鏌ヨ
-        .Queryable<MesQualityStandard>()
-            .Where(b => b.Pid == QsId).Select(
-                b => new QsItemIpiItem
-                {
-                    ProjName = b.ProjName,
-                    ItemMod = b.ItemMod,
-                    InspectionMethod = b.InspectionMethod,
-                    UsingInstruments = b.UsingInstruments,
-                    LevelNum = SqlFunc.IsNull(
-                        SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
-                        b.InspectionLevel),
-                    MaxValue = b.MaxValue,
-                    StandardValue = b.StandardValue,
-                    MinValue = b.MinValue,
-                    Notes = b.Notes,
-                    FcheckLevel = b.FcheckLevel,
-                    FacLevel = b.FacLevel,
-                    QsCode = b.QsCode,
-                    QsName = b.QsName,
-                    Picture = b.Picture,
-                    Picturename = b.Picturename,
-                    result = "鏈娴�",
-                    isCheck = 0
-                }).ToList();
+            .Queryable<MesQualityStandard>()
+            .Where(b => b.Pid == QsId).Select(b => new QsItemIpiItem
+            {
+                ProjName = b.ProjName,
+                ItemMod = b.ItemMod,
+                InspectionMethod = b.InspectionMethod,
+                UsingInstruments = b.UsingInstruments,
+                LevelNum = SqlFunc.IsNull(
+                    SqlFunc.IsNull(b.LevelNum * b.InspectionLevel, 1),
+                    b.InspectionLevel),
+                MaxValue = b.MaxValue,
+                StandardValue = b.StandardValue,
+                MinValue = b.MinValue,
+                Notes = b.Notes,
+                FcheckLevel = b.FcheckLevel,
+                FacLevel = b.FacLevel,
+                QsCode = b.QsCode,
+                QsName = b.QsName,
+                Picture = b.Picture,
+                Picturename = b.Picturename,
+                result = "鏈娴�",
+                isCheck = 0
+            }).ToList();
     }
 
-    public List<SJBadReason>? GetReason(string billNo)//绾犳鎺柦鍗曡幏鍙栦笉鑹俊鎭�
+    public List<SJBadReason>? GetReason(string billNo) //绾犳鎺柦鍗曡幏鍙栦笉鑹俊鎭�
     {
         var db = SqlSugarHelper.GetInstance();
 
-        var count = db.Queryable<SJBadReason>().Where(s => s.BillNo == billNo).Count();
+        var count = db.Queryable<SJBadReason>().Where(s => s.BillNo == billNo)
+            .Count();
 
         if (count <= 0) return null;
 
         var reason = db
             .Queryable<SJBadReason>()
-            .Where(s => s.BillNo == billNo).Select(
-                b => new SJBadReason
-                {
-                     Reason =b.Reason
-                }).ToList();
+            .Where(s => s.BillNo == billNo).Select(b => new SJBadReason
+            {
+                Reason = b.Reason
+            }).ToList();
 
         return reason;
     }
@@ -221,10 +231,13 @@
     public List<QsItemIpiItem> getQSItems(decimal? pid, decimal? id)
     {
         var db = SqlSugarHelper.GetInstance();
-        var qsItemIpiItems = db.Queryable<QsItemIpiItem>().WhereIF(pid > 0, a => a.Pid == pid).WhereIF(id > 0, a => a.Id == id).ToList();
+        var qsItemIpiItems = db.Queryable<QsItemIpiItem>()
+            .WhereIF(pid > 0, a => a.Pid == pid)
+            .WhereIF(id > 0, a => a.Id == id).ToList();
 
         var array = qsItemIpiItems.Select(s => s.Id).ToArray();
-        var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>().Where(s => array.Contains(s.Pid)).GroupBy(s => s.Pid)
+        var qsItemIpiItemDetails = db.Queryable<QsItemIpiItemDetail>()
+            .Where(s => array.Contains(s.Pid)).GroupBy(s => s.Pid)
             .Select(s => new
             {
                 s.Pid,
@@ -252,7 +265,8 @@
         });
 
         //浣跨敤linq琛ㄨ揪寮忚繃婊ゅ嚭鍥剧墖id涓嶄负绌虹殑鏁版嵁
-        var itemIpiItems =qsItemIpiItems.Where(s => s.Picture is { Length: > 0 }).ToList();
+        var itemIpiItems = qsItemIpiItems
+            .Where(s => s.Picture is { Length: > 0 }).ToList();
         if (itemIpiItems.Count > 0)
             itemIpiItems.ForEach(s =>
             {
@@ -271,19 +285,18 @@
     {
         var qsItemIpiReq = item.From;
         var qsItemIpiItems = item.Items;
-        SqlSugarHelper.UseTransactionWithOracle(
-            db =>
-            {
-                qsItemIpiReq.StatusDate = DateTime.Now;
-                var pid = db.Insertable(qsItemIpiReq).ExecuteReturnIdentity();
-                qsItemIpiReq.Id = pid;
+        SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            qsItemIpiReq.StatusDate = DateTime.Now;
+            var pid = db.Insertable(qsItemIpiReq).ExecuteReturnIdentity();
+            qsItemIpiReq.Id = pid;
 
-                item.gid = pid;
+            item.gid = pid;
 
-                qsItemIpiItems.ForEach(s => s.Pid = pid);
+            qsItemIpiItems.ForEach(s => s.Pid = pid);
 
-                return db.Insertable(qsItemIpiItems).ExecuteCommand();
-            });
+            return db.Insertable(qsItemIpiItems).ExecuteCommand();
+        });
         item.Items = getQSItems(qsItemIpiReq.Id, null);
 
         //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸
@@ -314,7 +327,7 @@
         var db = SqlSugarHelper.GetInstance();
 
         var del = db.Deleteable<QsItemIpiItem>()
-            .Where(s=>s.Pid == item.gid)
+            .Where(s => s.Pid == item.gid)
             .ExecuteCommand();
 
         //QsItemIpiItemDetail
@@ -324,25 +337,22 @@
 
 
         var qsItemIpiItems = item.Items;
-        SqlSugarHelper.UseTransactionWithOracle(
-            db =>
-            {
-                // 1. 璁剧疆鐖剁骇ID
-                qsItemIpiItems.ForEach(s => s.Pid = item.gid);
+        SqlSugarHelper.UseTransactionWithOracle(db =>
+        {
+            // 1. 璁剧疆鐖剁骇ID
+            qsItemIpiItems.ForEach(s => s.Pid = item.gid);
 
-                // 2. 鎻掑叆
-                db.Insertable(qsItemIpiItems).ExecuteCommand();
+            // 2. 鎻掑叆
+            db.Insertable(qsItemIpiItems).ExecuteCommand();
 
-                // 3. 閲嶆柊浠庢暟鎹簱鏌ヨ鎻掑叆鍚庣殑璁板綍锛堟寜 pid 鏌ヨ锛� 闃叉妫�楠岀粨鏋滄洿鏂板埌鏃ч」鐩笂
-                qsItemIpiItems = db.Queryable<QsItemIpiItem>()
-                                    .Where(x => x.Pid == item.gid)
-                                    .ToList();
+            // 3. 閲嶆柊浠庢暟鎹簱鏌ヨ鎻掑叆鍚庣殑璁板綍锛堟寜 pid 鏌ヨ锛� 闃叉妫�楠岀粨鏋滄洿鏂板埌鏃ч」鐩笂
+            qsItemIpiItems = db.Queryable<QsItemIpiItem>()
+                .Where(x => x.Pid == item.gid)
+                .ToList();
 
-                // 鉁� 杩斿洖鍊间笉閲嶈锛屽彧瑕佷繚璇佷簨鍔℃彁浜ゅ嵆鍙�
-                return 1;
-            });
-
-
+            // 鉁� 杩斿洖鍊间笉閲嶈锛屽彧瑕佷繚璇佷簨鍔℃彁浜ゅ嵆鍙�
+            return 1;
+        });
 
 
         //item.Items = getQSItems(item.gid, null);
@@ -350,10 +360,12 @@
         //娌℃湁涓婁笅闄愮殑妫�楠岄」鐩嚜鍔ㄧ洏鐐逛负鍚堟牸
         qsItemIpiItems.ForEach(s =>
         {
-            if (s.MaxValue != null || s.StandardValue != null || s.MinValue != null)
+            if (s.MaxValue != null || s.StandardValue != null ||
+                s.MinValue != null)
             {
                 return;
             }
+
             var detail = new QsItemIpiItemDetail();
             detail.Pid = s.Id;
             detail.Gid = item.gid;
@@ -369,32 +381,34 @@
         return item;
     }
 
-    public decimal SavePlan(decimal pid,string PlanName)
+    public decimal SavePlan(decimal pid, string PlanName)
     {
         var db = SqlSugarHelper.GetInstance();
         var res = db.Updateable<QsItemIpiReq>()
-                          .SetColumns(a => a.QaPlan == PlanName)
-                          .Where(a => a.Id == pid)
-                          .ExecuteCommand();
+            .SetColumns(a => a.QaPlan == PlanName)
+            .Where(a => a.Id == pid)
+            .ExecuteCommand();
 
         return res;
-
     }
 
-        public List<string?> GetItemProj(string? itemNo)
-    { //鑾峰彇鐗╂枡鎵�鏈夌殑妫�楠岃鍒掑悕绉�
+    public List<string?> GetItemProj(string? itemNo)
+    {
+        //鑾峰彇鐗╂枡鎵�鏈夌殑妫�楠岃鍒掑悕绉�
 
         var db = SqlSugarHelper.GetInstance();
 
-        var plans = db.Queryable<MesQa>().Where(a => a.ItemNo == itemNo && a.QsType == "1")
-                                .Select(s => s.QaPlan)
-                                .Distinct()
-                                .ToList();
+        var plans = db.Queryable<MesQa>()
+            .Where(a => a.ItemNo == itemNo && a.QsType == "1")
+            .Select(s => s.QaPlan)
+            .Distinct()
+            .ToList();
 
         return plans;
     }
 
-    public (decimal?,string?, string?) CreateNew(string? DaaNo,string? userNo,string? planName)
+    public (decimal?, string?, string?) CreateNew(string? DaaNo, string? userNo,
+        string? planName)
     {
         var db = SqlSugarHelper.GetInstance();
         // 鍒涘缓鍙傛暟
@@ -403,12 +417,13 @@
         var FplanName = new SugarParameter("P_PLAN_NAME", planName);
 
 
-        var FRes = new SugarParameter("po_result", null, true);            // 杈撳嚭鍙傛暟
+        var FRes = new SugarParameter("po_result", null, true); // 杈撳嚭鍙傛暟
         var FMsg = new SugarParameter("po_Message", null, true);
         var FBillNo = new SugarParameter("po_BILL_NO", null, true);
 
         // 鎵ц瀛樺偍杩囩▼
-        db.Ado.UseStoredProcedure().GetDataTable("PRC_PQC_ITEM_INSERT_JK", FitemNo, FuserNo, FplanName, FRes, FMsg, FBillNo);
+        db.Ado.UseStoredProcedure().GetDataTable("PRC_PQC_ITEM_INSERT_JK",
+            FitemNo, FuserNo, FplanName, FRes, FMsg, FBillNo);
 
         // 鑾峰彇杈撳嚭缁撴灉
         var Res = Convert.ToInt32(FRes.Value);
@@ -417,7 +432,7 @@
 
         Console.WriteLine($"缁撴灉: {Res}, 杩斿洖娑堟伅: {Msg},鍗曟嵁鍙凤細{BillNo}");
 
-        return (Res,Msg, BillNo);
+        return (Res, Msg, BillNo);
     }
 
     public int SetQSItemDetail(QsItemIpiItemDetail detail)
@@ -436,6 +451,7 @@
                 item.CreateDate = DateTime.Now;
                 result.Add(item);
             }
+
             return db.Insertable(result).ExecuteCommand();
         });
 
@@ -480,8 +496,8 @@
 
         if (count == passCount) result = 1;
 
-        var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(
-            db =>
+        var useTransactionWithOracle =
+            SqlSugarHelper.UseTransactionWithOracle(db =>
             {
                 var commit = 0;
                 commit += db.Updateable<QsItemIpiItem>()
@@ -552,14 +568,15 @@
 
         var db = SqlSugarHelper.GetInstance();
         // 鍒涘缓鍙傛暟
-        var FId= new SugarParameter("P_ID", detail.Gid);
+        var FId = new SugarParameter("P_ID", detail.Gid);
 
         // 杈撳嚭鍙傛暟
         var FRes = new SugarParameter("c_result", null, true);
         var FMsg = new SugarParameter("c_msg", null, true);
 
         // 鎵ц瀛樺偍杩囩▼
-        db.Ado.UseStoredProcedure().GetDataTable("PRC_SJ_UPDATE_RESU", FId, FRes, FMsg);
+        db.Ado.UseStoredProcedure()
+            .GetDataTable("PRC_SJ_UPDATE_RESU", FId, FRes, FMsg);
 
         // 鑾峰彇杈撳嚭缁撴灉
         var Res = Convert.ToInt32(FRes.Value);
@@ -610,15 +627,16 @@
                 .ExecuteCommand();
         });
     }
-    
-     
+
+
     //NOTES
     public int saveNotesPid(QsItem dto)
     {
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<QsItemIpiItem>()
-                .SetColumns(it =>it.Notes == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .SetColumns(it =>
+                    it.Notes == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
                 .Where(it => it.Id == dto.pid)
                 .ExecuteCommand();
         });
@@ -630,7 +648,8 @@
         return SqlSugarHelper.UseTransactionWithOracle(db =>
         {
             return db.Updateable<QsItemIpiItemDetail>()
-                .SetColumns(it =>it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
+                .SetColumns(it =>
+                    it.Remarks == dto.Remarks) //SetColumns鏄彲浠ュ彔鍔犵殑 鍐�2涓氨2涓瓧娈佃祴鍊�
                 .Where(it => it.Id == dto.id)
                 .ExecuteCommand();
         });
@@ -659,7 +678,6 @@
 
     public bool SJQaSubmit(QsItem item)
     {
-
         if (item == null)
             throw new ArgumentNullException(nameof(item), "璐ㄦ椤规暟鎹笉鑳戒负绌�");
 
@@ -670,21 +688,23 @@
         try
         {
             // 瀹氫箟杈撳嚭鍙傛暟
-            var outputResult = new SugarParameter("o_Result", null, DbType.Int32, ParameterDirection.Output,
+            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 outputMessage = new SugarParameter("o_Msg", null, DbType.String,
+                ParameterDirection.Output, 4000);
 
             // 瀹氫箟杈撳叆鍙傛暟
             var parameters = new List<SugarParameter>
-         {
-
-             new("p_Id", item.gid, DbType.Int32,ParameterDirection.Input),
-             new("p_Flag", 1, DbType.Int32,ParameterDirection.Input),
-             new("p_User", item.userNo, DbType.String, ParameterDirection.Input),
-             outputResult,
-             outputMessage
-         };
+            {
+                new("p_Id", item.gid, DbType.Int32, ParameterDirection.Input),
+                new("p_Flag", 1, DbType.Int32, ParameterDirection.Input),
+                new("p_User", item.userNo, DbType.String,
+                    ParameterDirection.Input),
+                outputResult,
+                outputMessage
+            };
 
             var db = SqlSugarHelper.GetInstance();
 
@@ -697,8 +717,51 @@
             var resultValue = outputResult.Value?.ToString();
             var messageValue = outputMessage.Value?.ToString();
 
-            if ("1".Equals(resultValue)) { throw new Exception(messageValue); }
-            if ("0".Equals(resultValue)) { throw new Exception(messageValue); }
+            if ("1".Equals(resultValue))
+            {
+                throw new Exception(messageValue);
+            }
+
+            if ("0".Equals(resultValue))
+            {
+                // 鎴愬姛鎻愪氦鍚庢帹閫侀拤閽夋秷鎭�
+                var qaSjSuccess = db.Queryable<QaSj>()
+                    .Where(s => s.Id == item.gid)
+                    .First();
+                if (qaSjSuccess != null)
+                {
+                    try
+                    {
+                        var qaMsgDto = new
+                        {
+                            id = qaSjSuccess.Id,
+                            lineName = qaSjSuccess.LineName,
+                            workshopName = qaSjSuccess.WorkshopName,
+                            qaType = "棣栦欢棣栨瀹屾垚"
+                        };
+
+                        // 璋冪敤閽夐拤娑堟伅鎺ㄩ�佹帴鍙�
+                        var client = new System.Net.Http.HttpClient();
+                        var json =
+                            Newtonsoft.Json.JsonConvert.SerializeObject(
+                                qaMsgDto);
+                        var content = new System.Net.Http.StringContent(json,
+                            System.Text.Encoding.UTF8, "application/json");
+                        var response = client
+                            .PostAsync(
+                                "http://192.168.0.100:9096/MesQaDingtalk/sendQaMsgSJ",
+                                content).Result;
+                    }
+                    catch (Exception ex)
+                    {
+                        // 璁板綍閽夐拤鎺ㄩ�佸紓甯革紝浣嗕笉褰卞搷涓绘祦绋�
+                        Console.WriteLine($"閽夐拤娑堟伅鎺ㄩ�佸け璐�: {ex.Message}");
+                    }
+                }
+
+                throw new Exception(messageValue);
+            }
+
 
             return true;
         }
@@ -710,7 +773,6 @@
 
     public bool SJQaReSubmit(QsItem item)
     {
-
         if (item == null)
             throw new ArgumentNullException(nameof(item), "璐ㄦ椤规暟鎹笉鑳戒负绌�");
 
@@ -721,21 +783,23 @@
         try
         {
             // 瀹氫箟杈撳嚭鍙傛暟
-            var outputResult = new SugarParameter("o_Result", null, DbType.Int32, ParameterDirection.Output,
+            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 outputMessage = new SugarParameter("o_Msg", null, DbType.String,
+                ParameterDirection.Output, 4000);
 
             // 瀹氫箟杈撳叆鍙傛暟
             var parameters = new List<SugarParameter>
-         {
-
-             new("p_Id", item.gid, DbType.Int32,ParameterDirection.Input),
-             new("p_Flag", 2, DbType.Int32,ParameterDirection.Input),
-             new("p_User", item.userNo, DbType.String, ParameterDirection.Input),
-             outputResult,
-             outputMessage
-         };
+            {
+                new("p_Id", item.gid, DbType.Int32, ParameterDirection.Input),
+                new("p_Flag", 2, DbType.Int32, ParameterDirection.Input),
+                new("p_User", item.userNo, DbType.String,
+                    ParameterDirection.Input),
+                outputResult,
+                outputMessage
+            };
 
             var db = SqlSugarHelper.GetInstance();
 
@@ -748,8 +812,15 @@
             var resultValue = outputResult.Value?.ToString();
             var messageValue = outputMessage.Value?.ToString();
 
-            if ("1".Equals(resultValue)) { throw new Exception(messageValue); }
-            if ("0".Equals(resultValue)) { throw new Exception(messageValue); }
+            if ("1".Equals(resultValue))
+            {
+                throw new Exception(messageValue);
+            }
+
+            if ("0".Equals(resultValue))
+            {
+                throw new Exception(messageValue);
+            }
 
             return true;
         }
@@ -783,8 +854,6 @@
                 .Where(s => s.Id == id)
                 .ExecuteCommand();
         });
-
-
     }
 
     /// <summary>
@@ -795,13 +864,13 @@
     {
         var db = SqlSugarHelper.GetInstance();
         return db.Queryable<DingDept>()
-                .Where(b => b.NoChild== 1)
-                .Select(b => new DingDept
-                {
-                    Id=b.Id,
-                    Name=b.Name
-                })
-                .ToList();
+            .Where(b => b.NoChild == 1)
+            .Select(b => new DingDept
+            {
+                Id = b.Id,
+                Name = b.Name
+            })
+            .ToList();
     }
 
     public List<DeptNode> BuildDeptTree()
@@ -844,14 +913,13 @@
     {
         var db = SqlSugarHelper.GetInstance();
         return db.Queryable<DingStaff>()
-                .Select(b => new DingStaff
-                {
-                        StaffName=b.StaffName,
-                        Id=b .Id
-                })
-                .ToList();
+            .Select(b => new DingStaff
+            {
+                StaffName = b.StaffName,
+                Id = b.Id
+            })
+            .ToList();
     }
-
 
 
     /// <summary>
@@ -860,7 +928,8 @@
     /// <returns></returns>
     public static AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client CreateClient()
     {
-        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
+        AlibabaCloud.OpenApiClient.Models.Config config =
+            new AlibabaCloud.OpenApiClient.Models.Config();
         config.Protocol = "https";
         config.RegionId = "central";
         return new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client(config);
@@ -868,7 +937,8 @@
 
     public static AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client CreateClient1()
     {
-        AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
+        AlibabaCloud.OpenApiClient.Models.Config config =
+            new AlibabaCloud.OpenApiClient.Models.Config();
         config.Protocol = "https";
         config.RegionId = "central";
         return new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client(config);
@@ -878,11 +948,15 @@
     public string GetToken()
     {
         AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateClient1();
-        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
-        {
-            AppKey = "dingyzos0r1bizj7g6lr",
-            AppSecret = "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
-        };
+        AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
+            getAccessTokenRequest =
+                new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.
+                    GetAccessTokenRequest
+                    {
+                        AppKey = "dingyzos0r1bizj7g6lr",
+                        AppSecret =
+                            "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
+                    };
 
         try
         {
@@ -891,7 +965,8 @@
         }
         catch (TeaException err)
         {
-            Console.WriteLine($"TeaException: Code={err.Code}, Message={err.Message}");
+            Console.WriteLine(
+                $"TeaException: Code={err.Code}, Message={err.Message}");
             return null;
         }
         catch (Exception _err)
@@ -904,7 +979,7 @@
     public bool DingJZCSD(JzcsdData InData)
     {
         if (string.IsNullOrWhiteSpace(InData.Imodel))
-            throw new Exception( "浜у搧鍨嬪彿涓嶈兘涓虹┖");
+            throw new Exception("浜у搧鍨嬪彿涓嶈兘涓虹┖");
 
         if (string.IsNullOrWhiteSpace(InData.selectedDeptID))
             throw new Exception("璇烽�夋嫨鎺ユ敹閮ㄩ棬");
@@ -922,7 +997,6 @@
             throw new Exception("瀹℃壒閮ㄩ棬涓嶈兘涓虹┖");
 
 
-
         var db = SqlSugarHelper.GetInstance();
 
         string numUserId = db.Queryable<DingStaff>()
@@ -935,7 +1009,8 @@
 
 
             // 浣跨敤 JSON 搴忓垪鍖栬緭鍑哄璞$殑璇︾粏鍐呭
-            string InDataJson = JsonConvert.SerializeObject(InData, Formatting.Indented);
+            string InDataJson =
+                JsonConvert.SerializeObject(InData, Formatting.Indented);
             Debug.WriteLine("InDataDetail: " + InDataJson);
 
             // 鑾峰彇 Access Token
@@ -945,10 +1020,15 @@
                 throw new Exception("鑾峰彇 Access Token 澶辫触");
             }
 
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client client = CreateClient();
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders startProcessInstanceHeaders = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceHeaders();
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Client
+                client = CreateClient();
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceHeaders startProcessInstanceHeaders =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceHeaders();
             Debug.WriteLine(accessToken);
-            startProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken; // 浣跨敤鑾峰彇鍒扮殑 Access Token  
+            startProcessInstanceHeaders.XAcsDingtalkAccessToken =
+                accessToken; // 浣跨敤鑾峰彇鍒扮殑 Access Token  
             /*
             浜у搧鍨嬪彿	TextField-K2AD4O5B
             绾犳浜嬮」鏉ユ簮	DDMultiSelectField_19MZJHE2ZWM80
@@ -961,111 +1041,192 @@
             瀹℃壒閫夋嫨	DDSelectField_WE67NWABXM80
             */
 
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //绾犳浜嬮」鏉ユ簮
-                Name = "DDMultiSelectField_19MZJHE2ZWM80",
-                Value = InData.Source
-                /* Value = JsonConvert.SerializeObject(new[] {
-                         new { value = InData.Source, label = "鍐呴儴瀹℃牳" }
-                     })*/
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //鎻愬嚭浜哄憳
-                Name = "InnerContactField_WY9BZDYT7W00",
-                Value = "[\"" + string.Join("\",\"", UserId) + "\"]",
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //鎻愬嚭鏃ユ湡
-                Name = "DDDateField_JD4ISXXCNLS0",
-                Value = DateTime.Now.ToString("yyyy-MM-dd"),
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //鎺ユ敹閮ㄩ棬
-                Name = "DepartmentField_SLLT1GL6RC00",
-                Value = InData.selectedDeptID,
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //璐熻矗浜�
-                Name = "InnerContactField_1I3FYOICN4N40",
-                Value = "[\"" + string.Join("\",\"", InData.selectedUserID) + "\"]"
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //鍥炲鏃ユ湡
-                Name = "DDDateField_1NPTPIPNEI1S0",
-                Value = InData.ReplyDate,
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //闂鎻忚堪
-                Name = "TextareaField_1FUN513WLK4G0",
-                Value = InData.Reason,
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //瀹℃壒閫夋嫨
-                Name = "DDSelectField_WE67NWABXM80",
-                Value = InData.selectedADept,
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //鎻愬嚭閮ㄩ棬
-                Name = "DepartmentField_184EOWTFMJUK0",
-                Value = "975745197",//鍥哄畾涓篗ES閮ㄩ棬
-            };
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
-            {
-                //浜у搧鍨嬪彿
-                Name = "TextField-K2AD4O5B",
-                Value = InData.Imodel,
-            };
-            
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues1 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //绾犳浜嬮」鏉ユ簮
+                            Name = "DDMultiSelectField_19MZJHE2ZWM80",
+                            Value = InData.Source
+                            /* Value = JsonConvert.SerializeObject(new[] {
+                                     new { value = InData.Source, label = "鍐呴儴瀹℃牳" }
+                                 })*/
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues2 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //鎻愬嚭浜哄憳
+                            Name = "InnerContactField_WY9BZDYT7W00",
+                            Value =
+                                "[\"" + string.Join("\",\"", UserId) + "\"]",
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues3 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //鎻愬嚭鏃ユ湡
+                            Name = "DDDateField_JD4ISXXCNLS0",
+                            Value = DateTime.Now.ToString("yyyy-MM-dd"),
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues4 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //鎺ユ敹閮ㄩ棬
+                            Name = "DepartmentField_SLLT1GL6RC00",
+                            Value = InData.selectedDeptID,
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues5 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //璐熻矗浜�
+                            Name = "InnerContactField_1I3FYOICN4N40",
+                            Value = "[\"" +
+                                    string.Join("\",\"",
+                                        InData.selectedUserID) + "\"]"
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues6 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //鍥炲鏃ユ湡
+                            Name = "DDDateField_1NPTPIPNEI1S0",
+                            Value = InData.ReplyDate,
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues7 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //闂鎻忚堪
+                            Name = "TextareaField_1FUN513WLK4G0",
+                            Value = InData.Reason,
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues8 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //瀹℃壒閫夋嫨
+                            Name = "DDSelectField_WE67NWABXM80",
+                            Value = InData.selectedADept,
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues9 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //鎻愬嚭閮ㄩ棬
+                            Name = "DepartmentField_184EOWTFMJUK0",
+                            Value = "975745197", //鍥哄畾涓篗ES閮ㄩ棬
+                        };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest.
+                StartProcessInstanceRequestFormComponentValues
+                formComponentValues10 =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest.
+                        StartProcessInstanceRequestFormComponentValues
+                        {
+                            //浜у搧鍨嬪彿
+                            Name = "TextField-K2AD4O5B",
+                            Value = InData.Imodel,
+                        };
 
-            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest
-            {
-                OriginatorUserId = UserId,
-                ProcessCode = "PROC-2752201A-3896-4CA7-82A1-ADBBE9F1B36A",
-                DeptId = 987012076,
-                FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues>
-            {
-                 formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8,
-                 formComponentValues9,formComponentValues10//, formComponentValues11, formComponentValues12, formComponentValues13, formComponentValues14
-            },
-            //    TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
-            //{
-            //    targetSelectActioners0
-            //},
-            //    Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
-            //{
-            //    approvers0
-            //},
-                CcList = new List<string>
-            {
-               UserId
-            },
-                CcPosition = "START",
 
-            };
+            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                StartProcessInstanceRequest startProcessInstanceRequest =
+                    new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.
+                        StartProcessInstanceRequest
+                        {
+                            OriginatorUserId = UserId,
+                            ProcessCode =
+                                "PROC-2752201A-3896-4CA7-82A1-ADBBE9F1B36A",
+                            DeptId = 987012076,
+                            FormComponentValues =
+                                new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.
+                                    Models.StartProcessInstanceRequest.
+                                    StartProcessInstanceRequestFormComponentValues>
+                                {
+                                    formComponentValues1, formComponentValues2,
+                                    formComponentValues3, formComponentValues4,
+                                    formComponentValues5, formComponentValues6,
+                                    formComponentValues7, formComponentValues8,
+                                    formComponentValues9,
+                                    formComponentValues10 //, formComponentValues11, formComponentValues12, formComponentValues13, formComponentValues14
+                                },
+                            //    TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
+                            //{
+                            //    targetSelectActioners0
+                            //},
+                            //    Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
+                            //{
+                            //    approvers0
+                            //},
+                            CcList = new List<string>
+                            {
+                                UserId
+                            },
+                            CcPosition = "START",
+                        };
             // 搴忓垪鍖� FormComponentValues 鍒楄〃涓� JSON 鏍煎紡
-            string formComponentValuesJson = JsonConvert.SerializeObject(startProcessInstanceRequest.FormComponentValues, Formatting.Indented);
+            string formComponentValuesJson = JsonConvert.SerializeObject(
+                startProcessInstanceRequest.FormComponentValues,
+                Formatting.Indented);
             Debug.WriteLine("FormComponentValues: " + formComponentValuesJson);
             try
             {
-                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
+                string requestContent =
+                    Newtonsoft.Json.JsonConvert.SerializeObject(
+                        startProcessInstanceRequest);
                 Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
                 Debug.WriteLine(requestContent);
-                var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
+                var response = client.StartProcessInstanceWithOptions(
+                    startProcessInstanceRequest, startProcessInstanceHeaders,
+                    new RuntimeOptions());
                 //return $"閽夐拤宸ヤ綔娴佸疄渚嬪惎鍔ㄦ垚鍔�: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
                 return true;
             }
             catch (TeaException err)
             {
-                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
+                string requestContent =
+                    Newtonsoft.Json.JsonConvert.SerializeObject(
+                        startProcessInstanceRequest);
                 Debug.WriteLine("startProcessInstanceRequest鍐呭锛�");
                 Debug.WriteLine(startProcessInstanceRequest);
 
@@ -1088,5 +1249,4 @@
             //return "鎮ㄤ笉鏄叕鍙告垚鍛樻垨杩樻湭琚姞鍏ュ埌鏁版嵁搴撲腑鎴栧悕瀛楀~鍐欓敊璇紝鏈壘鍒板尮閰嶇殑鐢ㄦ埛淇℃伅";
         }
     }
-   
 }
\ No newline at end of file
diff --git a/MES.Service/service/QC/XJService.cs b/MES.Service/service/QC/XJService.cs
index d549e02..c2a58aa 100644
--- a/MES.Service/service/QC/XJService.cs
+++ b/MES.Service/service/QC/XJService.cs
@@ -15,7 +15,7 @@
     private readonly BaseService _baseService = new();
 
 
-    private readonly string[] statusArray = ["寮�宸�", "寰呭紑宸�","宸插紑宸�" ,"鏈紑宸�"];
+    private readonly string[] statusArray = ["寮�宸�", "寰呭紑宸�", "宸插紑宸�", "鏈紑宸�"];
 
     //鐢熸垚鏈�鏂扮殑妫�楠屽崟鍙�
     public string getMaxReleaseNo()
@@ -49,7 +49,7 @@
         public decimal? Daa008 { get; set; }
         public string? Daa015 { get; set; }
         public string? Daa020 { get; set; }
-        public string? ItemNo { get; set; }   // 鏉ヨ嚜鍏宠仈琛�
+        public string? ItemNo { get; set; } // 鏉ヨ嚜鍏宠仈琛�
         public string? ItemName { get; set; }
     }
 
@@ -59,22 +59,22 @@
 
         //in鐨勫啓娉� https://www.donet5.com/Home/Doc?typeId=1187
 
-        return db.Queryable<Womdaa,MesItems>((a, b) => new JoinQueryInfos(
-            JoinType.Inner, a.Daa002 == b.Id.ToString()))
+        return db.Queryable<Womdaa, MesItems>((a, b) => new JoinQueryInfos(
+                JoinType.Inner, a.Daa002 == b.Id.ToString()))
             .Where(a =>
                 a.Daa001 == daa001 &&
                 statusArray.Contains(a.Daa018))
             .Select((a, b) => new DaaInfoDto
             {
-                Daa001= daa001,
-                Daa003=a.Daa003,
-                Daa004=a.Daa004,
-                Daa008=a.Daa008,
-                Daa015=a.Daa015,
-                Daa020=a.Daa020,
-                ItemNo=b.ItemNo,
+                Daa001 = daa001,
+                Daa003 = a.Daa003,
+                Daa004 = a.Daa004,
+                Daa008 = a.Daa008,
+                Daa015 = a.Daa015,
+                Daa020 = a.Daa020,
+                ItemNo = b.ItemNo,
                 ItemName = b.ItemName,
-                Id =a.Id
+                Id = a.Id
             })
             .ToList();
     }
@@ -82,7 +82,7 @@
     public List<QCUserLine> getLineAll(string UserNo)
     {
         var db = SqlSugarHelper.GetInstance();
-        
+
         return db.Queryable<QCUserLine>()
             .Where(a => a.UserCode == UserNo)
             .Select(a => new QCUserLine
@@ -93,7 +93,6 @@
     }
 
 
-
     public List<Womdaa> getDaa001(JObject data)
     {
         var daa020 = data["daa020"]?.ToString();
@@ -102,7 +101,8 @@
         var db = SqlSugarHelper.GetInstance();
         return db.Queryable<Womdaa, MesItems>((a, b) =>
                 new JoinQueryInfos(JoinType.Inner, a.Daa002 == b.Id.ToString()))
-            .WhereIF(!string.IsNullOrEmpty(daa020), (a, b) => a.Daa015 == daa020)
+            .WhereIF(!string.IsNullOrEmpty(daa020),
+                (a, b) => a.Daa015 == daa020)
             .WhereIF(!string.IsNullOrEmpty(item), (a, b) => b.ItemNo == item)
             .Where((a, b) => statusArray.Contains(a.Daa018))
             .Select<Womdaa>(a => new Womdaa
@@ -133,14 +133,16 @@
     }
 
     public List<string?> GetItemProj(string? itemNo)
-    { //鑾峰彇鐗╂枡鎵�鏈夌殑妫�楠岃鍒掑悕绉�
+    {
+        //鑾峰彇鐗╂枡鎵�鏈夌殑妫�楠岃鍒掑悕绉�
 
         var db = SqlSugarHelper.GetInstance();
 
-        var plans = db.Queryable<MesQa>().Where(a => a.ItemNo == itemNo && a.QsType == "2")
-                                .Select(s => s.QaPlan)
-                                .Distinct()
-                                .ToList();
+        var plans = db.Queryable<MesQa>()
+            .Where(a => a.ItemNo == itemNo && a.QsType == "2")
+            .Select(s => s.QaPlan)
+            .Distinct()
+            .ToList();
 
         return plans;
     }
@@ -161,7 +163,8 @@
 
         var query = db
             .Queryable<QsQaItemXj, Womdaa, MesLine,
-                MesItems, SysUser,Womcaa,SysDepartment, MesUserDepartmentQc,MesItems, SysUser>((s, a, c, b, us,ca,d,dq,i,us2) =>
+                MesItems, SysUser, Womcaa, SysDepartment, MesUserDepartmentQc,
+                MesItems, SysUser>((s, a, c, b, us, ca, d, dq, i, us2) =>
                 new JoinQueryInfos(
                     JoinType.Inner, s.BillNo == a.Daa001,
                     JoinType.Left, a.Daa015 == c.LineNo,
@@ -169,7 +172,8 @@
                     JoinType.Left, us.Fcode == s.CreateBy,
                     JoinType.Left, ca.Caa020 == a.Daa021,
                     JoinType.Left, d.Departmentcode == c.Departmentcode,
-                    JoinType.Left, dq.Departmentcode == d.Departmentcode,//鏌ヨ鐢ㄦ埛鏉冮檺
+                    JoinType.Left,
+                    dq.Departmentcode == d.Departmentcode, //鏌ヨ鐢ㄦ埛鏉冮檺
                     JoinType.Left, i.Id == Convert.ToDecimal(a.Daa002),
                     JoinType.Left, us2.Fcode == s.SubmitBy
                 )
@@ -185,22 +189,26 @@
                 StringUtil.IsNotNullOrEmpty(queryObj.result) &&
                 !"鏈畬鎴�".Equals(queryObj.result),
                 (s, a, c, b, us) => s.SubmitStatus == 1)
-            .WhereIF(id > 0, (s, a, c, b, us,ca) => s.Id == id)
+            .WhereIF(id > 0, (s, a, c, b, us, ca) => s.Id == id)
             .WhereIF(!string.IsNullOrEmpty(queryObj.LoginUser),
-                (s, a, c, b, us, ca, d, dq) => dq.Usercode == queryObj.LoginUser)
+                (s, a, c, b, us, ca, d, dq) =>
+                    dq.Usercode == queryObj.LoginUser)
             .WhereIF(!string.IsNullOrEmpty(queryObj.SearchValue),
-                (s, a, c, b, us, ca, d, dq,i) =>
-                s.ReleaseNo.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
-                i.ItemName.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
-                ca.Caa015.ToLower().Contains(queryObj.SearchValue.ToLower()) ||
-                i.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
-            .Select((s, a, c, b, us,ca,d,dq,i,us2) => new QsQaItemXj
+                (s, a, c, b, us, ca, d, dq, i) =>
+                    s.ReleaseNo.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    i.ItemName.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    ca.Caa015.ToLower()
+                        .Contains(queryObj.SearchValue.ToLower()) ||
+                    i.ItemNo.ToLower().Contains(queryObj.SearchValue.ToLower()))
+            .Select((s, a, c, b, us, ca, d, dq, i, us2) => new QsQaItemXj
             {
                 Daa020 = c.LineNo,
                 Id = s.Id,
                 PlanQty = a.Daa008,
-                LineName = d.Departmentname == "娉ㄥ杞﹂棿" ?  a.Daa020:c.LineName,
-                CreateUser = us.Fname==null ? s.CreateBy : us.Fname,
+                LineName = d.Departmentname == "娉ㄥ杞﹂棿" ? a.Daa020 : c.LineName,
+                CreateUser = us.Fname == null ? s.CreateBy : us.Fname,
                 CreateBy = s.CreateBy,
                 CreateDate = s.CreateDate,
                 ReleaseNo = s.ReleaseNo,
@@ -215,9 +223,8 @@
                 DepartName = d.Departmentname,
                 PlanName = s.PlanName,
                 fcheckBy = us2.Fname,
-                SubmitDate= s.SubmitDate,
+                SubmitDate = s.SubmitDate,
                 SubmitStatus = s.SubmitStatus
-
             }).OrderBy(s => s.CreateDate, OrderByType.Desc);
         var items = query.ToPageList(queryObj.PageIndex, queryObj.Limit,
             ref totalCount);
@@ -231,21 +238,22 @@
         var db = SqlSugarHelper.GetInstance();
 
         var count = db.Queryable<MesQa>().Where(s => s.QsType == "2"
-            && s.ItemNo == itemNo && s.Fsubmit == 1 && s.QaPlan == planName).Count();
+                && s.ItemNo == itemNo && s.Fsubmit == 1 && s.QaPlan == planName)
+            .Count();
 
         if (count <= 0) return new List<QsQaItemXj01>();
 
         decimal? QsId = db.Queryable<MesQa>()
-                            .Where(s => s.QsType == "2"
-                                && s.ItemNo == itemNo
-                                && s.QaPlan == planName
-                                && s.Fsubmit == 1)
-                            .Select(s => s.Id)
-                            .First();
+            .Where(s => s.QsType == "2"
+                        && s.ItemNo == itemNo
+                        && s.QaPlan == planName
+                        && s.Fsubmit == 1)
+            .Select(s => s.Id)
+            .First();
 
         return db
             .Queryable<MesQualityStandard>()
-            .Where(b => b.Pid== QsId).Select(b => new QsQaItemXj01
+            .Where(b => b.Pid == QsId).Select(b => new QsQaItemXj01
             {
                 ProjName = b.ProjName,
                 ItemMod = b.ItemMod,
@@ -381,14 +389,17 @@
         var FID = new SugarParameter("P_ID", rkjDto.gid);
 
 
-        var FRes = new SugarParameter("c_result", null, true);            // 杈撳嚭鍙傛暟
+        var FRes = new SugarParameter("c_result", null, true); // 杈撳嚭鍙傛暟
         var FMsg = new SugarParameter("c_msg", null, true);
 
         // 鎵ц瀛樺偍杩囩▼
-        db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_UPDATE_RES_JK", FID, FRes, FMsg);
+        db.Ado.UseStoredProcedure()
+            .GetDataTable("PRC_XJ_UPDATE_RES_JK", FID, FRes, FMsg);
 
         int result = int.Parse((string)FRes.Value);
-        string message = FMsg.Value == DBNull.Value ? string.Empty : (string)FMsg.Value;
+        string message = FMsg.Value == DBNull.Value
+            ? string.Empty
+            : (string)FMsg.Value;
         if (result == 1)
         {
             //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊�
@@ -396,6 +407,40 @@
             throw new Exception(message);
         }
 
+        // 鎴愬姛鎻愪氦鍚庢帹閫侀拤閽夋秷鎭�
+        var qaXj = db.Queryable<QaXj>()
+            .Where(s => s.Id == rkjDto.gid)
+            .First();
+        
+        if (qaXj != null)
+        {
+            try
+            {
+                var qaMsgDto = new
+                {
+                    id = qaXj.Id,
+                    lineName = qaXj.LineName,
+                    workshopName = qaXj.Departmentname,
+                    qaType = "宸℃妫�楠屽畬鎴�"
+                };
+
+                // 璋冪敤閽夐拤娑堟伅鎺ㄩ�佹帴鍙�
+                var client = new System.Net.Http.HttpClient();
+                var json =
+                    Newtonsoft.Json.JsonConvert.SerializeObject(qaMsgDto);
+                var content = new System.Net.Http.StringContent(json,
+                    System.Text.Encoding.UTF8, "application/json");
+                var response = client
+                    .PostAsync(
+                        "http://192.168.0.100:9096/MesQaDingtalk/sendQaMsgXJ",
+                        content).Result;
+            }
+            catch (Exception ex)
+            {
+                // 璁板綍閽夐拤鎺ㄩ�佸紓甯革紝浣嗕笉褰卞搷涓绘祦绋�
+                Console.WriteLine($"閽夐拤娑堟伅鎺ㄩ�佸け璐�: {ex.Message}");
+            }
+        }
 
         return useTransactionWithOracle > 0;
     }
@@ -800,7 +845,7 @@
                 .ExecuteCommand();
         });
     }
-    
+
     public int saveNotesPid(XJDto dto)
     {
         return SqlSugarHelper.UseTransactionWithOracle(db =>
@@ -830,17 +875,17 @@
     {
         var db = SqlSugarHelper.GetInstance();
 
-        var count = db.Queryable<XJBadReason>().Where(s => s.BillNo == billNo).Count();
+        var count = db.Queryable<XJBadReason>().Where(s => s.BillNo == billNo)
+            .Count();
 
         if (count <= 0) return null;
 
         var reason = db
             .Queryable<XJBadReason>()
-            .Where(s => s.BillNo == billNo).Select(
-                b => new XJBadReason
-                {
-                    Reason = b.Reason
-                }).ToList();
+            .Where(s => s.BillNo == billNo).Select(b => new XJBadReason
+            {
+                Reason = b.Reason
+            }).ToList();
 
         return reason;
     }
@@ -849,15 +894,15 @@
     {
         var db = SqlSugarHelper.GetInstance();
         var res = db.Updateable<QsQaItemXj>()
-                          .SetColumns(a => a.PlanName == PlanName)
-                          .Where(a => a.Id == pid)
-                          .ExecuteCommand();
+            .SetColumns(a => a.PlanName == PlanName)
+            .Where(a => a.Id == pid)
+            .ExecuteCommand();
 
         return res;
-
     }
 
-    public (decimal?, string?, string?) CreateNew(string? DaaNo, string? userNo, string? planName)
+    public (decimal?, string?, string?) CreateNew(string? DaaNo, string? userNo,
+        string? planName)
     {
         var db = SqlSugarHelper.GetInstance();
         // 鍒涘缓鍙傛暟
@@ -866,12 +911,13 @@
         var FplanName = new SugarParameter("P_PLAN_NAME", planName);
 
 
-        var FRes = new SugarParameter("P_FLAG", null, true);            // 杈撳嚭鍙傛暟
+        var FRes = new SugarParameter("P_FLAG", null, true); // 杈撳嚭鍙傛暟
         var FMsg = new SugarParameter("P_TEXT", null, true);
         var FBillNo = new SugarParameter("po_BILL_NO", null, true);
 
         // 鎵ц瀛樺偍杩囩▼
-        db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_GENERATE_JK", FitemNo, FuserNo, FplanName, FRes, FMsg, FBillNo);
+        db.Ado.UseStoredProcedure().GetDataTable("PRC_XJ_GENERATE_JK", FitemNo,
+            FuserNo, FplanName, FRes, FMsg, FBillNo);
 
         // 鑾峰彇杈撳嚭缁撴灉
         var Res = Convert.ToInt32(FRes.Value);
@@ -882,5 +928,4 @@
 
         return (Res, Msg, BillNo);
     }
-
 }
\ No newline at end of file

--
Gitblit v1.9.3