啊鑫
2 天以前 5f467d39b6bcca41c0720493c1f6e68c77ea89e4
StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -28,7 +28,7 @@
//异常处置单结果表
[SugarTable("MES_QA_ITEMS_DETECT_01")]
public class QcIssueResultManager: Repository<QcIssueResults>
public class QcIssueResultManager : Repository<QcIssueResults>
{
    /**
     * 使用 Token 初始化账号Client
@@ -118,9 +118,9 @@
        }
        catch (TeaException err)
        {
                return $"TeaException: Code={err.Code}, Message={err.Message}";
            return $"TeaException: Code={err.Code}, Message={err.Message}";
        }
        catch (Exception _err)
        {
@@ -132,7 +132,7 @@
    * 获取userid
    * @return string 返回启动结果
    */
   public  HttpClient _httpClient;
    public HttpClient _httpClient;
    public string DingTalkService()
    {
        _httpClient = new HttpClient();
@@ -153,7 +153,7 @@
        return await GetUserIdByMobile(accessToken, phone);
    }
    public async Task<string> GetUserIdByMobile(string accessToken, string mobile)
    {
@@ -255,7 +255,7 @@
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
                Name = "TextField_1LW382XRH1DS0",
                Value = getQcIssueResultDetail.ItemName ,
                Value = getQcIssueResultDetail.ItemName,
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
@@ -286,7 +286,7 @@
            {
                Name = "InnerContactField_WVZLUIPZ9J40",
                Value = applicationUser,
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
@@ -328,6 +328,16 @@
                Name = "DDAttachment_23VB5MMC1R1C0",
                Value = "附件",
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues17 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
                Name = "TextField_X6NPRMTGFZ40",
                Value = getQcIssueResultDetail.EMERGENCY,
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues18 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
            {
                Name = "NumberField_23LXMDXBXOTC0",
                Value = GetFlowConditionValue(getQcIssueResultDetail.IqcStatus),
            };
            AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners
            {
                ActionerKey = "null",
@@ -354,7 +364,7 @@
                FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues>
                {
                     formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8,
                     formComponentValues9, formComponentValues11
                     formComponentValues9, formComponentValues11, formComponentValues17, formComponentValues18
                },
                TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
                {
@@ -404,27 +414,84 @@
    /**
     * 将带有流程号和检验单号的新记录插入表中
     */
    public dynamic SaveProcessNo(string ReleaseNo,string ProcessNo)
    public dynamic SaveProcessNo(string ReleaseNo, string ProcessNo, string StaffNo, string Department, string IqcStatus = null)
    {
        var QcIssueResults = GetQcIssueResults(ReleaseNo, ProcessNo, IqcStatus);
        var QcIssueResults = GetQcIssueResults(ReleaseNo, ProcessNo);
        var ApplicantResults = GetApplicantResults(ProcessNo, StaffNo);
        var DepartmentResults = GetDepartmentResults(ProcessNo, Department);
        var db = SqlSugarHelper.GetInstance();
        db.Insertable(ApplicantResults).ExecuteCommand(); // 插入申请人数据
        db.Insertable(DepartmentResults).ExecuteCommand(); // 插入部门数据
        return UseTransaction(db =>
        {
            return SaveOrUpdateData(db, QcIssueResults) ? 1 : 0;
        }) > 0;
            try
            {
                // 统一使用事务db
                //SaveOrUpdateApplicantData(db, ApplicantResults);
                //SaveOrUpdateDepartmentData(db, DepartmentResults);
                SaveOrUpdateData(db, QcIssueResults);
                return 1;
            }
            catch
            {
                db.RollbackTran();
                throw;
            }
        });
    }
    public QcIssueResults GetQcIssueResults(string ReleaseNo, string ProcessNo)
    public QcIssueResults GetQcIssueResults(string ReleaseNo, string ProcessNo, string IqcStatus = null)
    {
        var QcIssueResults = new QcIssueResults
        {
            INSTANCEID = ProcessNo,
            ReleaseNo = ReleaseNo,
            QcStatu = ""
            QcStatu = "",
            FLOW_CONDITION = IqcStatus != null ? GetFlowConditionValue(IqcStatus) : null
        };
        return QcIssueResults;
    }
    public IqcApplicant GetApplicantResults(string ProcessNo, string StaffNo)
    {
        var db = SqlSugarHelper.GetInstance();
        var stafflist = db.Queryable<DingNameCode>()
           .Where(t => t.STAFF_NO == StaffNo)
           .Select(t => new DingNameCode
           {
               STAFF_NAME = t.STAFF_NAME,
               PHONE_NUMBER = t.PHONE_NUMBER
           })
           .ToList();
        var ApplicantResults = new IqcApplicant
        {
            INSTANCEID = ProcessNo,
            APPLICANTID = StaffNo,
            APPLICANTNAME = stafflist[0].STAFF_NAME
        };
        return ApplicantResults;
    }
    public IqcDepartment GetDepartmentResults(string ProcessNo, string Department)
    {
        var DepartmentResults = new IqcDepartment
        {
            INSTANCEID = ProcessNo,
            DEPARTMENTNAME = Department
        };
        return DepartmentResults;
    }
    /**
@@ -466,10 +533,12 @@
            BELONGINGWORKSHOP = erpQcIssueResult.AffiliatedWorkshop,
            REVIEWSTATUS = erpQcIssueResult.FReview,
            QcStatu = erpQcIssueResult.QcStatus,
            ITEMNAME =erpQcIssueResult.ItemName,
            ITEMNO =erpQcIssueResult.ItemNo,
            ITEMNAME = erpQcIssueResult.ItemName,
            ITEMNO = erpQcIssueResult.ItemNo,
            SUPPLIERNAME = erpQcIssueResult.SupplierName,
            REMARK=erpQcIssueResult.Remark
            REMARK = erpQcIssueResult.Remark,
            APPLICATIONRESON = erpQcIssueResult.Reason,
            FLOW_CONDITION = GetFlowConditionValue(erpQcIssueResult.FReview) // 根据评审状态设置流程条件
        };
        return mesQcIssueResults;
@@ -492,7 +561,7 @@
        if (mapping.Any())
        {
            if (qcIssueResults.QcStatu=="拒绝")
            if (qcIssueResults.QcStatu == "拒绝")
            {
                string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
@@ -511,8 +580,9 @@
                        ITEMNAME = qcIssueResults.ITEMNAME,
                        ITEMNO = qcIssueResults.ITEMNO,
                        SUPPLIERNAME = qcIssueResults.SUPPLIERNAME,
                        REMARK = qcIssueResults.REMARK
                        REMARK = qcIssueResults.REMARK,
                        APPLICATIONRESON = qcIssueResults.APPLICATIONRESON,
                        FLOW_CONDITION = qcIssueResults.FLOW_CONDITION
                    })
                    .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 显式指定更新条件
                    .ExecuteCommand();
@@ -560,7 +630,8 @@
                    throw new Exception("未找到需要更新的记录");
                }
            }
            else{
            else
            {
                string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
                // 只更新 ReleaseNo 和 FReview 两个字段
@@ -578,8 +649,9 @@
                        ITEMNAME = qcIssueResults.ITEMNAME,
                        ITEMNO = qcIssueResults.ITEMNO,
                        SUPPLIERNAME = qcIssueResults.SUPPLIERNAME,
                        REMARK = qcIssueResults.REMARK
                        REMARK = qcIssueResults.REMARK,
                        APPLICATIONRESON = qcIssueResults.APPLICATIONRESON,
                        FLOW_CONDITION = qcIssueResults.FLOW_CONDITION
                    })
                    .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 显式指定更新条件
                    .ExecuteCommand();
@@ -660,10 +732,25 @@
            if (orUpdate) return true;
            throw new NotImplementedException("插入或更新失败");
        }
    }
    /**
     * 根据评审状态获取流程条件值
     */
    private string GetFlowConditionValue(string iqcStatus)
    {
        switch (iqcStatus)
        {
            case "退货":
                return "3";
            case "特采/让步使用":
                return "1";
            case "挑选/返工使用":
                return "2";
            default:
                return "0"; // 默认值
        }
    }
}
// 响应模型