From 770f02888443c1be46549f164abfd3be78a3dbd3 Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期二, 25 十一月 2025 09:42:22 +0800
Subject: [PATCH] 1.标准版更新(20251125)
---
service/QC/OaApi.cs | 171 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 116 insertions(+), 55 deletions(-)
diff --git a/service/QC/OaApi.cs b/service/QC/OaApi.cs
index 98bba9c..67e5712 100644
--- a/service/QC/OaApi.cs
+++ b/service/QC/OaApi.cs
@@ -23,9 +23,13 @@
public class OaApiService : Repository<dynamic>
{
private readonly HttpClient _httpClient;
- private const string AppId = "303233EF-AC39-40C1-8364-AC989C6258A5";
- private const string BaseUrl = "http://192.168.1.149:8099/api/ec/dev/auth/";
- private const string WorkflowUrl = "http://192.168.1.149:8099/api/workflow/paService/doCreateRequest";
+ //private const string AppId = "303233EF-AC39-40C1-8364-AC989C6258A5";
+ //private const string BaseUrl = "http://192.168.1.149:8099/api/ec/dev/auth/";
+ //private const string WorkflowUrl = "http://192.168.1.149:8099/api/workflow/paService/doCreateRequest";
+
+ private const string AppId = "AB7F0461-89C3-4EAD-B5B5-B7D540617921";
+ private const string BaseUrl = "http://192.168.1.20:80/api/ec/dev/auth/";
+ private const string WorkflowUrl = "http://192.168.1.20:80/api/workflow/paService/doCreateRequest";
public OaApiService()
{
@@ -54,15 +58,47 @@
// 2. 鑾峰彇璁块棶浠ょ墝
var tokenResult = ApplyTokenAsync(secret, spk);
var token = tokenResult["token"].ToString();
+ string oaUserId = "";
+ using (var conn = new SqlConnection(DbHelperSQL.strConn))
+ {
+ using (var cmd = new SqlCommand("select_oa_userid", conn))
+ {
+
+ try
+ {
+ conn.Open();
+ cmd.CommandType = CommandType.StoredProcedure;
+ cmd.Parameters.Add(new SqlParameter("@guid", SqlDbType.VarChar, 100) { Value = queryObj.qcczdGuid.ToString() });
+
+ using (var reader = cmd.ExecuteReader())
+ {
+ if (reader.Read())
+ {
+ oaUserId = reader["result"]?.ToString();
+ }
+ }
+ }
+ catch (Exception logEx)
+ {
+ Console.WriteLine($"鑾峰彇OA鐢ㄦ埛ID澶辫触: {logEx.Message}");
+ }
+ finally
+ {
+ conn.Close();
+ }
+ }
+ }
// 3. 鍑嗗璇锋眰澶达紙绉婚櫎Content-Type璁剧疆锛�
_httpClient.DefaultRequestHeaders.Clear();
_httpClient.DefaultRequestHeaders.Add("token", token);
_httpClient.DefaultRequestHeaders.Add("appid", AppId);
- _httpClient.DefaultRequestHeaders.Add("userid", RSAEncrypt("1268", spk));
+ _httpClient.DefaultRequestHeaders.Add("userid", RSAEncrypt(oaUserId, spk));
// 4. 鏋勫缓璇锋眰浣�
var requestData = BuildRequestData(queryObj);
+
+ //var A = JObject.FromObject(requestData).ToString();
// 5. 鍙戦�佽姹�
var response = PostForm(WorkflowUrl, requestData);
@@ -160,7 +196,7 @@
{
{"mainData", BuildMainData(queryObj)},
{"requestName", $"IQC寮傚父澶勭疆鍗曟祦绋�-{DateTime.Now:yyyyMMddHHmmss}"},
- {"workflowId", "379"},
+ {"workflowId", "602"},//娴嬭瘯锛�379 姝e紡锛�600->602
//{"otherParams", BuildOtherParams()},
{"detailData", BuildDetailData(queryObj)}
};
@@ -243,7 +279,7 @@
WHERE pGuid = @guid";
var fileData = Db.Ado.SqlQuery<dynamic>(fileSql, new { guid = queryObj.qcczdGuid });
- var files = CreateFileData(fileData);
+ var files = fileData.Count > 0 ? CreateFileData(fileData) : null; // 鏂板
// 娣诲姞鏂囦欢瀛楁
result.Add(new JObject
@@ -372,57 +408,82 @@
private JArray BuildDetailData(dynamic queryObj)
{
- // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
- const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
- chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
- from Mes_QC_Exceptional_Detail A
- LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
- LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
- WHERE pGuid = @guid";
-
- var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
-
- var tableRecords = new JArray();
-
- // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
- foreach (var record in details ?? Enumerable.Empty<dynamic>())
+ // 灏嗙洿鎺QL鏌ヨ鏇挎崲涓哄瓨鍌ㄨ繃绋嬭皟鐢�
+ var parameters = new[]
{
- // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
- var fields = new JArray
- {
- //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
- new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
- new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
- new JObject {
- ["fieldName"] = "jydrq",
- // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
- ["fieldValue"] = (record.jydrq != null
- ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ")
- : DateTime.Now.ToString("yyyy-MM-dd"))
- },
- // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
- // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
- new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
- new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
- new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
- new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
- };
-
- tableRecords.Add(new JObject
- {
- ["recordOrder"] = 0, // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
- ["workflowRequestTableFields"] = fields
- });
- }
-
- return new JArray
- {
- new JObject
- {
- ["tableDBName"] = "formtable_main_33_dt1",
- ["workflowRequestTableRecords"] = tableRecords
- }
+ new SugarParameter("@pi_guid", queryObj.qcczdGuid),
+ new SugarParameter("@inP1", null),
+ new SugarParameter("@inP2", null),
+ new SugarParameter("@inP3", null),
+ new SugarParameter("@inP4", null)
};
+
+ try
+ {
+ var details = Db.Ado.SqlQuery<dynamic>(
+ "EXEC select_oa_BuildDetailData @pi_guid,@inP1,@inP2,@inP3,@inP4",
+ parameters);
+
+
+ var tableRecords = new JArray();
+
+ // 閬嶅巻姣忔潯鏄庣粏鏁版嵁
+ foreach (var record in details ?? Enumerable.Empty<dynamic>())
+ {
+ // 淇瀛楁绫诲瀷杞崲锛堟暟鍊肩被鍨嬪幓闄ゅ瓧绗︿覆鍖呰9锛�
+ var fields = new JArray
+ {
+ //new JObject { ["fieldName"] = "xh", ["fieldValue"] = record.xh?.ToString() ?? "" },
+ new JObject { ["fieldName"] = "jydh", ["fieldValue"] = record.jydh?.ToString() ?? "" },
+ new JObject { ["fieldName"] = "jyr", ["fieldValue"] = record.jyr?.ToString() ?? "" },
+ new JObject { ["fieldName"] = "xblb", ["fieldValue"] = record.xblb?.ToString() ?? "" },
+ new JObject {
+ ["fieldName"] = "jydrq",
+ // 鏍煎紡鍖栦负"yyyy-MM-dd"瀛楃涓�
+ ["fieldValue"] = (record.jydrq != null
+ ? Convert.ToDateTime(record.jydrq).ToString("yyyy-MM-dd ")
+ : DateTime.Now.ToString("yyyy-MM-dd"))
+ },
+ // 鏁板�煎瓧娈典繚鎸佹暟瀛楃被鍨嬭�岄潪瀛楃涓�
+ // 淇鏁板�肩被鍨嬭浆鎹㈡柟寮�
+ new JObject { ["fieldName"] = "sjsl", ["fieldValue"] = (float)(record.sjsl ?? 0m) },
+ new JObject { ["fieldName"] = "cys", ["fieldValue"] = (float)(record.cys ?? 0) },
+ new JObject { ["fieldName"] = "bls", ["fieldValue"] = (float)(record.bls ?? 0) },
+ new JObject { ["fieldName"] = "bll", ["fieldValue"] = 1, }
+ };
+
+ tableRecords.Add(new JObject
+ {
+ ["recordOrder"] = 0, // 瀹為檯涓氬姟涓彲鑳介渶瑕佹牴鎹鍙疯缃�
+ ["workflowRequestTableFields"] = fields
+ });
+ }
+
+ return new JArray
+ {
+ new JObject
+ {
+ ["tableDBName"] = "formtable_main_321_dt1",//娴嬭瘯锛歠ormtable_main_33_dt1
+ ["workflowRequestTableRecords"] = tableRecords
+ }
+ };
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"鏌ヨ寮傚父鏄庣粏澶辫触: {ex.Message}");
+ }
+
+ // // 浣跨敤鍙傛暟鍖栨煡璇㈣幏鍙栨槑缁嗘暟鎹�
+ // const string mainSql = @"select ROW_NUMBER() over (ORDER BY Jy_Date) AS xh,releaseNo AS jydh, Jy_Date AS jydrq, batchQty as sjsl,
+ // chouQty AS cys, badQty AS bls, badProb AS bll,C.USER_NAME AS jyr
+ // from Mes_QC_Exceptional_Detail A
+ // LEFT JOIN MES_QA_ITEMS_DETECT_01 B ON A.releaseNo = B.release_no
+ // LEFT JOIN SYS_USER C ON C.ACCOUNT = B.fcheck_by
+ // WHERE pGuid = @guid";
+
+ // var details = Db.Ado.SqlQuery<dynamic>(mainSql, new { guid = queryObj.qcczdGuid });
+
+
}
private JObject BuildOtherParams()
--
Gitblit v1.9.3