From 3d07bde51062e38da0230cfea089ad91a90372aa Mon Sep 17 00:00:00 2001 From: zhujinyong Date: Tue, 7 Mar 2023 08:49:48 +0800 Subject: [PATCH 1/6] Support dameng database. --- framework/base/router.class.php | 7 +- lib/dbh/dbh.class.php | 184 +++++++++++++++++++++++++++++ module/install/lang/de.php | 6 + module/install/lang/en.php | 6 + module/install/lang/fr.php | 6 + module/install/lang/vi.php | 6 + module/install/lang/zh-cn.php | 6 + module/install/model.php | 66 ++--------- module/install/view/step2.html.php | 4 + 9 files changed, 232 insertions(+), 59 deletions(-) create mode 100644 lib/dbh/dbh.class.php diff --git a/framework/base/router.class.php b/framework/base/router.class.php index 5c51cbe7ef..467e085ff2 100644 --- a/framework/base/router.class.php +++ b/framework/base/router.class.php @@ -391,6 +391,7 @@ class baseRouter $this->loadClass('front', $static = true); $this->loadClass('filter', $static = true); + $this->loadClass('dbh', $static = true); $this->loadClass('dao', $static = true); $this->loadClass('mobile', $static = true); @@ -2747,15 +2748,11 @@ class baseRouter { if(!isset($params->driver)) self::triggerError('no pdo driver defined, it should be mysql or sqlite', __FILE__, __LINE__, $exit = true); if(!isset($params->user)) return false; - if($params->driver == 'mysql') - { - $dsn = "mysql:host={$params->host}; port={$params->port}; dbname={$params->name}"; - } try { $dbPassword = helper::decryptPassword($params->password); - $dbh = new PDO($dsn, $params->user, $dbPassword, array(PDO::ATTR_PERSISTENT => $params->persistant)); + $dbh = new dbh($params); $dbh->exec("SET NAMES {$params->encoding}"); /* diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php new file mode 100644 index 0000000000..d907cd7994 --- /dev/null +++ b/lib/dbh/dbh.class.php @@ -0,0 +1,184 @@ +driver}:host={$config->host}:{$config->port}"; + $pdo = new PDO($dsn, $config->user, $config->password); + $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); + $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + if($config->driver == 'mysql') + { + $pdo->exec("SET NAMES {$config->encoding}"); + if(isset($this->config->strictMode) and $this->config->strictMode == false) $pdo->exec("SET @@sql_mode= ''"); + } + + $this->pdo = $pdo; + $this->config = $config; + } + + /** + * Query sql. + * + * @param string $sql + * @access public + * @return PDOStatement|false + */ + public function query($sql) + { + return $this->pdo->query($sql); + } + + /** + * Execute sql. + * + * @param string $sql + * @access public + * @return PDOStatement|false + */ + public function exec($sql) + { + return $this->pdo->exec($sql); + } + + /** + * Check db exits or not. + * + * @access public + * @return bool + */ + public function dbExists() + { + switch($this->config->driver) + { + case 'mysql': + $sql = "SHOW DATABASES like '{$this->config->name}'"; + break; + case 'dm': + $sql = "select * from dba_objects where object_type='SCH' and owner='{$this->config->name}';"; + break; + default: + $sql = ''; + } + + return $this->query($sql)->fetch(); + } + + /** + * Check table exits or not. + * + * @param string $tableName + * @access public + * @return void + */ + public function tableExits($tableName) + { + $tableName = str_replace('`', "'", $tableName); + $sql = "SHOW TABLES FROM {$this->config->name} like $tableName"; + switch($this->config->driver) + { + case 'mysql': + $sql = "SHOW TABLES FROM {$this->config->name} like {$tableName}"; + break; + case 'dm': + $sql = "select * from all_tables where owner='{$this->config->name}' and table_name={$tableName};"; + break; + default: + $sql = ''; + } + + return $this->query($sql)->fetch(); + } + + /** + * Create database. + * + * @param string $version + * @access public + * @return PDOStatement|false + */ + public function createDB($version) + { + switch($this->config->driver == 'mysql') + { + case 'mysql': + $sql = "CREATE DATABASE `{$this->config->name}`"; + if($version > 4.1) $sql .= " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"; + return $this->query($sql); + + case 'dm': + $createTableSpace = "CREATE TABLESPACE {$this->config->name} DATAFILE '{$this->config->name}.DBF' size 150 AUTOEXTEND ON"; + $createUser = "CREATE USER {$this->config->name} IDENTIFIED by {$this->config->password} DEFAULT TABLESPACE {$this->config->name} DEFAULT INDEX TABLESPACE {$this->config->name};"; + + $this->query($createTableSpace); + return $this->query($createUser); + + default: + return false; + } + } + + /** + * Use database or schema. + * + * @param string $dbName + * @access public + * @return PDOStatement|false + */ + public function useDB($dbName) + { + switch($this->config->driver == 'mysql') + { + case 'mysql': + return $this->exec("USE {$this->config->name}"); + + case 'dm': + return $this->exec("SET SCHEMA {$this->config->name}"); + + default: + return false; + } + } +} diff --git a/module/install/lang/de.php b/module/install/lang/de.php index 7221f12766..3525d2244e 100644 --- a/module/install/lang/de.php +++ b/module/install/lang/de.php @@ -121,6 +121,7 @@ $lang->install->chmodLinux = ' "%s" Berechtigung muss geändert werden.
$lang->install->timezone = 'Set Timezone'; $lang->install->defaultLang = 'Standard Sprache'; +$lang->install->dbDriver = 'Database Driver'; $lang->install->dbHost = 'Datenbank Host'; $lang->install->dbHostNote = 'Wenn 127.0.0.1 nicht funktioniert, versuchen Sie localhost.'; $lang->install->dbPort = 'Datenbank Port'; @@ -133,6 +134,11 @@ $lang->install->clearDB = 'Tabellen leeren sofern diese scon existieren.' $lang->install->importDemoData = 'Import Demo Daten'; $lang->install->working = 'Work Mode'; +$lang->install->dbDriverList = array(); +$lang->install->dbDriverList['mysql'] = 'MySQL'; +$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; +$lang->install->dbDriverList['dm'] = 'DM8'; + $lang->install->requestTypes['GET'] = 'GET'; $lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO'; diff --git a/module/install/lang/en.php b/module/install/lang/en.php index 22db291309..a1a856e980 100644 --- a/module/install/lang/en.php +++ b/module/install/lang/en.php @@ -121,6 +121,7 @@ $lang->install->chmodLinux = ' "%s" permison has to be changed.
Run install->timezone = 'Set Timezone'; $lang->install->defaultLang = 'Default Language'; +$lang->install->dbDriver = 'Database Driver'; $lang->install->dbHost = 'Database Host'; $lang->install->dbHostNote = 'If 127.0.0.1 is not accessible, try localhost.'; $lang->install->dbPort = 'Host Port'; @@ -133,6 +134,11 @@ $lang->install->clearDB = 'Clean up existing data'; $lang->install->importDemoData = 'Import Demo Data'; $lang->install->working = 'Operation Mode'; +$lang->install->dbDriverList = array(); +$lang->install->dbDriverList['mysql'] = 'MySQL'; +$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; +$lang->install->dbDriverList['dm'] = 'DM8'; + $lang->install->requestTypes['GET'] = 'GET'; $lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO'; diff --git a/module/install/lang/fr.php b/module/install/lang/fr.php index 1960c322a2..75b3aa5a5b 100644 --- a/module/install/lang/fr.php +++ b/module/install/lang/fr.php @@ -121,6 +121,7 @@ $lang->install->chmodLinux = 'Les permission de "%s" doivent être modifiées. $lang->install->timezone = 'Set Timezone'; $lang->install->defaultLang = 'Langue par défaut'; +$lang->install->dbDriver = 'Database Driver'; $lang->install->dbHost = 'Database Serveur'; $lang->install->dbHostNote = "If 127.0.0.1 n'est pas accessible, essayez localhost."; $lang->install->dbPort = 'Port Serveur'; @@ -133,6 +134,11 @@ $lang->install->clearDB = 'Nettoyer les données existantes'; $lang->install->importDemoData = 'Importer données de Démo'; $lang->install->working = 'Operation Mode'; +$lang->install->dbDriverList = array(); +$lang->install->dbDriverList['mysql'] = 'MySQL'; +$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; +$lang->install->dbDriverList['dm'] = 'DM8'; + $lang->install->requestTypes['GET'] = 'GET'; $lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO'; diff --git a/module/install/lang/vi.php b/module/install/lang/vi.php index 59596a9fab..e23baf560c 100644 --- a/module/install/lang/vi.php +++ b/module/install/lang/vi.php @@ -91,6 +91,7 @@ $lang->install->chmodLinux = ' "%s" permison has to be changed.
Run install->timezone = 'Thiết lập Timezone'; $lang->install->defaultLang = 'Ngôn ngữ mặc định'; +$lang->install->dbDriver = 'Database Driver'; $lang->install->dbHost = 'Database Host'; $lang->install->dbHostNote = 'If 127.0.0.1 không là accessible, try localhost.'; $lang->install->dbPort = 'Host Port'; @@ -103,6 +104,11 @@ $lang->install->clearDB = 'Clean up existing data'; $lang->install->importDemoData = 'Nhập Demo dữ liệu'; $lang->install->working = 'Operation chế độ'; +$lang->install->dbDriverList = array(); +$lang->install->dbDriverList['mysql'] = 'MySQL'; +$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; +$lang->install->dbDriverList['dm'] = 'DM8'; + $lang->install->requestTypes['GET'] = 'GET'; $lang->install->requestTypes['PATH_INFO'] = 'PATH_INFO'; diff --git a/module/install/lang/zh-cn.php b/module/install/lang/zh-cn.php index 155ace633e..6783e0f298 100644 --- a/module/install/lang/zh-cn.php +++ b/module/install/lang/zh-cn.php @@ -121,6 +121,7 @@ $lang->install->chmodLinux = '需要修改目录 "%s" 的权限。
命令 $lang->install->timezone = '时区设置'; $lang->install->defaultLang = '默认语言'; +$lang->install->dbDriver = 'Database Driver'; $lang->install->dbHost = '数据库服务器'; $lang->install->dbHostNote = '如果127.0.0.1无法访问,尝试使用localhost'; $lang->install->dbPort = '服务器端口'; @@ -133,6 +134,11 @@ $lang->install->clearDB = '清空现有数据'; $lang->install->importDemoData = '导入demo数据'; $lang->install->working = '工作方式'; +$lang->install->dbDriverList = array(); +$lang->install->dbDriverList['mysql'] = 'MySQL'; +$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; +$lang->install->dbDriverList['dm'] = '达梦'; + $lang->install->requestTypes['GET'] = '普通方式'; $lang->install->requestTypes['PATH_INFO'] = '静态友好方式'; diff --git a/module/install/model.php b/module/install/model.php index 9a168b4542..434856c906 100644 --- a/module/install/model.php +++ b/module/install/model.php @@ -294,20 +294,20 @@ class installModel extends model return $return; } - /* Get mysql version. */ - $version = $this->getMysqlVersion(); + /* Get database version. */ + $version = $this->getDatabaseVersion(); /* If database no exits, try create it. */ - if(!$this->dbExists()) + if(!$this->dbh->dbExists()) { - if(!$this->createDB($version)) + if(!$this->dbh->createDB($version)) { $return->result = 'fail'; $return->error = $this->lang->install->errorCreateDB; return $return; } } - elseif($this->tableExits() and $this->post->clearDB == false) + elseif($this->dbh->tableExits(TABLE_CONFIG) and $this->post->clearDB == false) { $return->result = 'fail'; $return->error = $this->lang->install->errorTableExists; @@ -333,6 +333,7 @@ class installModel extends model */ public function setDBParam() { + $this->config->db->driver = $this->post->dbDriver; $this->config->db->host = $this->post->dbHost; $this->config->db->name = $this->post->dbName; $this->config->db->user = $this->post->dbUser; @@ -350,15 +351,9 @@ class installModel extends model */ public function connectDB() { - $dsn = "mysql:host={$this->config->db->host}; port={$this->config->db->port}"; try { - $dbh = new PDO($dsn, $this->config->db->user, $this->config->db->password); - $dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); - $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - $dbh->exec("SET NAMES {$this->config->db->encoding}"); - if(isset($this->config->db->strictMode) and $this->config->db->strictMode == false) $dbh->exec("SET @@sql_mode= ''"); - return $dbh; + return new dbh($this->config->db); } catch (PDOException $exception) { @@ -367,57 +362,20 @@ class installModel extends model } /** - * Check db exits or not. - * - * @access public - * @return bool - */ - public function dbExists() - { - $sql = "SHOW DATABASES like '{$this->config->db->name}'"; - return $this->dbh->query($sql)->fetch(); - } - - /** - * Check table exits or not. - * - * @access public - * @return void - */ - public function tableExits() - { - $configTable = str_replace('`', "'", TABLE_CONFIG); - $sql = "SHOW TABLES FROM {$this->config->db->name} like $configTable"; - return $this->dbh->query($sql)->fetch(); - } - - /** - * Get mysql version. + * Get database version. * * @access public * @return string */ - public function getMysqlVersion() + public function getDatabaseVersion() { + if($this->config->db->driver != 'mysql') return 0; + $sql = "SELECT VERSION() AS version"; $result = $this->dbh->query($sql)->fetch(); return substr($result->version, 0, 3); } - /** - * Create database. - * - * @param string $version - * @access public - * @return bool - */ - public function createDB($version) - { - $sql = "CREATE DATABASE `{$this->config->db->name}`"; - if($version > 4.1) $sql .= " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"; - return $this->dbh->query($sql); - } - /** * Create tables. * @@ -430,7 +388,7 @@ class installModel extends model /* Add exception handling to ensure that all SQL is executed successfully. */ try { - $this->dbh->exec("USE {$this->config->db->name}"); + $this->dbh->useDB($this->config->db->name); $dbFile = $this->app->getAppRoot() . 'db' . DS . 'zentao.sql'; $tables = explode(';', file_get_contents($dbFile)); diff --git a/module/install/view/step2.html.php b/module/install/view/step2.html.php index 8036e5d2d5..117ac9f68f 100644 --- a/module/install/view/step2.html.php +++ b/module/install/view/step2.html.php @@ -31,6 +31,10 @@ install->defaultLang;?> langs, $app->getClientLang(), "class='form-control'");?> + + install->dbDriver;?> + install->dbDriverList, 'mysql', "class='form-control'");?> + install->dbHost;?> From 0c70fda2912a058f6b5952ea3d7bf8f4d331d6fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=87=91=E5=8B=87?= Date: Sun, 26 Mar 2023 15:12:48 +0000 Subject: [PATCH 2/6] * Refactor sql. --- db/zentao.sql | 268 +++++++++++++++++++++++++------------------------- 1 file changed, 136 insertions(+), 132 deletions(-) diff --git a/db/zentao.sql b/db/zentao.sql index 3848051d2e..848d36eb3e 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -422,12 +422,13 @@ CREATE TABLE IF NOT EXISTS `zt_casestep` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_cfd`; CREATE TABLE IF NOT EXISTS `zt_cfd` ( - `id` int(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` int(8) NOT NULL AUTO_INCREMENT, `execution` int(8) NOT NULL, `type` char(30) NOT NULL, `name` char(30) NOT NULL, `count` smallint NOT NULL, `date` date NOT NULL, + PRIMARY KEY (`id`), UNIQUE KEY `execution_type_name_date` (`execution`,`type`,`name`,`date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_chart`; @@ -741,18 +742,19 @@ CREATE TABLE IF NOT EXISTS `zt_entry` ( `editedBy` varchar(30) NOT NULL, `editedDate` datetime NOT NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', - PRIMARY KEY `id` (`id`) + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_expect`; CREATE TABLE IF NOT EXISTS `zt_expect` ( - `id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` mediumint(8) NOT NULL AUTO_INCREMENT, `userID` mediumint(8) NOT NULL, `project` mediumint(8) NOT NULL DEFAULT 0, `expect` text NOT NULL, `progress` text NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, - `deleted` enum('0','1') NOT NULL DEFAULT '0' + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_extension`; CREATE TABLE IF NOT EXISTS `zt_extension` ( @@ -1043,7 +1045,7 @@ CREATE TABLE IF NOT EXISTS `zt_log` ( `contentType` varchar(30) NOT NULL, `data` text NOT NULL, `result` text NOT NULL, - PRIMARY KEY `id` (`id`), + PRIMARY KEY (`id`), KEY `objectType` (`objectType`), KEY `obejctID` (`objectID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1498,7 +1500,7 @@ CREATE TABLE IF NOT EXISTS `zt_stage` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_stakeholder`; CREATE TABLE IF NOT EXISTS `zt_stakeholder` ( - `id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` mediumint(8) NOT NULL AUTO_INCREMENT, `objectID` mediumint(8) NOT NULL, `objectType` char(30) NOT NULL, `user` char(30) NOT NULL, @@ -1510,6 +1512,7 @@ CREATE TABLE IF NOT EXISTS `zt_stakeholder` ( `editedBy` char(30) NOT NULL, `editedDate` date NOT NULL, `deleted` enum('0','1') NOT NULL, + PRIMARY KEY (`id`), KEY `objectID` (`objectID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_story`; @@ -2033,23 +2036,23 @@ INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type ('*/5', '*', '*', '*', '*', 'moduleName=mr&methodName=syncMR', '定时同步GitLab合并数据到禅道数据库', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), ('*/5', '*', '*', '*', '*', 'moduleName=compile&methodName=syncCompile', '定时同步构建记录', 'zentao', 1, 'normal', '0000-00-00 00:00:00'); -INSERT INTO `zt_group` (`id`, `vision`, `name`, `role`, `desc`) VALUES -(1, 'rnd', 'ADMIN', 'admin', 'for administrator'), -(2, 'rnd', 'DEV', 'dev', 'for developers.'), -(3, 'rnd', 'QA', 'qa', 'for testers.'), -(4, 'rnd', 'PM', 'pm', 'for project managers.'), -(5, 'rnd', 'PO', 'po', 'for product owners.'), -(6, 'rnd', 'TD', 'td', 'for technical director.'), -(7, 'rnd', 'PD', 'pd', 'for product director.'), -(8, 'rnd', 'QD', 'qd', 'for quality director.'), -(9, 'rnd', 'TOP', 'top', 'for top manager.'), -(10, 'rnd', 'OTHERS', 'others', 'for others.'), -(11, 'rnd', 'guest', 'guest', 'For guest'), -(12, 'rnd', 'LIMITED', 'limited', 'For limited user'), -(13, 'rnd', 'PROJECTADMIN', 'projectAdmin', 'Project Admins manage project privileges'), -(14, 'lite', 'LITEADMIN', 'liteAdmin', 'for lite administrator'), -(15, 'lite', 'LITEPROJECT', 'liteProject', 'for lite project managers.'), -(16, 'lite', 'LITETEAM', 'liteTeam', 'for lite team.'); +INSERT INTO `zt_group` (`vision`, `name`, `role`, `desc`) VALUES +('rnd', 'ADMIN', 'admin', 'for administrator'), +('rnd', 'DEV', 'dev', 'for developers.'), +('rnd', 'QA', 'qa', 'for testers.'), +('rnd', 'PM', 'pm', 'for project managers.'), +('rnd', 'PO', 'po', 'for product owners.'), +('rnd', 'TD', 'td', 'for technical director.'), +('rnd', 'PD', 'pd', 'for product director.'), +('rnd', 'QD', 'qd', 'for quality director.'), +('rnd', 'TOP', 'top', 'for top manager.'), +('rnd', 'OTHERS', 'others', 'for others.'), +('rnd', 'guest', 'guest', 'For guest'), +('rnd', 'LIMITED', 'limited', 'For limited user'), +('rnd', 'PROJECTADMIN', 'projectAdmin', 'Project Admins manage project privileges'), +('lite', 'LITEADMIN', 'liteAdmin', 'for lite administrator'), +('lite', 'LITEPROJECT', 'liteProject', 'for lite project managers.'), +('lite', 'LITETEAM', 'liteTeam', 'for lite team.'); INSERT INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (1,'action','comment'), @@ -7084,32 +7087,32 @@ CREATE OR REPLACE VIEW `ztv_daybugresolve` AS select count(*) AS `bugresolve`,le CREATE OR REPLACE VIEW `ztv_dayactions` AS select count(*) AS `actions`,left(`zt_action`.`date`,10) AS `day` from `zt_action` group by left(`zt_action`.`date`,10); CREATE OR REPLACE VIEW `ztv_normalproduct` AS SELECT * FROM `zt_product` WHERE `shadow` = 0; -REPLACE INTO `zt_report` (`code`, `name`, `module`, `sql`, `vars`, `langs`, `params`, `step`, `desc`, `addedBy`, `addedDate`) VALUES -('product-progress', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u5b8c\\u6210\\u5ea6\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u5b8c\\u6210\\u5ea6\\u7d71\\u8a08\\u8868\",\"en\":\"Product Progress\",\"de\":\"Product Progress\",\"fr\":\"Product Progress\"}', ',product', 'select t1.*,t2.name, (case when t1.status = \'closed\' or t1.stage = \'released\' then 1 else 0 end) as done, 1 as count from TABLE_STORY as t1 \r\nleft join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"count\",\"done\"],\"reportType\":[\"sum\",\"sum\"],\"sumAppend\":[\"count\",\"done\"],\"percent\":{\"1\":\"1\"},\"contrast\":{\"1\":\"count\"},\"showAlone\":{\"1\":\"1\"}}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u603b\\u6570(\\u72b6\\u6001\\u662f\\u5173\\u95ed\\uff0c\\u6216\\u8005\\u7814\\u53d1\\u9636\\u6bb5\\u662f\\u53d1\\u5e03)\\uff0c\\u5b8c\\u6210\\u7684\\u767e\\u5206\\u6bd4\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u7e3d\\u6578(\\u72c0\\u614b\\u662f\\u95dc\\u9589\\uff0c\\u6216\\u8005\\u7814\\u767c\\u968e\\u6bb5\\u662f\\u767c\\u5e03)\\uff0c\\u5b8c\\u6210\\u7684\\u767e\\u5206\\u6bd4\\u3002\",\"en\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\",\"de\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\",\"fr\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\"}', 'admin', '2015-07-21 15:07:48'), -('story-status', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u9700\\u6c42\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u9700\\u6c42\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Story Status\",\"de\":\"Story Status\",\"fr\":\"Story Status\"}', ',product', 'select t1.*,t2.name from TABLE_STORY as t1\r\n left join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u72b6\\u6001\\u7684\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u72c0\\u614b\\u7684\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Total number and status distribution of stories.\",\"de\":\"Total number and status distribution of stories.\",\"fr\":\"Total number and status distribution of stories.\"}', 'admin', '2015-07-21 15:35:38'), -('story-stage', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u8868\",\"en\":\"Story Stage\",\"de\":\"Story Stage\",\"fr\":\"Story Stage\"}', ',product', 'select t1.*,t2.name from TABLE_STORY as t1\r\n left join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"stage\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u7814\\u53d1\\u9636\\u6bb5\\u7684\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u7814\\u767c\\u968e\\u6bb5\\u7684\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Total number and stage distribution of stories \",\"de\":\"Total number and stage distribution of stories \",\"fr\":\"Total number and stage distribution of stories \"}', 'admin', '2015-07-21 15:38:34'), -('product-release', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6570\\u91cf\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u767c\\u5e03\\u6578\\u91cf\\u7d71\\u8a08\\u8868\",\"en\":\"Product Release\",\"de\":\"Product Release\",\"fr\":\"Product Release\"}', ',product', 'select t2.name, 1 as releases from TABLE_RELEASE as t1 \r\nleft join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"releases\"],\"reportType\":[\"sum\"],\"sumAppend\":[\"releases\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u53d1\\u5e03\\u7684\\u6570\\u91cf\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u767c\\u5e03\\u7684\\u6578\\u91cf\\u3002\",\"en\":\"Product Release.\",\"de\":\"Product Release.\",\"fr\":\"Product Release.\"}', 'admin', '2015-07-21 16:00:52'), -('task-status', '{\"zh-cn\":\"\\u4efb\\u52a1\\u72b6\\u6001\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u4efb\\u52d9\\u72c0\\u614b\\u7d71\\u8a08\\u8868\",\"en\":\"Task Status Report\",\"de\":\"Task Status Report\",\"fr\":\"Task Status Report\",\"vi\":\"Task Status Report\",\"ja\":\"Task Status Report\"}', ',project', 'select t1.id,t3.name as project,t1.name,t2.status,IF(t3.multiple="1",t1.name,"") as execution,t2.id as taskID, t1.status as projectstatus, (case when t2.deadline < CURDATE() and t2.deadline != \'0000-00-00\' and t2.status != \'closed\' and t2.status != \'done\' and t2.status != \'cancel\' then 1 else 0 end) as timeout from TABLE_EXECUTION as t1\r\n left join TABLE_TASK as t2 on t1.id=t2.execution\r\n left join TABLE_PROJECT as t3 on t3.id=t1.project\r\n where t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u6267\\u884c\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u57f7\\u884c\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 11:28:33'), -('task-type', '{\"zh-cn\":\"\\u4efb\\u52a1\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u4efb\\u52d9\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Task Type Report\",\"de\":\"Task Type Report\",\"fr\":\"Task Type Report\",\"vi\":\"Task Type Report\",\"ja\":\"Task Type Report\"}', ',project', 'select t1.id,t3.name as project,IF(t3.multiple="1",t1.name,"") as execution,t2.type,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1 \r\nleft join TABLE_TASK as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:06:46'), -('task-assign', '{\"zh-cn\":\"\\u9879\\u76ee\\u4efb\\u52a1\\u6307\\u6d3e\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u4efb\\u52d9\\u6307\\u6d3e\\u7d71\\u8a08\\u8868\",\"en\":\"Task Assign Report\",\"de\":\"Task Assign Report\",\"fr\":\"Task Assign Report\",\"vi\":\"Task Assign Report\",\"ja\":\"Task Assign Report\"}', ',project', 'select t1.id,t4.name as project,IF(t4.multiple="1",t1.name,"") as execution,if(t3.account is not null, t3.account,t2.assignedTo) as assignedTo,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1\r\n left join TABLE_TASK as t2 on t1.id=t2.execution\r\n left join TABLE_TEAM as t3 on t3.type=\'task\' && t3.root=t2.id \r\nleft join TABLE_PROJECT as t4 on t1.project=t4.id\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t4.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"assignedTo\":{\"zh-cn\":\"\\u6307\\u6d3e\\u7ed9\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"assignedTo\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:13:28'), -('task-finish', '{\"zh-cn\":\"\\u9879\\u76ee\\u4efb\\u52a1\\u5b8c\\u6210\\u8005\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u4efb\\u52d9\\u5b8c\\u6210\\u8005\\u7d71\\u8a08\\u8868\",\"en\":\"Task Finish Report\",\"de\":\"Task Finish Report\",\"fr\":\"Task Finish Report\",\"vi\":\"Task Finish Report\",\"ja\":\"Task Finish Report\"}', ',project', 'select t1.id,t3.name as project,IF(t3.multiple="1",t1.name,"") as execution,t2.finishedBy,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1 \r\nleft join TABLE_TASK as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t1.project=t3.id \r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and t2.finishedBy!=\'\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"finishedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u5b8c\\u6210\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u5b8c\\u6210\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:16:21'), -('project-invest', '{\"zh-cn\":\"\\u9879\\u76ee\\u6295\\u5165\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u6295\\u5165\\u7d71\\u8a08\\u8868\",\"en\":\"Project Invest Report\",\"de\":\"Project Invest Report\",\"fr\":\"Project Invest Report\",\"vi\":\"Project Invest Report\",\"ja\":\"Project Invest Report\"}', ',project', 'select t1.id,t5.name as project,IF(t5.multiple="1",t1.name,"") as execution,CONCAT(t1.begin,\' ~ \',t1.end) as timeLimit,t2.teams,t3.stories,round(t4.consumed,1) as consumed,t4.number, t1.status as projectstatus \r\nfrom TABLE_EXECUTION as t1\r\n left join ztv_projectteams as t2 on t1.id=t2.execution\r\nleft join ztv_projectstories as t3 on t1.id=t3.execution\r\n left join ztv_executionsummary as t4 on t1.id=t4.execution \r\nleft join TABLE_PROJECT as t5 on t1.project=t5.id \r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and if($project=\'\',1,t5.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"timeLimit\":{\"zh-cn\":\"\\u5de5\\u671f\"},\"teams\":{\"zh-cn\":\"\\u4eba\\u6570\"},\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\"},\"consumed\":{\"zh-cn\":\"\\u603b\\u6d88\\u8017\"},\"number\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\"},\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"number\",\"stories\",\"teams\",\"consumed\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"number\",\"stories\",\"teams\",\"consumed\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u5217\\u51fa\\uff1a\\u4efb\\u52a1\\u6570\\uff0c\\u9700\\u6c42\\u6570\\uff0c\\u4eba\\u6570\\uff0c\\u603b\\u6d88\\u8017\\u5de5\\u65f6\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u5217\\u51fa\\uff1a\\u4efb\\u52d9\\u6578\\uff0c\\u9700\\u6c42\\u6578\\uff0c\\u4eba\\u6578\\uff0c\\u7e3d\\u6d88\\u8017\\u5de5\\u6642\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 16:37:38'), -('projectstory-status', '{\"zh-cn\":\"\\u9879\\u76ee\\u9700\\u6c42\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9700\\u6c42\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Project Story Status\",\"de\":\"Project Story Status\",\"fr\":\"Project Story Status\",\"vi\":\"Project Story Status\",\"ja\":\"Project Story Status\"}', ',project', 'select t2.id, t4.name as project,IF(t4.multiple="1",t2.name,"") as execution,t3.status from TABLE_PROJECTSTORY as t1 \r\nleft join TABLE_EXECUTION as t2 on t1.project=t2.id \r\nleft join TABLE_STORY as t3 on t1.story=t3.id \r\nleft join TABLE_PROJECT as t4 on t4.id=t2.project\r\nwhere t2.deleted=\'0\' and t2.type in(\'sprint\', \'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t2.id=$execution) and if($status=\'\',1,t2.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u9700\\u6c42\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u9700\\u6c42\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:35:08'), -('project-stage', '{\"zh-cn\":\"\\u9879\\u76ee\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u8868\",\"en\":\"Project Stage Report\",\"de\":\"Project Stage Report\",\"fr\":\"Project Stage Report\",\"vi\":\"Project Stage Report\",\"ja\":\"Project Stage Report\"}', ',project', 'select t2.id, t4.name as project,IF(t4.multiple="1",t2.name,"") as execution,t3.stage from TABLE_PROJECTSTORY as t1 \r\nleft join TABLE_EXECUTION as t2 on t1.project=t2.id \r\nleft join TABLE_STORY as t3 on t1.story=t3.id \r\nleft join TABLE_PROJECT as t4 on t4.id=t2.project\r\nwhere t2.deleted=\'0\' and t2.type in(\'sprint\', \'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t2.id=$execution) and if($status=\'\',1,t2.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stage\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:38:18'), -('projectbug-resolution', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u89e3\\u51b3\\u65b9\\u6848\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u89e3\\u6c7a\\u65b9\\u6848\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Resolution\",\"de\":\"Project Bug Resolution\",\"fr\":\"Project Bug Resolution\",\"vi\":\"Project Bug Resolution\",\"ja\":\"Project Bug Resolution\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.resolution from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\n where t1.deleted=\'0\' and t2.deleted=\'0\' and t2.resolution!=\'\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"resolution\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u89e3\\u51b3\\u65b9\\u6848\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u89e3\\u6c7a\\u65b9\\u6848\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:04:46'), -('projectbug-status', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Status\",\"de\":\"Project Bug Status\",\"fr\":\"Project Bug Status\",\"vi\":\"Project Bug Status\",\"ja\":\"Project Bug Status\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.status from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\' \' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:48:03'), -('projectbug-opened', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u521b\\u5efa\\u8005\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u5275\\u5efa\\u8005\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Opened\",\"de\":\"Project Bug Opened\",\"fr\":\"Project Bug Opened\",\"vi\":\"Project Bug Opened\",\"ja\":\"Project Bug Opened\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.openedBy from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"openedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u521b\\u5efa\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u5275\\u5efa\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:08:10'), -('projectbug-resolve', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u89e3\\u51b3\\u8005\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u89e3\\u6c7a\\u8005\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Resolve\",\"de\":\"Project Bug Resolve\",\"fr\":\"Project Bug Resolve\",\"vi\":\"Project Bug Resolve\",\"ja\":\"Project Bug Resolve\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.resolvedBy from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' and t2.status!=\'active\' and t2.resolvedBy!=\'\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"resolvedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u89e3\\u51b3\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u89e3\\u6c7a\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:13:16'), -('projectbug-assign', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Assign\",\"de\":\"Project Bug Assign\",\"fr\":\"Project Bug Assign\",\"vi\":\"Project Bug Assign\",\"ja\":\"Project Bug Assign\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.assignedTo from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution \r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"assignedTo\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:29:10'), -('project-quality', '{\"zh-cn\":\"\\u9879\\u76ee\\u8d28\\u91cf\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u8cea\\u91cf\\u8868\",\"en\":\"Project Quality Report\",\"de\":\"Project Quality Report\",\"fr\":\"Project Quality Report\",\"vi\":\"Project Quality Report\",\"ja\":\"Project Quality Report\"}', ',project', 'select t1.id, t5.name as project,t5.id,IF(t5.multiple="1",t1.name,"") as execution,t2.stories,(t2.stories-t2.undone) as doneStory,t3.number,(t3.number-t3.undone) as doneTask,t4.bugs,t4.resolutions, round(t4.bugs/(t2.stories-t2.undone),2) as bugthanstory,round(t4.bugs/(t3.number-t3.undone),2) as bugthantask,t4.seriousBugs from TABLE_EXECUTION as t1 \r\nleft join ztv_projectstories as t2 on t1.id=t2.execution\r\nleft join ztv_executionsummary as t3 on t1.id=t3.execution\r\nleft join ztv_projectbugs as t4 on t1.id=t4.execution\r\nleft join TABLE_PROJECT as t5 on t5.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t1.grade=\'1\' and if($project=\'\',1,t5.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u603b\\u6570\"},\"doneStory\":{\"zh-cn\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\"},\"number\":{\"zh-cn\":\"\\u4efb\\u52a1\\u603b\\u6570\"},\"doneTask\":{\"zh-cn\":\"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570\"},\"bugs\":{\"zh-cn\":\"Bug\\u6570\"},\"resolutions\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\"},\"bugthanstory\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\"},\"bugthantask\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u4efb\\u52a1\"},\"seriousBugs\":{\"zh-cn\":\"\\u91cd\\u8981Bug\\u6570\"},\"seriousBugsPercent\":{\"zh-cn\":\"\\u4e25\\u91cdBug\\u6bd4\\u7387\"},\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stories\",\"doneStory\",\"number\",\"doneTask\",\"bugs\",\"resolutions\",\"bugthanstory\",\"bugthantask\",\"seriousBugs\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"doneStory\",\"number\",\"doneTask\",\"bugs\",\"resolutions\",\"bugthanstory\",\"bugthantask\",\"seriousBugs\"]}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u9879\\u76ee\\u7684\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u9700\\u6c42\\u6570\\uff0c\\u4efb\\u52a1\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570\\uff0cBug\\u6570\\uff0c\\u89e3\\u51b3\\u7684Bug\\u6570\\uff0cBug\\/\\u9700\\u6c42\\uff0cBug\\/\\u4efb\\u52a1\\uff0c\\u91cd\\u8981Bug\\u6570\\u91cf(\\u4e25\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u4e8e3\\uff09\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u9805\\u76ee\\u7684\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u9700\\u6c42\\u6578\\uff0c\\u4efb\\u52d9\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u4efb\\u52d9\\u6578\\uff0cBug\\u6578\\uff0c\\u89e3\\u6c7a\\u7684Bug\\u6578\\uff0cBug\\/\\u9700\\u6c42\\uff0cBug\\/\\u4efb\\u52d9\\uff0c\\u91cd\\u8981Bug\\u6578\\u91cf(\\u56b4\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u65bc3\\uff09\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 17:03:10'), -('productbug-type', '{\"zh-cn\":\"\\u4ea7\\u54c1Bug\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1Bug\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Bug Type of Product\",\"de\":\"Bug Type of Product\",\"fr\":\"Bug Type of Product\"}', ',product,test', 'select t1.id,t1.name,t2.id as bugID,t2.type from TABLE_PRODUCT as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.product \r\nleft join TABLE_PROGRAM as t3 on t1.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t1.line desc, t1.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u7edf\\u8ba1Bug\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u7d71\\u8a08Bug\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Type distribution of Bugs.\",\"de\":\"Type distribution of Bugs.\",\"fr\":\"Type distribution of Bugs.\"}', 'admin', '2015-07-24 13:48:22'), -('product-quality', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u8d28\\u91cf\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u8cea\\u91cf\\u8868\",\"en\":\"Product Quality\",\"de\":\"Product Quality\",\"fr\":\"Product Quality\"}', ',product', 'select t1.id,t1.name,t2.stories,(t2.stories-t2.undone) as doneStory,t3.bugs,t3.resolutions,round(t3.bugs/(t2.stories-t2.undone),2) as bugthanstory,t3.seriousBugs from TABLE_PRODUCT as t1 \r\nleft join ztv_productstories as t2 on t1.id=t2.product \r\nleft join ztv_productbugs as t3 on t1.id=t3.product \r\nleft join TABLE_PROGRAM as t4 on t1.program=t4.id \r\nwhere t1.deleted=\'0\'\r\norder by t4.`order` asc, t1.line desc, t1.`order` asc', '', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u603b\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u603b\\u6570\",\"en\":\"Stories\"},\"doneStory\":{\"zh-cn\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\",\"en\":\"Finished Stories\"},\"bugs\":{\"zh-cn\":\"Bug\\u6570\",\"zh-tw\":\"Bug\\u6570\",\"en\":\"Bugs\"},\"resolutions\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\",\"zh-tw\":\"\\u89e3\\u51b3Bug\\u6570\",\"en\":\"Solved Bugs\"},\"bugthanstory\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\",\"zh-tw\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\",\"en\":\"Bug\\/Finished Story\"},\"seriousBugs\":{\"zh-cn\":\"\\u91cd\\u8981Bug\\u6570\",\"zh-tw\":\"\\u91cd\\u8981Bug\\u6570\",\"en\":\"Serious Bugs\"},\"seriousBugsPercent\":{\"zh-cn\":\"\\u4e25\\u91cdbug\\u6bd4\\u7387\",\"zh-tw\":\"\\u4e25\\u91cdbug\\u6bd4\\u7387\",\"en\":\"Serious Bugs %\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"stories\",\"doneStory\",\"bugs\",\"resolutions\",\"bugthanstory\",\"seriousBugs\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"doneStory\",\"bugs\",\"resolutions\",\"bugthanstory\",\"seriousBugs\"],\"percent\":{\"5\":\"1\"},\"contrast\":{\"5\":\"bugs\"},\"showAlone\":{\"5\":\"1\"}}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u4ea7\\u54c1\\u7684\\u9700\\u6c42\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u603b\\u6570\\uff0cBug\\u6570\\uff0c\\u89e3\\u51b3\\u7684Bug\\u603b\\u6570\\uff0cBug\\/\\u9700\\u6c42\\uff0c\\u91cd\\u8981Bug\\u6570\\u91cf(\\u4e25\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u4e8e3)\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u7522\\u54c1\\u7684\\u9700\\u6c42\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u7e3d\\u6578\\uff0cBug\\u6578\\uff0c\\u89e3\\u6c7a\\u7684Bug\\u7e3d\\u6578\\uff0cBug\\/\\u9700\\u6c42\\uff0c\\u91cd\\u8981Bug\\u6578\\u91cf(\\u56b4\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u65bc3)\\u3002\",\"en\":\"Serious Bug (severity is less than 3).\",\"de\":\"Serious Bug (severity is less than 3).\",\"fr\":\"Serious Bug (severity is less than 3).\"}', 'admin', '2015-07-23 17:17:40'), -('user-login', '{\"zh-cn\":\"\\u5458\\u5de5\\u767b\\u5f55\\u6b21\\u6570\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u54e1\\u5de5\\u767b\\u9304\\u6b21\\u6578\\u7d71\\u8a08\\u8868\",\"en\":\"Login Times\",\"de\":\"Login Times\",\"fr\":\"Login Times\"}', ',staff', 'select actor,LEFT(`date`,10) as `day` from TABLE_ACTION where `action`=\'login\' and if($startDate=\'\',1,`date`>=$startDate) and if($endDate=\'\',1,`date`<=$endDate) order by `date` asc, actor asc', '{\"varName\":[\"startDate\",\"endDate\"],\"showName\":[\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"date\",\"date\"],\"selectList\":[\"user\",\"user\"],\"default\":[\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"actor\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"day\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u5b9e\\u73b0\\u5458\\u5de5\\u767b\\u5f55\\u6b21\\u6570\\u7edf\\u8ba1\\u62a5\\u8868\\uff0c\\u6309\\u7167\\u5929\\u7edf\\u8ba1\\u6bcf\\u5929\\u6bcf\\u4e2a\\u4eba\\u7684\\u767b\\u5f55\\u6b21\\u6570\\uff0c\\u4ee5\\u53ca\\u603b\\u6570\\u3002\",\"zh-tw\":\"\\u5be6\\u73fe\\u54e1\\u5de5\\u767b\\u9304\\u6b21\\u6578\\u7d71\\u8a08\\u5831\\u8868\\uff0c\\u6309\\u7167\\u5929\\u7d71\\u8a08\\u6bcf\\u5929\\u6bcf\\u500b\\u4eba\\u7684\\u767b\\u9304\\u6b21\\u6578\\uff0c\\u4ee5\\u53ca\\u7e3d\\u6578\\u3002\",\"en\":\"The summary of user login times.\",\"de\":\"The summary of user login times.\",\"fr\":\"The summary of user login times.\"}', 'admin', '2015-07-24 14:28:11'), -('effort', '{\"zh-cn\":\"\\u65e5\\u5fd7\\u6c47\\u603b\\u8868\",\"zh-tw\":\"\\u65e5\\u8a8c\\u532f\\u7e3d\\u8868\",\"en\":\"Effort Summary\",\"de\":\"Effort Summary\",\"fr\":\"Effort Summary\"}', ',staff', 'select t1.account,t1.consumed,t1.`date`,if($dept=\'0\',0,t2.dept) as dept from TABLE_EFFORT as t1 left join TABLE_USER as t2 on t1.account=t2.account where t1.`deleted`=\'0\' and if($startDate=\'\',1,t1.`date`>=$startDate) and if($endDate=\'\',1,t1.`date`<=$endDate) having dept=$dept order by `date` asc', '{\"varName\":[\"dept\",\"startDate\",\"endDate\"],\"showName\":[\"\\u90e8\\u95e8\",\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"select\",\"date\",\"date\"],\"selectList\":[\"dept\",\"user\",\"user\"],\"default\":[\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"date\":{\"zh-cn\":\"\\u65e5\\u671f\",\"zh-tw\":\"\\u65e5\\u671f\",\"en\":\"Date\"},\"consumed\":{\"zh-cn\":\"\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost\"}}', '{\"group1\":\"account\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"date\"],\"reportType\":[\"sum\"],\"sumAppend\":[\"consumed\"]}', 2, '{\"zh-cn\":\"\\u67e5\\u770b\\u67d0\\u4e2a\\u65f6\\u95f4\\u6bb5\\u5185\\u7684\\u65e5\\u5fd7\\u60c5\\u51b5\\uff0c\\u53ef\\u4ee5\\u6309\\u7167\\u90e8\\u95e8\\u9009\\u62e9\\u3002\",\"zh-tw\":\"\\u67e5\\u770b\\u67d0\\u500b\\u6642\\u9593\\u6bb5\\u5167\\u7684\\u65e5\\u8a8c\\u60c5\\u6cc1\\uff0c\\u53ef\\u4ee5\\u6309\\u7167\\u90e8\\u9580\\u9078\\u64c7\\u3002\",\"en\":\"Effort summary of users.\",\"de\":\"Effort summary of users\",\"fr\":\"Effort summary of users\"}', 'admin', '2015-07-27 13:53:32'), -('company-dynamic', '{\"zh-cn\":\"\\u516c\\u53f8\\u52a8\\u6001\\u6c47\\u603b\\u8868\",\"zh-tw\":\"\\u516c\\u53f8\\u52d5\\u614b\\u532f\\u7e3d\\u8868\",\"en\":\"Company Dynamics\",\"de\":\"Company Dynamics\",\"fr\":\"Company Dynamics\"}', ',staff', 'select t1.day,t2.userlogin,t3.consumed,t4.storyopen,t5.storyclose,t6.taskopen,t7.taskfinish,t8.bugopen,t9.bugresolve,t1.actions from ztv_dayactions as t1 left join ztv_dayuserlogin as t2 on t1.day=t2.day left join ztv_dayeffort as t3 on t1.day=t3.date left join ztv_daystoryopen as t4 on t1.day=t4.day left join ztv_daystoryclose as t5 on t1.day=t5.day left join ztv_daytaskopen as t6 on t1.day=t6.day left join ztv_daytaskfinish as t7 on t1.day=t7.day left join ztv_daybugopen as t8 on t1.day=t8.day left join ztv_daybugresolve as t9 on t1.day=t9.day where if($startDate=\'\',1,t1.day>=$startDate) and if($endDate=\'\',1,t1.day<=$endDate)', '{\"varName\":[\"startDate\",\"endDate\"],\"showName\":[\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"date\",\"date\"],\"selectList\":[\"user\",\"user\"],\"default\":[\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"day\":{\"zh-cn\":\"\\u65e5\\u671f\",\"zh-tw\":\"\\u65e5\\u671f\",\"en\":\"Date\"},\"userlogin\":{\"zh-cn\":\"\\u767b\\u5f55\\u6b21\\u6570\",\"zh-tw\":\"\\u767b\\u9304\\u6b21\\u6578\",\"en\":\"Login\"},\"consumed\":{\"zh-cn\":\"\\u65e5\\u5fd7\\u5de5\\u65f6\",\"zh-tw\":\"\\u65e5\\u8a8c\\u5de5\\u6642\",\"en\":\"Cost(h)\"},\"storyopen\":{\"zh-cn\":\"\\u65b0\\u589e\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u65b0\\u589e\\u9700\\u6c42\\u6578\",\"en\":\"Open Story\"},\"storyclose\":{\"zh-cn\":\"\\u5173\\u95ed\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u95dc\\u9589\\u9700\\u6c42\\u6578\",\"en\":\"Closed Story\"},\"taskopen\":{\"zh-cn\":\"\\u65b0\\u589e\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u65b0\\u589e\\u4efb\\u52d9\\u6578\",\"en\":\"Open Task\"},\"taskfinish\":{\"zh-cn\":\"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u4efb\\u52d9\\u6578\",\"en\":\"Finished Task\"},\"bugopen\":{\"zh-cn\":\"\\u65b0\\u589eBug\\u6570\",\"zh-tw\":\"\\u65b0\\u589eBug\\u6578\",\"en\":\"Open Bug\"},\"bugresolve\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\",\"zh-tw\":\"\\u89e3\\u51b3Bug\\u6578\",\"en\":\"Resolved bug\"},\"actions\":{\"zh-cn\":\"\\u52a8\\u6001\\u6570\",\"zh-tw\":\"\\u52d5\\u614b\\u6578\",\"en\":\"Dynamics\"}}', '{\"group1\":\"day\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"userlogin\",\"consumed\",\"storyopen\",\"storyclose\",\"taskopen\",\"taskfinish\",\"bugopen\",\"bugresolve\",\"actions\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"userlogin\",\"consumed\",\"storyopen\",\"storyclose\",\"taskopen\",\"taskfinish\",\"bugopen\",\"bugresolve\",\"actions\"]}', 2, '{\"zh-cn\":\"\\u53ef\\u4ee5\\u6307\\u5b9a\\u4e00\\u4e2a\\u65f6\\u671f\\uff0c\\u5217\\u51fa\\u76f8\\u5e94\\u7684\\u6570\\u636e\\uff1a1. \\u6bcf\\u5929\\u7684\\u767b\\u5f55\\u6b21\\u6570\\u30022. \\u6bcf\\u5929\\u7684\\u65e5\\u5fd7\\u5de5\\u65f6\\u91cf\\u30023. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u9700\\u6c42\\u6570\\u30024. \\u6bcf\\u5929\\u5173\\u95ed\\u7684\\u9700\\u6c42\\u6570\\u30025. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u4efb\\u52a1\\u6570\\u30026. \\u6bcf\\u5929\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570\\u30027. \\u6bcf\\u5929\\u65b0\\u589e\\u7684Bug\\u6570\\u30028. \\u6bcf\\u5929\\u89e3\\u51b3\\u7684Bug\\u6570\\u30029. \\u6bcf\\u5929\\u7684\\u52a8\\u6001\\u6570\\u3002\",\"zh-tw\":\"\\u53ef\\u4ee5\\u6307\\u5b9a\\u4e00\\u500b\\u6642\\u671f\\uff0c\\u5217\\u51fa\\u76f8\\u61c9\\u7684\\u6578\\u64da\\uff1a1. \\u6bcf\\u5929\\u7684\\u767b\\u9304\\u6b21\\u6578\\u30022. \\u6bcf\\u5929\\u7684\\u65e5\\u8a8c\\u5de5\\u6642\\u91cf\\u30023. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u9700\\u6c42\\u6578\\u30024. \\u6bcf\\u5929\\u95dc\\u9589\\u7684\\u9700\\u6c42\\u6578\\u30025. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u4efb\\u52d9\\u6578\\u30026. \\u6bcf\\u5929\\u5b8c\\u6210\\u7684\\u4efb\\u52d9\\u6578\\u30027. \\u6bcf\\u5929\\u65b0\\u589e\\u7684Bug\\u6578\\u30028. \\u6bcf\\u5929\\u89e3\\u6c7a\\u7684Bug\\u6578\\u30029. \\u6bcf\\u5929\\u7684\\u52d5\\u614b\\u6578\\u3002\",\"en\":\"The summary of company dynamics\",\"de\":\"The summary of company dynamics\",\"fr\":\"The summary of company dynamics\"}', 'admin', '2015-07-27 15:09:42'), -('bug-resolve', '{\"zh-cn\":\"Bug\\u89e3\\u51b3\\u8868\",\"zh-tw\":\"Bug\\u89e3\\u6c7a\\u8868\",\"en\":\"Solved Bugs\",\"de\":\"Solved Bugs\",\"fr\":\"Solved Bugs\"}', ',test', 'select *,if($product=\'\',0,product) as customproduct from TABLE_BUG where deleted=\'0\' and resolution!=\'\' and if($startDate=\'\',1,resolvedDate>=$startDate) and if($endDate=\'\',1,resolvedDate<=$endDate) having customproduct=$product', '{\"varName\":[\"product\",\"startDate\",\"endDate\"],\"showName\":[\"\\u4ea7\\u54c1\",\"\\u89e3\\u51b3\\u65e5\\u671f\\u5f00\\u59cb\",\"\\u89e3\\u51b3\\u65e5\\u671f\\u7ed3\\u675f\"],\"requestType\":[\"select\",\"date\",\"date\"],\"selectList\":[\"product\",\"user\",\"user\"],\"default\":[\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"resolvedBy\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"resolution\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"],\"percent\":[\"1\"],\"contrast\":[\"crystalTotal\"],\"showAlone\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u89e3\\u51b3\\u7684Bug\\u603b\\u6570\\uff0c\\u89e3\\u51b3\\u65b9\\u6848\\u7684\\u5206\\u5e03\\uff0c\\u5360\\u7684\\u6bd4\\u4f8b\\uff08\\u8be5\\u7528\\u6237\\u89e3\\u51b3\\u7684Bug\\u7684\\u6570\\u91cf\\u5360\\u6240\\u6709\\u7684\\u89e3\\u51b3\\u7684Bug\\u7684\\u6570\\u91cf)\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u89e3\\u6c7a\\u7684Bug\\u7e3d\\u6578\\uff0c\\u89e3\\u6c7a\\u65b9\\u6848\\u7684\\u5206\\u5e03\\uff0c\\u5360\\u7684\\u6bd4\\u4f8b\\uff08\\u8a72\\u7528\\u6236\\u89e3\\u6c7a\\u7684Bug\\u7684\\u6578\\u91cf\\u5360\\u6240\\u6709\\u7684\\u89e3\\u6c7a\\u7684Bug\\u7684\\u6578\\u91cf)\\u3002\",\"en\":\"percentage:self resolved \\/ all resolved\",\"de\":\"percentage:self resolved \\/ all resolved\",\"fr\":\"percentage:self resolved \\/ all resolved\"}', 'admin', '2015-07-24 13:44:25'), -('project-progress', '{\"zh-cn\":\"\\u9879\\u76ee\\u8fdb\\u5c55\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9032\\u5c55\\u8868\",\"en\":\"Project Progress Report\",\"de\":\"Project Progress Report\",\"fr\":\"Project Progress Report\",\"vi\":\"Project Progress Report\",\"ja\":\"Project Progress Report\"}', ',project', 'select t1.id,t4.name as project,t4.id,IF(t4.multiple="1",t1.name,"") as execution,t1.status,t2.number as tasks,round(t2.consumed,2) as consumed,round(t2.`left`,2) as `left`,t3.stories,t2.undone as undoneTask,t3.undone as undoneStory,t2.totalReal from TABLE_EXECUTION as t1 \r\nleft join ztv_executionsummary as t2 on t1.id=t2.execution\r\nleft join ztv_projectstories as t3 on t1.id=t3.execution\r\nleft join TABLE_PROJECT as t4 on t4.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t1.id=$execution) and if($status=\'\',1,t1.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"tasks\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u4efb\\u52a1\\u6570\",\"en\":\"Tasks\"},\"undoneStory\":{\"zh-cn\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"en\":\"Undone Story\"},\"undoneTask\":{\"zh-cn\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"en\":\"Undone Task\"},\"consumed\":{\"zh-cn\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost(h)\"},\"left\":{\"zh-cn\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"zh-tw\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"en\":\"Left(h)\"},\"consumedPercent\":{\"zh-cn\":\"\\u8fdb\\u5ea6\",\"zh-tw\":\"\\u8fdb\\u5ea6\",\"en\":\"Process\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stories\",\"undoneStory\",\"tasks\",\"undoneTask\",\"left\",\"consumed\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"undoneStory\",\"tasks\",\"undoneTask\",\"left\",\"consumed\"],\"percent\":{\"5\":\"1\"},\"contrast\":{\"5\":\"totalReal\"},\"showAlone\":{\"5\":\"1\"}}', 2, '{\"zh-cn\":\"\\u9879\\u76ee\\u7684\\u9700\\u6c42\\u6570\\uff0c\\u4efb\\u52a1\\u6570\\uff0c\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\\uff0c\\u5269\\u4f59\\u5de5\\u65f6\\uff0c\\u5269\\u4f59\\u9700\\u6c42\\u6570\\uff0c\\u5269\\u4f59\\u4efb\\u52a1\\u6570\\uff0c\\u8fdb\\u5ea6\\u3002\",\"zh-tw\":\"\\u9805\\u76ee\\u7684\\u9700\\u6c42\\u6578\\uff0c\\u4efb\\u52d9\\u6578\\uff0c\\u5df2\\u6d88\\u8017\\u5de5\\u6642\\uff0c\\u5269\\u9918\\u5de5\\u6642\\uff0c\\u5269\\u9918\\u9700\\u6c42\\u6578\\uff0c\\u5269\\u9918\\u4efb\\u52d9\\u6578\\uff0c\\u9032\\u5ea6\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 14:03:06'), -('projectbug-type', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Project Bug Type\",\"de\":\"Project Bug Type\",\"fr\":\"Project Bug Type\",\"vi\":\"Project Bug Type\",\"ja\":\"Project Bug Type\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t2.id as bugID,t2.type from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"tasks\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u4efb\\u52a1\\u6570\",\"en\":\"Tasks\"},\"undoneStory\":{\"zh-cn\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"en\":\"Undone Story\"},\"undoneTask\":{\"zh-cn\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"en\":\"Undone Task\"},\"consumed\":{\"zh-cn\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost(h)\"},\"left\":{\"zh-cn\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"zh-tw\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"en\":\"Left(h)\"},\"consumedPercent\":{\"zh-cn\":\"\\u8fdb\\u5ea6\",\"zh-tw\":\"\\u8fdb\\u5ea6\",\"en\":\"Process\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-08-04 13:54:22'); +--REPLACE INTO `zt_report` (`code`, `name`, `module`, `sql`, `vars`, `langs`, `params`, `step`, `desc`, `addedBy`, `addedDate`) VALUES +--('product-progress', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u5b8c\\u6210\\u5ea6\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u5b8c\\u6210\\u5ea6\\u7d71\\u8a08\\u8868\",\"en\":\"Product Progress\",\"de\":\"Product Progress\",\"fr\":\"Product Progress\"}', ',product', 'select t1.*,t2.name, (case when t1.status = \'closed1\' or t1.stage = \'released\' then 1 else 0 end) as done, 1 as count from TABLE_STORY as t1 \r\nleft join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"count\",\"done\"],\"reportType\":[\"sum\",\"sum\"],\"sumAppend\":[\"count\",\"done\"],\"percent\":{\"1\":\"1\"},\"contrast\":{\"1\":\"count\"},\"showAlone\":{\"1\":\"1\"}}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u603b\\u6570(\\u72b6\\u6001\\u662f\\u5173\\u95ed\\uff0c\\u6216\\u8005\\u7814\\u53d1\\u9636\\u6bb5\\u662f\\u53d1\\u5e03)\\uff0c\\u5b8c\\u6210\\u7684\\u767e\\u5206\\u6bd4\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u7e3d\\u6578(\\u72c0\\u614b\\u662f\\u95dc\\u9589\\uff0c\\u6216\\u8005\\u7814\\u767c\\u968e\\u6bb5\\u662f\\u767c\\u5e03)\\uff0c\\u5b8c\\u6210\\u7684\\u767e\\u5206\\u6bd4\\u3002\",\"en\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\",\"de\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\",\"fr\":\"Number of total stories,done stories(state is closed, or stage is released), percent of completion.\"}', 'admin', '2015-07-21 15:07:48'), +--('story-status', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u9700\\u6c42\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u9700\\u6c42\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Story Status\",\"de\":\"Story Status\",\"fr\":\"Story Status\"}', ',product', 'select t1.*,t2.name from TABLE_STORY as t1\r\n left join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u72b6\\u6001\\u7684\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u72c0\\u614b\\u7684\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Total number and status distribution of stories.\",\"de\":\"Total number and status distribution of stories.\",\"fr\":\"Total number and status distribution of stories.\"}', 'admin', '2015-07-21 15:35:38'), +--('story-stage', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u8868\",\"en\":\"Story Stage\",\"de\":\"Story Stage\",\"fr\":\"Story Stage\"}', ',product', 'select t1.*,t2.name from TABLE_STORY as t1\r\n left join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"stage\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u7814\\u53d1\\u9636\\u6bb5\\u7684\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u7814\\u767c\\u968e\\u6bb5\\u7684\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Total number and stage distribution of stories \",\"de\":\"Total number and stage distribution of stories \",\"fr\":\"Total number and stage distribution of stories \"}', 'admin', '2015-07-21 15:38:34'), +--('product-release', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u53d1\\u5e03\\u6570\\u91cf\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u767c\\u5e03\\u6578\\u91cf\\u7d71\\u8a08\\u8868\",\"en\":\"Product Release\",\"de\":\"Product Release\",\"fr\":\"Product Release\"}', ',product', 'select t2.name, 1 as releases from TABLE_RELEASE as t1 \r\nleft join TABLE_PRODUCT as t2 on t1.product=t2.id \r\nleft join TABLE_PROGRAM as t3 on t2.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t2.line desc, t2.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"releases\"],\"reportType\":[\"sum\"],\"sumAppend\":[\"releases\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u5217\\u51fa\\u53d1\\u5e03\\u7684\\u6570\\u91cf\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u5217\\u51fa\\u767c\\u5e03\\u7684\\u6578\\u91cf\\u3002\",\"en\":\"Product Release.\",\"de\":\"Product Release.\",\"fr\":\"Product Release.\"}', 'admin', '2015-07-21 16:00:52'), +--('task-status', '{\"zh-cn\":\"\\u4efb\\u52a1\\u72b6\\u6001\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u4efb\\u52d9\\u72c0\\u614b\\u7d71\\u8a08\\u8868\",\"en\":\"Task Status Report\",\"de\":\"Task Status Report\",\"fr\":\"Task Status Report\",\"vi\":\"Task Status Report\",\"ja\":\"Task Status Report\"}', ',project', 'select t1.id,t3.name as project,t1.name,t2.status,IF(t3.multiple="1",t1.name,"") as execution,t2.id as taskID, t1.status as projectstatus, (case when t2.deadline < CURDATE() and t2.deadline != \'0000-00-00\' and t2.status != \'closed\' and t2.status != \'done\' and t2.status != \'cancel\' then 1 else 0 end) as timeout from TABLE_EXECUTION as t1\r\n left join TABLE_TASK as t2 on t1.id=t2.execution\r\n left join TABLE_PROJECT as t3 on t3.id=t1.project\r\n where t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u6267\\u884c\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u57f7\\u884c\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 11:28:33'), +--('task-type', '{\"zh-cn\":\"\\u4efb\\u52a1\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u4efb\\u52d9\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Task Type Report\",\"de\":\"Task Type Report\",\"fr\":\"Task Type Report\",\"vi\":\"Task Type Report\",\"ja\":\"Task Type Report\"}', ',project', 'select t1.id,t3.name as project,IF(t3.multiple="1",t1.name,"") as execution,t2.type,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1 \r\nleft join TABLE_TASK as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:06:46'), +--('task-assign', '{\"zh-cn\":\"\\u9879\\u76ee\\u4efb\\u52a1\\u6307\\u6d3e\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u4efb\\u52d9\\u6307\\u6d3e\\u7d71\\u8a08\\u8868\",\"en\":\"Task Assign Report\",\"de\":\"Task Assign Report\",\"fr\":\"Task Assign Report\",\"vi\":\"Task Assign Report\",\"ja\":\"Task Assign Report\"}', ',project', 'select t1.id,t4.name as project,IF(t4.multiple="1",t1.name,"") as execution,if(t3.account is not null, t3.account,t2.assignedTo) as assignedTo,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1\r\n left join TABLE_TASK as t2 on t1.id=t2.execution\r\n left join TABLE_TEAM as t3 on t3.type=\'task\' && t3.root=t2.id \r\nleft join TABLE_PROJECT as t4 on t1.project=t4.id\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and if($project=\'\',1,t4.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"assignedTo\":{\"zh-cn\":\"\\u6307\\u6d3e\\u7ed9\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"assignedTo\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:13:28'), +--('task-finish', '{\"zh-cn\":\"\\u9879\\u76ee\\u4efb\\u52a1\\u5b8c\\u6210\\u8005\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u4efb\\u52d9\\u5b8c\\u6210\\u8005\\u7d71\\u8a08\\u8868\",\"en\":\"Task Finish Report\",\"de\":\"Task Finish Report\",\"fr\":\"Task Finish Report\",\"vi\":\"Task Finish Report\",\"ja\":\"Task Finish Report\"}', ',project', 'select t1.id,t3.name as project,IF(t3.multiple="1",t1.name,"") as execution,t2.finishedBy,t2.id as taskID, t1.status as projectstatus from TABLE_EXECUTION as t1 \r\nleft join TABLE_TASK as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t1.project=t3.id \r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t2.deleted=\'0\' and t2.finishedBy!=\'\' and if($project=\'\',1,t3.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"finishedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u4efb\\u52a1\\u7684\\u5b8c\\u6210\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u4efb\\u52d9\\u7684\\u5b8c\\u6210\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 13:16:21'), +--('project-invest', '{\"zh-cn\":\"\\u9879\\u76ee\\u6295\\u5165\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u6295\\u5165\\u7d71\\u8a08\\u8868\",\"en\":\"Project Invest Report\",\"de\":\"Project Invest Report\",\"fr\":\"Project Invest Report\",\"vi\":\"Project Invest Report\",\"ja\":\"Project Invest Report\"}', ',project', 'select t1.id,t5.name as project,IF(t5.multiple="1",t1.name,"") as execution,CONCAT(t1.begin,\' ~ \',t1.end) as timeLimit,t2.teams,t3.stories,round(t4.consumed,1) as consumed,t4.number, t1.status as projectstatus \r\nfrom TABLE_EXECUTION as t1\r\n left join ztv_projectteams as t2 on t1.id=t2.execution\r\nleft join ztv_projectstories as t3 on t1.id=t3.execution\r\n left join ztv_executionsummary as t4 on t1.id=t4.execution \r\nleft join TABLE_PROJECT as t5 on t1.project=t5.id \r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and if($project=\'\',1,t5.id=$project) and if($status=\'\',1,t1.status=$status) and if($beginDate=\'\',1,t1.begin>=$beginDate) and if($endDate=\'\',1,t1.end<=$endDate)', '{\"varName\":[\"project\",\"status\",\"beginDate\",\"endDate\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\",\"\\u6267\\u884c\\u8d77\\u59cb\\u65e5\\u671f\",\"\\u6267\\u884c\\u7ed3\\u675f\\u65e5\\u671f\"],\"requestType\":[\"select\",\"select\",\"date\",\"date\"],\"selectList\":[\"project\",\"project.status\",\"user\",\"user\"],\"default\":[\"\",\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"timeLimit\":{\"zh-cn\":\"\\u5de5\\u671f\"},\"teams\":{\"zh-cn\":\"\\u4eba\\u6570\"},\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\"},\"consumed\":{\"zh-cn\":\"\\u603b\\u6d88\\u8017\"},\"number\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\"},\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"number\",\"stories\",\"teams\",\"consumed\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"number\",\"stories\",\"teams\",\"consumed\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u5217\\u51fa\\uff1a\\u4efb\\u52a1\\u6570\\uff0c\\u9700\\u6c42\\u6570\\uff0c\\u4eba\\u6570\\uff0c\\u603b\\u6d88\\u8017\\u5de5\\u65f6\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u5217\\u51fa\\uff1a\\u4efb\\u52d9\\u6578\\uff0c\\u9700\\u6c42\\u6578\\uff0c\\u4eba\\u6578\\uff0c\\u7e3d\\u6d88\\u8017\\u5de5\\u6642\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-22 16:37:38'), +--('projectstory-status', '{\"zh-cn\":\"\\u9879\\u76ee\\u9700\\u6c42\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9700\\u6c42\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Project Story Status\",\"de\":\"Project Story Status\",\"fr\":\"Project Story Status\",\"vi\":\"Project Story Status\",\"ja\":\"Project Story Status\"}', ',project', 'select t2.id, t4.name as project,IF(t4.multiple="1",t2.name,"") as execution,t3.status from TABLE_PROJECTSTORY as t1 \r\nleft join TABLE_EXECUTION as t2 on t1.project=t2.id \r\nleft join TABLE_STORY as t3 on t1.story=t3.id \r\nleft join TABLE_PROJECT as t4 on t4.id=t2.project\r\nwhere t2.deleted=\'0\' and t2.type in(\'sprint\', \'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t2.id=$execution) and if($status=\'\',1,t2.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u9700\\u6c42\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u9700\\u6c42\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:35:08'), +--('project-stage', '{\"zh-cn\":\"\\u9879\\u76ee\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u8868\",\"en\":\"Project Stage Report\",\"de\":\"Project Stage Report\",\"fr\":\"Project Stage Report\",\"vi\":\"Project Stage Report\",\"ja\":\"Project Stage Report\"}', ',project', 'select t2.id, t4.name as project,IF(t4.multiple="1",t2.name,"") as execution,t3.stage from TABLE_PROJECTSTORY as t1 \r\nleft join TABLE_EXECUTION as t2 on t1.project=t2.id \r\nleft join TABLE_STORY as t3 on t1.story=t3.id \r\nleft join TABLE_PROJECT as t4 on t4.id=t2.project\r\nwhere t2.deleted=\'0\' and t2.type in(\'sprint\', \'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t2.id=$execution) and if($status=\'\',1,t2.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stage\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1\\u9700\\u6c42\\u9636\\u6bb5\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08\\u9700\\u6c42\\u968e\\u6bb5\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:38:18'), +--('projectbug-resolution', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u89e3\\u51b3\\u65b9\\u6848\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u89e3\\u6c7a\\u65b9\\u6848\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Resolution\",\"de\":\"Project Bug Resolution\",\"fr\":\"Project Bug Resolution\",\"vi\":\"Project Bug Resolution\",\"ja\":\"Project Bug Resolution\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.resolution from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\n where t1.deleted=\'0\' and t2.deleted=\'0\' and t2.resolution!=\'\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"resolution\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u89e3\\u51b3\\u65b9\\u6848\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u89e3\\u6c7a\\u65b9\\u6848\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:04:46'), +--('projectbug-status', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u72b6\\u6001\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u72c0\\u614b\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Status\",\"de\":\"Project Bug Status\",\"fr\":\"Project Bug Status\",\"vi\":\"Project Bug Status\",\"ja\":\"Project Bug Status\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.status from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\' \' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"status\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u72b6\\u6001\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u72c0\\u614b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 15:48:03'), +--('projectbug-opened', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u521b\\u5efa\\u8005\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u5275\\u5efa\\u8005\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Opened\",\"de\":\"Project Bug Opened\",\"fr\":\"Project Bug Opened\",\"vi\":\"Project Bug Opened\",\"ja\":\"Project Bug Opened\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.openedBy from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"openedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u521b\\u5efa\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u5275\\u5efa\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:08:10'), +--('projectbug-resolve', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u89e3\\u51b3\\u8005\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u89e3\\u6c7a\\u8005\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Resolve\",\"de\":\"Project Bug Resolve\",\"fr\":\"Project Bug Resolve\",\"vi\":\"Project Bug Resolve\",\"ja\":\"Project Bug Resolve\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.resolvedBy from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' and t2.status!=\'active\' and t2.resolvedBy!=\'\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"resolvedBy\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u89e3\\u51b3\\u8005\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u89e3\\u6c7a\\u8005\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:13:16'), +--('projectbug-assign', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u8868\",\"en\":\"Project Bug Assign\",\"de\":\"Project Bug Assign\",\"fr\":\"Project Bug Assign\",\"vi\":\"Project Bug Assign\",\"ja\":\"Project Bug Assign\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t1.id as bugID,t2.assignedTo from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution \r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' having bugID!=\'\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"assignedTo\"],\"isUser\":{\"reportField\":[[\"1\"]]},\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u6307\\u6d3e\\u7ed9\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u6307\\u6d3e\\u7d66\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 16:29:10'), +--('project-quality', '{\"zh-cn\":\"\\u9879\\u76ee\\u8d28\\u91cf\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u8cea\\u91cf\\u8868\",\"en\":\"Project Quality Report\",\"de\":\"Project Quality Report\",\"fr\":\"Project Quality Report\",\"vi\":\"Project Quality Report\",\"ja\":\"Project Quality Report\"}', ',project', 'select t1.id, t5.name as project,t5.id,IF(t5.multiple="1",t1.name,"") as execution,t2.stories,(t2.stories-t2.undone) as doneStory,t3.number,(t3.number-t3.undone) as doneTask,t4.bugs,t4.resolutions, round(t4.bugs/(t2.stories-t2.undone),2) as bugthanstory,round(t4.bugs/(t3.number-t3.undone),2) as bugthantask,t4.seriousBugs from TABLE_EXECUTION as t1 \r\nleft join ztv_projectstories as t2 on t1.id=t2.execution\r\nleft join ztv_executionsummary as t3 on t1.id=t3.execution\r\nleft join ztv_projectbugs as t4 on t1.id=t4.execution\r\nleft join TABLE_PROJECT as t5 on t5.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and t1.grade=\'1\' and if($project=\'\',1,t5.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u603b\\u6570\"},\"doneStory\":{\"zh-cn\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\"},\"number\":{\"zh-cn\":\"\\u4efb\\u52a1\\u603b\\u6570\"},\"doneTask\":{\"zh-cn\":\"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570\"},\"bugs\":{\"zh-cn\":\"Bug\\u6570\"},\"resolutions\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\"},\"bugthanstory\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\"},\"bugthantask\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u4efb\\u52a1\"},\"seriousBugs\":{\"zh-cn\":\"\\u91cd\\u8981Bug\\u6570\"},\"seriousBugsPercent\":{\"zh-cn\":\"\\u4e25\\u91cdBug\\u6bd4\\u7387\"},\"project\":{\"zh-cn\":\"\\u9879\\u76ee\\u540d\\u79f0\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stories\",\"doneStory\",\"number\",\"doneTask\",\"bugs\",\"resolutions\",\"bugthanstory\",\"bugthantask\",\"seriousBugs\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"doneStory\",\"number\",\"doneTask\",\"bugs\",\"resolutions\",\"bugthanstory\",\"bugthantask\",\"seriousBugs\"]}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u9879\\u76ee\\u7684\\u9700\\u6c42\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u9700\\u6c42\\u6570\\uff0c\\u4efb\\u52a1\\u603b\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570\\uff0cBug\\u6570\\uff0c\\u89e3\\u51b3\\u7684Bug\\u6570\\uff0cBug\\/\\u9700\\u6c42\\uff0cBug\\/\\u4efb\\u52a1\\uff0c\\u91cd\\u8981Bug\\u6570\\u91cf(\\u4e25\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u4e8e3\\uff09\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u9805\\u76ee\\u7684\\u9700\\u6c42\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u9700\\u6c42\\u6578\\uff0c\\u4efb\\u52d9\\u7e3d\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u4efb\\u52d9\\u6578\\uff0cBug\\u6578\\uff0c\\u89e3\\u6c7a\\u7684Bug\\u6578\\uff0cBug\\/\\u9700\\u6c42\\uff0cBug\\/\\u4efb\\u52d9\\uff0c\\u91cd\\u8981Bug\\u6578\\u91cf(\\u56b4\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u65bc3\\uff09\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 17:03:10'), +--('productbug-type', '{\"zh-cn\":\"\\u4ea7\\u54c1Bug\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u7522\\u54c1Bug\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Bug Type of Product\",\"de\":\"Bug Type of Product\",\"fr\":\"Bug Type of Product\"}', ',product,test', 'select t1.id,t1.name,t2.id as bugID,t2.type from TABLE_PRODUCT as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.product \r\nleft join TABLE_PROGRAM as t3 on t1.program=t3.id \r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\'\r\norder by t3.`order` asc, t1.line desc, t1.`order` asc', '', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u4ea7\\u54c1\\u7edf\\u8ba1Bug\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u7522\\u54c1\\u7d71\\u8a08Bug\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"Type distribution of Bugs.\",\"de\":\"Type distribution of Bugs.\",\"fr\":\"Type distribution of Bugs.\"}', 'admin', '2015-07-24 13:48:22'), +--('product-quality', '{\"zh-cn\":\"\\u4ea7\\u54c1\\u8d28\\u91cf\\u8868\",\"zh-tw\":\"\\u7522\\u54c1\\u8cea\\u91cf\\u8868\",\"en\":\"Product Quality\",\"de\":\"Product Quality\",\"fr\":\"Product Quality\"}', ',product', 'select t1.id,t1.name,t2.stories,(t2.stories-t2.undone) as doneStory,t3.bugs,t3.resolutions,round(t3.bugs/(t2.stories-t2.undone),2) as bugthanstory,t3.seriousBugs from TABLE_PRODUCT as t1 \r\nleft join ztv_productstories as t2 on t1.id=t2.product \r\nleft join ztv_productbugs as t3 on t1.id=t3.product \r\nleft join TABLE_PROGRAM as t4 on t1.program=t4.id \r\nwhere t1.deleted=\'0\'\r\norder by t4.`order` asc, t1.line desc, t1.`order` asc', '', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u603b\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u603b\\u6570\",\"en\":\"Stories\"},\"doneStory\":{\"zh-cn\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u9700\\u6c42\\u6570\",\"en\":\"Finished Stories\"},\"bugs\":{\"zh-cn\":\"Bug\\u6570\",\"zh-tw\":\"Bug\\u6570\",\"en\":\"Bugs\"},\"resolutions\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\",\"zh-tw\":\"\\u89e3\\u51b3Bug\\u6570\",\"en\":\"Solved Bugs\"},\"bugthanstory\":{\"zh-cn\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\",\"zh-tw\":\"Bug\\/\\u5b8c\\u6210\\u9700\\u6c42\",\"en\":\"Bug\\/Finished Story\"},\"seriousBugs\":{\"zh-cn\":\"\\u91cd\\u8981Bug\\u6570\",\"zh-tw\":\"\\u91cd\\u8981Bug\\u6570\",\"en\":\"Serious Bugs\"},\"seriousBugsPercent\":{\"zh-cn\":\"\\u4e25\\u91cdbug\\u6bd4\\u7387\",\"zh-tw\":\"\\u4e25\\u91cdbug\\u6bd4\\u7387\",\"en\":\"Serious Bugs %\"}}', '{\"group1\":\"name\",\"group2\":\"\",\"reportField\":[\"stories\",\"doneStory\",\"bugs\",\"resolutions\",\"bugthanstory\",\"seriousBugs\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"doneStory\",\"bugs\",\"resolutions\",\"bugthanstory\",\"seriousBugs\"],\"percent\":{\"5\":\"1\"},\"contrast\":{\"5\":\"bugs\"},\"showAlone\":{\"5\":\"1\"}}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u4ea7\\u54c1\\u7684\\u9700\\u6c42\\u6570\\uff0c\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u603b\\u6570\\uff0cBug\\u6570\\uff0c\\u89e3\\u51b3\\u7684Bug\\u603b\\u6570\\uff0cBug\\/\\u9700\\u6c42\\uff0c\\u91cd\\u8981Bug\\u6570\\u91cf(\\u4e25\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u4e8e3)\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u7522\\u54c1\\u7684\\u9700\\u6c42\\u6578\\uff0c\\u5b8c\\u6210\\u7684\\u9700\\u6c42\\u7e3d\\u6578\\uff0cBug\\u6578\\uff0c\\u89e3\\u6c7a\\u7684Bug\\u7e3d\\u6578\\uff0cBug\\/\\u9700\\u6c42\\uff0c\\u91cd\\u8981Bug\\u6578\\u91cf(\\u56b4\\u91cd\\u7a0b\\u5ea6\\u4e0d\\u5927\\u65bc3)\\u3002\",\"en\":\"Serious Bug (severity is less than 3).\",\"de\":\"Serious Bug (severity is less than 3).\",\"fr\":\"Serious Bug (severity is less than 3).\"}', 'admin', '2015-07-23 17:17:40'), +--('user-login', '{\"zh-cn\":\"\\u5458\\u5de5\\u767b\\u5f55\\u6b21\\u6570\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u54e1\\u5de5\\u767b\\u9304\\u6b21\\u6578\\u7d71\\u8a08\\u8868\",\"en\":\"Login Times\",\"de\":\"Login Times\",\"fr\":\"Login Times\"}', ',staff', 'select actor,LEFT(`date`,10) as `day` from TABLE_ACTION where `action`=\'login\' and if($startDate=\'\',1,`date`>=$startDate) and if($endDate=\'\',1,`date`<=$endDate) order by `date` asc, actor asc', '{\"varName\":[\"startDate\",\"endDate\"],\"showName\":[\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"date\",\"date\"],\"selectList\":[\"user\",\"user\"],\"default\":[\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"actor\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"day\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u5b9e\\u73b0\\u5458\\u5de5\\u767b\\u5f55\\u6b21\\u6570\\u7edf\\u8ba1\\u62a5\\u8868\\uff0c\\u6309\\u7167\\u5929\\u7edf\\u8ba1\\u6bcf\\u5929\\u6bcf\\u4e2a\\u4eba\\u7684\\u767b\\u5f55\\u6b21\\u6570\\uff0c\\u4ee5\\u53ca\\u603b\\u6570\\u3002\",\"zh-tw\":\"\\u5be6\\u73fe\\u54e1\\u5de5\\u767b\\u9304\\u6b21\\u6578\\u7d71\\u8a08\\u5831\\u8868\\uff0c\\u6309\\u7167\\u5929\\u7d71\\u8a08\\u6bcf\\u5929\\u6bcf\\u500b\\u4eba\\u7684\\u767b\\u9304\\u6b21\\u6578\\uff0c\\u4ee5\\u53ca\\u7e3d\\u6578\\u3002\",\"en\":\"The summary of user login times.\",\"de\":\"The summary of user login times.\",\"fr\":\"The summary of user login times.\"}', 'admin', '2015-07-24 14:28:11'), +--('effort', '{\"zh-cn\":\"\\u65e5\\u5fd7\\u6c47\\u603b\\u8868\",\"zh-tw\":\"\\u65e5\\u8a8c\\u532f\\u7e3d\\u8868\",\"en\":\"Effort Summary\",\"de\":\"Effort Summary\",\"fr\":\"Effort Summary\"}', ',staff', 'select t1.account,t1.consumed,t1.`date`,if($dept=\'0\',0,t2.dept) as dept from TABLE_EFFORT as t1 left join TABLE_USER as t2 on t1.account=t2.account where t1.`deleted`=\'0\' and if($startDate=\'\',1,t1.`date`>=$startDate) and if($endDate=\'\',1,t1.`date`<=$endDate) having dept=$dept order by `date` asc', '{\"varName\":[\"dept\",\"startDate\",\"endDate\"],\"showName\":[\"\\u90e8\\u95e8\",\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"select\",\"date\",\"date\"],\"selectList\":[\"dept\",\"user\",\"user\"],\"default\":[\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"date\":{\"zh-cn\":\"\\u65e5\\u671f\",\"zh-tw\":\"\\u65e5\\u671f\",\"en\":\"Date\"},\"consumed\":{\"zh-cn\":\"\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost\"}}', '{\"group1\":\"account\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"date\"],\"reportType\":[\"sum\"],\"sumAppend\":[\"consumed\"]}', 2, '{\"zh-cn\":\"\\u67e5\\u770b\\u67d0\\u4e2a\\u65f6\\u95f4\\u6bb5\\u5185\\u7684\\u65e5\\u5fd7\\u60c5\\u51b5\\uff0c\\u53ef\\u4ee5\\u6309\\u7167\\u90e8\\u95e8\\u9009\\u62e9\\u3002\",\"zh-tw\":\"\\u67e5\\u770b\\u67d0\\u500b\\u6642\\u9593\\u6bb5\\u5167\\u7684\\u65e5\\u8a8c\\u60c5\\u6cc1\\uff0c\\u53ef\\u4ee5\\u6309\\u7167\\u90e8\\u9580\\u9078\\u64c7\\u3002\",\"en\":\"Effort summary of users.\",\"de\":\"Effort summary of users\",\"fr\":\"Effort summary of users\"}', 'admin', '2015-07-27 13:53:32'), +--('company-dynamic', '{\"zh-cn\":\"\\u516c\\u53f8\\u52a8\\u6001\\u6c47\\u603b\\u8868\",\"zh-tw\":\"\\u516c\\u53f8\\u52d5\\u614b\\u532f\\u7e3d\\u8868\",\"en\":\"Company Dynamics\",\"de\":\"Company Dynamics\",\"fr\":\"Company Dynamics\"}', ',staff', 'select t1.day,t2.userlogin,t3.consumed,t4.storyopen,t5.storyclose,t6.taskopen,t7.taskfinish,t8.bugopen,t9.bugresolve,t1.actions from ztv_dayactions as t1 left join ztv_dayuserlogin as t2 on t1.day=t2.day left join ztv_dayeffort as t3 on t1.day=t3.date left join ztv_daystoryopen as t4 on t1.day=t4.day left join ztv_daystoryclose as t5 on t1.day=t5.day left join ztv_daytaskopen as t6 on t1.day=t6.day left join ztv_daytaskfinish as t7 on t1.day=t7.day left join ztv_daybugopen as t8 on t1.day=t8.day left join ztv_daybugresolve as t9 on t1.day=t9.day where if($startDate=\'\',1,t1.day>=$startDate) and if($endDate=\'\',1,t1.day<=$endDate)', '{\"varName\":[\"startDate\",\"endDate\"],\"showName\":[\"\\u8d77\\u59cb\\u65f6\\u95f4\",\"\\u7ed3\\u675f\\u65f6\\u95f4\"],\"requestType\":[\"date\",\"date\"],\"selectList\":[\"user\",\"user\"],\"default\":[\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"day\":{\"zh-cn\":\"\\u65e5\\u671f\",\"zh-tw\":\"\\u65e5\\u671f\",\"en\":\"Date\"},\"userlogin\":{\"zh-cn\":\"\\u767b\\u5f55\\u6b21\\u6570\",\"zh-tw\":\"\\u767b\\u9304\\u6b21\\u6578\",\"en\":\"Login\"},\"consumed\":{\"zh-cn\":\"\\u65e5\\u5fd7\\u5de5\\u65f6\",\"zh-tw\":\"\\u65e5\\u8a8c\\u5de5\\u6642\",\"en\":\"Cost(h)\"},\"storyopen\":{\"zh-cn\":\"\\u65b0\\u589e\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u65b0\\u589e\\u9700\\u6c42\\u6578\",\"en\":\"Open Story\"},\"storyclose\":{\"zh-cn\":\"\\u5173\\u95ed\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u95dc\\u9589\\u9700\\u6c42\\u6578\",\"en\":\"Closed Story\"},\"taskopen\":{\"zh-cn\":\"\\u65b0\\u589e\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u65b0\\u589e\\u4efb\\u52d9\\u6578\",\"en\":\"Open Task\"},\"taskfinish\":{\"zh-cn\":\"\\u5b8c\\u6210\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u4efb\\u52d9\\u6578\",\"en\":\"Finished Task\"},\"bugopen\":{\"zh-cn\":\"\\u65b0\\u589eBug\\u6570\",\"zh-tw\":\"\\u65b0\\u589eBug\\u6578\",\"en\":\"Open Bug\"},\"bugresolve\":{\"zh-cn\":\"\\u89e3\\u51b3Bug\\u6570\",\"zh-tw\":\"\\u89e3\\u51b3Bug\\u6578\",\"en\":\"Resolved bug\"},\"actions\":{\"zh-cn\":\"\\u52a8\\u6001\\u6570\",\"zh-tw\":\"\\u52d5\\u614b\\u6578\",\"en\":\"Dynamics\"}}', '{\"group1\":\"day\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"userlogin\",\"consumed\",\"storyopen\",\"storyclose\",\"taskopen\",\"taskfinish\",\"bugopen\",\"bugresolve\",\"actions\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"userlogin\",\"consumed\",\"storyopen\",\"storyclose\",\"taskopen\",\"taskfinish\",\"bugopen\",\"bugresolve\",\"actions\"]}', 2, '{\"zh-cn\":\"\\u53ef\\u4ee5\\u6307\\u5b9a\\u4e00\\u4e2a\\u65f6\\u671f\\uff0c\\u5217\\u51fa\\u76f8\\u5e94\\u7684\\u6570\\u636e\\uff1a1. \\u6bcf\\u5929\\u7684\\u767b\\u5f55\\u6b21\\u6570\\u30022. \\u6bcf\\u5929\\u7684\\u65e5\\u5fd7\\u5de5\\u65f6\\u91cf\\u30023. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u9700\\u6c42\\u6570\\u30024. \\u6bcf\\u5929\\u5173\\u95ed\\u7684\\u9700\\u6c42\\u6570\\u30025. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u4efb\\u52a1\\u6570\\u30026. \\u6bcf\\u5929\\u5b8c\\u6210\\u7684\\u4efb\\u52a1\\u6570\\u30027. \\u6bcf\\u5929\\u65b0\\u589e\\u7684Bug\\u6570\\u30028. \\u6bcf\\u5929\\u89e3\\u51b3\\u7684Bug\\u6570\\u30029. \\u6bcf\\u5929\\u7684\\u52a8\\u6001\\u6570\\u3002\",\"zh-tw\":\"\\u53ef\\u4ee5\\u6307\\u5b9a\\u4e00\\u500b\\u6642\\u671f\\uff0c\\u5217\\u51fa\\u76f8\\u61c9\\u7684\\u6578\\u64da\\uff1a1. \\u6bcf\\u5929\\u7684\\u767b\\u9304\\u6b21\\u6578\\u30022. \\u6bcf\\u5929\\u7684\\u65e5\\u8a8c\\u5de5\\u6642\\u91cf\\u30023. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u9700\\u6c42\\u6578\\u30024. \\u6bcf\\u5929\\u95dc\\u9589\\u7684\\u9700\\u6c42\\u6578\\u30025. \\u6bcf\\u5929\\u65b0\\u589e\\u7684\\u4efb\\u52d9\\u6578\\u30026. \\u6bcf\\u5929\\u5b8c\\u6210\\u7684\\u4efb\\u52d9\\u6578\\u30027. \\u6bcf\\u5929\\u65b0\\u589e\\u7684Bug\\u6578\\u30028. \\u6bcf\\u5929\\u89e3\\u6c7a\\u7684Bug\\u6578\\u30029. \\u6bcf\\u5929\\u7684\\u52d5\\u614b\\u6578\\u3002\",\"en\":\"The summary of company dynamics\",\"de\":\"The summary of company dynamics\",\"fr\":\"The summary of company dynamics\"}', 'admin', '2015-07-27 15:09:42'), +--('bug-resolve', '{\"zh-cn\":\"Bug\\u89e3\\u51b3\\u8868\",\"zh-tw\":\"Bug\\u89e3\\u6c7a\\u8868\",\"en\":\"Solved Bugs\",\"de\":\"Solved Bugs\",\"fr\":\"Solved Bugs\"}', ',test', 'select *,if($product=\'\',0,product) as customproduct from TABLE_BUG where deleted=\'0\' and resolution!=\'\' and if($startDate=\'\',1,resolvedDate>=$startDate) and if($endDate=\'\',1,resolvedDate<=$endDate) having customproduct=$product', '{\"varName\":[\"product\",\"startDate\",\"endDate\"],\"showName\":[\"\\u4ea7\\u54c1\",\"\\u89e3\\u51b3\\u65e5\\u671f\\u5f00\\u59cb\",\"\\u89e3\\u51b3\\u65e5\\u671f\\u7ed3\\u675f\"],\"requestType\":[\"select\",\"date\",\"date\"],\"selectList\":[\"product\",\"user\",\"user\"],\"default\":[\"\",\"$MONTHBEGIN\",\"$MONTHEND\"]}', '{\"count\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"done\":{\"zh-cn\":\"\\u5b8c\\u6210\\u6570\",\"zh-tw\":\"\\u5b8c\\u6210\\u6570\",\"en\":\"Done\"}}', '{\"group1\":\"resolvedBy\",\"isUser\":{\"group1\":[\"1\"]},\"group2\":\"\",\"reportField\":[\"resolution\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"],\"reportTotal\":[\"1\"],\"percent\":[\"1\"],\"contrast\":[\"crystalTotal\"],\"showAlone\":[\"1\"]}', 2, '{\"zh-cn\":\"\\u5217\\u51fa\\u89e3\\u51b3\\u7684Bug\\u603b\\u6570\\uff0c\\u89e3\\u51b3\\u65b9\\u6848\\u7684\\u5206\\u5e03\\uff0c\\u5360\\u7684\\u6bd4\\u4f8b\\uff08\\u8be5\\u7528\\u6237\\u89e3\\u51b3\\u7684Bug\\u7684\\u6570\\u91cf\\u5360\\u6240\\u6709\\u7684\\u89e3\\u51b3\\u7684Bug\\u7684\\u6570\\u91cf)\\u3002\",\"zh-tw\":\"\\u5217\\u51fa\\u89e3\\u6c7a\\u7684Bug\\u7e3d\\u6578\\uff0c\\u89e3\\u6c7a\\u65b9\\u6848\\u7684\\u5206\\u5e03\\uff0c\\u5360\\u7684\\u6bd4\\u4f8b\\uff08\\u8a72\\u7528\\u6236\\u89e3\\u6c7a\\u7684Bug\\u7684\\u6578\\u91cf\\u5360\\u6240\\u6709\\u7684\\u89e3\\u6c7a\\u7684Bug\\u7684\\u6578\\u91cf)\\u3002\",\"en\":\"percentage:self resolved \\/ all resolved\",\"de\":\"percentage:self resolved \\/ all resolved\",\"fr\":\"percentage:self resolved \\/ all resolved\"}', 'admin', '2015-07-24 13:44:25'), +--('project-progress', '{\"zh-cn\":\"\\u9879\\u76ee\\u8fdb\\u5c55\\u8868\",\"zh-tw\":\"\\u9805\\u76ee\\u9032\\u5c55\\u8868\",\"en\":\"Project Progress Report\",\"de\":\"Project Progress Report\",\"fr\":\"Project Progress Report\",\"vi\":\"Project Progress Report\",\"ja\":\"Project Progress Report\"}', ',project', 'select t1.id,t4.name as project,t4.id,IF(t4.multiple="1",t1.name,"") as execution,t1.status,t2.number as tasks,round(t2.consumed,2) as consumed,round(t2.`left`,2) as `left`,t3.stories,t2.undone as undoneTask,t3.undone as undoneStory,t2.totalReal from TABLE_EXECUTION as t1 \r\nleft join ztv_executionsummary as t2 on t1.id=t2.execution\r\nleft join ztv_projectstories as t3 on t1.id=t3.execution\r\nleft join TABLE_PROJECT as t4 on t4.id=t1.project\r\nwhere t1.deleted=\'0\' and t1.type in (\'sprint\',\'stage\') and if($project=\'\',1,t4.id=$project) and if($execution=\'\',1,t1.id=$execution) and if($status=\'\',1,t1.status=$status)', '{\"varName\":[\"project\",\"execution\",\"status\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\",\"\\u6267\\u884c\\u72b6\\u6001\"],\"requestType\":[\"select\",\"select\",\"select\"],\"selectList\":[\"project\",\"execution\",\"project.status\"],\"default\":[\"\",\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"tasks\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u4efb\\u52a1\\u6570\",\"en\":\"Tasks\"},\"undoneStory\":{\"zh-cn\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"en\":\"Undone Story\"},\"undoneTask\":{\"zh-cn\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"en\":\"Undone Task\"},\"consumed\":{\"zh-cn\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost(h)\"},\"left\":{\"zh-cn\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"zh-tw\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"en\":\"Left(h)\"},\"consumedPercent\":{\"zh-cn\":\"\\u8fdb\\u5ea6\",\"zh-tw\":\"\\u8fdb\\u5ea6\",\"en\":\"Process\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"stories\",\"undoneStory\",\"tasks\",\"undoneTask\",\"left\",\"consumed\"],\"reportType\":[\"sum\",\"sum\",\"sum\",\"sum\",\"sum\",\"sum\"],\"sumAppend\":[\"stories\",\"undoneStory\",\"tasks\",\"undoneTask\",\"left\",\"consumed\"],\"percent\":{\"5\":\"1\"},\"contrast\":{\"5\":\"totalReal\"},\"showAlone\":{\"5\":\"1\"}}', 2, '{\"zh-cn\":\"\\u9879\\u76ee\\u7684\\u9700\\u6c42\\u6570\\uff0c\\u4efb\\u52a1\\u6570\\uff0c\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\\uff0c\\u5269\\u4f59\\u5de5\\u65f6\\uff0c\\u5269\\u4f59\\u9700\\u6c42\\u6570\\uff0c\\u5269\\u4f59\\u4efb\\u52a1\\u6570\\uff0c\\u8fdb\\u5ea6\\u3002\",\"zh-tw\":\"\\u9805\\u76ee\\u7684\\u9700\\u6c42\\u6578\\uff0c\\u4efb\\u52d9\\u6578\\uff0c\\u5df2\\u6d88\\u8017\\u5de5\\u6642\\uff0c\\u5269\\u9918\\u5de5\\u6642\\uff0c\\u5269\\u9918\\u9700\\u6c42\\u6578\\uff0c\\u5269\\u9918\\u4efb\\u52d9\\u6578\\uff0c\\u9032\\u5ea6\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-07-23 14:03:06'), +--('projectbug-type', '{\"zh-cn\":\"\\u9879\\u76eeBug\\u7c7b\\u578b\\u7edf\\u8ba1\\u8868\",\"zh-tw\":\"\\u9805\\u76eeBug\\u985e\\u578b\\u7d71\\u8a08\\u8868\",\"en\":\"Project Bug Type\",\"de\":\"Project Bug Type\",\"fr\":\"Project Bug Type\",\"vi\":\"Project Bug Type\",\"ja\":\"Project Bug Type\"}', ',project,test', 'select t1.id,t3.name as project,t3.id,IF(t3.multiple="1",t1.name,"") as execution,t2.id as bugID,t2.type from TABLE_EXECUTION as t1 \r\nleft join TABLE_BUG as t2 on t1.id=t2.execution\r\nleft join TABLE_PROJECT as t3 on t3.id=t1.project\r\nwhere t1.deleted=\'0\' and t2.deleted=\'0\' and if($project=\'\',1,t3.id=$project) and if($execution=\'\',1,t1.id=$execution)', '{\"varName\":[\"project\",\"execution\"],\"showName\":[\"\\u9879\\u76ee\\u5217\\u8868\",\"\\u6267\\u884c\\u5217\\u8868\"],\"requestType\":[\"select\",\"select\"],\"selectList\":[\"project\",\"execution\"],\"default\":[\"\",\"\"]}', '{\"stories\":{\"zh-cn\":\"\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u9700\\u6c42\\u6570\",\"en\":\"Stories\"},\"tasks\":{\"zh-cn\":\"\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u4efb\\u52a1\\u6570\",\"en\":\"Tasks\"},\"undoneStory\":{\"zh-cn\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u9700\\u6c42\\u6570\",\"en\":\"Undone Story\"},\"undoneTask\":{\"zh-cn\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"zh-tw\":\"\\u5269\\u4f59\\u4efb\\u52a1\\u6570\",\"en\":\"Undone Task\"},\"consumed\":{\"zh-cn\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"zh-tw\":\"\\u5df2\\u6d88\\u8017\\u5de5\\u65f6\",\"en\":\"Cost(h)\"},\"left\":{\"zh-cn\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"zh-tw\":\"\\u5269\\u4f59\\u5de5\\u65f6\",\"en\":\"Left(h)\"},\"consumedPercent\":{\"zh-cn\":\"\\u8fdb\\u5ea6\",\"zh-tw\":\"\\u8fdb\\u5ea6\",\"en\":\"Process\"},\"execution\":{\"zh-cn\":\"\\u6267\\u884c\\u540d\\u79f0\"}}', '{\"group1\":\"project\",\"group2\":\"execution\",\"reportField\":[\"type\"],\"reportType\":[\"count\"],\"sumAppend\":[\"\"]}', 2, '{\"zh-cn\":\"\\u6309\\u7167\\u9879\\u76ee\\u7edf\\u8ba1Bug\\u7684\\u7c7b\\u578b\\u5206\\u5e03\\u60c5\\u51b5\\u3002\",\"zh-tw\":\"\\u6309\\u7167\\u9805\\u76ee\\u7d71\\u8a08Bug\\u7684\\u985e\\u578b\\u5206\\u5e03\\u60c5\\u6cc1\\u3002\",\"en\":\"\",\"de\":\"\",\"fr\":\"\",\"vi\":\"\",\"ja\":\"\"}', 'admin', '2015-08-04 13:54:22'); REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES @@ -8858,7 +8861,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowfield` ( `createdDate` datetime NOT NULL, `editedBy` varchar(30) NOT NULL, `editedDate` datetime NOT NULL, - PRIMARY KEY `id` (`id`), + PRIMARY KEY (`id`), KEY `module` (`module`), KEY `field` (`field`), KEY `order` (`order`), @@ -8940,7 +8943,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowrelationlayout` ( `action` varchar(50) NOT NULL, `field` varchar(50) NOT NULL, `order` smallint(5) unsigned NOT NULL, - PRIMARY KEY `id` (`id`), + PRIMARY KEY (`id`), KEY `prev` (`prev`), KEY `next` (`next`), KEY `action` (`action`), @@ -8974,7 +8977,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowsql` ( `createdDate` datetime NOT NULL, `editedBy` varchar(30) NOT NULL, `editedDate` datetime NOT NULL, - PRIMARY KEY `id` (`id`), + PRIMARY KEY (`id`), KEY `module` (`module`), KEY `field` (`field`), KEY `action` (`action`) @@ -9011,10 +9014,10 @@ CREATE TABLE IF NOT EXISTS `zt_workflowreport` ( `order` smallint(5) unsigned NOT NULL DEFAULT '0', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - PRIMARY KEY `id` (`id`) + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -REPLACE INTO `zt_workflowrule` VALUES (1,'system','必填','notempty','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(2,'system','唯一','unique','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(3,'system','日期','date','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(4,'system','email','email','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(5,'system','数字','float','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(6,'system','电话','phone','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),(7,'system','IP','ip','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'); +REPLACE INTO `zt_workflowrule` VALUES ('system','必填','notempty','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','唯一','unique','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','日期','date','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','email','email','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','数字','float','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','电话','phone','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','IP','ip','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'); REPLACE INTO `zt_grouppriv` VALUES (1,'apppriv','flow'), @@ -9091,78 +9094,76 @@ REPLACE INTO `zt_grouppriv` VALUES (1,'workflowrule','edit'), (1,'workflowrule','view'); -INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `datasource`, `view`, `keyField`, `valueField`) VALUES -('system', '产品', 'products', '1', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), -('system', '项目', 'projects', '1', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品线', 'productLines', '1', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '需求', 'stories', '1', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), -('sql', '任务', 'tasks', '1', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), -('sql', 'Bug', 'bugs', '1', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), -('system', '权限分组', 'groups', '1', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'users', '1', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品分支', 'branches', '1', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '版本', 'builds', '1', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), -('sql', '模块', 'modules', '1', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('sql', '计划', 'plans', '1', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), -('lang', '产品类型', 'productType', '1', 'productType', '', '', ''), -('lang', '产品状态', 'productStatus', '1', 'productStatus', '', '', ''), -('lang', '产品访问控制', 'productAcl', '1', 'productAcl', '', '', ''), -('lang', '项目类型', 'projectType', '1', 'projectType', '', '', ''), -('lang', '项目状态', 'projectStatus', '1', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'projectAcl', '1', 'projectAcl', '', '', ''), -('lang', '发布状态', 'releaseStatus', '1', 'releaseStatus', '', '', ''), -('lang', '需求来源', 'storySource', '1', 'storySource', '', '', ''), -('lang', '需求优先级', 'storyPri', '1', 'storyPri', '', '', ''), -('lang', '需求状态', 'storyStatus', '1', 'storyStatus', '', '', ''), -('lang', '需求阶段', 'storyStage', '1', 'storyStage', '', '', ''), -('lang', 'Bug严重程度', 'bugSeverity', '1', 'bugSeverity', '', '', ''), -('lang', 'Bug优先级', 'bugPri', '1', 'bugPri', '', '', ''), -('lang', 'Bug类型', 'bugType', '1', 'bugType', '', '', ''), -('lang', 'Bug操作系统', 'bugOs', '1', 'bugOs', '', '', ''), -('lang', 'Bug浏览器', 'bugBrowser', '1', 'bugBrowser', '', '', ''), -('lang', 'Bug状态', 'bugStatus', '1', 'bugStatus', '', '', ''), -('lang', '任务类型', 'taskType', '1', 'taskType', '', '', ''), -('lang', '任务优先级', 'taskPri', '1', 'taskPri', '', '', ''), -('lang', '任务状态', 'taskStatus', '1', 'taskStatus', '', '', ''), -('lang', '测试用例优先级', 'testcasePri', '1', 'testcasePri', '', '', ''), -('lang', '测试用例类型', 'testcaseType', '1', 'testcaseType', '', '', ''), -('lang', '测试用例阶段', 'testcaseStage', '1', 'testcaseStage', '', '', ''), -('lang', '测试用例状态', 'testcaseStatus', '1', 'testcaseStatus', '', '', ''), -('lang', '测试单优先级', 'testtaskPri', '1', 'testtaskPri', '', '', ''), -('lang', '测试单状态', 'testtaskStatus', '1', 'testtaskStatus', '', '', ''), -('lang', '反馈状态', 'feedbackStatus', '1', 'feedbackStatus', '', '', ''), -('lang', 'Bug解决方案', 'bugResolution', '1', 'bugResolution', '', '', ''), -('sql', '用例', 'cases', '1', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), -('system', '反馈分支', 'feedbackModules', '1', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '需求类型', 'storyType', '1', 'storyType', '', '', ''), -('system', '执行', 'executions', '1', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), -('lang', '项目模型', 'projectModel', '1', 'projectModel', '', '', ''), -('lang', '反馈类型', 'feedbackType', '1', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'feedbackSolution', '1', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'taskReason', '1', 'taskReason', '', '', ''), -('lang', '套件权限', 'testsuiteAuth', '1', 'testsuiteAuth', '', '', ''), -('system', '项目集', 'programs', '1', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), -('lang', '需求关闭原因', 'storyClosedReason', '1', 'storyClosedReason', '', '', ''); - -INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `datasource`, `view`, `keyField`, `valueField`) VALUES -('system', '项目', 'liteprojects', '1', 'lite', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '任务', 'litetasks', '1', 'lite', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), -('system', '权限分组', 'litegroups', '1', 'lite', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'liteusers', '1', 'lite', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '模块', 'litemodules', '1', 'lite', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('lang', '项目类型', 'liteprojectType', '1', 'lite', 'projectType', '', '', ''), -('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'projectAcl', '', '', ''), -('lang', '任务类型', 'litetaskType', '1', 'lite', 'taskType', '', '', ''), -('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'taskPri', '', '', ''), -('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'taskStatus', '', '', ''), -('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'feedbackStatus', '', '', ''), -('system', '反馈分支', 'litefeedbackModules', '1', 'lite', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'taskReason', '', '', ''); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `datasource`, `view`, `keyField`, `valueField`) VALUES +('system', '产品', 'products', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), +('system', '项目', 'projects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品线', 'productLines', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '需求', 'stories', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), +('sql', '任务', 'tasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), +('sql', 'Bug', 'bugs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), +('system', '权限分组', 'groups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'users', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品分支', 'branches', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '版本', 'builds', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), +('sql', '模块', 'modules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('sql', '计划', 'plans', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), +('lang', '产品类型', 'productType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productType', '', '', ''), +('lang', '产品状态', 'productStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productStatus', '', '', ''), +('lang', '产品访问控制', 'productAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productAcl', '', '', ''), +('lang', '项目类型', 'projectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectType', '', '', ''), +('lang', '项目状态', 'projectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'projectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), +('lang', '发布状态', 'releaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'releaseStatus', '', '', ''), +('lang', '需求来源', 'storySource', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storySource', '', '', ''), +('lang', '需求优先级', 'storyPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyPri', '', '', ''), +('lang', '需求状态', 'storyStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyStatus', '', '', ''), +('lang', '需求阶段', 'storyStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyStage', '', '', ''), +('lang', 'Bug严重程度', 'bugSeverity', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugSeverity', '', '', ''), +('lang', 'Bug优先级', 'bugPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugPri', '', '', ''), +('lang', 'Bug类型', 'bugType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugType', '', '', ''), +('lang', 'Bug操作系统', 'bugOs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugOs', '', '', ''), +('lang', 'Bug浏览器', 'bugBrowser', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugBrowser', '', '', ''), +('lang', 'Bug状态', 'bugStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugStatus', '', '', ''), +('lang', '任务类型', 'taskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskType', '', '', ''), +('lang', '任务优先级', 'taskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskPri', '', '', ''), +('lang', '任务状态', 'taskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), +('lang', '测试用例优先级', 'testcasePri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcasePri', '', '', ''), +('lang', '测试用例类型', 'testcaseType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseType', '', '', ''), +('lang', '测试用例阶段', 'testcaseStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseStage', '', '', ''), +('lang', '测试用例状态', 'testcaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseStatus', '', '', ''), +('lang', '测试单优先级', 'testtaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testtaskPri', '', '', ''), +('lang', '测试单状态', 'testtaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testtaskStatus', '', '', ''), +('lang', '反馈状态', 'feedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), +('lang', 'Bug解决方案', 'bugResolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugResolution', '', '', ''), +('sql', '用例', 'cases', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), +('system', '反馈分支', 'feedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '需求类型', 'storyType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyType', '', '', ''), +('system', '执行', 'executions', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), +('lang', '项目模型', 'projectModel', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectModel', '', '', ''), +('lang', '反馈类型', 'feedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'feedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'taskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskReason', '', '', ''), +('lang', '套件权限', 'testsuiteAuth', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testsuiteAuth', '', '', ''), +('system', '项目集', 'programs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), +('lang', '需求关闭原因', 'storyClosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyClosedReason', '', '', ''), +('system', '项目', 'liteprojects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '任务', 'litetasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), +('system', '权限分组', 'litegroups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'liteusers', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '模块', 'litemodules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('lang', '项目类型', 'liteprojectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectType', '', '', ''), +('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), +('lang', '任务类型', 'litetaskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskType', '', '', ''), +('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskPri', '', '', ''), +('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), +('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), +('system', '反馈分支', 'litefeedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskReason', '', '', ''); DROP VIEW IF EXISTS `view_datasource_4`; DROP VIEW IF EXISTS `view_datasource_5`; @@ -9649,7 +9650,7 @@ CREATE TABLE IF NOT EXISTS `zt_measrecords` ( -- DROP TABLE IF EXISTS `zt_object`; CREATE TABLE IF NOT EXISTS `zt_object` ( - `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `project` mediumint(8) unsigned NOT NULL, `product` mediumint(8) NOT NULL, `from` mediumint(8) NOT NULL, @@ -9667,7 +9668,8 @@ CREATE TABLE IF NOT EXISTS `zt_object` ( `designEst` char(30) NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, - `deleted` enum('0','1') NOT NULL DEFAULT '0' + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_review`; @@ -9719,7 +9721,7 @@ CREATE TABLE IF NOT EXISTS `zt_reviewcl` ( -- DROP TABLE IF EXISTS `zt_reviewresult`; CREATE TABLE IF NOT EXISTS `zt_reviewresult` ( - `id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` mediumint(8) NOT NULL AUTO_INCREMENT, `review` mediumint(8) NOT NULL, `type` char(30) NOT NULL DEFAULT 'review', `result` char(30) NOT NULL, @@ -9728,6 +9730,7 @@ CREATE TABLE IF NOT EXISTS `zt_reviewresult` ( `remainIssue` char(30) NOT NULL, `createdDate` date NOT NULL, `consumed` float NOT NULL, + PRIMARY KEY (`id`), UNIQUE KEY `reviewer` (`review`,`reviewer`,`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9756,7 +9759,7 @@ CREATE TABLE IF NOT EXISTS `zt_reviewissue` ( -- DROP TABLE IF EXISTS `zt_reviewlist`; CREATE TABLE IF NOT EXISTS `zt_reviewlist` ( - `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `object` char(30) NOT NULL, `category` char(30) NOT NULL, @@ -9768,7 +9771,8 @@ CREATE TABLE IF NOT EXISTS `zt_reviewlist` ( `editedDate` datetime NOT NULL, `assignedBy` varchar(30) NOT NULL, `assignedDate` datetime NOT NULL, - `deleted` enum('0','1') NOT NULL DEFAULT '0' + `deleted` enum('0','1') NOT NULL DEFAULT '0', + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_cmcl`; @@ -13744,7 +13748,7 @@ REPLACE INTO `zt_zoutput` (`id`, `activity`, `name`, `content`, `optional`, `tai (248, 168, '项目度量数据库', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 615, '0'), (249, 169, '《量化项目计划及跟踪表》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 630, '0'); -REPLACE INTO `zt_basicmeas` VALUES +REPLACE INTO `zt_basicmeas` (`id`, `purpose`, `scope`, `object`, `name`, `code`, `unit`, `configure`, `params`, `definition`, `source`, `collectType`, `collectConf`, `execTime`, `collectedBy`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `order`, `deleted`) VALUES (2,'scale','project','userRequest','项目用户需求初始规模','pgmURInitScale','故事点或功能点','CREATE FUNCTION qc_pgmurinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'URS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'URS\',\'requestEst\') into scale__DELIMITER__\r\n return scale__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个用户需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个用户需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:19:41',10,'0'), (3,'scale','project','softRequest','项目软件需求初始规模','pgmSRInitScale','故事点或功能点','CREATE FUNCTION qc_pgmsrinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float (10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'SRS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'SRS\',\'storyEst\') into scale __DELIMITER__\r\n return scale __DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u9700\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个软件需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个软件需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:21:53',15,'0'), (4,'scale','project','userRequest','项目用户需求实时规模','pgmURRealScale','故事点或功能点','CREATE FUNCTION `qc_pgmurrealscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare totalEstimate float(10,2) default 0__DELIMITER__\r\n select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where project=$project and type=\'requirement\' and deleted=\'0\' and closedReason not in (\'subdivided\', \'duplicate\', \'willnotdo\', \'cancel\', \'bydesign\') into totalEstimate__DELIMITER__\r\n return totalEstimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目用户需求实际的规模','从需求表中查询该项目下的所有用户需求,对规模进行求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:22:17',20,'0'), From f65d3aa417c06deb43ba90735c5c1f3f0814d84f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=87=91=E5=8B=87?= Date: Sat, 1 Apr 2023 14:22:24 +0000 Subject: [PATCH 3/6] * Install for dmdb. --- lib/base/dao/dao.class.php | 148 ++++++++++-- lib/dao/dm.class.php | 355 +++++++++++++++++++++++++++++ lib/dao/mysql.class.php | 22 ++ lib/dbh/dbh.class.php | 270 +++++++++++++++++++--- module/install/lang/de.php | 1 - module/install/lang/en.php | 1 - module/install/lang/fr.php | 1 - module/install/lang/vi.php | 1 - module/install/lang/zh-cn.php | 1 - module/install/model.php | 9 +- module/install/view/step3.html.php | 1 + 11 files changed, 751 insertions(+), 59 deletions(-) create mode 100644 lib/dao/dm.class.php create mode 100644 lib/dao/mysql.class.php diff --git a/lib/base/dao/dao.class.php b/lib/base/dao/dao.class.php index c585eb2a4b..159611b9fc 100644 --- a/lib/base/dao/dao.class.php +++ b/lib/base/dao/dao.class.php @@ -316,6 +316,18 @@ class baseDAO $this->dbh->commit(); } + /** + * Desc table, show fields. + * + * @param string $tableName + * @access public + * @return array + */ + public function descTable($tableName) + { + return $this->query("DESC $tableName")->fetchAll(); + } + /** * select方法,调用sql::select()。 * The select method, call sql::select(). @@ -372,7 +384,7 @@ class baseDAO **/ try { - $row = $this->dbh->query($sql)->fetch(PDO::FETCH_OBJ); + $row = $this->dbh->rawQuery($sql)->fetch(PDO::FETCH_OBJ); } catch (PDOException $e) { @@ -552,7 +564,7 @@ class baseDAO public function explain($sql = '') { $sql = empty($sql) ? $this->processSQL() : $sql; - $result = $this->dbh->query('explain ' . $sql)->fetch(); + $result = $this->dbh->rawQuery('explain ' . $sql)->fetch(); a($result); } @@ -567,6 +579,26 @@ class baseDAO { $sql = $this->sqlobj->get(); + /* INSERT INTO table VALUES(...) */ + if($this->method == 'insert' and !empty($this->sqlobj->data)) + { + $skipFields = $this->sqlobj->skipFields; + $fields = '('; + $values = 'VALUES('; + foreach($this->sqlobj->data as $field => $value) + { + if(strpos($skipFields, ",$field,") !== false) continue; + $fields .= "`{$field}`,"; + if(is_string($value)) $value = $this->sqlobj->quote($value); + $values .= $value . ','; + } + $fields = substr($fields, 0, -1); + $values = substr($values, 0, -1); + $fields .= ')'; + $values .= ')'; + $sql .= $fields . ' ' . $values; + } + /** * 如果是magic模式,处理表和字段。 * If the mode is magic, process the $fields and $table. @@ -670,7 +702,7 @@ class baseDAO if($sql) { - $sql = trim($sql); + $sql = $this->dbh->formatSQL($sql); $sqlMethod = strtolower(substr($sql, 0, strpos($sql, ' '))); $this->setMethod($sqlMethod); $this->sqlobj = new sql(); @@ -688,11 +720,11 @@ class baseDAO if($this->slaveDBH and $method == 'select') { - return $this->slaveDBH->query($sql); + return $this->slaveDBH->rawQuery($sql); } else { - return $this->dbh->query($sql); + return $this->dbh->rawQuery($sql); } } catch (PDOException $e) @@ -1101,7 +1133,7 @@ class baseDAO if($funcName == 'unique') { $args = func_get_args(); - $sql = "SELECT COUNT(*) AS count FROM $this->table WHERE `$fieldName` = " . $this->sqlobj->quote($value); + $sql = "SELECT COUNT(*) AS `count` FROM $this->table WHERE `$fieldName` = " . $this->sqlobj->quote($value); if($condition) $sql .= ' AND ' . $condition; try { @@ -1339,7 +1371,7 @@ class baseDAO { $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); $sql = "DESC $this->table"; - $rawFields = $this->dbh->query($sql)->fetchAll(); + $rawFields = $this->dbh->rawQuery($sql)->fetchAll(); $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); } catch (PDOException $e) @@ -1347,6 +1379,7 @@ class baseDAO $this->sqlError($e); } + $fields = array(); foreach($rawFields as $rawField) { $firstPOS = strpos($rawField->type, '('); @@ -1447,7 +1480,7 @@ class baseSQL public $dbh; /** - * 更新或插入日期。 + * 更新或插入的数据。 * The data to update or insert. * * @var mix @@ -1455,6 +1488,32 @@ class baseSQL */ public $data; + /** + * 不需要拼接SQL的字段 + * skipFields + * + * @var mixed + * @access public + */ + public $skipFields; + + /** + * SQL 方法, insert, update, delete ... + * SQL method, insert, update, delete ... + * + * @var mixed + * @access public + */ + public $method; + + /** + * setField + * + * @var mixed + * @access public + */ + public $setField; + /** * 是否是第一次设置。 * Is the first time to call set. @@ -1528,6 +1587,19 @@ class baseSQL return new sql($table); } + /** + * 设置SQL的方法。 + * Set SQL method. + * + * @param string $method + * @access public + * @return void + */ + public function setMethod($method = '') + { + $this->method = $method; + } + /** * select语句。 * The sql is select. @@ -1539,6 +1611,7 @@ class baseSQL public static function select($field = '*') { $sqlobj = self::factory(); + $sqlobj->setMethod('select'); $sqlobj->sql = "SELECT $field "; return $sqlobj; } @@ -1554,6 +1627,7 @@ class baseSQL public static function update($table) { $sqlobj = self::factory(); + $sqlobj->setMethod('update'); $sqlobj->sql = "UPDATE $table SET "; return $sqlobj; } @@ -1569,7 +1643,8 @@ class baseSQL public static function insert($table) { $sqlobj = self::factory(); - $sqlobj->sql = "INSERT INTO $table SET "; + $sqlobj->setMethod('insert'); + $sqlobj->sql = "INSERT INTO $table "; return $sqlobj; } @@ -1584,6 +1659,7 @@ class baseSQL public static function replace($table) { $sqlobj = self::factory(); + $sqlobj->setMethod('replace'); $sqlobj->sql = "REPLACE $table SET "; return $sqlobj; } @@ -1598,6 +1674,7 @@ class baseSQL public static function delete() { $sqlobj = self::factory(); + $sqlobj->setMethod('delete'); $sqlobj->sql = "DELETE "; return $sqlobj; } @@ -1616,15 +1693,18 @@ class baseSQL $data = (object) $data; if($skipFields) $skipFields = ',' . str_replace(' ', '', $skipFields) . ','; - foreach($data as $field => $value) + if($this->method != 'insert') { - if(!preg_match('|^\w+$|', $field)) + foreach($data as $field => $value) { - unset($data->$field); - continue; + if(!preg_match('|^\w+$|', $field)) + { + unset($data->$field); + continue; + } + if(strpos($skipFields, ",$field,") !== false) continue; + $this->sql .= "`$field` = " . $this->quote($value) . ','; } - if(strpos($skipFields, ",$field,") !== false) continue; - $this->sql .= "`$field` = " . $this->quote($value) . ','; } $this->data = $data; @@ -1676,15 +1756,23 @@ class baseSQL { if($this->inCondition and !$this->conditionIsTrue) return $this; - /* Add ` to avoid keywords of mysql. */ - if(strpos($set, '=') ===false) + if($this->method == 'update') { - $set = str_replace(',', '', $set); - $set = '`' . str_replace('`', '', $set) . '`'; + /* Add ` to avoid keywords of mysql. */ + if(strpos($set, '=') ===false) + { + $set = str_replace(',', '', $set); + } + + $this->sql .= $this->isFirstSet ? " $set" : ", $set"; + if($this->isFirstSet) $this->isFirstSet = false; + } + elseif($this->method == 'insert') + { + $this->setField = $value; + $this->data->$value = ''; } - $this->sql .= $this->isFirstSet ? " $set" : ", $set"; - if($this->isFirstSet) $this->isFirstSet = false; return $this; } @@ -1796,7 +1884,7 @@ class baseSQL } else { - $condition = $arg1; + $condition = ctype_alnum($arg1) ? '`' . $arg1 . '`' : $arg1; } if(!$this->inMark) $this->sql .= ' ' . DAO::WHERE ." $condition "; @@ -1815,6 +1903,8 @@ class baseSQL public function andWhere($condition, $addMark = false) { if($this->inCondition and !$this->conditionIsTrue) return $this; + if(ctype_alnum($condition)) $condition = '`' . $condition . '`'; + $mark = $addMark ? '(' : ''; $this->sql .= " AND {$mark} $condition "; return $this; @@ -1831,6 +1921,8 @@ class baseSQL public function orWhere($condition) { if($this->inCondition and !$this->conditionIsTrue) return $this; + if(ctype_alnum($condition)) $condition = '`' . $condition . '`'; + $this->sql .= " OR $condition "; return $this; } @@ -1846,7 +1938,17 @@ class baseSQL public function eq($value) { if($this->inCondition and !$this->conditionIsTrue) return $this; - $this->sql .= " = " . $this->quote($value); + + if($this->method == 'insert') + { + $field = $this->setField; + $this->data->$field = $value; + } + else + { + $this->sql .= " = " . $this->quote($value); + } + return $this; } diff --git a/lib/dao/dm.class.php b/lib/dao/dm.class.php new file mode 100644 index 0000000000..2b7f618090 --- /dev/null +++ b/lib/dao/dm.class.php @@ -0,0 +1,355 @@ +table}'"; + $rawFields = $this->dbh->rawQuery($sql)->fetchAll(); + + $fields = array(); + foreach($rawFields as $rawField) + { + $field = new stdClass(); + $field->Field = $rawField->field; + $fields[] = $field; + } + return $fields; + } + + /** + * select方法,调用sql::select()。 + * The select method, call sql::select(). + * + * @param string $fields + * @access public + * @return static|sql|baseDAO the dao object self. + */ + public function select($fields = '*') + { + /* Split by ','. */ + $fieldList = preg_split("/,(?![^(]+\))/", $fields); + foreach($fieldList as $key => $field) + { + $field = trim($field); + $pos = strrpos($field, ' '); + if($pos) + { + $originField = substr($field, 0, $pos); + $alias = trim(substr($field, $pos)); + + $fieldList[$key] = $this->formatField($originField, $alias); + } + else + { + $fieldList[$key] = $this->formatField($field, ''); + } + } + + return parent::select(implode(',', $fieldList)); + } + + private function formatField($originField, $alias) + { + /* Format originField. */ + $replace = array( + 'GROUP_CONCAT' => 'WM_CONCAT', + ); + + if(strcasecmp($originField, 'distinct') !== 0) + { + $tableField = explode('.', $originField); + if(count($tableField) == 2 and ctype_alnum($tableField[1]) and $tableField[1] != '*') + { + $originField = $tableField[0] . '."' . $tableField[1] . '"'; + } + elseif(count($tableField) == 1 and ctype_alnum($tableField[0]) and $tableField[0] != '*') + { + $originField = '"' . $tableField[0] . '"'; + } + $originField = str_ireplace(array_keys($replace), array_values($replace), $originField); + } + + /* Format alias. */ + if($alias and ctype_alnum($alias)) $alias = '"' . $alias . '"'; + + return $originField . ' ' . $alias; + } + + /** + * 创建WHERE部分。 + * Create the where part. + * + * @param string $arg1 the field name + * @param string $arg2 the operator + * @param string $arg3 the value + * @access public + * @return static|sql the sql object. + */ + public function where($arg1, $arg2 = null, $arg3 = null) + { + $arg1 = $this->formatWhere($arg1); + return parent::where($arg1, $arg2, $arg3); + } + + /** + * 创建AND部分。 + * Create the AND part. + * + * @param string $condition + * @access public + * @return static|sql the sql object. + */ + public function andWhere($condition = '', $addMark = false) + { + $condition = $this->formatWhere($condition); + return parent::andWhere($condition, $addMark); + } + + /** + * 创建OR部分。 + * Create the OR part. + * + * @param bool $condition + * @access public + * @return static|sql the sql object. + */ + public function orWhere($condition) + { + $condition = $this->formatWhere($condition); + return parent::orWhere($condition); + } + + private function formatWhere($condition) + { + $condition = trim($condition); + if($condition == '1') return '1 = 1'; + + $pos = strrpos($condition, ' '); + if($pos) + { + $originField = substr($condition, 0, $pos); + return $this->formatField($originField, '') . substr($condition, $pos); + } + else + { + return $this->formatField($condition, ''); + } + } + + public function getPKColumns() + { + $sql = "SELECT A.OWNER, A.TABLE_NAME, WM_CONCAT(B.COLUMN_NAME) PK_COLUMNS FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B where A.CONSTRAINT_type = 'P' AND A.OWNER = '{$this->config->db->user}' AND A.TABLE_NAME = '{$this->table}' AND B.OWNER = A.OWNER AND A.TABLE_NAME = B.TABLE_NAME GROUP BY A.OWNER, A.TABLE_NAME;"; + + $content = $this->dbh->query($sql)->fetch(); + return empty($content) ? false : $content->PK_COLUMNS; + } + + /** + * 执行SQL。query()会返回stmt对象,该方法只返回更改或删除的记录数。 + * Execute the sql. It's different with query(), which return the stmt object. But this not. + * + * @param string $sql + * @access public + * @return int the modified or deleted records. 更改或删除的记录数。 + */ + public function exec($sql = '') + { + if($sql) + { + $this->sqlobj = new sql(); + $this->sqlobj->sql = $sql; + } + else + { + $sql = $this->processSQL(); + $this->sqlobj->sql = $sql; + } + + if($this->method == 'replace' && !empty($this->sqlobj->data)) + { + $insertSql = "INSERT INTO {$this->table} "; + $fields = '('; + $values = 'VALUES('; + foreach($this->sqlobj->data as $field => $value) + { + $fields .= "`{$field}`,"; + if(is_string($value)) $value = $this->sqlobj->quote($value); + $values .= $value . ','; + } + $fields = substr($fields, 0, -1); + $values = substr($values, 0, -1); + $fields .= ')'; + $values .= ')'; + $insertSql .= $fields . ' ' . $values; + + $updateSql = str_replace('REPLACE', 'UPDATE', $sql); + $pk = $this->getPKColumns(); + if(!empty($pk) && isset($this->sqlobj->data->{$pk})) $updateSql .= " where {$pk} = '{$this->sqlobj->data->{$pk}}'"; + + $deleteSql = "DELETE FROM {$this->table} WHERE "; + $ingore = array(); + $ingore['`zt_config`'] = array('value'); + foreach($this->sqlobj->data as $field => $value) + { + if(isset($ingore[$this->table]) and in_array($field, $ingore[$this->table])) continue; + $deleteSql .= "`{$field}` = "; + $deleteSql .= is_string($value) ? "'{$value}'" : $value; + $deleteSql .= ' AND '; + } + $deleteSql = rtrim($deleteSql, 'AND '); + + $sql = <<table) unset(dao::$cache[$this->table]); + $this->reset(); + return $this->dbh->exec($sql); + } + catch (PDOException $e) + { + $this->sqlError($e); + } + } + + /** + * 获取一个记录。 + * Fetch one record. + * + * @param string $field 如果已经设置获取的字段,则只返回这个字段的值,否则返回这个记录。 + * if the field is set, only return the value of this field, else return this record + * @access public + * @return object|mixed + */ + public function fetch($field = '') + { + return parent::fetch($field); + } + + /** + * 获取所有记录。 + * Fetch all records. + * + * @param string $keyField 返回以该字段做键的记录 + * the key field, thus the return records is keyed by this field + * @access public + * @return array the records + */ + public function fetchAll($keyField = '') + { + return parent::fetchAll($keyField); + } + + /** + * 获取表的字段类型。 + * Get the defination of fields of the table. + * + * @access public + * @return array + */ + public function getFieldsType() + { + try + { + $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); + $sql = "select * from all_tab_columns where table_name='{$this->table}'"; + $rawFields = $this->dbh->rawQuery($sql)->fetchAll(); + $this->dbh->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); + } + catch (PDOException $e) + { + $this->sqlError($e); + } + + $fields = array(); + foreach($rawFields as $rawField) + { + $firstPOS = strpos($rawField->data_type, '('); + $type = substr($rawField->data_type, 0, $firstPOS > 0 ? $firstPOS : strlen($rawField->type)); + $type = str_replace(array('big', 'small', 'medium', 'tiny', 'var'), '', $type); + $field = array(); + + if($type == 'VARCHAR' or $type == 'CHAR') + { + $length = $rawField->data_length; + $field['rule'] = 'length'; + $field['options']['max'] = $length; + $field['options']['min'] = 0; + } + elseif($type == 'INTEGER') + { + $field['rule'] = 'int'; + } + elseif($type == 'FLOAT' or $type == 'DOUBLE') + { + $field['rule'] = 'float'; + } + elseif($type == 'DATE') + { + $field['rule'] = 'date'; + } + elseif($type == 'DATETIME') + { + $field['rule'] = 'datetime'; + } + else + { + $field['rule'] = 'skip'; + } + $fields[$rawField->field] = $field; + } + return $fields; + } +} diff --git a/lib/dao/mysql.class.php b/lib/dao/mysql.class.php new file mode 100644 index 0000000000..261a4957bf --- /dev/null +++ b/lib/dao/mysql.class.php @@ -0,0 +1,22 @@ +driver}:host={$config->host}:{$config->port}"; + $dsn = "{$config->driver}:host={$config->host}:{$config->port};dbname={$config->name}"; + $pdo = new PDO($dsn, $config->user, $config->password); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); @@ -54,23 +56,15 @@ class dbh $pdo->exec("SET NAMES {$config->encoding}"); if(isset($this->config->strictMode) and $this->config->strictMode == false) $pdo->exec("SET @@sql_mode= ''"); } + else if($setSchema) + { + $pdo->exec("SET SCHEMA {$config->name}"); + } - $this->pdo = $pdo; + $this->pdo = $pdo; $this->config = $config; } - /** - * Query sql. - * - * @param string $sql - * @access public - * @return PDOStatement|false - */ - public function query($sql) - { - return $this->pdo->query($sql); - } - /** * Execute sql. * @@ -80,9 +74,50 @@ class dbh */ public function exec($sql) { + $sql = $this->formatSQL($sql); + if(!$sql) return true; + return $this->pdo->exec($sql); } + /** + * Query sql. + * + * @param string $sql + * @access public + * @return PDOStatement|false + */ + public function query($sql) + { + $sql = $this->formatSQL($sql); + return $this->pdo->query($sql); + } + + /** + * Query raw sql. + * + * @param string $sql + * @access public + * @return PDOStatement|false + */ + public function rawQuery($sql) + { + return $this->pdo->query($sql); + } + + /** + * Set attribute. + * + * @param int $attribute + * @param mixed $value + * @access public + * @return bool + */ + public function setAttribute($attribute, $value) + { + return $this->pdo->setAttribute($attribute, $value); + } + /** * Check db exits or not. * @@ -97,13 +132,12 @@ class dbh $sql = "SHOW DATABASES like '{$this->config->name}'"; break; case 'dm': - $sql = "select * from dba_objects where object_type='SCH' and owner='{$this->config->name}';"; + $sql = "SELECT * FROM dba_objects WHERE object_type='SCH' AND owner='{$this->config->name}'"; break; default: $sql = ''; } - - return $this->query($sql)->fetch(); + return $this->rawQuery($sql)->fetch(); } /** @@ -123,13 +157,13 @@ class dbh $sql = "SHOW TABLES FROM {$this->config->name} like {$tableName}"; break; case 'dm': - $sql = "select * from all_tables where owner='{$this->config->name}' and table_name={$tableName};"; + $sql = "SELECT * FROM all_tables WHERE owner='{$this->config->name}' AND table_name={$tableName}"; break; default: $sql = ''; } - return $this->query($sql)->fetch(); + return $this->rawQuery($sql)->fetch(); } /** @@ -141,19 +175,28 @@ class dbh */ public function createDB($version) { - switch($this->config->driver == 'mysql') + switch($this->config->driver) { case 'mysql': $sql = "CREATE DATABASE `{$this->config->name}`"; if($version > 4.1) $sql .= " DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"; - return $this->query($sql); + return $this->rawQuery($sql); case 'dm': - $createTableSpace = "CREATE TABLESPACE {$this->config->name} DATAFILE '{$this->config->name}.DBF' size 150 AUTOEXTEND ON"; - $createUser = "CREATE USER {$this->config->name} IDENTIFIED by {$this->config->password} DEFAULT TABLESPACE {$this->config->name} DEFAULT INDEX TABLESPACE {$this->config->name};"; + $tableSpace = strtoupper($this->config->name); + $res = $this->rawQuery("SELECT * FROM dba_data_files WHERE TABLESPACE_NAME = '$tableSpace'")->fetchAll(); - $this->query($createTableSpace); - return $this->query($createUser); + if(empty($res)) + { + $createTableSpace = "CREATE TABLESPACE $tableSpace DATAFILE '{$this->config->name}.DBF' size 150 AUTOEXTEND ON"; + $createUser = "CREATE USER {$this->config->name} IDENTIFIED by {$this->config->password} DEFAULT TABLESPACE {$this->config->name} DEFAULT INDEX TABLESPACE {$this->config->name}"; + + $this->rawQuery($createTableSpace); + $this->rawQuery($createUser); + } + + $createSchema = "CREATE SCHEMA {$this->config->name} AUTHORIZATION {$this->config->name}"; + return $this->rawQuery($createSchema); default: return false; @@ -169,7 +212,7 @@ class dbh */ public function useDB($dbName) { - switch($this->config->driver == 'mysql') + switch($this->config->driver) { case 'mysql': return $this->exec("USE {$this->config->name}"); @@ -181,4 +224,177 @@ class dbh return false; } } + + /** + * Format sql. + * + * @param string $sql + * @access public + * @return string + */ + public function formatSQL($sql) + { + switch($this->config->driver) + { + case 'dm': + return $this->formatDmSQL($sql); + return $sql; + + default: + return $sql; + } + } + + /** + * Format dm sql. + * + * @param string $sql + * @access public + * @return string + */ + public function formatDmSQL($sql) + { + $sql = trim($sql); + $actionPos = strpos($sql, ' '); + $action = strtoupper(substr($sql, 0, $actionPos)); + $setPos = 0; + switch($action) + { + case 'SELECT': + return $this->formatField($sql); + case 'REPLACE': + $sql = str_replace('REPLACE', 'INSERT', $sql); + $action = 'INSERT'; + case 'INSERT': + case 'UPDATE': + $setPos = stripos($sql, ' VALUES'); + $sql = str_replace('0000-00-00', '1970-01-01', $sql); + $sql = str_replace('00:00:00', '00:00:01', $sql); + if(strpos($sql, "\\'") !== FALSE) $sql = str_replace("\\'", "''''", $sql); + if(strpos($sql, '\"') !== FALSE) $sql = str_replace('\"', '"', $sql); + if(strpos($sql, '\\\\') !== FALSE) $sql = str_replace('\\\\', '\\', $sql); + break; + case 'CREATE': + if(stripos($sql, 'CREATE OR REPLACE VIEW ') === 0) return ''; + if(stripos($sql, 'CREATE VIEW') === 0) return ''; + if(stripos($sql, 'CREATE FUNCTION') === 0) return ''; + case 'ALTER': + $sql = $this->formatField($sql); + $sql = $this->formatAttr($sql); + return $sql; + case 'SET': + if(stripos($sql, 'SET SCHEMA') === 0) return $sql; + case 'USE': + return ''; + case 'DROP': + return $this->formatField($sql); + } + + if($setPos <= 0) return $sql; + + $fields = substr($sql, 0, $setPos); + $fields = $this->formatField($fields); + + $sql = $fields . substr($sql, $setPos); + + /* DMDB must set IDENTITY_INSERT 'on' to insert id field. */ + if($action == 'INSERT' and stripos($fields, '"id"') !== FALSE) + { + $tableBegin = strpos($sql, '"' . $this->config->prefix); + $tableEnd = strpos($sql, '"', $tableBegin + 1); + $tableName = '' . $this->config->name . '."' . substr($sql, $tableBegin + 1, $tableEnd - $tableBegin - 1) . '"'; + return "SET IDENTITY_INSERT $tableName ON;" . $sql; + } + + return $sql; + } + + /** + * Format field. + * + * @param string $sql + * @access public + * @return string + */ + public function formatField($sql) + { + switch($this->config->driver) + { + case 'dm': + $sql = str_replace('`', '"', $sql); + return $sql; + + default: + return $sql; + } + } + + /** + * Format attribute of field. + * + * @param string $sql + * @access public + * @return string + */ + public function formatAttr($sql) + { + switch($this->config->driver) + { + case 'dm': + $pos = stripos($sql, ' ENGINE'); + if($pos > 0) $sql = substr($sql, 0, $pos); + + $sql = preg_replace('/\(\ *\d+\ *\)/', '', $sql); + + $replace = array( + " AUTO_INCREMENT" => ' IDENTITY(1, 1)', + " int " => ' integer ', + " mediumint " => ' integer ', + " smallint " => ' integer ', + " tinyint " => ' integer ', + " varchar " => ' varchar(255) ', + " char " => ' varchar(255) ', + " mediumtext " => ' text ', + " mediumtext," => ' text,', + " longtext " => ' text ', + "COLLATE 'utf8_general_ci'" => ' ', + " unsigned " => ' ', + " zerofill " => ' ', + "0000-00-00" => '1970-01-01', + ); + + $sql = preg_replace('/ enum[\_0-9a-z\,\'\"\( ]+\)+/i', ' varchar(255) ', $sql); + $sql = str_ireplace(array_keys($replace), array_values($replace), $sql); + $sql = preg_replace('/\,\s+key[\_\"0-9a-z ]+\(+[\,\_\"0-9a-z ]+\)+/i', '', $sql); + $sql = preg_replace('/\,\s*(unique|fulltext)*\s+key[\_\"0-9a-z ]+\(+[\,\_\"0-9a-z ]+\)+/i', '', $sql); + $sql = preg_replace('/ float\s*\(+[\,\_\"0-9a-z ]+\)+/i', ' float', $sql); + } + + return $sql; + } + + /** + * Quote. + * + * @param string $string + * @param int $parameter_type + * @access public + * @return string + */ + public function quote($string, $parameter_type = PDO::PARAM_STR) + { + return $this->pdo->quote($string, $parameter_type); + } + + /** + * Get last insert id. + * + * @param string $name + * @access public + * @return string|false + */ + public function lastInsertId($name = null) + { + return $this->pdo->lastInsertId($name); + } } diff --git a/module/install/lang/de.php b/module/install/lang/de.php index 3525d2244e..af424f3c21 100644 --- a/module/install/lang/de.php +++ b/module/install/lang/de.php @@ -136,7 +136,6 @@ $lang->install->working = 'Work Mode'; $lang->install->dbDriverList = array(); $lang->install->dbDriverList['mysql'] = 'MySQL'; -$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; $lang->install->dbDriverList['dm'] = 'DM8'; $lang->install->requestTypes['GET'] = 'GET'; diff --git a/module/install/lang/en.php b/module/install/lang/en.php index a1a856e980..3b080ad321 100644 --- a/module/install/lang/en.php +++ b/module/install/lang/en.php @@ -136,7 +136,6 @@ $lang->install->working = 'Operation Mode'; $lang->install->dbDriverList = array(); $lang->install->dbDriverList['mysql'] = 'MySQL'; -$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; $lang->install->dbDriverList['dm'] = 'DM8'; $lang->install->requestTypes['GET'] = 'GET'; diff --git a/module/install/lang/fr.php b/module/install/lang/fr.php index 75b3aa5a5b..bc14b41339 100644 --- a/module/install/lang/fr.php +++ b/module/install/lang/fr.php @@ -136,7 +136,6 @@ $lang->install->working = 'Operation Mode'; $lang->install->dbDriverList = array(); $lang->install->dbDriverList['mysql'] = 'MySQL'; -$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; $lang->install->dbDriverList['dm'] = 'DM8'; $lang->install->requestTypes['GET'] = 'GET'; diff --git a/module/install/lang/vi.php b/module/install/lang/vi.php index e23baf560c..35bb2fc9e6 100644 --- a/module/install/lang/vi.php +++ b/module/install/lang/vi.php @@ -106,7 +106,6 @@ $lang->install->working = 'Operation chế độ'; $lang->install->dbDriverList = array(); $lang->install->dbDriverList['mysql'] = 'MySQL'; -$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; $lang->install->dbDriverList['dm'] = 'DM8'; $lang->install->requestTypes['GET'] = 'GET'; diff --git a/module/install/lang/zh-cn.php b/module/install/lang/zh-cn.php index 6783e0f298..32515e84cc 100644 --- a/module/install/lang/zh-cn.php +++ b/module/install/lang/zh-cn.php @@ -136,7 +136,6 @@ $lang->install->working = '工作方式'; $lang->install->dbDriverList = array(); $lang->install->dbDriverList['mysql'] = 'MySQL'; -$lang->install->dbDriverList['pgsql'] = 'PostgreSQL'; $lang->install->dbDriverList['dm'] = '达梦'; $lang->install->requestTypes['GET'] = '普通方式'; diff --git a/module/install/model.php b/module/install/model.php index 434856c906..0660545460 100644 --- a/module/install/model.php +++ b/module/install/model.php @@ -353,7 +353,7 @@ class installModel extends model { try { - return new dbh($this->config->db); + return new dbh($this->config->db, false); } catch (PDOException $exception) { @@ -369,7 +369,7 @@ class installModel extends model */ public function getDatabaseVersion() { - if($this->config->db->driver != 'mysql') return 0; + if($this->config->db->driver != 'mysql') return 8; $sql = "SELECT VERSION() AS version"; $result = $this->dbh->query($sql)->fetch(); @@ -423,7 +423,8 @@ class installModel extends model $table = str_replace('`zt_', $this->config->db->name . '.`zt_', $table); $table = str_replace('`ztv_', $this->config->db->name . '.`ztv_', $table); $table = str_replace('zt_', $this->config->db->prefix, $table); - if(!$this->dbh->query($table)) return false; + + $this->dbh->exec($table); } } catch (PDOException $exception) @@ -479,7 +480,7 @@ class installModel extends model $admin->password = md5($this->post->password); $admin->gender = 'f'; $admin->visions = 'rnd,lite'; - $this->dao->replace(TABLE_USER)->data($admin)->exec(); + $this->dao->insert(TABLE_USER)->data($admin)->exec(); } } diff --git a/module/install/view/step3.html.php b/module/install/view/step3.html.php index 8414fa692e..64c142ccf1 100644 --- a/module/install/view/step3.html.php +++ b/module/install/view/step3.html.php @@ -19,6 +19,7 @@ if(!isset($error)) \$config->debug = false; \$config->requestType = '$requestType'; \$config->timezone = '$timezone'; +\$config->db->driver = '$dbDriver'; \$config->db->host = '$dbHost'; \$config->db->port = '$dbPort'; \$config->db->name = '$dbName'; From e714c29ea7a758a954d61fbfe0d194d38dec6493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=87=91=E5=8B=87?= Date: Tue, 4 Apr 2023 05:09:54 +0000 Subject: [PATCH 4/6] Format schema of database. --- db/update18.3.sql | 542 ++++++++++++++++++++++++++ db/zentao.sql | 939 +++++++++++++++++++++++----------------------- 2 files changed, 1015 insertions(+), 466 deletions(-) create mode 100644 db/update18.3.sql diff --git a/db/update18.3.sql b/db/update18.3.sql new file mode 100644 index 0000000000..64867e915b --- /dev/null +++ b/db/update18.3.sql @@ -0,0 +1,542 @@ +ALTER TABLE `zt_account` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_activity` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_api` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_apistruct` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_assetlib` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `registerDate` `registerDate` datetime NULL; + +ALTER TABLE `zt_attend` +CHANGE `reviewedBy` `reviewedBy` char(30) NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL; + +ALTER TABLE `zt_auditcl` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_auditplan` +CHANGE `checkDate` `checkDate` date NULL, +CHANGE `checkedBy` `checkedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_basicmeas` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_branch` +CHANGE `closedDate` `closedDate` date NULL; + +ALTER TABLE `zt_budget` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` date NULL; + +ALTER TABLE `zt_bug` +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `resolvedDate` `resolvedDate` datetime NULL, +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL; + +ALTER TABLE `zt_case` +CHANGE `scriptedBy` `scriptedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `scriptedDate` `scriptedDate` date NULL, +CHANGE `reviewedBy` `reviewedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` date NULL, +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `lastRunner` `lastRunner` varchar(30) NOT NULL DEFAULT '', +CHANGE `lastRunDate` `lastRunDate` datetime NULL; + +ALTER TABLE `zt_chart` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_cmcl` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_compile` +CHANGE `updateDate` `updateDate` datetime NULL; + +ALTER TABLE `zt_cron` +CHANGE `lastTime` `lastTime` datetime NULL; + +ALTER TABLE `zt_dataview` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_deploystep` +CHANGE `assignedTo` `assignedTo` char(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `finishedBy` `finishedBy` char(30) NOT NULL DEFAULT '', +CHANGE `finishedDate` `finishedDate` datetime NULL; + +ALTER TABLE `zt_design` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_doc` +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `approvedDate` `approvedDate` date NULL, +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_doclib` +CHANGE `product` `product` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `project` `project` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `execution` `execution` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `collector` `collector` text NOT NULL DEFAULT '', +CHANGE `desc` `desc` mediumtext NOT NULL DEFAULT '', +CHANGE `groups` `groups` varchar(255) NOT NULL DEFAULT '', +CHANGE `users` `users` text NOT NULL DEFAULT '', +CHANGE `order` `order` tinyint unsigned NOT NULL DEFAULT '0'; + +ALTER TABLE `zt_domain` +CHANGE `expiredDate` `expiredDate` datetime NULL, +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_durationestimation` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_entry` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_feedback` +CHANGE `reviewedBy` `reviewedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL, +CHANGE `processedBy` `processedBy` char(30) NOT NULL DEFAULT '', +CHANGE `processedDate` `processedDate` datetime NULL, +CHANGE `closedBy` `closedBy` char(30)NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `closedReason` `closedReason` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(255) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `activatedBy` `activatedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL, +CHANGE `feedbackBy` `feedbackBy` varchar(100) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_gapanalysis` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_host` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_image` +CHANGE `restoreDate` `restoreDate` datetime NULL; + +ALTER TABLE `zt_issue` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `activateBy` `activateBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activateDate` `activateDate` date NULL, +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` date NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedBy` `assignedBy` varchar(30) NULL, +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `approvedDate` `approvedDate` date NULL; + +ALTER TABLE `zt_kanban` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `closedBy` `closedBy` char(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `activatedBy` `activatedBy` char(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL; + +ALTER TABLE `zt_kanbancard` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `archivedBy` `archivedBy` char(30) NOT NULL DEFAULT '', +CHANGE `archivedDate` `archivedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` char(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_kanbanlane` +CHANGE `lastEditedTime` `lastEditedTime` datetime NULL; + +ALTER TABLE `zt_kanbanregion` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL; + +ALTER TABLE `zt_kanbanspace` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `closedBy` `closedBy` char(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `activatedBy` `activatedBy` char(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL; + +ALTER TABLE `zt_leave` +CHANGE `backDate` `backDate` datetime NULL, +CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT '', +CHANGE `backReviewers` `backReviewers` text NOT NULL DEFAULT ''; + +ALTER TABLE `zt_lieu` +CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT ''; + +ALTER TABLE `zt_measqueue` +CHANGE `updateDate` `updateDate` datetime NULL; + +ALTER TABLE `zt_meeting` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_meetingroom` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_mr` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_nc` +CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `resolution` `resolution` char(30) NOT NULL DEFAULT '', +CHANGE `resolvedDate` `resolvedDate` date NULL, +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` date NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` date NULL, +CHANGE `activateDate` `activateDate` date NULL, +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_opportunity` +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` date NULL, +CHANGE `approvedDate` `approvedDate` date NULL, +CHANGE `plannedClosedDate` `plannedClosedDate` date NULL, +CHANGE `actualClosedDate` `actualClosedDate` date NULL, +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `activatedBy` `activatedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL, +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `canceledBy` `canceledBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `canceledDate` `canceledDate` datetime NULL, +CHANGE `cancelReason` `cancelReason` char(30) NOT NULL DEFAULT '', +CHANGE `hangupedBy` `hangupedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `hangupedDate` `hangupedDate` datetime NULL, +CHANGE `resolution` `resolution` mediumtext NOT NULL DEFAULT '', +CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `resolvedDate` `resolvedDate` datetime NULL, +CHANGE `lastCheckedBy` `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `lastCheckedDate` `lastCheckedDate` datetime NULL; + +ALTER TABLE `zt_overtime` +CHANGE `rejectReason` `rejectReason` varchar(100) NOT NULL DEFAULT '', +CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT ''; + +ALTER TABLE `zt_pipeline` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_process` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_product` +CHANGE `code` `code` varchar(45) NOT NULL DEFAULT '', +CHANGE `shadow` `shadow` tinyint unsigned NOT NULL DEFAULT '0', +CHANGE `feedback` `feedback` varchar(30) NOT NULL DEFAULT '', +CHANGE `reviewer` `reviewer` text NOT NULL DEFAULT '', +CHANGE `order` `order` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `ticket` `ticket` varchar(30) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_productplan` +CHANGE `closedReason` `closedReason` varchar(20) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_project` +CHANGE `model` `model` char(30) NOT NULL DEFAULT '', +CHANGE `output` `output` text NOT NULL DEFAULT '', +CHANGE `code` `code` varchar(45) NOT NULL DEFAULT '', +CHANGE `auth` `auth` char(30) NOT NULL DEFAULT '', +CHANGE `path` `path` varchar(255) NOT NULL DEFAULT '', +CHANGE `grade` `grade` tinyint unsigned NOT NULL DEFAULT '0', +CHANGE `realBegan` `realBegan` date NULL, +CHANGE `realEnd` `realEnd` date NULL, +CHANGE `days` `days` smallint unsigned NOT NULL DEFAULT '0', +CHANGE `desc` `desc` mediumtext NOT NULL DEFAULT '', +CHANGE `version` `version` smallint NOT NULL DEFAULT '0', +CHANGE `parentVersion` `parentVersion` smallint NOT NULL DEFAULT '0', +CHANGE `planDuration` `planDuration` int NOT NULL DEFAULT '0', +CHANGE `realDuration` `realDuration` int NOT NULL DEFAULT '0', +CHANGE `openedVersion` `openedVersion` varchar(20) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `canceledDate` `canceledDate` datetime NULL, +CHANGE `suspendedDate` `suspendedDate` date NULL, +CHANGE `team` `team` varchar(90) NOT NULL DEFAULT '', +CHANGE `whitelist` `whitelist` text NOT NULL DEFAULT '', +CHANGE `order` `order` mediumint unsigned NOT NULL DEFAULT '0'; + +ALTER TABLE `zt_researchplan` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_researchreport` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_review` +CHANGE `reviewedBy` `reviewedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `auditedBy` `auditedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `lastReviewedDate` `lastReviewedDate` date NULL, +CHANGE `lastAuditedBy` `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `lastAuditedDate` `lastAuditedDate` date NULL, +CHANGE `lastEditedBy` `lastEditedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` date NULL, +CHANGE `result` `result` char(30) NOT NULL DEFAULT '', +CHANGE `auditResult` `auditResult` char(30) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_reviewcl` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_reviewissue` +CHANGE `opinion` `opinion` varchar(255) NOT NULL DEFAULT '', +CHANGE `opinionDate` `opinionDate` date NULL, +CHANGE `resolution` `resolution` char(30) NOT NULL DEFAULT '', +CHANGE `resolutionBy` `resolutionBy` char(30) NOT NULL DEFAULT '', +CHANGE `resolutionDate` `resolutionDate` date NULL; + +ALTER TABLE `zt_reviewlist` +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedBy` `assignedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_risk` +CHANGE `plannedClosedDate` `plannedClosedDate` date NULL, +CHANGE `actualClosedDate` `actualClosedDate` date NULL, +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `resolution` `resolution` mediumtext NOT NULL DEFAULT '', +CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activateBy` `activateBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activateDate` `activateDate` date NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` date NULL, +CHANGE `cancelBy` `cancelBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `cancelDate` `cancelDate` date NULL, +CHANGE `cancelReason` `cancelReason` char(30) NOT NULL DEFAULT '', +CHANGE `hangupBy` `hangupBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `hangupDate` `hangupDate` date NULL, +CHANGE `trackedBy` `trackedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `trackedDate` `trackedDate` date NULL, +CHANGE `assignedDate` `assignedDate` date NULL, +CHANGE `approvedDate` `approvedDate` date NULL; + +ALTER TABLE `zt_searchindex` +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_serverroom` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_service` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_solutions` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` date NULL; + +ALTER TABLE `zt_sqlview` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_stage` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_stakeholder` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` date NULL; + +ALTER TABLE `zt_story` +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `approvedDate` `approvedDate` date NULL, +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `changedBy` `changedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `changedDate` `changedDate` datetime NULL, +CHANGE `reviewedBy` `reviewedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `reviewedDate` `reviewedDate` datetime NULL, +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `closedReason` `closedReason` varchar(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL, +CHANGE `feedbackBy` `feedbackBy` varchar(100) NOT NULL DEFAULT '', +CHANGE `notifyEmail` `notifyEmail` varchar(100) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_storyreview` +CHANGE `reviewDate` `reviewDate` datetime NULL; + +ALTER TABLE `zt_task` +CHANGE `estStarted` `estStarted` date NULL, +CHANGE `realStarted` `realStarted` datetime NULL, +CHANGE `finishedBy` `finishedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `finishedDate` `finishedDate` datetime NULL, +CHANGE `finishedList` `finishedList` text NOT NULL DEFAULT '', +CHANGE `canceledBy` `canceledBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `canceledDate` `canceledDate` datetime NULL, +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `realDuration` `realDuration` int NOT NULL DEFAULT '0', +CHANGE `closedReason` `closedReason` varchar(30) NOT NULL DEFAULT '', +CHANGE `lastEditedBy` `lastEditedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL, +CHANGE `activatedDate` `activatedDate` datetime NULL; + +ALTER TABLE `zt_team` +CHANGE `position` `position` varchar(30) NOT NULL DEFAULT '', +CHANGE `join` `join` date NULL; + +ALTER TABLE `zt_testrun` +CHANGE `lastRunner` `lastRunner` varchar(30) NOT NULL DEFAULT '', +CHANGE `lastRunDate` `lastRunDate` datetime NULL, +CHANGE `lastRunResult` `lastRunResult` char(30) NOT NULL DEFAULT ''; + +ALTER TABLE `zt_testsuite` +CHANGE `lastEditedBy` `lastEditedBy` char(30) NOT NULL DEFAULT '', +CHANGE `lastEditedDate` `lastEditedDate` datetime NULL; + +ALTER TABLE `zt_testtask` +CHANGE `realFinishedDate` `realFinishedDate` datetime NULL; + +ALTER TABLE `zt_ticket` +CHANGE `assignedTo` `assignedTo` varchar(255) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `realStarted` `realStarted` datetime NULL, +CHANGE `startedBy` `startedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `startedDate` `startedDate` datetime NULL, +CHANGE `activatedCount` `activatedCount` int NOT NULL DEFAULT '0', +CHANGE `activatedBy` `activatedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `activatedDate` `activatedDate` datetime NULL, +CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `closedDate` `closedDate` datetime NULL, +CHANGE `closedReason` `closedReason` varchar(30) NOT NULL DEFAULT '', +CHANGE `finishedBy` `finishedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `finishedDate` `finishedDate` datetime NULL, +CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `resolvedDate` `resolvedDate` datetime NULL, +CHANGE `resolution` `resolution` varchar(1000) NOT NULL DEFAULT '', +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_todo` +CHANGE `feedback` `feedback` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `config` `config` varchar(255) NOT NULL DEFAULT '', +CHANGE `private` `private` tinyint(1) NOT NULL DEFAULT '0', +CHANGE `assignedDate` `assignedDate` datetime NULL, +CHANGE `finishedDate` `finishedDate` datetime NULL, +CHANGE `closedDate` `closedDate` datetime NULL; + +ALTER TABLE `zt_traincourse` +CHANGE `editedBy` `editedBy` varchar(255) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` date NULL; + +ALTER TABLE `zt_traincontents` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_trainplan` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_user` +CHANGE `company` `company` mediumint unsigned NOT NULL DEFAULT '0', +CHANGE `commiter` `commiter` varchar(100) NOT NULL DEFAULT '', +CHANGE `avatar` `avatar` text NOT NULL DEFAULT '', +CHANGE `nature` `nature` text NOT NULL DEFAULT '', +CHANGE `analysis` `analysis` text NOT NULL DEFAULT '', +CHANGE `strategy` `strategy` text NOT NULL DEFAULT '', +CHANGE `ldap` `ldap` char(30) NOT NULL DEFAULT '', +CHANGE `resetToken` `resetToken` varchar(50) NOT NULL DEFAULT '', +CHANGE `birthday` `birthday` date NULL, +CHANGE `join` `join` date NULL, +CHANGE `locked` `locked` datetime NULL; + +ALTER TABLE `zt_workestimation` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', +CHANGE `assignedDate` `assignedDate` datetime NULL; + +ALTER TABLE `zt_workflow` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowaction` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowdatasource` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowfield` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowlabel` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowrule` +CHANGE `editedBy` `editedBy` char(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_workflowsql` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; + +ALTER TABLE `zt_zoutput` +CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', +CHANGE `editedDate` `editedDate` datetime NULL; diff --git a/db/zentao.sql b/db/zentao.sql index 848d36eb3e..2a22372ce0 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -65,8 +65,8 @@ CREATE TABLE IF NOT EXISTS `zt_api` ( `commonParams` text NULL, `addedBy` varchar(30) NOT NULL DEFAULT 0, `addedDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL DEFAULT 0, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum ('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -89,7 +89,7 @@ CREATE TABLE IF NOT EXISTS `zt_apispec` ( `paramsExample` text NUll, `responseExample` text NUll, `response` text NULL, - `addedBy` varchar(30) NOT NULL DEFAULT 0, + `addedBy` varchar(30) NOT NULL DEFAULT 0, `addedDate` datetime NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -104,8 +104,8 @@ CREATE TABLE IF NOT EXISTS `zt_apistruct` ( `attribute` text NULL, `addedBy` varchar(30) NOT NULL DEFAULT 0, `addedDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL DEFAULT 0, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum ('0', '1') NOT NULL DEFAULT '0', primary key (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -238,7 +238,7 @@ CREATE TABLE IF NOT EXISTS `zt_branch` ( `status` enum ('active', 'closed') NOT NULL DEFAULT 'active', `desc` varchar(255) NOT NULL, `createdDate` date NOT NULL, - `closedDate` date NOT NULL, + `closedDate` date NULL, `order` smallint unsigned NOT NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -283,14 +283,14 @@ CREATE TABLE IF NOT EXISTS `zt_bug` ( `openedDate` datetime NOT NULL, `openedBuild` varchar(255) NOT NULL, `assignedTo` varchar(30) NOT NULL DEFAULT '', - `assignedDate` datetime NOT NULL, + `assignedDate` datetime NULL, `deadline` date NOT NULL, `resolvedBy` varchar(30) NOT NULL DEFAULT '', `resolution` varchar(30) NOT NULL DEFAULT '', `resolvedBuild` varchar(30) NOT NULL DEFAULT '', - `resolvedDate` datetime NOT NULL, + `resolvedDate` datetime NULL, `closedBy` varchar(30) NOT NULL DEFAULT '', - `closedDate` datetime NOT NULL, + `closedDate` datetime NULL, `duplicateBug` mediumint(8) unsigned NOT NULL, `linkBug` varchar(255) NOT NULL, `case` mediumint(8) unsigned NOT NULL, @@ -307,7 +307,7 @@ CREATE TABLE IF NOT EXISTS `zt_bug` ( `issueKey` varchar(50) NOT NULL DEFAULT '', `testtask` mediumint(8) unsigned NOT NULL, `lastEditedBy` varchar(30) NOT NULL DEFAULT '', - `lastEditedDate` datetime NOT NULL, + `lastEditedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `product` (`product`), @@ -377,8 +377,8 @@ CREATE TABLE IF NOT EXISTS `zt_case` ( `stage` varchar(255) NOT NULL, `howRun` varchar(30) NOT NULL, `script` longtext NOT NULL, - `scriptedBy` varchar(30) NOT NULL, - `scriptedDate` date NOT NULL, + `scriptedBy` varchar(30) NOT NULL DEFAULT '', + `scriptedDate` date NULL, `scriptStatus` varchar(30) NOT NULL, `scriptLocation` varchar(255) NOT NULL, `status` char(30) NOT NULL default '1', @@ -388,18 +388,18 @@ CREATE TABLE IF NOT EXISTS `zt_case` ( `order` tinyint(30) unsigned NOT NULL default '0', `openedBy` char(30) NOT NULL default '', `openedDate` datetime NOT NULL, - `reviewedBy` varchar(255) NOT NULL, - `reviewedDate` date NOT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` date NULL, `lastEditedBy` char(30) NOT NULL default '', - `lastEditedDate` datetime NOT NULL, + `lastEditedDate` datetime NULL, `version` tinyint(3) unsigned NOT NULL default '0', `linkCase` varchar(255) NOT NULL, `fromBug` mediumint(8) unsigned NOT NULL, `fromCaseID` mediumint(8) unsigned NOT NULL, `fromCaseVersion` mediumint(8) unsigned NOT NULL default '1', `deleted` enum('0','1') NOT NULL default '0', - `lastRunner` varchar(30) NOT NULL, - `lastRunDate` datetime NOT NULL, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime NULL, `lastRunResult` char(30) NOT NULL, PRIMARY KEY (`id`), KEY `product` (`product`), @@ -448,8 +448,8 @@ CREATE TABLE IF NOT EXISTS `zt_chart` ( `objects` mediumtext NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` tinyint NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -497,7 +497,7 @@ CREATE TABLE IF NOT EXISTS `zt_compile` ( `times` tinyint(3) unsigned NOT NULL DEFAULT '0', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `updateDate` datetime NOT NULL, + `updateDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -526,7 +526,7 @@ CREATE TABLE IF NOT EXISTS `zt_cron` ( `type` varchar(20) NOT NULL, `buildin` tinyint(1) NOT NULL DEFAULT '0', `status` varchar(20) NOT NULL, - `lastTime` datetime NOT NULL, + `lastTime` datetime NULL, PRIMARY KEY (`id`), KEY `lastTime` (`lastTime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -568,8 +568,8 @@ CREATE TABLE IF NOT EXISTS `zt_dataview` ( `objects` mediumtext NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` tinyint NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -600,11 +600,11 @@ CREATE TABLE IF NOT EXISTS `zt_design` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', `story` char(30) NOT NULL, `desc` mediumtext NOT NULL, @@ -650,11 +650,11 @@ CREATE TABLE IF NOT EXISTS `zt_doc` ( `collector` text NOT NULL, `addedBy` varchar(30) NOT NULL, `addedDate` datetime NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, - `approvedDate` date NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, + `approvedDate` date NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `mailto` text, `acl` varchar(10) NOT NULL DEFAULT 'open', `groups` varchar(255) NOT NULL, @@ -684,19 +684,19 @@ CREATE TABLE IF NOT EXISTS `zt_doclib` ( `id` smallint(5) unsigned NOT NULL auto_increment, `type` varchar(30) NOT NULL, `vision` varchar(10) NOT NULL DEFAULT 'rnd', - `product` mediumint(8) unsigned NOT NULL, - `project` mediumint(8) unsigned NOT NULL, - `execution` mediumint(8) unsigned NOT NULL, + `product` mediumint(8) unsigned NOT NULL DEFAULT '0', + `project` mediumint(8) unsigned NOT NULL DEFAULT '0', + `execution` mediumint(8) unsigned NOT NULL DEFAULT '0', `name` varchar(60) NOT NULL, `baseUrl` varchar(255) NOT NULL DEFAULT '', `acl` varchar(10) NOT NULL DEFAULT 'open', - `groups` varchar(255) NOT NULL, - `users` text NOT NULL, - `main` enum('0','1') NOT NULL default '0', - `collector` text NOT NULL, - `desc` mediumtext NOT NULL, - `order` tinyint(5) unsigned NOT NULL, - `deleted` enum('0','1') NOT NULL default '0', + `groups` varchar(255) NOT NULL DEFAULT '', + `users` text NOT NULL DEFAULT '', + `main` enum('0','1') NOT NULL DEFAULT '0', + `collector` text NOT NULL DEFAULT '', + `desc` mediumtext NOT NULL DEFAULT '', + `order` tinyint(5) unsigned NOT NULL DEFAULT '0', + `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `product` (`product`), KEY `execution` (`execution`) @@ -739,8 +739,8 @@ CREATE TABLE IF NOT EXISTS `zt_entry` ( `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, `calledTime` int(10) unsigned NOT NULL DEFAULT '0', - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -882,12 +882,12 @@ CREATE TABLE IF NOT EXISTS `zt_kanbanspace` ( `order` mediumint(8) NOT NULL DEFAULT '0', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `lastEditedBy` char(30) NOT NULL, - `lastEditedDate` datetime NOT NULL, - `closedBy` char(30) NOT NULL, - `closedDate` datetime NOT NULL, - `activatedBy` char(30) NOT NULL, - `activatedDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -915,12 +915,12 @@ CREATE TABLE IF NOT EXISTS `zt_kanban` ( `alignment` varchar(10) NOT NULL default 'center', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `lastEditedBy` char(30) NOT NULL, - `lastEditedDate` datetime NOT NULL, - `closedBy` char(30) NOT NULL, - `closedDate` datetime NOT NULL, - `activatedBy` char(30) NOT NULL, - `activatedDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, + `activatedBy` char(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -962,12 +962,12 @@ CREATE TABLE IF NOT EXISTS `zt_kanbancard` ( `archived` enum('0', '1') NOT NULL DEFAULT '0', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `lastEditedBy` char(30) NOT NULL, - `lastEditedDate` datetime NOT NULL, - `archivedBy` char(30) NOT NULL, - `archivedDate` datetime NOT NULL, - `assignedBy` char(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NULL, + `archivedBy` char(30) NOT NULL DEFAULT '', + `archivedDate` datetime NULL, + `assignedBy` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0', '1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1002,7 +1002,7 @@ CREATE TABLE IF NOT EXISTS `zt_kanbanlane` ( `name` varchar(255) NOT NULL DEFAULT '', `color` char(30) NOT NULL, `order` smallint(6) NOT NULL DEFAULT '0', - `lastEditedTime` datetime NOT NULL, + `lastEditedTime` datetime NULL, `deleted` enum('0','1') NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1086,8 +1086,8 @@ CREATE TABLE IF NOT EXISTS `zt_mr` ( `approver` varchar(255) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', `status` char(30) NOT NULL, `mergeStatus` char(30) NOT NULL, @@ -1156,8 +1156,8 @@ CREATE TABLE IF NOT EXISTS `zt_pipeline` ( `private` char(32) DEFAULT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1173,8 +1173,8 @@ CREATE TABLE IF NOT EXISTS `zt_product` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `program` mediumint(8) unsigned NOT NULL, `name` varchar(110) NOT NULL, - `code` varchar(45) NOT NULL, - `shadow` tinyint(1) unsigned NOT NULL, + `code` varchar(45) NOT NULL DEFAULT '', + `shadow` tinyint(1) unsigned NOT NULL DEFAULT 0, `bind` enum('0','1') NOT NULL DEFAULT '0', `line` mediumint(8) NOT NULL, `type` varchar(30) NOT NULL DEFAULT 'normal', @@ -1184,15 +1184,15 @@ CREATE TABLE IF NOT EXISTS `zt_product` ( `PO` varchar(30) NOT NULL, `QD` varchar(30) NOT NULL, `RD` varchar(30) NOT NULL, - `feedback` varchar(30) NOT NULL, - `ticket` varchar(30) NOT NULL, + `feedback` varchar(30) NOT NULL DEFAULT '', + `ticket` varchar(30) NOT NULL DEFAULT '', `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', `whitelist` text NOT NULL, - `reviewer` text NOT NULL, + `reviewer` text NOT NULL DEFAULT '', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, `createdVersion` varchar(20) NOT NULL, - `order` mediumint(8) unsigned NOT NULL, + `order` mediumint(8) unsigned NOT NULL DEFAULT 0, `vision` varchar(10) NOT NULL DEFAULT 'rnd', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -1211,7 +1211,7 @@ CREATE TABLE IF NOT EXISTS `zt_productplan` ( `begin` date NOT NULL, `end` date NOT NULL, `order` text NOT NULL, - `closedReason` varchar(20) NOT NULL, + `closedReason` varchar(20) NOT NULL DEFAULT '', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, `deleted` enum('0','1') NOT NULL default '0', @@ -1223,7 +1223,7 @@ CREATE TABLE IF NOT EXISTS `zt_productplan` ( CREATE TABLE IF NOT EXISTS `zt_project` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `project` mediumint(8) NOT NULL DEFAULT 0, - `model` char(30) NOT NULL, + `model` char(30) NOT NULL DEFAULT '', `type` char(30) NOT NULL DEFAULT 'sprint', `lifetime` char(30) NOT NULL DEFAULT '', `budget` varchar(30) NOT NULL DEFAULT '0', @@ -1231,45 +1231,45 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `attribute` varchar(30) NOT NULL DEFAULT '', `percent` float unsigned NOT NULL DEFAULT '0', `milestone` enum('0','1') NOT NULL DEFAULT '0', - `output` text NOT NULL, - `auth` char(30) NOT NULL, + `output` text NOT NULL DEFAULT '', + `auth` char(30) NOT NULL DEFAULT '', `parent` mediumint(8) unsigned NOT NULL DEFAULT '0', - `path` varchar(255) NOT NULL, - `grade` tinyint(3) unsigned NOT NULL, + `path` varchar(255) NOT NULL DEFAULT '', + `grade` tinyint(3) unsigned NOT NULL DEFAULT '0', `name` varchar(90) NOT NULL, - `code` varchar(45) NOT NULL, + `code` varchar(45) NOT NULL DEFAULT '', `hasProduct` tinyint(1) unsigned NOT NULL DEFAULT 1, `begin` date NOT NULL, `end` date NOT NULL, - `realBegan` date NOT NULL, - `realEnd` date NOT NULL, - `days` smallint(5) unsigned NOT NULL, + `realBegan` date NULL, + `realEnd` date NULL, + `days` smallint(5) unsigned NOT NULL DEFAULT 0, `status` varchar(10) NOT NULL, `subStatus` varchar(30) NOT NULL DEFAULT '', `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', - `desc` mediumtext NOT NULL, - `version` smallint(6) NOT NULL, - `parentVersion` smallint(6) NOT NULL, - `planDuration` int(11) NOT NULL, - `realDuration` int(11) NOT NULL, + `desc` mediumtext NOT NULL DEFAULT '', + `version` smallint(6) NOT NULL DEFAULT 0, + `parentVersion` smallint(6) NOT NULL DEFAULT 0, + `planDuration` int(11) NOT NULL DEFAULT 0, + `realDuration` int(11) NOT NULL DEFAULT 0, `openedBy` varchar(30) NOT NULL DEFAULT '', `openedDate` datetime NOT NULL, - `openedVersion` varchar(20) NOT NULL, + `openedVersion` varchar(20) NOT NULL DEFAULT '', `lastEditedBy` varchar(30) NOT NULL DEFAULT '', - `lastEditedDate` datetime NOT NULL, + `lastEditedDate` datetime NULL, `closedBy` varchar(30) NOT NULL DEFAULT '', - `closedDate` datetime NOT NULL, + `closedDate` datetime NULL, `canceledBy` varchar(30) NOT NULL DEFAULT '', - `canceledDate` datetime NOT NULL, - `suspendedDate` date NOT NULL, + `canceledDate` datetime NULL, + `suspendedDate` date NULL, `PO` varchar(30) NOT NULL DEFAULT '', `PM` varchar(30) NOT NULL DEFAULT '', `QD` varchar(30) NOT NULL DEFAULT '', `RD` varchar(30) NOT NULL DEFAULT '', - `team` varchar(90) NOT NULL, + `team` varchar(90) NOT NULL DEFAULT '', `acl` char(30) NOT NULL DEFAULT 'open', - `whitelist` text NOT NULL, - `order` mediumint(8) unsigned NOT NULL, + `whitelist` text NOT NULL DEFAULT '', + `order` mediumint(8) unsigned NOT NULL DEFAULT '0', `vision` varchar(10) NOT NULL DEFAULT 'rnd', `division` enum('0','1') NOT NULL DEFAULT '1', `displayCards` smallint(6) NOT NULL default '0', @@ -1478,7 +1478,7 @@ CREATE TABLE IF NOT EXISTS `zt_searchindex` ( `title` text NOT NULL, `content` text NOT NULL, `addedDate` datetime NOT NULL, - `editedDate` datetime NOT NULL, + `editedDate` datetime NULL, PRIMARY KEY (`id`), UNIQUE KEY `object` (`objectType`,`objectID`), KEY `addedDate` (`addedDate`), @@ -1493,8 +1493,8 @@ CREATE TABLE IF NOT EXISTS `zt_stage` ( `projectType` varchar(255) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1509,8 +1509,8 @@ CREATE TABLE IF NOT EXISTS `zt_stakeholder` ( `from` char(30) NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` date NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` date NULL, `deleted` enum('0','1') NOT NULL, PRIMARY KEY (`id`), KEY `objectID` (`objectID`) @@ -1546,18 +1546,18 @@ CREATE TABLE IF NOT EXISTS `zt_story` ( `openedBy` varchar(30) NOT NULL DEFAULT '', `openedDate` datetime NOT NULL, `assignedTo` varchar(30) NOT NULL DEFAULT '', - `assignedDate` datetime NOT NULL, - `approvedDate` date NOT NULL, + `assignedDate` datetime NULL, + `approvedDate` date NULL, `lastEditedBy` varchar(30) NOT NULL DEFAULT '', - `lastEditedDate` datetime NOT NULL, - `changedBy` varchar(30) NOT NULL, - `changedDate` datetime NOT NULL, - `reviewedBy` varchar(255) NOT NULL, - `reviewedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `lastEditedDate` datetime NULL, + `changedBy` varchar(30) NOT NULL DEFAULT '', + `changedDate` datetime NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, `closedBy` varchar(30) NOT NULL DEFAULT '', - `closedDate` datetime NOT NULL, - `closedReason` varchar(30) NOT NULL, - `activatedDate` datetime NOT NULL, + `closedDate` datetime NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, `toBug` mediumint(8) unsigned NOT NULL, `childStories` varchar(255) NOT NULL, `linkStories` varchar(255) NOT NULL, @@ -1566,8 +1566,8 @@ CREATE TABLE IF NOT EXISTS `zt_story` ( `duplicateStory` mediumint(8) unsigned NOT NULL, `version` smallint(6) NOT NULL DEFAULT '1', `storyChanged` enum('0','1') NOT NULL DEFAULT '0', - `feedbackBy` varchar(100) NOT NULL, - `notifyEmail` varchar(100) NOT NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', + `notifyEmail` varchar(100) NOT NULL DEFAULT '', `URChanged` enum('0','1') NOT NULL DEFAULT '0', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -1581,7 +1581,7 @@ CREATE TABLE IF NOT EXISTS `zt_storyreview` ( `version` smallint(6) NOT NULL, `reviewer` varchar(30) NOT NULL, `result` varchar(30) NOT NULL, - `reviewDate` datetime NOT NULL, + `reviewDate` datetime NULL, UNIQUE KEY `story` (`story`,`version`,`reviewer`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_storyestimate`; @@ -1653,21 +1653,21 @@ CREATE TABLE IF NOT EXISTS `zt_task` ( `openedDate` datetime NOT NULL, `assignedTo` varchar(30) NOT NULL, `assignedDate` datetime NOT NULL, - `estStarted` date NOT NULL, - `realStarted` datetime NOT NULL, - `finishedBy` varchar(30) NOT NULL, - `finishedDate` datetime NOT NULL, - `finishedList` text NOT NULL, - `canceledBy` varchar(30) NOT NULL, - `canceledDate` datetime NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` datetime NOT NULL, + `estStarted` date NULL, + `realStarted` datetime NULL, + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime NULL, + `finishedList` text NOT NULL DEFAULT '', + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, `planDuration` int(11) NOT NULL, - `realDuration` int(11) NOT NULL, - `closedReason` varchar(30) NOT NULL, - `lastEditedBy` varchar(30) NOT NULL, - `lastEditedDate` datetime NOT NULL, - `activatedDate` datetime NOT NULL, + `realDuration` int(11) NOT NULL DEFAULT '0', + `closedReason` varchar(30) NOT NULL DEFAULT '', + `lastEditedBy` varchar(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NULL, + `activatedDate` datetime NULL, `order` mediumint(8) unsigned NOT NULL, `repo` mediumint(8) unsigned NOT NULL, `mr` mediumint(8) unsigned NOT NULL, @@ -1727,9 +1727,9 @@ CREATE TABLE IF NOT EXISTS `zt_team` ( `type` enum('project','task','execution') NOT NULL DEFAULT 'project', `account` char(30) NOT NULL DEFAULT '', `role` char(30) NOT NULL DEFAULT '', - `position` varchar(30) NOT NULL, + `position` varchar(30) NOT NULL DEFAULT '', `limited` char(8) NOT NULL DEFAULT 'no', - `join` date NOT NULL DEFAULT '0000-00-00', + `join` date NULL, `days` smallint(5) unsigned NOT NULL, `hours` float(3,1) unsigned NOT NULL DEFAULT '0.0', `estimate` decimal(12,2) unsigned NOT NULL DEFAULT '0.00', @@ -1792,9 +1792,9 @@ CREATE TABLE IF NOT EXISTS `zt_testrun` ( `case` mediumint(8) unsigned NOT NULL default '0', `version` tinyint(3) unsigned NOT NULL default '0', `assignedTo` char(30) NOT NULL default '', - `lastRunner` varchar(30) NOT NULL, - `lastRunDate` datetime NOT NULL, - `lastRunResult` char(30) NOT NULL, + `lastRunner` varchar(30) NOT NULL DEFAULT '', + `lastRunDate` datetime NULL, + `lastRunResult` char(30) NOT NULL DEFAULT '', `status` char(30) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `task` (`task`,`case`) @@ -1810,8 +1810,8 @@ CREATE TABLE IF NOT EXISTS `zt_testsuite` ( `order` smallint unsigned NOT NULL DEFAULT '0', `addedBy` char(30) NOT NULL, `addedDate` datetime NOT NULL, - `lastEditedBy` char(30) NOT NULL, - `lastEditedDate` datetime NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` datetime NULL, `deleted` enum('0','1') NOT NULL, PRIMARY KEY (`id`), KEY `product` (`product`) @@ -1829,7 +1829,7 @@ CREATE TABLE IF NOT EXISTS `zt_testtask` ( `pri` tinyint(3) unsigned NOT NULL default '0', `begin` date NOT NULL, `end` date NOT NULL, - `realFinishedDate` datetime NOT NULL, + `realFinishedDate` datetime NULL, `mailto` text, `desc` mediumtext NOT NULL, `report` text NOT NULL, @@ -1851,7 +1851,7 @@ CREATE TABLE IF NOT EXISTS `zt_todo` ( `date` date NOT NULL, `begin` smallint(4) unsigned zerofill NOT NULL, `end` smallint(4) unsigned zerofill NOT NULL, - `feedback` mediumint(8) unsigned NOT NULL, + `feedback` mediumint(8) unsigned NOT NULL DEFAULT '0', `type` char(15) NOT NULL, `cycle` tinyint(3) unsigned NOT NULL DEFAULT '0', `idvalue` mediumint(8) unsigned NOT NULL DEFAULT '0', @@ -1859,15 +1859,15 @@ CREATE TABLE IF NOT EXISTS `zt_todo` ( `name` char(150) NOT NULL, `desc` mediumtext NOT NULL, `status` enum('wait','doing','done','closed') NOT NULL DEFAULT 'wait', - `private` tinyint(1) NOT NULL, - `config` varchar(255) NOT NULL, + `private` tinyint(1) NOT NULL DEFAULT '0', + `config` varchar(255) NOT NULL DEFAULT '', `assignedTo` varchar(30) NOT NULL DEFAULT '', `assignedBy` varchar(30) NOT NULL DEFAULT '', - `assignedDate` datetime NOT NULL, + `assignedDate` datetime NULL, `finishedBy` varchar(30) NOT NULL DEFAULT '', - `finishedDate` datetime NOT NULL, + `finishedDate` datetime NULL, `closedBy` varchar(30) NOT NULL DEFAULT '', - `closedDate` datetime NOT NULL, + `closedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', `vision` varchar(10) NOT NULL DEFAULT 'rnd', PRIMARY KEY (`id`), @@ -1879,7 +1879,7 @@ CREATE TABLE IF NOT EXISTS `zt_todo` ( -- DROP TABLE IF EXISTS `zt_user`; CREATE TABLE IF NOT EXISTS `zt_user` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, - `company` mediumint(8) unsigned NOT NULL, + `company` mediumint(8) unsigned NOT NULL DEFAULT '0', `type` char(30) NOT NULL DEFAULT 'inside', `dept` mediumint(8) unsigned NOT NULL DEFAULT '0', `account` char(30) NOT NULL DEFAULT '', @@ -1888,9 +1888,9 @@ CREATE TABLE IF NOT EXISTS `zt_user` ( `realname` varchar(100) NOT NULL DEFAULT '', `pinyin` varchar(255) NOT NULL DEFAULT '', `nickname` char(60) NOT NULL DEFAULT '', - `commiter` varchar(100) NOT NULL, - `avatar` text NOT NULL, - `birthday` date NOT NULL DEFAULT '0000-00-00', + `commiter` varchar(100) NOT NULL DEFAULT '', + `avatar` text NOT NULL DEFAULT '', + `birthday` date NULL, `gender` enum('f','m') NOT NULL DEFAULT 'f', `email` char(90) NOT NULL DEFAULT '', `skype` char(90) NOT NULL DEFAULT '', @@ -1903,22 +1903,22 @@ CREATE TABLE IF NOT EXISTS `zt_user` ( `whatsapp` varchar(90) NOT NULL DEFAULT '', `address` char(120) NOT NULL DEFAULT '', `zipcode` char(10) NOT NULL DEFAULT '', - `nature` text NOT NULL, - `analysis` text NOT NULL, - `strategy` text NOT NULL, - `join` date NOT NULL DEFAULT '0000-00-00', + `nature` text NOT NULL DEFAULT '', + `analysis` text NOT NULL DEFAULT '', + `strategy` text NOT NULL DEFAULT '', + `join` date NULL, `visits` mediumint(8) unsigned NOT NULL DEFAULT '0', `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', `ip` char(15) NOT NULL DEFAULT '', `last` int(10) unsigned NOT NULL DEFAULT '0', `fails` tinyint(5) NOT NULL DEFAULT '0', - `locked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `locked` datetime NULL, `feedback` enum('0','1') NOT NULL DEFAULT '0', `ranzhi` char(30) NOT NULL DEFAULT '', - `ldap` char(30) NOT NULL, + `ldap` char(30) NOT NULL DEFAULT '', `score` int(11) NOT NULL DEFAULT '0', `scoreLevel` int(11) NOT NULL DEFAULT '0', - `resetToken` varchar(50) NOT NULL, + `resetToken` varchar(50) NOT NULL DEFAULT '', `deleted` enum('0','1') NOT NULL DEFAULT '0', `clientStatus` enum('online','away','busy','offline','meeting') NOT NULL DEFAULT 'offline', `clientLang` varchar(10) NOT NULL DEFAULT 'zh-cn', @@ -2018,23 +2018,23 @@ CREATE TABLE IF NOT EXISTS `zt_webhook` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES -('*', '*', '*', '*', '*', '', '监控定时任务', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computeburn', '更新燃尽图', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computecfd', '更新累积流图', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('0', '8', '*', '*', '*', 'moduleName=report&methodName=remind', '每日任务提醒', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=svn&methodName=run', '同步SVN', 'zentao', 1, 'stop', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=git&methodName=run', '同步GIT', 'zentao', 1, 'stop', '0000-00-00 00:00:00'), -('30', '0', '*', '*', '*', 'moduleName=backup&methodName=backup', '备份数据和附件', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=mail&methodName=asyncSend', '异步发信', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=webhook&methodName=asyncSend', '异步发送Webhook', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=admin&methodName=deleteLog', '删除过期日志', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('1', '1', '*', '*', '*', 'moduleName=todo&methodName=createCycle', '生成周期性待办', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('1', '0', '*', '*', '*', 'moduleName=ci&methodName=initQueue', '创建周期性任务', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=ci&methodName=checkCompileStatus', '同步DevOps构建任务状态', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=ci&methodName=exec', '执行DevOps构建任务', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=mr&methodName=syncMR', '定时同步GitLab合并数据到禅道数据库', 'zentao', 1, 'normal', '0000-00-00 00:00:00'), -('*/5', '*', '*', '*', '*', 'moduleName=compile&methodName=syncCompile', '定时同步构建记录', 'zentao', 1, 'normal', '0000-00-00 00:00:00'); +INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`) VALUES +('*', '*', '*', '*', '*', '', '监控定时任务', 'zentao', 1, 'normal'), +('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computeburn', '更新燃尽图', 'zentao', 1, 'normal'), +('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computecfd', '更新累积流图', 'zentao', 1, 'normal'), +('0', '8', '*', '*', '*', 'moduleName=report&methodName=remind', '每日任务提醒', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=svn&methodName=run', '同步SVN', 'zentao', 1, 'stop'), +('*/5', '*', '*', '*', '*', 'moduleName=git&methodName=run', '同步GIT', 'zentao', 1, 'stop'), +('30', '0', '*', '*', '*', 'moduleName=backup&methodName=backup', '备份数据和附件', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=mail&methodName=asyncSend', '异步发信', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=webhook&methodName=asyncSend', '异步发送Webhook', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=admin&methodName=deleteLog', '删除过期日志', 'zentao', 1, 'normal'), +('1', '1', '*', '*', '*', 'moduleName=todo&methodName=createCycle', '生成周期性待办', 'zentao', 1, 'normal'), +('1', '0', '*', '*', '*', 'moduleName=ci&methodName=initQueue', '创建周期性任务', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=ci&methodName=checkCompileStatus', '同步DevOps构建任务状态', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=ci&methodName=exec', '执行DevOps构建任务', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=mr&methodName=syncMR', '定时同步GitLab合并数据到禅道数据库', 'zentao', 1, 'normal'), +('*/5', '*', '*', '*', '*', 'moduleName=compile&methodName=syncCompile', '定时同步构建记录', 'zentao', 1, 'normal'); INSERT INTO `zt_group` (`vision`, `name`, `role`, `desc`) VALUES ('rnd', 'ADMIN', 'admin', 'for administrator'), @@ -6623,8 +6623,8 @@ CREATE TABLE IF NOT EXISTS `zt_im_userdevice` ( UNIQUE KEY `userdevice` (`user`, `device`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computeTaskEffort', '计算任务剩余工时', 'zentao', '1', 'normal', '0000-00-00 00:00:00'); -INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('30', '7', '*', '*', '*', 'moduleName=effort&methodName=remindNotRecord', '提醒录入日志', 'zentao', '1', 'stop', '0000-00-00 00:00:00'); +INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`) VALUES ('30', '23', '*', '*', '*', 'moduleName=execution&methodName=computeTaskEffort', '计算任务剩余工时', 'zentao', '1', 'normal'); +INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`) VALUES ('30', '7', '*', '*', '*', 'moduleName=effort&methodName=remindNotRecord', '提醒录入日志', 'zentao', '1', 'stop'); REPLACE INTO `zt_grouppriv` (`group`, `module`, `method`) VALUES (1,'company','alleffort'), (1,'company','allTodo'), @@ -7180,20 +7180,20 @@ CREATE TABLE IF NOT EXISTS `zt_feedback` ( `faq` mediumint(8) unsigned NOT NULL, `openedBy` char(30) NOT NULL, `openedDate` datetime NOT NULL, - `reviewedBy` varchar(255) NOT NULL, - `reviewedDate` datetime NOT NULL, - `processedBy` char(30) NOT NULL, - `processedDate` datetime NOT NULL, - `closedBy` char(30) NOT NULL, - `closedDate` datetime NOT NULL, - `closedReason` varchar(30) NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedTo` varchar(255) NOT NULL, - `assignedDate` datetime NOT NULL, - `activatedBy` varchar(30) NOT NULL, - `activatedDate` datetime NOT NULL, - `feedbackBy` varchar(100) NOT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, + `processedBy` char(30) NOT NULL DEFAULT '', + `processedDate` datetime NULL, + `closedBy` char(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, + `feedbackBy` varchar(100) NOT NULL DEFAULT '', `repeatFeedback` mediumint(8) NOT NULL DEFAULT 0, `mailto` varchar(255) NOT NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', @@ -7210,11 +7210,11 @@ CREATE TABLE IF NOT EXISTS `zt_ticket` ( `desc` text NOT NULL, `openedBuild` varchar(255) NOT NULL, `feedback` mediumint(8) NOT NULL, - `assignedTo` varchar(255) NOT NULL, - `assignedDate` datetime NOT NULL, - `realStarted` datetime NOT NULL, - `startedBy` varchar(255) NOT NULL, - `startedDate` datetime NOT NULL, + `assignedTo` varchar(255) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, + `realStarted` datetime NULL, + `startedBy` varchar(255) NOT NULL DEFAULT '', + `startedDate` datetime NULL, `deadline` date NOT NULL, `pri` tinyint unsigned NOT NULL DEFAULT '0', `estimate` float unsigned NOT NULL, @@ -7222,19 +7222,19 @@ CREATE TABLE IF NOT EXISTS `zt_ticket` ( `status` varchar(30) NOT NULL, `openedBy` varchar(30) NOT NULL, `openedDate` datetime NOT NULL, - `activatedCount` int(10) NOT NULL, - `activatedBy` varchar(30) NOT NULL, - `activatedDate` datetime NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` datetime NOT NULL, - `closedReason` varchar(30) NOT NULL, - `finishedBy` varchar(30) NOT NULL, - `finishedDate` datetime NOT NULL, - `resolvedBy` varchar(30) NOT NULL, - `resolvedDate` datetime NOT NULL, - `resolution` text NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `activatedCount` int(10) NOT NULL DEFAULT '0', + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, + `closedReason` varchar(30) NOT NULL DEFAULT '', + `finishedBy` varchar(30) NOT NULL DEFAULT '', + `finishedDate` datetime NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime NULL, + `resolution` text NOT NULL DEFAULT '', + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `keywords` varchar(255) NOT NULL, `repeatTicket` mediumint(8) NOT NULL DEFAULT '0', `mailto` varchar(255) NOT NULL, @@ -7283,8 +7283,8 @@ CREATE TABLE IF NOT EXISTS `zt_serverroom` ( `owner` varchar(30) NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -7303,8 +7303,8 @@ CREATE TABLE IF NOT EXISTS `zt_account` ( `extra` text NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `status` varchar(30) NOT NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -7353,8 +7353,8 @@ CREATE TABLE `zt_host` ( `group` varchar(128) NOT NULL DEFAULT '', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -7377,7 +7377,7 @@ CREATE TABLE `zt_image` ( `desc` text NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `restoreDate` datetime NOT NULL, + `restoreDate` datetime NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -7414,8 +7414,8 @@ CREATE TABLE IF NOT EXISTS `zt_service` ( `type` varchar(20) NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `parent` mediumint(8) unsigned NOT NULL default '0', `path` char(255) NOT NULL default '', `grade` tinyint(3) unsigned NOT NULL default '0', @@ -7441,9 +7441,9 @@ CREATE TABLE IF NOT EXISTS `zt_attend` ( `manualOut` time NOT NULL, `reason` varchar(30) NOT NULL DEFAULT '', `desc` text NOT NULL, - `reviewStatus` varchar(30) NOT NULL DEFAULT '', - `reviewedBy` char(30) NOT NULL, - `reviewedDate` datetime NOT NULL, + `reviewStatus` varchar(30) NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, PRIMARY KEY (`id`), KEY `account` (`account`), KEY `date` (`date`), @@ -7492,14 +7492,14 @@ CREATE TABLE IF NOT EXISTS `zt_overtime` ( `type` varchar(30) NOT NULL DEFAULT '', `desc` text NOT NULL, `status` varchar(30) NOT NULL DEFAULT '', - `rejectReason` varchar(100) NOT NULL, + `rejectReason` varchar(100) NOT NULL DEFAULT '', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `reviewedBy` char(30) NOT NULL, - `reviewedDate` datetime NOT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `reviewers` text NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `year` (`year`), KEY `type` (`type`), @@ -7528,18 +7528,18 @@ CREATE TABLE IF NOT EXISTS `zt_leave` ( `start` time NOT NULL, `finish` time NOT NULL, `hours` float(4,1) unsigned NOT NULL DEFAULT '0.0', - `backDate` datetime NOT NULL, + `backDate` datetime NULL, `type` varchar(30) NOT NULL DEFAULT '', `desc` text NOT NULL, `status` varchar(30) NOT NULL DEFAULT '', `createdBy` char(30) NOT NULL, - `createdDate` datetime NOT NULL, - `reviewedBy` char(30) NOT NULL, - `reviewedDate` datetime NOT NULL, + `createdDate` datetime NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `reviewers` text NOT NULL, - `backReviewers` text NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text NOT NULL DEFAULT '', + `backReviewers` text NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `year` (`year`), KEY `type` (`type`), @@ -7561,11 +7561,11 @@ CREATE TABLE IF NOT EXISTS `zt_lieu` ( `status` varchar(30) NOT NULL DEFAULT '', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `reviewedBy` char(30) NOT NULL, - `reviewedDate` datetime NOT NULL, + `reviewedBy` char(30) NOT NULL DEFAULT '', + `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `reviewers` text NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `reviewers` text NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `year` (`year`), KEY `status` (`status`), @@ -7628,10 +7628,10 @@ CREATE TABLE IF NOT EXISTS `zt_deploystep` ( `stage` varchar(30) NOT NULL, `content` text NOT NULL, `status` varchar(30) NOT NULL, - `assignedTo` char(30) NOT NULL, - `assignedDate` datetime NOT NULL, - `finishedBy` char(30) NOT NULL, - `finishedDate` datetime NOT NULL, + `assignedTo` char(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, + `finishedBy` char(30) NOT NULL DEFAULT '', + `finishedDate` datetime NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, `deleted` enum('0','1') NOT NULL, @@ -7657,8 +7657,8 @@ CREATE TABLE IF NOT EXISTS `zt_traincourse` ( `desc` mediumtext NOT NULL, `createdBy` varchar(255) NOT NULL, `createdDate` date NOT NULL, - `editedBy` varchar(255) NOT NULL, - `editedDate` date NOT NULL, + `editedBy` varchar(255) NOT NULL DEFAULT '', + `editedDate` date NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -7676,8 +7676,8 @@ CREATE TABLE IF NOT EXISTS `zt_traincontents` ( `order` mediumint(8) NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -7723,13 +7723,13 @@ CREATE TABLE IF NOT EXISTS `zt_domain`( `adminURI` varchar(255) NOT NULL, `resolverURI` varchar(255) NOT NULL, `register` varchar(255) NOT NULL, - `expiredDate` datetime NOT NULL, + `expiredDate` datetime NULL, `renew` varchar(255) NOT NULL, `account` varchar(255) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), key `domain` (`domain`) @@ -8763,8 +8763,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflow` ( `approval` enum('enabled','disabled') NOT NULL DEFAULT 'disabled', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique` (`app`,`module`,`vision`), KEY `type` (`type`), @@ -8804,8 +8804,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowaction` ( `vision` varchar(10) NOT NULL DEFAULT 'rnd', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique` (`module`,`action`,`vision`), KEY `module` (`module`), @@ -8827,8 +8827,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowdatasource` ( `vision` varchar(10) NOT NULL DEFAULT 'rnd', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), KEY `type` (`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -8859,8 +8859,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowfield` ( `desc` text NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), KEY `module` (`module`), KEY `field` (`field`), @@ -8904,8 +8904,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowlabel` ( `role` varchar(10) NOT NULL DEFAULT 'custom', `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), KEY `module` (`module`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -8959,8 +8959,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowrule` ( `rule` text NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` char(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` char(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), KEY `type` (`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -8975,8 +8975,8 @@ CREATE TABLE IF NOT EXISTS `zt_workflowsql` ( `vars` text NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, PRIMARY KEY (`id`), KEY `module` (`module`), KEY `field` (`field`), @@ -9017,7 +9017,14 @@ CREATE TABLE IF NOT EXISTS `zt_workflowreport` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -REPLACE INTO `zt_workflowrule` VALUES ('system','必填','notempty','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','唯一','unique','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','日期','date','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','email','email','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','数字','float','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','电话','phone','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'),('system','IP','ip','admin','2020-10-14 14:06:14','','0000-00-00 00:00:00'); +REPLACE INTO `zt_workflowrule` VALUES +('system','必填','notempty','admin','2020-10-14 14:06:14'), +('system','唯一','unique','admin','2020-10-14 14:06:14'), +('system','日期','date','admin','2020-10-14 14:06:14'), +('system','email','email','admin','2020-10-14 14:06:14'), +('system','数字','float','admin','2020-10-14 14:06:14'), +('system','电话','phone','admin','2020-10-14 14:06:14'), +('system','IP','ip','admin','2020-10-14 14:06:14'); REPLACE INTO `zt_grouppriv` VALUES (1,'apppriv','flow'), @@ -9094,76 +9101,76 @@ REPLACE INTO `zt_grouppriv` VALUES (1,'workflowrule','edit'), (1,'workflowrule','view'); -INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `datasource`, `view`, `keyField`, `valueField`) VALUES -('system', '产品', 'products', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), -('system', '项目', 'projects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品线', 'productLines', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '需求', 'stories', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), -('sql', '任务', 'tasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), -('sql', 'Bug', 'bugs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), -('system', '权限分组', 'groups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'users', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品分支', 'branches', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '版本', 'builds', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), -('sql', '模块', 'modules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('sql', '计划', 'plans', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), -('lang', '产品类型', 'productType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productType', '', '', ''), -('lang', '产品状态', 'productStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productStatus', '', '', ''), -('lang', '产品访问控制', 'productAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'productAcl', '', '', ''), -('lang', '项目类型', 'projectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectType', '', '', ''), -('lang', '项目状态', 'projectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'projectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), -('lang', '发布状态', 'releaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'releaseStatus', '', '', ''), -('lang', '需求来源', 'storySource', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storySource', '', '', ''), -('lang', '需求优先级', 'storyPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyPri', '', '', ''), -('lang', '需求状态', 'storyStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyStatus', '', '', ''), -('lang', '需求阶段', 'storyStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyStage', '', '', ''), -('lang', 'Bug严重程度', 'bugSeverity', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugSeverity', '', '', ''), -('lang', 'Bug优先级', 'bugPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugPri', '', '', ''), -('lang', 'Bug类型', 'bugType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugType', '', '', ''), -('lang', 'Bug操作系统', 'bugOs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugOs', '', '', ''), -('lang', 'Bug浏览器', 'bugBrowser', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugBrowser', '', '', ''), -('lang', 'Bug状态', 'bugStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugStatus', '', '', ''), -('lang', '任务类型', 'taskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskType', '', '', ''), -('lang', '任务优先级', 'taskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskPri', '', '', ''), -('lang', '任务状态', 'taskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), -('lang', '测试用例优先级', 'testcasePri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcasePri', '', '', ''), -('lang', '测试用例类型', 'testcaseType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseType', '', '', ''), -('lang', '测试用例阶段', 'testcaseStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseStage', '', '', ''), -('lang', '测试用例状态', 'testcaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testcaseStatus', '', '', ''), -('lang', '测试单优先级', 'testtaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testtaskPri', '', '', ''), -('lang', '测试单状态', 'testtaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testtaskStatus', '', '', ''), -('lang', '反馈状态', 'feedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), -('lang', 'Bug解决方案', 'bugResolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'bugResolution', '', '', ''), -('sql', '用例', 'cases', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), -('system', '反馈分支', 'feedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '需求类型', 'storyType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyType', '', '', ''), -('system', '执行', 'executions', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), -('lang', '项目模型', 'projectModel', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectModel', '', '', ''), -('lang', '反馈类型', 'feedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'feedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'taskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskReason', '', '', ''), -('lang', '套件权限', 'testsuiteAuth', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'testsuiteAuth', '', '', ''), -('system', '项目集', 'programs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), -('lang', '需求关闭原因', 'storyClosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'storyClosedReason', '', '', ''), -('system', '项目', 'liteprojects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '任务', 'litetasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), -('system', '权限分组', 'litegroups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'liteusers', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '模块', 'litemodules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('lang', '项目类型', 'liteprojectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectType', '', '', ''), -('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), -('lang', '任务类型', 'litetaskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskType', '', '', ''), -('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskPri', '', '', ''), -('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), -('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), -('system', '反馈分支', 'litefeedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 'taskReason', '', '', ''); +INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) VALUES +('system', '产品', 'products', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), +('system', '项目', 'projects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品线', 'productLines', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '需求', 'stories', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), +('sql', '任务', 'tasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), +('sql', 'Bug', 'bugs', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), +('system', '权限分组', 'groups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'users', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品分支', 'branches', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '版本', 'builds', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), +('sql', '模块', 'modules', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('sql', '计划', 'plans', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), +('lang', '产品类型', 'productType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productType', '', '', ''), +('lang', '产品状态', 'productStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productStatus', '', '', ''), +('lang', '产品访问控制', 'productAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productAcl', '', '', ''), +('lang', '项目类型', 'projectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectType', '', '', ''), +('lang', '项目状态', 'projectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'projectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), +('lang', '发布状态', 'releaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'releaseStatus', '', '', ''), +('lang', '需求来源', 'storySource', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storySource', '', '', ''), +('lang', '需求优先级', 'storyPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyPri', '', '', ''), +('lang', '需求状态', 'storyStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyStatus', '', '', ''), +('lang', '需求阶段', 'storyStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyStage', '', '', ''), +('lang', 'Bug严重程度', 'bugSeverity', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugSeverity', '', '', ''), +('lang', 'Bug优先级', 'bugPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugPri', '', '', ''), +('lang', 'Bug类型', 'bugType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugType', '', '', ''), +('lang', 'Bug操作系统', 'bugOs', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugOs', '', '', ''), +('lang', 'Bug浏览器', 'bugBrowser', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugBrowser', '', '', ''), +('lang', 'Bug状态', 'bugStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugStatus', '', '', ''), +('lang', '任务类型', 'taskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskType', '', '', ''), +('lang', '任务优先级', 'taskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskPri', '', '', ''), +('lang', '任务状态', 'taskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), +('lang', '测试用例优先级', 'testcasePri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcasePri', '', '', ''), +('lang', '测试用例类型', 'testcaseType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseType', '', '', ''), +('lang', '测试用例阶段', 'testcaseStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseStage', '', '', ''), +('lang', '测试用例状态', 'testcaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseStatus', '', '', ''), +('lang', '测试单优先级', 'testtaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testtaskPri', '', '', ''), +('lang', '测试单状态', 'testtaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testtaskStatus', '', '', ''), +('lang', '反馈状态', 'feedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), +('lang', 'Bug解决方案', 'bugResolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugResolution', '', '', ''), +('sql', '用例', 'cases', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), +('system', '反馈分支', 'feedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '需求类型', 'storyType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyType', '', '', ''), +('system', '执行', 'executions', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), +('lang', '项目模型', 'projectModel', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectModel', '', '', ''), +('lang', '反馈类型', 'feedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'feedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'taskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskReason', '', '', ''), +('lang', '套件权限', 'testsuiteAuth', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testsuiteAuth', '', '', ''), +('system', '项目集', 'programs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), +('lang', '需求关闭原因', 'storyClosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyClosedReason', '', '', ''), +('system', '项目', 'liteprojects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '任务', 'litetasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), +('system', '权限分组', 'litegroups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'liteusers', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '模块', 'litemodules', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('lang', '项目类型', 'liteprojectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectType', '', '', ''), +('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), +('lang', '任务类型', 'litetaskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskType', '', '', ''), +('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskPri', '', '', ''), +('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), +('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), +('system', '反馈分支', 'litefeedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskReason', '', '', ''); DROP VIEW IF EXISTS `view_datasource_4`; DROP VIEW IF EXISTS `view_datasource_5`; @@ -9195,8 +9202,8 @@ CREATE TABLE IF NOT EXISTS `zt_durationestimation` ( `endDate` date NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9212,10 +9219,10 @@ CREATE TABLE IF NOT EXISTS `zt_workestimation` ( `totalLaborCost` decimal(10,2) unsigned NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', `dayHour` decimal(10,2) DEFAULT NULL, PRIMARY KEY (`id`) @@ -9250,10 +9257,10 @@ CREATE TABLE IF NOT EXISTS `zt_activity` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `order` mediumint(8) DEFAULT '0', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) @@ -9272,10 +9279,10 @@ CREATE TABLE IF NOT EXISTS `zt_auditcl` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9289,8 +9296,8 @@ CREATE TABLE IF NOT EXISTS `zt_auditplan` ( `objectType` char(30) NOT NULL, `process` mediumint(9) NOT NULL, `processType` char(30) NOT NULL, - `checkDate` date NOT NULL, - `checkedBy` varchar(30) NOT NULL, + `checkDate` date NULL, + `checkedBy` varchar(30) NOT NULL DEFAULT '', `realCheckDate` date NOT NULL, `result` char(30) NOT NULL, `project` mediumint(8) unsigned NOT NULL, @@ -9299,10 +9306,10 @@ CREATE TABLE IF NOT EXISTS `zt_auditplan` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', `checkBy` varchar(30) NOT NULL, PRIMARY KEY (`id`) @@ -9341,19 +9348,19 @@ CREATE TABLE IF NOT EXISTS `zt_nc` ( `status` varchar(30) NOT NULL DEFAULT 'active', `severity` char(30) NOT NULL, `deadline` date NOT NULL, - `resolvedBy` varchar(30) NOT NULL, - `resolution` char(30) NOT NULL, - `resolvedDate` date NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` date NOT NULL, + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolution` char(30) NOT NULL DEFAULT '', + `resolvedDate` date NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date NULL, `parent` mediumint(8) unsigned NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedDate` date NOT NULL, - `activateDate` date NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date NULL, + `activateDate` date NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9369,8 +9376,8 @@ CREATE TABLE IF NOT EXISTS `zt_zoutput` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `order` mediumint(8) DEFAULT '0', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) @@ -9389,10 +9396,10 @@ CREATE TABLE IF NOT EXISTS `zt_process` ( `order` mediumint(9) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9470,8 +9477,8 @@ CREATE TABLE IF NOT EXISTS `zt_basicmeas` ( `collectedBy` varchar(10) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `order` mediumint(8) UNSIGNED NOT NULL DEFAULT 0, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -9489,8 +9496,8 @@ CREATE TABLE IF NOT EXISTS `zt_budget` ( `desc` mediumtext NOT NULL, `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, - `lastEditedBy` char(30) NOT NULL, - `lastEditedDate` date NOT NULL, + `lastEditedBy` char(30) NOT NULL DEFAULT '', + `lastEditedDate` date NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9512,8 +9519,8 @@ CREATE TABLE IF NOT EXISTS `zt_researchplan` ( `schedule` mediumtext NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9534,8 +9541,8 @@ CREATE TABLE IF NOT EXISTS `zt_researchreport` ( `method` enum('','videoConference','interview','questionnaire','telephoneInterview') NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9562,8 +9569,8 @@ CREATE TABLE IF NOT EXISTS `zt_meeting` ( `objectID` mediumint(8) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB CHARSET=utf8; @@ -9578,8 +9585,8 @@ CREATE TABLE IF NOT EXISTS `zt_meetingroom` ( `openTime` varchar(255) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB CHARSET=utf8; @@ -9593,9 +9600,9 @@ CREATE TABLE IF NOT EXISTS `zt_assetlib` ( `order` SMALLINT UNSIGNED NOT NULL DEFAULT '0', `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `registerDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `registerDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB CHARSET=utf8; @@ -9682,19 +9689,19 @@ CREATE TABLE IF NOT EXISTS `zt_review` ( `doc` mediumint(8) DEFAULT NULL, `docVersion` smallint(6) DEFAULT NULL, `status` char(30) NOT NULL, - `reviewedBy` varchar(255) NOT NULL, - `auditedBy` varchar(255) NOT NULL, + `reviewedBy` varchar(255) NOT NULL DEFAULT '', + `auditedBy` varchar(255) NOT NULL DEFAULT '', `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, `deadline` date NOT NULL, `lastReviewedBy` varchar(255) DEFAULT NULL, - `lastReviewedDate` date NOT NULL, - `lastAuditedBy` varchar(255) NOT NULL, - `lastAuditedDate` date NOT NULL, - `lastEditedBy` varchar(255) NOT NULL, - `lastEditedDate` date NOT NULL, - `result` char(30) NOT NULL, - `auditResult` char(30) NOT NULL, + `lastReviewedDate` date NULL, + `lastAuditedBy` varchar(255) NOT NULL DEFAULT '', + `lastAuditedDate` date NULL, + `lastEditedBy` varchar(255) NOT NULL DEFAULT '', + `lastEditedDate` date NULL, + `result` char(30) NOT NULL DEFAULT '', + `auditResult` char(30) NOT NULL DEFAULT '', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8; @@ -9711,10 +9718,10 @@ CREATE TABLE IF NOT EXISTS `zt_reviewcl` ( `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; @@ -9745,12 +9752,12 @@ CREATE TABLE IF NOT EXISTS `zt_reviewissue` ( `type` char(30) NOT NULL DEFAULT 'review', `listID` mediumint(8) NOT NULL, `title` varchar(255) NOT NULL, - `opinion` varchar(255) NOT NULL, - `opinionDate` DATE NOT NULL, + `opinion` varchar(255) NOT NULL DEFAULT '', + `opinionDate` DATE NULL, `status` char(30) NOT NULL, - `resolution` char(30) NOT NULL, - `resolutionBy` CHAR(30) NOT NULL, - `resolutionDate` DATE NOT NULL, + `resolution` char(30) NOT NULL DEFAULT '', + `resolutionBy` CHAR(30) NOT NULL DEFAULT '', + `resolutionDate` DATE NULL, `createdBy` char(30) NOT NULL, `createdDate` date NOT NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', @@ -9763,14 +9770,14 @@ CREATE TABLE IF NOT EXISTS `zt_reviewlist` ( `title` varchar(255) NOT NULL, `object` char(30) NOT NULL, `category` char(30) NOT NULL, - `assignedTo` varchar(30) NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', `status` varchar(30) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9782,13 +9789,13 @@ CREATE TABLE IF NOT EXISTS `zt_cmcl` ( `projectType` varchar(255) NOT NULL, `title` int(11) NOT NULL, `contents` text NOT NULL, - `assignedTo` varchar(30) NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', `status` varchar(30) NOT NULL, `order` int(11) NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9804,8 +9811,8 @@ CREATE TABLE IF NOT EXISTS `zt_solutions` ( `type` char(30) NOT NULL, `addedBy` varchar(30) NOT NULL, `addedDate` date NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` date NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` date NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9821,7 +9828,7 @@ CREATE TABLE IF NOT EXISTS `zt_measqueue` ( `params` text, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `updateDate` datetime NOT NULL, + `updateDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9850,16 +9857,16 @@ CREATE TABLE IF NOT EXISTS `zt_issue` ( `version` smallint(6) NOT NULL default 1, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `activateBy` varchar(30) NOT NULL, - `activateDate` date NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` date NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedBy` varchar(30) NOT NULL, - `assignedDate` datetime NOT NULL, - `approvedDate` date NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedBy` varchar(30) NOT NULL DEFAULT '', + `assignedDate` datetime NULL, + `approvedDate` date NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9881,31 +9888,31 @@ CREATE TABLE IF NOT EXISTS `zt_risk` ( `identifiedDate` date NOT NULL, `prevention` mediumtext NOT NULL, `remedy` mediumtext NOT NULL, - `plannedClosedDate` date NOT NULL, - `actualClosedDate` date NOT NULL, + `plannedClosedDate` date NULL, + `actualClosedDate` date NULL, `lib` mediumint(8) unsigned NOT NULL default 0, `from` mediumint(8) unsigned NOT NULL default 0, `version` smallint(6) NOT NULL default 1, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `resolution` mediumtext NOT NULL, - `resolvedBy` varchar(30) NOT NULL, - `activateBy` varchar(30) NOT NULL, - `activateDate` date NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` date NOT NULL, - `cancelBy` varchar(30) NOT NULL, - `cancelDate` date NOT NULL, - `cancelReason` char(30) NOT NULL, - `hangupBy` varchar(30) NOT NULL, - `hangupDate` date NOT NULL, - `trackedBy` varchar(30) NOT NULL, - `trackedDate` date NOT NULL, - `assignedDate` date NOT NULL, - `approvedDate` date NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `resolution` mediumtext NOT NULL DEFAULT '', + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `activateBy` varchar(30) NOT NULL DEFAULT '', + `activateDate` date NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` date NULL, + `cancelBy` varchar(30) NOT NULL DEFAULT '', + `cancelDate` date NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupBy` varchar(30) NOT NULL DEFAULT '', + `hangupDate` date NULL, + `trackedBy` varchar(30) NOT NULL DEFAULT '', + `trackedDate` date NULL, + `assignedDate` date NULL, + `approvedDate` date NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9932,33 +9939,33 @@ CREATE TABLE IF NOT EXISTS `zt_opportunity` ( `ratio` mediumint(8) NOT NULL, `pri` char(30) NOT NULL, `identifiedDate` date NOT NULL, - `assignedTo` varchar(30) NOT NULL, - `assignedDate` date NOT NULL, - `approvedDate` date NOT NULL, + `assignedTo` varchar(30) NOT NULL DEFAULT '', + `assignedDate` date NULL, + `approvedDate` date NULL, `prevention` mediumtext NOT NULL, - `plannedClosedDate` date NOT NULL, - `actualClosedDate` date NOT NULL, + `plannedClosedDate` date NULL, + `actualClosedDate` date NULL, `lib` mediumint(8) unsigned NOT NULL default 0, `from` mediumint(8) unsigned NOT NULL default 0, `version` smallint(6) NOT NULL default 1, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, - `activatedBy` varchar(30) NOT NULL, - `activatedDate` datetime NOT NULL, - `closedBy` varchar(30) NOT NULL, - `closedDate` datetime NOT NULL, - `canceledBy` varchar(30) NOT NULL, - `canceledDate` datetime NOT NULL, - `cancelReason` char(30) NOT NULL, - `hangupedBy` varchar(30) NOT NULL, - `hangupedDate` datetime NOT NULL, - `resolution` mediumtext NOT NULL, - `resolvedBy` varchar(30) NOT NULL, - `resolvedDate` datetime NOT NULL, - `lastCheckedBy` varchar(30) NOT NULL, - `lastCheckedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, + `activatedBy` varchar(30) NOT NULL DEFAULT '', + `activatedDate` datetime NULL, + `closedBy` varchar(30) NOT NULL DEFAULT '', + `closedDate` datetime NULL, + `canceledBy` varchar(30) NOT NULL DEFAULT '', + `canceledDate` datetime NULL, + `cancelReason` char(30) NOT NULL DEFAULT '', + `hangupedBy` varchar(30) NOT NULL DEFAULT '', + `hangupedDate` datetime NULL, + `resolution` mediumtext NOT NULL DEFAULT '', + `resolvedBy` varchar(30) NOT NULL DEFAULT '', + `resolvedDate` datetime NULL, + `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', + `lastCheckedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9978,8 +9985,8 @@ CREATE TABLE IF NOT EXISTS `zt_trainplan` ( `summary` mediumtext NOT NULL, `createdBy` char(30), `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -9994,8 +10001,8 @@ CREATE TABLE IF NOT EXISTS `zt_gapanalysis` ( `needTrain` enum('no','yes') NOT NULL DEFAULT 'no', `createdBy` char(30), `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `project_account` (`project`,`account`) @@ -13919,8 +13926,8 @@ CREATE TABLE IF NOT EXISTS `zt_sqlview` ( `desc` text NOT NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, - `editedBy` varchar(30) NOT NULL, - `editedDate` datetime NOT NULL, + `editedBy` varchar(30) NOT NULL DEFAULT '', + `editedDate` datetime NULL, `deleted` enum('0','1') NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; From 0f6b78f264ae1c10a5e4bde2a35a194aeac0e42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=87=91=E5=8B=87?= Date: Wed, 5 Apr 2023 02:11:12 +0000 Subject: [PATCH 5/6] Fix strict mode of MySQL. --- db/update18.3.sql | 82 +- db/zentao.sql | 1356 +++++++++++++++---------------- framework/base/model.class.php | 11 +- framework/base/router.class.php | 2 +- framework/router.class.php | 12 +- lib/dao/dao.class.php | 2 +- lib/dao/dm.class.php | 82 +- 7 files changed, 836 insertions(+), 711 deletions(-) diff --git a/db/update18.3.sql b/db/update18.3.sql index 64867e915b..9fe596262c 100644 --- a/db/update18.3.sql +++ b/db/update18.3.sql @@ -108,10 +108,10 @@ ALTER TABLE `zt_doclib` CHANGE `product` `product` mediumint unsigned NOT NULL DEFAULT '0', CHANGE `project` `project` mediumint unsigned NOT NULL DEFAULT '0', CHANGE `execution` `execution` mediumint unsigned NOT NULL DEFAULT '0', -CHANGE `collector` `collector` text NOT NULL DEFAULT '', -CHANGE `desc` `desc` mediumtext NOT NULL DEFAULT '', +CHANGE `collector` `collector` text NULL, +CHANGE `desc` `desc` mediumtext NULL, CHANGE `groups` `groups` varchar(255) NOT NULL DEFAULT '', -CHANGE `users` `users` text NOT NULL DEFAULT '', +CHANGE `users` `users` text NULL, CHANGE `order` `order` tinyint unsigned NOT NULL DEFAULT '0'; ALTER TABLE `zt_domain` @@ -154,6 +154,50 @@ CHANGE `editedDate` `editedDate` datetime NULL; ALTER TABLE `zt_image` CHANGE `restoreDate` `restoreDate` datetime NULL; +ALTER TABLE `zt_im_chat` +CHANGE `avatar` `avatar` text NULL, +CHANGE `pinnedMessages` `pinnedMessages` text NULL, +CHANGE `createdDate` `createdDate` datetime NOT NULL, +CHANGE `editedDate` `editedDate` datetime NULL, +CHANGE `mergedDate` `mergedDate` datetime NULL, +CHANGE `lastActiveTime` `lastActiveTime` datetime NULL, +CHANGE `dismissDate` `dismissDate` datetime NULL, +CHANGE `archiveDate` `archiveDate` datetime NULL; + +ALTER TABLE `zt_im_chat_message_index` +CHANGE `startDate` `startDate` datetime NULL, +CHANGE `endDate` `endDate` datetime NULL; + +ALTER TABLE `zt_im_chatuser` +CHANGE `join` `join` datetime NULL, +CHANGE `quit` `quit` datetime NULL; + +ALTER TABLE `zt_im_conference` +CHANGE `openedDate` `openedDate` datetime NULL; + +ALTER TABLE `zt_im_conferenceaction` +CHANGE `data` `data` text NULL, +CHANGE `date` `date` datetime NULL; + +ALTER TABLE `zt_im_message` +CHANGE `content` `content` text NULL, +CHANGE `data` `data` text NULL, +CHANGE `date` `date` datetime NULL; + +ALTER TABLE `zt_im_message_backup` +CHANGE `data` `data` text NULL, +CHANGE `content` `content` text NULL, +CHANGE `date` `date` datetime NULL; + +ALTER TABLE `zt_im_message_index` +CHANGE `startDate` `startDate` datetime NULL, +CHANGE `endDate` `endDate` datetime NULL; + +ALTER TABLE `zt_im_userdevice` +CHANGE `validUntil` `validUntil` datetime NULL, +CHANGE `lastLogin` `lastLogin` datetime NULL, +CHANGE `lastLogout` `lastLogout` datetime NULL; + ALTER TABLE `zt_issue` CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `editedDate` `editedDate` datetime NULL, @@ -202,14 +246,14 @@ CHANGE `backDate` `backDate` datetime NULL, CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', CHANGE `reviewedDate` `reviewedDate` datetime NULL, CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', -CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT '', -CHANGE `backReviewers` `backReviewers` text NOT NULL DEFAULT ''; +CHANGE `reviewers` `reviewers` text NULL, +CHANGE `backReviewers` `backReviewers` text NULL; ALTER TABLE `zt_lieu` CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', CHANGE `reviewedDate` `reviewedDate` datetime NULL, CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', -CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT ''; +CHANGE `reviewers` `reviewers` text NULL; ALTER TABLE `zt_measqueue` CHANGE `updateDate` `updateDate` datetime NULL; @@ -255,7 +299,7 @@ CHANGE `canceledDate` `canceledDate` datetime NULL, CHANGE `cancelReason` `cancelReason` char(30) NOT NULL DEFAULT '', CHANGE `hangupedBy` `hangupedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `hangupedDate` `hangupedDate` datetime NULL, -CHANGE `resolution` `resolution` mediumtext NOT NULL DEFAULT '', +CHANGE `resolution` `resolution` mediumtext NULL, CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `resolvedDate` `resolvedDate` datetime NULL, CHANGE `lastCheckedBy` `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', @@ -266,7 +310,7 @@ CHANGE `rejectReason` `rejectReason` varchar(100) NOT NULL DEFAULT '', CHANGE `reviewedBy` `reviewedBy` char(30) NOT NULL DEFAULT '', CHANGE `reviewedDate` `reviewedDate` datetime NULL, CHANGE `assignedTo` `assignedTo` varchar(30) NOT NULL DEFAULT '', -CHANGE `reviewers` `reviewers` text NOT NULL DEFAULT ''; +CHANGE `reviewers` `reviewers` text NULL; ALTER TABLE `zt_pipeline` CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', @@ -282,7 +326,7 @@ ALTER TABLE `zt_product` CHANGE `code` `code` varchar(45) NOT NULL DEFAULT '', CHANGE `shadow` `shadow` tinyint unsigned NOT NULL DEFAULT '0', CHANGE `feedback` `feedback` varchar(30) NOT NULL DEFAULT '', -CHANGE `reviewer` `reviewer` text NOT NULL DEFAULT '', +CHANGE `reviewer` `reviewer` text NULL, CHANGE `order` `order` mediumint unsigned NOT NULL DEFAULT '0', CHANGE `ticket` `ticket` varchar(30) NOT NULL DEFAULT ''; @@ -291,7 +335,7 @@ CHANGE `closedReason` `closedReason` varchar(20) NOT NULL DEFAULT ''; ALTER TABLE `zt_project` CHANGE `model` `model` char(30) NOT NULL DEFAULT '', -CHANGE `output` `output` text NOT NULL DEFAULT '', +CHANGE `output` `output` text NULL, CHANGE `code` `code` varchar(45) NOT NULL DEFAULT '', CHANGE `auth` `auth` char(30) NOT NULL DEFAULT '', CHANGE `path` `path` varchar(255) NOT NULL DEFAULT '', @@ -299,7 +343,7 @@ CHANGE `grade` `grade` tinyint unsigned NOT NULL DEFAULT '0', CHANGE `realBegan` `realBegan` date NULL, CHANGE `realEnd` `realEnd` date NULL, CHANGE `days` `days` smallint unsigned NOT NULL DEFAULT '0', -CHANGE `desc` `desc` mediumtext NOT NULL DEFAULT '', +CHANGE `desc` `desc` mediumtext NULL, CHANGE `version` `version` smallint NOT NULL DEFAULT '0', CHANGE `parentVersion` `parentVersion` smallint NOT NULL DEFAULT '0', CHANGE `planDuration` `planDuration` int NOT NULL DEFAULT '0', @@ -310,7 +354,7 @@ CHANGE `closedDate` `closedDate` datetime NULL, CHANGE `canceledDate` `canceledDate` datetime NULL, CHANGE `suspendedDate` `suspendedDate` date NULL, CHANGE `team` `team` varchar(90) NOT NULL DEFAULT '', -CHANGE `whitelist` `whitelist` text NOT NULL DEFAULT '', +CHANGE `whitelist` `whitelist` text NULL, CHANGE `order` `order` mediumint unsigned NOT NULL DEFAULT '0'; ALTER TABLE `zt_researchplan` @@ -357,7 +401,7 @@ CHANGE `plannedClosedDate` `plannedClosedDate` date NULL, CHANGE `actualClosedDate` `actualClosedDate` date NULL, CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `editedDate` `editedDate` datetime NULL, -CHANGE `resolution` `resolution` mediumtext NOT NULL DEFAULT '', +CHANGE `resolution` `resolution` mediumtext NULL, CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `activateBy` `activateBy` varchar(30) NOT NULL DEFAULT '', CHANGE `activateDate` `activateDate` date NULL, @@ -423,7 +467,7 @@ CHANGE `estStarted` `estStarted` date NULL, CHANGE `realStarted` `realStarted` datetime NULL, CHANGE `finishedBy` `finishedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `finishedDate` `finishedDate` datetime NULL, -CHANGE `finishedList` `finishedList` text NOT NULL DEFAULT '', +CHANGE `finishedList` `finishedList` text NULL, CHANGE `canceledBy` `canceledBy` varchar(30) NOT NULL DEFAULT '', CHANGE `canceledDate` `canceledDate` datetime NULL, CHANGE `closedBy` `closedBy` varchar(30) NOT NULL DEFAULT '', @@ -466,7 +510,7 @@ CHANGE `finishedBy` `finishedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `finishedDate` `finishedDate` datetime NULL, CHANGE `resolvedBy` `resolvedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `resolvedDate` `resolvedDate` datetime NULL, -CHANGE `resolution` `resolution` varchar(1000) NOT NULL DEFAULT '', +CHANGE `resolution` `resolution` text NULL, CHANGE `editedBy` `editedBy` varchar(30) NOT NULL DEFAULT '', CHANGE `editedDate` `editedDate` datetime NULL; @@ -493,10 +537,10 @@ CHANGE `editedDate` `editedDate` datetime NULL; ALTER TABLE `zt_user` CHANGE `company` `company` mediumint unsigned NOT NULL DEFAULT '0', CHANGE `commiter` `commiter` varchar(100) NOT NULL DEFAULT '', -CHANGE `avatar` `avatar` text NOT NULL DEFAULT '', -CHANGE `nature` `nature` text NOT NULL DEFAULT '', -CHANGE `analysis` `analysis` text NOT NULL DEFAULT '', -CHANGE `strategy` `strategy` text NOT NULL DEFAULT '', +CHANGE `avatar` `avatar` text NULL, +CHANGE `nature` `nature` text NULL, +CHANGE `analysis` `analysis` text NULL, +CHANGE `strategy` `strategy` text NULL, CHANGE `ldap` `ldap` char(30) NOT NULL DEFAULT '', CHANGE `resetToken` `resetToken` varchar(50) NOT NULL DEFAULT '', CHANGE `birthday` `birthday` date NULL, diff --git a/db/zentao.sql b/db/zentao.sql index 2a22372ce0..112372aef7 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -691,10 +691,10 @@ CREATE TABLE IF NOT EXISTS `zt_doclib` ( `baseUrl` varchar(255) NOT NULL DEFAULT '', `acl` varchar(10) NOT NULL DEFAULT 'open', `groups` varchar(255) NOT NULL DEFAULT '', - `users` text NOT NULL DEFAULT '', + `users` text NULL, `main` enum('0','1') NOT NULL DEFAULT '0', - `collector` text NOT NULL DEFAULT '', - `desc` mediumtext NOT NULL DEFAULT '', + `collector` text NULL, + `desc` mediumtext NULL, `order` tinyint(5) unsigned NOT NULL DEFAULT '0', `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), @@ -1188,7 +1188,7 @@ CREATE TABLE IF NOT EXISTS `zt_product` ( `ticket` varchar(30) NOT NULL DEFAULT '', `acl` enum('open','private','custom') NOT NULL DEFAULT 'open', `whitelist` text NOT NULL, - `reviewer` text NOT NULL DEFAULT '', + `reviewer` text NULL, `createdBy` varchar(30) NOT NULL, `createdDate` datetime NOT NULL, `createdVersion` varchar(20) NOT NULL, @@ -1231,7 +1231,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `attribute` varchar(30) NOT NULL DEFAULT '', `percent` float unsigned NOT NULL DEFAULT '0', `milestone` enum('0','1') NOT NULL DEFAULT '0', - `output` text NOT NULL DEFAULT '', + `output` text NULL, `auth` char(30) NOT NULL DEFAULT '', `parent` mediumint(8) unsigned NOT NULL DEFAULT '0', `path` varchar(255) NOT NULL DEFAULT '', @@ -1247,7 +1247,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `status` varchar(10) NOT NULL, `subStatus` varchar(30) NOT NULL DEFAULT '', `pri` enum('1','2','3','4') NOT NULL DEFAULT '1', - `desc` mediumtext NOT NULL DEFAULT '', + `desc` mediumtext NULL, `version` smallint(6) NOT NULL DEFAULT 0, `parentVersion` smallint(6) NOT NULL DEFAULT 0, `planDuration` int(11) NOT NULL DEFAULT 0, @@ -1268,7 +1268,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `RD` varchar(30) NOT NULL DEFAULT '', `team` varchar(90) NOT NULL DEFAULT '', `acl` char(30) NOT NULL DEFAULT 'open', - `whitelist` text NOT NULL DEFAULT '', + `whitelist` text NULL, `order` mediumint(8) unsigned NOT NULL DEFAULT '0', `vision` varchar(10) NOT NULL DEFAULT 'rnd', `division` enum('0','1') NOT NULL DEFAULT '1', @@ -1657,7 +1657,7 @@ CREATE TABLE IF NOT EXISTS `zt_task` ( `realStarted` datetime NULL, `finishedBy` varchar(30) NOT NULL DEFAULT '', `finishedDate` datetime NULL, - `finishedList` text NOT NULL DEFAULT '', + `finishedList` text NULL, `canceledBy` varchar(30) NOT NULL DEFAULT '', `canceledDate` datetime NULL, `closedBy` varchar(30) NOT NULL DEFAULT '', @@ -1889,7 +1889,7 @@ CREATE TABLE IF NOT EXISTS `zt_user` ( `pinyin` varchar(255) NOT NULL DEFAULT '', `nickname` char(60) NOT NULL DEFAULT '', `commiter` varchar(100) NOT NULL DEFAULT '', - `avatar` text NOT NULL DEFAULT '', + `avatar` text NULL, `birthday` date NULL, `gender` enum('f','m') NOT NULL DEFAULT 'f', `email` char(90) NOT NULL DEFAULT '', @@ -1903,9 +1903,9 @@ CREATE TABLE IF NOT EXISTS `zt_user` ( `whatsapp` varchar(90) NOT NULL DEFAULT '', `address` char(120) NOT NULL DEFAULT '', `zipcode` char(10) NOT NULL DEFAULT '', - `nature` text NOT NULL DEFAULT '', - `analysis` text NOT NULL DEFAULT '', - `strategy` text NOT NULL DEFAULT '', + `nature` text NULL, + `analysis` text NULL, + `strategy` text NULL, `join` date NULL, `visits` mediumint(8) unsigned NOT NULL DEFAULT '0', `visions` varchar(20) NOT NULL DEFAULT 'rnd,lite', @@ -6424,20 +6424,20 @@ CREATE TABLE IF NOT EXISTS `zt_im_chat` ( `subject` mediumint(8) unsigned NOT NULL DEFAULT 0, `public` enum('0', '1') NOT NULL DEFAULT '0', `createdBy` varchar(30) NOT NULL DEFAULT '', - `createdDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `createdDate` datetime NOT NULL, `ownedBy` varchar(30) NOT NULL DEFAULT '', `editedBy` varchar(30) NOT NULL DEFAULT '', - `editedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `mergedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `lastActiveTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `editedDate` datetime NULL, + `mergedDate` datetime NULL, + `lastActiveTime` datetime NULL, `lastMessage` int(11) unsigned NOT NULL DEFAULT 0, `lastMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, - `dismissDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `pinnedMessages` text NOT NULL DEFAULT '', + `dismissDate` datetime NULL, + `pinnedMessages` text NULL, `mergedChats` text NOT NULL, `adminInvite` enum('0','1') NOT NULL DEFAULT '0', - `avatar` text NOT NULL DEFAULT '', - `archiveDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `avatar` text NULL, + `archiveDate` datetime NULL, PRIMARY KEY (`id`), KEY `gid` (`gid`), KEY `name` (`name`), @@ -6457,8 +6457,8 @@ CREATE TABLE IF NOT EXISTS `zt_im_chatuser` ( `hide` enum('0', '1') NOT NULL DEFAULT '0', `mute` enum('0', '1') NOT NULL DEFAULT '0', `freeze` enum('0', '1') NOT NULL DEFAULT '0', - `join` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `quit` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `join` datetime NULL, + `quit` datetime NULL, `category` varchar(40) NOT NULL DEFAULT '', `lastReadMessage` int(11) unsigned NOT NULL DEFAULT 0, `lastReadMessageIndex` int(11) unsigned NOT NULL DEFAULT 0, @@ -6493,12 +6493,12 @@ CREATE TABLE IF NOT EXISTS `zt_im_message` ( `gid` char(40) NOT NULL DEFAULT '', `cgid` char(40) NOT NULL DEFAULT '', `user` varchar(30) NOT NULL DEFAULT '', - `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date` datetime NULL, `index` int(11) unsigned NOT NULL DEFAULT 0, `type` enum('normal','broadcast','notify','bulletin','botcommand') NOT NULL DEFAULT 'normal', - `content` text NOT NULL DEFAULT '', + `content` text NULL, `contentType` enum('text', 'plain', 'emotion', 'image', 'file', 'object', 'code') NOT NULL DEFAULT 'text', - `data` text NOT NULL DEFAULT '', + `data` text NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `mgid` (`gid`), @@ -6513,12 +6513,12 @@ CREATE TABLE IF NOT EXISTS `zt_im_message_backup` ( `gid` char(40) NOT NULL DEFAULT '', `cgid` char(40) NOT NULL DEFAULT '', `user` varchar(30) NOT NULL DEFAULT '', - `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date` datetime NULL, `index` int(11) unsigned NOT NULL DEFAULT 0, `type` enum('normal', 'broadcast', 'notify') NOT NULL DEFAULT 'normal', - `content` text NOT NULL DEFAULT '', + `content` text NULL, `contentType` enum('text', 'plain', 'emotion', 'image', 'file', 'object', 'code') NOT NULL DEFAULT 'text', - `data` text NOT NULL DEFAULT '', + `data` text NULL, `deleted` enum('0','1') NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -6528,8 +6528,8 @@ CREATE TABLE IF NOT EXISTS `zt_im_message_index` ( `tableName` char(64) NOT NULL, `start` int(11) unsigned NOT NULL, `end` int(11) unsigned NOT NULL, - `startDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `endDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `startDate` datetime NULL, + `endDate` datetime NULL, `chats` text NOT NULL, PRIMARY KEY (`id`), KEY `tableName` (`tableName`), @@ -6548,8 +6548,8 @@ CREATE TABLE IF NOT EXISTS `zt_im_chat_message_index` ( `end` int(11) unsigned NOT NULL, `startIndex` int(11) unsigned NOT NULL, `endIndex` int(11) unsigned NOT NULL, - `startDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `endDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `startDate` datetime NULL, + `endDate` datetime NULL, `count` mediumint(8) unsigned NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `chattable` (`gid`,`tableName`), @@ -6590,7 +6590,7 @@ CREATE TABLE IF NOT EXISTS `zt_im_conference` ( `participants` text NOT NULL, `invitee` text NOT NULL, `openedBy` mediumint(8) NOT NULL DEFAULT 0, - `openedDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `openedDate` datetime NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -6599,9 +6599,9 @@ CREATE TABLE IF NOT EXISTS `zt_im_conferenceaction` ( `id` mediumint(8) unsigned NOT NULL auto_increment, `rid` char(40) NOT NULL DEFAULT '', `type` enum('create','invite','join','leave','close','publish') NOT NULL DEFAULT 'create', - `data` text NOT NULL DEFAULT '', + `data` text NULL, `user` mediumint(8) NOT NULL DEFAULT 0, - `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `date` datetime NULL, `device` char(40) NOT NULL DEFAULT 'default', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -6613,9 +6613,9 @@ CREATE TABLE IF NOT EXISTS `zt_im_userdevice` ( `device` char(40) NOT NULL DEFAULT 'default', `deviceID` char(40) NOT NULL DEFAULT '', `token` char(64) NOT NULL DEFAULT '', - `validUntil` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `lastLogin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `lastLogout` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + `validUntil` datetime NULL, + `lastLogin` datetime NULL, + `lastLogout` datetime NULL, PRIMARY KEY (`id`), KEY `user` (`user`), KEY `lastLogin` (`lastLogin`), @@ -7232,7 +7232,7 @@ CREATE TABLE IF NOT EXISTS `zt_ticket` ( `finishedDate` datetime NULL, `resolvedBy` varchar(30) NOT NULL DEFAULT '', `resolvedDate` datetime NULL, - `resolution` text NOT NULL DEFAULT '', + `resolution` text NULL, `editedBy` varchar(30) NOT NULL DEFAULT '', `editedDate` datetime NULL, `keywords` varchar(255) NOT NULL, @@ -7499,7 +7499,7 @@ CREATE TABLE IF NOT EXISTS `zt_overtime` ( `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, `assignedTo` varchar(30) NOT NULL DEFAULT '', - `reviewers` text NOT NULL DEFAULT '', + `reviewers` text NULL, PRIMARY KEY (`id`), KEY `year` (`year`), KEY `type` (`type`), @@ -7538,8 +7538,8 @@ CREATE TABLE IF NOT EXISTS `zt_leave` ( `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, `assignedTo` varchar(30) NOT NULL DEFAULT '', - `reviewers` text NOT NULL DEFAULT '', - `backReviewers` text NOT NULL DEFAULT '', + `reviewers` text NULL, + `backReviewers` text NULL, PRIMARY KEY (`id`), KEY `year` (`year`), KEY `type` (`type`), @@ -7565,7 +7565,7 @@ CREATE TABLE IF NOT EXISTS `zt_lieu` ( `reviewedDate` datetime NULL, `level` tinyint(3) NOT NULL, `assignedTo` varchar(30) NOT NULL DEFAULT '', - `reviewers` text NOT NULL DEFAULT '', + `reviewers` text NULL, PRIMARY KEY (`id`), KEY `year` (`year`), KEY `status` (`status`), @@ -9017,7 +9017,7 @@ CREATE TABLE IF NOT EXISTS `zt_workflowreport` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -REPLACE INTO `zt_workflowrule` VALUES +REPLACE INTO `zt_workflowrule`(`type`, `name`, `rule`, `createdBy`, `createdDate`) VALUES ('system','必填','notempty','admin','2020-10-14 14:06:14'), ('system','唯一','unique','admin','2020-10-14 14:06:14'), ('system','日期','date','admin','2020-10-14 14:06:14'), @@ -9102,75 +9102,75 @@ REPLACE INTO `zt_grouppriv` VALUES (1,'workflowrule','view'); INSERT INTO `zt_workflowdatasource` (`type`, `name`, `code`, `buildin`, `vision`, `createdBy`, `createdDate`, `datasource`, `view`, `keyField`, `valueField`) VALUES -('system', '产品', 'products', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), -('system', '项目', 'projects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品线', 'productLines', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '需求', 'stories', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), -('sql', '任务', 'tasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), -('sql', 'Bug', 'bugs', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), -('system', '权限分组', 'groups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'users', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('system', '产品分支', 'branches', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '版本', 'builds', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), -('sql', '模块', 'modules', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('sql', '计划', 'plans', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), -('lang', '产品类型', 'productType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productType', '', '', ''), -('lang', '产品状态', 'productStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productStatus', '', '', ''), -('lang', '产品访问控制', 'productAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'productAcl', '', '', ''), -('lang', '项目类型', 'projectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectType', '', '', ''), -('lang', '项目状态', 'projectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'projectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), -('lang', '发布状态', 'releaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'releaseStatus', '', '', ''), -('lang', '需求来源', 'storySource', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storySource', '', '', ''), -('lang', '需求优先级', 'storyPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyPri', '', '', ''), -('lang', '需求状态', 'storyStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyStatus', '', '', ''), -('lang', '需求阶段', 'storyStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyStage', '', '', ''), -('lang', 'Bug严重程度', 'bugSeverity', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugSeverity', '', '', ''), -('lang', 'Bug优先级', 'bugPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugPri', '', '', ''), -('lang', 'Bug类型', 'bugType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugType', '', '', ''), -('lang', 'Bug操作系统', 'bugOs', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugOs', '', '', ''), -('lang', 'Bug浏览器', 'bugBrowser', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugBrowser', '', '', ''), -('lang', 'Bug状态', 'bugStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugStatus', '', '', ''), -('lang', '任务类型', 'taskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskType', '', '', ''), -('lang', '任务优先级', 'taskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskPri', '', '', ''), -('lang', '任务状态', 'taskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), -('lang', '测试用例优先级', 'testcasePri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcasePri', '', '', ''), -('lang', '测试用例类型', 'testcaseType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseType', '', '', ''), -('lang', '测试用例阶段', 'testcaseStage', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseStage', '', '', ''), -('lang', '测试用例状态', 'testcaseStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testcaseStatus', '', '', ''), -('lang', '测试单优先级', 'testtaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testtaskPri', '', '', ''), -('lang', '测试单状态', 'testtaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testtaskStatus', '', '', ''), -('lang', '反馈状态', 'feedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), -('lang', 'Bug解决方案', 'bugResolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'bugResolution', '', '', ''), -('sql', '用例', 'cases', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), -('system', '反馈分支', 'feedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '需求类型', 'storyType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyType', '', '', ''), -('system', '执行', 'executions', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), -('lang', '项目模型', 'projectModel', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectModel', '', '', ''), -('lang', '反馈类型', 'feedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'feedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'taskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskReason', '', '', ''), -('lang', '套件权限', 'testsuiteAuth', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'testsuiteAuth', '', '', ''), -('system', '项目集', 'programs', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), -('lang', '需求关闭原因', 'storyClosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'storyClosedReason', '', '', ''), -('system', '项目', 'liteprojects', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '任务', 'litetasks', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), -('system', '权限分组', 'litegroups', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), -('system', '用户', 'liteusers', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), -('sql', '模块', 'litemodules', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), -('lang', '项目类型', 'liteprojectType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectType', '', '', ''), -('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectStatus', '', '', ''), -('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'projectAcl', '', '', ''), -('lang', '任务类型', 'litetaskType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskType', '', '', ''), -('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskPri', '', '', ''), -('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskStatus', '', '', ''), -('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackStatus', '', '', ''), -('system', '反馈分支', 'litefeedbackModules', '1', 'lite', 'admin', '0000-00-00 00:00:00', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), -('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackType', '', '', ''), -('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackSolution', '', '', ''), -('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'feedbackclosedReason', '', '', ''), -('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'admin', '0000-00-00 00:00:00', 'taskReason', '', '', ''); +('system', '产品', 'products', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getPairs\",\"methodDesc\":\"Get product pairs.\",\"params\":[{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"\",\"value\":\"all\"}]}', '', '', ''), +('system', '项目', 'projects', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品线', 'productLines', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"product\",\"method\":\"getLinePairs\",\"methodDesc\":\"Get line pairs.\",\"params\":[{\"name\":\"useShort\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '需求', 'stories', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,title from zt_story where deleted=\"0\"', 'view_datasource_4', 'id', 'title'), +('sql', '任务', 'tasks', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,name from zt_task where deleted=\"0\" and vision=\"rnd\"', 'view_datasource_5', 'id', 'name'), +('sql', 'Bug', 'bugs', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,title from zt_bug where deleted=\"0\"', 'view_datasource_6', 'id', 'title'), +('system', '权限分组', 'groups', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'users', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('system', '产品分支', 'branches', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"branch\",\"method\":\"getAllPairs\",\"methodDesc\":\"Get pairs.\",\"params\":[{\"name\":\"params\",\"type\":\"string\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '版本', 'builds', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,name from zt_build where deleted=\"0\"', 'view_datasource_10', 'id', 'name'), +('sql', '模块', 'modules', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('sql', '计划', 'plans', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,title from zt_productplan where deleted=\"0\"', 'view_datasource_12', 'id', 'title'), +('lang', '产品类型', 'productType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'productType', '', '', ''), +('lang', '产品状态', 'productStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'productStatus', '', '', ''), +('lang', '产品访问控制', 'productAcl', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'productAcl', '', '', ''), +('lang', '项目类型', 'projectType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectType', '', '', ''), +('lang', '项目状态', 'projectStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'projectAcl', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectAcl', '', '', ''), +('lang', '发布状态', 'releaseStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'releaseStatus', '', '', ''), +('lang', '需求来源', 'storySource', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storySource', '', '', ''), +('lang', '需求优先级', 'storyPri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storyPri', '', '', ''), +('lang', '需求状态', 'storyStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storyStatus', '', '', ''), +('lang', '需求阶段', 'storyStage', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storyStage', '', '', ''), +('lang', 'Bug严重程度', 'bugSeverity', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugSeverity', '', '', ''), +('lang', 'Bug优先级', 'bugPri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugPri', '', '', ''), +('lang', 'Bug类型', 'bugType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugType', '', '', ''), +('lang', 'Bug操作系统', 'bugOs', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugOs', '', '', ''), +('lang', 'Bug浏览器', 'bugBrowser', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugBrowser', '', '', ''), +('lang', 'Bug状态', 'bugStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugStatus', '', '', ''), +('lang', '任务类型', 'taskType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskType', '', '', ''), +('lang', '任务优先级', 'taskPri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskPri', '', '', ''), +('lang', '任务状态', 'taskStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskStatus', '', '', ''), +('lang', '测试用例优先级', 'testcasePri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testcasePri', '', '', ''), +('lang', '测试用例类型', 'testcaseType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testcaseType', '', '', ''), +('lang', '测试用例阶段', 'testcaseStage', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testcaseStage', '', '', ''), +('lang', '测试用例状态', 'testcaseStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testcaseStatus', '', '', ''), +('lang', '测试单优先级', 'testtaskPri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testtaskPri', '', '', ''), +('lang', '测试单状态', 'testtaskStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testtaskStatus', '', '', ''), +('lang', '反馈状态', 'feedbackStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackStatus', '', '', ''), +('lang', 'Bug解决方案', 'bugResolution', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'bugResolution', '', '', ''), +('sql', '用例', 'cases', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,title from zt_case where deleted=\"0\"', 'view_datasource_41', 'id', 'title'), +('system', '反馈分支', 'feedbackModules', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '需求类型', 'storyType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storyType', '', '', ''), +('system', '执行', 'executions', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"execution\",\"method\":\"getPairs\",\"methodDesc\":\"Get execution pairs.\",\"params\":[{\"name\":\"projectID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"all|sprint|stage|kanban\",\"value\":\"all\"},{\"name\":\"mode\",\"type\":\"string\",\"desc\":\"all|noclosed|stagefilter or empty\",\"value\":\"\"}]}', '', '', ''), +('lang', '项目模型', 'projectModel', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectModel', '', '', ''), +('lang', '反馈类型', 'feedbackType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'feedbackSolution', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'feedbackclosedReason', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'taskReason', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskReason', '', '', ''), +('lang', '套件权限', 'testsuiteAuth', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'testsuiteAuth', '', '', ''), +('system', '项目集', 'programs', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"program\",\"method\":\"getPairs\",\"methodDesc\":\"Get program pairs.\",\"params\":[{\"name\":\"isQueryAll\",\"type\":\"bool\",\"desc\":\"\",\"value\":\"\"},{\"name\":\"orderBy\",\"type\":\"string\",\"desc\":\"\",\"value\":\"id_desc\"}]}', '', '', ''), +('lang', '需求关闭原因', 'storyClosedReason', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'storyClosedReason', '', '', ''), +('system', '项目', 'liteprojects', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"project\",\"method\":\"getPairsByModel\",\"methodDesc\":\"Get project pairs by model and project.\",\"params\":[{\"name\":\"model\",\"type\":\"string\",\"desc\":\"all|scrum|waterfall\",\"value\":\"all\"},{\"name\":\"programID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"param\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '任务', 'litetasks', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,name from zt_task where deleted=\"0\" and vision=\"lite\"', 'view_datasource_54', 'id', 'name'), +('system', '权限分组', 'litegroups', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"group\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[]}', '', '', ''), +('system', '用户', 'liteusers', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"user\",\"method\":\"getPairs\",\"methodDesc\":\"\",\"params\":[{\"name\":\"params\",\"type\":\"\",\"desc\":\"\",\"value\":\"noclosed|noletter\"},{\"name\":\"usersToAppended\",\"type\":\"\",\"desc\":\"\",\"value\":\"\"}]}', '', '', ''), +('sql', '模块', 'litemodules', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'select id,name from zt_module where deleted=\"0\"', 'view_datasource_11', 'id', 'name'), +('lang', '项目类型', 'liteprojectType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectType', '', '', ''), +('lang', '项目状态', 'liteprojectStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectStatus', '', '', ''), +('lang', '项目访问控制', 'liteprojectAcl', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'projectAcl', '', '', ''), +('lang', '任务类型', 'litetaskType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskType', '', '', ''), +('lang', '任务优先级', 'litetaskPri', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskPri', '', '', ''), +('lang', '任务状态', 'litetaskStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskStatus', '', '', ''), +('lang', '反馈状态', 'litefeedbackStatus', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackStatus', '', '', ''), +('system', '反馈分支', 'litefeedbackModules', '1', 'lite', 'admin', '1970-01-01 00:00:01', '{\"app\":\"system\",\"module\":\"tree\",\"method\":\"getOptionMenu\",\"methodDesc\":\"Create an option menu in html.\",\"params\":[{\"name\":\"rootID\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"type\",\"type\":\"string\",\"desc\":\"\",\"value\":\"feedback\"},{\"name\":\"startModule\",\"type\":\"int\",\"desc\":\"\",\"value\":\"0\"},{\"name\":\"branch\",\"type\":\"\",\"desc\":\"\",\"value\":\"0\"}]}', '', '', ''), +('lang', '反馈类型', 'litefeedbackType', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackType', '', '', ''), +('lang', '反馈处理方案', 'litefeedbackSolution', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackSolution', '', '', ''), +('lang', '反馈关闭原因', 'litefeedbackclosedReason', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'feedbackclosedReason', '', '', ''), +('lang', '任务关闭原因', 'litetaskReason', '1', 'lite', 'admin', '1970-01-01 00:00:01', 'taskReason', '', '', ''); DROP VIEW IF EXISTS `view_datasource_4`; DROP VIEW IF EXISTS `view_datasource_5`; @@ -9897,7 +9897,7 @@ CREATE TABLE IF NOT EXISTS `zt_risk` ( `createdDate` datetime NOT NULL, `editedBy` varchar(30) NOT NULL DEFAULT '', `editedDate` datetime NULL, - `resolution` mediumtext NOT NULL DEFAULT '', + `resolution` mediumtext NULL, `resolvedBy` varchar(30) NOT NULL DEFAULT '', `activateBy` varchar(30) NOT NULL DEFAULT '', `activateDate` date NULL, @@ -9961,7 +9961,7 @@ CREATE TABLE IF NOT EXISTS `zt_opportunity` ( `cancelReason` char(30) NOT NULL DEFAULT '', `hangupedBy` varchar(30) NOT NULL DEFAULT '', `hangupedDate` datetime NULL, - `resolution` mediumtext NOT NULL DEFAULT '', + `resolution` mediumtext NULL, `resolvedBy` varchar(30) NOT NULL DEFAULT '', `resolvedDate` datetime NULL, `lastCheckedBy` varchar(30) NOT NULL DEFAULT '', @@ -13280,523 +13280,523 @@ REPLACE INTO `zt_lang` (`lang`, `module`, `section`, `key`, `value`, `system`) V ('all', 'process', 'classify', 'project', '项目管理', '1'); REPLACE INTO `zt_process` (`id`, `model`, `name`, `type`, `abbr`, `desc`, `assignedTo`, `status`, `order`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `assignedBy`, `assignedDate`, `deleted`) VALUES -(11, 'waterfall', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(12, 'waterfall', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(13, 'waterfall', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(14, 'waterfall', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(15, 'waterfall', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(16, 'waterfall', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(17, 'waterfall', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(18, 'waterfall', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(19, 'waterfall', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(20, 'waterfall', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(21, 'waterfall', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(22, 'waterfall', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(23, 'waterfall', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(24, 'waterfall', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(25, 'waterfall', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(26, 'waterfall', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(41, 'scrum', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(40, 'scrum', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(39, 'scrum', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(38, 'scrum', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(37, 'scrum', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(36, 'scrum', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(35, 'scrum', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(34, 'scrum', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(33, 'scrum', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(32, 'scrum', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(31, 'scrum', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(30, 'scrum', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(29, 'scrum', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(28, 'scrum', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(27, 'scrum', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(42, 'scrum', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(43, 'waterfallplus', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(44, 'waterfallplus', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(45, 'waterfallplus', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(46, 'waterfallplus', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(47, 'waterfallplus', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(48, 'waterfallplus', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(49, 'waterfallplus', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(50, 'waterfallplus', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(51, 'waterfallplus', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(52, 'waterfallplus', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(53, 'waterfallplus', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(54, 'waterfallplus', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(55, 'waterfallplus', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(56, 'waterfallplus', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(57, 'waterfallplus', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(58, 'waterfallplus', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(59, 'agileplus', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(60, 'agileplus', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(61, 'agileplus', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(62, 'agileplus', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(63, 'agileplus', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(64, 'agileplus', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(65, 'agileplus', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(66, 'agileplus', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(67, 'agileplus', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(68, 'agileplus', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(69, 'agileplus', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(70, 'agileplus', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(71, 'agileplus', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(72, 'agileplus', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(73, 'agileplus', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'), -(74, 'agileplus', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', '0'); +(11, 'waterfall', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(12, 'waterfall', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(13, 'waterfall', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(14, 'waterfall', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(15, 'waterfall', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(16, 'waterfall', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(17, 'waterfall', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(18, 'waterfall', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(19, 'waterfall', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(20, 'waterfall', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(21, 'waterfall', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(22, 'waterfall', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(23, 'waterfall', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(24, 'waterfall', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(25, 'waterfall', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(26, 'waterfall', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(41, 'scrum', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(40, 'scrum', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(39, 'scrum', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(38, 'scrum', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(37, 'scrum', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(36, 'scrum', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(35, 'scrum', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(34, 'scrum', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(33, 'scrum', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(32, 'scrum', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(31, 'scrum', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(30, 'scrum', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(29, 'scrum', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(28, 'scrum', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(27, 'scrum', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(42, 'scrum', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(43, 'waterfallplus', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(44, 'waterfallplus', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(45, 'waterfallplus', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(46, 'waterfallplus', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(47, 'waterfallplus', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(48, 'waterfallplus', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(49, 'waterfallplus', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(50, 'waterfallplus', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(51, 'waterfallplus', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(52, 'waterfallplus', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(53, 'waterfallplus', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(54, 'waterfallplus', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(55, 'waterfallplus', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(56, 'waterfallplus', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(57, 'waterfallplus', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(58, 'waterfallplus', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(59, 'agileplus', '立项管理', 'project', 'PIM', '', '', '', 55, 'admin', '2020-01-09 10:29:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(60, 'agileplus', '项目规划', 'project', 'PP', '', '', '', 60, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(61, 'agileplus', '项目监控', 'project', 'PMC', '', '', '', 65, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(62, 'agileplus', '风险管理', 'project', 'RSKM', '', '', '', 70, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(63, 'agileplus', '结项管理', 'project', 'PCM', '', '', '', 75, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(64, 'agileplus', '量化项目管理', 'project', 'QPM', '', '', '', 80, 'admin', '2020-01-09 10:31:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(65, 'agileplus', '需求开发', 'engineering', 'RDM', '', '', '', 85, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(66, 'agileplus', '设计开发', 'engineering', '', '', '', '', 90, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(67, 'agileplus', '实现与测试', 'engineering', 'EMBEDDED', '', '', '', 95, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(68, 'agileplus', '系统测试', 'engineering', 'ST', '', '', '', 100, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(69, 'agileplus', '客户验收', 'engineering', 'CA', '', '', '', 105, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(70, 'agileplus', '质量保证', 'support', 'QA', '', '', '', 110, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(71, 'agileplus', '配置管理', 'support', 'CM', '', '', '', 115, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(72, 'agileplus', '度量分析', 'support', 'MA', '', '', '', 120, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(73, 'agileplus', '原因分析与解决', 'support', 'CAR', '', '', '', 125, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'), +(74, 'agileplus', '决策分析', 'support', 'DAR', '', '', '', 130, 'admin', '2020-01-09 13:14:55', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', '0'); REPLACE INTO `zt_activity` (`id`, `process`, `name`, `optional`, `tailorNorm`, `content`, `assignedTo`, `status`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `assignedBy`, `assignedDate`, `order`, `deleted`) VALUES -(4, 11, '立项调查,可行性分析,技术预研', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 20, '0'), -(5, 11, '项目预算', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 25, '0'), -(6, 11, '立项决策', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 30, '0'), -(7, 11, '投标/商务洽谈', 'no', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 35, '0'), -(8, 12, '估算', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 40, '0'), -(9, 12, '裁剪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 45, '0'), -(10, 12, '制定项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 50, '0'), -(11, 12, '评审项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 55, '0'), -(12, 13, '日常跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 60, '0'), -(13, 13, '举行周例会', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 65, '0'), -(14, 13, '里程碑评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 70, '0'), -(15, 13, '采取纠正措施', 'no', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 75, '0'), -(16, 14, '制定风险管理计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 80, '0'), -(17, 14, '风险识别', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 85, '0'), -(18, 14, '风险分析', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 90, '0'), -(19, 14, '风险规避和缓解', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 95, '0'), -(20, 14, '风险跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 100, '0'), -(21, 14, '更新组织级“风险列表库”', 'no', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 105, '0'), -(22, 15, '结项准备', 'no', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 110, '0'), -(23, 15, '结项申请', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 115, '0'), -(24, 15, '结项评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 120, '0'), -(25, 15, '资料纳入组织级过程资产库', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 125, '0'), -(26, 16, '量化项目管理', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 130, '0'), -(27, 17, '用户需求获取', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 135, '0'), -(28, 17, '用户需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 140, '0'), -(29, 17, '产品需求定义', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 145, '0'), -(30, 17, '产品需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 150, '0'), -(31, 17, '需求变更控制', 'no', '', '未涉及变更时可不进行', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 155, '0'), -(32, 18, '概要设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 160, '0'), -(33, 18, '评审《概要设计说明书》', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 165, '0'), -(34, 18, '详细设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 170, '0'), -(35, 18, '评审详细设计工作产品', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 175, '0'), -(42, 19, '制定编码阶段计划', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 210, '0'), -(43, 19, '构建数据库', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 215, '0'), -(44, 19, '编码实现', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 220, '0'), -(45, 19, '代码检查', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 225, '0'), -(46, 19, '单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 230, '0'), -(47, 19, '交叉单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 235, '0'), -(48, 19, '系统集成', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 240, '0'), -(49, 19, '编写集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 245, '0'), -(50, 19, '评审集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 250, '0'), -(51, 19, '集成测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 255, '0'), -(52, 19, '缺陷管理', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 260, '0'), -(53, 19, '编写支持文档', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 265, '0'), -(54, 20, '制定《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 270, '0'), -(55, 20, '评审《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 275, '0'), -(56, 20, '编写《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 280, '0'), -(57, 20, '评审《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 285, '0'), -(58, 20, '执行系统测试', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 290, '0'), -(59, 21, '验收准备', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 295, '0'), -(60, 21, '产品打包', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 300, '0'), -(61, 21, '内部培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 305, '0'), -(62, 21, '现场安装调试', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 310, '0'), -(63, 21, '用户使用培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 315, '0'), -(64, 21, '试运行', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 320, '0'), -(65, 21, '客户验收', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 325, '0'), -(66, 22, '制定质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 330, '0'), -(67, 22, '评审质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 335, '0'), -(68, 22, '过程和产品质量检查', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 340, '0'), -(69, 22, '问题跟踪处理', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 345, '0'), -(70, 22, '质量保证总结报告', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 350, '0'), -(71, 23, '组织及配置管理员移交工作', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 355, '0'), -(72, 23, '制定《配置管理计划》', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 360, '0'), -(73, 23, '建立和维护配置库', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 365, '0'), -(74, 23, '配置项管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 370, '0'), -(75, 23, '基线管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 375, '0'), -(76, 23, '变更管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 380, '0'), -(77, 23, '配置审计', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 385, '0'), -(78, 24, '建立项目度量目标', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 390, '0'), -(79, 24, '确定项目度量点', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 395, '0'), -(80, 24, '制定度量分析计划', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 400, '0'), -(81, 24, '收集和分析度量数据', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 405, '0'), -(82, 24, '存储和通报度量分析结果', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 410, '0'), -(83, 25, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:15', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 415, '0'), -(84, 26, '建立评估标准', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 420, '0'), -(85, 26, '确定候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 425, '0'), -(86, 26, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 430, '0'), -(87, 26, '确定评估方法', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 435, '0'), -(88, 26, '评估候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 440, '0'), -(89, 26, '做出决策', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 445, '0'), -(90, 27, '立项调查,可行性分析,技术预研', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 20, '0'), -(91, 27, '项目预算', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 25, '0'), -(92, 27, '立项决策', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 30, '0'), -(93, 27, '投标/商务洽谈', 'no', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 35, '0'), -(94, 28, '估算', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 40, '0'), -(95, 28, '裁剪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 45, '0'), -(96, 28, '制定项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 50, '0'), -(97, 28, '评审项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 55, '0'), -(98, 29, '日常跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 60, '0'), -(99, 29, '举行周例会', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 65, '0'), -(100, 29, '里程碑评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 70, '0'), -(101, 29, '采取纠正措施', 'no', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 75, '0'), -(102, 30, '制定风险管理计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 80, '0'), -(103, 30, '风险识别', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 85, '0'), -(104, 30, '风险分析', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 90, '0'), -(105, 30, '风险规避和缓解', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 95, '0'), -(106, 30, '风险跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 100, '0'), -(107, 30, '更新组织级“风险列表库”', 'no', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 105, '0'), -(108, 31, '结项准备', 'no', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 110, '0'), -(109, 31, '结项申请', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 115, '0'), -(110, 31, '结项评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 120, '0'), -(111, 31, '资料纳入组织级过程资产库', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 125, '0'), -(112, 32, '量化项目管理', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:34', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 130, '0'), -(113, 33, '用户需求获取', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 135, '0'), -(114, 33, '用户需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 140, '0'), -(115, 33, '产品需求定义', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 145, '0'), -(116, 33, '产品需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 150, '0'), -(117, 33, '需求变更控制', 'no', '', '未涉及变更时可不进行', '', '', 'admin', '2020-01-09 13:25:22', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 155, '0'), -(118, 34, '概要设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 160, '0'), -(119, 34, '评审《概要设计说明书》', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 165, '0'), -(120, 34, '详细设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 170, '0'), -(121, 34, '评审详细设计工作产品', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 175, '0'), -(122, 35, '制定编码阶段计划', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 210, '0'), -(123, 35, '构建数据库', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 215, '0'), -(124, 35, '编码实现', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 220, '0'), -(125, 35, '代码检查', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 225, '0'), -(126, 35, '单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 230, '0'), -(127, 35, '交叉单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 235, '0'), -(128, 35, '系统集成', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 240, '0'), -(129, 35, '编写集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 245, '0'), -(130, 35, '评审集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 250, '0'), -(131, 35, '集成测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 255, '0'), -(132, 35, '缺陷管理', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 260, '0'), -(133, 35, '编写支持文档', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 265, '0'), -(134, 36, '制定《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 270, '0'), -(135, 36, '评审《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 275, '0'), -(136, 36, '编写《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 280, '0'), -(137, 36, '评审《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 285, '0'), -(138, 36, '执行系统测试', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 290, '0'), -(139, 37, '验收准备', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 295, '0'), -(140, 37, '产品打包', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 300, '0'), -(141, 37, '内部培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 305, '0'), -(142, 37, '现场安装调试', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 310, '0'), -(143, 37, '用户使用培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 315, '0'), -(144, 37, '试运行', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 320, '0'), -(145, 37, '客户验收', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 325, '0'), -(146, 38, '制定质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 330, '0'), -(147, 38, '评审质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 335, '0'), -(148, 38, '过程和产品质量检查', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 340, '0'), -(149, 38, '问题跟踪处理', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 345, '0'), -(150, 38, '质量保证总结报告', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 350, '0'), -(151, 39, '组织及配置管理员移交工作', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 355, '0'), -(152, 39, '制定《配置管理计划》', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 360, '0'), -(153, 39, '建立和维护配置库', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 365, '0'), -(154, 39, '配置项管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 370, '0'), -(155, 39, '基线管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 375, '0'), -(156, 39, '变更管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 380, '0'), -(157, 39, '配置审计', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 385, '0'), -(158, 40, '建立项目度量目标', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 390, '0'), -(159, 40, '确定项目度量点', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 395, '0'), -(160, 40, '制定度量分析计划', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 400, '0'), -(161, 40, '收集和分析度量数据', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 405, '0'), -(162, 40, '存储和通报度量分析结果', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 410, '0'), -(163, 41, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:15', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 415, '0'), -(164, 42, '建立评估标准', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 420, '0'), -(165, 42, '确定候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 425, '0'), -(166, 42, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 430, '0'), -(167, 42, '确定评估方法', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 435, '0'), -(168, 42, '评估候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 440, '0'), -(169, 42, '做出决策', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '0000-00-00 00:00:00', '', '0000-00-00 00:00:00', 445, '0'); +(4, 11, '立项调查,可行性分析,技术预研', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 20, '0'), +(5, 11, '项目预算', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 25, '0'), +(6, 11, '立项决策', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 30, '0'), +(7, 11, '投标/商务洽谈', 'no', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 35, '0'), +(8, 12, '估算', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 40, '0'), +(9, 12, '裁剪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 45, '0'), +(10, 12, '制定项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 50, '0'), +(11, 12, '评审项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 55, '0'), +(12, 13, '日常跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 60, '0'), +(13, 13, '举行周例会', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 65, '0'), +(14, 13, '里程碑评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 70, '0'), +(15, 13, '采取纠正措施', 'no', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 75, '0'), +(16, 14, '制定风险管理计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 80, '0'), +(17, 14, '风险识别', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 85, '0'), +(18, 14, '风险分析', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 90, '0'), +(19, 14, '风险规避和缓解', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 95, '0'), +(20, 14, '风险跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 100, '0'), +(21, 14, '更新组织级“风险列表库”', 'no', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 105, '0'), +(22, 15, '结项准备', 'no', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 110, '0'), +(23, 15, '结项申请', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 115, '0'), +(24, 15, '结项评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 120, '0'), +(25, 15, '资料纳入组织级过程资产库', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 125, '0'), +(26, 16, '量化项目管理', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 130, '0'), +(27, 17, '用户需求获取', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 135, '0'), +(28, 17, '用户需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 140, '0'), +(29, 17, '产品需求定义', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 145, '0'), +(30, 17, '产品需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 150, '0'), +(31, 17, '需求变更控制', 'no', '', '未涉及变更时可不进行', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 155, '0'), +(32, 18, '概要设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 160, '0'), +(33, 18, '评审《概要设计说明书》', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 165, '0'), +(34, 18, '详细设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 170, '0'), +(35, 18, '评审详细设计工作产品', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 175, '0'), +(42, 19, '制定编码阶段计划', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 210, '0'), +(43, 19, '构建数据库', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 215, '0'), +(44, 19, '编码实现', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 220, '0'), +(45, 19, '代码检查', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 225, '0'), +(46, 19, '单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 230, '0'), +(47, 19, '交叉单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 235, '0'), +(48, 19, '系统集成', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 240, '0'), +(49, 19, '编写集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 245, '0'), +(50, 19, '评审集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 250, '0'), +(51, 19, '集成测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 255, '0'), +(52, 19, '缺陷管理', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 260, '0'), +(53, 19, '编写支持文档', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 265, '0'), +(54, 20, '制定《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 270, '0'), +(55, 20, '评审《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 275, '0'), +(56, 20, '编写《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 280, '0'), +(57, 20, '评审《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 285, '0'), +(58, 20, '执行系统测试', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 290, '0'), +(59, 21, '验收准备', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 295, '0'), +(60, 21, '产品打包', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 300, '0'), +(61, 21, '内部培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 305, '0'), +(62, 21, '现场安装调试', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 310, '0'), +(63, 21, '用户使用培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 315, '0'), +(64, 21, '试运行', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 320, '0'), +(65, 21, '客户验收', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 325, '0'), +(66, 22, '制定质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 330, '0'), +(67, 22, '评审质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 335, '0'), +(68, 22, '过程和产品质量检查', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 340, '0'), +(69, 22, '问题跟踪处理', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 345, '0'), +(70, 22, '质量保证总结报告', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 350, '0'), +(71, 23, '组织及配置管理员移交工作', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 355, '0'), +(72, 23, '制定《配置管理计划》', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 360, '0'), +(73, 23, '建立和维护配置库', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 365, '0'), +(74, 23, '配置项管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 370, '0'), +(75, 23, '基线管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 375, '0'), +(76, 23, '变更管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 380, '0'), +(77, 23, '配置审计', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 385, '0'), +(78, 24, '建立项目度量目标', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 390, '0'), +(79, 24, '确定项目度量点', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 395, '0'), +(80, 24, '制定度量分析计划', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 400, '0'), +(81, 24, '收集和分析度量数据', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 405, '0'), +(82, 24, '存储和通报度量分析结果', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 410, '0'), +(83, 25, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:15', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 415, '0'), +(84, 26, '建立评估标准', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 420, '0'), +(85, 26, '确定候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 425, '0'), +(86, 26, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 430, '0'), +(87, 26, '确定评估方法', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 435, '0'), +(88, 26, '评估候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 440, '0'), +(89, 26, '做出决策', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 445, '0'), +(90, 27, '立项调查,可行性分析,技术预研', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 20, '0'), +(91, 27, '项目预算', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 25, '0'), +(92, 27, '立项决策', 'yes', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 30, '0'), +(93, 27, '投标/商务洽谈', 'no', '', '', '', '', 'admin', '2020-01-09 10:49:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 35, '0'), +(94, 28, '估算', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 40, '0'), +(95, 28, '裁剪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 45, '0'), +(96, 28, '制定项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 50, '0'), +(97, 28, '评审项目计划及下属计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:12:17', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 55, '0'), +(98, 29, '日常跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 60, '0'), +(99, 29, '举行周例会', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 65, '0'), +(100, 29, '里程碑评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 70, '0'), +(101, 29, '采取纠正措施', 'no', '', '', '', '', 'admin', '2020-01-09 11:13:37', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 75, '0'), +(102, 30, '制定风险管理计划', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 80, '0'), +(103, 30, '风险识别', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 85, '0'), +(104, 30, '风险分析', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 90, '0'), +(105, 30, '风险规避和缓解', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 95, '0'), +(106, 30, '风险跟踪', 'yes', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 100, '0'), +(107, 30, '更新组织级“风险列表库”', 'no', '', '', '', '', 'admin', '2020-01-09 11:15:04', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 105, '0'), +(108, 31, '结项准备', 'no', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 110, '0'), +(109, 31, '结项申请', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 115, '0'), +(110, 31, '结项评审', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 120, '0'), +(111, 31, '资料纳入组织级过程资产库', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:16', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 125, '0'), +(112, 32, '量化项目管理', 'yes', '', '', '', '', 'admin', '2020-01-09 11:16:34', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 130, '0'), +(113, 33, '用户需求获取', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 135, '0'), +(114, 33, '用户需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 140, '0'), +(115, 33, '产品需求定义', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 145, '0'), +(116, 33, '产品需求评审', 'yes', '', '', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 150, '0'), +(117, 33, '需求变更控制', 'no', '', '未涉及变更时可不进行', '', '', 'admin', '2020-01-09 13:25:22', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 155, '0'), +(118, 34, '概要设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 160, '0'), +(119, 34, '评审《概要设计说明书》', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 165, '0'), +(120, 34, '详细设计', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 170, '0'), +(121, 34, '评审详细设计工作产品', '', '', '', '', '', 'admin', '2020-01-09 13:26:07', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 175, '0'), +(122, 35, '制定编码阶段计划', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 210, '0'), +(123, 35, '构建数据库', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 215, '0'), +(124, 35, '编码实现', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 220, '0'), +(125, 35, '代码检查', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 225, '0'), +(126, 35, '单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 230, '0'), +(127, 35, '交叉单元测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 235, '0'), +(128, 35, '系统集成', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 240, '0'), +(129, 35, '编写集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 245, '0'), +(130, 35, '评审集成测试用例', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 250, '0'), +(131, 35, '集成测试', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 255, '0'), +(132, 35, '缺陷管理', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 260, '0'), +(133, 35, '编写支持文档', '', '', '', '', '', 'admin', '2020-01-09 13:27:57', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 265, '0'), +(134, 36, '制定《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 270, '0'), +(135, 36, '评审《系统测试计划》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 275, '0'), +(136, 36, '编写《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 280, '0'), +(137, 36, '评审《系统测试用例》', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 285, '0'), +(138, 36, '执行系统测试', '', '', '', '', '', 'admin', '2020-01-09 13:28:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 290, '0'), +(139, 37, '验收准备', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 295, '0'), +(140, 37, '产品打包', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 300, '0'), +(141, 37, '内部培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 305, '0'), +(142, 37, '现场安装调试', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 310, '0'), +(143, 37, '用户使用培训', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 315, '0'), +(144, 37, '试运行', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 320, '0'), +(145, 37, '客户验收', '', '', '', '', '', 'admin', '2020-01-09 13:29:28', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 325, '0'), +(146, 38, '制定质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 330, '0'), +(147, 38, '评审质量保证计划', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 335, '0'), +(148, 38, '过程和产品质量检查', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 340, '0'), +(149, 38, '问题跟踪处理', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 345, '0'), +(150, 38, '质量保证总结报告', '', '', '', '', '', 'admin', '2020-01-09 13:38:58', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 350, '0'), +(151, 39, '组织及配置管理员移交工作', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 355, '0'), +(152, 39, '制定《配置管理计划》', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 360, '0'), +(153, 39, '建立和维护配置库', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 365, '0'), +(154, 39, '配置项管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 370, '0'), +(155, 39, '基线管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 375, '0'), +(156, 39, '变更管理', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 380, '0'), +(157, 39, '配置审计', '', '', '', '', '', 'admin', '2020-01-09 13:39:25', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 385, '0'), +(158, 40, '建立项目度量目标', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 390, '0'), +(159, 40, '确定项目度量点', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 395, '0'), +(160, 40, '制定度量分析计划', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 400, '0'), +(161, 40, '收集和分析度量数据', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 405, '0'), +(162, 40, '存储和通报度量分析结果', '', '', '', '', '', 'admin', '2020-01-09 13:40:05', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 410, '0'), +(163, 41, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:15', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 415, '0'), +(164, 42, '建立评估标准', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 420, '0'), +(165, 42, '确定候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 425, '0'), +(166, 42, '原因分析与解决', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 430, '0'), +(167, 42, '确定评估方法', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 435, '0'), +(168, 42, '评估候选方案', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 440, '0'), +(169, 42, '做出决策', '', '', '', '', '', 'admin', '2020-01-09 13:40:35', '', '1970-01-01 00:00:01', '', '1970-01-01 00:00:01', 445, '0'); REPLACE INTO `zt_zoutput` (`id`, `activity`, `name`, `content`, `optional`, `tailorNorm`, `status`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `order`, `deleted`) VALUES -(5, 4, '《技术可行性分析报告》', '', '', '', '', 'admin', '2020-01-09 11:01:52', '', '0000-00-00 00:00:00', 25, '0'), -(6, 5, '《项目预算表》', '', '', '', '', 'admin', '2020-01-09 11:17:27', '', '0000-00-00 00:00:00', 30, '0'), -(7, 6, '《立项申请报告》', '', '', '', '', 'admin', '2020-01-09 11:17:50', '', '0000-00-00 00:00:00', 35, '0'), -(8, 7, '《项目投标书》', '不涉及投标', '', '', '', 'admin', '2020-01-09 11:18:12', '', '0000-00-00 00:00:00', 40, '0'), -(9, 8, '《项目估算报告》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '0000-00-00 00:00:00', 45, '0'), -(10, 8, '《功能点估算》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '0000-00-00 00:00:00', 50, '0'), -(11, 9, '《PDP说明》', '', '', '', '', 'admin', '2020-01-09 11:18:54', '', '0000-00-00 00:00:00', 55, '0'), -(12, 10, '《项目进度表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 60, '0'), -(13, 10, '《项目计划》及其下属计划', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 65, '0'), -(14, 10, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 70, '0'), -(15, 10, '《项目资源计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 75, '0'), -(16, 10, '《干系人计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 80, '0'), -(17, 10, '《同行评审计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 85, '0'), -(18, 10, '《质量保证计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 90, '0'), -(19, 10, '《配置管理计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 95, '0'), -(20, 11, '《同行评审通知》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '0000-00-00 00:00:00', 100, '0'), -(21, 11, '《评审准备表》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '0000-00-00 00:00:00', 105, '0'), -(22, 11, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 11:20:17', '', '0000-00-00 00:00:00', 110, '0'), -(23, 12, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 115, '0'), -(24, 12, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 120, '0'), -(25, 13, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 125, '0'), -(26, 13, '《会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 130, '0'), -(27, 14, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 135, '0'), -(28, 14, '《里程碑会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 140, '0'), -(29, 15, '《计划变更申请》', '', 'no', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 145, '0'), -(30, 16, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 150, '0'), -(31, 17, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 155, '0'), -(32, 17, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 160, '0'), -(33, 18, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 165, '0'), -(34, 19, '《异常处理申请表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 170, '0'), -(35, 19, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 175, '0'), -(36, 20, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 180, '0'), -(37, 20, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 185, '0'), -(38, 21, '《风险列表库》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 190, '0'), -(39, 22, '《代码复用总结》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '0000-00-00 00:00:00', 195, '0'), -(40, 24, '《结项报告》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '0000-00-00 00:00:00', 200, '0'), -(41, 26, '《量化项目管理及跟踪计划》', '', 'yes', '', '', 'admin', '2020-01-09 13:46:46', '', '0000-00-00 00:00:00', 205, '0'), -(42, 27, '《用户需求调查单》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 210, '0'), -(43, 27, '《用户需求说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 215, '0'), -(44, 28, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 220, '0'), -(45, 28, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 225, '0'), -(46, 28, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 230, '0'), -(47, 29, '《产品需求规格说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 235, '0'), -(48, 30, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 240, '0'), -(49, 30, ' 《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 245, '0'), -(50, 30, ' 《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 250, '0'), -(51, 31, '《需求变更记录》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 255, '0'), -(52, 31, '《用户需求说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 260, '0'), -(53, 31, '《软件需求规格说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 265, '0'), -(54, 32, '《概要设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 270, '0'), -(55, 33, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 275, '0'), -(56, 33, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 280, '0'), -(57, 33, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 285, '0'), -(58, 34, '《模块设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 290, '0'), -(59, 34, '《数据库设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 295, '0'), -(60, 34, '《用户界面设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 300, '0'), -(61, 35, '《评审通知》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 305, '0'), -(62, 35, '《同行评审准备表》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 310, '0'), -(63, 35, '《同行评审报告》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 315, '0'), -(64, 42, '《实现与测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 320, '0'), -(65, 42, '《单板硬件调试和单元测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 325, '0'), -(66, 42, '《项目进度表》中“实现与测试”部分', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 330, '0'), -(67, 43, '产品数据库', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 335, '0'), -(68, 44, '模块代码', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 340, '0'), -(69, 45, '《代码质量检查记录单》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 345, '0'), -(70, 46, '《单元测试缺陷统计分析报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 350, '0'), -(71, 47, '禅道缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 355, '0'), -(72, 48, '《系统集成说明书》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 360, '0'), -(73, 49, '《集成测试用例》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 365, '0'), -(74, 50, '《评审通知》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 370, '0'), -(75, 50, '《同行评审准备表》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 375, '0'), -(76, 50, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 380, '0'), -(77, 51, '《集成测试报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 385, '0'), -(78, 52, '禅道缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 390, '0'), -(79, 52, '《用户操作手册》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 395, '0'), -(80, 52, '《安装手册》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 400, '0'), -(81, 54, '《系统测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 405, '0'), -(82, 55, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 410, '0'), -(83, 55, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 415, '0'), -(84, 55, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 420, '0'), -(85, 56, '《系统测试用例》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 425, '0'), -(86, 57, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 430, '0'), -(87, 57, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 435, '0'), -(88, 57, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 440, '0'), -(89, 58, '禅道缺陷跟踪系统记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 445, '0'), -(90, 58, '《系统测试分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 450, '0'), -(91, 58, '《缺陷统计分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 455, '0'), -(92, 59, '《产品打包清单》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 460, '0'), -(93, 60, '发布光盘、纸质支持文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 465, '0'), -(94, 61, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 470, '0'), -(95, 62, '《工作联系单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 475, '0'), -(96, 62, '《工作记录单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 480, '0'), -(97, 62, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 485, '0'), -(98, 62, '《安装调试信息》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 490, '0'), -(99, 64, '禅道缺陷记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 495, '0'), -(100, 64, '会议纪要等文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 500, '0'), -(101, 65, '《交接验收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 505, '0'), -(102, 65, '《客户验收报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 510, '0'), -(103, 66, '初步《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 515, '0'), -(104, 67, '详细《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 520, '0'), -(105, 68, '《过程审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 525, '0'), -(106, 68, '《产品审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 530, '0'), -(107, 68, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 535, '0'), -(108, 68, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 540, '0'), -(109, 68, '《QA里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 545, '0'), -(110, 68, '《QA周报》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 550, '0'), -(111, 69, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 555, '0'), -(112, 69, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 560, '0'), -(113, 70, '《QA总结报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 565, '0'), -(114, 72, '《配置管理计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 570, '0'), -(115, 72, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 575, '0'), -(116, 72, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 580, '0'), -(117, 73, '《配置库管理报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 585, '0'), -(118, 74, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 590, '0'), -(119, 75, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 595, '0'), -(120, 76, '《变更申请书》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 600, '0'), -(121, 77, '《配置审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 605, '0'), -(122, 80, '《度量分析计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 610, '0'), -(123, 82, '项目度量数据库', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 615, '0'), -(124, 86, '《量化项目管理及跟踪计划》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 620, '0'), -(125, 84, '《决策分析报告》的决策分析评估表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 625, '0'), -(126, 83, '《量化项目计划及跟踪表》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 630, '0'), -(127, 87, '《决策分析报告》的评分表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 635, '0'), -(128, 88, '《决策分析报告》的评分表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 640, '0'), -(129, 89, '《决策分析报告》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 645, '0'), -(130, 90, '《技术可行性分析报告》', '', '', '', '', 'admin', '2020-01-09 11:01:52', '', '0000-00-00 00:00:00', 25, '0'), -(131, 91, '《项目预算表》', '', '', '', '', 'admin', '2020-01-09 11:17:27', '', '0000-00-00 00:00:00', 30, '0'), -(132, 92, '《立项申请报告》', '', '', '', '', 'admin', '2020-01-09 11:17:50', '', '0000-00-00 00:00:00', 35, '0'), -(133, 93, '《项目投标书》', '不涉及投标', '', '', '', 'admin', '2020-01-09 11:18:12', '', '0000-00-00 00:00:00', 40, '0'), -(134, 94, '《项目估算报告》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '0000-00-00 00:00:00', 45, '0'), -(135, 94, '《功能点估算》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '0000-00-00 00:00:00', 50, '0'), -(136, 95, '《PDP说明》', '', '', '', '', 'admin', '2020-01-09 11:18:54', '', '0000-00-00 00:00:00', 55, '0'), -(137, 96, '《项目进度表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 60, '0'), -(138, 96, '《项目计划》及其下属计划', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 65, '0'), -(139, 96, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 70, '0'), -(140, 96, '《项目资源计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 75, '0'), -(141, 96, '《干系人计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 80, '0'), -(142, 96, '《同行评审计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 85, '0'), -(143, 96, '《质量保证计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 90, '0'), -(144, 96, '《配置管理计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '0000-00-00 00:00:00', 95, '0'), -(145, 97, '《同行评审通知》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '0000-00-00 00:00:00', 100, '0'), -(146, 97, '《评审准备表》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '0000-00-00 00:00:00', 105, '0'), -(147, 97, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 11:20:17', '', '0000-00-00 00:00:00', 110, '0'), -(148, 98, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 115, '0'), -(149, 98, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 120, '0'), -(150, 99, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 125, '0'), -(151, 99, '《会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 130, '0'), -(152, 100, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 135, '0'), -(153, 100, '《里程碑会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 140, '0'), -(154, 101, '《计划变更申请》', '', 'no', '', '', 'admin', '2020-01-09 13:44:11', '', '0000-00-00 00:00:00', 145, '0'), -(155, 102, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 150, '0'), -(156, 103, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 155, '0'), -(157, 103, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 160, '0'), -(158, 104, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 165, '0'), -(159, 105, '《异常处理申请表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 170, '0'), -(160, 105, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 175, '0'), -(161, 106, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 180, '0'), -(162, 106, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 185, '0'), -(163, 107, '《风险列表库》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '0000-00-00 00:00:00', 190, '0'), -(164, 108, '《代码复用总结》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '0000-00-00 00:00:00', 195, '0'), -(165, 110, '《结项报告》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '0000-00-00 00:00:00', 200, '0'), -(166, 112, '《量化项目管理及跟踪计划》', '', 'yes', '', '', 'admin', '2020-01-09 13:46:46', '', '0000-00-00 00:00:00', 205, '0'), -(167, 113, '《用户需求调查单》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 210, '0'), -(168, 113, '《用户需求说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 215, '0'), -(169, 114, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 220, '0'), -(170, 114, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 225, '0'), -(171, 114, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 230, '0'), -(172, 115, '《产品需求规格说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 235, '0'), -(173, 116, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 240, '0'), -(174, 116, ' 《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 245, '0'), -(175, 116, ' 《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 250, '0'), -(176, 117, '《需求变更记录》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 255, '0'), -(177, 117, '《用户需求说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 260, '0'), -(178, 117, '《软件需求规格说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '0000-00-00 00:00:00', 265, '0'), -(179, 118, '《概要设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 270, '0'), -(180, 119, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 275, '0'), -(181, 119, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 280, '0'), -(182, 119, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 285, '0'), -(183, 120, '《模块设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 290, '0'), -(184, 120, '《数据库设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 295, '0'), -(185, 120, '《用户界面设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 300, '0'), -(186, 121, '《评审通知》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 305, '0'), -(187, 121, '《同行评审准备表》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 310, '0'), -(188, 121, '《同行评审报告》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '0000-00-00 00:00:00', 315, '0'), -(189, 128, '《实现与测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 320, '0'), -(190, 128, '《单板硬件调试和单元测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 325, '0'), -(191, 128, '《项目进度表》中“实现与测试”部分', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 330, '0'), -(192, 129, '产品数据库', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 335, '0'), -(193, 130, '模块代码', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 340, '0'), -(194, 131, '《代码质量检查记录单》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 345, '0'), -(195, 132, '《单元测试缺陷统计分析报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 350, '0'), -(196, 133, 'bugzilla缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 355, '0'), -(197, 134, '《系统集成说明书》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 360, '0'), -(198, 135, '《集成测试用例》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 365, '0'), -(199, 136, '《评审通知》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 370, '0'), -(200, 136, '《同行评审准备表》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 375, '0'), -(201, 136, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 380, '0'), -(202, 137, '《集成测试报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 385, '0'), -(203, 138, 'bugzilla缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 390, '0'), -(204, 138, '《用户操作手册》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 395, '0'), -(205, 138, '《安装手册》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '0000-00-00 00:00:00', 400, '0'), -(206, 140, '《系统测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 405, '0'), -(207, 141, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 410, '0'), -(208, 141, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 415, '0'), -(209, 141, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 420, '0'), -(210, 142, '《系统测试用例》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 425, '0'), -(211, 143, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 430, '0'), -(212, 143, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 435, '0'), -(213, 143, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 440, '0'), -(214, 144, 'bugzilla缺陷跟踪系统记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 445, '0'), -(215, 144, '《系统测试分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 450, '0'), -(216, 144, '《缺陷统计分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 455, '0'), -(217, 145, '《产品打包清单》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '0000-00-00 00:00:00', 460, '0'), -(218, 146, '发布光盘、纸质支持文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 465, '0'), -(219, 147, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 470, '0'), -(220, 148, '《工作联系单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 475, '0'), -(221, 148, '《工作记录单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 480, '0'), -(222, 148, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 485, '0'), -(223, 148, '《安装调试信息》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 490, '0'), -(224, 150, 'bugzilla缺陷记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 495, '0'), -(225, 150, '会议纪要等文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 500, '0'), -(226, 151, '《交接验收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 505, '0'), -(227, 151, '《客户验收报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '0000-00-00 00:00:00', 510, '0'), -(228, 152, '初步《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 515, '0'), -(229, 153, '详细《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 520, '0'), -(230, 154, '《过程审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 525, '0'), -(231, 154, '《产品审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 530, '0'), -(232, 154, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 535, '0'), -(233, 154, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 540, '0'), -(234, 154, '《QA里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 545, '0'), -(235, 154, '《QA周报》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 550, '0'), -(236, 155, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 555, '0'), -(237, 155, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 560, '0'), -(238, 156, '《QA总结报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '0000-00-00 00:00:00', 565, '0'), -(239, 158, '《配置管理计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 570, '0'), -(240, 158, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 575, '0'), -(241, 158, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 580, '0'), -(242, 159, '《配置库管理报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 585, '0'), -(243, 160, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 590, '0'), -(244, 161, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 595, '0'), -(245, 162, '《变更申请书》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 600, '0'), -(246, 163, '《配置审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 605, '0'), -(247, 166, '《度量分析计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 610, '0'), -(248, 168, '项目度量数据库', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '0000-00-00 00:00:00', 615, '0'), -(249, 169, '《量化项目计划及跟踪表》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '0000-00-00 00:00:00', 630, '0'); +(5, 4, '《技术可行性分析报告》', '', '', '', '', 'admin', '2020-01-09 11:01:52', '', '1970-01-01 00:00:01', 25, '0'), +(6, 5, '《项目预算表》', '', '', '', '', 'admin', '2020-01-09 11:17:27', '', '1970-01-01 00:00:01', 30, '0'), +(7, 6, '《立项申请报告》', '', '', '', '', 'admin', '2020-01-09 11:17:50', '', '1970-01-01 00:00:01', 35, '0'), +(8, 7, '《项目投标书》', '不涉及投标', '', '', '', 'admin', '2020-01-09 11:18:12', '', '1970-01-01 00:00:01', 40, '0'), +(9, 8, '《项目估算报告》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '1970-01-01 00:00:01', 45, '0'), +(10, 8, '《功能点估算》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '1970-01-01 00:00:01', 50, '0'), +(11, 9, '《PDP说明》', '', '', '', '', 'admin', '2020-01-09 11:18:54', '', '1970-01-01 00:00:01', 55, '0'), +(12, 10, '《项目进度表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 60, '0'), +(13, 10, '《项目计划》及其下属计划', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 65, '0'), +(14, 10, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 70, '0'), +(15, 10, '《项目资源计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 75, '0'), +(16, 10, '《干系人计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 80, '0'), +(17, 10, '《同行评审计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 85, '0'), +(18, 10, '《质量保证计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 90, '0'), +(19, 10, '《配置管理计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 95, '0'), +(20, 11, '《同行评审通知》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '1970-01-01 00:00:01', 100, '0'), +(21, 11, '《评审准备表》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '1970-01-01 00:00:01', 105, '0'), +(22, 11, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 11:20:17', '', '1970-01-01 00:00:01', 110, '0'), +(23, 12, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 115, '0'), +(24, 12, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 120, '0'), +(25, 13, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 125, '0'), +(26, 13, '《会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 130, '0'), +(27, 14, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 135, '0'), +(28, 14, '《里程碑会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 140, '0'), +(29, 15, '《计划变更申请》', '', 'no', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 145, '0'), +(30, 16, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 150, '0'), +(31, 17, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 155, '0'), +(32, 17, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 160, '0'), +(33, 18, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 165, '0'), +(34, 19, '《异常处理申请表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 170, '0'), +(35, 19, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 175, '0'), +(36, 20, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 180, '0'), +(37, 20, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 185, '0'), +(38, 21, '《风险列表库》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 190, '0'), +(39, 22, '《代码复用总结》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '1970-01-01 00:00:01', 195, '0'), +(40, 24, '《结项报告》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '1970-01-01 00:00:01', 200, '0'), +(41, 26, '《量化项目管理及跟踪计划》', '', 'yes', '', '', 'admin', '2020-01-09 13:46:46', '', '1970-01-01 00:00:01', 205, '0'), +(42, 27, '《用户需求调查单》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 210, '0'), +(43, 27, '《用户需求说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 215, '0'), +(44, 28, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 220, '0'), +(45, 28, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 225, '0'), +(46, 28, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 230, '0'), +(47, 29, '《产品需求规格说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 235, '0'), +(48, 30, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 240, '0'), +(49, 30, ' 《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 245, '0'), +(50, 30, ' 《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 250, '0'), +(51, 31, '《需求变更记录》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 255, '0'), +(52, 31, '《用户需求说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 260, '0'), +(53, 31, '《软件需求规格说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 265, '0'), +(54, 32, '《概要设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 270, '0'), +(55, 33, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 275, '0'), +(56, 33, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 280, '0'), +(57, 33, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 285, '0'), +(58, 34, '《模块设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 290, '0'), +(59, 34, '《数据库设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 295, '0'), +(60, 34, '《用户界面设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 300, '0'), +(61, 35, '《评审通知》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 305, '0'), +(62, 35, '《同行评审准备表》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 310, '0'), +(63, 35, '《同行评审报告》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 315, '0'), +(64, 42, '《实现与测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 320, '0'), +(65, 42, '《单板硬件调试和单元测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 325, '0'), +(66, 42, '《项目进度表》中“实现与测试”部分', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 330, '0'), +(67, 43, '产品数据库', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 335, '0'), +(68, 44, '模块代码', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 340, '0'), +(69, 45, '《代码质量检查记录单》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 345, '0'), +(70, 46, '《单元测试缺陷统计分析报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 350, '0'), +(71, 47, '禅道缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 355, '0'), +(72, 48, '《系统集成说明书》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 360, '0'), +(73, 49, '《集成测试用例》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 365, '0'), +(74, 50, '《评审通知》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 370, '0'), +(75, 50, '《同行评审准备表》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 375, '0'), +(76, 50, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 380, '0'), +(77, 51, '《集成测试报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 385, '0'), +(78, 52, '禅道缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 390, '0'), +(79, 52, '《用户操作手册》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 395, '0'), +(80, 52, '《安装手册》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 400, '0'), +(81, 54, '《系统测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 405, '0'), +(82, 55, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 410, '0'), +(83, 55, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 415, '0'), +(84, 55, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 420, '0'), +(85, 56, '《系统测试用例》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 425, '0'), +(86, 57, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 430, '0'), +(87, 57, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 435, '0'), +(88, 57, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 440, '0'), +(89, 58, '禅道缺陷跟踪系统记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 445, '0'), +(90, 58, '《系统测试分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 450, '0'), +(91, 58, '《缺陷统计分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 455, '0'), +(92, 59, '《产品打包清单》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 460, '0'), +(93, 60, '发布光盘、纸质支持文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 465, '0'), +(94, 61, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 470, '0'), +(95, 62, '《工作联系单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 475, '0'), +(96, 62, '《工作记录单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 480, '0'), +(97, 62, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 485, '0'), +(98, 62, '《安装调试信息》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 490, '0'), +(99, 64, '禅道缺陷记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 495, '0'), +(100, 64, '会议纪要等文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 500, '0'), +(101, 65, '《交接验收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 505, '0'), +(102, 65, '《客户验收报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 510, '0'), +(103, 66, '初步《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 515, '0'), +(104, 67, '详细《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 520, '0'), +(105, 68, '《过程审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 525, '0'), +(106, 68, '《产品审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 530, '0'), +(107, 68, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 535, '0'), +(108, 68, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 540, '0'), +(109, 68, '《QA里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 545, '0'), +(110, 68, '《QA周报》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 550, '0'), +(111, 69, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 555, '0'), +(112, 69, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 560, '0'), +(113, 70, '《QA总结报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 565, '0'), +(114, 72, '《配置管理计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 570, '0'), +(115, 72, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 575, '0'), +(116, 72, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 580, '0'), +(117, 73, '《配置库管理报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 585, '0'), +(118, 74, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 590, '0'), +(119, 75, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 595, '0'), +(120, 76, '《变更申请书》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 600, '0'), +(121, 77, '《配置审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 605, '0'), +(122, 80, '《度量分析计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 610, '0'), +(123, 82, '项目度量数据库', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 615, '0'), +(124, 86, '《量化项目管理及跟踪计划》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 620, '0'), +(125, 84, '《决策分析报告》的决策分析评估表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 625, '0'), +(126, 83, '《量化项目计划及跟踪表》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 630, '0'), +(127, 87, '《决策分析报告》的评分表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 635, '0'), +(128, 88, '《决策分析报告》的评分表', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 640, '0'), +(129, 89, '《决策分析报告》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 645, '0'), +(130, 90, '《技术可行性分析报告》', '', '', '', '', 'admin', '2020-01-09 11:01:52', '', '1970-01-01 00:00:01', 25, '0'), +(131, 91, '《项目预算表》', '', '', '', '', 'admin', '2020-01-09 11:17:27', '', '1970-01-01 00:00:01', 30, '0'), +(132, 92, '《立项申请报告》', '', '', '', '', 'admin', '2020-01-09 11:17:50', '', '1970-01-01 00:00:01', 35, '0'), +(133, 93, '《项目投标书》', '不涉及投标', '', '', '', 'admin', '2020-01-09 11:18:12', '', '1970-01-01 00:00:01', 40, '0'), +(134, 94, '《项目估算报告》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '1970-01-01 00:00:01', 45, '0'), +(135, 94, '《功能点估算》', '', '', '', '', 'admin', '2020-01-09 11:18:41', '', '1970-01-01 00:00:01', 50, '0'), +(136, 95, '《PDP说明》', '', '', '', '', 'admin', '2020-01-09 11:18:54', '', '1970-01-01 00:00:01', 55, '0'), +(137, 96, '《项目进度表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 60, '0'), +(138, 96, '《项目计划》及其下属计划', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 65, '0'), +(139, 96, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 70, '0'), +(140, 96, '《项目资源计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 75, '0'), +(141, 96, '《干系人计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 80, '0'), +(142, 96, '《同行评审计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 85, '0'), +(143, 96, '《质量保证计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 90, '0'), +(144, 96, '《配置管理计划》', '', '', '', '', 'admin', '2020-01-09 11:19:46', '', '1970-01-01 00:00:01', 95, '0'), +(145, 97, '《同行评审通知》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '1970-01-01 00:00:01', 100, '0'), +(146, 97, '《评审准备表》', '', '', '', '', 'admin', '2020-01-09 11:20:16', '', '1970-01-01 00:00:01', 105, '0'), +(147, 97, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 11:20:17', '', '1970-01-01 00:00:01', 110, '0'), +(148, 98, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 115, '0'), +(149, 98, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 120, '0'), +(150, 99, '《项目周报》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 125, '0'), +(151, 99, '《会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 130, '0'), +(152, 100, '《里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 135, '0'), +(153, 100, '《里程碑会议纪要》', '', 'yes', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 140, '0'), +(154, 101, '《计划变更申请》', '', 'no', '', '', 'admin', '2020-01-09 13:44:11', '', '1970-01-01 00:00:01', 145, '0'), +(155, 102, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 150, '0'), +(156, 103, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 155, '0'), +(157, 103, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 160, '0'), +(158, 104, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 165, '0'), +(159, 105, '《异常处理申请表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 170, '0'), +(160, 105, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 175, '0'), +(161, 106, '《风险管理报告》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 180, '0'), +(162, 106, '《风险管理计划及跟踪表》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 185, '0'), +(163, 107, '《风险列表库》', '', '', '', '', 'admin', '2020-01-09 13:45:53', '', '1970-01-01 00:00:01', 190, '0'), +(164, 108, '《代码复用总结》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '1970-01-01 00:00:01', 195, '0'), +(165, 110, '《结项报告》', '', '', '', '', 'admin', '2020-01-09 13:46:26', '', '1970-01-01 00:00:01', 200, '0'), +(166, 112, '《量化项目管理及跟踪计划》', '', 'yes', '', '', 'admin', '2020-01-09 13:46:46', '', '1970-01-01 00:00:01', 205, '0'), +(167, 113, '《用户需求调查单》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 210, '0'), +(168, 113, '《用户需求说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 215, '0'), +(169, 114, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 220, '0'), +(170, 114, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 225, '0'), +(171, 114, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 230, '0'), +(172, 115, '《产品需求规格说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 235, '0'), +(173, 116, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 240, '0'), +(174, 116, ' 《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 245, '0'), +(175, 116, ' 《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 250, '0'), +(176, 117, '《需求变更记录》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 255, '0'), +(177, 117, '《用户需求说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 260, '0'), +(178, 117, '《软件需求规格说明书》', '', '', '', '', 'admin', '2020-01-09 14:08:58', '', '1970-01-01 00:00:01', 265, '0'), +(179, 118, '《概要设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 270, '0'), +(180, 119, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 275, '0'), +(181, 119, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 280, '0'), +(182, 119, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 285, '0'), +(183, 120, '《模块设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 290, '0'), +(184, 120, '《数据库设计说明书》', '', 'yes', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 295, '0'), +(185, 120, '《用户界面设计说明书》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 300, '0'), +(186, 121, '《评审通知》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 305, '0'), +(187, 121, '《同行评审准备表》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 310, '0'), +(188, 121, '《同行评审报告》', '', 'no', '', '', 'admin', '2020-01-09 14:20:09', '', '1970-01-01 00:00:01', 315, '0'), +(189, 128, '《实现与测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 320, '0'), +(190, 128, '《单板硬件调试和单元测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 325, '0'), +(191, 128, '《项目进度表》中“实现与测试”部分', '', 'yes', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 330, '0'), +(192, 129, '产品数据库', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 335, '0'), +(193, 130, '模块代码', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 340, '0'), +(194, 131, '《代码质量检查记录单》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 345, '0'), +(195, 132, '《单元测试缺陷统计分析报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 350, '0'), +(196, 133, 'bugzilla缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 355, '0'), +(197, 134, '《系统集成说明书》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 360, '0'), +(198, 135, '《集成测试用例》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 365, '0'), +(199, 136, '《评审通知》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 370, '0'), +(200, 136, '《同行评审准备表》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 375, '0'), +(201, 136, '《同行评审报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 380, '0'), +(202, 137, '《集成测试报告》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 385, '0'), +(203, 138, 'bugzilla缺陷记录', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 390, '0'), +(204, 138, '《用户操作手册》 ', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 395, '0'), +(205, 138, '《安装手册》', '', '', '', '', 'admin', '2020-01-09 14:22:52', '', '1970-01-01 00:00:01', 400, '0'), +(206, 140, '《系统测试计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 405, '0'), +(207, 141, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 410, '0'), +(208, 141, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 415, '0'), +(209, 141, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 420, '0'), +(210, 142, '《系统测试用例》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 425, '0'), +(211, 143, '《评审通知》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 430, '0'), +(212, 143, '《同行评审准备表》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 435, '0'), +(213, 143, '《同行评审报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 440, '0'), +(214, 144, 'bugzilla缺陷跟踪系统记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 445, '0'), +(215, 144, '《系统测试分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 450, '0'), +(216, 144, '《缺陷统计分析报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 455, '0'), +(217, 145, '《产品打包清单》', '', 'yes', '', '', 'admin', '2020-01-09 14:25:16', '', '1970-01-01 00:00:01', 460, '0'), +(218, 146, '发布光盘、纸质支持文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 465, '0'), +(219, 147, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 470, '0'), +(220, 148, '《工作联系单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 475, '0'), +(221, 148, '《工作记录单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 480, '0'), +(222, 148, '《交接签收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 485, '0'), +(223, 148, '《安装调试信息》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 490, '0'), +(224, 150, 'bugzilla缺陷记录项', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 495, '0'), +(225, 150, '会议纪要等文档', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 500, '0'), +(226, 151, '《交接验收单》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 505, '0'), +(227, 151, '《客户验收报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:26:52', '', '1970-01-01 00:00:01', 510, '0'), +(228, 152, '初步《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 515, '0'), +(229, 153, '详细《质量保证计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 520, '0'), +(230, 154, '《过程审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 525, '0'), +(231, 154, '《产品审计检查表》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 530, '0'), +(232, 154, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 535, '0'), +(233, 154, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 540, '0'), +(234, 154, '《QA里程碑报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 545, '0'), +(235, 154, '《QA周报》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 550, '0'), +(236, 155, '《QA审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 555, '0'), +(237, 155, '《QA问题报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 560, '0'), +(238, 156, '《QA总结报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:28:18', '', '1970-01-01 00:00:01', 565, '0'), +(239, 158, '《配置管理计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 570, '0'), +(240, 158, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 575, '0'), +(241, 158, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 580, '0'), +(242, 159, '《配置库管理报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 585, '0'), +(243, 160, '《配置项计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 590, '0'), +(244, 161, '《基线计划及跟踪表》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 595, '0'), +(245, 162, '《变更申请书》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 600, '0'), +(246, 163, '《配置审计报告》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 605, '0'), +(247, 166, '《度量分析计划》', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 610, '0'), +(248, 168, '项目度量数据库', '', 'yes', '', '', 'admin', '2020-01-09 14:55:08', '', '1970-01-01 00:00:01', 615, '0'), +(249, 169, '《量化项目计划及跟踪表》', '', 'no', '', '', 'admin', '2020-01-09 14:59:04', '', '1970-01-01 00:00:01', 630, '0'); REPLACE INTO `zt_basicmeas` (`id`, `purpose`, `scope`, `object`, `name`, `code`, `unit`, `configure`, `params`, `definition`, `source`, `collectType`, `collectConf`, `execTime`, `collectedBy`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `order`, `deleted`) VALUES -(2,'scale','project','userRequest','项目用户需求初始规模','pgmURInitScale','故事点或功能点','CREATE FUNCTION qc_pgmurinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'URS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'URS\',\'requestEst\') into scale__DELIMITER__\r\n return scale__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个用户需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个用户需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:19:41',10,'0'), -(3,'scale','project','softRequest','项目软件需求初始规模','pgmSRInitScale','故事点或功能点','CREATE FUNCTION qc_pgmsrinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float (10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'SRS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'SRS\',\'storyEst\') into scale __DELIMITER__\r\n return scale __DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u9700\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个软件需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个软件需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:21:53',15,'0'), -(4,'scale','project','userRequest','项目用户需求实时规模','pgmURRealScale','故事点或功能点','CREATE FUNCTION `qc_pgmurrealscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare totalEstimate float(10,2) default 0__DELIMITER__\r\n select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where project=$project and type=\'requirement\' and deleted=\'0\' and closedReason not in (\'subdivided\', \'duplicate\', \'willnotdo\', \'cancel\', \'bydesign\') into totalEstimate__DELIMITER__\r\n return totalEstimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目用户需求实际的规模','从需求表中查询该项目下的所有用户需求,对规模进行求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:22:17',20,'0'), -(5,'scale','project','softRequest','项目软件需求实时规模','pgmSRRealScale','故事点或功能点','CREATE FUNCTION `qc_pgmsrrealscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare totalEstimate float (10,2) default 0__DELIMITER__\r\n select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where id in (select story from zt_projectstory where project=$project) and type=\'story\' and deleted=\'0\' and closedReason not in (\'subdivided\', \'duplicate\', \'willnotdo\', \'cancel\', \'bydesign\') into totalEstimate__DELIMITER__\r\n return totalEstimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":false,\"options\":\"project\",\"defaultValue\":\"702\"}}','项目软件需求实际的规模','从需求表中查询该项目下的所有软件需求,对规模进行求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:28:01',25,'0'), -(6,'scale','project','program','项目估算规模','pgmPlanScale','故事点或功能点','CREATE FUNCTION `qc_pgmplanscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare programScale float (10,2) default 0__DELIMITER__\r\n select `scale` from zt_workestimation where project = $project into programScale__DELIMITER__\r\n return programScale__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目最初估算时估计的规模','从项目估算表里面查询项目的估算规模。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 14:26:01',30,'0'), -(8,'duration','project','stage','项目需求阶段计划天数','pgmRequestPlanDays','天','CREATE FUNCTION `qc_pgmrequestplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有需求阶段计划天数的和','从阶段表里面统计该项目下面所有类型为需求的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',40,'0'), -(9,'duration','project','stage','项目设计阶段计划天数','pgmDesigntPlanDays','天','CREATE FUNCTION `qc_pgmdesigntplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有设计阶段计划天数的和','从阶段表里面统计该项目下面所有类型为设计的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',45,'0'), -(10,'duration','project','stage','项目开发阶段计划天数','pgmDevelPlanDays','天','CREATE FUNCTION `qc_pgmdevelplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有研发阶段计划天数的和','从阶段表里面统计该项目下面所有类型为开发的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',50,'0'), -(11,'duration','project','stage','项目测试阶段计划天数','pgmTestPlanDays','天','CREATE FUNCTION `qc_pgmtestplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有测试阶段计划天数的和','从阶段表里面统计该项目下面所有类型为测试的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',55,'0'), -(12,'duration','project','stage','项目需求阶段实际天数','pgmRequestRealDays','天','CREATE FUNCTION `qc_pgmrequestrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有需求阶段实际天数的和','从阶段表里面统计该项目下面所有类型为需求的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',60,'0'), -(13,'duration','project','stage','项目设计阶段实际天数','pgmDesigntRealDays','天','CREATE FUNCTION `qc_pgmdesigntrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有设计阶段实际天数的和','从阶段表里面统计该项目下面所有类型为设计的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',65,'0'), -(14,'duration','project','stage','项目开发阶段实际天数','pgmDevelRealDays','天','CREATE FUNCTION `qc_pgmdevelrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有研发阶段实际天数的和','从阶段表里面统计该项目下面所有类型为开发的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',70,'0'), -(15,'duration','project','stage','项目测试阶段实际天数','pgmTestRealDays','天','CREATE FUNCTION `qc_pgmtestrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"3\"}}','项目下面所有测试阶段实际天数的和','从阶段表里面统计该项目下面所有类型为测试的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',75,'0'), -(26,'duration','product','stage','分产品需求阶段计划天数','prdRequestPlanDays','天','CREATE FUNCTION `qc_prdrequestplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有需求阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为需求的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',130,'0'), -(27,'duration','product','stage','分产品设计阶段计划天数','prdDesigntPlanDays','天','CREATE FUNCTION `qc_prddesigntplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有设计阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为设计的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',135,'0'), -(28,'duration','product','stage','分产品开发阶段计划天数','prdDevelPlanDays','天','CREATE FUNCTION `qc_prddevelplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"1\"}}','产品下面所有研发阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为开发的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',140,'0'), -(29,'duration','product','stage','分产品测试阶段计划天数','prdTestPlanDays','天','CREATE FUNCTION `qc_prdtestplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有测试阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为测试的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',145,'0'), -(30,'duration','product','stage','分产品需求阶段实际天数','prdRequestRealDays','天','CREATE FUNCTION `qc_prdrequestrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有需求阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为需求的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',150,'0'), -(31,'duration','product','stage','分产品设计阶段实际天数','prdDesigntRealDays','天','CREATE FUNCTION `qc_prddesigntrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有设计阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为设计的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',155,'0'), -(32,'duration','product','stage','分产品开发阶段实际天数','prdDevelRealDays','天','CREATE FUNCTION `qc_prddevelrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有研发阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为开发的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',160,'0'), -(33,'duration','product','stage','分产品测试阶段实际天数','prdTestRealDays','天','CREATE FUNCTION `qc_prdtestrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"1\"}}','产品下面所有测试阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为测试的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','','0000-00-00 00:00:00',165,'0'), -(34,'workload','project','finance','项目任务实时预计工时数','pgmRealEstHours','小时','CREATE FUNCTION `qc_pgmrealesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n select sum(estimate) from zt_task where project=$project and parent >= 0 and status != \'cancel\' and deleted = \'0\' into @estimate__DELIMITER__\r\nreturn @estimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有任务的最初预计工时和','从任务表中查询该项目的所有任务,统计最初预计工>时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 19:51:39',170,'0'), -(35,'workload','project','finance','项目需求工作实时总预计工时数','pgmRequestRealEstHours','小时','CREATE FUNCTION `qc_pgmrequestrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'request\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有需求相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为需求的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-23 13:49:17',175,'0'), -(36,'workload','project','finance','项目设计工作实时总预计工时数','pgmDesgignRealEstHours','小时','CREATE FUNCTION `qc_pgmdesgignrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'design\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有设计相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为设计的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-23 13:45:32',180,'0'), -(37,'workload','project','finance','项目开发工作实时总预计工时数','pgmDevelRealEstHours','小时','CREATE FUNCTION `qc_pgmdevelrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'devel\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有开发相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为开发的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-23 13:46:53',185,'0'), -(38,'workload','project','finance','项目测试工作实时总预计工时数','pgmTestRealEstHours','小时','CREATE FUNCTION `qc_pgmtestrealesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'test\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有测试相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为测试的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-23 13:44:13',190,'0'), -(39,'workload','project','finance','项目任务实际消耗工时数','pgmRealHours','小时','CREATE FUNCTION `qc_pgmrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n select CAST(sum(consumed) as DECIMAL(10,2)) as consumed from zt_task where project=$project and parent >= 0 and status != \'cancel\' and deleted = \'0\' into @consumed__DELIMITER__\r\n return @consumed__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有任务的实际消耗工时和','从任务表中查询该项目的所有任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 19:49:32',195,'0'), -(40,'workload','project','finance','项目需求工作实际消耗工时数','pgmRequestRealHours','小时','CREATE FUNCTION `qc_pgmrequestrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'request\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有需求相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为需求的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 19:49:03',200,'0'), -(41,'workload','project','finance','项目设计工作实际消耗工时数','pgmDesignRealHours','小时','CREATE FUNCTION `qc_pgmdesignrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'design\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有设计相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为设计的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 19:48:35',205,'0'), -(42,'workload','project','finance','项目开发工作实际消耗工时数','pgmDevelRealHours','小时','CREATE FUNCTION `qc_pgmdevelrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'devel\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有开发相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为开发的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 18:34:51',210,'0'), -(43,'workload','project','finance','项目测试工作实际消耗工时数','pgmTestRealHours','小时','CREATE FUNCTION `qc_pgmtestrealhours`($project int) RETURNS float(10, 2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'test\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有测试相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为测试的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','0000-00-00 00:00:00','admin','2020-07-07 18:09:01',215,'0'), -(44,'workload','project','finance','项目开发工作最初总预计工时数','pgmDevelFirstEstHours','小时','CREATE FUNCTION `qc_pgmdevelfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdevelfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有开发相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-22 13:13:51','','0000-00-00 00:00:00',220,'0'), +(2,'scale','project','userRequest','项目用户需求初始规模','pgmURInitScale','故事点或功能点','CREATE FUNCTION qc_pgmurinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'URS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'URS\',\'requestEst\') into scale__DELIMITER__\r\n return scale__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个用户需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个用户需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 14:19:41',10,'0'), +(3,'scale','project','softRequest','项目软件需求初始规模','pgmSRInitScale','故事点或功能点','CREATE FUNCTION qc_pgmsrinitscale($project int) returns float (10,2)\r\nbegin\r\n declare scale float (10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'SRS\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_initscale($project, \'SRS\',\'storyEst\') into scale __DELIMITER__\r\n return scale __DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nend','{\"$project\":{\"showName\":\"\\u6240\\u9700\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目每个产品的第一个软件需求规格说明书基线版本的规模之和','从基线表中查询该项目下面每个产品的第一个软件需求规模说明书版本,然后查询对应的需求,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 14:21:53',15,'0'), +(4,'scale','project','userRequest','项目用户需求实时规模','pgmURRealScale','故事点或功能点','CREATE FUNCTION `qc_pgmurrealscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare totalEstimate float(10,2) default 0__DELIMITER__\r\n select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where project=$project and type=\'requirement\' and deleted=\'0\' and closedReason not in (\'subdivided\', \'duplicate\', \'willnotdo\', \'cancel\', \'bydesign\') into totalEstimate__DELIMITER__\r\n return totalEstimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目用户需求实际的规模','从需求表中查询该项目下的所有用户需求,对规模进行求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 14:22:17',20,'0'), +(5,'scale','project','softRequest','项目软件需求实时规模','pgmSRRealScale','故事点或功能点','CREATE FUNCTION `qc_pgmsrrealscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare totalEstimate float (10,2) default 0__DELIMITER__\r\n select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where id in (select story from zt_projectstory where project=$project) and type=\'story\' and deleted=\'0\' and closedReason not in (\'subdivided\', \'duplicate\', \'willnotdo\', \'cancel\', \'bydesign\') into totalEstimate__DELIMITER__\r\n return totalEstimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":false,\"options\":\"project\",\"defaultValue\":\"702\"}}','项目软件需求实际的规模','从需求表中查询该项目下的所有软件需求,对规模进行求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 14:28:01',25,'0'), +(6,'scale','project','program','项目估算规模','pgmPlanScale','故事点或功能点','CREATE FUNCTION `qc_pgmplanscale`($project int) RETURNS float (10,2)\r\nBEGIN\r\n declare programScale float (10,2) default 0__DELIMITER__\r\n select `scale` from zt_workestimation where project = $project into programScale__DELIMITER__\r\n return programScale__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目最初估算时估计的规模','从项目估算表里面查询项目的估算规模。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 14:26:01',30,'0'), +(8,'duration','project','stage','项目需求阶段计划天数','pgmRequestPlanDays','天','CREATE FUNCTION `qc_pgmrequestplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有需求阶段计划天数的和','从阶段表里面统计该项目下面所有类型为需求的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',40,'0'), +(9,'duration','project','stage','项目设计阶段计划天数','pgmDesigntPlanDays','天','CREATE FUNCTION `qc_pgmdesigntplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有设计阶段计划天数的和','从阶段表里面统计该项目下面所有类型为设计的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',45,'0'), +(10,'duration','project','stage','项目开发阶段计划天数','pgmDevelPlanDays','天','CREATE FUNCTION `qc_pgmdevelplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有研发阶段计划天数的和','从阶段表里面统计该项目下面所有类型为开发的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',50,'0'), +(11,'duration','project','stage','项目测试阶段计划天数','pgmTestPlanDays','天','CREATE FUNCTION `qc_pgmtestplandays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeplanneddays($project,\'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有测试阶段计划天数的和','从阶段表里面统计该项目下面所有类型为测试的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',55,'0'), +(12,'duration','project','stage','项目需求阶段实际天数','pgmRequestRealDays','天','CREATE FUNCTION `qc_pgmrequestrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有需求阶段实际天数的和','从阶段表里面统计该项目下面所有类型为需求的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',60,'0'), +(13,'duration','project','stage','项目设计阶段实际天数','pgmDesigntRealDays','天','CREATE FUNCTION `qc_pgmdesigntrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有设计阶段实际天数的和','从阶段表里面统计该项目下面所有类型为设计的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',65,'0'), +(14,'duration','project','stage','项目开发阶段实际天数','pgmDevelRealDays','天','CREATE FUNCTION `qc_pgmdevelrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有研发阶段实际天数的和','从阶段表里面统计该项目下面所有类型为开发的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',70,'0'), +(15,'duration','project','stage','项目测试阶段实际天数','pgmTestRealDays','天','CREATE FUNCTION `qc_pgmtestrealdays`($project int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmspecifiedtypeactualdays($project,\'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"3\"}}','项目下面所有测试阶段实际天数的和','从阶段表里面统计该项目下面所有类型为测试的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',75,'0'), +(26,'duration','product','stage','分产品需求阶段计划天数','prdRequestPlanDays','天','CREATE FUNCTION `qc_prdrequestplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有需求阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为需求的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',130,'0'), +(27,'duration','product','stage','分产品设计阶段计划天数','prdDesigntPlanDays','天','CREATE FUNCTION `qc_prddesigntplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有设计阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为设计的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',135,'0'), +(28,'duration','product','stage','分产品开发阶段计划天数','prdDevelPlanDays','天','CREATE FUNCTION `qc_prddevelplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"1\"}}','产品下面所有研发阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为开发的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',140,'0'), +(29,'duration','product','stage','分产品测试阶段计划天数','prdTestPlanDays','天','CREATE FUNCTION `qc_prdtestplandays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageplannedduration($product, \'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有测试阶段计划天数的和','从阶段表里面统计该产品在该项目下所有类型为测试的阶段的计划天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',145,'0'), +(30,'duration','product','stage','分产品需求阶段实际天数','prdRequestRealDays','天','CREATE FUNCTION `qc_prdrequestrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product,\'request\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有需求阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为需求的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',150,'0'), +(31,'duration','product','stage','分产品设计阶段实际天数','prdDesigntRealDays','天','CREATE FUNCTION `qc_prddesigntrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'design\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有设计阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为设计的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',155,'0'), +(32,'duration','product','stage','分产品开发阶段实际天数','prdDevelRealDays','天','CREATE FUNCTION `qc_prddevelrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'dev\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"\"}}','产品下面所有研发阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为开发的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',160,'0'), +(33,'duration','product','stage','分产品测试阶段实际天数','prdTestRealDays','天','CREATE FUNCTION `qc_prdtestrealdays`($product int) RETURNS int(10)\r\nBEGIN\r\n select qc_pgmstageactualduration($product, \'qa\') as days into @days__DELIMITER__\r\n return @days__DELIMITER__\r\nEND','{\"$product\":{\"showName\":\"\\u6240\\u5c5e\\u4ea7\\u54c1\",\"varName\":\"$product\",\"varType\":\"select\",\"options\":\"product\",\"defaultValue\":\"1\"}}','产品下面所有测试阶段实际天数的和','从阶段表里面统计该产品在该项目下所有类型为测试的阶段的实际天数,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','','1970-01-01 00:00:01',165,'0'), +(34,'workload','project','finance','项目任务实时预计工时数','pgmRealEstHours','小时','CREATE FUNCTION `qc_pgmrealesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n select sum(estimate) from zt_task where project=$project and parent >= 0 and status != \'cancel\' and deleted = \'0\' into @estimate__DELIMITER__\r\nreturn @estimate__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有任务的最初预计工时和','从任务表中查询该项目的所有任务,统计最初预计工>时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 19:51:39',170,'0'), +(35,'workload','project','finance','项目需求工作实时总预计工时数','pgmRequestRealEstHours','小时','CREATE FUNCTION `qc_pgmrequestrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'request\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有需求相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为需求的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-23 13:49:17',175,'0'), +(36,'workload','project','finance','项目设计工作实时总预计工时数','pgmDesgignRealEstHours','小时','CREATE FUNCTION `qc_pgmdesgignrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'design\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有设计相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为设计的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-23 13:45:32',180,'0'), +(37,'workload','project','finance','项目开发工作实时总预计工时数','pgmDevelRealEstHours','小时','CREATE FUNCTION `qc_pgmdevelrealesthours`($project int) RETURNS float (10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'devel\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有开发相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为开发的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-23 13:46:53',185,'0'), +(38,'workload','project','finance','项目测试工作实时总预计工时数','pgmTestRealEstHours','小时','CREATE FUNCTION `qc_pgmtestrealesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmesthoursbytype($project, \'test\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有测试相关任务的最初预计工时和','从任务表中查询该项目所有任务类型为测试的任务,统计最初预计工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-23 13:44:13',190,'0'), +(39,'workload','project','finance','项目任务实际消耗工时数','pgmRealHours','小时','CREATE FUNCTION `qc_pgmrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n select CAST(sum(consumed) as DECIMAL(10,2)) as consumed from zt_task where project=$project and parent >= 0 and status != \'cancel\' and deleted = \'0\' into @consumed__DELIMITER__\r\n return @consumed__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目下面所有任务的实际消耗工时和','从任务表中查询该项目的所有任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 19:49:32',195,'0'), +(40,'workload','project','finance','项目需求工作实际消耗工时数','pgmRequestRealHours','小时','CREATE FUNCTION `qc_pgmrequestrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'request\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有需求相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为需求的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 19:49:03',200,'0'), +(41,'workload','project','finance','项目设计工作实际消耗工时数','pgmDesignRealHours','小时','CREATE FUNCTION `qc_pgmdesignrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'design\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有设计相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为设计的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 19:48:35',205,'0'), +(42,'workload','project','finance','项目开发工作实际消耗工时数','pgmDevelRealHours','小时','CREATE FUNCTION `qc_pgmdevelrealhours`($project int) RETURNS float(10,2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'devel\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有开发相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为开发的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 18:34:51',210,'0'), +(43,'workload','project','finance','项目测试工作实际消耗工时数','pgmTestRealHours','小时','CREATE FUNCTION `qc_pgmtestrealhours`($project int) RETURNS float(10, 2)\r\nBEGIN\r\nreturn qc_pgmrealhoursbytype($project, \'test\')__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目所有测试相关任务的实际消耗工时和','从任务表中查询该项目所有任务类型为测试的任务,统计实际消耗工时,求和。','crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','system','1970-01-01 00:00:01','admin','2020-07-07 18:09:01',215,'0'), +(44,'workload','project','finance','项目开发工作最初总预计工时数','pgmDevelFirstEstHours','小时','CREATE FUNCTION `qc_pgmdevelfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdevelfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有开发相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-22 13:13:51','','1970-01-01 00:00:01',220,'0'), (45,'workload','project','finance','项目设计工作最初总预计工时数','pgmDesignFirstEstHours','小时','CREATE FUNCTION `qc_pgmdesignfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdesignfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有设计相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-22 16:33:20','admin','2020-07-23 10:31:23',225,'0'), -(46,'workload','project','finance','项目测试工作最初总预计工时数','pgmTestFirstEstHours','小时','CREATE FUNCTION `qc_pgmtestfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_gettestfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有测试相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 10:31:17','','0000-00-00 00:00:00',230,'0'), -(47,'workload','project','finance','项目需求工作最初总预计工时数','pgmRequestFirstEstHours','小时','CREATE FUNCTION `qc_pgmrequestfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getstoryfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有需求相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 10:53:09','','0000-00-00 00:00:00',235,'0'), -(48,'workload','project','finance','项目任务最初总预计工时数','pgmFirstEstHours','小时','CREATE FUNCTION `qc_pgmfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 13:06:59','','0000-00-00 00:00:00',240,'0'), -(49,'workload','project','finance','项目开发工作最终总预计工时数','pgmDevelLastEstHours','小时','CREATE FUNCTION `qc_pgmdevellastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdevlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有开发相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 13:41:38','','0000-00-00 00:00:00',245,'0'), -(50,'workload','project','finance','项目需求工作最终总预计工时数','pgmRequestLastEstHours','小时','CREATE FUNCTION `qc_pgmrequestlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getrequestlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有需求相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:00:58','','0000-00-00 00:00:00',250,'0'), -(51,'workload','project','finance','项目测试工作最终总预计工时数','pgmTestLastEstHours','小时','CREATE FUNCTION `qc_pgmtestlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_gettestlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有测试相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:10:12','','0000-00-00 00:00:00',255,'0'), -(52,'workload','project','finance','项目设计工作最终总预计工时数','pgmDesignLastEstHours','小时','CREATE FUNCTION `qc_pgmdesignlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdesignlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有设计相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:33:00','','0000-00-00 00:00:00',260,'0'), -(53,'workload','project','finance','项目任务最终总预计工时数','pgmLastEstHours','小时','CREATE FUNCTION `qc_pgmlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:54:42','','0000-00-00 00:00:00',265,'0'); +(46,'workload','project','finance','项目测试工作最初总预计工时数','pgmTestFirstEstHours','小时','CREATE FUNCTION `qc_pgmtestfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_gettestfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有测试相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 10:31:17','','1970-01-01 00:00:01',230,'0'), +(47,'workload','project','finance','项目需求工作最初总预计工时数','pgmRequestFirstEstHours','小时','CREATE FUNCTION `qc_pgmrequestfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getstoryfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有需求相关工作最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 10:53:09','','1970-01-01 00:00:01',235,'0'), +(48,'workload','project','finance','项目任务最初总预计工时数','pgmFirstEstHours','小时','CREATE FUNCTION `qc_pgmfirstesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getfirstesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划第一个基线版本中所有任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 13:06:59','','1970-01-01 00:00:01',240,'0'), +(49,'workload','project','finance','项目开发工作最终总预计工时数','pgmDevelLastEstHours','小时','CREATE FUNCTION `qc_pgmdevellastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project, \'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdevlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有开发相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 13:41:38','','1970-01-01 00:00:01',245,'0'), +(50,'workload','project','finance','项目需求工作最终总预计工时数','pgmRequestLastEstHours','小时','CREATE FUNCTION `qc_pgmrequestlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getrequestlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有需求相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:00:58','','1970-01-01 00:00:01',250,'0'), +(51,'workload','project','finance','项目测试工作最终总预计工时数','pgmTestLastEstHours','小时','CREATE FUNCTION `qc_pgmtestlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_gettestlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有测试相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:10:12','','1970-01-01 00:00:01',255,'0'), +(52,'workload','project','finance','项目设计工作最终总预计工时数','pgmDesignLastEstHours','小时','CREATE FUNCTION `qc_pgmdesignlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getdesignlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有设计相关任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:33:00','','1970-01-01 00:00:01',260,'0'), +(53,'workload','project','finance','项目任务最终总预计工时数','pgmLastEstHours','小时','CREATE FUNCTION `qc_pgmlastesthours`($project int) RETURNS float(10,2)\r\nBEGIN\r\n declare estimate float(10,2) default 0__DELIMITER__\r\n declare inited int default 0__DELIMITER__\r\n select qc_cminited($project,\'PP\') into inited__DELIMITER__\r\n IF inited = 1 THEN\r\n select qc_getlastesthours($project) into estimate__DELIMITER__\r\n return estimate__DELIMITER__\r\n ELSE \r\n return 0__DELIMITER__\r\n END IF__DELIMITER__\r\nEND','{\"$project\":{\"showName\":\"\\u6240\\u5c5e\\u9879\\u76ee\",\"varName\":\"$project\",\"varType\":\"select\",\"options\":\"project\",\"defaultValue\":\"\"}}','项目计划最后一个基线版本中所有任务最初预计工时和',NULL,'crontab','{\"week\":\"1,2,3,4,5,6,0\",\"type\":\"week\"}','00:00','','admin','2020-07-23 14:54:42','','1970-01-01 00:00:01',265,'0'); REPLACE INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type`, `buildin`, `status`, `lastTime`) VALUES ('1','0','*','*','*','moduleName=weekly&methodName=computeWeekly','更新项目周报','system',0,'normal','2020-08-27 10:07:53'), @@ -13855,60 +13855,60 @@ REPLACE INTO `zt_chart` (`id`, `name`, `dimension`, `type`, `group`, `dataset`, (1049,'宏观数据-部门人员分布图',1,'bar',0,'','','{\r\n\"xaxis\":[{\"field\":\"deptName\",\"name\":\"部门\"}],\r\n\"yaxis\":[\r\n {\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"部门人数\",\"valOrAgg\":\"value\"}\r\n]}','[]','','SELECT IF(t3.id IS NOT NULL, t3.`name`, \'空\') AS deptName,count(1) as count, \r\nIF(t3.id IS NOT NULL, t3.`order`, 9999) AS deptOrder \r\nFROM `zt_user` AS t1 \r\nLEFT JOIN `zt_dept` AS t2 ON t1.dept = t2.id\r\nLEFT JOIN `zt_dept` AS t3 ON FIND_IN_SET(TRIM(\',\' FROM t3.path), TRIM(\',\' FROM t2.path)) AND t3.grade = \'1\'\r\nWHERE t1.deleted = \'0\'\r\nGROUP BY deptName, deptOrder \r\nORDER BY deptOrder DESC',1,'','admin','2022-12-07 14:59:41','','2022-12-07 14:59:41',0), (1050,'宏观数据-公司角色分布图',1,'pie',0,'','','{\"group\":[{\"field\":\"role\",\"name\":\"类型\"}],\"metric\":[{\"type\":\"agg\",\"field\":\"account\",\"agg\":\"count\",\"name\":\"人数\",\"valOrAgg\":\"count\"}]}','[]','','SELECT\n account,\nCASE\n ROLE \n WHEN \'dev\' THEN\n \'研发\' \n WHEN \'qa\' THEN\r\n \'测试\'\r\n WHEN \'pm\' THEN\r\n \'项目经理\'\r\n WHEN \'others\' THEN\r\n \'其他\'\r\n WHEN \'td\' THEN\r\n \'研发主管\'\r\n WHEN \'pd\' THEN\r\n \'产品主管\'\r\n WHEN \'po\' THEN\r\n \'产品经理\'\r\n WHEN \'qd\' THEN\r\n \'测试主管\'\r\n WHEN \'top\' THEN\r\n \'高层管理\'\r\n ELSE\r\n \'未知\'\r\n END\r\n role\n FROM\n `zt_user` \n WHERE\n deleted = \'0\' ',1,'','admin','2022-12-07 14:59:41','','2022-12-07 14:59:41',0), (1051,'宏观数据-人员工龄分布图',1,'bar',0,'','','{\r\n\"xaxis\":[{\"field\":\"joinDate\",\"name\":\"工龄\"}],\r\n\"yaxis\":[\r\n {\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"人数\",\"valOrAgg\":\"value\"}\r\n]}','[]','','SELECT count(1) as count, \'0-1年\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND `join` > DATE_SUB(NOW(), INTERVAL 1 YEAR)\r\nunion\r\nSELECT count(1) as count, \'1-3年\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND `join` > DATE_SUB(NOW(), INTERVAL 3 YEAR) AND `join` <= DATE_SUB(NOW(), INTERVAL 1 YEAR)\r\nunion\r\nSELECT count(1) as count, \'3-5年\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND `join` > DATE_SUB(NOW(), INTERVAL 5 YEAR) AND `join` <= DATE_SUB(NOW(), INTERVAL 3 YEAR)\r\nunion\r\nSELECT count(1) as count, \'5-10年\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND `join` > DATE_SUB(NOW(), INTERVAL 10 YEAR) AND `join` <= DATE_SUB(NOW(), INTERVAL 5 YEAR)\r\nunion\r\nSELECT count(1) as count, \'10年以上\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND `join` < DATE_SUB(NOW(), INTERVAL 10 YEAR) AND LEFT(`join`, 4) != \'0000\'\r\nunion \r\nSELECT count(1) as count, \'未知\' as joinDate FROM `zt_user` WHERE deleted = \'0\' AND LEFT(`join`, 4) = \'0000\'',1,'','admin','2022-12-07 14:59:41','','2022-12-07 14:59:41',0), -(1055,'年度新增-一级项目集个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( openedDate ) AS `year` \r\n FROM\r\n zt_project \r\n WHERE\r\n `type` = \'program\' \r\n AND deleted = \'0\' \r\n AND grade = \'1\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1056,'年度新增-产品个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( createdDate ) AS `year` \r\n FROM\r\n zt_product \r\n WHERE\r\n deleted = \'0\' \r\n AND shadow = \'0\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1057,'年度新增-需求个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( openedDate ) AS `year` FROM zt_story WHERE deleted = \'0\' ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1058,'年度新增-Bug个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.title\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, title, YEAR ( openedDate ) AS `year` FROM zt_bug WHERE deleted = \'0\' ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1059,'年度新增-计划个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( createdDate ) AS `year` FROM zt_productplan WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1060,'年度新增-项目个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( openedDate ) AS `year` \r\n FROM\r\n zt_project \r\n WHERE\r\n `type` = \'project\' \r\n AND deleted = \'0\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1061,'年度新增-执行个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.`year`, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(`date`) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id,name, YEAR(openedDate) AS `year` FROM zt_project WHERE `type` IN ( \'sprint\', \'stage\', \'kanban\' ) AND deleted = \'0\' AND multiple = \'1\') AS t2 ON t1.`year` = t2.`year` \r\nWHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1062,'年度新增-任务数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( openedDate ) AS `year` FROM zt_task WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1063,'年度新增-文档个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( addedDate ) AS `year` FROM zt_doc WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1064,'年度新增-发布个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( `date` ) AS `year` FROM zt_release WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year`\r\nWHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1065,'年度新增-人员个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"account\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"realname\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\r\n t2.account,\r\n t2.realname\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN (\n SELECT\n account, realname,\n YEAR ( t112.`date` ) AS \'year\' \n FROM\n zt_user AS t111\n LEFT JOIN zt_action t112 ON t111.id = t112.objectID \n AND t112.objectType = \'user\' \n WHERE\n t111.deleted = \'0\' \n AND t112.action = \'created\' \n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.account IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1066,'年度新增-完成项目数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.year, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(date) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id, name, YEAR(closedDate) AS `year` FROM zt_project WHERE `type` = \'project\' AND deleted = \'0\' AND status = \'closed\') AS t2 ON t1.year = t2.year\r\nWHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1067,'年度新增-完成执行数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.`year`, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(date) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id, name, YEAR(closedDate) AS `year` FROM zt_project WHERE `type` IN ( \'sprint\', \'stage\', \'kanban\' ) AND deleted = \'0\' AND multiple = \'1\' AND status = \'closed\') AS t2 ON t1.`year` = t2.`year` \r\nWHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1068,'年度新增-完成发布数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( `date` ) AS `year` FROM zt_release WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1069,'年度新增-完成需求数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN (\n SELECT\n id, title,\n YEAR ( closedDate ) AS `year` \n FROM\n zt_story \n WHERE\n deleted = \'0\' \n AND closedReason = \'done\' \n AND STATUS = \'closed\' \n ) AS t2 ON t1.`year` = t2.`year` \n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1070,'年度新增-解决Bug数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.title\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, title,\r\n YEAR ( closedDate ) AS `year` \r\n FROM\r\n zt_bug \r\n WHERE\r\n deleted = \'0\' \r\n AND resolution = \'fixed\' \r\n AND STATUS = \'closed\' \r\n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1071,'年度新增-完成任务数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( finishedDate ) AS `year` \r\n FROM\r\n zt_task \r\n WHERE\r\n deleted = \'0\' \r\n AND STATUS = \'closed\' \r\n AND closedReason = \'done\' \r\n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1072,'年度新增-投入工时数',1,'card',0,'','','{\"value\": {\"type\": \"value\", \"field\": \"consumed\", \"agg\": \"value\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n IFNULL( t2.consumed, 0 ) AS consumed \r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT ROUND( SUM( consumed )) AS consumed, YEAR ( `date` ) AS \'year\' FROM zt_effort WHERE deleted = \'0\' GROUP BY `year`) AS t2 ON t1.`year` = t2.`year` ',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1073,'年度新增-项目集年度新增数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"topProgram\",\"valOrAgg\":\"value\",\"name\":\"一级项目集\"},\r\n{\"field\":\"product\",\"valOrAgg\":\"value\",\"name\":\"产品数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"},\r\n{\"field\":\"doc\",\"valOrAgg\":\"value\",\"name\":\"文档数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name AS topProgram,t1.id, t2.`year`, (SELECT COUNT(1) as product FROM zt_product WHERE deleted = \'0\' AND shadow = \'0\' AND YEAR(createdDate) = t2.`year` AND program = t1.id) as product, SUM(IFNULL(t4.plan, 0)) AS plan, SUM(IFNULL(t5.story, 0)) AS story, SUM(IFNULL(t6.bug, 0)) AS bug, SUM(IFNULL(t7.`release`, 0)) AS \'release\', SUM(IFNULL(t8.doc, 0)) AS doc\r\nFROM zt_project AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1 LEFT JOIN (SELECT id, program FROM zt_product WHERE deleted = \'0\') AS t3 ON t1.id = t3.program\r\nLEFT JOIN (SELECT COUNT(1) as \'plan\', product, YEAR(createdDate) as \'year\' FROM zt_productplan WHERE deleted = \'0\' GROUP BY product,`year`) AS t4 on t3.id = t4.product AND t4.`year`= t2.`year` LEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(openedDate) as \'year\' FROM zt_story WHERE deleted = \'0\' GROUP BY product,`year`) AS t5 on t3.id = t5.product AND t5.`year`= t2.`year` LEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(openedDate) as \'year\' FROM zt_bug WHERE deleted = \'0\' GROUP BY product,`year`) AS t6 on t3.id = t6.product AND t6.`year` = t2.`year` LEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as \'year\' FROM zt_release WHERE deleted = \'0\' GROUP BY product,`year`) AS t7 on t3.id = t7.product AND t7.`year` = t2.`year` LEFT JOIN (SELECT COUNT(1) as \'doc\', product, YEAR(addedDate) as \'year\' FROM zt_doc WHERE deleted = \'0\' GROUP BY product,`year`) AS t8 on t3.id = t8.product AND t8.`year` = t2.`year` WHERE t1.type = \'program\' AND t1.grade = 1 AND t1.deleted = \'0\'AND t1.status != \'closed\' GROUP BY topProgram,id,`year` ORDER BY `year`, topProgram',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1074,'年度新增-项目集年度完成数据概览',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"topProgram\",\"valOrAgg\":\"value\",\"name\":\"一级项目集\"},\r\n{\"field\":\"projectA\",\"valOrAgg\":\"value\",\"name\":\"项目数\"},\r\n{\"field\":\"executionA\",\"valOrAgg\":\"value\",\"name\":\"执行数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name AS topProgram,t1.id,t2.`year`,\r\n SUM(IF((t3.`status` = \'closed\' AND YEAR(t3.closedDate) = t2.`year`), 1, 0)) as projectA,\r\n COUNT(DISTINCT t4.id) as executionA,\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\',\r\n SUM(IFNULL(t7.story, 0)) AS story,\r\n SUM(IFNULL(t8.bug, 0)) AS bug\r\nFROM zt_project AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN zt_project AS t3 ON FIND_IN_SET(t1.id, t3.path) and t3.type = \'project\'\r\nLEFT JOIN zt_project AS t4 ON t3.id = t4.parent and t4.type in (\'sprint\', \'stage\', \'kanban\') AND t4.`status` = \'closed\' AND YEAR(t4.closedDate) = t2.`year`\r\nLEFT JOIN (SELECT id,program FROM zt_product WHERE deleted = \'0\') AS t5 ON t1.id = t5.program\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t5.id = t6.product AND t6.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(closedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t7 on t5.id = t7.product AND t7.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(resolvedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t8 on t5.id = t8.product AND t8.`year` = t2.`year`\r\nWHERE t1.type = \'program\' AND t1.grade = 1 AND t1.deleted = \'0\'\r\nGROUP BY t1.name,t1.id,t2.`year`',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1075,'年度新增-产品年度新增数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"name\",\"valOrAgg\":\"value\",\"name\":\"产品\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name,t1.id,t2.`year`,IF(YEAR(t1.createdDate) = t2.`year`, 1, 0) as newProduct,\r\n SUM(IFNULL(t3.story, 0)) AS story,\r\n SUM(IFNULL(t4.bug, 0)) AS bug,\r\n SUM(IFNULL(t5.`plan`, 0)) AS \'plan\',\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\'\r\nFROM zt_product AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(openedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t3 on t1.id = t3.product AND t3.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(openedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t4 on t1.id = t4.product AND t4.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'plan\', product, YEAR(createdDate) AS \'year\' FROM zt_productplan WHERE deleted = \'0\' GROUP BY product,`year`) AS t5 on t1.id = t5.product AND t5.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t1.id = t6.product AND t6.`year` = t2.`year`\r\nWHERE t1.deleted = \'0\' AND t1.status != \'closed\' AND t1.shadow = \'0\'\r\nAND t2.`year` = \'2022\'\r\nGROUP BY t1.name,t1.id,t2.`year`,newProduct',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1076,'年度新增-产品年度完成数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"name\",\"valOrAgg\":\"value\",\"name\":\"产品\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name,t1.id,t2.`year`,IF(YEAR(t1.createdDate) = t2.`year`, 1, 0) as newProduct,\r\n SUM(IFNULL(t3.story, 0)) AS story,\r\n SUM(IFNULL(t4.bug, 0)) AS bug,\r\n SUM(IFNULL(t5.`plan`, 0)) AS \'plan\',\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\'\r\nFROM zt_product AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(closedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t3 on t1.id = t3.product AND t3.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(resolvedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t4 on t1.id = t4.product AND t4.`year` = t2.`year`\r\nLEFT JOIN (\r\n SELECT COUNT(DISTINCT t51.id) as \'plan\', t51.product, YEAR(t52.`date`) AS \'year\'\r\n FROM zt_productplan AS t51\r\n LEFT JOIN (SELECT objectID,objectType,action,MAX(`date`) as \'date\' FROM zt_action GROUP BY objectID,objectType, action) AS t52 ON t51.id = t52.objectID AND t52.objectType = \'productplan\'\r\n WHERE t51.deleted = \'0\' AND t51.closedReason = \'done\' AND t51.status = \'closed\' \r\n AND t52.action = \'closed\'\r\n GROUP BY t51.product,`year`\r\n) AS t5 on t1.id = t5.product AND t5.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t1.id = t6.product AND t6.`year` = t2.`year`\r\nWHERE t1.deleted = \'0\' AND t1.status != \'closed\' AND t1.shadow = \'0\'\r\nGROUP BY t1.name,t1.id,t2.`year`,newProduct',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1077,'年度新增-需求年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newStory\",\"agg\":\"value\",\"name\":\"新增需求数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedStory\",\"agg\":\"value\",\"name\":\"完成需求数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.story, 0) AS newStory, IFNULL(t3.story, 0) AS closedStory\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS story FROM zt_story WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS story FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1078,'年度新增-Bug年度新增和解决趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newBug\",\"agg\":\"value\",\"name\":\"新增Bug数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"fixedBug\",\"agg\":\"value\",\"name\":\"解决Bug数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.bug, 0) AS newBug, IFNULL(t3.bug, 0) AS fixedBug\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS bug FROM zt_bug WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS bug FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1079,'年度新增-任务年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newTask\",\"agg\":\"value\",\"name\":\"新增任务数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedTask\",\"agg\":\"value\",\"name\":\"完成任务数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.task, 0) AS newTask, IFNULL(t3.task, 0) AS closedTask\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS task FROM zt_task WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS task FROM zt_task WHERE deleted = \'0\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1080,'年度新增-项目年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newProject\",\"agg\":\"value\",\"name\":\"新增项目数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedProject\",\"agg\":\"value\",\"name\":\"完成项目数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.project, 0) AS newProject, IFNULL(t3.project, 0) AS closedProject\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS project FROM zt_project WHERE deleted = \'0\' AND type = \'project\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS project FROM zt_project WHERE deleted = \'0\' AND type = \'project\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1081,'年度新增-执行年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newExecution\",\"agg\":\"value\",\"name\":\"新增执行数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedExecution\",\"agg\":\"value\",\"name\":\"完成执行数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.execution, 0) AS newExecution, IFNULL(t3.execution, 0) AS closedExecution\r\nFROM (SELECT DISTINCT YEAR(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS execution FROM zt_project WHERE deleted = \'0\' AND type IN (\'sprint\', \'stage\', \'kanban\') AND multiple = \'1\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS execution FROM zt_project WHERE deleted = \'0\' AND type IN (\'sprint\', \'stage\', \'kanban\') AND status = \'closed\' AND multiple = \'1\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1082,'年度新增-产品发布次数年度趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"release\",\"agg\":\"value\",\"name\":\"发布次数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.release, 0) AS `release`\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(createdDate) AS `year`, MONTH(createdDate) AS `month`, COUNT(1) AS `release` FROM zt_release WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nORDER BY `year`, t1.month',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1083,'年度新增-年度投入产出比',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"ratio\",\"agg\":\"value\",\"name\":\"投入产出比\",\"valOrAgg\":\"value\"},\r\n{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"需求交付\",\"valOrAgg\":\"value\"},\r\n{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"工时消耗\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.`year`, CONCAT(t1.`month`, \'月\') AS `month`, IFNULL(t2.story, 0) AS story, IFNULL(t3.consumed, 0) AS consumed, ROUND(IF(IFNULL(t3.consumed, 0) = 0, 0, IFNULL(t2.story, 0) / IFNULL(t3.consumed, 0)), 2) AS ratio\r\nFROM (SELECT YEAR(`date`) AS \'year\', MONTH(`date`) AS \'month\' FROM zt_action GROUP BY `year`,`month`) AS t1\r\nLEFT JOIN (SELECT ROUND(SUM(estimate)) AS story, YEAR(`closedDate`) AS \'year\', MONTH(`closedDate`) AS \'month\' FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY `year`,`month`) AS t2 ON t1.`year` = t2.`year` AND t1.`month` = t2.`month`\r\nLEFT JOIN (SELECT ROUND(SUM(consumed)) as consumed, YEAR(`date`) as \'year\', MONTH(`date`) AS \'month\' FROM zt_effort WHERE deleted = \'0\' GROUP BY `year`,`month`) AS t3 ON t1.`year` = t3.`year` AND t1.`month` = t3.`month`',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1085,'年度排行-项目集-预算投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"budget\",\"agg\":\"value\",\"name\":\"预算\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t2.openedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(\r\n IFNULL(t2.budget, 0)\r\n ) / 10000, \r\n 2\r\n ) AS budget \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON FIND_IN_SET(t1.id, t2.path) \r\n AND t2.deleted = \'0\' \r\n AND t2.type = \'project\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n budget DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1086,'年度排行-项目集-人员投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"setName\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"number\",\"agg\":\"value\",\"name\":\"人数\",\"valOrAgg\":\"value\"}]}','','','SELECT tt.join as `year`, count(1) as number, tt.setName from (\r\nselect \r\nYEAR(t1.join) as `join`, t4.name as setName \r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nLEFT JOIN zt_project t4 on FIND_IN_SET(t4.id,t2.path) and t4.grade = 1\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\nAND t3.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.setName, tt.join\r\nORDER BY tt.join, number desc, tt.setName',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1087,'年度排行-项目集-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t5.date) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t5.consumed), \r\n 2\r\n ) AS consumed \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON FIND_IN_SET(t1.id, t2.path) \r\n AND t2.deleted = \'0\' \r\n AND t2.type = \'project\' \r\n LEFT JOIN zt_project AS t3 ON t2.id = t3.parent \r\n AND t3.deleted = \'0\' \r\n AND t3.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_task AS t4 ON t3.id = t4.execution \r\n AND t4.deleted = \'0\' \r\n AND t4.status != \'cancel\' \r\n LEFT JOIN zt_effort AS t5 ON t4.id = t5.objectID \r\n AND t5.deleted = \'0\' \r\n AND t5.objectType = \'task\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t5.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n consumed DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1088,'年度排行-项目集-新增需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求条数\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.openedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1089,'年度排行-项目集-新增需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求规模\",\"valOrAgg\":\"value\"}]}','','','SELECT \r\n YEAR(t3.openedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t3.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`,\r\n id, \r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1090,'年度排行-项目集-新增Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"新增Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.openedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS bug \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_bug AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n bug DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1091,'年度排行-项目集-完成需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.closedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n COUNT(1) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.closedReason = \'done\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`,\r\n id, \r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1092,'年度排行-项目集-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.closedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t3.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.closedReason = \'done\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1093,'年度排行-项目集-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','','','SELECT \r\n YEAR(t3.closedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS bug \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_bug AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.resolution = \'fixed\' \r\n AND t3.status = \'closed\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n bug DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1094,'年度排行-项目-工期榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"duration\",\"agg\":\"value\",\"name\":\"工期\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT `year`, id,name,status,realBegan,realEnd,IF(status = \'closed\', DATEDIFF(realEnd, realBegan), DATEDIFF(NOW(),realBegan)) as duration\r\nFROM (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) AS t1\r\nLEFT JOIN zt_project AS t2 ON 1 = 1 WHERE deleted = \'0\' AND type = \'project\' AND YEAR(realBegan) <= `year` AND LEFT(realBegan, 4) != \'0000\' AND (status =\'doing\' OR (status = \'suspended\' AND YEAR(suspendedDate) >= `year`) OR (status = \'closed\' AND YEAR(realEnd) >= `year`)) HAVING 1=1 ORDER BY `year`, duration desc',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1096,'年度排行-项目-工期偏差榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"duration\",\"agg\":\"value\",\"name\":\"工期\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT `year`, id,name,status,`begin`,`end`,realBegan,realEnd,\nROUND((IF(LEFT(realEnd,4) != \'0000\', DATEDIFF(realEnd, realBegan), DATEDIFF(NOW(),realBegan)) - DATEDIFF(`end`, `begin`)) / DATEDIFF(`end`,`begin`) * 100) as duration\nFROM (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) AS t1\nLEFT JOIN zt_project AS t2 ON 1 = 1 \nWHERE deleted = \'0\' AND type = \'project\'\nAND YEAR(realBegan) <= `year` AND LEFT(realBegan, 4) != \'0000\'\nAND (YEAR(realEnd) >= `year` OR LEFT(realEnd, 4) = \'0000\') AND YEAR(`end`) != \'2059\'\nHAVING 1=1\nORDER BY duration ASC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1097,'年度排行-项目-人员投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"number\",\"agg\":\"value\",\"name\":\"人数\",\"valOrAgg\":\"value\"}]}','','','SELECT tt.join as `year`, count(1) as number, tt.name from (\r\nselect \r\nt2.name, YEAR(t1.join) as `join`\r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.`name`, tt.join\r\nORDER BY tt.join, number desc, tt.name',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1098,'年度排行-项目-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t4.date) AS `year`,\r\n t1.id, \r\n t1.name AS project, \r\n ROUND(\r\n SUM(t4.consumed), \r\n 2\r\n ) AS consumed \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_task AS t3 ON t2.id = t3.execution \r\n AND t3.deleted = \'0\' \r\n AND t3.status != \'cancel\' \r\n LEFT JOIN zt_effort AS t4 ON t3.id = t4.objectID \r\n AND t4.deleted = \'0\' \r\n AND t4.objectType = \'task\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n project \r\nORDER BY \r\n `year`, \r\n consumed DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1099,'年度排行-项目-完成需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t1.closedDate) AS `year`, \r\n t1.id, \r\n t1.project, \r\n COUNT(1) AS story \r\nFROM \r\n (\r\n SELECT \r\n DISTINCT t1.id, \r\n t1.name AS project, \r\n t4.id AS story, \r\n t4.closedDate \r\n FROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_projectstory AS t3 ON t2.id = t3.project \r\n LEFT JOIN zt_story AS t4 ON t3.story = t4.id \r\n AND t4.deleted = \'0\' \r\n AND t4.closedReason = \'done\' \r\n WHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL\r\n ) AS t1 \r\nGROUP BY \r\n `year`, \r\n id, \r\n project \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1100,'年度排行-项目-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t1.closedDate) AS `year`, \r\n t1.id, \r\n t1.project, \r\n ROUND(\r\n SUM(t1.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n (\r\n SELECT \r\n DISTINCT t1.id, \r\n t1.name AS project, \r\n t4.id AS story, \r\n t4.estimate, \r\n t4.closedDate \r\n FROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_projectstory AS t3 ON t2.id = t3.project \r\n LEFT JOIN zt_story AS t4 ON t3.story = t4.id \r\n AND t4.deleted = \'0\' \r\n AND t4.closedReason = \'done\' \r\n WHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL\r\n ) AS t1 \r\nGROUP BY \r\n `year`, \r\n id, \r\n project \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1101,'年度排行-产品-新增需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.openedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS story\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_story AS t2 ON t1.id = t2.product AND t2.deleted = \'0\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1102,'年度排行-产品-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.closedDate) AS `year`, t1.id, t1.name AS product, ROUND(SUM(t2.estimate), 1) AS story\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_story AS t2 ON t1.id = t2.product AND t2.deleted = \'0\' AND t2.closedReason = \'done\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, story DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1103,'年度排行-产品-新增Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"新增Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.openedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS bug\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_bug AS t2 ON t1.id = t2.product AND t2.deleted = \'0\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, bug DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1104,'年度排行-产品-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.closedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS bug\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_bug AS t2 ON t1.id = t2.product AND t2.deleted = \'0\' AND t2.resolution = \'fixed\' AND t2.status = \'closed\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, bug DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1105,'年度排行-个人-创建需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\r\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_story AS t3 ON t1.objectID=t3.id\r\nWHERE t1.objectType=\'story\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\r\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1106,'年度排行-个人-创建用例条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建需用例条目\",\"valOrAgg\":\"value\"}]}','','','SELECT \nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_case AS t3 ON t1.objectID=t3.id\nWHERE t1.objectType=\'case\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1107,'年度排行-个人-创建Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_bug AS t3 ON t1.objectID=t3.id\nWHERE t1.objectType=\'bug\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1108,'年度排行-个人-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\nYEAR(t3.openedDate) AS `year`,t2.realname,count(DISTINCT t3.id) AS count\r\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_bug AS t3 ON t1.objectID=t3.id\r\nWHERE t1.objectType=\'bug\' AND t1.action=\'resolved\' AND t3.deleted=\'0\'\r\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1109,'年度排行-个人-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t1.date) AS `year`, t2.realname, ROUND(SUM(t1.consumed),1) AS consumed\nFROM zt_effort AS t1 LEFT JOIN zt_user AS t2 ON t1.account = t2.account\nWHERE t1.deleted = \'0\' AND t2.deleted = \'0\'\nGROUP BY `year`, realname\nORDER BY `year`, consumed DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0), -(1110,'年度排行-个人-禅道操作次数榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"操作次数\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t1.date) AS `year`,IFNULL(t2.realname,t1.actor) AS realname,count(1) AS count\r\nFROM zt_action t1 LEFT JOIN zt_user AS t2 ON t1.actor=t2.account\r\nGROUP BY `year`,t1.actor\r\nORDER BY `year`, `count` DESC',1,'','','0000-00-00 00:00:00','','0000-00-00 00:00:00',0); +(1055,'年度新增-一级项目集个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( openedDate ) AS `year` \r\n FROM\r\n zt_project \r\n WHERE\r\n `type` = \'program\' \r\n AND deleted = \'0\' \r\n AND grade = \'1\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1056,'年度新增-产品个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( createdDate ) AS `year` \r\n FROM\r\n zt_product \r\n WHERE\r\n deleted = \'0\' \r\n AND shadow = \'0\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1057,'年度新增-需求个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( openedDate ) AS `year` FROM zt_story WHERE deleted = \'0\' ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1058,'年度新增-Bug个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.title\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, title, YEAR ( openedDate ) AS `year` FROM zt_bug WHERE deleted = \'0\' ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1059,'年度新增-计划个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( createdDate ) AS `year` FROM zt_productplan WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1060,'年度新增-项目个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( openedDate ) AS `year` \r\n FROM\r\n zt_project \r\n WHERE\r\n `type` = \'project\' \r\n AND deleted = \'0\' \r\n ) t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1061,'年度新增-执行个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.`year`, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(`date`) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id,name, YEAR(openedDate) AS `year` FROM zt_project WHERE `type` IN ( \'sprint\', \'stage\', \'kanban\' ) AND deleted = \'0\' AND multiple = \'1\') AS t2 ON t1.`year` = t2.`year` \r\nWHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1062,'年度新增-任务数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( openedDate ) AS `year` FROM zt_task WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1063,'年度新增-文档个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\r\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN ( SELECT id, title, YEAR ( addedDate ) AS `year` FROM zt_doc WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1064,'年度新增-发布个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( `date` ) AS `year` FROM zt_release WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year`\r\nWHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1065,'年度新增-人员个数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"account\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"realname\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\r\n t2.account,\r\n t2.realname\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN (\n SELECT\n account, realname,\n YEAR ( t112.`date` ) AS \'year\' \n FROM\n zt_user AS t111\n LEFT JOIN zt_action t112 ON t111.id = t112.objectID \n AND t112.objectType = \'user\' \n WHERE\n t111.deleted = \'0\' \n AND t112.action = \'created\' \n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.account IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1066,'年度新增-完成项目数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.year, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(date) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id, name, YEAR(closedDate) AS `year` FROM zt_project WHERE `type` = \'project\' AND deleted = \'0\' AND status = \'closed\') AS t2 ON t1.year = t2.year\r\nWHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1067,'年度新增-完成执行数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT t1.`year`, t2.id, t2.name\r\nFROM (SELECT DISTINCT YEAR(date) AS \'year\' FROM zt_action) AS t1\r\nLEFT JOIN (SELECT id, name, YEAR(closedDate) AS `year` FROM zt_project WHERE `type` IN ( \'sprint\', \'stage\', \'kanban\' ) AND deleted = \'0\' AND multiple = \'1\' AND status = \'closed\') AS t2 ON t1.`year` = t2.`year` \r\nWHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1068,'年度新增-完成发布数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT id, name, YEAR ( `date` ) AS `year` FROM zt_release WHERE deleted = \'0\') AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1069,'年度新增-完成需求数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\n\"type\": \"value\"\n}','',NULL,'SELECT\n t1.`year`,\n t2.id,\n t2.title\nFROM\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\n LEFT JOIN (\n SELECT\n id, title,\n YEAR ( closedDate ) AS `year` \n FROM\n zt_story \n WHERE\n deleted = \'0\' \n AND closedReason = \'done\' \n AND STATUS = \'closed\' \n ) AS t2 ON t1.`year` = t2.`year` \n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1070,'年度新增-解决Bug数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.title\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, title,\r\n YEAR ( closedDate ) AS `year` \r\n FROM\r\n zt_bug \r\n WHERE\r\n deleted = \'0\' \r\n AND resolution = \'fixed\' \r\n AND STATUS = \'closed\' \r\n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1071,'年度新增-完成任务数',1,'card',0,'','','{\"value\": {\"type\": \"agg\", \"field\": \"id\", \"agg\": \"count\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n t2.id,\r\n t2.name\r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN (\r\n SELECT\r\n id, name,\r\n YEAR ( finishedDate ) AS `year` \r\n FROM\r\n zt_task \r\n WHERE\r\n deleted = \'0\' \r\n AND STATUS = \'closed\' \r\n AND closedReason = \'done\' \r\n ) AS t2 ON t1.`year` = t2.`year` \r\n WHERE t2.id IS NOT NULL',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1072,'年度新增-投入工时数',1,'card',0,'','','{\"value\": {\"type\": \"value\", \"field\": \"consumed\", \"agg\": \"value\"}, \"title\": {\"type\": \"text\", \"name\": \"\"},\r\n\"type\": \"value\"\r\n}','',NULL,'SELECT\r\n t1.`year`,\r\n IFNULL( t2.consumed, 0 ) AS consumed \r\nFROM\r\n ( SELECT DISTINCT YEAR ( `date` ) AS \'year\' FROM zt_action ) AS t1\r\n LEFT JOIN ( SELECT ROUND( SUM( consumed )) AS consumed, YEAR ( `date` ) AS \'year\' FROM zt_effort WHERE deleted = \'0\' GROUP BY `year`) AS t2 ON t1.`year` = t2.`year` ',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1073,'年度新增-项目集年度新增数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"topProgram\",\"valOrAgg\":\"value\",\"name\":\"一级项目集\"},\r\n{\"field\":\"product\",\"valOrAgg\":\"value\",\"name\":\"产品数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"},\r\n{\"field\":\"doc\",\"valOrAgg\":\"value\",\"name\":\"文档数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name AS topProgram,t1.id, t2.`year`, (SELECT COUNT(1) as product FROM zt_product WHERE deleted = \'0\' AND shadow = \'0\' AND YEAR(createdDate) = t2.`year` AND program = t1.id) as product, SUM(IFNULL(t4.plan, 0)) AS plan, SUM(IFNULL(t5.story, 0)) AS story, SUM(IFNULL(t6.bug, 0)) AS bug, SUM(IFNULL(t7.`release`, 0)) AS \'release\', SUM(IFNULL(t8.doc, 0)) AS doc\r\nFROM zt_project AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1 LEFT JOIN (SELECT id, program FROM zt_product WHERE deleted = \'0\') AS t3 ON t1.id = t3.program\r\nLEFT JOIN (SELECT COUNT(1) as \'plan\', product, YEAR(createdDate) as \'year\' FROM zt_productplan WHERE deleted = \'0\' GROUP BY product,`year`) AS t4 on t3.id = t4.product AND t4.`year`= t2.`year` LEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(openedDate) as \'year\' FROM zt_story WHERE deleted = \'0\' GROUP BY product,`year`) AS t5 on t3.id = t5.product AND t5.`year`= t2.`year` LEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(openedDate) as \'year\' FROM zt_bug WHERE deleted = \'0\' GROUP BY product,`year`) AS t6 on t3.id = t6.product AND t6.`year` = t2.`year` LEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as \'year\' FROM zt_release WHERE deleted = \'0\' GROUP BY product,`year`) AS t7 on t3.id = t7.product AND t7.`year` = t2.`year` LEFT JOIN (SELECT COUNT(1) as \'doc\', product, YEAR(addedDate) as \'year\' FROM zt_doc WHERE deleted = \'0\' GROUP BY product,`year`) AS t8 on t3.id = t8.product AND t8.`year` = t2.`year` WHERE t1.type = \'program\' AND t1.grade = 1 AND t1.deleted = \'0\'AND t1.status != \'closed\' GROUP BY topProgram,id,`year` ORDER BY `year`, topProgram',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1074,'年度新增-项目集年度完成数据概览',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"topProgram\",\"valOrAgg\":\"value\",\"name\":\"一级项目集\"},\r\n{\"field\":\"projectA\",\"valOrAgg\":\"value\",\"name\":\"项目数\"},\r\n{\"field\":\"executionA\",\"valOrAgg\":\"value\",\"name\":\"执行数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name AS topProgram,t1.id,t2.`year`,\r\n SUM(IF((t3.`status` = \'closed\' AND YEAR(t3.closedDate) = t2.`year`), 1, 0)) as projectA,\r\n COUNT(DISTINCT t4.id) as executionA,\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\',\r\n SUM(IFNULL(t7.story, 0)) AS story,\r\n SUM(IFNULL(t8.bug, 0)) AS bug\r\nFROM zt_project AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN zt_project AS t3 ON FIND_IN_SET(t1.id, t3.path) and t3.type = \'project\'\r\nLEFT JOIN zt_project AS t4 ON t3.id = t4.parent and t4.type in (\'sprint\', \'stage\', \'kanban\') AND t4.`status` = \'closed\' AND YEAR(t4.closedDate) = t2.`year`\r\nLEFT JOIN (SELECT id,program FROM zt_product WHERE deleted = \'0\') AS t5 ON t1.id = t5.program\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t5.id = t6.product AND t6.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(closedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t7 on t5.id = t7.product AND t7.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(resolvedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t8 on t5.id = t8.product AND t8.`year` = t2.`year`\r\nWHERE t1.type = \'program\' AND t1.grade = 1 AND t1.deleted = \'0\'\r\nGROUP BY t1.name,t1.id,t2.`year`',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1075,'年度新增-产品年度新增数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"name\",\"valOrAgg\":\"value\",\"name\":\"产品\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name,t1.id,t2.`year`,IF(YEAR(t1.createdDate) = t2.`year`, 1, 0) as newProduct,\r\n SUM(IFNULL(t3.story, 0)) AS story,\r\n SUM(IFNULL(t4.bug, 0)) AS bug,\r\n SUM(IFNULL(t5.`plan`, 0)) AS \'plan\',\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\'\r\nFROM zt_product AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(openedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t3 on t1.id = t3.product AND t3.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(openedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t4 on t1.id = t4.product AND t4.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'plan\', product, YEAR(createdDate) AS \'year\' FROM zt_productplan WHERE deleted = \'0\' GROUP BY product,`year`) AS t5 on t1.id = t5.product AND t5.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t1.id = t6.product AND t6.`year` = t2.`year`\r\nWHERE t1.deleted = \'0\' AND t1.status != \'closed\' AND t1.shadow = \'0\'\r\nAND t2.`year` = \'2022\'\r\nGROUP BY t1.name,t1.id,t2.`year`,newProduct',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1076,'年度新增-产品年度完成数据汇总表',1,'table',0,'','','{\"group\":[],\"column\":[\r\n{\"field\":\"name\",\"valOrAgg\":\"value\",\"name\":\"产品\"},\r\n{\"field\":\"story\",\"valOrAgg\":\"value\",\"name\":\"需求数\"},\r\n{\"field\":\"bug\",\"valOrAgg\":\"value\",\"name\":\"Bug数\"},\r\n{\"field\":\"plan\",\"valOrAgg\":\"value\",\"name\":\"计划数\"},\r\n{\"field\":\"release\",\"valOrAgg\":\"value\",\"name\":\"发布数\"}\r\n],\"filter\":[]}','',NULL,'SELECT\r\n t1.name,t1.id,t2.`year`,IF(YEAR(t1.createdDate) = t2.`year`, 1, 0) as newProduct,\r\n SUM(IFNULL(t3.story, 0)) AS story,\r\n SUM(IFNULL(t4.bug, 0)) AS bug,\r\n SUM(IFNULL(t5.`plan`, 0)) AS \'plan\',\r\n SUM(IFNULL(t6.`release`, 0)) AS \'release\'\r\nFROM zt_product AS t1\r\nLEFT JOIN (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) as t2 ON 1 = 1\r\nLEFT JOIN (SELECT COUNT(1) as \'story\', product, YEAR(closedDate) as `year` FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY product, `year`) AS t3 on t1.id = t3.product AND t3.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'bug\', product, YEAR(resolvedDate) as `year` FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY product, `year`) AS t4 on t1.id = t4.product AND t4.`year` = t2.`year`\r\nLEFT JOIN (\r\n SELECT COUNT(DISTINCT t51.id) as \'plan\', t51.product, YEAR(t52.`date`) AS \'year\'\r\n FROM zt_productplan AS t51\r\n LEFT JOIN (SELECT objectID,objectType,action,MAX(`date`) as \'date\' FROM zt_action GROUP BY objectID,objectType, action) AS t52 ON t51.id = t52.objectID AND t52.objectType = \'productplan\'\r\n WHERE t51.deleted = \'0\' AND t51.closedReason = \'done\' AND t51.status = \'closed\' \r\n AND t52.action = \'closed\'\r\n GROUP BY t51.product,`year`\r\n) AS t5 on t1.id = t5.product AND t5.`year` = t2.`year`\r\nLEFT JOIN (SELECT COUNT(1) as \'release\', product, YEAR(`date`) as `year` FROM zt_release WHERE deleted = \'0\' GROUP BY product, `year`) AS t6 ON t1.id = t6.product AND t6.`year` = t2.`year`\r\nWHERE t1.deleted = \'0\' AND t1.status != \'closed\' AND t1.shadow = \'0\'\r\nGROUP BY t1.name,t1.id,t2.`year`,newProduct',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1077,'年度新增-需求年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newStory\",\"agg\":\"value\",\"name\":\"新增需求数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedStory\",\"agg\":\"value\",\"name\":\"完成需求数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.story, 0) AS newStory, IFNULL(t3.story, 0) AS closedStory\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS story FROM zt_story WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS story FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1078,'年度新增-Bug年度新增和解决趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newBug\",\"agg\":\"value\",\"name\":\"新增Bug数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"fixedBug\",\"agg\":\"value\",\"name\":\"解决Bug数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.bug, 0) AS newBug, IFNULL(t3.bug, 0) AS fixedBug\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS bug FROM zt_bug WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS bug FROM zt_bug WHERE deleted = \'0\' AND resolution = \'fixed\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1079,'年度新增-任务年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newTask\",\"agg\":\"value\",\"name\":\"新增任务数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedTask\",\"agg\":\"value\",\"name\":\"完成任务数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.task, 0) AS newTask, IFNULL(t3.task, 0) AS closedTask\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS task FROM zt_task WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS task FROM zt_task WHERE deleted = \'0\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1080,'年度新增-项目年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newProject\",\"agg\":\"value\",\"name\":\"新增项目数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedProject\",\"agg\":\"value\",\"name\":\"完成项目数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.project, 0) AS newProject, IFNULL(t3.project, 0) AS closedProject\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS project FROM zt_project WHERE deleted = \'0\' AND type = \'project\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS project FROM zt_project WHERE deleted = \'0\' AND type = \'project\' AND status = \'closed\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1081,'年度新增-执行年度新增和完成趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"newExecution\",\"agg\":\"value\",\"name\":\"新增执行数\",\"valOrAgg\":\"value\"},\r\n {\"type\":\"value\",\"field\":\"closedExecution\",\"agg\":\"value\",\"name\":\"完成执行数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.execution, 0) AS newExecution, IFNULL(t3.execution, 0) AS closedExecution\r\nFROM (SELECT DISTINCT YEAR(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(openedDate) AS `year`, MONTH(openedDate) AS `month`, COUNT(1) AS execution FROM zt_project WHERE deleted = \'0\' AND type IN (\'sprint\', \'stage\', \'kanban\') AND multiple = \'1\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nLEFT JOIN (SELECT YEAR(closedDate) AS `year`, MONTH(closedDate) AS `month`, COUNT(1) AS execution FROM zt_project WHERE deleted = \'0\' AND type IN (\'sprint\', \'stage\', \'kanban\') AND status = \'closed\' AND multiple = \'1\' GROUP BY `year`, `month`) AS t3 ON t1.year = t3.year AND t1.month = t3.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1082,'年度新增-产品发布次数年度趋势图',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"release\",\"agg\":\"value\",\"name\":\"发布次数\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.year, CONCAT(t1.month, \'月\') AS `month`, IFNULL(t2.release, 0) AS `release`\r\nFROM (SELECT DISTINCT Year(date) AS `year`, MONTH(date) AS `month` FROM zt_action) AS t1\r\nLEFT JOIN (SELECT YEAR(createdDate) AS `year`, MONTH(createdDate) AS `month`, COUNT(1) AS `release` FROM zt_release WHERE deleted = \'0\' GROUP BY `year`, `month`) AS t2 ON t1.year = t2.year AND t1.month = t2.month\r\nORDER BY `year`, t1.month',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1083,'年度新增-年度投入产出比',1,'line',0,'','','{\r\n \"xaxis\":[{\"field\":\"month\",\"name\":\"月份\",\"group\":\"value\"}],\r\n \"yaxis\":[{\"type\":\"value\",\"field\":\"ratio\",\"agg\":\"value\",\"name\":\"投入产出比\",\"valOrAgg\":\"value\"},\r\n{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"需求交付\",\"valOrAgg\":\"value\"},\r\n{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"工时消耗\",\"valOrAgg\":\"value\"}\r\n]}','',NULL,'SELECT t1.`year`, CONCAT(t1.`month`, \'月\') AS `month`, IFNULL(t2.story, 0) AS story, IFNULL(t3.consumed, 0) AS consumed, ROUND(IF(IFNULL(t3.consumed, 0) = 0, 0, IFNULL(t2.story, 0) / IFNULL(t3.consumed, 0)), 2) AS ratio\r\nFROM (SELECT YEAR(`date`) AS \'year\', MONTH(`date`) AS \'month\' FROM zt_action GROUP BY `year`,`month`) AS t1\r\nLEFT JOIN (SELECT ROUND(SUM(estimate)) AS story, YEAR(`closedDate`) AS \'year\', MONTH(`closedDate`) AS \'month\' FROM zt_story WHERE deleted = \'0\' AND closedReason = \'done\' AND status = \'closed\' GROUP BY `year`,`month`) AS t2 ON t1.`year` = t2.`year` AND t1.`month` = t2.`month`\r\nLEFT JOIN (SELECT ROUND(SUM(consumed)) as consumed, YEAR(`date`) as \'year\', MONTH(`date`) AS \'month\' FROM zt_effort WHERE deleted = \'0\' GROUP BY `year`,`month`) AS t3 ON t1.`year` = t3.`year` AND t1.`month` = t3.`month`',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1085,'年度排行-项目集-预算投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"budget\",\"agg\":\"value\",\"name\":\"预算\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t2.openedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(\r\n IFNULL(t2.budget, 0)\r\n ) / 10000, \r\n 2\r\n ) AS budget \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON FIND_IN_SET(t1.id, t2.path) \r\n AND t2.deleted = \'0\' \r\n AND t2.type = \'project\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n budget DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1086,'年度排行-项目集-人员投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"setName\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"number\",\"agg\":\"value\",\"name\":\"人数\",\"valOrAgg\":\"value\"}]}','','','SELECT tt.join as `year`, count(1) as number, tt.setName from (\r\nselect \r\nYEAR(t1.join) as `join`, t4.name as setName \r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nLEFT JOIN zt_project t4 on FIND_IN_SET(t4.id,t2.path) and t4.grade = 1\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\nAND t3.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.setName, tt.join\r\nORDER BY tt.join, number desc, tt.setName',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1087,'年度排行-项目集-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t5.date) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t5.consumed), \r\n 2\r\n ) AS consumed \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON FIND_IN_SET(t1.id, t2.path) \r\n AND t2.deleted = \'0\' \r\n AND t2.type = \'project\' \r\n LEFT JOIN zt_project AS t3 ON t2.id = t3.parent \r\n AND t3.deleted = \'0\' \r\n AND t3.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_task AS t4 ON t3.id = t4.execution \r\n AND t4.deleted = \'0\' \r\n AND t4.status != \'cancel\' \r\n LEFT JOIN zt_effort AS t5 ON t4.id = t5.objectID \r\n AND t5.deleted = \'0\' \r\n AND t5.objectType = \'task\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t5.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n consumed DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1088,'年度排行-项目集-新增需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求条数\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.openedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1089,'年度排行-项目集-新增需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求规模\",\"valOrAgg\":\"value\"}]}','','','SELECT \r\n YEAR(t3.openedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t3.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`,\r\n id, \r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1090,'年度排行-项目集-新增Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"新增Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.openedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS bug \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_bug AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n bug DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1091,'年度排行-项目集-完成需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.closedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n COUNT(1) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.closedReason = \'done\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`,\r\n id, \r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1092,'年度排行-项目集-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t3.closedDate) AS `year`, \r\n t1.id,\r\n t1.name AS program, \r\n ROUND(\r\n SUM(t3.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_story AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.closedReason = \'done\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1093,'年度排行-项目集-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"program\",\"name\":\"项目集\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','','','SELECT \r\n YEAR(t3.closedDate) AS `year`,\r\n t1.id, \r\n t1.name AS program, \r\n COUNT(1) AS bug \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_product AS t2 ON t1.id = t2.program \r\n AND t2.deleted = \'0\' \r\n LEFT JOIN zt_bug AS t3 ON t2.id = t3.product \r\n AND t3.deleted = \'0\' \r\n AND t3.resolution = \'fixed\' \r\n AND t3.status = \'closed\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'program\' \r\n AND t1.grade = 1 \r\n AND t3.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n program \r\nORDER BY \r\n `year`, \r\n bug DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1094,'年度排行-项目-工期榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"duration\",\"agg\":\"value\",\"name\":\"工期\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT `year`, id,name,status,realBegan,realEnd,IF(status = \'closed\', DATEDIFF(realEnd, realBegan), DATEDIFF(NOW(),realBegan)) as duration\r\nFROM (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) AS t1\r\nLEFT JOIN zt_project AS t2 ON 1 = 1 WHERE deleted = \'0\' AND type = \'project\' AND YEAR(realBegan) <= `year` AND LEFT(realBegan, 4) != \'0000\' AND (status =\'doing\' OR (status = \'suspended\' AND YEAR(suspendedDate) >= `year`) OR (status = \'closed\' AND YEAR(realEnd) >= `year`)) HAVING 1=1 ORDER BY `year`, duration desc',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1096,'年度排行-项目-工期偏差榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"duration\",\"agg\":\"value\",\"name\":\"工期\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT `year`, id,name,status,`begin`,`end`,realBegan,realEnd,\nROUND((IF(LEFT(realEnd,4) != \'0000\', DATEDIFF(realEnd, realBegan), DATEDIFF(NOW(),realBegan)) - DATEDIFF(`end`, `begin`)) / DATEDIFF(`end`,`begin`) * 100) as duration\nFROM (SELECT DISTINCT YEAR(`date`) as \'year\' FROM zt_action) AS t1\nLEFT JOIN zt_project AS t2 ON 1 = 1 \nWHERE deleted = \'0\' AND type = \'project\'\nAND YEAR(realBegan) <= `year` AND LEFT(realBegan, 4) != \'0000\'\nAND (YEAR(realEnd) >= `year` OR LEFT(realEnd, 4) = \'0000\') AND YEAR(`end`) != \'2059\'\nHAVING 1=1\nORDER BY duration ASC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1097,'年度排行-项目-人员投入榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"name\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"number\",\"agg\":\"value\",\"name\":\"人数\",\"valOrAgg\":\"value\"}]}','','','SELECT tt.join as `year`, count(1) as number, tt.name from (\r\nselect \r\nt2.name, YEAR(t1.join) as `join`\r\nfrom zt_team t1 \r\nRIGHT JOIN zt_project t2 on t2.id = t1.root\r\nRIGHT JOIN zt_user t3 on t3.account = t1.account\r\nWHERE t1.type = \'project\'\r\nAND t2.deleted = \'0\'\r\n) tt\r\nGROUP BY tt.`name`, tt.join\r\nORDER BY tt.join, number desc, tt.name',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1098,'年度排行-项目-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t4.date) AS `year`,\r\n t1.id, \r\n t1.name AS project, \r\n ROUND(\r\n SUM(t4.consumed), \r\n 2\r\n ) AS consumed \r\nFROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_task AS t3 ON t2.id = t3.execution \r\n AND t3.deleted = \'0\' \r\n AND t3.status != \'cancel\' \r\n LEFT JOIN zt_effort AS t4 ON t3.id = t4.objectID \r\n AND t4.deleted = \'0\' \r\n AND t4.objectType = \'task\' \r\nWHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL \r\nGROUP BY \r\n `year`, \r\n id,\r\n project \r\nORDER BY \r\n `year`, \r\n consumed DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1099,'年度排行-项目-完成需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t1.closedDate) AS `year`, \r\n t1.id, \r\n t1.project, \r\n COUNT(1) AS story \r\nFROM \r\n (\r\n SELECT \r\n DISTINCT t1.id, \r\n t1.name AS project, \r\n t4.id AS story, \r\n t4.closedDate \r\n FROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_projectstory AS t3 ON t2.id = t3.project \r\n LEFT JOIN zt_story AS t4 ON t3.story = t4.id \r\n AND t4.deleted = \'0\' \r\n AND t4.closedReason = \'done\' \r\n WHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL\r\n ) AS t1 \r\nGROUP BY \r\n `year`, \r\n id, \r\n project \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1100,'年度排行-项目-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"project\",\"name\":\"项目\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\n YEAR(t1.closedDate) AS `year`, \r\n t1.id, \r\n t1.project, \r\n ROUND(\r\n SUM(t1.estimate), \r\n 2\r\n ) AS story \r\nFROM \r\n (\r\n SELECT \r\n DISTINCT t1.id, \r\n t1.name AS project, \r\n t4.id AS story, \r\n t4.estimate, \r\n t4.closedDate \r\n FROM \r\n zt_project AS t1 \r\n LEFT JOIN zt_project AS t2 ON t1.id = t2.parent \r\n AND t2.deleted = \'0\' \r\n AND t2.type IN (\'sprint\', \'stage\', \'kanban\') \r\n LEFT JOIN zt_projectstory AS t3 ON t2.id = t3.project \r\n LEFT JOIN zt_story AS t4 ON t3.story = t4.id \r\n AND t4.deleted = \'0\' \r\n AND t4.closedReason = \'done\' \r\n WHERE \r\n t1.deleted = \'0\' \r\n AND t1.type = \'project\' \r\n AND t4.id IS NOT NULL\r\n ) AS t1 \r\nGROUP BY \r\n `year`, \r\n id, \r\n project \r\nORDER BY \r\n `year`, \r\n story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1101,'年度排行-产品-新增需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"新增需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.openedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS story\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_story AS t2 ON t1.id = t2.product AND t2.deleted = \'0\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1102,'年度排行-产品-完成需求规模榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"story\",\"agg\":\"value\",\"name\":\"完成需求规模\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.closedDate) AS `year`, t1.id, t1.name AS product, ROUND(SUM(t2.estimate), 1) AS story\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_story AS t2 ON t1.id = t2.product AND t2.deleted = \'0\' AND t2.closedReason = \'done\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, story DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1103,'年度排行-产品-新增Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"新增Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.openedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS bug\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_bug AS t2 ON t1.id = t2.product AND t2.deleted = \'0\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, bug DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1104,'年度排行-产品-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"product\",\"name\":\"产品\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"bug\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t2.closedDate) AS `year`, t1.id, t1.name AS product, COUNT(1) AS bug\r\nFROM zt_product AS t1\r\nLEFT JOIN zt_bug AS t2 ON t1.id = t2.product AND t2.deleted = \'0\' AND t2.resolution = \'fixed\' AND t2.status = \'closed\'\r\nWHERE t1.deleted = \'0\' AND t1.shadow = \'0\' AND t1.vision = \'rnd\' AND t2.id IS NOT NULL\r\nGROUP BY `year`, id, product\r\nORDER BY `year`, bug DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1105,'年度排行-个人-创建需求条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建需求条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\r\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_story AS t3 ON t1.objectID=t3.id\r\nWHERE t1.objectType=\'story\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\r\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1106,'年度排行-个人-创建用例条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建需用例条目\",\"valOrAgg\":\"value\"}]}','','','SELECT \nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_case AS t3 ON t1.objectID=t3.id\nWHERE t1.objectType=\'case\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1107,'年度排行-个人-创建Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"创建Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \nYEAR(t3.openedDate) AS `year`,t2.realname,count(1) AS count\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_bug AS t3 ON t1.objectID=t3.id\nWHERE t1.objectType=\'bug\' AND t1.action=\'opened\' AND t3.deleted=\'0\'\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1108,'年度排行-个人-修复Bug条目榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"修复Bug条目\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT \r\nYEAR(t3.openedDate) AS `year`,t2.realname,count(DISTINCT t3.id) AS count\r\nFROM zt_action AS t1 RIGHT JOIN zt_user AS t2 ON t1.actor=t2.account LEFT JOIN zt_bug AS t3 ON t1.objectID=t3.id\r\nWHERE t1.objectType=\'bug\' AND t1.action=\'resolved\' AND t3.deleted=\'0\'\r\nGROUP BY `year`,t2.account ORDER BY `year`,count DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1109,'年度排行-个人-工时消耗榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"consumed\",\"agg\":\"value\",\"name\":\"消耗工时\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t1.date) AS `year`, t2.realname, ROUND(SUM(t1.consumed),1) AS consumed\nFROM zt_effort AS t1 LEFT JOIN zt_user AS t2 ON t1.account = t2.account\nWHERE t1.deleted = \'0\' AND t2.deleted = \'0\'\nGROUP BY `year`, realname\nORDER BY `year`, consumed DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0), +(1110,'年度排行-个人-禅道操作次数榜',1,'bar',0,'','','{\"xaxis\":[{\"field\":\"realname\",\"name\":\"用户\"}],\"yaxis\":[{\"type\":\"value\",\"field\":\"count\",\"agg\":\"value\",\"name\":\"操作次数\",\"valOrAgg\":\"value\"}]}','',NULL,'SELECT YEAR(t1.date) AS `year`,IFNULL(t2.realname,t1.actor) AS realname,count(1) AS count\r\nFROM zt_action t1 LEFT JOIN zt_user AS t2 ON t1.actor=t2.account\r\nGROUP BY `year`,t1.actor\r\nORDER BY `year`, `count` DESC',1,'','','1970-01-01 00:00:01','','1970-01-01 00:00:01',0); REPLACE INTO `zt_screen` (`id`, `dimension`, `name`, `desc`, `cover`, `scheme`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `deleted`) VALUES (1,1,'宏观数据盘点大屏','从宏观的角度快速的了解公司的现状','static/images/screen1.png','[\n {\n \"id\": \"5scfjzqsbzo000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 1300, \"h\": 120, \"x\": 0, \"y\": 0, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"标题\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 1300, \"h\": 120, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/screen_header.png\", \"borderRadius\": 10 }\n },\n {\n \"id\": \"2nws38440fq000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 360, \"y\": 36, \"w\": 500, \"h\": 66, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"title\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司数据盘点大屏\", \"fontSize\": 20, \"fontColor\": \"#b2d5e5\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"1cfwp95aiif400\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 171, \"w\": 1000, \"h\": 480, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"summary\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#00102800\", \"#00102800\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"6scfjzqsbzo000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 800, \"h\": 120, \"x\": 0, \"y\": 175, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"标题\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"57r67ykkwxk000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 187, \"h\": 68, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"summary_top\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司级数据概览\", \"fontSize\": 14, \"fontColor\": \"#b2d5e5\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"left\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 165, \"y\": 26, \"w\": 14, \"h\": 11, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_left.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 165, \"y\": 28, \"w\": 800, \"h\": 10, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_right.png\", \"fit\": \"fill\", \"borderRadius\": 0 }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 25, \"y\": 246, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"一级项目集个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1018,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"一级项目集个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"一级项目集个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"一级项目集个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 155, \"y\": 246, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"项目个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1019,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"项目个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"项目个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"项目个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 285, \"y\": 246, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"产品个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1020,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"产品个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 25, \"y\": 346, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"计划个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1021,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"计划个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"计划个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"计划个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 155, \"y\": 346, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"执行个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1022,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"执行个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"执行个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"执行个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 285, \"y\": 346, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"发布个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1023,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"发布个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"发布个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"发布个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 25, \"y\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"需求个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1024,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"需求个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"需求个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"需求个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 155, \"y\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"任务个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1025,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"任务个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"任务个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"任务个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 285, \"y\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"缺陷个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1026,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"缺陷个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"缺陷个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"缺陷个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 25, \"y\": 546, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"文档个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1027,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"文档个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"文档个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"文档个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 155, \"y\": 546, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"现有人员个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1028,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"现有人员个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"现有人员个数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"现有人员个数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 285, \"y\": 546, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"累计消耗工时\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1029,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"累计消耗工时\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"累计消耗工时\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"累计消耗工时\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"3v5jz5hzz0c000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 211, \"h\": 150, \"x\": 500, \"y\": 180, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"使用时长\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"1hxm2jtfh3y800\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 380, \"h\": 150, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"使用时长边框\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#6586ec00\", \"#2cf7fe00\" ], \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"3aekp6a7tag000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 60, \"y\": 25, \"w\": 200, \"h\": 150, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"使用时长\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"禅道使用时长:\", \"fontSize\": 19, \"fontColor\": \"#9abdcd\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"right\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"4u5rgs0pf34000\",\n \"sourceID\": 1030,\n \"isGroup\": false,\n \"attr\": { \"x\": 265, \"y\": 25, \"w\": 252, \"h\": 150, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"时长\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"\", \"fontSize\": 19, \"fontColor\": \"#9abdcd\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"left\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"fc4u6zmi58w00\",\n \"isGroup\": false,\n \"attr\": { \"x\": 963, \"y\": 186, \"w\": 20, \"h\": 20, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": 1 },\n \"styles\": { \"filterShow\": false, \"hueRotate\": 0, \"saturate\": 1, \"contrast\": 1, \"brightness\": 1, \"opacity\": 1, \"rotateZ\": 0, \"rotateX\": 0, \"rotateY\": 0, \"skewX\": 0, \"skewY\": 0, \"blendMode\": \"normal\", \"animations\": [] },\n \"status\": { \"lock\": false, \"hide\": false },\n \"request\": { \"requestDataType\": 0, \"requestHttpType\": \"get\", \"requestUrl\": \"\", \"requestInterval\": null, \"requestIntervalUnit\": \"second\", \"requestContentType\": 0, \"requestParamsBodyType\": \"none\", \"requestSQLContent\": { \"sql\": \"select * from where\" }, \"requestParams\": { \"Body\": { \"form-data\": {}, \"x-www-form-urlencoded\": {}, \"json\": \"\", \"xml\": \"\" }, \"Header\": {}, \"Params\": {} } },\n \"filter\": null,\n \"events\": { \"baseEvent\": { \"click\": null, \"dblclick\": null, \"mouseenter\": null, \"mouseleave\": null }, \"advancedEvents\": { \"vnodeMounted\": null, \"vnodeBeforeMount\": null } },\n \"key\": \"Hint\",\n \"chartConfig\": { \"key\": \"Hint\", \"chartKey\": \"VHint\", \"conKey\": \"VCHint\", \"title\": \"提示\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/hint-2cbf6381.png\" },\n \"option\": { \"text\": \"\", \"icon\": \"\", \"textSize\": 15, \"textColor\": \"#ffffff\", \"textWeight\": \"bold\", \"placement\": \"left-top\", \"distance\": 8, \"hint\": \"需求完成率=关闭原因为已完成的需求个数/(关闭原因为已完成的需求个数+未关闭的需求个数);\\nBug修复率=方案为已解决且状态为已关闭的Bug数/(方案为已解决的Bug数+方案为延期处理的Bug数+激活的Bug数)。\", \"width\": 0, \"height\": 0, \"paddingX\": 16, \"paddingY\": 8, \"borderWidth\": 1, \"borderStyle\": \"solid\", \"borderColor\": \"#1a77a5\", \"borderRadius\": 6, \"color\": \"#ffffff\", \"textAlign\": \"left\", \"fontWeight\": \"normal\", \"backgroundColor\": \"rgba(8, 40, 80, 0.9)\", \"fontSize\": 16 }\n },\n {\n \"id\": \"17sqdjuu74ik00\",\n \"sourceID\": 1031,\n \"isGroup\": false,\n \"attr\": { \"x\": 460, \"y\": 300, \"w\": 280, \"h\": 250, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"PieCircle\",\n \"chartConfig\": { \"key\": \"PieCircle\", \"chartKey\": \"VPieCircle\", \"conKey\": \"VPieCircle\", \"title\": \"需求完成率\", \"category\": \"Pies\", \"categoryName\": \"饼图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/pie-circle-258fcce7.png\" },\n \"option\": { \"legend\": { \"show\": true, \"top\": \"15%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"title\": {\"text\": \"30.00%\", \"x\": \"center\", \"y\": \"center\", \"textStyle\": {\"color\": \"#FFF\",\"fontSize\": 20}}, \"type\": \"nomal\", \"tooltip\": { \"show\": false, \"trigger\": \"item\", \"formatter\": \"{d}%\" }, \"dataset\": 0.25, \"series\": [ { \"type\": \"pie\", \"radius\": [ \"63%\", \"70%\" ], \"label\": { \"show\": false }, \"center\": [ \"50%\", \"50%\" ], \"data\": [ { \"value\": [ 30 ], \"itemStyle\": { \"color\": \"#03a9f4\", \"shadowBlur\": 10, \"shadowColor\": \"#97e2f5\" } }, { \"value\": [ 70 ], \"itemStyle\": { \"color\": \"#00bcd44a\", \"shadowBlur\": 0, \"shadowColor\": \"#00bcd44a\" } } ]} ] }\n },\n {\n \"id\": \"4u5rgs0pf34000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 475, \"y\": 535, \"w\": 250, \"h\": 50, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"时长\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"需求完成率\", \"fontSize\": 15, \"fontColor\": \"#c6d3d9\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"4xgico362ww000\",\n \"sourceID\": 1032,\n \"isGroup\": false,\n \"attr\": { \"x\": 720, \"y\": 300, \"w\": 280, \"h\": 250, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"PieCircle\",\n \"chartConfig\": { \"key\": \"PieCircle\", \"chartKey\": \"VPieCircle\", \"conKey\": \"VPieCircle\", \"title\": \"Bug修复率\", \"category\": \"Pies\", \"categoryName\": \"饼图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/pie-circle-258fcce7.png\" },\n \"option\": { \"legend\": { \"show\": true, \"top\": \"15%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"title\": {\"text\": \"30.00%\", \"x\": \"center\", \"y\": \"center\", \"textStyle\": {\"color\": \"#FFF\",\"fontSize\": 20}}, \"type\": \"nomal\", \"tooltip\": { \"show\": false, \"trigger\": \"item\", \"formatter\": \"{d}%\" }, \"dataset\": 0.25, \"series\": [ { \"type\": \"pie\", \"radius\": [ \"63%\", \"70%\" ], \"label\": { \"show\": false }, \"center\": [ \"50%\", \"50%\" ], \"data\": [ { \"value\": [ 30 ], \"itemStyle\": { \"color\": \"#C29160\", \"shadowBlur\": 10, \"shadowColor\": \"#eed045\" } }, { \"value\": [ 70 ], \"itemStyle\": { \"color\": \"#00bcd44a\", \"shadowBlur\": 0, \"shadowColor\": \"#00bcd44a\" } } ]} ] }\n },\n {\n \"id\": \"4u5rgs0pf34000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 735, \"y\": 535, \"w\": 250, \"h\": 50, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"时长\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"Bug修复率\", \"fontSize\": 15, \"fontColor\": \"#c6d3d9\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"1cfwp95aiif400\",\n \"isGroup\": false,\n \"attr\": { \"x\": 1010, \"y\": 171, \"w\": 290, \"h\": 480, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"summary\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#00102800\", \"#00102800\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"6scfjzqsbzo000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 400, \"h\": 120, \"x\": 1010, \"y\": 175, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"标题\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"57r67ykkwxk000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 400, \"h\": 68, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"summary_top\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司级未完成数据概览\", \"fontSize\": 14, \"fontColor\": \"#b2d5e5\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"left\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 220, \"y\": 26, \"w\": 14, \"h\": 11, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_left.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 220, \"y\": 32, \"w\": 30, \"h\": 8, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_right.png\", \"fit\": \"fill\", \"borderRadius\": 0 }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1035, \"y\": 246, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"一级项目集个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1033,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"一级项目集数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"一级项目集数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"一级项目集数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1165, \"y\": 246, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"项目个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1034,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"需求数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"需求数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"需求数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1035, \"y\": 346, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"产品数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1035,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"产品数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1165, \"y\": 346, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"项目个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1036,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"项目数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"项目数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"项目数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1035, \"y\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"计划数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1037,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"计划数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"计划数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"计划数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1165, \"y\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"执行个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1038,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"执行数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"执行数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"执行数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1035, \"y\": 546, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"Bug数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1039,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"Bug数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"Bug数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"Bug数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"z3gs9qz8hq800\",\n \"isGroup\": true,\n \"attr\": { \"w\": 110, \"h\": 100, \"x\": 1165, \"y\": 546, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"任务个数\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 110, \"h\": 80, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/card.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3ef3nnqh7gu00\",\n \"sourceID\": 1040,\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 14, \"w\": 110, \"h\": 30, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"任务数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"100\", \"fontSize\": 18, \"fontColor\": \"#ffffff\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"52mwo993eaw000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 38, \"w\": 110, \"h\": 49, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"任务数\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"任务数\", \"fontSize\": 9, \"fontColor\": \"#9abdcd\", \"paddingX\": 0, \"paddingY\": 0, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 1, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"fc4u6zmi58w00\",\n \"isGroup\": false,\n \"attr\": { \"x\": 1260, \"y\": 186, \"w\": 20, \"h\": 20, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": 1 },\n \"styles\": { \"filterShow\": false, \"hueRotate\": 0, \"saturate\": 1, \"contrast\": 1, \"brightness\": 1, \"opacity\": 1, \"rotateZ\": 0, \"rotateX\": 0, \"rotateY\": 0, \"skewX\": 0, \"skewY\": 0, \"blendMode\": \"normal\", \"animations\": [] },\n \"status\": { \"lock\": false, \"hide\": false },\n \"request\": { \"requestDataType\": 0, \"requestHttpType\": \"get\", \"requestUrl\": \"\", \"requestInterval\": null, \"requestIntervalUnit\": \"second\", \"requestContentType\": 0, \"requestParamsBodyType\": \"none\", \"requestSQLContent\": { \"sql\": \"select * from where\" }, \"requestParams\": { \"Body\": { \"form-data\": {}, \"x-www-form-urlencoded\": {}, \"json\": \"\", \"xml\": \"\" }, \"Header\": {}, \"Params\": {} } },\n \"filter\": null,\n \"events\": { \"baseEvent\": { \"click\": null, \"dblclick\": null, \"mouseenter\": null, \"mouseleave\": null }, \"advancedEvents\": { \"vnodeMounted\": null, \"vnodeBeforeMount\": null } },\n \"key\": \"Hint\",\n \"chartConfig\": { \"key\": \"Hint\", \"chartKey\": \"VHint\", \"conKey\": \"VCHint\", \"title\": \"提示\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/hint-2cbf6381.png\" },\n \"option\": { \"text\": \"\", \"icon\": \"\", \"textSize\": 15, \"textColor\": \"#ffffff\", \"textWeight\": \"bold\", \"placement\": \"left-top\", \"distance\": 8, \"hint\": \"未完成的一级项目集个数=未关闭的一级项目集个数;\\n未完成的需求个数=未关闭的需求个数;\\n未完成的产品个数=未关闭的产品个数;\\n未完成的项目个数=未关闭的项目个数;\\n未完成的计划个数=未完成的计划个数;\\n未完成的执行个数=未关闭的执行个数;\\n未完成的任务个数=未完成的任务个数;\\n未完成的Bug个数=未关闭的Bug个数。\", \"width\": 0, \"height\": 0, \"paddingX\": 16, \"paddingY\": 8, \"borderWidth\": 1, \"borderStyle\": \"solid\", \"borderColor\": \"#1a77a5\", \"borderRadius\": 6, \"color\": \"#ffffff\", \"textAlign\": \"left\", \"fontWeight\": \"normal\", \"backgroundColor\": \"rgba(8, 40, 80, 0.9)\", \"fontSize\": 16 }\n },\n {\n \"id\": \"1cfwp95aiif400\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 665, \"w\": 1300, \"h\": 525, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"summary\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#00102800\", \"#00102800\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"6scfjzqsbzo000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 1300, \"h\": 120, \"x\": 0, \"y\": 665, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"标题\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"57r67ykkwxk000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 187, \"h\": 68, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"summary_top\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"项目集数据概览\", \"fontSize\": 14, \"fontColor\": \"#b2d5e5\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"left\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"2xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 165, \"y\": 26, \"w\": 14, \"h\": 11, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_left.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"3xjom2cw2b2000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 185, \"y\": 28, \"w\": 1090, \"h\": 10, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_right.png\", \"fit\": \"fill\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"1zhfrmecpnxc00\",\n \"sourceID\": 1041,\n \"isGroup\": false,\n \"attr\": { \"x\": 25, \"y\": 57, \"w\": 1250, \"h\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TableScrollBoard\",\n \"chartConfig\": { \"key\": \"TableScrollBoard\", \"chartKey\": \"VTableScrollBoard\", \"conKey\": \"VCTableScrollBoard\", \"title\": \"轮播列表\", \"category\": \"Tables\", \"categoryName\": \"表格\", \"package\": \"Tables\", \"chartFrame\": \"common\", \"image\": \"static/png/table_scrollboard-fb642e78.png\" },\n \"option\": { \"header\": [ \"列1\", \"列2\", \"列3\" ], \"dataset\": [ [ \"行1列1\", \"行1列2\", \"行1列3\" ], [ \"行2列1\", \"行2列2\", \"行2列3\" ], [ \"行3列1\", \"行3列2\", \"行3列3\" ], [ \"行4列1\", \"行4列2\", \"行4列3\" ], [ \"行5列1\", \"行5列2\", \"行5列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ] ], \"index\": false, \"columnWidth\": [], \"align\": [ \"center\", \"center\",\"center\",\"center\",\"center\",\"center\",\"center\",\"center\"], \"rowNum\": 8, \"waitTime\": 3, \"headerHeight\": 45, \"carousel\": \"single\", \"headerBGC\": \"#165896FF\", \"oddRowBGC\": \"#042b4dFF\", \"evenRowBGC\": \"#0a1c37FF\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"3hqq7oh18ra000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 500, \"x\": 0, \"y\": 1200, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"项目集需求完成率与Bug\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"1dlpgwe8wwe800\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"项目集需求完成率与Bug\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"obhxxjnin3400\",\n \"sourceID\": 1042,\n \"isGroup\": false,\n \"attr\": { \"x\": 30, \"y\": 60, \"w\": 380, \"h\": 416, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"BarCrossrange\",\n \"chartConfig\": { \"key\": \"BarCrossrange\", \"chartKey\": \"VBarCrossrange\", \"conKey\": \"VCBarCrossrange\", \"title\": \"横向柱状图\", \"category\": \"Bars\", \"categoryName\": \"柱状图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/bar_y-05067169.png\" },\n \"option\": {\n \"legend\": {\n \"show\": true,\n \"top\": \"5%\",\n \"textStyle\": { \"color\": \"#B9B8CE\" }\n },\n \"xAxis\": {\n \"show\": true, \"name\": \"\",\n \"nameGap\": 15,\n \"nameTextStyle\": {\n \"color\": \"#B9B8CE\",\n \"fontSize\": 12\n },\n \"inverse\": false,\n \"axisLabel\": {\n \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0, \"formatter\": \"{value}%\"\n },\n \"position\": \"bottom\",\n \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true },\n \"axisTick\": { \"show\": true, \"length\": 5 },\n \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }\n },\n \"yAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": true, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0}, \"position\": \"left\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"category\" },\n \"grid\": { \"show\": false, \"left\": \"18%\", \"top\": \"60\", \"right\": \"12%\", \"bottom\": \"60\" },\n \"tooltip\": { \"show\": true, \"trigger\": \"axis\", \"axisPointer\": { \"show\": true, \"type\": \"shadow\" } },\n \"dataset\": { \"dimensions\": [ \"product\", \"data1\", \"data2\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120, \"data2\": 130 }, { \"product\": \"Tue\", \"data1\": 200, \"data2\": 130 }, { \"product\": \"Wed\", \"data1\": 150, \"data2\": 312 }, { \"product\": \"Thu\", \"data1\": 80, \"data2\": 268 }, { \"product\": \"Fri\", \"data1\": 70, \"data2\": 155 }, { \"product\": \"Sat\", \"data1\": 110, \"data2\": 117 }, { \"product\": \"Sun\", \"data1\": 130, \"data2\": 160 } ] },\n \"series\": [ { \"type\": \"bar\", \"barMaxWidth\": 28, \"barWidth\": null, \"label\": { \"show\": true, \"formatter\": \"{@[1]}%\", \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } }, { \"type\": \"bar\", \"barWidth\": null, \"label\": { \"show\": true, \"formatter\": \"{@[2]}%\", \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } } ],\n \"backgroundColor\": \"rgba(0,0,0,0)\",\n \"dataZoom\": [\n {\n \"type\": \"inside\",\n \"startValue\": 0,\n \"endValue\": 5,\n \"minValueSpan\": 5,\n \"maxValueSpan\": 5,\n \"yAxisIndex\": [0],\n \"zoomOnMouseWheel\": false,\n \"moveOnMouseWheel\": true,\n \"moveOnMouseMove\": true\n },\n {\n \"type\": \"slider\",\n \"realtime\": true,\n \"startValue\": 0,\n \"endValue\": 5,\n \"zoomLock\": true,\n \"brushSelect\": false,\n \"width\": 5,\n \"height\": \"80%\",\n \"handleIcon\": \"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z\",\n \"handleSize\": \"100%\",\n \"yAxisIndex\": [0],\n \"fillerColor\": \"#33aaff\",\n \"borderColor\": \"#33aaff00\",\n \"borderCap\": \"round\",\n \"backgroundColor\": \"#cfcfcf00\",\n \"handleSize\":0,\n \"showDataShadow\": false,\n \"showDetail\": false,\n \"top\": \"10%\",\n \"right\": 0\n }\n ]\n }\n },\n {\n \"id\": \"2u3zlsz5kk4000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 22, \"w\": 378, \"h\": 50, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"项目集需求完成率与Bug\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"项目集需求完成率与Bug修复率\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"1xih6tzmmssg00\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 500, \"x\": 437, \"y\": 1200, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"公司一级项目集状态分布\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2bnelf1diy8000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"公司一级项目集状态分布\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"1351cy224nb400\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 25, \"w\": 426, \"h\": 45, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"公司一级项目集状态分布\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司一级项目集状态分布\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"4ocyn7hip9k000\",\n \"sourceID\": 1043,\n \"isGroup\": false,\n \"attr\": { \"x\": 10, \"y\": 50, \"w\": 400, \"h\": 410, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"PieCommon\",\n \"chartConfig\": { \"key\": \"PieCommon\", \"chartKey\": \"VPieCommon\", \"conKey\": \"VCPieCommon\", \"title\": \"饼图\", \"category\": \"Pies\", \"categoryName\": \"饼图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/pie-9620f191.png\" },\n \"option\": { \"legend\": { \"show\": true, \"top\": \"5%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"type\": \"nomal\", \"tooltip\": { \"show\": true, \"trigger\": \"item\" }, \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120 }, { \"product\": \"Tue\", \"data1\": 200 }, { \"product\": \"Wed\", \"data1\": 150 }, { \"product\": \"Thu\", \"data1\": 80 }, { \"product\": \"Fri\", \"data1\": 70 }, { \"product\": \"Sat\", \"data1\": 110 }, { \"product\": \"Sun\", \"data1\": 130 } ] }, \"series\": [ { \"type\": \"pie\", \"radius\": [ \"30%\", \"30%\" ], \"label\": { \"show\": true, \"width\": 120, \"formatter\": \"{b}\\n{d}%\", \"lineHeight\": 20, \"color\": \"#ffffff\", \"position\": \"outside\", \"position\": \"outside\", \"alignTo\": \"edge\", \"margin\": 5 }, \"center\": [ \"50%\", \"55%\" ], \"roseType\": false , \"emphasis\": { \"itemStyle\": { \"shadowBlur\": 20, \"shadowOffsetX\": 2, \"shadowColor\": \"rgba(0, 0, 0, 0)\" } }} ] }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"2js0ncv6kpc000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 865, \"x\": 874, \"y\": 1200, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"公司项目状态分布\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"4d4pumofn5g000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"公司项目状态分布\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"50qj95gt8fs000\",\n \"sourceID\": 1044,\n \"isGroup\": false,\n \"attr\": { \"x\": 10, \"y\": 60, \"w\": 400, \"h\": 400, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"PieCommon\",\n \"chartConfig\": { \"key\": \"PieCommon\", \"chartKey\": \"VPieCommon\", \"conKey\": \"VCPieCommon\", \"title\": \"饼图\", \"category\": \"Pies\", \"categoryName\": \"饼图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/pie-9620f191.png\" },\n \"option\": { \"legend\": { \"show\": true, \"top\": \"5%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"type\": \"nomal\", \"tooltip\": { \"show\": true, \"trigger\": \"item\" }, \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120 }, { \"product\": \"Tue\", \"data1\": 200 }, { \"product\": \"Wed\", \"data1\": 150 }, { \"product\": \"Thu\", \"data1\": 80 }, { \"product\": \"Fri\", \"data1\": 70 }, { \"product\": \"Sat\", \"data1\": 110 }, { \"product\": \"Sun\", \"data1\": 130 } ] }, \"series\": [ { \"type\": \"pie\", \"radius\": [ \"30%\", \"30%\" ], \"label\": { \"show\": true, \"width\": 120, \"formatter\": \"{b}\\n{d}%\", \"lineHeight\": 20, \"color\": \"#ffffff\", \"position\": \"outside\", \"position\": \"outside\", \"alignTo\": \"edge\", \"margin\": 5 }, \"center\": [ \"50%\", \"55%\" ], \"roseType\": false , \"emphasis\": { \"itemStyle\": { \"shadowBlur\": 20, \"shadowOffsetX\": 2, \"shadowColor\": \"rgba(0, 0, 0, 0)\" } }} ] }\n },\n {\"id\": \"36zg35ree9q000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 400, \"h\": 85, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"公司项目状态分布\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司项目状态分布\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"1cfwp95aiif400\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 1710, \"w\": 1300, \"h\": 525, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"summary\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#00102800\", \"#00102800\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"vwvqtuc6lyo00\",\n \"isGroup\": true,\n \"attr\": { \"w\": 1300, \"h\": 120, \"x\": 0, \"y\": 1710, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"标题\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"5l0cps9x0z0000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 187, \"h\": 68, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"summary_top\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"产品数据概览\", \"fontSize\": 14, \"fontColor\": \"#b2d5e5\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"left\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"3ajkrqyykr8000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 150, \"y\": 26, \"w\": 14, \"h\": 11, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_left.png\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"2z65lmxl328000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 170, \"y\": 28, \"w\": 1105, \"h\": 10, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Image\",\n \"chartConfig\": { \"key\": \"Image\", \"chartKey\": \"VImage\", \"conKey\": \"VCImage\", \"title\": \"header\", \"category\": \"Mores\", \"categoryName\": \"更多\", \"package\": \"Informations\", \"chartFrame\": \"common\", \"image\": \"static/png/photo-637bc05d.png\" },\n \"option\": { \"dataset\": \"static/images/line_right.png\", \"fit\": \"fill\", \"borderRadius\": 0 }\n },\n {\n \"id\": \"1zhfrmecpnxc00\",\n \"sourceID\": 1045,\n \"isGroup\": false,\n \"attr\": { \"x\": 25, \"y\": 57, \"w\": 1250, \"h\": 446, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TableScrollBoard\",\n \"chartConfig\": { \"key\": \"TableScrollBoard\", \"chartKey\": \"VTableScrollBoard\", \"conKey\": \"VCTableScrollBoard\", \"title\": \"轮播列表\", \"category\": \"Tables\", \"categoryName\": \"表格\", \"package\": \"Tables\", \"chartFrame\": \"common\", \"image\": \"static/png/table_scrollboard-fb642e78.png\" },\n \"option\": { \"header\": [ \"列1\", \"列2\", \"列3\" ], \"dataset\": [ [ \"行1列1\", \"行1列2\", \"行1列3\" ], [ \"行2列1\", \"行2列2\", \"行2列3\" ], [ \"行3列1\", \"行3列2\", \"行3列3\" ], [ \"行4列1\", \"行4列2\", \"行4列3\" ], [ \"行5列1\", \"行5列2\", \"行5列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ], [ \"行6列1\", \"行6列2\", \"行6列3\" ] ], \"index\": false, \"columnWidth\": [], \"align\": [ \"center\", \"center\",\"center\",\"center\",\"center\",\"center\",\"center\",\"center\"], \"rowNum\": 8, \"waitTime\": 3, \"headerHeight\": 45, \"carousel\": \"single\", \"headerBGC\": \"#165896FF\", \"oddRowBGC\": \"#042b4dFF\", \"evenRowBGC\": \"#0a1c37FF\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"sl2d95i1hz400\",\n \"isGroup\": true,\n \"attr\": { \"w\": 640, \"h\": 500, \"x\": 0, \"y\": 2250, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"产品需求完成率\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"57zre1am96c000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 640, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"产品需求完成率\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"42ae8w3dgeg000\",\n \"sourceID\": 1046,\n \"isGroup\": false,\n \"attr\": { \"x\": 30, \"y\": 60, \"w\": 530, \"h\": 416, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"BarCrossrange\",\n \"chartConfig\": { \"key\": \"BarCrossrange\", \"chartKey\": \"VBarCrossrange\", \"conKey\": \"VCBarCrossrange\", \"title\": \"横向柱状图\", \"category\": \"Bars\", \"categoryName\": \"柱状图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/bar_y-05067169.png\" },\n \"option\": {\n \"legend\": {\n \"show\": false,\n \"top\": \"5%\",\n \"textStyle\": { \"color\": \"#B9B8CE\" }\n },\n \"xAxis\": {\n \"show\": true, \"name\": \"\",\n \"nameGap\": 15,\n \"nameTextStyle\": {\n \"color\": \"#B9B8CE\",\n \"fontSize\": 12\n },\n \"inverse\": false,\n \"axisLabel\": {\n \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0, \"formatter\": \"{value}%\"\n },\n \"position\": \"bottom\",\n \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true },\n \"axisTick\": { \"show\": true, \"length\": 5 },\n \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }\n },\n \"yAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": true, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0}, \"position\": \"left\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"category\" },\n \"grid\": { \"show\": false, \"left\": \"15%\", \"top\": \"60\", \"right\": \"12%\", \"bottom\": \"60\" },\n \"tooltip\": { \"show\": true, \"trigger\": \"item\", \"axisPointer\": { \"show\": true, \"type\": \"shadow\" } },\n \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120, \"data2\": 130 }, { \"product\": \"Tue\", \"data1\": 200, \"data2\": 130 }, { \"product\": \"Wed\", \"data1\": 150, \"data2\": 312 }, { \"product\": \"Thu\", \"data1\": 80, \"data2\": 268 }, { \"product\": \"Fri\", \"data1\": 70, \"data2\": 155 }, { \"product\": \"Sat\", \"data1\": 110, \"data2\": 117 }, { \"product\": \"Sun\", \"data1\": 130, \"data2\": 160 } ] },\n \"series\": [ { \"type\": \"bar\", \"barMaxWidth\": 28, \"barWidth\": null, \"label\": { \"show\": true, \"formatter\": \"{@[1]}%\", \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } } ],\n \"backgroundColor\": \"rgba(0,0,0,0)\",\n \"dataZoom\": [\n {\n \"type\": \"inside\",\n \"startValue\": 0,\n \"endValue\": 6,\n \"minValueSpan\": 10,\n \"maxValueSpan\": 10,\n \"yAxisIndex\": [0],\n \"zoomOnMouseWheel\": false,\n \"moveOnMouseWheel\": true,\n \"moveOnMouseMove\": true\n },\n {\n \"type\": \"slider\",\n \"realtime\": true,\n \"startValue\": 0,\n \"endValue\": 6,\n \"zoomLock\": true,\n \"brushSelect\": false,\n \"width\": 5,\n \"height\": \"80%\",\n \"handleIcon\": \"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z\",\n \"handleSize\": \"100%\",\n \"yAxisIndex\": [0],\n \"fillerColor\": \"#33aaff\",\n \"borderColor\": \"#33aaff00\",\n \"borderCap\": \"round\",\n \"backgroundColor\": \"#cfcfcf00\",\n \"handleSize\":0,\n \"showDataShadow\": false,\n \"showDetail\": false,\n \"top\": \"10%\",\n \"right\": 0\n }\n ]\n\n }\n },\n {\n \"id\": \"579jc04cfps000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 90, \"y\": 0, \"w\": 500, \"h\": 100, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品需求完成率\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"产品需求完成率\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"nr1mfqoyuwg00\",\n \"isGroup\": true,\n \"attr\": { \"w\": 645, \"h\": 500, \"x\": 655, \"y\": 2250, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"项目集需求完成率与Bug\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"2ta7xcd152i000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 645, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"产品Bug修复率\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"4o7ep6z91ii000\",\n \"sourceID\": 1047,\n \"isGroup\": false,\n \"attr\": { \"x\": 30, \"y\": 60, \"w\": 540, \"h\": 416, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"BarCrossrange\",\n \"chartConfig\": { \"key\": \"BarCrossrange\", \"chartKey\": \"VBarCrossrange\", \"conKey\": \"VCBarCrossrange\", \"title\": \"横向柱状图\", \"category\": \"Bars\", \"categoryName\": \"柱状图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/bar_y-05067169.png\" },\n \"option\": {\n \"legend\": {\n \"show\": false,\n \"top\": \"5%\",\n \"textStyle\": { \"color\": \"#B9B8CE\" }\n },\n \"xAxis\": {\n \"show\": true, \"name\": \"\",\n \"nameGap\": 15,\n \"nameTextStyle\": {\n \"color\": \"#B9B8CE\",\n \"fontSize\": 12\n },\n \"inverse\": false,\n \"axisLabel\": {\n \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0, \"formatter\": \"{value}%\"\n },\n \"position\": \"bottom\",\n \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true },\n \"axisTick\": { \"show\": true, \"length\": 5 },\n \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }\n },\n \"yAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": true, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0}, \"position\": \"left\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"category\" },\n \"grid\": { \"show\": false, \"left\": \"15%\", \"top\": \"60\", \"right\": \"12%\", \"bottom\": \"60\" },\n \"tooltip\": { \"show\": true, \"trigger\": \"axis\", \"axisPointer\": { \"show\": true, \"type\": \"shadow\" } },\n \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120, \"data2\": 130 }, { \"product\": \"Tue\", \"data1\": 200, \"data2\": 130 }, { \"product\": \"Wed\", \"data1\": 150, \"data2\": 312 }, { \"product\": \"Thu\", \"data1\": 80, \"data2\": 268 }, { \"product\": \"Fri\", \"data1\": 70, \"data2\": 155 }, { \"product\": \"Sat\", \"data1\": 110, \"data2\": 117 }, { \"product\": \"Sun\", \"data1\": 130, \"data2\": 160 } ] },\n \"series\": [ { \"type\": \"bar\", \"barMaxWidth\": 28, \"barWidth\": null, \"label\": { \"show\": true, \"formatter\": \"{@[1]}%\", \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } } ],\n \"backgroundColor\": \"rgba(0,0,0,0)\",\n \"dataZoom\": [\n {\n \"type\": \"inside\",\n \"startValue\": 0,\n \"endValue\": 6,\n \"minValueSpan\": 10,\n \"maxValueSpan\": 10,\n \"yAxisIndex\": [0],\n \"zoomOnMouseWheel\": false,\n \"moveOnMouseWheel\": true,\n \"moveOnMouseMove\": true\n },\n {\n \"type\": \"slider\",\n \"realtime\": true,\n \"startValue\": 0,\n \"endValue\": 6,\n \"zoomLock\": true,\n \"brushSelect\": false,\n \"width\": 5,\n \"height\": \"80%\",\n \"handleIcon\": \"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z\",\n \"handleSize\": \"100%\",\n \"yAxisIndex\": [0],\n \"fillerColor\": \"#33aaff\",\n \"borderColor\": \"#33aaff00\",\n \"borderCap\": \"round\",\n \"backgroundColor\": \"#cfcfcf00\",\n \"handleSize\":0,\n \"showDataShadow\": false,\n \"showDetail\": false,\n \"top\": \"10%\",\n \"right\": 0\n }\n ]\n\n }\n },\n {\n \"id\": \"4vcyxy305n6000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 90, \"y\": 0, \"w\": 500, \"h\": 100, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"产品Bug修复率\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"产品Bug修复率\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"45ao1xz9kzu000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 500, \"x\": 0, \"y\": 2770, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"部门人员分布图\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"1ncdmrlvzjy800\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"部门人员分布图\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"v3d9spa59dc00\",\n \"sourceID\": 1049,\n \"isGroup\": false,\n \"attr\": { \"x\": 20, \"y\": 50, \"w\": 380, \"h\": 426, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"BarCrossrange\",\n \"chartConfig\": { \"key\": \"BarCrossrange\", \"chartKey\": \"VBarCrossrange\", \"conKey\": \"VCBarCrossrange\", \"title\": \"横向柱状图\", \"category\": \"Bars\", \"categoryName\": \"柱状图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/bar_y-05067169.png\" },\n \"option\": {\n \"legend\": {\n \"show\": false,\n \"top\": \"5%\",\n \"textStyle\": { \"color\": \"#B9B8CE\" }\n },\n \"xAxis\": {\n \"show\": true, \"name\": \"\",\n \"nameGap\": 15,\n \"nameTextStyle\": {\n \"color\": \"#B9B8CE\",\n \"fontSize\": 12\n },\n \"inverse\": false,\n \"axisLabel\": {\n \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0, \"formatter\": \"{value}\"\n },\n \"position\": \"bottom\",\n \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true },\n \"axisTick\": { \"show\": true, \"length\": 5 },\n \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }\n },\n \"yAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": true, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0}, \"position\": \"left\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"category\" },\n \"grid\": { \"show\": false, \"left\": \"15%\", \"top\": \"60\", \"right\": \"12%\", \"bottom\": \"60\" },\n \"tooltip\": { \"show\": true, \"trigger\": \"axis\", \"axisPointer\": { \"show\": true, \"type\": \"shadow\" } },\n \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120, \"data2\": 130 }, { \"product\": \"Tue\", \"data1\": 200, \"data2\": 130 }, { \"product\": \"Wed\", \"data1\": 150, \"data2\": 312 }, { \"product\": \"Thu\", \"data1\": 80, \"data2\": 268 }, { \"product\": \"Fri\", \"data1\": 70, \"data2\": 155 }, { \"product\": \"Sat\", \"data1\": 110, \"data2\": 117 }, { \"product\": \"Sun\", \"data1\": 130, \"data2\": 160 } ] },\n \"series\": [ { \"type\": \"bar\", \"barMaxWidth\": 28, \"barWidth\": null, \"label\": { \"show\": true, \"formatter\": \"{@[1]}\", \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } } ],\n \"backgroundColor\": \"rgba(0,0,0,0)\",\n \"dataZoom\": [\n {\n \"type\": \"inside\",\n \"startValue\": 0,\n \"endValue\": 5,\n \"minValueSpan\": 10,\n \"maxValueSpan\": 10,\n \"yAxisIndex\": [0],\n \"zoomOnMouseWheel\": false,\n \"moveOnMouseWheel\": true,\n \"moveOnMouseMove\": true\n },\n {\n \"type\": \"slider\",\n \"realtime\": true,\n \"startValue\": 0,\n \"endValue\": 6,\n \"zoomLock\": true,\n \"brushSelect\": false,\n \"width\": 5,\n \"height\": \"80%\",\n \"handleIcon\": \"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z\",\n \"handleSize\": \"100%\",\n \"yAxisIndex\": [0],\n \"fillerColor\": \"#33aaff\",\n \"borderColor\": \"#33aaff00\",\n \"borderCap\": \"round\",\n \"backgroundColor\": \"#cfcfcf00\",\n \"handleSize\":0,\n \"showDataShadow\": false,\n \"showDetail\": false,\n \"top\": \"10%\",\n \"right\": 0\n }\n ]\n\n }\n },\n {\n \"id\": \"wam6ydb8zqo00\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 378, \"h\": 100, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"部门人员分布图\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"部门人员分布图\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"2dg0t90atgg000\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 500, \"x\": 437, \"y\": 2770, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"公司角色分布图\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"53ynqk2kzh8000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"公司角色分布图\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"1knkjcb65rwg00\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 25, \"w\": 426, \"h\": 45, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"公司角色分布图\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"公司角色分布图\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n },\n {\n \"id\": \"mblj8ow100000\",\n \"sourceID\": 1050,\n \"isGroup\": false,\n \"attr\": { \"x\": 20, \"y\": 60, \"w\": 400, \"h\": 420, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"PieCommon\",\n \"chartConfig\": { \"key\": \"PieCommon\", \"chartKey\": \"VPieCommon\", \"conKey\": \"VCPieCommon\", \"title\": \"需求完成率\", \"category\": \"Pies\", \"categoryName\": \"饼图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/pie-9620f191.png\" },\n \"option\": { \"legend\": { \"show\": true, \"top\": \"0%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"type\": \"nomal\", \"tooltip\": { \"show\": true, \"trigger\": \"item\" }, \"dataset\": { \"dimensions\": [ \"product\", \"data1\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120 }, { \"product\": \"Tue\", \"data1\": 200 }, { \"product\": \"Wed\", \"data1\": 150 }, { \"product\": \"Thu\", \"data1\": 80 }, { \"product\": \"Fri\", \"data1\": 70 }, { \"product\": \"Sat\", \"data1\": 110 }, { \"product\": \"Sun\", \"data1\": 130 } ] }, \"series\": [ { \"type\": \"pie\", \"radius\": [ \"40%\", \"40%\" ], \"label\": { \"show\": true, \"width\": 120, \"formatter\": \"{b}\\n{d}%\", \"lineHeight\": 20, \"color\": \"#ffffff\", \"position\": \"outside\", \"alignTo\": \"edge\", \"margin\": 5 }, \"center\": [ \"50%\", \"65%\" ], \"roseType\": false , \"emphasis\": { \"itemStyle\": { \"shadowBlur\": 20, \"shadowOffsetX\": 2, \"shadowColor\": \"rgba(0, 0, 0, 0)\" } }} ] }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n },\n {\n \"id\": \"1j55da3c41vk00\",\n \"isGroup\": true,\n \"attr\": { \"w\": 426, \"h\": 500, \"x\": 874, \"y\": 2770, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"chartConfig\": { \"key\": \"group\", \"chartKey\": \"group\", \"conKey\": \"group\", \"category\": \"group\", \"categoryName\": \"group\", \"package\": \"group\", \"chartFrame\": \"common\", \"title\": \"人员工龄分布图\", \"image\": \"\" },\n \"groupList\": [\n {\n \"id\": \"1xqnm37nva8w00\",\n \"isGroup\": false,\n \"attr\": { \"x\": 0, \"y\": 0, \"w\": 426, \"h\": 500, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"Border03\",\n \"chartConfig\": { \"key\": \"Border03\", \"chartKey\": \"VBorder03\", \"conKey\": \"VCBorder03\", \"title\": \"人员工龄分布图\", \"category\": \"Borders\", \"categoryName\": \"边框\", \"package\": \"Decorates\", \"image\": \"\" },\n \"option\": { \"colors\": [ \"#0a1c3700\", \"#042b4d00\" ], \"backgroundColor\": \"#0a1c38\" }\n },\n {\n \"id\": \"5ll028fasrw000\",\n \"sourceID\": 1051,\n \"isGroup\": false,\n \"attr\": { \"x\": 20, \"y\": 50, \"w\": 380, \"h\": 426, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"BarCrossrange\",\n \"chartConfig\": { \"key\": \"BarCrossrange\", \"chartKey\": \"VBarCrossrange\", \"conKey\": \"VCBarCrossrange\", \"title\": \"横向柱状图\", \"category\": \"Bars\", \"categoryName\": \"柱状图\", \"package\": \"Charts\", \"chartFrame\": \"echarts\", \"image\": \"static/png/bar_y-05067169.png\" },\n \"option\": { \"legend\": { \"show\": false, \"top\": \"5%\", \"textStyle\": { \"color\": \"#B9B8CE\" } }, \"xAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": false, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0 }, \"position\": \"bottom\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"value\" }, \"yAxis\": { \"show\": true, \"name\": \"\", \"nameGap\": 15, \"nameTextStyle\": { \"color\": \"#B9B8CE\", \"fontSize\": 12 }, \"inverse\": true, \"axisLabel\": { \"show\": true, \"fontSize\": 12, \"color\": \"#B9B8CE\", \"rotate\": 0 }, \"position\": \"left\", \"axisLine\": { \"show\": true, \"lineStyle\": { \"color\": \"#B9B8CE\", \"width\": 1 }, \"onZero\": true }, \"axisTick\": { \"show\": false, \"length\": 5 }, \"splitLine\": { \"show\": false, \"lineStyle\": { \"color\": \"#484753\", \"width\": 1, \"type\": \"solid\" } }, \"type\": \"category\" }, \"grid\": { \"show\": false, \"left\": \"20%\", \"top\": \"60\", \"right\": \"10%\", \"bottom\": \"60\" }, \"tooltip\": { \"show\": true, \"trigger\": \"axis\", \"axisPointer\": { \"show\": true, \"type\": \"shadow\" } }, \"dataset\": { \"dimensions\": [ \"product\", \"data1\", \"data2\" ], \"source\": [ { \"product\": \"Mon\", \"data1\": 120, \"data2\": 130 }, { \"product\": \"Tue\", \"data1\": 200, \"data2\": 130 }, { \"product\": \"Wed\", \"data1\": 150, \"data2\": 312 }, { \"product\": \"Thu\", \"data1\": 80, \"data2\": 268 }, { \"product\": \"Fri\", \"data1\": 70, \"data2\": 155 }, { \"product\": \"Sat\", \"data1\": 110, \"data2\": 117 }, { \"product\": \"Sun\", \"data1\": 130, \"data2\": 160 } ] }, \"series\": [ { \"type\": \"bar\", \"barMaxWidth\": 28, \"barWidth\": null, \"label\": { \"show\": true, \"position\": \"right\", \"color\": \"#fff\", \"fontSize\": 12 }, \"itemStyle\": { \"color\": null, \"borderRadius\": 0 } } ], \"backgroundColor\": \"rgba(0,0,0,0)\" }\n },\n {\n \"id\": \"4887ix47ule000\",\n \"isGroup\": false,\n \"attr\": { \"x\": 15, \"y\": 0, \"w\": 378, \"h\": 100, \"offsetX\": 0, \"offsetY\": 0, \"zIndex\": -1 },\n \"key\": \"TextCommon\",\n \"chartConfig\": { \"key\": \"TextCommon\", \"chartKey\": \"VTextCommon\", \"conKey\": \"VCTextCommon\", \"title\": \"人员工龄分布图\", \"category\": \"Texts\", \"categoryName\": \"文本\", \"package\": \"Informations\", \"image\": \"static/png/text_static-b2721032.png\" },\n \"option\": { \"link\": \"\", \"linkHead\": \"http://\", \"dataset\": \"人员工龄分布图\", \"fontSize\": 14, \"fontColor\": \"#ffffff\", \"paddingX\": 10, \"paddingY\": 10, \"textAlign\": \"center\", \"fontWeight\": \"bold\", \"borderWidth\": 0, \"borderColor\": \"#ffffff\", \"borderRadius\": 5, \"letterSpacing\": 5, \"writingMode\": \"horizontal-tb\", \"backgroundColor\": \"#00000000\" }\n }\n ],\n \"key\": \"group\",\n \"option\": {}\n }\n]\n','admin','2022-11-18 10:46:18','admin','2022-11-18 10:46:18','0'), diff --git a/framework/base/model.class.php b/framework/base/model.class.php index 3c734d0071..57e4210b72 100644 --- a/framework/base/model.class.php +++ b/framework/base/model.class.php @@ -308,7 +308,16 @@ class baseModel */ public function loadDAO() { - $this->dao = $this->app->loadClass('dao'); + global $config; + $driver = $config->db->driver; + + if(!class_exists($driver)) + { + $classFile = $this->app->coreLibRoot . 'dao' . DS . $driver . '.class.php'; + include($classFile); + } + + $this->dao = new $driver(); } /** diff --git a/framework/base/router.class.php b/framework/base/router.class.php index 467e085ff2..526c545790 100644 --- a/framework/base/router.class.php +++ b/framework/base/router.class.php @@ -759,7 +759,7 @@ class baseRouter */ public function getInstalledVersion() { - $version = $this->dbh->query("SELECT value FROM " . TABLE_CONFIG . " WHERE `owner` = 'system' AND `key` = 'version' AND `module` = 'common' AND `section` = 'global' LIMIT 1")->fetch(); + $version = $this->dbh->query("SELECT `value` FROM " . TABLE_CONFIG . " WHERE `owner` = 'system' AND `key` = 'version' AND `module` = 'common' AND `section` = 'global' LIMIT 1")->fetch(); $version = $version ? $version->value : '0.3.beta'; // No version, set as 0.3.beta. if($version == '3.0.stable') $version = '3.0'; // convert 3.0.stable to 3.0. return $version; diff --git a/framework/router.class.php b/framework/router.class.php index 9be28106e7..cc41e45be3 100755 --- a/framework/router.class.php +++ b/framework/router.class.php @@ -78,7 +78,7 @@ class router extends baseRouter { if($this->dbh) { - $langs = $this->dbh->query('SELECT value FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND `module`='common' AND `section`='global' AND `key`='langs'")->fetch(); + $langs = $this->dbh->query('SELECT `value` FROM ' . TABLE_CONFIG . " WHERE `owner`='system' AND `module`='common' AND `section`='global' AND `key`='langs'")->fetch(); $langs = empty($langs) ? array() : json_decode($langs->value, true); foreach($langs as $langKey => $langData) $this->config->langs[$langKey] = $langData['name']; } @@ -171,7 +171,7 @@ class router extends baseRouter try { - $commonSettings = $this->dbh->query('SELECT section, `key`, value FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND (`module`='custom' or `module`='common') and `key` in ('sprintConcept', 'hourPoint', 'URSR', 'mode', 'URAndSR', 'scoreStatus', 'disabledFeatures', 'closedFeatures')")->fetchAll(); + $commonSettings = $this->dbh->query('SELECT `section`, `key`, `value` FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND (`module`='custom' or `module`='common') and `key` in ('sprintConcept', 'hourPoint', 'URSR', 'mode', 'URAndSR', 'scoreStatus', 'disabledFeatures', 'closedFeatures')")->fetchAll(); } catch (PDOException $exception) { @@ -239,7 +239,7 @@ class router extends baseRouter { $sql = new sql(); $account = $sql->quote($account); - $userSetting = $this->dbh->query('SELECT `key`, value FROM' . TABLE_CONFIG . "WHERE `owner`= $account AND `module`='common' and `key` in ('programLink', 'productLink', 'projectLink', 'executionLink', 'URSR')")->fetchAll(); + $userSetting = $this->dbh->query('SELECT `key`, `value` FROM ' . TABLE_CONFIG . "WHERE `owner`= $account AND `module`='common' and `key` in ('programLink', 'productLink', 'projectLink', 'executionLink', 'URSR')")->fetchAll(); } foreach($userSetting as $setting) @@ -255,7 +255,7 @@ class router extends baseRouter $lang->SRCommon = ''; if($this->dbh and !empty($this->config->db->name)) { - $productProject = $this->dbh->query('SELECT value FROM' . TABLE_CONFIG . "WHERE `owner`='system' AND `module`='custom' AND `key`='productProject'")->fetch(); + $productProject = $this->dbh->query('SELECT `value` FROM ' . TABLE_CONFIG . "WHERE `owner`='system' AND `module`='custom' AND `key`='productProject'")->fetch(); if($productProject) { $productProject = $productProject->value; @@ -267,8 +267,8 @@ class router extends baseRouter { /* Get story concept in project and product. */ $clientLang = $this->clientLang == 'zh-tw' ? 'zh-cn' : $this->clientLang; - $URSRList = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'URSRList' and `lang` = \"{$clientLang}\"")->fetchAll(); - if(empty($URSRList)) $URSRList = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and section = 'URSRList' and `key` = \"{$config->URSR}\"")->fetchAll(); + $URSRList = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE `module` = 'custom' and `section` = 'URSRList' and `lang` = '{$clientLang}'")->fetchAll(); + if(empty($URSRList)) $URSRList = $this->dbh->query('SELECT `key`, `value` FROM' . TABLE_LANG . "WHERE module = 'custom' and `section` = 'URSRList' and `key` = '{$config->URSR}'")->fetchAll(); /* Get UR pairs and SR pairs. */ $URPairs = array(); diff --git a/lib/dao/dao.class.php b/lib/dao/dao.class.php index f4de1d3f1b..91fada75c8 100644 --- a/lib/dao/dao.class.php +++ b/lib/dao/dao.class.php @@ -313,7 +313,7 @@ class sql extends baseSQL public function groupBy($groupBy) { if($this->inCondition and !$this->conditionIsTrue) return $this; - if(!preg_match('/^[a-zA-Z0-9_`\.,\s]+$/', $groupBy)) + if(!preg_match('/^[a-zA-Z0-9_`\.,\s\"]+$/', $groupBy)) { $groupBy = htmlspecialchars($groupBy); die("Group is bad query, The group is $groupBy"); diff --git a/lib/dao/dm.class.php b/lib/dao/dm.class.php index 2b7f618090..43a991b677 100644 --- a/lib/dao/dm.class.php +++ b/lib/dao/dm.class.php @@ -67,21 +67,33 @@ class dm extends dao } else { - $fieldList[$key] = $this->formatField($field, ''); + $fieldList[$key] = $this->formatField($field); } } return parent::select(implode(',', $fieldList)); } - private function formatField($originField, $alias) + /** + * Format field: date => "date", t1.date => t1."date" + * + * @param string $originField + * @param string $alias + * @access private + * @return tring + */ + private function formatField($originField, $alias = '') { /* Format originField. */ $replace = array( 'GROUP_CONCAT' => 'WM_CONCAT', ); - if(strcasecmp($originField, 'distinct') !== 0) + if(stripos($originField, 'if(') !== false) + { + $originField = $this->formatIfFunction($originField); + } + elseif(strcasecmp($originField, 'distinct') !== 0) { $tableField = explode('.', $originField); if(count($tableField) == 2 and ctype_alnum($tableField[1]) and $tableField[1] != '*') @@ -101,6 +113,29 @@ class dm extends dao return $originField . ' ' . $alias; } + /** + * Format if function. + * + * @param string $field + * @access private + * @return string + */ + private function formatIfFunction($field) + { + preg_match('/if\(.+\)+/i', $field, $matches); + $if = $matches[0]; + if(substr_count($if, '(') == 1) + { + $pos = strpos($if, ')'); + $if = substr($if, 0, $pos+1); + } + $parts = explode(',', substr($if, 3, strlen($if)-4)); // remove 'if(' and ')' + $case = 'CASE WHEN ' . implode(',', array_slice($parts, 0, count($parts)-2)) . ' THEN ' . $parts[count($parts)-2] . ' ELSE ' . $parts[count($parts)-1] . ' END'; + $field = str_ireplace($if, $case, $field); + + return $field; + } + /** * 创建WHERE部分。 * Create the where part. @@ -154,14 +189,51 @@ class dm extends dao if($pos) { $originField = substr($condition, 0, $pos); - return $this->formatField($originField, '') . substr($condition, $pos); + return $this->formatField($originField) . substr($condition, $pos); } else { - return $this->formatField($condition, ''); + return $this->formatField($condition); } } + /** + * 创建GROUP BY部分。 + * Create the groupby part. + * + * @param string $groupBy + * @access public + * @return static|sql the sql object. + */ + public function groupBy($groupBy) + { + $groups = preg_split("/,(?![^(]+\))/", $groupBy); + foreach($groups as $key => $group) + { + $groups[$key] = $this->formatField($group); + } + + $groupBy = implode(',', $groups); + return parent::groupBy($groupBy); + } + + /** + * 创建ON部分。 + * Create the on part. + * + * @param string $condition + * @access public + * @return static|sql the sql object. + */ + public function on($condition) + { + $fieldList = explode('=', $condition); + foreach($fieldList as $key => $field) $fieldList[$key] = $this->formatField(trim($field)); + $condition = implode(' = ', $fieldList); + + return parent::on($condition); + } + public function getPKColumns() { $sql = "SELECT A.OWNER, A.TABLE_NAME, WM_CONCAT(B.COLUMN_NAME) PK_COLUMNS FROM ALL_CONSTRAINTS A, ALL_CONS_COLUMNS B where A.CONSTRAINT_type = 'P' AND A.OWNER = '{$this->config->db->user}' AND A.TABLE_NAME = '{$this->table}' AND B.OWNER = A.OWNER AND A.TABLE_NAME = B.TABLE_NAME GROUP BY A.OWNER, A.TABLE_NAME;"; From 7f9d638d2867e9da6eb2b82de051d47bff482ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E9=87=91=E5=8B=87?= Date: Wed, 5 Apr 2023 14:18:24 +0000 Subject: [PATCH 6/6] * Fix sql for dmdb. --- lib/dbh/dbh.class.php | 3 ++- module/action/model.php | 17 ++++++++++------- module/admin/model.php | 2 +- module/block/control.php | 27 ++++++++++++++++----------- module/bug/control.php | 2 +- module/common/model.php | 4 ++-- module/cron/model.php | 2 +- module/doc/model.php | 6 +++--- module/execution/model.php | 8 ++++---- module/holiday/model.php | 2 +- module/install/model.php | 2 +- module/product/control.php | 2 +- module/product/model.php | 6 +++--- module/productplan/model.php | 2 +- module/program/model.php | 7 ++++--- module/project/model.php | 10 +++++----- module/search/model.php | 2 +- module/testcase/control.php | 2 +- module/testtask/model.php | 19 +++++++++++++++++-- module/user/model.php | 2 +- 20 files changed, 76 insertions(+), 51 deletions(-) diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index 4449597503..28e91aca97 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -45,7 +45,8 @@ class dbh */ public function __construct($config, $setSchema = true) { - $dsn = "{$config->driver}:host={$config->host}:{$config->port};dbname={$config->name}"; + $dsn = "{$config->driver}:host={$config->host}:{$config->port}"; + if($setSchema) $dsn .= ";dbname={$config->name}"; $pdo = new PDO($dsn, $config->user, $config->password); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); diff --git a/module/action/model.php b/module/action/model.php index 6a346ac118..030404f784 100755 --- a/module/action/model.php +++ b/module/action/model.php @@ -939,7 +939,7 @@ class actionModel extends model else { if($actionType == 'restoredsnapshot' && in_array($action->objectType, array('vm', 'zanode')) && $value == 'defaultSnap') $value = $this->lang->$objectType->snapshot->defaultSnapName; - + $desc = str_replace('$' . $key, $value, $desc); } } @@ -1033,7 +1033,7 @@ class actionModel extends model extract($beginAndEnd); /* Build has priv condition. */ - $condition = 1; + $condition = '1=1'; $executions = array(); if(!$this->app->user->admin) { @@ -1108,6 +1108,12 @@ class actionModel extends model $noMultipleExecutions = $this->dao->select('id')->from(TABLE_PROJECT)->where('multiple')->eq(0)->andWhere('type')->in('sprint,kanban')->fetchPairs('id', 'id'); + $condition = "(`objectType` IN ('doc', 'doclib') OR ($condition)) AND `objectType` NOT IN ('program', 'effort', 'execution')"; + if($noMultipleExecutions) $condition .= " OR (`objectID` NOT " . helper::dbIN($noMultipleExecutions) . " AND `objectType` = 'execution')"; + $condition .= " OR (`objectID` in ($programCondition) AND `objectType` = 'program')"; + $condition .= " OR (`objectID` in ($efforts) AND `objectType` = 'effort')"; + $condition = "($condition)"; + /* Get actions. */ $actions = $this->dao->select('*')->from(TABLE_ACTION) ->where('objectType')->notIN($this->config->action->ignoreObjectType4Dynamic) @@ -1120,7 +1126,7 @@ class actionModel extends model ->beginIF(is_numeric($productID))->andWhere('product')->like("%,$productID,%")->fi() ->andWhere() ->markLeft(1) - ->where(1) + ->where('1=1') ->beginIF(is_numeric($projectID))->andWhere('project')->eq($projectID)->fi() ->beginIF(!empty($executions))->andWhere('execution')->in(array_keys($executions))->fi() ->beginIF(is_numeric($executionID))->andWhere('execution')->eq($executionID)->fi() @@ -1131,13 +1137,10 @@ class actionModel extends model ->beginIF($productID == 'notzero')->andWhere('product')->gt(0)->andWhere('product')->notlike('%,0,%')->fi() ->beginIF($projectID == 'notzero')->andWhere('project')->gt(0)->fi() ->beginIF($executionID == 'notzero')->andWhere('execution')->gt(0)->fi() - ->beginIF($productID == 'all' or $projectID == 'all' or $executionID == 'all')->andWhere("IF((objectType!= 'doc' && objectType!= 'doclib'), ($condition), '1=1')")->fi() - ->beginIF($noMultipleExecutions)->andWhere("IF(`objectType` = 'execution', `objectID` NOT " . helper::dbIN($noMultipleExecutions) . ", '1=1')")->fi() + ->andWhere($condition) ->beginIF($actionCondition)->andWhere("($actionCondition)")->fi() /* Filter out client login/logout actions. */ ->andWhere('action')->notin('disconnectxuanxuan,reconnectxuanxuan,loginxuanxuan,logoutxuanxuan,editmr,removemr') - ->andWhere("IF((objectType = 'program'), (objectID in ($programCondition)), '1=1')") - ->andWhere("IF((objectType = 'effort'), (objectID in ($efforts)), '1=1')") ->orderBy($orderBy) ->page($pager) ->fetchAll(); diff --git a/module/admin/model.php b/module/admin/model.php index faa37c44d4..d7d1caae04 100755 --- a/module/admin/model.php +++ b/module/admin/model.php @@ -646,7 +646,7 @@ class adminModel extends model public function genDateUsed() { $firstUseDate = $this->dao->select('date')->from(TABLE_ACTION) - ->where('date')->gt('0000-00-00') + ->where('date')->gt('1970-01-01') ->andWhere('actor')->eq($this->app->user->account) ->orderBy('date_asc') ->limit('1') diff --git a/module/block/control.php b/module/block/control.php index 3a56edbc6f..229c6fefc8 100755 --- a/module/block/control.php +++ b/module/block/control.php @@ -748,7 +748,7 @@ class block extends control if(preg_match('/[^a-zA-Z0-9_]/', $this->params->type)) return; $this->view->projects = $this->loadModel('project')->getPairsByProgram(); - $this->view->testtasks = $this->dao->select('distinct t1.*,t2.name as productName,t2.shadow,t3.name as buildName,t4.name as projectName')->from(TABLE_TESTTASK)->alias('t1') + $this->view->testtasks = $this->dao->select('t1.id,t2.name as productName,t2.shadow,t3.name as buildName,t4.name as projectName')->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id') ->leftJoin(TABLE_BUILD)->alias('t3')->on('t1.build=t3.id') ->leftJoin(TABLE_PROJECT)->alias('t4')->on('t1.execution=t4.id') @@ -1637,12 +1637,12 @@ class block extends control $yesterday = date(DT_DATE1, strtotime('yesterday')); $testtasks = $this->dao->select('*')->from(TABLE_TESTTASK)->where('product')->in($productIdList)->andWhere('project')->ne(0)->andWhere('deleted')->eq(0)->orderBy('id')->fetchAll('product'); $bugs = $this->dao->select("product, count(id) as total, - count(assignedTo = '{$this->app->user->account}' or null) as assignedToMe, - count(status != 'closed' or null) as unclosed, - count((status != 'closed' and status != 'resolved') or null) as unresolved, - count((confirmed = '0' and toStory = '0') or null) as unconfirmed, - count((resolvedDate >= '$yesterday' and resolvedDate < '$today') or null) as yesterdayResolved, - count((closedDate >= '$yesterday' and closedDate < '$today') or null) as yesterdayClosed") + count(IF(assignedTo = '{$this->app->user->account}', 1, null)) as assignedToMe, + count(IF(status != 'closed', 1, null)) as unclosed, + count(IF(status != 'closed' and status != 'resolved', 1, null)) as unresolved, + count(IF(confirmed = '0' and toStory = '0', 1, null)) as unconfirmed, + count(IF(resolvedDate >= '$yesterday' and resolvedDate < '$today', 1, null)) as yesterdayResolved, + count(IF(closedDate >= '$yesterday' and closedDate < '$today', 1, null)) as yesterdayClosed") ->from(TABLE_BUG) ->where('product')->in($productIdList) ->andWhere('execution')->in(array_keys($executions)) @@ -1650,13 +1650,18 @@ class block extends control ->groupBy('product') ->fetchAll('product'); - $confirmedBugs = $this->dao->select('count(product) as product')->from(TABLE_ACTION) + $confirmedBugs = $this->dao->select('product')->from(TABLE_ACTION) ->where('objectType')->eq('bug') ->andWhere('action')->eq('bugconfirmed') ->andWhere('date')->ge($yesterday) ->andWhere('date')->lt($today) - ->groupBy('product') - ->fetchPairs('product', 'product'); + ->fetchAll(); + $productConfirmedBugs = array(); + foreach($confirmedBugs as $bug) + { + if(!isset($productConfirmedBugs[$bug->product])) $productConfirmedBugs[$bug->product] = 0; + $productConfirmedBugs[$bug->product]++; + } foreach($products as $productID => $product) { @@ -1668,7 +1673,7 @@ class block extends control $product->unconfirmed = empty($bug) ? 0 : $bug->unconfirmed; $product->yesterdayResolved = empty($bug) ? 0 : $bug->yesterdayResolved; $product->yesterdayClosed = empty($bug) ? 0 : $bug->yesterdayClosed; - $product->yesterdayConfirmed = empty($confirmedBugs[",$productID,"]) ? 0 : $confirmedBugs[",$productID,"]; + $product->yesterdayConfirmed = empty($productConfirmedBugs[",$productID,"]) ? 0 : $productConfirmedBugs[",$productID,"]; $product->assignedRate = $product->total ? round($product->assignedToMe / $product->total * 100, 2) : 0; $product->unresolvedRate = $product->total ? round($product->unresolved / $product->total * 100, 2) : 0; diff --git a/module/bug/control.php b/module/bug/control.php index 00574f77cf..14253a79fb 100755 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -174,7 +174,7 @@ class bug extends control $bugs = $this->bug->getBugs($productIDList, $executions, $branch, $browseType, $moduleID, $queryID, $sort, $pager, $this->projectID); /* Process the sql, get the conditon partion, save it to session. */ - $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'bug', $browseType == 'needconfirm' ? false : true); + $this->loadModel('common')->saveQueryCondition($this->bug->dao->get(), 'bug', $browseType == 'needconfirm' ? false : true); /* Process bug for check story changed. */ $bugs = $this->loadModel('story')->checkNeedConfirm($bugs); diff --git a/module/common/model.php b/module/common/model.php index ed45177d33..4a31b35961 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -1783,7 +1783,7 @@ EOD; global $lang, $app; - $object = $app->dbh->query('SELECT project,type FROM ' . TABLE_EXECUTION . " WHERE `id` = '$executionID'")->fetch(); + $object = $app->dbh->query('SELECT project,`type` FROM ' . TABLE_EXECUTION . " WHERE `id` = '$executionID'")->fetch(); if(empty($object)) return; $executionPairs = array(); @@ -2365,7 +2365,7 @@ EOD; */ public function checkField($table, $field) { - $fields = $this->dao->query("DESC $table")->fetchAll(); + $fields = $this->dao->descTable($table); $hasField = false; foreach($fields as $fieldObj) { diff --git a/module/cron/model.php b/module/cron/model.php index c14dc2e83d..6817305143 100644 --- a/module/cron/model.php +++ b/module/cron/model.php @@ -138,7 +138,7 @@ class cronModel extends model public function getLastTime() { $cron = $this->dao->select('*')->from(TABLE_CRON)->orderBy('lastTime desc')->limit(1)->fetch(); - return isset($cron->lastTime) ? $cron->lastTime : $cron->lasttime; + return isset($cron->lastTime) ? $cron->lastTime : '0000-00-00 00:00:00'; } /** diff --git a/module/doc/model.php b/module/doc/model.php index c0e038bf34..c4eea8d176 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -2000,9 +2000,9 @@ class docModel extends model $today = date('Y-m-d'); $lately = date('Y-m-d', strtotime('-3 day')); - $statisticInfo = $this->dao->select("count(id) as totalDocs, count(editedDate like '{$today}%' or null) as todayEditedDocs, - count(editedDate > '{$lately}' or null) as lastEditedDocs, count(addedDate > '{$lately}' or null) as lastAddedDocs, - count(collector like '%,{$this->app->user->account},%' or null) as myCollection, count(addedBy = '{$this->app->user->account}' or null) as myDocs")->from(TABLE_DOC) + $statisticInfo = $this->dao->select("count(id) as totalDocs, count(IF(editedDate like '{$today}%', 1, null)) as todayEditedDocs, + count(IF(editedDate > '{$lately}', 1, null)) as lastEditedDocs, count(IF(addedDate > '{$lately}', 1, null)) as lastAddedDocs, + count(IF(collector like '%,{$this->app->user->account},%', 1, null)) as myCollection, count(IF(addedBy = '{$this->app->user->account}', 1, null)) as myDocs")->from(TABLE_DOC) ->where('deleted')->eq(0) ->andWhere('vision')->eq($this->config->vision) ->andWhere('id')->in($docIdList) diff --git a/module/execution/model.php b/module/execution/model.php index df16b218f8..9dbfef9d6b 100755 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -1590,13 +1590,13 @@ class executionModel extends model /* Waterfall execution, when all phases are closed, in reverse order of date. */ if(in_array($executionModel, array('waterfall', 'waterfallplus'))) { - $summary = $this->dao->select('count(id) as executions, sum(IF(INSTR("closed", status) < 1, 0, 1)) as closedExecutions')->from(TABLE_EXECUTION)->where('project')->eq($projectID)->andWhere('deleted')->eq('0')->fetch(); + $summary = $this->dao->select("count(id) as executions, sum(IF(INSTR('closed', status) < 1, 0, 1)) as closedExecutions")->from(TABLE_EXECUTION)->where('project')->eq($projectID)->andWhere('deleted')->eq('0')->fetch(); if($summary->executions == $summary->closedExecutions) $orderBy = 'sortStatus_asc,begin_desc,id_asc'; } } /* Order by status's content whether or not done */ - $executions = $this->dao->select('*, IF(INSTR("done,closed", status) < 2, 0, 1) AS isDone, INSTR("doing,wait,suspended,closed", status) AS sortStatus')->from(TABLE_EXECUTION) + $executions = $this->dao->select("*, IF(INSTR('done,closed', status) < 2, 0, 1) AS isDone, INSTR('doing,wait,suspended,closed', status) AS sortStatus")->from(TABLE_EXECUTION) ->where('deleted')->eq(0) ->andWhere('vision')->eq($this->config->vision) ->beginIF(!$this->session->multiple and $this->app->tab == 'execution')->andWhere('multiple')->eq('1')->fi() @@ -1727,7 +1727,7 @@ class executionModel extends model } else { - return $this->dao->select('*, IF(INSTR(" done,closed", status) < 2, 0, 1) AS isDone')->from(TABLE_EXECUTION) + return $this->dao->select("*, IF(INSTR(' done,closed', status) < 2, 0, 1) AS isDone")->from(TABLE_EXECUTION) ->where('deleted')->eq(0) ->andWhere('vision')->eq($this->config->vision) ->beginIF($type == 'all')->andWhere('type')->in('sprint,stage,kanban')->fi() @@ -1777,7 +1777,7 @@ class executionModel extends model } else { - return $this->dao->select('t1.*, IF(INSTR(" done,closed", t1.status) < 2, 0, 1) AS isDone')->from(TABLE_EXECUTION)->alias('t1') + return $this->dao->select("t1.*, IF(INSTR(' done,closed', t1.status) < 2, 0, 1) AS isDone")->from(TABLE_EXECUTION)->alias('t1') ->leftJoin(TABLE_TEAM)->alias('t2')->on('t2.root=t1.id') ->where('t1.deleted')->eq(0) ->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->sprints)->fi() diff --git a/module/holiday/model.php b/module/holiday/model.php index 4206dad132..f6d4f7096f 100644 --- a/module/holiday/model.php +++ b/module/holiday/model.php @@ -34,7 +34,7 @@ class holidayModel extends model public function getList($year = '', $type = 'all') { return $this->dao->select('*')->from(TABLE_HOLIDAY) - ->where('1') + ->where('1=1') ->beginIf(!empty($year)) ->andWhere('year', true)->eq($year) ->orWhere('begin')->like("$year-%") diff --git a/module/install/model.php b/module/install/model.php index 0660545460..f23e82b155 100644 --- a/module/install/model.php +++ b/module/install/model.php @@ -480,7 +480,7 @@ class installModel extends model $admin->password = md5($this->post->password); $admin->gender = 'f'; $admin->visions = 'rnd,lite'; - $this->dao->insert(TABLE_USER)->data($admin)->exec(); + $this->dao->replace(TABLE_USER)->data($admin)->exec(); } } diff --git a/module/product/control.php b/module/product/control.php index ad41bc1d3e..a164cd6db6 100755 --- a/module/product/control.php +++ b/module/product/control.php @@ -267,7 +267,7 @@ class product extends control { $stories = $this->product->getStories($productID, $branchID, $browseType, $queryID, $moduleID, $storyType, $sort, $pager); } - $queryCondition = $this->dao->get(); + $queryCondition = $this->story->dao->get(); /* Display status of branch. */ $branchOption = array(); diff --git a/module/product/model.php b/module/product/model.php index 5494bb053d..d4d6ce58a9 100755 --- a/module/product/model.php +++ b/module/product/model.php @@ -363,7 +363,7 @@ class productModel extends model $views = empty($append) ? $this->app->user->view->products : $this->app->user->view->products . ",$append"; $orderBy = !empty($this->config->product->orderBy) ? $this->config->product->orderBy : 'isClosed'; /* Order by program. */ - return $this->dao->select('t1.*, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') + return $this->dao->select("t1.*, IF(INSTR(' closed', t1.status) < 2, 0, 1) AS isClosed")->from(TABLE_PRODUCT)->alias('t1') ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') ->where(1) ->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi() @@ -1837,7 +1837,7 @@ class productModel extends model $linePairs = $this->getLinePairs(); foreach($products as $product) $product->lineName = zget($linePairs, $product->line, ''); - $stories = $this->dao->select('product, status, type, count(status) AS count') + $stories = $this->dao->select('product, status, count(status) AS count') ->from(TABLE_STORY) ->where('deleted')->eq(0) ->andWhere('type')->eq('story') @@ -1845,7 +1845,7 @@ class productModel extends model ->groupBy('product, status') ->fetchGroup('product', 'status'); - $requirements = $this->dao->select('product, status, type, count(status) AS count') + $requirements = $this->dao->select('product, status, count(status) AS count') ->from(TABLE_STORY) ->where('deleted')->eq(0) ->andWhere('type')->eq('requirement') diff --git a/module/productplan/model.php b/module/productplan/model.php index 54a8f40caf..7f8ca46b98 100644 --- a/module/productplan/model.php +++ b/module/productplan/model.php @@ -257,7 +257,7 @@ class productplanModel extends model { $this->app->loadLang('branch'); - $date = date('Y-m-d'); + $date = date('Y-m-d'); $branchQuery = ''; if($branch !== '' and $branch != 'all') diff --git a/module/program/model.php b/module/program/model.php index a604c600a4..a04e24cbfb 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -595,7 +595,7 @@ class programModel extends model } $query = str_replace('`id`','t1.id', $this->session->projectQuery); - $projectList = $this->dao->select('distinct t1.*')->from(TABLE_PROJECT)->alias('t1') + $projectList = $this->dao->select('t1.*')->from(TABLE_PROJECT)->alias('t1') ->leftJoin(TABLE_TEAM)->alias('t2')->on('t1.id=t2.root') ->leftJoin(TABLE_STAKEHOLDER)->alias('t3')->on('t1.id=t3.objectID') ->where('t1.deleted')->eq('0') @@ -744,6 +744,7 @@ class programModel extends model ->setDefault('status', 'wait') ->setDefault('openedBy', $this->app->user->account) ->setDefault('parent', 0) + ->setDefault('code', '') ->setDefault('openedDate', helper::now()) ->setIF($this->post->acl == 'open', 'whitelist', '') ->setIF($this->post->delta == 999, 'end', LONG_TIME) @@ -752,7 +753,7 @@ class programModel extends model ->add('type', 'program') ->join('whitelist', ',') ->stripTags($this->config->program->editor->create['id'], $this->config->allowedTags) - ->remove('delta,future,contactListMenu') + ->remove('delta,future,contactListMenu,uid') ->get(); /* Redefines the language entries for the fields in the project table. */ @@ -819,7 +820,7 @@ class programModel extends model ->setIF(!isset($_POST['whitelist']), 'whitelist', '') ->join('whitelist', ',') ->stripTags($this->config->program->editor->edit['id'], $this->config->allowedTags) - ->remove('uid,delta,future,syncPRJUnit,exchangeRate,contactListMenu') + ->remove('id,uid,delta,future,syncPRJUnit,exchangeRate,contactListMenu') ->get(); $program = $this->loadModel('file')->processImgURL($program, $this->config->program->editor->edit['id'], $this->post->uid); diff --git a/module/project/model.php b/module/project/model.php index ce5b643326..ba09082b90 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -318,7 +318,7 @@ class projectModel extends model ->andWhere('t2.deleted')->eq(0) ->groupBy('root')->fetchPairs(); - $hours = $this->dao->select('t2.parent as project, ROUND(SUM(t1.consumed), 1) AS consumed, ROUND(SUM(t1.estimate), 1) AS estimate')->from(TABLE_TASK)->alias('t1') + $hours = $this->dao->select('t2.project, ROUND(SUM(t1.consumed), 1) AS consumed, ROUND(SUM(t1.estimate), 1) AS estimate')->from(TABLE_TASK)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.execution = t2.id') ->where('t2.project')->in($projectIdList) ->andWhere('t2.deleted')->eq(0) @@ -404,7 +404,7 @@ class projectModel extends model ->where('t1.project')->in($projectIdList) ->andWhere('t1.deleted')->eq(0) ->andWhere('t2.deleted')->eq(0) - ->groupBy('project') + ->groupBy('t1.project') ->fetchAll('project'); } @@ -426,12 +426,12 @@ class projectModel extends model ->andWhere('t2.model')->eq('waterfall') ->fetchGroup('project', 'id'); - $totalHour = $this->dao->select('t1.project, t1.execution, ROUND(SUM(if(t1.status !="closed" && t1.status !="cancel", `left`, 0)), 2) AS totalLeft, ROUND(SUM(consumed), 1) AS totalConsumed')->from(TABLE_TASK)->alias('t1') + $totalHour = $this->dao->select("t1.project, t1.execution, ROUND(SUM(if(t1.status !='closed' && t1.status !='cancel', `left`, 0)), 2) AS totalLeft, ROUND(SUM(consumed), 1) AS totalConsumed")->from(TABLE_TASK)->alias('t1') ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.execution = t2.id') ->where('t2.project')->in(array_keys($projectList)) ->andWhere('t1.deleted')->eq(0) ->andWhere('t1.parent')->lt(1) - ->groupBy('t1.execution') + ->groupBy('t1.project,t1.execution') ->fetchGroup('project', 'execution'); $progressList = array(); @@ -1254,7 +1254,7 @@ class projectModel extends model ->add('type', 'project') ->join('whitelist', ',') ->stripTags($this->config->project->editor->create['id'], $this->config->allowedTags) - ->remove('products,branch,plans,delta,newProduct,productName,future,contactListMenu,teamMembers') + ->remove('uid,products,branch,plans,delta,newProduct,productName,future,contactListMenu,teamMembers') ->get(); if(!isset($this->config->setCode) or $this->config->setCode == 0) unset($project->code); diff --git a/module/search/model.php b/module/search/model.php index 69ac1589bb..777b61f5f7 100644 --- a/module/search/model.php +++ b/module/search/model.php @@ -1238,7 +1238,7 @@ class searchModel extends model if($testDeleted) $data = $this->dao->select('*')->from($table)->limit(1)->fetch(); $query = $this->dao->select('t1.*')->from($table)->alias('t1') - ->where('1') + ->where('1=1') ->beginIF($type == 'program')->andWhere('type')->eq('program')->fi() ->beginIF($type == 'project')->andWhere('type')->eq('project')->fi() ->beginIF($type == 'execution')->andWhere('type')->in('stage,sprint,kanban')->fi() diff --git a/module/testcase/control.php b/module/testcase/control.php index aeb2164d89..36bd7478ad 100644 --- a/module/testcase/control.php +++ b/module/testcase/control.php @@ -154,7 +154,7 @@ class testcase extends control } /* save session .*/ - $this->loadModel('common')->saveQueryCondition($this->dao->get(), 'testcase', false); + $this->loadModel('common')->saveQueryCondition($this->testcase->dao->get(), 'testcase', false); /* Process case for check story changed. */ $cases = $this->loadModel('story')->checkNeedConfirm($cases); diff --git a/module/testtask/model.php b/module/testtask/model.php index ca2d2ad3b4..45252a2272 100755 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -76,8 +76,7 @@ class testtaskModel extends model $products = $scopeAndStatus[0] == 'all' ? $this->app->user->view->products : array(); $branch = $scopeAndStatus[0] == 'all' ? 'all' : $branch; - $executionNameField = "IF(t5.id IS NOT NULL && t5.multiple = '1', CONCAT(t5.name, ' / ', t3.name), IF(t5.id IS NOT NULL, t5.name, t3.name))"; - return $this->dao->select("t1.*, t5.multiple, IF(t2.shadow = 1, t5.name, t2.name) AS productName, $executionNameField AS executionName, t4.name AS buildName, t4.branch AS branch") + $tasks = $this->dao->select("t1.*, t5.multiple, IF(t2.shadow = 1, t5.name, t2.name) AS productName, t3.name as executionName, t4.name AS buildName, t4.branch AS branch, t5.name AS projectName") ->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') ->leftJoin(TABLE_EXECUTION)->alias('t3')->on('t1.execution = t3.id') @@ -106,6 +105,22 @@ class testtaskModel extends model ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); + foreach($tasks as $taskID => $task) + { + if($task->multiple) + { + if($task->projectName and $task->executionName) + { + $tasks[$taskID]->executionName = $task->projectName . '/' . $task->executionName; + } + elseif(!$task->executionName) + { + $tasks[$taskID]->executionName = $task->projectName; + } + } + } + + return $tasks; } /** diff --git a/module/user/model.php b/module/user/model.php index 1074300160..93928f4cc5 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -100,7 +100,7 @@ class userModel extends model unset($this->config->user->moreLink); $users = $this->dao->select($fields)->from(TABLE_USER) - ->where('1') + ->where('1=1') ->beginIF(strpos($params, 'nodeleted') !== false or empty($this->config->user->showDeleted))->andWhere('deleted')->eq('0')->fi() ->beginIF(strpos($params, 'all') === false)->andWhere('type')->eq($type)->fi() ->beginIF($accounts)->andWhere('account')->in($accounts)->fi()