From 8f25fecab6e6a79096b9940ab3432401b9045b39 Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期四, 10 七月 2025 18:00:14 +0800 Subject: [PATCH] 首检\巡检\入库检适配 --- MES.Service/service/QcIssueResult/QcIssueResultManager.cs | 685 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 518 insertions(+), 167 deletions(-) diff --git a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs index 9427856..8e3d338 100644 --- a/MES.Service/service/QcIssueResult/QcIssueResultManager.cs +++ b/MES.Service/service/QcIssueResult/QcIssueResultManager.cs @@ -16,11 +16,14 @@ using MES.Service.Dto.webApi.QcIssueResult; using MES.Service.Dto.webApi.DeliveryNote; using MES.Service.Modes.DeliveryNote; +using Newtonsoft.Json; +using Oracle.ManagedDataAccess.Client; +using System.Data; namespace MES.Service.service.QcIssueResult; //寮傚父澶勭疆鍗曠粨鏋滆〃 -[SugarTable("MES_QCISSUE_RESULT")] +[SugarTable("MES_QA_ITEMS_DETECT_01")] public class QcIssueResultManager: Repository<QcIssueResults> { /** @@ -138,166 +141,175 @@ DingDingCode=t.DingDingCode, }) .ToList(); - string UserId = mapping.FirstOrDefault().DingDingCode; + if (mapping.Any()) + { + string UserId = mapping.FirstOrDefault().DingDingCode; + // 浣跨敤 JSON 搴忓垪鍖栬緭鍑哄璞$殑璇︾粏鍐呭 + string getQcIssueResultDetailJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented); + Debug.WriteLine("GetQcIssueResultDetail: " + getQcIssueResultDetailJson); - Debug.WriteLine(UserId); + // 鑾峰彇 Access Token + string accessToken = GetToken(); + if (string.IsNullOrEmpty(accessToken)) + { + return "鑾峰彇 Access Token 澶辫触"; + } - // 鑾峰彇 Access Token - string accessToken = GetToken(); - if (string.IsNullOrEmpty(accessToken)) - { - return "鑾峰彇 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(); - Debug.WriteLine(accessToken); - startProcessInstanceHeaders.XAcsDingtalkAccessToken = accessToken; // 浣跨敤鑾峰彇鍒扮殑 Access Token - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextField-K2AD4O5B", - Value = "浜у搧鍚嶇О", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextField_DYFD1EESLVC0", - Value = "瑙勬牸鍨嬪彿", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextField_1AVN2BNVY1OG0", - Value = "鏁伴噺", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextField_1DKEMESOOGSG0", - Value = "閫佹鍗曚綅", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "DDDateField_20LKOACGMLXC0", - Value = DateTime.Now.ToString("yyyy-MM-dd"), - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextField_WBNBWGFHR000", - Value = "璁㈠崟鍙�", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextareaField_1ZP3BDPMYY800", - Value = "瀵逛笉鍚堟牸鎴栨綔鍦ㄤ笉鍚堟牸鐨勬弿杩�:", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "SignatureField_SKF9Q82DZUO0", - Value = getQcIssueResultDetail.Fname, - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "DDSelectField_1AK82Q8A2NB40", - Value = "閫�璐�", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextareaField_1LM82CPPR35S0", - Value = "鎸戦�夊唴瀹�", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextareaField_AK4JLDDNS2O0", - Value = "璁╂鎺ユ敹鍐呭", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextareaField_K69R6770WLS0", - Value = "閫�璐у娉�", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "TextareaField_194UFGLMI02O0", - Value = "鎶ュ簾澶囨敞", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "DDSelectField_1RN2L4RWQ0AO0", - Value = "鍚�", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues15 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "InnerContactField_WNG7AU9R2AO0", - Value = "鍔犵", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues16 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues - { - Name = "DDAttachment_23VB5MMC1R1C0", - Value = "闄勪欢", - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners - { - ActionerKey = "null", - ActionerUserIds = new List<string> + 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 + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues1 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextField-K2AD4O5B", + 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 = getQcIssueResultDetail.ItemModel, + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextField_1AVN2BNVY1OG0", + 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 = getQcIssueResultDetail.SuppName, + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues5 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "DDDateField_20LKOACGMLXC0", + Value = DateTime.Now.ToString("yyyy-MM-dd"), + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextField_WBNBWGFHR000", + Value = getQcIssueResultDetail.CgOrder, + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextareaField_1ZP3BDPMYY800", + Value = getQcIssueResultDetail.remark, + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues8 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "SignatureField_SKF9Q82DZUO0", + Value = getQcIssueResultDetail.Fname, + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "DDSelectField_1AK82Q8A2NB40", + Value = "閫�璐�", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextareaField_1LM82CPPR35S0", + Value = "鎸戦�夊唴瀹�", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextareaField_AK4JLDDNS2O0", + Value = "璁╂鎺ユ敹鍐呭", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextareaField_K69R6770WLS0", + Value = "閫�璐у娉�", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "TextareaField_194UFGLMI02O0", + Value = "鎶ュ簾澶囨敞", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "DDSelectField_1RN2L4RWQ0AO0", + Value = "鍚�", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues15 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "InnerContactField_WNG7AU9R2AO0", + Value = "鍔犵", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues16 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues + { + Name = "DDAttachment_23VB5MMC1R1C0", + Value = "闄勪欢", + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners targetSelectActioners0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners + { + ActionerKey = "null", + ActionerUserIds = new List<string> { UserId }, - }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers approvers0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers - { - ActionType = "OR", - UserIds = new List<string> + }; + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers approvers0 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers + { + ActionType = "OR", + UserIds = new List<string> { UserId }, - }; + }; - AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest - { - OriginatorUserId = UserId, - ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC", - DeptId = 1, - FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues> + AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest startProcessInstanceRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest { - formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8, + OriginatorUserId = UserId, + ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC", + DeptId = 1, + 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> + TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners> { targetSelectActioners0 }, - Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers> + Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers> { approvers0 }, - CcList = new List<string> + CcList = new List<string> { UserId }, - CcPosition = "START", + 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 "鎮ㄤ笉鏄叕鍙告垚鍛樻垨杩樻湭琚姞鍏ュ埌鏁版嵁搴撲腑鎴栧悕瀛楀~鍐欓敊璇紝鎬讳箣鏈壘鍒板尮閰嶇殑鐢ㄦ埛淇℃伅"; + } } @@ -320,7 +332,10 @@ var QcIssueResults = new QcIssueResults { ProcessNo = ProcessNo, - ReleaseNo = ReleaseNo + ReleaseNo = ReleaseNo, + QcStatu = "", + TCSTATU ="" + }; return QcIssueResults; @@ -345,7 +360,20 @@ var mesQcIssueResults = new QcIssueResults { ProcessNo = erpQcIssueResult.ProcessNo, - FReview = erpQcIssueResult.FReview + FReview = erpQcIssueResult.FReview, + QcStatu = erpQcIssueResult.QCSTATU, + QCREMARK = erpQcIssueResult.QcRemark, + SELECTREMARK = erpQcIssueResult.SelectRemark, + DATA = erpQcIssueResult.DATA, + CGORDER = erpQcIssueResult.CGORDER, + SJPLACE = erpQcIssueResult.SJPLACE, + NUM = erpQcIssueResult.NUM, + BFREMARK = erpQcIssueResult.BFREMARK, + THREMARK = erpQcIssueResult.THREMARK, + TCSTATU = erpQcIssueResult.TCSTATU, + MODEL =erpQcIssueResult.MODEL, + RBJSREMARK =erpQcIssueResult.RBJSREMARK, + RETURN_DATE=System.DateTime.Now }; return mesQcIssueResults; @@ -357,45 +385,368 @@ private bool SaveOrUpdateData(SqlSugarScope db, QcIssueResults qcIssueResults) { - // 妫�鏌rocessNo鏄惁宸茬粡瀛樺湪浜庢暟鎹簱涓� - 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 (existingRecord != null) + if (mapping.Any()) { - // 濡傛灉瀛樺湪锛屾洿鏂拌褰� - existingRecord.ProcessNo = qcIssueResults.ProcessNo; // 鍋囪Data鏄渶瑕佹洿鏂扮殑瀛楁 - existingRecord.FReview = qcIssueResults.FReview; // 鏇存柊鍏朵粬瀛楁 - // ... 鏇存柊鍏朵粬闇�瑕佹洿鏂扮殑瀛楁 + if (qcIssueResults.TCSTATU == "鏄�") + { + if (qcIssueResults.QcStatu == "鎷掔粷") + { + string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; - // 鎵ц鏇存柊鎿嶄綔 - var updateResult = db.Updateable(existingRecord).ExecuteCommand(); - return updateResult > 0; // 濡傛灉鏇存柊鎴愬姛锛岃繑鍥瀟rue + // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁 + var updateResult = db.Updateable<QcIssueResults>() + .SetColumns(t => new QcIssueResults + { + ReleaseNo = ReleaseNo, + FReview = qcIssueResults.FReview, + QcStatu = qcIssueResults.QcStatu, + QCREMARK = qcIssueResults.QCREMARK, + SELECTREMARK = qcIssueResults.SELECTREMARK, + DATA = qcIssueResults.DATA, + CGORDER = qcIssueResults.CGORDER, + SJPLACE = qcIssueResults.SJPLACE, + NUM = qcIssueResults.NUM, + BFREMARK = qcIssueResults.BFREMARK, + THREMARK = qcIssueResults.THREMARK, + TCSTATU = qcIssueResults.TCSTATU, + MODEL = qcIssueResults.MODEL, + RBJSREMARK = qcIssueResults.RBJSREMARK, + RETURN_DATE=System.DateTime.Now + }) + .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) + { + + 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) + { + //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊� + db.Ado.RollbackTran(); + throw new Exception(message); + } + // 鎻愪氦浜嬪姟 + db.Ado.CommitTran(); + return true; + } + catch (Exception ex) + { + Console.WriteLine("Exception: " + ex.Message); + return false; + } + } + else + { + throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍"); + } + } + else + { + string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; + + // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁 + var updateResult = db.Updateable<QcIssueResults>() + .SetColumns(t => new QcIssueResults + { + ReleaseNo = ReleaseNo, + FReview = qcIssueResults.FReview, + QcStatu = qcIssueResults.QcStatu, + QCREMARK = qcIssueResults.QCREMARK, + SELECTREMARK = qcIssueResults.SELECTREMARK, + DATA = qcIssueResults.DATA, + CGORDER = qcIssueResults.CGORDER, + SJPLACE = qcIssueResults.SJPLACE, + NUM = qcIssueResults.NUM, + BFREMARK = qcIssueResults.BFREMARK, + THREMARK = qcIssueResults.THREMARK, + TCSTATU = qcIssueResults.TCSTATU, + MODEL = qcIssueResults.MODEL, + RBJSREMARK = qcIssueResults.RBJSREMARK, + RETURN_DATE = System.DateTime.Now + }) + .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) + { + // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈� + existingRecord.FngHandle = "鐗归噰鐩存帴浣跨敤"; + existingRecord.FMRMODE = null; + + // 鎵ц鏇存柊鎿嶄綔 + 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", "鐗归噰鐩存帴浣跨敤"); + var inputParam4 = new SugarParameter("PI_TLFS", ""); + 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 + } + else + { + throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍"); + } + } + } + else + { + if (qcIssueResults.QcStatu == "鎷掔粷") + { + string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; + + // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁 + var updateResult = db.Updateable<QcIssueResults>() + .SetColumns(t => new QcIssueResults + { + ReleaseNo = ReleaseNo, + FReview = qcIssueResults.FReview, + QcStatu = qcIssueResults.QcStatu, + QCREMARK = qcIssueResults.QCREMARK, + SELECTREMARK = qcIssueResults.SELECTREMARK, + DATA = qcIssueResults.DATA, + CGORDER = qcIssueResults.CGORDER, + SJPLACE = qcIssueResults.SJPLACE, + NUM = qcIssueResults.NUM, + BFREMARK = qcIssueResults.BFREMARK, + THREMARK = qcIssueResults.THREMARK, + TCSTATU = qcIssueResults.TCSTATU, + MODEL = qcIssueResults.MODEL, + RBJSREMARK = qcIssueResults.RBJSREMARK, + RETURN_DATE = System.DateTime.Now + }) + .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢 + .ExecuteCommand(); + + // 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰� + var existingRecord = db.Queryable<UpdateMesQaItems>() + .Where(it => it.ReleaseNo == ReleaseNo) + .First(); // 浣跨敤 First 鑾峰彇绗竴鏉¤褰� + + Console.WriteLine($"鏌ヨ鍒扮殑 mapping: {JsonConvert.SerializeObject(existingRecord)}"); + + if (existingRecord != null) + { + + 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) + { + //瀛樺偍杩囩▼澶辫触鍒欎簨鍔¤繘琛屽洖婊� + db.Ado.RollbackTran(); + throw new Exception(message); + } + // 鎻愪氦浜嬪姟 + db.Ado.CommitTran(); + return true; + + } + catch (Exception ex) + { + Console.WriteLine("Exception: " + ex.Message); + return false; + } + } + else + { + throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍"); + } + } + else + { + string ReleaseNo = mapping.FirstOrDefault().ReleaseNo; + + // 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁 + var updateResult = db.Updateable<QcIssueResults>() + .SetColumns(t => new QcIssueResults + { + ReleaseNo = ReleaseNo, + FReview = qcIssueResults.FReview, + QcStatu = qcIssueResults.QcStatu, + QCREMARK = qcIssueResults.QCREMARK, + SELECTREMARK = qcIssueResults.SELECTREMARK, + DATA = qcIssueResults.DATA, + CGORDER = qcIssueResults.CGORDER, + SJPLACE = qcIssueResults.SJPLACE, + NUM = qcIssueResults.NUM, + BFREMARK = qcIssueResults.BFREMARK, + THREMARK = qcIssueResults.THREMARK, + TCSTATU = qcIssueResults.TCSTATU, + MODEL = qcIssueResults.MODEL, + RBJSREMARK = qcIssueResults.RBJSREMARK, + }) + .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) + { + // 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈� + existingRecord.FngHandle = qcIssueResults.FReview; + if (existingRecord.FngHandle == "閫�璐�") + { + existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�"; + } + else if (existingRecord.FngHandle == "鎸戦�変娇鐢�") + { + existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�"; + } + else if (existingRecord.FngHandle == "鎶ュ簾") + { + existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�"; + } + else + { + existingRecord.FMRMODE = null; + } + + // 鎵ц鏇存柊鎿嶄綔 + 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 + } + else + { + throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍"); + } + } + } + } else { + // 濡傛灉 mapping 涓虹┖锛屾彃鍏ユ柊璁板綍鍒� QcIssueResults 琛� var orUpdate = base.Insert(qcIssueResults); if (orUpdate) return true; throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); } - + } - ///** - // * 灏嗗甫鏈夋祦绋嬪彿鍜屾楠屽崟鍙风殑鏂拌褰曟彃鍏ヨ〃涓� - // */ - //public dynamic GetDingUserId() - //{ - - // return UseTransaction(db => - // { - // return SaveOrUpdateData(db) ? 1 : 0; - // }) > 0; - //} - - //public string FindDingUserId(SqlSugarScope db,DingNameCode dingNameCode) - //{ - - //} + } \ No newline at end of file -- Gitblit v1.9.3