From 986bbf207ec3ecab9dfbf3fed50b565d2a2676fc Mon Sep 17 00:00:00 2001 From: xwt <2740516069@qq.com> Date: 星期六, 19 七月 2025 14:48:27 +0800 Subject: [PATCH] 来料检上传附件 --- StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs | 290 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 220 insertions(+), 70 deletions(-) diff --git a/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs index 17d2f46..b4848cc 100644 --- a/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs +++ b/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 鍒濆鍖栬处鍙稢lient @@ -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 { @@ -305,12 +305,12 @@ }; AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues { - Name = "DDPhotoField_QD15KYR764G0\r\n", + Name = "DDPhotoField_QD15KYR764G0", Value = "娴嬭瘯涓嶈壇鍥剧墖", }; AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues { - Name = "DDAttachment_GLZLFSIWK9S0\r\n", + Name = "DDAttachment_GLZLFSIWK9S0", Value = "闄勪欢", }; AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues @@ -327,6 +327,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 { @@ -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 { - ProcessNo = ProcessNo, + 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; } /** @@ -432,28 +499,46 @@ */ public dynamic Save(ErpQcIssueResult erpQcIssueResult) { - var json = JsonConvert.SerializeObject(erpQcIssueResult); + //var json = JsonConvert.SerializeObject(erpQcIssueResult); - //var saveSuccess = UseTransaction(db => + ////var saveSuccess = UseTransaction(db => + ////{ + //// var data = GetMesQcIssueResults(erpQcIssueResult); + //// return SaveOrUpdateData(db, data); + ////}); + + //return new //{ - // var data = GetMesQcIssueResults(erpQcIssueResult); - // return SaveOrUpdateData(db, data); - //}); + // SerializedPayload = json, + // ServerTime = DateTime.UtcNow.ToString("O") + //}; - return new + var mesQcIssueResults = GetMesQcIssueResults(erpQcIssueResult); + + return UseTransaction(db => { - SerializedPayload = json, - ServerTime = DateTime.UtcNow.ToString("O") - }; + return SaveOrUpdateData(db, mesQcIssueResults) ? 1 : 0; + }) > 0; + } public QcIssueResults GetMesQcIssueResults(ErpQcIssueResult erpQcIssueResult) { var mesQcIssueResults = new QcIssueResults { - ProcessNo = erpQcIssueResult.ProcessNo, + INSTANCEID = erpQcIssueResult.ProcessNo, FReview = erpQcIssueResult.FReview, - QcStatu = erpQcIssueResult.QcStatus + 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, + FLOW_CONDITION = GetFlowConditionValue(erpQcIssueResult.FReview) // 鏍规嵁璇勫鐘舵�佽缃祦绋嬫潯浠� }; return mesQcIssueResults; @@ -467,7 +552,7 @@ // 鏌ヨ QcIssueResults 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰� var mapping = db.Queryable<QcIssueResults>() - .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) + .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) .Select(t => new QcIssueResults { ReleaseNo = t.ReleaseNo, @@ -476,7 +561,7 @@ if (mapping.Any()) { - if (qcIssueResults.QcStatu=="鎷掔粷") + if (qcIssueResults.QcStatu == "鎷掔粷") { string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; @@ -485,9 +570,21 @@ .SetColumns(t => new QcIssueResults { ReleaseNo = ReleaseNo, - FReview = qcIssueResults.FReview + 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, + FLOW_CONDITION = qcIssueResults.FLOW_CONDITION }) - .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢 + .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 鏄惧紡鎸囧畾鏇存柊鏉′欢 .ExecuteCommand(); // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰� @@ -499,41 +596,28 @@ if (existingRecord != null) { - string result = null; - bool returnValue = false; try { - 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)) + //瀹氫箟杈撳叆鍙傛暟 + 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) { - 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.RollbackTran(); + throw new Exception(message); } - return returnValue; + // 鎻愪氦浜嬪姟 + db.Ado.CommitTran(); + return true; } catch (Exception ex) { @@ -546,7 +630,8 @@ throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍"); } } - else{ + else + { string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁 @@ -554,9 +639,21 @@ .SetColumns(t => new QcIssueResults { ReleaseNo = ReleaseNo, - FReview = qcIssueResults.FReview + 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, + FLOW_CONDITION = qcIssueResults.FLOW_CONDITION }) - .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢 + .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 鏄惧紡鎸囧畾鏇存柊鏉′欢 .ExecuteCommand(); // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰� @@ -569,7 +666,7 @@ if (existingRecord != null) { // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈� - existingRecord.FngHandle = qcIssueResults.FReview; + existingRecord.FngHandle = qcIssueResults.REVIEWSTATUS; if (existingRecord.FngHandle == "閫�璐�") { existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�"; @@ -581,6 +678,44 @@ // 鎵ц鏇存柊鎿嶄綔 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 } @@ -597,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"; // 榛樿鍊� + } + } } // 鍝嶅簲妯″瀷 -- Gitblit v1.9.3