private void _GatherISOForm(IFormExport export) { var entities = this.GetDbContext <ProjectEntities>(); var isoDefineList = this.S_I_ProjectInfo.ProjectMode.S_T_ISODefine.ToList(); SQLHelper sqlHeper = SQLHelper.CreateSqlHelper(ConnEnum.Base); var existFolderList = this.AllChildren; var dbsConfig = this.S_I_ProjectInfo.ProjectMode.S_T_DBSDefine.FirstOrDefault(d => d.ID == this.ConfigDBSID); if (dbsConfig == null) { return; } var configStructList = _initProductFoderConfig(); foreach (var isoDefine in isoDefineList) { if (string.IsNullOrEmpty(isoDefine.FormCode)) { continue; } if (configStructList.Count > 0) { _createISOMappingFolder(this, "", configStructList, existFolderList, isoDefine, dbsConfig, export); } else { _createISOForm(isoDefine, this, export); } } }
/// <summary> /// /// </summary> public void GatherDocuments(IFormExport export) { if (this.DBSType != Project.Logic.DBSType.Mapping.ToString()) { throw new Formula.Exceptions.BusinessException("只有映射目录可以调用资料收集方法"); } if (this.MappingType == Project.Logic.DBSMappingType.Product.ToString()) { _GatherProducts(); } else if (this.MappingType == Project.Logic.DBSMappingType.ISO.ToString()) { _GatherISOForm(export); } else if (this.MappingType == Project.Logic.DBSMappingType.DesignInput.ToString()) { _GatherInput(); } //else if (this.MappingType == Project.Logic.DBSMappingType.Cooperation.ToString()) //{ // _GatherCoopration(); //} }
void _createISOMappingFolder(S_D_DBS parent, string parentDefineCode, List <Dictionary <string, object> > folderDefines, List <S_D_DBS> existFolderList, S_T_ISODefine objMode, S_T_DBSDefine defineInfo, IFormExport export) { var folderDefine = folderDefines.FirstOrDefault(d => d["ParentID"].ToString() == parentDefineCode); if (folderDefine == null) { return; } var value = objMode.GetPropertyString(folderDefine.GetValue("FieldName")); if (String.IsNullOrEmpty(value)) { return; } if (!String.IsNullOrEmpty(folderDefine.GetValue("EnumKey"))) { var enumService = FormulaHelper.GetService <IEnumService>(); value = enumService.GetEnumText(folderDefine.GetValue("EnumKey"), value); } var folder = existFolderList.FirstOrDefault(d => d.Name == value && d.ParentID == parent.ID); if (folder == null) { folder = new S_D_DBS(); folder.ID = FormulaHelper.CreateGuid(); folder.Name = value; folder.DBSCode = objMode.ID; folder.DBSType = Project.Logic.DBSType.Mapping.ToString(); folder.ConfigDBSID = defineInfo.ID + "." + folderDefine.GetValue("FieldName"); folder.ArchiveFolder = folderDefine.GetValue("ArchiveFolder"); folder.MappingType = parent.MappingType; folder.ArchiveFolderName = folderDefine.GetValue("ArchiveFolderName"); folder.SortIndex = objMode.SortIndex; parent.AddChild(folder); existFolderList.Add(folder); } bool addOnDocument = Convert.ToBoolean(folderDefine.GetValue("AddProduct")); if (addOnDocument) { if (folder.DBSCode == objMode.ID) { _createISOForm(objMode, folder, export); } } }
void _createISOForm(S_T_ISODefine isoDefine, S_D_DBS fileFolder, IFormExport export) { var entities = this.GetDbContext <ProjectEntities>(); var db = SQLHelper.CreateSqlHelper(isoDefine.ConnName); string sql = "select * from {0} where ProjectInfoID like '%{1}%' and FlowPhase='End'"; var table = db.ExecuteDataTable(String.Format(sql, isoDefine.TableName, this.ProjectInfoID)); foreach (DataRow isoRow in table.Rows) { #region 创建ISO表单 var enumDefList = new List <Dictionary <string, object> >(); if (!String.IsNullOrEmpty(isoDefine.EnumFieldInfo)) { enumDefList = JsonHelper.ToList(isoDefine.EnumFieldInfo); } string name = Function.ReplaceRegString(isoDefine.NameFieldInfo, FormulaHelper.DataRowToDic(isoRow), enumDefList); var doc = fileFolder.S_D_Document.FirstOrDefault(d => d.RelateID == isoRow["ID"].ToString()); var archiveFields = String.IsNullOrEmpty(isoDefine.ArchiveFields) ? "" : isoDefine.ArchiveFields; var isoDic = FormulaHelper.DataRowToDic(isoRow); var archiveAttachFields = archiveFields.Split(','); if (doc == null) { doc = entities.S_D_Document.Create(); doc.ID = FormulaHelper.CreateGuid(); doc.Name = name; doc.Attr = JsonHelper.ToJson(isoDic); doc.Catagory = isoDefine.Name; doc.MajorValue = isoDic.GetValue("MajorValue"); var pdfFiles = export.ExportPDF(isoDefine.Name, isoRow["ID"].ToString(), isoDefine.FormCode); doc.Code = isoDic.GetValue("SerialNumber"); doc.Version = isoDic.GetValue("VersionNumber"); doc.MainFiles = pdfFiles; doc.PDFFile = pdfFiles; doc.RelateID = isoRow["ID"].ToString(); doc.RelateTable = isoDefine.TableName; doc.CreateUser = isoDic.GetValue("CreateUser"); doc.CreateUserID = isoDic.GetValue("CreateUserID"); doc.State = "Normal"; foreach (var field in archiveAttachFields) { if (string.IsNullOrEmpty(isoDic.GetValue(field))) { continue; } doc.Attachments += isoDic.GetValue(field) + ","; } if (!string.IsNullOrEmpty(doc.Attachments)) { doc.Attachments = doc.Attachments.TrimEnd(','); } fileFolder.AddDocument(doc); //doc.AddDocumentVersion(); } else if (string.IsNullOrEmpty(doc.MainFiles)) { var pdfFiles = export.ExportPDF(isoDefine.Name, isoRow["ID"].ToString(), isoDefine.FormCode); doc.MainFiles = pdfFiles; doc.PDFFile = pdfFiles; foreach (var field in archiveAttachFields) { if (string.IsNullOrEmpty(isoDic.GetValue(field))) { continue; } doc.Attachments += isoDic.GetValue(field) + ","; } if (!string.IsNullOrEmpty(doc.Attachments)) { doc.Attachments = doc.Attachments.TrimEnd(','); } } #endregion } }