cnf
2025-03-24 d84ac8a7ee3121b791d8d4d59ab6f2b766796948
MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -16,11 +16,12 @@
using MES.Service.Dto.webApi.QcIssueResult;
using MES.Service.Dto.webApi.DeliveryNote;
using MES.Service.Modes.DeliveryNote;
using Newtonsoft.Json;
namespace MES.Service.service.QcIssueResult;
//异常处置单结果表
[SugarTable("MES_QCISSUE_RESULT")]
[SugarTable("MES_QA_ITEMS_DETECT_01")]
public class QcIssueResultManager: Repository<QcIssueResults>
{
    /**
@@ -138,11 +139,14 @@
               DingDingCode=t.DingDingCode,
            })
            .ToList();
        if (mapping.Any())
        {
        string UserId = mapping.FirstOrDefault().DingDingCode;
        Debug.WriteLine(UserId);
            // 使用 JSON 序列化输出对象的详细内容
            string getQcIssueResultDetailJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
            Debug.WriteLine("GetQcIssueResultDetail: " + getQcIssueResultDetailJson);
        // 获取 Access Token
        string accessToken = GetToken();
@@ -158,22 +162,22 @@
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
            Name = "TextField-K2AD4O5B",
            Value = "产品名称",
                Value = getQcIssueResultDetail.ItemName,
        };
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
            Name = "TextField_DYFD1EESLVC0",
            Value = "规格型号",
                Value = getQcIssueResultDetail.ItemModel,
        };
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
            Name = "TextField_1AVN2BNVY1OG0",
            Value = "数量",
                Value = getQcIssueResultDetail.FbatchQty,
        };
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
            Name = "TextField_1DKEMESOOGSG0",
            Value = "送检单位",
                Value = getQcIssueResultDetail.SuppName,
        };
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
@@ -188,7 +192,7 @@
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
            Name = "TextareaField_1ZP3BDPMYY800",
            Value = "对不合格或潜在不合格的描述:",
                Value = getQcIssueResultDetail.remark,
        };
        AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
        {
@@ -278,26 +282,32 @@
            CcPosition = "START",
        };
        return "1";
        //try
        //{
        //    string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
        //    Debug.WriteLine("startProcessInstanceRequest内容:");
        //    Debug.WriteLine(requestContent);
        //    var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
        //    return $"钉钉工作流实例启动成功: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
        //}
        //catch (TeaException err)
        //{
        //    string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
        //    Debug.WriteLine("startProcessInstanceRequest内容:");
        //    Debug.WriteLine(startProcessInstanceRequest);
        //    return $"TeaException: Code={err.Code}, Message={err.Message}";
        //}
        //catch (Exception _err)
        //{
        //    return $"Exception: {_err.Message}";
        //}
            // 序列化 FormComponentValues 列表为 JSON 格式
            string formComponentValuesJson = JsonConvert.SerializeObject(startProcessInstanceRequest.FormComponentValues, Formatting.Indented);
            Debug.WriteLine("FormComponentValues: " + formComponentValuesJson);
            try
            {
                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
                Debug.WriteLine("startProcessInstanceRequest内容:");
                Debug.WriteLine(requestContent);
                var response = client.StartProcessInstanceWithOptions(startProcessInstanceRequest, startProcessInstanceHeaders, new RuntimeOptions());
                return $"钉钉工作流实例启动成功: {Newtonsoft.Json.JsonConvert.SerializeObject(response.Body)}";
            }
            catch (TeaException err)
            {
                string requestContent = Newtonsoft.Json.JsonConvert.SerializeObject(startProcessInstanceRequest);
                Debug.WriteLine("startProcessInstanceRequest内容:");
                Debug.WriteLine(startProcessInstanceRequest);
                return $"TeaException: Code={err.Code}, Message={err.Message}";
            }
            catch (Exception _err)
            {
                return $"Exception: {_err.Message}";
            }
        }
        else {
            return "您不是公司成员或还未被加入到数据库中或名字填写错误,总之未找到匹配的用户信息";
        }
    }
@@ -357,24 +367,54 @@
    private bool SaveOrUpdateData(SqlSugarScope db, QcIssueResults qcIssueResults)
    {
        // 检查ProcessNo是否已经存在于数据库中
        var existingRecord = db.Queryable<QcIssueResults>()
                               .Where(it => it.ProcessNo == qcIssueResults.ProcessNo)
                               .First(); // 使用FirstOrDefault替代
        // 查询 QcIssueResults 表中是否存在匹配的记录
        var mapping = db.Queryable<QcIssueResults>()
            .Where(t => t.ProcessNo == qcIssueResults.ProcessNo)
            .Select(t => new QcIssueResults
            {
                ReleaseNo = t.ReleaseNo,
            })
            .ToList();
        if (mapping.Any())
        {
            string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
            // 只更新 ReleaseNo 和 FReview 两个字段
            var updateResult = db.Updateable<QcIssueResults>()
                .SetColumns(t => new QcIssueResults
                {
                    ReleaseNo = ReleaseNo,
                    FReview = qcIssueResults.FReview
                })
                .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 显式指定更新条件
                .ExecuteCommand();
            // 查询 UpdateMesQaItems 表中是否存在匹配的记录
            var existingRecord = db.Queryable<UpdateMesQaItems>()
                .Where(it => it.ReleaseNo == ReleaseNo)
                .First(); // 使用 First 获取第一条记录
            Debug.WriteLine($"查询到的 mapping: {JsonConvert.SerializeObject(existingRecord)}");
        if (existingRecord != null)
        {
            // 如果存在,更新记录
            existingRecord.ProcessNo = qcIssueResults.ProcessNo; // 假设Data是需要更新的字段
            existingRecord.FReview = qcIssueResults.FReview; // 更新其他字段
                                                                   // ... 更新其他需要更新的字段
                // 更新 UpdateMesQaItems 表中的字段
                existingRecord.FngHandle = qcIssueResults.FReview;
            // 执行更新操作
            var updateResult = db.Updateable(existingRecord).ExecuteCommand();
                updateResult = db.Updateable(existingRecord).ExecuteCommand();
            return updateResult > 0; // 如果更新成功,返回true
        }
        else
        {
                throw new Exception("未找到需要更新的记录");
            }
        }
        else
        {
            // 如果 mapping 为空,插入新记录到 QcIssueResults 表
            var orUpdate = base.Insert(qcIssueResults);
            if (orUpdate) return true;
            throw new NotImplementedException("插入或更新失败");
@@ -382,20 +422,5 @@
       
    }
    ///**
    // * 将带有流程号和检验单号的新记录插入表中
    // */
    //public dynamic GetDingUserId()
    //{
    //    return UseTransaction(db =>
    //    {
    //        return SaveOrUpdateData(db) ? 1 : 0;
    //    }) > 0;
    //}
    //public string FindDingUserId(SqlSugarScope db,DingNameCode dingNameCode)
    //{
    //}
}