Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
 /// <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();
     //}
 }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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
            }
        }