| | |
| | | |
| | | //异常处置单结果表 |
| | | [SugarTable("MES_QA_ITEMS_DETECT_01")] |
| | | public class QcIssueResultManager : Repository<QcIssueResults> |
| | | public class QcIssueResultManager: Repository<QcIssueResults> |
| | | { |
| | | /** |
| | | * 使用 Token 初始化账号Client |
| | |
| | | } |
| | | catch (TeaException err) |
| | | { |
| | | |
| | | return $"TeaException: Code={err.Code}, Message={err.Message}"; |
| | | |
| | | |
| | | return $"TeaException: Code={err.Code}, Message={err.Message}"; |
| | | |
| | | } |
| | | catch (Exception _err) |
| | | { |
| | |
| | | * 获取userid |
| | | * @return string 返回启动结果 |
| | | */ |
| | | public HttpClient _httpClient; |
| | | public HttpClient _httpClient; |
| | | public string DingTalkService() |
| | | { |
| | | _httpClient = new HttpClient(); |
| | |
| | | return await GetUserIdByMobile(accessToken, phone); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public async Task<string> GetUserIdByMobile(string accessToken, string mobile) |
| | | { |
| | |
| | | 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 |
| | | { |
| | |
| | | { |
| | | Name = "InnerContactField_WVZLUIPZ9J40", |
| | | Value = applicationUser, |
| | | |
| | | |
| | | }; |
| | | AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues |
| | | { |
| | |
| | | }; |
| | | AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues |
| | | { |
| | | Name = "DDPhotoField_QD15KYR764G0", |
| | | Name = "DDPhotoField_QD15KYR764G0\r\n", |
| | | Value = "测试不良图片", |
| | | }; |
| | | AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues |
| | | { |
| | | Name = "DDAttachment_GLZLFSIWK9S0", |
| | | Name = "DDAttachment_GLZLFSIWK9S0\r\n", |
| | | Value = "附件", |
| | | }; |
| | | AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues |
| | |
| | | /** |
| | | * 将带有流程号和检验单号的新记录插入表中 |
| | | */ |
| | | public dynamic SaveProcessNo(string ReleaseNo, string ProcessNo, string StaffNo, string Department) |
| | | public dynamic SaveProcessNo(string ReleaseNo,string ProcessNo) |
| | | { |
| | | |
| | | 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 => |
| | | { |
| | | try |
| | | { |
| | | |
| | | |
| | | // 统一使用事务db |
| | | //SaveOrUpdateApplicantData(db, ApplicantResults); |
| | | //SaveOrUpdateDepartmentData(db, DepartmentResults); |
| | | SaveOrUpdateData(db, QcIssueResults); |
| | | |
| | | return 1; |
| | | } |
| | | catch |
| | | { |
| | | db.RollbackTran(); |
| | | throw; |
| | | } |
| | | }); |
| | | return SaveOrUpdateData(db, QcIssueResults) ? 1 : 0; |
| | | }) > 0; |
| | | } |
| | | |
| | | public QcIssueResults GetQcIssueResults(string ReleaseNo, string ProcessNo) |
| | | { |
| | | var QcIssueResults = new QcIssueResults |
| | | { |
| | | INSTANCEID = ProcessNo, |
| | | ProcessNo = ProcessNo, |
| | | ReleaseNo = ReleaseNo, |
| | | QcStatu = "" |
| | | }; |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * 根据流程号更新表的记录 |
| | | */ |
| | | public dynamic Save(ErpQcIssueResult erpQcIssueResult) |
| | | { |
| | | //var json = JsonConvert.SerializeObject(erpQcIssueResult); |
| | | var json = JsonConvert.SerializeObject(erpQcIssueResult); |
| | | |
| | | ////var saveSuccess = UseTransaction(db => |
| | | ////{ |
| | | //// var data = GetMesQcIssueResults(erpQcIssueResult); |
| | | //// return SaveOrUpdateData(db, data); |
| | | ////}); |
| | | |
| | | //return new |
| | | //var saveSuccess = UseTransaction(db => |
| | | //{ |
| | | // SerializedPayload = json, |
| | | // ServerTime = DateTime.UtcNow.ToString("O") |
| | | //}; |
| | | // var data = GetMesQcIssueResults(erpQcIssueResult); |
| | | // return SaveOrUpdateData(db, data); |
| | | //}); |
| | | |
| | | var mesQcIssueResults = GetMesQcIssueResults(erpQcIssueResult); |
| | | |
| | | return UseTransaction(db => |
| | | return new |
| | | { |
| | | return SaveOrUpdateData(db, mesQcIssueResults) ? 1 : 0; |
| | | }) > 0; |
| | | |
| | | SerializedPayload = json, |
| | | ServerTime = DateTime.UtcNow.ToString("O") |
| | | }; |
| | | } |
| | | |
| | | public QcIssueResults GetMesQcIssueResults(ErpQcIssueResult erpQcIssueResult) |
| | | { |
| | | var mesQcIssueResults = new QcIssueResults |
| | | { |
| | | INSTANCEID = erpQcIssueResult.ProcessNo, |
| | | ProcessNo = erpQcIssueResult.ProcessNo, |
| | | FReview = erpQcIssueResult.FReview, |
| | | APPLICATIONNUM = erpQcIssueResult.ApplicationQuantity.ToString(), |
| | | BADCAUSES = erpQcIssueResult.BadCauses, |
| | | BELONGINGWORKSHOP = erpQcIssueResult.AffiliatedWorkshop, |
| | | REVIEWSTATUS = erpQcIssueResult.FReview, |
| | | QcStatu = erpQcIssueResult.QcStatus, |
| | | ITEMNAME = erpQcIssueResult.ItemName, |
| | | ITEMNO = erpQcIssueResult.ItemNo, |
| | | SUPPLIERNAME = erpQcIssueResult.SupplierName, |
| | | REMARK = erpQcIssueResult.Remark, |
| | | APPLICATIONRESON=erpQcIssueResult.Reason |
| | | QcStatu = erpQcIssueResult.QcStatus |
| | | }; |
| | | |
| | | return mesQcIssueResults; |
| | |
| | | |
| | | // 查询 QcIssueResults 表中是否存在匹配的记录 |
| | | var mapping = db.Queryable<QcIssueResults>() |
| | | .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) |
| | | .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) |
| | | .Select(t => new QcIssueResults |
| | | { |
| | | ReleaseNo = t.ReleaseNo, |
| | |
| | | |
| | | if (mapping.Any()) |
| | | { |
| | | if (qcIssueResults.QcStatu == "拒绝") |
| | | if (qcIssueResults.QcStatu=="拒绝") |
| | | { |
| | | string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; |
| | | |
| | |
| | | .SetColumns(t => new QcIssueResults |
| | | { |
| | | ReleaseNo = ReleaseNo, |
| | | INSTANCEID = qcIssueResults.INSTANCEID, |
| | | FReview = qcIssueResults.FReview, |
| | | APPLICATIONNUM = qcIssueResults.APPLICATIONNUM, |
| | | BADCAUSES = qcIssueResults.BADCAUSES, |
| | | BELONGINGWORKSHOP = qcIssueResults.BELONGINGWORKSHOP, |
| | | REVIEWSTATUS = qcIssueResults.REVIEWSTATUS, |
| | | QcStatu = qcIssueResults.QcStatu, |
| | | ITEMNAME = qcIssueResults.ITEMNAME, |
| | | ITEMNO = qcIssueResults.ITEMNO, |
| | | SUPPLIERNAME = qcIssueResults.SUPPLIERNAME, |
| | | REMARK = qcIssueResults.REMARK, |
| | | APPLICATIONRESON=qcIssueResults.APPLICATIONRESON |
| | | |
| | | FReview = qcIssueResults.FReview |
| | | }) |
| | | .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 显式指定更新条件 |
| | | .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 显式指定更新条件 |
| | | .ExecuteCommand(); |
| | | |
| | | // 查询 UpdateMesQaItems 表中是否存在匹配的记录 |
| | |
| | | |
| | | if (existingRecord != null) |
| | | { |
| | | string result = null; |
| | | bool returnValue = false; |
| | | try |
| | | { |
| | | //定义输入参数 |
| | | var inputParam1 = new SugarParameter("pi_no", existingRecord.ReleaseNo); |
| | | var inputParam2 = new SugarParameter("pi_user", "PL017"); |
| | | // 定义输出参数 |
| | | var outParam1 = new SugarParameter("po_result", null, true); |
| | | var outParam2 = new SugarParameter("po_msg", null, true); |
| | | // 使用 SqlSugar 执行存储过程 |
| | | Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_REVOCK(:pi_no,:pi_user,:po_result,:po_msg ); END;", inputParam1, inputParam2, outParam1, outParam2); |
| | | // 获取输出参数的值 |
| | | int result = int.Parse((string)outParam1.Value); |
| | | string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; |
| | | if (result == 1) |
| | | string connectionString = "User Id=yc_dev;Password=ycdev;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))"; |
| | | using (OracleConnection connection = new OracleConnection(connectionString)) |
| | | { |
| | | //存储过程失败则事务进行回滚 |
| | | db.Ado.RollbackTran(); |
| | | throw new Exception(message); |
| | | using (OracleCommand command = new OracleCommand("PRC_MES_IQC_CG_REVOCK", connection)) |
| | | { |
| | | command.CommandType = CommandType.StoredProcedure; |
| | | // 添加输入参数 |
| | | command.Parameters.Add("pi_no", OracleDbType.Varchar2).Value = existingRecord.ReleaseNo; // 替换为实际值 |
| | | command.Parameters.Add("pi_user", OracleDbType.Varchar2).Value = "PL017"; // 替换为实际值 |
| | | // 添加输出参数 |
| | | OracleParameter poResult = new OracleParameter("po_result", OracleDbType.Int32, ParameterDirection.Output); |
| | | OracleParameter poMsg = new OracleParameter("po_msg", OracleDbType.Varchar2, 4000, ParameterDirection.Output); |
| | | command.Parameters.Add(poResult); |
| | | command.Parameters.Add(poMsg); |
| | | // 打开连接并执行命令 |
| | | connection.Open(); |
| | | command.ExecuteNonQuery(); |
| | | // 处理返回值 |
| | | if (poResult.Value != null && poResult.Value.ToString() == "0") |
| | | { |
| | | returnValue = true; |
| | | } |
| | | else |
| | | { |
| | | // 输出错误信息 |
| | | string errorMsg = poMsg.Value != null ? poMsg.Value.ToString() : "Unknown error occurred"; |
| | | Console.WriteLine("Error: " + errorMsg); |
| | | } |
| | | } |
| | | } |
| | | // 提交事务 |
| | | db.Ado.CommitTran(); |
| | | return true; |
| | | return returnValue; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | throw new Exception("未找到需要更新的记录"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | else{ |
| | | string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; |
| | | |
| | | // 只更新 ReleaseNo 和 FReview 两个字段 |
| | |
| | | .SetColumns(t => new QcIssueResults |
| | | { |
| | | ReleaseNo = ReleaseNo, |
| | | INSTANCEID = qcIssueResults.INSTANCEID, |
| | | FReview = qcIssueResults.FReview, |
| | | APPLICATIONNUM = qcIssueResults.APPLICATIONNUM, |
| | | BADCAUSES = qcIssueResults.BADCAUSES, |
| | | BELONGINGWORKSHOP = qcIssueResults.BELONGINGWORKSHOP, |
| | | REVIEWSTATUS = qcIssueResults.REVIEWSTATUS, |
| | | QcStatu = qcIssueResults.QcStatu, |
| | | ITEMNAME = qcIssueResults.ITEMNAME, |
| | | ITEMNO = qcIssueResults.ITEMNO, |
| | | SUPPLIERNAME = qcIssueResults.SUPPLIERNAME, |
| | | REMARK = qcIssueResults.REMARK, |
| | | APPLICATIONRESON = qcIssueResults.APPLICATIONRESON |
| | | |
| | | |
| | | FReview = qcIssueResults.FReview |
| | | }) |
| | | .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 显式指定更新条件 |
| | | .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 显式指定更新条件 |
| | | .ExecuteCommand(); |
| | | |
| | | // 查询 UpdateMesQaItems 表中是否存在匹配的记录 |
| | |
| | | if (existingRecord != null) |
| | | { |
| | | // 更新 UpdateMesQaItems 表中的字段 |
| | | existingRecord.FngHandle = qcIssueResults.REVIEWSTATUS; |
| | | existingRecord.FngHandle = qcIssueResults.FReview; |
| | | if (existingRecord.FngHandle == "退货") |
| | | { |
| | | existingRecord.FMRMODE = "退料补料"; |
| | |
| | | |
| | | // 执行更新操作 |
| | | updateResult = db.Updateable(existingRecord).ExecuteCommand(); |
| | | |
| | | if (updateResult > 0) |
| | | { |
| | | try |
| | | { |
| | | |
| | | //定义输入参数 |
| | | var inputParam1 = new SugarParameter("PI_BILLNO", ReleaseNo); |
| | | var inputParam2 = new SugarParameter("PI_USER", "PL017"); |
| | | var inputParam3 = new SugarParameter("PI_HANDLE", existingRecord.FngHandle); |
| | | var inputParam4 = new SugarParameter("PI_TLFS", existingRecord.FMRMODE); |
| | | var inputParam5 = new SugarParameter("PI_REMARK", ""); |
| | | |
| | | // 定义输出参数 |
| | | var outParam1 = new SugarParameter("PO_RESULT", null, true); |
| | | var outParam2 = new SugarParameter("PO_MSG", null, true); |
| | | // 使用 SqlSugar 执行存储过程 |
| | | Db.Ado.ExecuteCommand("BEGIN PRC_MES_IQC_CG_SUBMIT(:PI_BILLNO,:PI_BILLNO,:PI_HANDLE,:PI_TLFS,:PI_REMARK,:PO_RESULT,:PO_MSG); END;", inputParam1, inputParam2, inputParam3, inputParam4, inputParam5, outParam1, outParam2); |
| | | // 获取输出参数的值 |
| | | int result = int.Parse((string)outParam1.Value); |
| | | string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value; |
| | | if (result == 1) |
| | | { |
| | | //存储过程失败则事务进行回滚 |
| | | db.Ado.RollbackTran(); |
| | | throw new Exception(message); |
| | | } |
| | | // 提交事务 |
| | | db.Ado.CommitTran(); |
| | | return true; |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine("Exception: " + ex.Message); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | return updateResult > 0; // 如果更新成功,返回 true |
| | | } |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | // 响应模型 |