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/PLM/PLMManager.cs | 139 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 133 insertions(+), 6 deletions(-) diff --git a/MES.Service/service/PLM/PLMManager.cs b/MES.Service/service/PLM/PLMManager.cs index 315c03b..9a0bc58 100644 --- a/MES.Service/service/PLM/PLMManager.cs +++ b/MES.Service/service/PLM/PLMManager.cs @@ -1,18 +1,39 @@ 锘縰sing Kingdee.CDP.WebApi.SDK; using MES.Service.Dto.webApi.PLM; -using Newtonsoft.Json; +using System.Diagnostics; using System.Text; namespace MES.Service.service.PLM; public class PLMManager { - public List<BaseObject> RetrieveDrawings(string ItemNo) + public List<StdDocument> RetrieveDrawings(string ItemNo) { - return GetPlmCfgBase(ItemNo); + List<BaseObject> baseObjects = GetPlmCfgBase(ItemNo); + Debug.WriteLine($"绗竴瀹屾暣鍐呭锛圝SON锛�: {Newtonsoft.Json.JsonConvert.SerializeObject(baseObjects, Newtonsoft.Json.Formatting.Indented)}"); + + // 妫�鏌ヨ繑鍥炵粨鏋滄槸鍚︿负绌� + if (baseObjects == null || !baseObjects.Any()) + { + throw new NotImplementedException("杩斿洖缁撴灉涓虹┖"); + } + else + { + List<RelatedObject> relatedObjects = GetPlmCfgRelatedObject(baseObjects[0].FID); + Debug.WriteLine($"绗簩瀹屾暣鍐呭锛圝SON锛�: {Newtonsoft.Json.JsonConvert.SerializeObject(relatedObjects, Newtonsoft.Json.Formatting.Indented)}"); + + // 妫�鏌ヨ繑鍥炵粨鏋滄槸鍚︿负绌� + if (relatedObjects == null || !relatedObjects.Any()) + { + throw new NotImplementedException("杩斿洖缁撴灉涓虹┖"); + } + List<StdDocument> stdDocuments = GetPlmStdDocument(relatedObjects); + return stdDocuments; + } + } - + #region 1.閫氳繃鐗╂枡缂栫爜锛堥渶瑕佸敮涓�锛夎幏鍙栫墿鏂檌d public List<BaseObject> GetPlmCfgBase(string ItemNo) { //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃�� @@ -29,7 +50,109 @@ //string fieldKeys = "FCode,FFileId,FRelevantObject"; //string FilterString = "FID='-2146304'"; string fieldKeys = "FID,FCode,FName"; - string FilterString = "FCode='5.03.14.1414'"; + string FilterString = string.Format(@"FCode='{0}'", ItemNo); + string OrderString = ""; + int TopRowCount = 0; + int StartRow = 0; + int Limit = 0; + + var param = new QueryParam() + { + FormId = formId, + FieldKeys = fieldKeys, + FilterString = FilterString, + OrderString = OrderString, + TopRowCount = TopRowCount, + StartRow = StartRow, + Limit = Limit + }; + //璋冪敤鎺ュ彛 + var result = client.ExecuteBillQuery(param.ToJson()); + Debug.WriteLine($"绗竴涓厓绱犲唴瀹�: {result}"); + + return result.Select(s => + { + var entity = new BaseObject + { + FID = (long)s[0], + FCode = (string)s[1], + FName = (string)s[2], + }; + return entity; + }).ToList(); + } + #endregion + + #region 2.閫氳繃鐗╂枡id鑾峰彇鐩稿叧瀵硅薄銆愪笅杞介渶瑕佺殑鏂囨。銆戠殑id + public List<RelatedObject> GetPlmCfgRelatedObject(long? FRelatedObject) + { + //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃�� + //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆� + //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK + K3CloudApi client = new K3CloudApi(); + //鐢ㄤ簬璁板綍缁撴灉 + StringBuilder Info = new StringBuilder(); + //涓氬姟瀵硅薄鏍囪瘑 + //string formId = "PLM_STD_DOCUMENT"; + string formId = "PLM_CFG_RELATEDOBJECT"; + DateTime dt = DateTime.Now; + //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚� + //string fieldKeys = "FCode,FFileId,FRelevantObject"; + //string FilterString = "FID='-2146304'"; + string fieldKeys = "FID,FRE_FCode,FRelatedObject"; + string FilterString = string.Format(@"FRelatedObject='{0}'", FRelatedObject); + string OrderString = ""; + int TopRowCount = 0; + int StartRow = 0; + int Limit = 0; + + var param = new QueryParam() + { + FormId = formId, + FieldKeys = fieldKeys, + FilterString = FilterString, + OrderString = OrderString, + TopRowCount = TopRowCount, + StartRow = StartRow, + Limit = Limit + }; + //璋冪敤鎺ュ彛 + var result = client.ExecuteBillQuery(param.ToJson()); + Debug.WriteLine(result); + + return result.Select(s => + { + var entity = new RelatedObject + { + FID = (long)s[0], + FRE_FCode = (string)s[1], + FRelatedObject = (long)s[2], + }; + return entity; + }).ToList(); + } + #endregion + + #region 3.鏍规嵁鏂囨。id鑾峰彇鏂囨。鐗╃悊鏂囦欢id + public List<StdDocument> GetPlmStdDocument(List<RelatedObject> relatedObjects) + { + //娉ㄦ剰 1锛氭澶勪笉鍐嶄娇鐢ㄥ弬鏁板舰寮忎紶鍏ョ敤鎴峰悕鍙婂瘑鐮佺瓑鏁忔劅淇℃伅锛屾敼涓哄湪鐧诲綍閰嶇疆鏂囦欢涓缃�� + //娉ㄦ剰 2锛氬繀椤诲厛閰嶇疆绗笁鏂圭郴缁熺櫥褰曟巿鏉冧俊鎭悗锛屽啀杩涜涓氬姟鎿嶄綔锛岃鎯呭弬鑰冨悇璇█鐗堟湰SDK浠嬬粛涓殑鐧诲綍閰嶇疆鏂囦欢璇存槑銆� + //璇诲彇閰嶇疆锛屽垵濮嬪寲SDK + K3CloudApi client = new K3CloudApi(); + //鐢ㄤ簬璁板綍缁撴灉 + StringBuilder Info = new StringBuilder(); + //涓氬姟瀵硅薄鏍囪瘑 + string formId = "PLM_STD_DOCUMENT"; + DateTime dt = DateTime.Now; + //鏌ヨ瀛楁闆嗗悎锛屽嵆杩斿洖鍝簺鏁版嵁锛屼笉鑳戒负绌猴紝鏍规嵁涓嶅悓涓氬姟鍗曟嵁濉啓涓嶅悓鐨勫瓧娈靛悕锛屼互涓嬩粎涓虹ず渚� + string fieldKeys = "FID,FCode,FName,FPhysicalFileName,FFileId,FRelevantObject"; + // 鎻愬彇 FID 鍊� + var fidList = relatedObjects.Select(obj => obj.FID.ToString()).ToList(); + // 灏� FID 鍊肩敤閫楀彿鍒嗛殧锛屽苟鍖呰9鍦ㄥ崟寮曞彿涓� + string fids = string.Join(",", fidList.Select(fid => $"'{fid}'")); + // 鏋勫缓 FilterString + string FilterString = $"FID in ({fids})"; string OrderString = ""; int TopRowCount = 0; int StartRow = 0; @@ -50,13 +173,17 @@ return result.Select(s => { - var entity = new BaseObject + var entity = new StdDocument { FID = (long)s[0], FCode = (string)s[1], FName = (string)s[2], + FPhysicalFileName = (string)s[3], + FFileId = (string)s[4], + FRelevantObject = (string)s[5], }; return entity; }).ToList(); } + #endregion } -- Gitblit v1.9.3