DPS/include/ProjectDAO.h

157 lines
5.6 KiB
C
Raw Normal View History

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