| | |
| | | |
| | | public class PLMManager |
| | | { |
| | | public List<BaseObject> RetrieveDrawings(string ItemNo) |
| | | public List<StdDocument> RetrieveDrawings(string ItemNo) |
| | | { |
| | | return GetPlmCfgBase(ItemNo); |
| | | List<BaseObject> baseObjects = GetPlmCfgBase(ItemNo); |
| | | |
| | | List<RelatedObject> relatedObjects = GetPlmCfgRelatedObject(baseObjects[0].FID); |
| | | |
| | | // 检查返回结果是否为空 |
| | | if (relatedObjects == null || !relatedObjects.Any()) |
| | | { |
| | | throw new NotImplementedException("返回结果为空"); |
| | | } |
| | | List<StdDocument> stdDocuments = GetPlmStdDocument(relatedObjects); |
| | | return stdDocuments; |
| | | } |
| | | |
| | | |
| | |
| | | //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; |
| | |
| | | return entity; |
| | | }).ToList(); |
| | | } |
| | | |
| | | 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()); |
| | | |
| | | return result.Select(s => |
| | | { |
| | | var entity = new RelatedObject |
| | | { |
| | | FID = (long)s[0], |
| | | FRE_FCode = (string)s[1], |
| | | FRelatedObject = (long)s[2], |
| | | }; |
| | | return entity; |
| | | }).ToList(); |
| | | } |
| | | |
| | | 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 值用逗号分隔,并包裹在单引号中 |
| | | string fids = string.Join(",", fidList.Select(fid => $"'{fid}'")); |
| | | // 构建 FilterString |
| | | string FilterString = $"FID in ({fids})"; |
| | | 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()); |
| | | |
| | | return result.Select(s => |
| | | { |
| | | 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(); |
| | | } |
| | | } |