config.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <?php
  2. $config->bi = new stdclass();
  3. $config->bi->pickerHeight = 150;
  4. $config->bi->conditionList = array();
  5. $config->bi->conditionList['='] = '=';
  6. $config->bi->conditionList['!='] = '!=';
  7. $config->bi->conditionList['<'] = '<';
  8. $config->bi->conditionList['>'] = '>';
  9. $config->bi->conditionList['>='] = '≥ ';
  10. $config->bi->conditionList['<='] = '≤ ';
  11. $config->bi->conditionList['IN'] = 'IN';
  12. $config->bi->conditionList['NOT IN'] = 'NOT IN';
  13. $config->bi->conditionList['IS NOT NULL'] = 'IS NOT NULL';
  14. $config->bi->conditionList['IS NULL'] = 'IS NULL';
  15. $config->bi->duckdbExcludeTables = array('metriclib', 'repofiles', 'repohistory', 'queue', 'duckdbqueue', 'action');
  16. $config->bi->builtin = new stdclass();
  17. $config->bi->builtin->modules = new stdclass();
  18. $config->bi->builtin->screens = array(1, 2, 3, 4, 5, 6, 7, 8,1001);
  19. $config->bi->default = new stdclass();
  20. $config->bi->default->styles = json_decode('{"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":[]}');
  21. $config->bi->default->status = json_decode('{"lock":false,"hide":false}');
  22. $config->bi->default->request = json_decode('{"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":{}}}');
  23. $config->bi->default->events = json_decode('{"baseEvent":{"click":null,"dblclick":null,"mouseenter":null,"mouseleave":null},"advancedEvents":{"vnodeMounted":null,"vnodeBeforeMount":null}}');
  24. // 是否开启 base/dao exec 的记录 zt_duckdbqueue 功能
  25. $config->bi->cdnUrl = 'https://dl.zentao.net/duckdb/';
  26. $config->bi->duckdbHelp = 'https://www.zentao.net/book/zentaopms/1313.html';
  27. $config->bi->duckdbBin = array();
  28. $config->bi->duckdbBin['win'] = array('path' => '/bin/duckdb/', 'file' => 'duckdb.exe', 'fileUrl' => $config->bi->cdnUrl . 'win/duckdb.zip');
  29. $config->bi->duckdbBin['linux'] = array('path' => '/opt/zbox/bin/', 'file' => 'duckdb', 'fileUrl' => $config->bi->cdnUrl . 'linux/amd64/duckdb.zip');
  30. $config->bi->duckdbExt = array();
  31. $config->bi->duckdbExt['win'] = array('dm' => 'sync2parquet.exe', 'mysql' => 'mysql_scanner.duckdb_extension');
  32. $config->bi->duckdbExt['linux'] = array('dm' => 'sync2parquet', 'mysql' => 'mysql_scanner.duckdb_extension');
  33. $config->bi->duckdbExtUrl = array();
  34. $config->bi->duckdbExtUrl['win'] = array('dm' => $config->bi->cdnUrl . 'win/sync2parquet.exe', 'mysql' => $config->bi->cdnUrl . 'win/mysql_scanner.duckdb_extension.zip');
  35. $config->bi->duckdbExtUrl['linux'] = array('dm' => $config->bi->cdnUrl . 'linux/amd64/sync2parquet', 'mysql' => $config->bi->cdnUrl . 'linux/amd64/mysql_scanner.duckdb_extension.zip');
  36. $charts = array();
  37. $charts['32'] = array("root" => 1, "name" => "产品", "grade" => 1);
  38. $charts['33'] = array("root" => 1, "name" => "项目", "grade" => 1);
  39. $charts['34'] = array("root" => 1, "name" => "测试", "grade" => 1);
  40. $charts['35'] = array("root" => 1, "name" => "组织", "grade" => 1);
  41. $charts['36'] = array("root" => 1, "name" => "需求", "grade" => 2);
  42. $charts['37'] = array("root" => 1, "name" => "发布", "grade" => 2);
  43. $charts['38'] = array("root" => 1, "name" => "项目", "grade" => 2);
  44. $charts['39'] = array("root" => 1, "name" => "任务", "grade" => 2);
  45. $charts['40'] = array("root" => 1, "name" => "迭代", "grade" => 2);
  46. $charts['41'] = array("root" => 1, "name" => "成本", "grade" => 2);
  47. $charts['42'] = array("root" => 1, "name" => "工期", "grade" => 2);
  48. $charts['43'] = array("root" => 1, "name" => "需求", "grade" => 2);
  49. $charts['44'] = array("root" => 1, "name" => "Bug", "grade" => 2);
  50. $charts['45'] = array("root" => 1, "name" => "项目集", "grade" => 2);
  51. $charts['46'] = array("root" => 1, "name" => "项目", "grade" => 2);
  52. $charts['47'] = array("root" => 1, "name" => "产品", "grade" => 2);
  53. $charts['48'] = array("root" => 1, "name" => "计划", "grade" => 2);
  54. $charts['49'] = array("root" => 1, "name" => "迭代", "grade" => 2);
  55. $charts['50'] = array("root" => 1, "name" => "发布", "grade" => 2);
  56. $charts['51'] = array("root" => 1, "name" => "需求", "grade" => 2);
  57. $charts['52'] = array("root" => 1, "name" => "任务", "grade" => 2);
  58. $charts['53'] = array("root" => 1, "name" => "Bug", "grade" => 2);
  59. $charts['54'] = array("root" => 1, "name" => "文档", "grade" => 2);
  60. $charts['55'] = array("root" => 1, "name" => "成本", "grade" => 2);
  61. $charts['56'] = array("root" => 1, "name" => "人员", "grade" => 2);
  62. $charts['57'] = array("root" => 1, "name" => "工时", "grade" => 2);
  63. $charts['64'] = array("root" => 1, "name" => "行为", "grade" => 2);
  64. $charts['65'] = array("root" => 2, "name" => "产品", "grade" => 1);
  65. $charts['66'] = array("root" => 2, "name" => "项目", "grade" => 1);
  66. $charts['67'] = array("root" => 2, "name" => "测试", "grade" => 1);
  67. $charts['68'] = array("root" => 2, "name" => "组织", "grade" => 1);
  68. $charts['69'] = array("root" => 2, "name" => "进度", "grade" => 2);
  69. $charts['70'] = array("root" => 2, "name" => "成本", "grade" => 2);
  70. $charts['71'] = array("root" => 2, "name" => "工期", "grade" => 2);
  71. $charts['72'] = array("root" => 2, "name" => "项目", "grade" => 2);
  72. $charts['73'] = array("root" => 2, "name" => "迭代", "grade" => 2);
  73. $charts['74'] = array("root" => 2, "name" => "发布", "grade" => 2);
  74. $charts['75'] = array("root" => 2, "name" => "需求", "grade" => 2);
  75. $charts['76'] = array("root" => 2, "name" => "任务", "grade" => 2);
  76. $charts['77'] = array("root" => 2, "name" => "Bug", "grade" => 2);
  77. $charts['86'] = array("root" => 2, "name" => "成本", "grade" => 2);
  78. $charts['87'] = array("root" => 3, "name" => "产品", "grade" => 1);
  79. $charts['88'] = array("root" => 3, "name" => "项目", "grade" => 1);
  80. $charts['89'] = array("root" => 3, "name" => "测试", "grade" => 1);
  81. $charts['90'] = array("root" => 3, "name" => "组织", "grade" => 1);
  82. $charts['91'] = array("root" => 3, "name" => "Bug", "grade" => 2);
  83. $charts['92'] = array("root" => 3, "name" => "用例", "grade" => 2);
  84. $charts['93'] = array("root" => 3, "name" => "需求", "grade" => 2);
  85. $charts['94'] = array("root" => 3, "name" => "Bug", "grade" => 2);
  86. $charts['95'] = array("root" => 3, "name" => "用例", "grade" => 2);
  87. $charts['102'] = array("root" => 1, "name" => "DevOps", "grade" => 1);
  88. $charts['103'] = array("root" => 1, "name" => "DevOps", "grade" => 2);
  89. $pivots = array();
  90. $pivots['59'] = array("root" => 1, "name" => "产品", "grade" => 1);
  91. $pivots['60'] = array("root" => 1, "name" => "项目", "grade" => 1);
  92. $pivots['61'] = array("root" => 1, "name" => "测试", "grade" => 1);
  93. $pivots['62'] = array("root" => 1, "name" => "组织", "grade" => 1);
  94. $pivots['63'] = array("root" => 1, "name" => "产品", "grade" => 2);
  95. $pivots['64'] = array("root" => 1, "name" => "项目集", "grade" => 2);
  96. $pivots['79'] = array("root" => 2, "name" => "产品", "grade" => 1);
  97. $pivots['80'] = array("root" => 2, "name" => "项目", "grade" => 1);
  98. $pivots['81'] = array("root" => 2, "name" => "测试", "grade" => 1);
  99. $pivots['82'] = array("root" => 2, "name" => "组织", "grade" => 1);
  100. $pivots['83'] = array("root" => 2, "name" => "项目", "grade" => 2);
  101. $pivots['84'] = array("root" => 2, "name" => "进度", "grade" => 2);
  102. $pivots['85'] = array("root" => 2, "name" => "成本", "grade" => 2);
  103. $pivots['86'] = array("root" => 2, "name" => "工期", "grade" => 2);
  104. $pivots['96'] = array("root" => 3, "name" => "产品", "grade" => 1);
  105. $pivots['97'] = array("root" => 3, "name" => "项目", "grade" => 1);
  106. $pivots['98'] = array("root" => 3, "name" => "测试", "grade" => 1);
  107. $pivots['99'] = array("root" => 3, "name" => "组织", "grade" => 1);
  108. $pivots['100'] = array("root" => 3, "name" => "Bug", "grade" => 2);
  109. $config->bi->builtin->modules->charts = $charts;
  110. $config->bi->builtin->modules->pivots = $pivots;
  111. $config->bi->duckSQLTemp = array();
  112. $config->bi->duckSQLTemp['mysql'] = "LOAD '{EXTENSIONPATH}';ATTACH 'host={HOST} user={USER} password={PASSWORD} port={PORT} database={DATABASE}' as mysqldb(TYPE MYSQL);USE mysqldb;{COPYSQL}";
  113. $config->bi->duckSQLTemp['dm'] = '{EXTENSIONPATH} --driver="{DRIVER}" --db="host={HOST} user={USER} password={PASSWORD} port={PORT} database={DATABASE}" --copy="{COPYSQL}"';
  114. $config->bi->drivers = array('mysql', 'duckdb', 'dm');
  115. $config->bi->defaultDriver = 'mysql';
  116. $config->bi->columnTypes = new stdclass();
  117. $config->bi->columnTypes->mysql['TINY'] = 'number';
  118. $config->bi->columnTypes->mysql['SHORT'] = 'number';
  119. $config->bi->columnTypes->mysql['LONG'] = 'number';
  120. $config->bi->columnTypes->mysql['FLOAT'] = 'number';
  121. $config->bi->columnTypes->mysql['DOUBLE'] = 'number';
  122. $config->bi->columnTypes->mysql['TIMESTAMP'] = 'string';
  123. $config->bi->columnTypes->mysql['LONGLONG'] = 'string';
  124. $config->bi->columnTypes->mysql['INT24'] = 'number';
  125. $config->bi->columnTypes->mysql['DATE'] = 'date';
  126. $config->bi->columnTypes->mysql['TIME'] = 'string';
  127. $config->bi->columnTypes->mysql['DATETIME'] = 'date';
  128. $config->bi->columnTypes->mysql['YEAR'] = 'date';
  129. $config->bi->columnTypes->mysql['ENUM'] = 'string';
  130. $config->bi->columnTypes->mysql['SET'] = 'string';
  131. $config->bi->columnTypes->mysql['TINYBLOB'] = 'string';
  132. $config->bi->columnTypes->mysql['MEDIUMBLOB'] = 'string';
  133. $config->bi->columnTypes->mysql['LONG_BLOB'] = 'string';
  134. $config->bi->columnTypes->mysql['BLOB'] = 'string';
  135. $config->bi->columnTypes->mysql['VAR_STRING'] = 'string';
  136. $config->bi->columnTypes->mysql['STRING'] = 'string';
  137. $config->bi->columnTypes->mysql['NULL'] = 'null';
  138. $config->bi->columnTypes->mysql['NEWDATE'] = 'date';
  139. $config->bi->columnTypes->mysql['INTERVAL'] = 'string';
  140. $config->bi->columnTypes->mysql['GEOMETRY'] = 'string';
  141. $config->bi->columnTypes->mysql['NEWDECIMAL'] = 'number';
  142. /* Dameng native_type. */
  143. $config->bi->columnTypes->mysql['int'] = 'number';
  144. $config->bi->columnTypes->mysql['varchar'] = 'string';
  145. $config->bi->columnTypes->mysql['text'] = 'string';
  146. $config->bi->columnTypes->mysql['timestamp'] = 'string';
  147. $config->bi->columnTypes->mysql['date'] = 'date';
  148. $config->bi->columnTypes->mysql['time'] = 'string';
  149. $config->bi->columnTypes->mysql['double'] = 'number';
  150. $config->bi->columnTypes->mysql['number'] = 'number';
  151. $config->bi->columnTypes->mysql['bigint'] = 'number';
  152. /* DuckDB native_type. */
  153. $config->bi->columnTypes->duckdb['BIGINT'] = 'number';
  154. $config->bi->columnTypes->duckdb['INT8'] = 'number';
  155. $config->bi->columnTypes->duckdb['LONG'] = 'number';
  156. $config->bi->columnTypes->duckdb['UBIGINT'] = 'number';
  157. $config->bi->columnTypes->duckdb['HUGEINT'] = 'number';
  158. $config->bi->columnTypes->duckdb['UHUGEINT'] = 'number';
  159. $config->bi->columnTypes->duckdb['INTEGER'] = 'number';
  160. $config->bi->columnTypes->duckdb['UINTEGER'] = 'number';
  161. $config->bi->columnTypes->duckdb['SMALLINT'] = 'number';
  162. $config->bi->columnTypes->duckdb['INT2'] = 'number';
  163. $config->bi->columnTypes->duckdb['SHORT'] = 'number';
  164. $config->bi->columnTypes->duckdb['INT4'] = 'number';
  165. $config->bi->columnTypes->duckdb['INT'] = 'number';
  166. $config->bi->columnTypes->duckdb['SIGNED'] = 'number';
  167. $config->bi->columnTypes->duckdb['USMALLINT'] = 'number';
  168. $config->bi->columnTypes->duckdb['TINYINT'] = 'number';
  169. $config->bi->columnTypes->duckdb['INT1'] = 'number';
  170. $config->bi->columnTypes->duckdb['UTINYINT'] = 'number';
  171. $config->bi->columnTypes->duckdb['REAL'] = 'number';
  172. $config->bi->columnTypes->duckdb['FLOAT4'] = 'number';
  173. $config->bi->columnTypes->duckdb['FLOAT'] = 'number';
  174. $config->bi->columnTypes->duckdb['DOUBLE'] = 'number';
  175. $config->bi->columnTypes->duckdb['FLOAT8'] = 'number';
  176. $config->bi->columnTypes->duckdb['BOOLEAN'] = 'number';
  177. $config->bi->columnTypes->duckdb['BOOL'] = 'number';
  178. $config->bi->columnTypes->duckdb['LOGICAL'] = 'number';
  179. $config->bi->columnTypes->duckdb['BLOB'] = 'string';
  180. $config->bi->columnTypes->duckdb['VARCHAR'] = 'string';
  181. $config->bi->columnTypes->duckdb['CHAR'] = 'string';
  182. $config->bi->columnTypes->duckdb['BPCHAR'] = 'string';
  183. $config->bi->columnTypes->duckdb['TEXT'] = 'string';
  184. $config->bi->columnTypes->duckdb['STRING'] = 'string';
  185. $config->bi->columnTypes->duckdb['DATE'] = 'date';
  186. $config->bi->columnTypes->duckdb['TIMESTAMP'] = 'date';
  187. $config->bi->columnTypes->duckdb['DATETIME'] = 'date';
  188. $config->bi->columnTypes->duckdb['TIME'] = 'date';
  189. $config->bi->columnTypes->duckdb['DECIMAL'] = 'number';
  190. $config->bi->columnTypes->duckdb['NUMERIC'] = 'number';
  191. $config->bi->columnTypes->INTEGER = 'number';
  192. $config->bi->columnTypes->UINTEGER = 'number';
  193. $config->bi->columnTypes->UTINYINT = 'number';
  194. $config->bi->columnTypes->SMALLINT = 'number';
  195. $config->bi->columnTypes->FLOAT = 'number';
  196. $config->bi->columnTypes->BOOLEAN = 'number';
  197. $config->bi->columnTypes->VARCHAR = 'string';
  198. $config->bi->columnTypes->TIMESTAMP = 'date';
  199. $config->bi->columnTypes->DATE = 'date';
  200. $config->bi->duckdb = new stdclass();
  201. $config->bi->duckdb->ztvtables = array();
  202. $config->bi->duckdb->ztvtables['dayactions'] = <<<EOT
  203. SELECT * FROM ztv_dayactions
  204. EOT;
  205. $config->bi->duckdb->ztvtables['dayuserlogin'] = <<<EOT
  206. SELECT * FROM ztv_dayuserlogin
  207. EOT;
  208. $config->bi->duckdb->ztvtables['dayeffort'] = <<<EOT
  209. SELECT * FROM ztv_dayeffort
  210. EOT;
  211. $config->bi->duckdb->ztvtables['daystoryopen'] = <<<EOT
  212. SELECT * FROM ztv_daystoryopen
  213. EOT;
  214. $config->bi->duckdb->ztvtables['daystoryclose'] = <<<EOT
  215. SELECT * FROM ztv_daystoryclose
  216. EOT;
  217. $config->bi->duckdb->ztvtables['daytaskopen'] = <<<EOT
  218. SELECT * FROM ztv_daytaskopen
  219. EOT;
  220. $config->bi->duckdb->ztvtables['daytaskfinish'] = <<<EOT
  221. SELECT * FROM ztv_daytaskfinish
  222. EOT;
  223. $config->bi->duckdb->ztvtables['daybugopen'] = <<<EOT
  224. SELECT * FROM ztv_daybugopen
  225. EOT;
  226. $config->bi->duckdb->ztvtables['daybugresolve'] = <<<EOT
  227. SELECT * FROM ztv_daybugresolve
  228. EOT;
  229. $config->bi->duckdb->ztvtables['productstories'] = <<<EOT
  230. SELECT * FROM ztv_productstories
  231. EOT;
  232. $config->bi->duckdb->ztvtables['productbugs'] = <<<EOT
  233. SELECT * FROM ztv_productbugs
  234. EOT;
  235. $config->bi->duckdb->ztvtables['projectsummary'] = <<<EOT
  236. SELECT * FROM ztv_projectsummary
  237. EOT;
  238. $config->bi->duckdb->ztvtables['executionsummary'] = <<<EOT
  239. SELECT * FROM ztv_executionsummary
  240. EOT;
  241. $config->bi->duckdb->ztvtables['projectstories'] = <<<EOT
  242. SELECT * FROM ztv_projectstories
  243. EOT;
  244. $config->bi->duckdb->ztvtables['projectbugs'] = <<<EOT
  245. SELECT * FROM ztv_projectbugs
  246. EOT;
  247. $config->bi->duckdb->ztvtables['projectteams'] = <<<EOT
  248. SELECT * FROM ztv_projectteams
  249. EOT;