From 597f8e08e6264b2143454e40a7be553d1e8b6df7 Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期五, 09 五月 2025 17:04:19 +0800
Subject: [PATCH] 2025/5/9 沈
---
StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs | 478 +++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 363 insertions(+), 115 deletions(-)
diff --git a/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs b/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
index e92cf28..beec420 100644
--- a/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
+++ b/StandardInterface/MES.Service/service/QcIssueResult/QcIssueResultManager.cs
@@ -19,12 +19,16 @@
using Newtonsoft.Json;
using Oracle.ManagedDataAccess.Client;
using System.Data;
+using System.Reflection;
+using System.Text;
+using DingTalk.Api;
+using System.Net.Http;
namespace MES.Service.service.QcIssueResult;
//寮傚父澶勭疆鍗曠粨鏋滆〃
[SugarTable("MES_QA_ITEMS_DETECT_01")]
-public class QcIssueResultManager: Repository<QcIssueResults>
+public class QcIssueResultManager : Repository<QcIssueResults>
{
/**
* 浣跨敤 Token 鍒濆鍖栬处鍙稢lient
@@ -56,8 +60,8 @@
AlibabaCloud.SDK.Dingtalkoauth2_1_0.Client client = CreateClient1();
AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest getAccessTokenRequest = new AlibabaCloud.SDK.Dingtalkoauth2_1_0.Models.GetAccessTokenRequest
{
- AppKey = "dingyzos0r1bizj7g6lr",
- AppSecret = "-HP4RvK2OUbqhG3iBUpd_TPe5MZRj8cfLc0b8Skt8rhC3I38kVLY9SS8P3kLWFcH",
+ AppKey = "ding8nmegrbi29a78ze0",
+ AppSecret = "CwWeKXzItBJktsVhGoZi73Ts79bP8qp3FuLmS5PtJgNmMxrWFaqdQQTY0RqCRQSC",
};
try
@@ -99,7 +103,7 @@
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest processForecastRequest = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest
{
- ProcessCode = "PROC-BBA5632D-DC7C-4267-A3E2-757E2B7023BC",
+ ProcessCode = "PROC-4F4B3976-BA15-47EF-9A3C-3A07AC07DFEA",
DeptId = 1,
UserId = "923188102",
FormComponentValues = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.ProcessForecastRequest.ProcessForecastRequestFormComponentValues>
@@ -114,14 +118,93 @@
}
catch (TeaException err)
{
-
- return $"TeaException: Code={err.Code}, Message={err.Message}";
-
+
+ return $"TeaException: Code={err.Code}, Message={err.Message}";
+
}
catch (Exception _err)
{
return $"Exception: {_err.Message}";
}
+ }
+
+ /**
+ * 鑾峰彇userid
+ * @return string 杩斿洖鍚姩缁撴灉
+ */
+ public HttpClient _httpClient;
+ public string DingTalkService()
+ {
+ _httpClient = new HttpClient();
+ _httpClient.Timeout = TimeSpan.FromSeconds(30);
+ return "1";
+ }
+
+ public async Task<string> GetUserId(string phone)
+ {
+ // 鍙傛暟楠岃瘉
+ if (string.IsNullOrWhiteSpace(phone))
+ throw new ArgumentException("鎵嬫満鍙蜂笉鑳戒负绌�", nameof(phone));
+
+ // 鑾峰彇璁块棶浠ょ墝
+ string accessToken = GetToken();
+
+ // 璋冪敤鐜版湁鏂规硶
+ return await GetUserIdByMobile(accessToken, phone);
+ }
+
+
+
+ public async Task<string> GetUserIdByMobile(string accessToken, string mobile)
+ {
+ // 鍙傛暟楠岃瘉
+ if (string.IsNullOrWhiteSpace(accessToken))
+ throw new ArgumentException("Access token cannot be empty", nameof(accessToken));
+
+ if (string.IsNullOrWhiteSpace(mobile) || !IsValidMobile(mobile))
+ throw new ArgumentException("Invalid mobile number", nameof(mobile));
+
+ try
+ {
+ // 鏋勯�犺姹俇RL
+ var url = $"https://oapi.dingtalk.com/topapi/v2/user/getbymobile?access_token={accessToken}";
+
+ string m = DingTalkService();
+
+ // 鏋勯�犺姹備綋
+ var requestBody = new { mobile };
+ var jsonContent = JsonConvert.SerializeObject(requestBody);
+ var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
+
+ // 鍙戦�佽姹�
+ var response = await _httpClient.PostAsync(url, content);
+
+ // 澶勭悊鍝嶅簲
+ response.EnsureSuccessStatusCode();
+
+ var responseBody = await response.Content.ReadAsStringAsync();
+ var result = JsonConvert.DeserializeObject<DingTalkResponse>(responseBody);
+
+ // 澶勭悊涓氬姟閫昏緫閿欒
+ if (result?.Errcode != 0)
+ throw new DingTalkApiException(result?.Errcode ?? -1, result?.Errmsg ?? "Unknown error");
+
+ return result?.Result?.UserId ?? throw new InvalidOperationException("User ID not found in response");
+ }
+ catch (HttpRequestException ex)
+ {
+ throw new DingTalkApiException(500, $"HTTP request failed: {ex.Message}", ex);
+ }
+ catch (JsonException ex)
+ {
+ throw new DingTalkApiException(500, $"JSON parsing failed: {ex.Message}", ex);
+ }
+ }
+
+ private bool IsValidMobile(string mobile)
+ {
+ // 绠�鍗曠殑鎵嬫満鍙锋牸寮忛獙璇�
+ return !string.IsNullOrEmpty(mobile) && mobile.Length == 11 && mobile.StartsWith("1");
}
@@ -132,19 +215,22 @@
public string GetProcessNo(GetQcIssueResultDetail getQcIssueResultDetail)
{
-
var db = SqlSugarHelper.GetInstance();
- var mapping = db.Queryable<DingNameCode>()
- .Where(t => t.DingDingName == getQcIssueResultDetail.Fname)
+
+ var stafflist = db.Queryable<DingNameCode>()
+ .Where(t => t.STAFF_NO == getQcIssueResultDetail.StaffNo)
.Select(t => new DingNameCode
{
- DingDingCode=t.DingDingCode,
+ STAFF_NAME = t.STAFF_NAME,
+ PHONE_NUMBER = t.PHONE_NUMBER
})
.ToList();
- if (mapping.Any())
- {
- string UserId = mapping.FirstOrDefault().DingDingCode;
+ if (stafflist.Any())
+ {
+ Task<string> task = GetUserId(stafflist[0].PHONE_NUMBER);
+ string UserId = task.Result;
+ string applicationUser = $"[\"{UserId}\"]";
// 浣跨敤 JSON 搴忓垪鍖栬緭鍑哄璞$殑璇︾粏鍐呭
string getQcIssueResultDetailJson = JsonConvert.SerializeObject(getQcIssueResultDetail, Formatting.Indented);
@@ -163,68 +249,69 @@
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,
+ Name = "TextField_K5AVR59BD28",
+ Value = getQcIssueResultDetail.ItemNo,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues2 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextField_DYFD1EESLVC0",
- Value = getQcIssueResultDetail.ItemModel,
+ Name = "TextField_1LW382XRH1DS0",
+ Value = getQcIssueResultDetail.ItemName,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues3 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextField_1AVN2BNVY1OG0",
+ Name = "NumberField_UKE91Z101BK0",
Value = getQcIssueResultDetail.FbatchQty,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues4 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextField_1DKEMESOOGSG0",
+ Name = "TextField_1QM2NWE9T3Y80",
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"),
+ Name = "TextField_1DAQ9890FDWG0",
+ Value = getQcIssueResultDetail.AppicationReason,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues6 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextField_WBNBWGFHR000",
- Value = getQcIssueResultDetail.CgOrder,
+ Name = "DDSelectField_76Z6HC5W1F0",
+ Value = getQcIssueResultDetail.BadReason,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues7 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextareaField_1ZP3BDPMYY800",
+ Name = "TextField_3B85TFIK9Z60",
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,
+ Name = "InnerContactField_WVZLUIPZ9J40",
+ Value = applicationUser,
+
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues9 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "DDSelectField_1AK82Q8A2NB40",
- Value = "閫�璐�",
+ Name = "DDSelectField_1AL6MWUUUOHS0",
+ Value = getQcIssueResultDetail.IqcStatus,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues10 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextareaField_1LM82CPPR35S0",
- Value = "鎸戦�夊唴瀹�",
+ Name = "DepartmentField_10ZVNJNJCRJK0",
+ Value = getQcIssueResultDetail.Department,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues11 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextareaField_AK4JLDDNS2O0",
- Value = "璁╂鎺ユ敹鍐呭",
+ Name = "DDSelectField_HG2SQUPO2NK0",
+ Value = getQcIssueResultDetail.WorkShop,
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues12 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextareaField_K69R6770WLS0",
- Value = "閫�璐у娉�",
+ Name = "DDPhotoField_QD15KYR764G0",
+ Value = "娴嬭瘯涓嶈壇鍥剧墖",
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues13 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
- Name = "TextareaField_194UFGLMI02O0",
- Value = "鎶ュ簾澶囨敞",
+ Name = "DDAttachment_GLZLFSIWK9S0",
+ Value = "闄勪欢",
};
AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues formComponentValues14 = new AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestFormComponentValues
{
@@ -245,42 +332,42 @@
{
ActionerKey = "null",
ActionerUserIds = new List<string>
- {
- UserId
- },
+ {
+ 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>
- {
- UserId
- },
+ {
+ 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",
+ ProcessCode = "PROC-4F4B3976-BA15-47EF-9A3C-3A07AC07DFEA",
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
- },
+ {
+ formComponentValues1,formComponentValues2,formComponentValues3, formComponentValues4, formComponentValues5, formComponentValues6, formComponentValues7, formComponentValues8,
+ formComponentValues9, formComponentValues11
+ },
TargetSelectActioners = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestTargetSelectActioners>
- {
- targetSelectActioners0
- },
+ {
+ targetSelectActioners0
+ },
Approvers = new List<AlibabaCloud.SDK.Dingtalkworkflow_1_0.Models.StartProcessInstanceRequest.StartProcessInstanceRequestApprovers>
- {
- approvers0
- },
+ {
+ approvers0
+ },
CcList = new List<string>
- {
- UserId
- },
+ {
+ UserId
+ },
CcPosition = "START",
};
@@ -307,8 +394,9 @@
return $"Exception: {_err.Message}";
}
}
- else {
- return "鎮ㄤ笉鏄叕鍙告垚鍛樻垨杩樻湭琚姞鍏ュ埌鏁版嵁搴撲腑鎴栧悕瀛楀~鍐欓敊璇紝鎬讳箣鏈壘鍒板尮閰嶇殑鐢ㄦ埛淇℃伅";
+ else
+ {
+ return "鏌ヤ笉鍒版偍鐨勬墜鏈哄彿";
}
}
@@ -316,22 +404,45 @@
/**
* 灏嗗甫鏈夋祦绋嬪彿鍜屾楠屽崟鍙风殑鏂拌褰曟彃鍏ヨ〃涓�
*/
- public dynamic SaveProcessNo(string ReleaseNo,string ProcessNo)
+ public dynamic SaveProcessNo(string ReleaseNo, string ProcessNo, string StaffNo, string Department)
{
-
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)
{
var QcIssueResults = new QcIssueResults
{
- ProcessNo = ProcessNo,
+ INSTANCEID = ProcessNo,
ReleaseNo = ReleaseNo,
QcStatu = ""
};
@@ -339,33 +450,85 @@
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 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
};
return mesQcIssueResults;
@@ -379,7 +542,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,
@@ -388,7 +551,7 @@
if (mapping.Any())
{
- if (qcIssueResults.QcStatu=="鎷掔粷")
+ if (qcIssueResults.QcStatu == "鎷掔粷")
{
string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
@@ -397,9 +560,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
+
})
- .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+ .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
.ExecuteCommand();
// 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
@@ -411,41 +586,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)
{
@@ -458,7 +620,8 @@
throw new Exception("鏈壘鍒伴渶瑕佹洿鏂扮殑璁板綍");
}
}
- else{
+ else
+ {
string ReleaseNo = mapping.FirstOrDefault().ReleaseNo;
// 鍙洿鏂� ReleaseNo 鍜� FReview 涓や釜瀛楁
@@ -466,9 +629,22 @@
.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
+
+
})
- .Where(t => t.ProcessNo == qcIssueResults.ProcessNo) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
+ .Where(t => t.INSTANCEID == qcIssueResults.INSTANCEID) // 鏄惧紡鎸囧畾鏇存柊鏉′欢
.ExecuteCommand();
// 鏌ヨ UpdateMesQaItems 琛ㄤ腑鏄惁瀛樺湪鍖归厤鐨勮褰�
@@ -481,7 +657,7 @@
if (existingRecord != null)
{
// 鏇存柊 UpdateMesQaItems 琛ㄤ腑鐨勫瓧娈�
- existingRecord.FngHandle = qcIssueResults.FReview;
+ existingRecord.FngHandle = qcIssueResults.REVIEWSTATUS;
if (existingRecord.FngHandle == "閫�璐�")
{
existingRecord.FMRMODE = "閫�鏂欒ˉ鏂�";
@@ -493,6 +669,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
}
@@ -511,6 +725,40 @@
}
}
+}
-
+// 鍝嶅簲妯″瀷
+public class DingTalkResponse
+{
+ [JsonProperty("errcode")]
+ public int Errcode { get; set; }
+
+ [JsonProperty("errmsg")]
+ public string Errmsg { get; set; }
+
+ [JsonProperty("result")]
+ public UserResult Result { get; set; }
+}
+
+public class UserResult
+{
+ [JsonProperty("userid")]
+ public string UserId { get; set; }
+}
+
+// 鑷畾涔夊紓甯�
+public class DingTalkApiException : Exception
+{
+ public int ErrorCode { get; }
+
+ public DingTalkApiException(int errorCode, string message) : base(message)
+ {
+ ErrorCode = errorCode;
+ }
+
+ public DingTalkApiException(int errorCode, string message, Exception innerException)
+ : base(message, innerException)
+ {
+ ErrorCode = errorCode;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3