data.pdman.json 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364
  1. {
  2. "modules": [
  3. {
  4. "name": "COURSE",
  5. "chnname": "课程管理",
  6. "entities": [
  7. {
  8. "title": "COURSE_DETAIL",
  9. "fields": [
  10. {
  11. "name": "ID",
  12. "type": "Integer",
  13. "remark": "",
  14. "chnname": "主键",
  15. "pk": true,
  16. "notNull": true,
  17. "autoIncrement": true
  18. },
  19. {
  20. "name": "COURSE_ID",
  21. "type": "Integer",
  22. "remark": "",
  23. "chnname": "课程表ID"
  24. },
  25. {
  26. "name": "YEAR",
  27. "type": "Integer",
  28. "remark": "",
  29. "chnname": "学年",
  30. "uiHint": "Select"
  31. },
  32. {
  33. "name": "TERM",
  34. "type": "Integer",
  35. "remark": "",
  36. "chnname": "学期",
  37. "uiHint": "Select"
  38. },
  39. {
  40. "name": "COURSE_NAME",
  41. "type": "DefaultString",
  42. "remark": "",
  43. "chnname": "课程名",
  44. "uiHint": "Text"
  45. },
  46. {
  47. "name": "TEACHER",
  48. "type": "Integer",
  49. "remark": "",
  50. "chnname": "授课老师",
  51. "uiHint": "Select"
  52. },
  53. {
  54. "name": "LOCAL",
  55. "type": "Integer",
  56. "remark": "",
  57. "chnname": "实验地点",
  58. "uiHint": "Select"
  59. },
  60. {
  61. "name": "CLASS",
  62. "type": "Integer",
  63. "remark": "",
  64. "chnname": "授课班级",
  65. "uiHint": "Select"
  66. },
  67. {
  68. "name": "MARK",
  69. "type": "Money",
  70. "remark": "",
  71. "chnname": "学分",
  72. "uiHint": "Money"
  73. },
  74. {
  75. "name": "NUM",
  76. "type": "Integer",
  77. "remark": "",
  78. "chnname": "人数",
  79. "uiHint": "Number"
  80. },
  81. {
  82. "name": "WEEK_TITLE",
  83. "type": "DefaultString",
  84. "remark": "",
  85. "chnname": "教学周",
  86. "uiHint": "Text"
  87. },
  88. {
  89. "name": "DAY_OF_WEEK",
  90. "type": "Integer",
  91. "remark": "1-7",
  92. "chnname": "周次",
  93. "uiHint": "Select"
  94. },
  95. {
  96. "name": "TIME",
  97. "type": "DefaultString",
  98. "remark": "",
  99. "chnname": "节次",
  100. "uiHint": "CheckBox"
  101. },
  102. {
  103. "name": "STATUS",
  104. "type": "Integer",
  105. "remark": "发布状态",
  106. "chnname": "状态"
  107. },
  108. {
  109. "name": "CREATED_BY",
  110. "type": "IdOrKey",
  111. "remark": "",
  112. "chnname": "创建人"
  113. },
  114. {
  115. "name": "CREATED_TIME",
  116. "type": "DateTime",
  117. "remark": "",
  118. "chnname": "创建时间"
  119. },
  120. {
  121. "name": "UPDATED_BY",
  122. "type": "IdOrKey",
  123. "remark": "",
  124. "chnname": "更新人"
  125. },
  126. {
  127. "name": "UPDATED_TIME",
  128. "type": "DateTime",
  129. "remark": "",
  130. "chnname": "更新时间"
  131. },
  132. {
  133. "name": "IS_DEL",
  134. "type": "Integer",
  135. "remark": "",
  136. "chnname": "删除标志",
  137. "notNull": true
  138. }
  139. ],
  140. "indexs": [],
  141. "headers": [
  142. {
  143. "fieldName": "chnname",
  144. "relationNoShow": false
  145. },
  146. {
  147. "fieldName": "name",
  148. "relationNoShow": false
  149. },
  150. {
  151. "fieldName": "type",
  152. "relationNoShow": false
  153. },
  154. {
  155. "fieldName": "dataType",
  156. "relationNoShow": true
  157. },
  158. {
  159. "fieldName": "remark",
  160. "relationNoShow": true
  161. },
  162. {
  163. "fieldName": "pk",
  164. "relationNoShow": false
  165. },
  166. {
  167. "fieldName": "notNull",
  168. "relationNoShow": true
  169. },
  170. {
  171. "fieldName": "autoIncrement",
  172. "relationNoShow": true
  173. },
  174. {
  175. "fieldName": "defaultValue",
  176. "relationNoShow": true
  177. },
  178. {
  179. "fieldName": "relationNoShow",
  180. "relationNoShow": true
  181. },
  182. {
  183. "fieldName": "uiHint",
  184. "relationNoShow": true
  185. }
  186. ],
  187. "chnname": "课程明细表"
  188. },
  189. {
  190. "title": "CLASS",
  191. "fields": [
  192. {
  193. "name": "ID",
  194. "type": "Integer",
  195. "remark": "",
  196. "chnname": "主键",
  197. "pk": true,
  198. "notNull": true,
  199. "autoIncrement": true
  200. },
  201. {
  202. "name": "YEAR",
  203. "type": "Integer",
  204. "remark": "",
  205. "chnname": "年级",
  206. "uiHint": "Select"
  207. },
  208. {
  209. "name": "NAME",
  210. "type": "DefaultString",
  211. "remark": "",
  212. "chnname": "班级名称",
  213. "uiHint": "Text"
  214. },
  215. {
  216. "name": "CREATED_BY",
  217. "type": "IdOrKey",
  218. "remark": "",
  219. "chnname": "创建人"
  220. },
  221. {
  222. "name": "CREATED_TIME",
  223. "type": "DateTime",
  224. "remark": "",
  225. "chnname": "创建时间"
  226. },
  227. {
  228. "name": "UPDATED_BY",
  229. "type": "IdOrKey",
  230. "remark": "",
  231. "chnname": "更新人"
  232. },
  233. {
  234. "name": "UPDATED_TIME",
  235. "type": "DateTime",
  236. "remark": "",
  237. "chnname": "更新时间"
  238. },
  239. {
  240. "name": "IS_DEL",
  241. "type": "Integer",
  242. "remark": "",
  243. "chnname": "删除标志",
  244. "notNull": true
  245. }
  246. ],
  247. "indexs": [],
  248. "headers": [
  249. {
  250. "fieldName": "chnname",
  251. "relationNoShow": false
  252. },
  253. {
  254. "fieldName": "name",
  255. "relationNoShow": false
  256. },
  257. {
  258. "fieldName": "type",
  259. "relationNoShow": false
  260. },
  261. {
  262. "fieldName": "dataType",
  263. "relationNoShow": true
  264. },
  265. {
  266. "fieldName": "remark",
  267. "relationNoShow": true
  268. },
  269. {
  270. "fieldName": "pk",
  271. "relationNoShow": false
  272. },
  273. {
  274. "fieldName": "notNull",
  275. "relationNoShow": true
  276. },
  277. {
  278. "fieldName": "autoIncrement",
  279. "relationNoShow": true
  280. },
  281. {
  282. "fieldName": "defaultValue",
  283. "relationNoShow": true
  284. },
  285. {
  286. "fieldName": "relationNoShow",
  287. "relationNoShow": true
  288. },
  289. {
  290. "fieldName": "uiHint",
  291. "relationNoShow": true
  292. }
  293. ],
  294. "chnname": "班级表"
  295. },
  296. {
  297. "title": "COURSE",
  298. "fields": [
  299. {
  300. "name": "ID",
  301. "type": "Integer",
  302. "remark": "",
  303. "chnname": "主键",
  304. "pk": true,
  305. "notNull": true,
  306. "autoIncrement": true
  307. },
  308. {
  309. "name": "YEAR",
  310. "type": "Integer",
  311. "remark": "",
  312. "chnname": "学年"
  313. },
  314. {
  315. "name": "TERM",
  316. "type": "Integer",
  317. "remark": "",
  318. "chnname": "学期"
  319. },
  320. {
  321. "name": "CLASS_ID",
  322. "type": "Integer",
  323. "remark": "",
  324. "chnname": "班级ID"
  325. },
  326. {
  327. "name": "COURSE_WEEK",
  328. "type": "ShortString",
  329. "remark": "",
  330. "chnname": "标题"
  331. },
  332. {
  333. "name": "STATE",
  334. "type": "DefaultString",
  335. "remark": "",
  336. "chnname": "状态"
  337. },
  338. {
  339. "name": "CREATED_BY",
  340. "type": "IdOrKey",
  341. "remark": "",
  342. "chnname": "创建人"
  343. },
  344. {
  345. "name": "CREATED_TIME",
  346. "type": "DateTime",
  347. "remark": "",
  348. "chnname": "创建时间"
  349. },
  350. {
  351. "name": "UPDATED_BY",
  352. "type": "IdOrKey",
  353. "remark": "",
  354. "chnname": "更新人"
  355. },
  356. {
  357. "name": "UPDATED_TIME",
  358. "type": "DateTime",
  359. "remark": "",
  360. "chnname": "更新时间"
  361. },
  362. {
  363. "name": "IS_DEL",
  364. "type": "Integer",
  365. "remark": "",
  366. "chnname": "删除标志",
  367. "notNull": true
  368. }
  369. ],
  370. "indexs": [],
  371. "headers": [
  372. {
  373. "fieldName": "chnname",
  374. "relationNoShow": false
  375. },
  376. {
  377. "fieldName": "name",
  378. "relationNoShow": false
  379. },
  380. {
  381. "fieldName": "type",
  382. "relationNoShow": false
  383. },
  384. {
  385. "fieldName": "dataType",
  386. "relationNoShow": true
  387. },
  388. {
  389. "fieldName": "remark",
  390. "relationNoShow": true
  391. },
  392. {
  393. "fieldName": "pk",
  394. "relationNoShow": false
  395. },
  396. {
  397. "fieldName": "notNull",
  398. "relationNoShow": true
  399. },
  400. {
  401. "fieldName": "autoIncrement",
  402. "relationNoShow": true
  403. },
  404. {
  405. "fieldName": "defaultValue",
  406. "relationNoShow": true
  407. },
  408. {
  409. "fieldName": "relationNoShow",
  410. "relationNoShow": true
  411. },
  412. {
  413. "fieldName": "uiHint",
  414. "relationNoShow": true
  415. }
  416. ],
  417. "chnname": "课程表"
  418. }
  419. ],
  420. "graphCanvas": {
  421. "nodes": [
  422. {
  423. "shape": "table",
  424. "title": "COURSE_DETAIL",
  425. "moduleName": false,
  426. "x": 1420,
  427. "y": 390,
  428. "id": "11e3c11b"
  429. },
  430. {
  431. "shape": "table",
  432. "title": "COURSE",
  433. "moduleName": false,
  434. "x": 940,
  435. "y": 210,
  436. "id": "113d6b3b"
  437. },
  438. {
  439. "shape": "table",
  440. "title": "CLASS",
  441. "moduleName": false,
  442. "x": 450,
  443. "y": 360,
  444. "id": "9453a63e"
  445. }
  446. ],
  447. "edges": [
  448. {
  449. "shape": "erdRelation",
  450. "relation": "0,n:1",
  451. "source": "11e3c11b",
  452. "target": "113d6b3b",
  453. "id": "b5b5d6cd",
  454. "controlPoints": [
  455. {
  456. "x": 1280.896484375,
  457. "y": 242.14024390243904
  458. },
  459. {
  460. "x": 1079.4375,
  461. "y": 122.15
  462. }
  463. ],
  464. "sourceAnchor": 2,
  465. "targetAnchor": 1
  466. },
  467. {
  468. "shape": "erdRelation",
  469. "relation": "0,n:1",
  470. "source": "113d6b3b",
  471. "target": "9453a63e",
  472. "id": "681521f7",
  473. "controlPoints": [
  474. {
  475. "x": 800.5625,
  476. "y": 182.39
  477. },
  478. {
  479. "x": 588.6552734375,
  480. "y": 302.1973684210526
  481. }
  482. ],
  483. "sourceAnchor": 6,
  484. "targetAnchor": 1
  485. }
  486. ]
  487. },
  488. "associations": [
  489. {
  490. "relation": "0,n:1",
  491. "from": {
  492. "entity": "COURSE_DETAIL",
  493. "field": "COURSE_ID"
  494. },
  495. "to": {
  496. "entity": "COURSE",
  497. "field": "ID"
  498. }
  499. },
  500. {
  501. "relation": "0,n:1",
  502. "from": {
  503. "entity": "COURSE",
  504. "field": "CLASS_ID"
  505. },
  506. "to": {
  507. "entity": "CLASS",
  508. "field": "ID"
  509. }
  510. }
  511. ]
  512. },
  513. {
  514. "name": "DUTY",
  515. "chnname": "实验室值班人员管理",
  516. "entities": [
  517. {
  518. "title": "DUTY",
  519. "fields": [
  520. {
  521. "name": "ID",
  522. "type": "Integer",
  523. "remark": "",
  524. "chnname": "主键",
  525. "pk": true,
  526. "notNull": true,
  527. "autoIncrement": true
  528. },
  529. {
  530. "name": "YEAR",
  531. "type": "DefaultString",
  532. "remark": "",
  533. "chnname": "学年"
  534. },
  535. {
  536. "name": "TERM",
  537. "type": "DefaultString",
  538. "remark": "",
  539. "chnname": "学期"
  540. },
  541. {
  542. "name": "TITLE",
  543. "type": "DefaultString",
  544. "remark": "",
  545. "chnname": "标题"
  546. },
  547. {
  548. "name": "LOCAL",
  549. "type": "DefaultString",
  550. "remark": "",
  551. "chnname": "地点"
  552. },
  553. {
  554. "name": "TIME",
  555. "type": "Integer",
  556. "remark": "",
  557. "chnname": "时间段"
  558. },
  559. {
  560. "name": "MONDAY",
  561. "type": "Integer",
  562. "remark": "",
  563. "chnname": "周一"
  564. },
  565. {
  566. "name": "TUESDAY",
  567. "type": "Integer",
  568. "remark": "",
  569. "chnname": "周二"
  570. },
  571. {
  572. "name": "WEDNESDAY",
  573. "type": "Integer",
  574. "remark": "",
  575. "chnname": "周三"
  576. },
  577. {
  578. "name": "THURSDAY",
  579. "type": "Integer",
  580. "remark": "",
  581. "chnname": "周四"
  582. },
  583. {
  584. "name": "FRIDAY",
  585. "type": "Integer",
  586. "remark": "",
  587. "chnname": "周五"
  588. },
  589. {
  590. "name": "SATURDAY",
  591. "type": "Integer",
  592. "remark": "",
  593. "chnname": "周六"
  594. },
  595. {
  596. "name": "SUNDAY",
  597. "type": "Integer",
  598. "remark": "",
  599. "chnname": "周天"
  600. },
  601. {
  602. "name": "CREATED_BY",
  603. "type": "IdOrKey",
  604. "remark": "",
  605. "chnname": "创建人"
  606. },
  607. {
  608. "name": "CREATED_TIME",
  609. "type": "DateTime",
  610. "remark": "",
  611. "chnname": "创建时间"
  612. },
  613. {
  614. "name": "UPDATED_BY",
  615. "type": "IdOrKey",
  616. "remark": "",
  617. "chnname": "更新人"
  618. },
  619. {
  620. "name": "UPDATED_TIME",
  621. "type": "DateTime",
  622. "remark": "",
  623. "chnname": "更新时间"
  624. },
  625. {
  626. "name": "IS_DEL",
  627. "type": "Integer",
  628. "remark": "",
  629. "chnname": "删除标志",
  630. "notNull": true
  631. }
  632. ],
  633. "indexs": [],
  634. "headers": [
  635. {
  636. "fieldName": "chnname",
  637. "relationNoShow": false
  638. },
  639. {
  640. "fieldName": "name",
  641. "relationNoShow": false
  642. },
  643. {
  644. "fieldName": "type",
  645. "relationNoShow": false
  646. },
  647. {
  648. "fieldName": "dataType",
  649. "relationNoShow": true
  650. },
  651. {
  652. "fieldName": "remark",
  653. "relationNoShow": true
  654. },
  655. {
  656. "fieldName": "pk",
  657. "relationNoShow": false
  658. },
  659. {
  660. "fieldName": "notNull",
  661. "relationNoShow": true
  662. },
  663. {
  664. "fieldName": "autoIncrement",
  665. "relationNoShow": true
  666. },
  667. {
  668. "fieldName": "defaultValue",
  669. "relationNoShow": true
  670. },
  671. {
  672. "fieldName": "relationNoShow",
  673. "relationNoShow": true
  674. },
  675. {
  676. "fieldName": "uiHint",
  677. "relationNoShow": true
  678. }
  679. ],
  680. "chnname": "值班表"
  681. }
  682. ],
  683. "graphCanvas": {
  684. "edges": [],
  685. "nodes": []
  686. },
  687. "associations": []
  688. },
  689. {
  690. "name": "INFORMATION",
  691. "chnname": "信息发布",
  692. "entities": [
  693. {
  694. "title": "INFORMATION",
  695. "fields": [
  696. {
  697. "name": "ID",
  698. "type": "Integer",
  699. "remark": "",
  700. "chnname": "主键",
  701. "pk": true,
  702. "notNull": true,
  703. "autoIncrement": true
  704. },
  705. {
  706. "name": "TITLE",
  707. "type": "DefaultString",
  708. "remark": "",
  709. "chnname": "标题"
  710. },
  711. {
  712. "name": "CONTENT",
  713. "type": "LongText",
  714. "remark": "",
  715. "chnname": "内容"
  716. },
  717. {
  718. "name": "FLAG",
  719. "type": "Integer",
  720. "remark": "",
  721. "chnname": "类别"
  722. },
  723. {
  724. "name": "STATUS",
  725. "type": "Integer",
  726. "remark": "",
  727. "chnname": "状态"
  728. },
  729. {
  730. "name": "CREATED_BY",
  731. "type": "IdOrKey",
  732. "remark": "",
  733. "chnname": "创建人"
  734. },
  735. {
  736. "name": "CREATED_TIME",
  737. "type": "DateTime",
  738. "remark": "",
  739. "chnname": "创建时间"
  740. },
  741. {
  742. "name": "UPDATED_BY",
  743. "type": "IdOrKey",
  744. "remark": "",
  745. "chnname": "更新人"
  746. },
  747. {
  748. "name": "UPDATED_TIME",
  749. "type": "DateTime",
  750. "remark": "",
  751. "chnname": "更新时间"
  752. },
  753. {
  754. "name": "IS_DEL",
  755. "type": "Integer",
  756. "remark": "",
  757. "chnname": "删除标志",
  758. "notNull": true
  759. }
  760. ],
  761. "indexs": [],
  762. "headers": [
  763. {
  764. "fieldName": "chnname",
  765. "relationNoShow": false
  766. },
  767. {
  768. "fieldName": "name",
  769. "relationNoShow": false
  770. },
  771. {
  772. "fieldName": "type",
  773. "relationNoShow": false
  774. },
  775. {
  776. "fieldName": "dataType",
  777. "relationNoShow": true
  778. },
  779. {
  780. "fieldName": "remark",
  781. "relationNoShow": true
  782. },
  783. {
  784. "fieldName": "pk",
  785. "relationNoShow": false
  786. },
  787. {
  788. "fieldName": "notNull",
  789. "relationNoShow": true
  790. },
  791. {
  792. "fieldName": "autoIncrement",
  793. "relationNoShow": true
  794. },
  795. {
  796. "fieldName": "defaultValue",
  797. "relationNoShow": true
  798. },
  799. {
  800. "fieldName": "relationNoShow",
  801. "relationNoShow": true
  802. },
  803. {
  804. "fieldName": "uiHint",
  805. "relationNoShow": true
  806. }
  807. ],
  808. "chnname": "信息表"
  809. }
  810. ],
  811. "graphCanvas": {
  812. "nodes": [],
  813. "edges": []
  814. },
  815. "associations": []
  816. }
  817. ],
  818. "dataTypeDomains": {
  819. "datatype": [
  820. {
  821. "name": "默认字串",
  822. "code": "DefaultString",
  823. "apply": {
  824. "JAVA": {
  825. "type": "String"
  826. },
  827. "MYSQL": {
  828. "type": "VARCHAR(32)"
  829. },
  830. "ORACLE": {
  831. "type": "NVARCHAR2(32)"
  832. },
  833. "SQLServer": {
  834. "type": "NVARCHAR(32)"
  835. },
  836. "PostgreSQL": {
  837. "type": "VARCHAR(32)"
  838. }
  839. }
  840. },
  841. {
  842. "name": "标识号",
  843. "code": "IdOrKey",
  844. "apply": {
  845. "JAVA": {
  846. "type": "String"
  847. },
  848. "ORACLE": {
  849. "type": "VARCHAR2(32)"
  850. },
  851. "MYSQL": {
  852. "type": "VARCHAR(32)"
  853. },
  854. "SQLServer": {
  855. "type": "VARCHAR(32)"
  856. },
  857. "PostgreSQL": {
  858. "type": "VARCHAR(32)"
  859. }
  860. }
  861. },
  862. {
  863. "name": "标识号-长",
  864. "code": "LongKey",
  865. "apply": {
  866. "MYSQL": {
  867. "type": "VARCHAR(64)"
  868. },
  869. "ORACLE": {
  870. "type": "VARCHAR2(64)"
  871. },
  872. "JAVA": {
  873. "type": "String"
  874. },
  875. "SQLServer": {
  876. "type": "VARCHAR(64)"
  877. },
  878. "PostgreSQL": {
  879. "type": "VARCHAR(64)"
  880. }
  881. }
  882. },
  883. {
  884. "name": "名称",
  885. "code": "Name",
  886. "apply": {
  887. "JAVA": {
  888. "type": "String"
  889. },
  890. "MYSQL": {
  891. "type": "VARCHAR(128)"
  892. },
  893. "ORACLE": {
  894. "type": "NVARCHAR2(128)"
  895. },
  896. "SQLServer": {
  897. "type": "NVARCHAR(128)"
  898. },
  899. "PostgreSQL": {
  900. "type": "VARCHAR(128)"
  901. }
  902. }
  903. },
  904. {
  905. "name": "备注说明",
  906. "code": "Intro",
  907. "apply": {
  908. "JAVA": {
  909. "type": "String"
  910. },
  911. "MYSQL": {
  912. "type": "VARCHAR(512)"
  913. },
  914. "ORACLE": {
  915. "type": "NVARCHAR2(512)"
  916. },
  917. "SQLServer": {
  918. "type": "NVARCHAR(512)"
  919. },
  920. "PostgreSQL": {
  921. "type": "VARCHAR(512)"
  922. }
  923. }
  924. },
  925. {
  926. "name": "字串-短",
  927. "code": "ShortString",
  928. "apply": {
  929. "JAVA": {
  930. "type": "String"
  931. },
  932. "MYSQL": {
  933. "type": "VARCHAR(128)"
  934. },
  935. "ORACLE": {
  936. "type": "NVARCHAR2(128)"
  937. },
  938. "SQLServer": {
  939. "type": "NVARCHAR(128)"
  940. },
  941. "PostgreSQL": {
  942. "type": "VARCHAR(128)"
  943. }
  944. }
  945. },
  946. {
  947. "name": "字串-中",
  948. "code": "MiddleString",
  949. "apply": {
  950. "JAVA": {
  951. "type": "String"
  952. },
  953. "MYSQL": {
  954. "type": "VARCHAR(1024)"
  955. },
  956. "ORACLE": {
  957. "type": "NVARCHAR2(1024)"
  958. },
  959. "SQLServer": {
  960. "type": "NVARCHAR(1024)"
  961. },
  962. "PostgreSQL": {
  963. "type": "VARCHAR(1024)"
  964. }
  965. }
  966. },
  967. {
  968. "name": "字串-长",
  969. "code": "LongString",
  970. "apply": {
  971. "JAVA": {
  972. "type": "String"
  973. },
  974. "ORACLE": {
  975. "type": "NVARCHAR2(3072)"
  976. },
  977. "MYSQL": {
  978. "type": "VARCHAR(3072)"
  979. },
  980. "SQLServer": {
  981. "type": "NVARCHAR(3072)"
  982. },
  983. "PostgreSQL": {
  984. "type": "VARCHAR(3072)"
  985. }
  986. }
  987. },
  988. {
  989. "name": "大文本",
  990. "code": "LongText",
  991. "apply": {
  992. "JAVA": {
  993. "type": "String"
  994. },
  995. "MYSQL": {
  996. "type": "TEXT"
  997. },
  998. "ORACLE": {
  999. "type": "CLOB"
  1000. },
  1001. "SQLServer": {
  1002. "type": "NTEXT"
  1003. },
  1004. "PostgreSQL": {
  1005. "type": "TEXT"
  1006. }
  1007. }
  1008. },
  1009. {
  1010. "name": "小数",
  1011. "code": "Double",
  1012. "apply": {
  1013. "JAVA": {
  1014. "type": "Double"
  1015. },
  1016. "MYSQL": {
  1017. "type": "DECIMAL(32,10)"
  1018. },
  1019. "ORACLE": {
  1020. "type": "NUMBER(32,10)"
  1021. },
  1022. "SQLServer": {
  1023. "type": "DECIMAL(32,10)"
  1024. },
  1025. "PostgreSQL": {
  1026. "type": "DECIMAL(32,10)"
  1027. }
  1028. }
  1029. },
  1030. {
  1031. "name": "比例",
  1032. "code": "Ratio",
  1033. "apply": {
  1034. "MYSQL": {
  1035. "type": "DECIMAL(4,2)"
  1036. },
  1037. "JAVA": {
  1038. "type": "Double"
  1039. },
  1040. "ORACLE": {
  1041. "type": "NUMBER(4,2)"
  1042. },
  1043. "SQLServer": {
  1044. "type": "DECIMAL(4,2)"
  1045. },
  1046. "PostgreSQL": {
  1047. "type": "DECIMAL(4,2)"
  1048. }
  1049. }
  1050. },
  1051. {
  1052. "name": "整数",
  1053. "code": "Integer",
  1054. "apply": {
  1055. "JAVA": {
  1056. "type": "Integer"
  1057. },
  1058. "MYSQL": {
  1059. "type": "INT"
  1060. },
  1061. "ORACLE": {
  1062. "type": "INT"
  1063. },
  1064. "SQLServer": {
  1065. "type": "INT"
  1066. },
  1067. "PostgreSQL": {
  1068. "type": "INT"
  1069. }
  1070. }
  1071. },
  1072. {
  1073. "name": "大整数",
  1074. "code": "BigInt",
  1075. "apply": {
  1076. "MYSQL": {
  1077. "type": "BIGINT"
  1078. },
  1079. "JAVA": {
  1080. "type": "Long"
  1081. },
  1082. "ORACLE": {
  1083. "type": "NUMBER"
  1084. },
  1085. "SQLServer": {
  1086. "type": "BIGINT"
  1087. },
  1088. "PostgreSQL": {
  1089. "type": "BIGINT"
  1090. }
  1091. }
  1092. },
  1093. {
  1094. "name": "金额",
  1095. "code": "Money",
  1096. "apply": {
  1097. "JAVA": {
  1098. "type": "Double"
  1099. },
  1100. "MYSQL": {
  1101. "type": "DECIMAL(32,8)"
  1102. },
  1103. "ORACLE": {
  1104. "type": "NUMBER(32,8)"
  1105. },
  1106. "SQLServer": {
  1107. "type": "DECIMAL(32,8)"
  1108. },
  1109. "PostgreSQL": {
  1110. "type": "DECIMAL(32,8)"
  1111. }
  1112. }
  1113. },
  1114. {
  1115. "name": "是否",
  1116. "code": "YesNo",
  1117. "apply": {
  1118. "JAVA": {
  1119. "type": "String"
  1120. },
  1121. "MYSQL": {
  1122. "type": "VARCHAR(1)"
  1123. },
  1124. "ORACLE": {
  1125. "type": "VARCHAR2(1)"
  1126. },
  1127. "SQLServer": {
  1128. "type": "VARCHAR(1)"
  1129. },
  1130. "PostgreSQL": {
  1131. "type": "VARCHAR(1)"
  1132. }
  1133. }
  1134. },
  1135. {
  1136. "name": "数据字典",
  1137. "code": "Dict",
  1138. "apply": {
  1139. "JAVA": {
  1140. "type": "String"
  1141. },
  1142. "MYSQL": {
  1143. "type": "VARCHAR(32)"
  1144. },
  1145. "ORACLE": {
  1146. "type": "VARCHAR2(32)"
  1147. },
  1148. "SQLServer": {
  1149. "type": "VARCHAR(32)"
  1150. },
  1151. "PostgreSQL": {
  1152. "type": "VARCHAR(32)"
  1153. }
  1154. }
  1155. },
  1156. {
  1157. "name": "日期",
  1158. "code": "Date",
  1159. "apply": {
  1160. "JAVA": {
  1161. "type": "Date"
  1162. },
  1163. "MYSQL": {
  1164. "type": "DATE"
  1165. },
  1166. "ORACLE": {
  1167. "type": "DATE"
  1168. },
  1169. "SQLServer": {
  1170. "type": "DATE"
  1171. },
  1172. "PostgreSQL": {
  1173. "type": "DATE"
  1174. }
  1175. }
  1176. },
  1177. {
  1178. "name": "日期时间",
  1179. "code": "DateTime",
  1180. "apply": {
  1181. "JAVA": {
  1182. "type": "Date"
  1183. },
  1184. "MYSQL": {
  1185. "type": "DATETIME"
  1186. },
  1187. "ORACLE": {
  1188. "type": "DATE"
  1189. },
  1190. "SQLServer": {
  1191. "type": "DATE"
  1192. },
  1193. "PostgreSQL": {
  1194. "type": "DATE"
  1195. }
  1196. }
  1197. },
  1198. {
  1199. "name": "单字符",
  1200. "code": "Char",
  1201. "apply": {
  1202. "MYSQL": {
  1203. "type": "CHAR(1)"
  1204. },
  1205. "ORACLE": {
  1206. "type": "CHAR(1)"
  1207. },
  1208. "JAVA": {
  1209. "type": "String"
  1210. },
  1211. "SQLServer": {
  1212. "type": "CHAR(1)"
  1213. },
  1214. "PostgreSQL": {
  1215. "type": "CHAR(1)"
  1216. }
  1217. }
  1218. }
  1219. ],
  1220. "database": [
  1221. {
  1222. "code": "MYSQL",
  1223. "template": "DROP TABLE {{=it.entity.title}};\n$blankline\nCREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.pk ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,';')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n) COMMENT = '{{=it.func.join(it.entity.chnname,it.entity.remark,';') }}'",
  1224. "fileShow": true,
  1225. "defaultDatabase": true,
  1226. "createTableTemplate": "CREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'AUTO_INCREMENT' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,' ')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n) COMMENT = '{{=it.func.join(it.entity.chnname,it.entity.remark,' ') }}'{{=it.separator}}\n$blankline\n",
  1227. "deleteTableTemplate": "DROP TABLE {{=it.entity.title}}{{=it.separator}}",
  1228. "rebuildTableTemplate": "create table PDMAN_UP_{{=it.oldEntity.title}}\nas select * from {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\ndrop table {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\nCREATE TABLE {{=it.newEntity.title}}(\n{{ pkList = [] ; }}\n{{~it.newEntity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,';')}}' {{= index < it.newEntity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n) COMMENT = '{{=it.func.join(it.newEntity.chnname,it.newEntity.remark,';') }}'{{=it.separator}}\n$blankline\n\n{{ sameCols = it.func.intersect(it.newEntity.fields,it.oldEntity.fields) ;}}\ninsert into {{=it.newEntity.title}}(\n{{~sameCols:field:index}}\n {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}\n) \nselect \n{{~sameCols:field:index}}\n {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}\nfrom PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\ndrop table PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n{{~it.newEntity.indexs:index}}\nALTER TABLE {{=it.newEntity.title}} ADD {{? index.isUnique}}UNIQUE{{??}}INDEX{{?}} {{=index.name}}({{=it.func.join(...index.fields,',')}}){{=it.separator}}\n{{~}}",
  1229. "createFieldTemplate": "ALTER TABLE {{=it.entity.title}} ADD COLUMN {{=it.field.name}} {{=it.field.type}} {{? it.field.notNull}}NOT NULL{{?}} {{? it.field.defaultValue}}DEFAULT {{? null==it.field.defaultValue}}NULL{{??}}'{{=it.field.defaultValue}}'{{?}}{{?}} {{? it.field.autoIncrement}}AUTO_INCREMENT{{?}} {{? it.field.pk}}PRIMARY KEY{{?}} {{? it.field.chnname}}COMMENT '{{=it.field.chnname}}'{{?}} {{? it.field.addAfter}}AFTER {{=it.field.addAfter}}{{?}}{{=it.separator}}",
  1230. "updateFieldTemplate": "ALTER TABLE {{=it.entity.title}} MODIFY COLUMN {{=it.field.name}} {{=it.field.type}} {{? it.field.notNull}}NOT NULL{{?}} {{? it.field.defaultValue}}DEFAULT {{? null==it.field.defaultValue}}NULL{{??}}'{{=it.field.defaultValue}}'{{?}}{{?}} {{? it.field.autoIncrement}}AUTO_INCREMENT{{?}} {{? it.field.chnname}}COMMENT '{{=it.field.chnname}}'{{?}}{{=it.separator}}",
  1231. "deleteFieldTemplate": "ALTER TABLE {{=it.entity.title}} DROP {{=it.field.name}}{{=it.separator}}",
  1232. "deleteIndexTemplate": "ALTER TABLE {{=it.entity.title}} DROP INDEX {{=it.index.name}}{{=it.separator}}",
  1233. "createIndexTemplate": "ALTER TABLE {{=it.entity.title}} ADD {{? it.index.isUnique}}UNIQUE{{??}}INDEX{{?}} {{=it.index.name}}({{=it.func.join(...it.index.fields,',')}}){{=it.separator}}",
  1234. "updateTableComment": "ALTER TABLE {{=it.entity.title}} COMMENT '{{=it.entity.chnname}}'{{=it.separator}}"
  1235. },
  1236. {
  1237. "code": "ORACLE",
  1238. "template": "DROP TABLE {{=it.entity.title}}{{=it.separator}}\n$blankline\nCREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.pk ? 'NOT NULL' : '' }} {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n){{=it.separator}}\n$blankline\nCOMMENT ON TABLE {{=it.entity.title}} IS '{{=it.func.join(it.entity.chnname,it.entity.remark,';') }}'{{=it.separator}}\n{{~it.entity.fields:field:index}}\nCOMMENT ON COLUMN {{=it.entity.title}}.{{=field.name}} IS '{{=it.func.join(field.chnname,field.remark,';')}}'{{=it.separator}}\n{{~}}",
  1239. "createTableTemplate": "CREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}}{{? field.defaultValue}} DEFAULT {{=field.defaultValue}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n){{=it.separator}}\n$blankline\n{{? it.entity.chnname || it.entity.remark}}COMMENT ON TABLE {{=it.entity.title}} IS {{? it.entity.remark}}'{{=it.entity.remark}}'{{??}}'{{=it.entity.chnname}}'{{?}}{{=it.separator}}{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.chnname || field.remark}}COMMENT ON COLUMN {{=it.entity.title}}.{{=field.name}} IS {{? field.remark}}'{{=field.remark}}'{{??}}'{{=field.chnname}}'{{?}}{{=it.separator}}{{?}}\n{{~}}",
  1240. "deleteTableTemplate": "DROP TABLE {{=it.entity.title}}{{=it.separator}}\r\n$blankline",
  1241. "rebuildTableTemplate": "CREATE TABLE PDMAN_UP_{{=it.oldEntity.title}}\nAS SELECT * FROM {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\nDROP TABLE {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\nCREATE TABLE {{=it.newEntity.title}}(\n{{ pkList = [] ; }}{{~it.newEntity.fields:field:index}}{{? field.pk }}{{ pkList.push(field.name) }}{{?}} {{=field.name}} {{=field.type}}{{? field.defaultValue}} DEFAULT {{=field.defaultValue}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.newEntity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}{{? pkList.length >0 }} PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}}){{?}}\n){{=it.separator}}\n$blankline\n{{? it.newEntity.chnname || it.newEntity.remark}}COMMENT ON TABLE {{=it.newEntity.title}} IS {{? it.newEntity.remark}}'{{=it.entity.remark}}'{{??}}'{{=it.newEntity.chnname}}'{{?}};{{?}}{{=it.separator}}\n{{~it.newEntity.fields:field:index}}\n{{? field.chnname || field.remark}}COMMENT ON COLUMN {{=it.newEntity.title}}.{{=field.name}} IS {{? field.remark}}'{{=field.remark}}'{{??}}'{{=field.chnname}}'{{?}};{{?}}{{=it.separator}}\n{{~}}\n{{ sameCols = it.func.intersect(it.newEntity.fields,it.oldEntity.fields) ;}}\n$blankline\nINSERT INTO {{=it.newEntity.title}}(\n{{~sameCols:field:index}} {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}) \nSELECT\n{{~sameCols:field:index}} {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}FROM PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}\n\nDROP TABLE PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}\n{{~it.newEntity.indexs:index}}\nCREATE{{? index.isUnique}} UNIQUE{{?}} INDEX {{=index.name}} ON {{=it.newEntity.title}}({{=it.func.join(index.fields,',')}}){{=it.separator}}\n{{~}}",
  1242. "createFieldTemplate": "ALTER TABLE {{=it.entity.title}} ADD({{=it.field.name}} {{=it.field.type}}{{? it.field.defaultValue}} DEFAULT {{=it.field.defaultValue}}{{?}}{{? it.field.notNull}} NOT NULL{{?}}){{=it.separator}}\r\n{{? it.field.chnname || it.field.remark}}COMMENT ON COLUMN {{=it.entity.title}}.{{=it.field.name}} IS {{? it.field.remark}}'{{=it.field.remark}}'{{??}}'{{=it.field.chnname}}'{{?}}{{=it.separator}}{{?}}\r\n$blankline",
  1243. "updateFieldTemplate": "ALTER TABLE {{=it.entity.title}} MODIFY({{=it.field.name}} {{=it.field.type}}{{? it.field.defaultValue}} DEFAULT {{=it.field.defaultValue}}{{?}}{{? it.field.notNull}} NOT NULL{{?}}){{=it.separator}}\r\n{{? it.field.chnname || it.field.remark}}COMMENT ON COLUMN {{=it.entity.title}}.{{=it.field.name}} IS {{? it.field.remark}}'{{=it.field.remark}}'{{??}}'{{=it.field.chnname}}'{{?}}{{=it.separator}}{{=it.separator}}{{?}}\r\n$blankline",
  1244. "deleteFieldTemplate": "ALTER TABLE {{=it.entity.title}} DROP({{=it.field.name}}){{=it.separator}}\r\n$blankline",
  1245. "deleteIndexTemplate": "DROP INDEX {{=it.entity.title}}.{{=it.index.name}}{{=it.separator}}\r\n$blankline",
  1246. "createIndexTemplate": "CREATE{{? it.index.isUnique}} UNIQUE{{?}} INDEX {{=it.index.name}} ON {{=it.entity.title}}({{=it.func.join(it.index.fields,',')}}){{=it.separator}}\r\n$blankline",
  1247. "updateTableComment": "{{? it.entity.chnname || it.entity.remark}}COMMENT ON TABLE {{=it.entity.title}} IS {{? it.entity.remark}}'{{=it.entity.remark}}'{{??}}'{{=it.entity.chnname}}'{{?}}{{=it.separator}}{{?}}\r\n$blankline"
  1248. },
  1249. {
  1250. "code": "SQLServer",
  1251. "createTableTemplate": "CREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} {{= field.autoIncrement ? 'IDENTITY(1,1)' : '' }} {{= field.defaultValue ? it.func.join('DEFAULT',field.defaultValue,' ') : '' }} {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n CONSTRAINT PK_{{=it.entity.title}} PRIMARY KEY CLUSTERED ({{~pkList:pkName:i}}{{= pkName }} ASC {{= i<pkList.length-1 ? ',' : '' }}{{~}}) ON [PRIMARY] \n{{?}}\n){{=it.separator}}\n\n$blankline\nEXECUTE sp_addextendedproperty N'MS_Description', '{{= it.entity.chnname || it.entity.remark}}', N'user', N'dbo', N'table', N'{{=it.entity.title}}', NULL, NULL{{=it.separator}}\n{{~it.entity.fields:field:index}}\n{{? field.chnname || field.remark}}EXECUTE sp_addextendedproperty N'MS_Description', {{? field.remark}}'{{=field.remark}}'{{??}}'{{=field.chnname}}'{{?}}, N'user', N'dbo', N'table', N'{{=it.entity.title}}', N'column', N'{{=field.name}}'{{=it.separator}}{{?}}\n{{~}}\n",
  1252. "deleteTableTemplate": "",
  1253. "rebuildTableTemplate": "",
  1254. "createFieldTemplate": "",
  1255. "updateFieldTemplate": "",
  1256. "deleteFieldTemplate": "",
  1257. "deleteIndexTemplate": "",
  1258. "createIndexTemplate": "",
  1259. "updateTableComment": ""
  1260. },
  1261. {
  1262. "code": "PostgreSQL",
  1263. "template": "DROP TABLE {{=it.entity.title}};\n$blankline\nCREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.pk ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,';')}}' {{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n) COMMENT = '{{=it.func.join(it.entity.chnname,it.entity.remark,';') }}'",
  1264. "createTableTemplate": "CREATE TABLE {{=it.entity.title}}(\n{{ pkList = [] ; }}\n{{~it.entity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}}{{? field.defaultValue}} DEFAULT {{=field.defaultValue}}{{?}}{{= field.notNull ? ' NOT NULL' : '' }}{{= index < it.entity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n){{=it.separator}}\n$blankline\n{{? it.entity.chnname || it.entity.remark}}COMMENT ON TABLE {{=it.entity.title}} IS {{? it.entity.remark}}'{{=it.entity.remark}}'{{??}}'{{=it.entity.chnname}}'{{?}}{{=it.separator}}{{?}}\n{{~it.entity.fields:field:index}}\n{{? field.chnname || field.remark}}COMMENT ON COLUMN {{=it.entity.title}}.{{=field.name}} IS {{? field.remark}}'{{=field.remark}}'{{??}}'{{=field.chnname}}'{{?}}{{=it.separator}}{{?}}\n{{~}}",
  1265. "deleteTableTemplate": "DROP TABLE {{=it.entity.title}}{{=it.separator}}",
  1266. "rebuildTableTemplate": "create table PDMAN_UP_{{=it.oldEntity.title}}\nas select * from {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\ndrop table {{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\nCREATE TABLE {{=it.newEntity.title}}(\n{{ pkList = [] ; }}\n{{~it.newEntity.fields:field:index}}\n {{? field.pk }}{{ pkList.push(field.name) }}{{?}}\n {{=field.name}} {{=field.type}} {{= field.notNull ? 'NOT NULL' : '' }} COMMENT '{{=it.func.join(field.chnname,field.remark,';')}}' {{= index < it.newEntity.fields.length-1 ? ',' : ( pkList.length>0 ? ',' :'' ) }}\n{{~}}\n{{? pkList.length >0 }}\n PRIMARY KEY ({{~pkList:pkName:i}}{{= pkName }}{{= i<pkList.length-1 ? ',' : '' }}{{~}})\n{{?}}\n) COMMENT = '{{=it.func.join(it.newEntity.chnname,it.newEntity.remark,';') }}'{{=it.separator}}\n$blankline\n\n{{ sameCols = it.func.intersect(it.newEntity.fields,it.oldEntity.fields) ;}}\ninsert into {{=it.newEntity.title}}(\n{{~sameCols:field:index}}\n {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}\n) \nselect \n{{~sameCols:field:index}}\n {{=field.name}}{{? index<sameCols.length-1}},{{?}}\n{{~}}\nfrom PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}\n$blankline\n\ndrop table PDMAN_UP_{{=it.oldEntity.title}}{{=it.separator}}",
  1267. "createFieldTemplate": "ALTER TABLE {{=it.entity.title}} ADD COLUMN {{=it.field.name}} {{=it.field.type}} {{? it.field.notNull}}NOT NULL{{?}} {{? it.field.defaultValue}}DEFAULT {{? null==it.field.defaultValue}}NULL{{??}}'{{=it.field.defaultValue}}'{{?}}{{?}} {{? it.field.autoIncrement}}AUTO_INCREMENT{{?}} {{? it.field.pk}}PRIMARY KEY{{?}} {{? it.field.chnname}}COMMENT '{{=it.field.chnname}}'{{?}} {{? it.field.addAfter}}AFTER {{=it.field.addAfter}}{{?}}{{=it.separator}}",
  1268. "updateFieldTemplate": "ALTER TABLE {{=it.entity.title}} MODIFY COLUMN {{=it.field.name}} {{=it.field.type}} {{? it.field.notNull}}NOT NULL{{?}} {{? it.field.defaultValue}}DEFAULT {{? null==it.field.defaultValue}}NULL{{??}}'{{=it.field.defaultValue}}'{{?}}{{?}} {{? it.field.autoIncrement}}AUTO_INCREMENT{{?}} {{? it.field.chnname}}COMMENT '{{=it.field.chnname}}'{{?}}{{=it.separator}}",
  1269. "deleteFieldTemplate": "ALTER TABLE {{=it.entity.title}} DROP {{=it.field.name}}{{=it.separator}}",
  1270. "deleteIndexTemplate": "ALTER TABLE {{=it.entity.title}} DROP INDEX {{=it.index.name}}{{=it.separator}}",
  1271. "createIndexTemplate": "ALTER TABLE {{=it.entity.title}} ADD {{? it.index.isUnique}}UNIQUE{{??}}INDEX{{?}} {{=it.index.name}}({{=it.func.join(...it.index.fields,',')}}){{=it.separator}}",
  1272. "updateTableComment": "ALTER TABLE {{=it.entity.title}} COMMENT '{{=it.entity.chnname}}'{{=it.separator}}"
  1273. },
  1274. {
  1275. "code": "JAVA",
  1276. "template": "package group.rober.pdman.{{=it.module.name}}.entity;\n$blankline\nimport javax.persistence.*;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n$blankline\n\n/** {{=it.entity.chnname}} */\n@Table(name=\"{{=it.entity.title}}\")\npublic class {{=it.func.camel(it.entity.title,true) }} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n {{? field.pk }}\n @Id\n @GeneratedValue\n {{?}}\n private {{=field.type}} {{=it.func.camel(field.name,false)}} ;\n{{~}}\n$blankline\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n public {{=field.type}} get{{=it.func.camel(field.name,true)}}(){\n return this.{{=it.func.camel(field.name,false)}};\n }\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n public void set{{=it.func.camel(field.name,true)}}({{=field.type}} {{= it.func.camel(field.name,false) }}){\n this.{{=it.func.camel(field.name,false)}} = {{= it.func.camel(field.name,false) }};\n }\n{{~}}\n}",
  1277. "createTableTemplate": "package group.rober.pdman.{{=it.module.name}}.entity;\n$blankline\nimport javax.persistence.*;\nimport java.io.Serializable;\nimport java.util.Date;\n$blankline\n$blankline\n@Table(name=\"{{=it.entity.title}}\")\npublic class {{=it.func.camel(it.entity.title,true) }} implements Serializable,Cloneable{\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n {{? field.pk }}\n @Id\n @GeneratedValue\n {{?}}\n private {{=field.type}} {{=it.func.camel(field.name,false)}} ;\n{{~}}\n$blankline\n{{~it.entity.fields:field:index}}\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n public {{=field.type}} get{{=it.func.camel(field.name,true)}}(){\n return this.{{=it.func.camel(field.name,false)}};\n }\n /** {{=it.func.join(field.chnname,field.remark,';')}} */\n public void set{{=it.func.camel(field.name,true)}}({{=field.type}} {{= it.func.camel(field.name,false) }}){\n this.{{=it.func.camel(field.name,false)}} = {{= it.func.camel(field.name,false) }};\n }\n{{~}}\n}",
  1278. "deleteTableTemplate": "",
  1279. "rebuildTableTemplate": "",
  1280. "createFieldTemplate": "",
  1281. "updateFieldTemplate": "",
  1282. "deleteFieldTemplate": "",
  1283. "deleteIndexTemplate": "",
  1284. "createIndexTemplate": "",
  1285. "updateTableComment": ""
  1286. },
  1287. {
  1288. "code": "go",
  1289. "createTableTemplate": "package {{=it.func.lowerCase(it.module.name,true) }}\n$blankline\nimport (\n \"dashoo.cn/micro_libary/request\"\n \"dashoo.cn/micro_libary/response\"\n \"dashoo.cn/modi_webapi/app/model/{{=it.func.lowerCase(it.module.name,true) }}/{{=it.func.lowerCase(it.entity.title,true) }}_model\"\n service \"dashoo.cn/modi_webapi/app/service/{{=it.func.lowerCase(it.module.name,true) }}\"\n \"github.com/gogf/gf/net/ghttp\"\n \"github.com/gogf/gf/os/glog\"\n)\n$blankline\n// {{=it.entity.chnname}}Controller\ntype {{=it.func.camel(it.entity.title,true) }}Controller struct {\n}\n$blankline\n// GetDetailById 根据id获取{{=it.entity.chnname}}详情信息\nfunc (c *{{=it.func.camel(it.entity.title,true) }}Controller) GetDetailById(r *ghttp.Request) {\n // tenant 租户模式\n tenant := r.Header.Get(\"Tenant\")\n // 主键id\n {{=it.func.camel(it.entity.title,true) }}Id := r.GetInt(\"id\")\n glog.Info({{=it.func.camel(it.entity.title,true) }}Id)\n // 初始化service\n servcie, err := service.New{{=it.func.camel(it.entity.title,true) }}Service(tenant)\n if err != nil {\n response.Json(r, 1, err.Error())\n }\n // 调用service方法\n if {{=it.func.lowerCase(it.entity.title,true) }}, err := servcie.Get{{=it.func.camel(it.entity.title,true) }}ByID({{=it.func.camel(it.entity.title,true) }}Id); err != nil {\n response.Json(r, 1, err.Error())\n } else {\n response.Json(r, 0, \"ok\", {{=it.func.lowerCase(it.entity.title,true) }})\n }\n\n}\n$blankline\n// Save{{=it.func.camel(it.entity.title,true) }} 保存{{=it.entity.chnname}}信息\nfunc (c *{{=it.func.camel(it.entity.title,true) }}Controller) Save(r *ghttp.Request) {\n // tenant 租户模式\n tenant := r.Header.Get(\"Tenant\")\n var addOrUpdateReq *{{=it.func.lowerCase(it.entity.title,true) }}.AddOrUpdateReq\n // 赋值并// 校验参数\n if err := r.Parse(&addOrUpdateReq); err != nil {\n response.Json(r, -1, err.Error())\n }\n\n // 初始化{{=it.entity.chnname}}service\n servcie, err := service.New{{=it.func.camel(it.entity.title,true) }}Service(tenant)\n if err != nil {\n response.Json(r, 1, err.Error())\n }\n // 判断是新增还是删除,获取的id为空新增,不为空则更新\n if addOrUpdateReq.Id > 0 {\n if new{{=it.func.camel(it.entity.title,true) }}, err := servcie.Update(addOrUpdateReq); err != nil {\n response.Json(r, 1, err.Error())\n } else {\n response.Json(r, 0, \"更新成功\", new{{=it.func.camel(it.entity.title,true) }})\n }\n } else {\n addOrUpdateReq.Id = 0\n if newId, err := servcie.Add(addOrUpdateReq); err != nil {\n response.Json(r, 1, err.Error())\n } else {\n response.Json(r, 0, \"新建成功\", newId)\n }\n }\n\n}\n$blankline\n// Delete{{=it.func.camel(it.entity.title,true) }}ById 删除{{=it.entity.chnname}}信息,更新{{=it.entity.chnname}}删除状态isDel=1\nfunc (c *{{=it.func.camel(it.entity.title,true) }}Controller) Delete{{=it.func.camel(it.entity.title,true) }}ById(r *ghttp.Request) {\n\t// tenant 租户模式\n\ttenant := r.Header.Get(\"Tenant\")\n\tIds := r.GetInts(\"ids\")\n\n\t// 初始化{{=it.entity.chnname}}service\n\tservcie, err := service.New{{=it.func.camel(it.entity.title,true) }}Service(tenant)\n\tif err != nil {\n\t\tresponse.Json(r, 1, err.Error())\n\t}\n\tdelReq := new({{=it.func.lowerCase(it.entity.title,true) }}.DeleteReq)\n\tdelReq.Ids = Ids\n\tdelReq.IsDel = 1\n\tif err := servcie.Delete(delReq); err != nil {\n\t\tresponse.Json(r, 1, err.Error())\n\t} else {\n\t\tresponse.Json(r, 0, \"删除成功\")\n\t}\n}\n$blankline\n// GetPageList 分页查询{{=it.entity.chnname}}列表信息\nfunc (c *{{=it.func.camel(it.entity.title,true) }}Controller) GetPageList(r *ghttp.Request) {\n\t// tenant 租户模式\n\ttenant := r.Header.Get(\"Tenant\")\n\tpage := request.GetPageInfo(r)\n\t// 初始化{{=it.entity.chnname}}service\n\tservcie, err := service.New{{=it.func.camel(it.entity.title,true) }}Service(tenant)\n\tif err != nil {\n\t\tresponse.Json(r, 1, err.Error())\n\t}\n\tglog.Info(page)\n\tpageInfo := {{=it.func.lowerCase(it.entity.title,true) }}.PageInfo{\n\t\tCurrent: page.Current,\n\t\tPagesSize: page.Size,\n\t}\n\tselectPageReq := {{=it.func.lowerCase(it.entity.title,true) }}.SelectPageReq{\n\t\tTenant: tenant,\n\t\tName: \"\",\n\t\tPage: &pageInfo,\n\t\t// 排序\n\t\tProp: r.GetString(\"prop\"),\n\t\tOrder: r.GetString(\"order\"),\n\t}\n\tif name := r.GetString(\"name\"); name != \"\" {\n\t\tselectPageReq.Name = name\n\t}\n\t// 分页查询{{=it.entity.chnname}}列表\n\tif {{=it.func.lowerCase(it.entity.title,true) }}List, total, err := servcie.GetPageList(&selectPageReq); err != nil {\n\t\tresponse.Json(r, -1, err.Error())\n\t} else {\n\t\tvar records response.PagedRecords\n\t\trecords.Current = page.Current\n\t\trecords.Size = page.Size\n\t\tif total > 0 {\n\t\t\trecords.Total = total\n\t\t\trecords.Records = {{=it.func.lowerCase(it.entity.title,true) }}List\n\t\t}\n\t\tresponse.Json(r, 0, \"ok\", records)\n\t}\n}",
  1290. "deleteTableTemplate": "",
  1291. "rebuildTableTemplate": "",
  1292. "createFieldTemplate": "",
  1293. "updateFieldTemplate": "",
  1294. "deleteFieldTemplate": "",
  1295. "deleteIndexTemplate": "",
  1296. "createIndexTemplate": "",
  1297. "updateTableComment": ""
  1298. }
  1299. ]
  1300. },
  1301. "profile": {
  1302. "defaultFields": [
  1303. {
  1304. "name": "ID",
  1305. "type": "Integer",
  1306. "remark": "",
  1307. "chnname": "主键",
  1308. "pk": true,
  1309. "notNull": true,
  1310. "autoIncrement": true
  1311. },
  1312. {
  1313. "name": "CREATED_BY",
  1314. "type": "IdOrKey",
  1315. "remark": "",
  1316. "chnname": "创建人"
  1317. },
  1318. {
  1319. "name": "CREATED_TIME",
  1320. "type": "DateTime",
  1321. "remark": "",
  1322. "chnname": "创建时间"
  1323. },
  1324. {
  1325. "name": "UPDATED_BY",
  1326. "type": "IdOrKey",
  1327. "remark": "",
  1328. "chnname": "更新人"
  1329. },
  1330. {
  1331. "name": "UPDATED_TIME",
  1332. "type": "DateTime",
  1333. "remark": "",
  1334. "chnname": "更新时间"
  1335. },
  1336. {
  1337. "name": "IS_DEL",
  1338. "type": "Integer",
  1339. "remark": "",
  1340. "chnname": "删除标志",
  1341. "notNull": true
  1342. }
  1343. ],
  1344. "defaultFieldsType": "1",
  1345. "javaConfig": {
  1346. "JAVA_HOME": "C:\\Program Files\\Java\\jdk1.8.0_181",
  1347. "DB_DRIVE": []
  1348. },
  1349. "sqlConfig": ";",
  1350. "dbs": [
  1351. {
  1352. "name": "内蒙大学lims",
  1353. "defaultDB": true,
  1354. "properties": {
  1355. "driver_class_name": "com.mysql.jdbc.Driver",
  1356. "url": "jdbc:mysql://rm-8vbk16zx2rbfu6jt6uo.mysql.zhangbei.rds.aliyuncs.com:3306/l_lims?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=UTC",
  1357. "password": "TmBT65FNAAqJoBMl",
  1358. "username": "l_lims_u"
  1359. }
  1360. }
  1361. ],
  1362. "wordTemplateConfig": ""
  1363. }
  1364. }