#pragma once #include "DAO.h" namespace DBPlatformSpace { class TaskDAO; ///项目(文件名暂定为.ccsp) class ProjectDAO : public subDBDAO// totalDAO { public: string _folderPath; ///<工程文件夹路径 string _projectFileName; ///<项目文件名 string _openTime; ///<最后打开时间 // [3/29/2021 wwu] // 弃用 [3/31/2021 wwu] string _createTime; ///<建立时间(数据平台保存) string _updateTime; ///<更新时间(上应用保存) // [3/31/2021 wwu] int _createYear; ///<建立年 int _createMonth; ///<建立月 int _createDay; ///<建立日 int _createHour; ///<建立时 int _createMin; ///<建立分 int _createSec; ///<建立秒 int _editYear; ///<编辑年 int _editMonth; ///<编辑月 int _editDay; ///<编辑日 int _editHour; ///<编辑时 int _editMin; ///<编辑分 int _editSec; ///<编辑秒 int _openYear; ///<打开年 int _openMonth; ///<打开月 int _openDay; ///<打开日 int _openHour; ///<打开时 int _openMin; ///<打开分 int _openSec; ///<打开秒 int _validity; ///<1 -- 正常 0 --项目数据不可用 -1 --项目所属文件夹不存在 int _shipType_T; ///<船型_T string _applicableRules_T; ///<适用规范_T // [6/22/2021 wwu] //int _ruleVersion; ///<规范版本 string _ruleVersion; ///<规范版本 // [5/28/2022 wwu] int _sectionTipical; ///<典型横剖面类型 // [4/26/2021 wwu] int _fixed; ///<固定非固定 /*string _fileName;*/ // [1/6/2022 wwu] string _calculationCompany; ///<计算单位 string _calculator; ///<计算者 string _modeler; ///<建模者 string _planApprovalNo; ///<审图控制号 // [5/9/2022 wwu] string _dB_MVersion; ///<新建时元模型版本 string _dP_RVersion; ///<建立时的数据平台发布版本 // [5/10/2022 wwu] int _upgrade; ///<数据升级情况 (0 未升级 =1 已升级) ODI ProjectDAO(); virtual ODI ~ProjectDAO(); virtual ODI Mapper* createMapper(); virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY); ODI static DAO* createObject(); ODI string projectFolderPath(); ODI string projectFilePath(); ///建立项目 ///@note 执行之前,需要把属性设置完整 /// 执行成功会自动记录至 曾打开项目列表 /// 默认建立Model_2D和SDP_HCSR两个子文件夹 ODI ResultMsg create(); ///删除项目[暂时不可用] ///@note 执行之前,需要把属性设置完整。 ///@note 为防止.ccsp使用中无法删除,设置了延迟删除。 ODI ResultMsg delself(); ///删除项目的打开记录 // [5/11/2021 wwu] ///@note 只删除打开记录,不删除具体文件和文件夹。 ODI ResultMsg eraseOpenedRecord(); ///打开项目 ///@note 执行之前,需要把属性设置完整 /// 执行成功会自动记录至 曾打开项目列表。 /// 当找不到对应项目文件时,会自动在 曾打开项目列表 中删除记录 ODI ResultMsg open(); ///备份项目文件 // [9/7/2021 wwu] ///@note 以当前项目文件名+时间戳的方式增加备份文件 /// 保持最新的5次备份文件 ODI ResultMsg backupProjectFile(); ///复制项目文件夹 [10/28/2021 wwu] ///@note 将当前项目文件夹复制为新路径,并可修改项目文件名称 /** * @param[in] newFolderPath 复制后的文件夹路径 * @param[in] newFileName 复制后的项目文件名称 * @return 执行状态,状态码 + 返回信息字符串 */ ODI ResultMsg copyProjectFolder(string newFolderPath, string newFileName); /// 更新用于打开列表的_fixed属性值设置 // [11/17/2021 wwu] /** * @param[in] newFixedValue _fixed新的属性值 * @return 执行状态,状态码 + 返回信息字符串 */ ODI ResultMsg updateFixedFlag(int newFixedValue); /// 获取工程新建时的版本信息 [5/9/2022 wwu] /** * @param[out] modelVersionCreated 项目建立时,数据模型的版本 (添加此接口前建立的项目,改信息为"--") * @param[out] releaseVsersionCreated 项目建立时,数据平台发布的版本 (添加此接口前建立的项目,改信息为"--") */ ODI ResultMsg getVersionInfo(string &modelVersionCreated, string &releaseVsersionCreated); // 按照2021.03.16需求讨论结论,不再记录project和task的强关联信息 ,改为利用文件夹的从属关系确认关联 // 按照2021.03.16需求讨论结论,不再记录project和task的 [3/17/2021 wwu] // ODI ResultMsg addRootTask(TaskDAO* ptaskdao); //按照文件夹从属关系处理 project 和task的关系 // ODI ResultMsg addTask(TaskDAO* ptask); ///获取项目目录下所有子目录下的.ccst文件对应的TaskDAO信息 /** * @param [out] tlist TaskDAO列表 * @return 执行状态,状态码+返回信息字符串 */ ODI ResultMsg getTaskList(list &tlist); ODI static ResultMsg FindAllProjectOpened(list &plist);/**/ ODI static ResultMsg FindAll(ProjectDAO*& pnewdao); }; }