瀏覽代碼

初次提交springboot后端代码

user5 3 年之前
當前提交
502defed85
共有 100 個文件被更改,包括 4223 次插入0 次删除
  1. 二進制
      jeeplus-module/.DS_Store
  2. 194 0
      jeeplus-module/jeeplus-module.iml
  3. 二進制
      jeeplus-module/jeeplus-test/.DS_Store
  4. 25 0
      jeeplus-module/jeeplus-test/.gitignore
  5. 二進制
      jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.jar
  6. 1 0
      jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.properties
  7. 44 0
      jeeplus-module/jeeplus-test/pom.xml
  8. 二進制
      jeeplus-module/jeeplus-test/src/.DS_Store
  9. 二進制
      jeeplus-module/jeeplus-test/src/main/.DS_Store
  10. 二進制
      jeeplus-module/jeeplus-test/src/main/java/.DS_Store
  11. 二進制
      jeeplus-module/jeeplus-test/src/main/java/com/.DS_Store
  12. 二進制
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/.DS_Store
  13. 二進制
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/.DS_Store
  14. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiAuditController.java
  15. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiExpenseController.java
  16. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiLeaveController.java
  17. 88 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiAudit.java
  18. 49 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiExpense.java
  19. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiLeave.java
  20. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiAuditMapper.java
  21. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiExpenseMapper.java
  22. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiLeaveMapper.java
  23. 59 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiAuditMapper.xml
  24. 52 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiExpenseMapper.xml
  25. 44 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiLeaveMapper.xml
  26. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiAuditService.java
  27. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiExpenseService.java
  28. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiLeaveService.java
  29. 98 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiAuditDTO.java
  30. 55 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiExpenseDTO.java
  31. 54 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiLeaveDTO.java
  32. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiAuditWrapper.java
  33. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiExpenseWrapper.java
  34. 36 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiLeaveWrapper.java
  35. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/controller/TestContinentController.java
  36. 92 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/controller/TestCountryController.java
  37. 31 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/domain/TestContinent.java
  38. 39 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/domain/TestCountry.java
  39. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/TestContinentMapper.java
  40. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/TestCountryMapper.java
  41. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/xml/TestContinentMapper.xml
  42. 47 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/xml/TestCountryMapper.xml
  43. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/TestContinentService.java
  44. 45 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/TestCountryService.java
  45. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/dto/TestContinentDTO.java
  46. 41 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/dto/TestCountryDTO.java
  47. 24 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/mapstruct/TestContinentWrapper.java
  48. 38 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/mapstruct/TestCountryWrapper.java
  49. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/CourseController.java
  50. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/StudentController.java
  51. 92 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/StudentCourseController.java
  52. 31 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/Course.java
  53. 31 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/Student.java
  54. 39 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/StudentCourse.java
  55. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/CourseMapper.java
  56. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/StudentCourseMapper.java
  57. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/StudentMapper.java
  58. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/CourseMapper.xml
  59. 46 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/StudentCourseMapper.xml
  60. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/StudentMapper.xml
  61. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/CourseService.java
  62. 45 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/StudentCourseService.java
  63. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/StudentService.java
  64. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/CourseDTO.java
  65. 47 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/StudentCourseDTO.java
  66. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/StudentDTO.java
  67. 24 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/CourseWrapper.java
  68. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/StudentCourseWrapper.java
  69. 24 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/StudentWrapper.java
  70. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/controller/TestNoteController.java
  71. 39 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/domain/TestNote.java
  72. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/mapper/TestNoteMapper.java
  73. 6 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/mapper/xml/TestNoteMapper.xml
  74. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/TestNoteService.java
  75. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/dto/TestNoteDTO.java
  76. 24 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/mapstruct/TestNoteWrapper.java
  77. 92 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/controller/TestFormLeaveController.java
  78. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/domain/TestFormLeave.java
  79. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/mapper/TestFormLeaveMapper.java
  80. 56 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/mapper/xml/TestFormLeaveMapper.xml
  81. 45 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/TestFormLeaveService.java
  82. 59 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/dto/TestFormLeaveDTO.java
  83. 44 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/mapstruct/TestFormLeaveWrapper.java
  84. 二進制
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/.DS_Store
  85. 88 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/controller/TestDataMainFormController.java
  86. 55 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild21.java
  87. 58 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild22.java
  88. 58 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild23.java
  89. 59 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataMainForm.java
  90. 35 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild21Mapper.java
  91. 35 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild22Mapper.java
  92. 35 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild23Mapper.java
  93. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataMainFormMapper.java
  94. 49 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild21Mapper.xml
  95. 49 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild22Mapper.xml
  96. 49 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild23Mapper.xml
  97. 53 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataMainFormMapper.xml
  98. 41 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild21Service.java
  99. 41 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild22Service.java
  100. 0 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild23Service.java

二進制
jeeplus-module/.DS_Store


+ 194 - 0
jeeplus-module/jeeplus-module.iml

@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.6" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.14.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.32" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.7" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.68.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.10" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.53" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.2.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-mail:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.mail:jakarta.mail:1.6.7" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.4.2.Final" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: org.mapstruct:mapstruct-processor:1.4.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.53" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.53" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.microsoft.sqlserver:mssql-jdbc:9.2.1.jre8" level="project" />
+    <orderEntry type="library" name="Maven: net.sourceforge.jtds:jtds:1.3.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.26" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.postgresql:postgresql:42.2.23" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.5.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.2.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.32" level="project" />
+    <orderEntry type="library" name="Maven: cglib:cglib:3.2.7" level="project" />
+    <orderEntry type="library" name="Maven: org.ow2.asm:asm:6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ant:ant:1.10.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.10.3" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet.jsp:jsp-api:2.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-dbcp:commons-dbcp:1.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-pool:commons-pool:1.6" level="project" />
+    <orderEntry type="library" name="Maven: com.auth0:java-jwt:3.4.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.15" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-quartz:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.10" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.8.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.5" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.5.5" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.5" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.dozer:dozer:5.5.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.32" level="project" />
+    <orderEntry type="library" name="Maven: cn.afterturn:easypoi-spring-boot-starter:4.3.0" level="project" />
+    <orderEntry type="library" name="Maven: cn.afterturn:easypoi-web:4.3.0" level="project" />
+    <orderEntry type="library" name="Maven: cn.afterturn:easypoi-base:4.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: ognl:ognl:3.2.6" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: cn.afterturn:easypoi-annotation:4.3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.14" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: com.github.xiaoymin:swagger-bootstrap-ui:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:29.0-jre" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:c3p0:0.9.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.11" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.maven-play-plugin.com.mchange:c3p0-oracle-thin-extras:0.9.5" level="project" />
+    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.jeeplus:dynamic-datasource-spring-boot-starter:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: p6spy:p6spy:3.9.1" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.20" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.5.16" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.6" level="project" />
+    <orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
+    <orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.33.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opentracing:opentracing-util:0.33.0" level="project" />
+    <orderEntry type="library" name="Maven: io.opentracing:opentracing-noop:0.33.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-dysmsapi:2.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.oracle.database.jdbc:ojdbc8:19.8.0.0" level="project" />
+    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
+  </component>
+</module>

二進制
jeeplus-module/jeeplus-test/.DS_Store


+ 25 - 0
jeeplus-module/jeeplus-test/.gitignore

@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/

二進制
jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.jar


+ 1 - 0
jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.properties

@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip

+ 44 - 0
jeeplus-module/jeeplus-test/pom.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.jeeplus</groupId>
+        <artifactId>jeeplus-module</artifactId>
+        <version>9.0</version>
+    </parent>
+
+
+    <artifactId>jeeplus-test</artifactId>
+    <packaging>jar</packaging>
+
+    <name>jeeplus-test</name>
+    <description>测试用例</description>
+
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-admin</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-flowable</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+
+
+    </dependencies>
+
+
+
+
+</project>

二進制
jeeplus-module/jeeplus-test/src/.DS_Store


二進制
jeeplus-module/jeeplus-test/src/main/.DS_Store


二進制
jeeplus-module/jeeplus-test/src/main/java/.DS_Store


二進制
jeeplus-module/jeeplus-test/src/main/java/com/.DS_Store


二進制
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/.DS_Store


二進制
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/.DS_Store


+ 84 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiAuditController.java

@@ -0,0 +1,84 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.controller;
+
+import javax.validation.Valid;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO;
+import com.jeeplus.test.activiti.service.TestActivitiAuditService;
+
+/**
+ * 薪酬调整申请Controller
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Api(tags ="薪酬调整申请")
+@RestController
+@RequestMapping(value = "/test/activiti/testActivitiAudit")
+public class TestActivitiAuditController {
+
+	@Autowired
+	private TestActivitiAuditService testActivitiAuditService;
+
+	/**
+	 * 薪酬调整申请列表数据
+	 */
+	@ApiLog("查询薪酬调整申请列表数据")
+	@ApiOperation(value = "查询薪酬调整申请列表数据")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestActivitiAuditDTO>> list(TestActivitiAuditDTO testActivitiAuditDTO, Page<TestActivitiAuditDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testActivitiAuditDTO, TestActivitiAuditDTO.class);
+		IPage<TestActivitiAuditDTO> result = testActivitiAuditService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取薪酬调整申请数据
+	 */
+	@ApiLog("根据Id获取薪酬调整申请数据")
+	@ApiOperation(value = "根据Id获取薪酬调整申请数据")
+	@GetMapping("queryById")
+	public ResponseEntity<TestActivitiAuditDTO> queryById(String id) {
+		return ResponseEntity.ok ( testActivitiAuditService.findById ( id ) );
+	}
+
+	/**
+	 * 保存薪酬调整申请
+	 */
+	@ApiLog("保存薪酬调整申请")
+	@ApiOperation(value = "保存薪酬调整申请")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestActivitiAuditDTO testActivitiAuditDTO) {
+		//新增或编辑表单保存
+		testActivitiAuditService.saveOrUpdate (testActivitiAuditDTO);
+		return ResponseUtil.newInstance ( ).add("businessTable", "test_activiti_audit").add("businessId", testActivitiAuditDTO.getId()).ok ("保存薪酬调整申请成功");
+	}
+
+
+	/**
+	 * 删除薪酬调整申请
+	 */
+	@ApiLog("删除薪酬调整申请")
+	@ApiOperation(value = "删除薪酬调整申请")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+		for(String id: idArray){
+			testActivitiAuditService.removeById ( id );
+		}
+		return ResponseEntity.ok( "删除薪酬调整申请成功" );
+	}
+
+}

+ 84 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiExpenseController.java

@@ -0,0 +1,84 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.controller;
+
+import javax.validation.Valid;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO;
+import com.jeeplus.test.activiti.service.TestActivitiExpenseService;
+
+/**
+ * 报销申请Controller
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Api(tags ="报销申请")
+@RestController
+@RequestMapping(value = "/test/activiti/testActivitiExpense")
+public class TestActivitiExpenseController {
+
+	@Autowired
+	private TestActivitiExpenseService testActivitiExpenseService;
+
+	/**
+	 * 报销申请列表数据
+	 */
+	@ApiLog("查询报销申请列表数据")
+	@ApiOperation(value = "查询报销申请列表数据")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestActivitiExpenseDTO>> list(TestActivitiExpenseDTO testActivitiExpenseDTO, Page<TestActivitiExpenseDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testActivitiExpenseDTO, TestActivitiExpenseDTO.class);
+		IPage<TestActivitiExpenseDTO> result = testActivitiExpenseService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取报销申请数据
+	 */
+	@ApiLog("根据Id获取报销申请数据")
+	@ApiOperation(value = "根据Id获取报销申请数据")
+	@GetMapping("queryById")
+	public ResponseEntity<TestActivitiExpenseDTO> queryById(String id) {
+		return ResponseEntity.ok ( testActivitiExpenseService.findById ( id ) );
+	}
+
+	/**
+	 * 保存报销申请
+	 */
+	@ApiLog("保存报销申请")
+	@ApiOperation(value = "保存报销申请")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestActivitiExpenseDTO testActivitiExpenseDTO) {
+		//新增或编辑表单保存
+		testActivitiExpenseService.saveOrUpdate (testActivitiExpenseDTO);
+		return ResponseUtil.newInstance ( ).add("businessTable", "test_activiti_expense").add("businessId", testActivitiExpenseDTO.getId()).ok ("保存报销申请成功");
+	}
+
+
+	/**
+	 * 删除报销申请
+	 */
+	@ApiLog("删除报销申请")
+	@ApiOperation(value = "删除报销申请")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+		for(String id: idArray){
+			testActivitiExpenseService.removeById ( id );
+		}
+		return ResponseEntity.ok( "删除报销申请成功" );
+	}
+
+}

+ 84 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiLeaveController.java

@@ -0,0 +1,84 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.controller;
+
+import javax.validation.Valid;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO;
+import com.jeeplus.test.activiti.service.TestActivitiLeaveService;
+
+/**
+ * 请假申请Controller
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Api(tags ="请假申请")
+@RestController
+@RequestMapping(value = "/test/activiti/testActivitiLeave")
+public class TestActivitiLeaveController {
+
+	@Autowired
+	private TestActivitiLeaveService testActivitiLeaveService;
+
+	/**
+	 * 请假申请列表数据
+	 */
+	@ApiLog("查询请假申请列表数据")
+	@ApiOperation(value = "查询请假申请列表数据")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestActivitiLeaveDTO>> list(TestActivitiLeaveDTO testActivitiLeaveDTO, Page<TestActivitiLeaveDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testActivitiLeaveDTO, TestActivitiLeaveDTO.class);
+		IPage<TestActivitiLeaveDTO> result = testActivitiLeaveService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取请假申请数据
+	 */
+	@ApiLog("根据Id获取请假申请数据")
+	@ApiOperation(value = "根据Id获取请假申请数据")
+	@GetMapping("queryById")
+	public ResponseEntity<TestActivitiLeaveDTO> queryById(String id) {
+		return ResponseEntity.ok ( testActivitiLeaveService.findById ( id ) );
+	}
+
+	/**
+	 * 保存请假申请
+	 */
+	@ApiLog("保存请假申请")
+	@ApiOperation(value = "保存请假申请")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestActivitiLeaveDTO testActivitiLeaveDTO) {
+		//新增或编辑表单保存
+		testActivitiLeaveService.saveOrUpdate (testActivitiLeaveDTO);
+		return ResponseUtil.newInstance ( ).add("businessTable", "test_activiti_leave").add("businessId", testActivitiLeaveDTO.getId()).ok ("保存请假申请成功");
+	}
+
+
+	/**
+	 * 删除请假申请
+	 */
+	@ApiLog("删除请假申请")
+	@ApiOperation(value = "删除请假申请")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+		for(String id: idArray){
+			testActivitiLeaveService.removeById ( id );
+		}
+		return ResponseEntity.ok( "删除请假申请成功" );
+	}
+
+}

+ 88 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiAudit.java

@@ -0,0 +1,88 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.domain;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 薪酬调整申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_activiti_audit")
+public class TestActivitiAudit extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 变动用户
+     */
+	private String userId;
+	/**
+     * 归属部门
+     */
+	private String officeId;
+	/**
+     * 岗位
+     */
+	private String post;
+	/**
+     * 性别
+     */
+	private String sex;
+	/**
+     * 学历
+     */
+	private String edu;
+	/**
+     * 调整原因
+     */
+	private String content;
+	/**
+     * 现行标准 薪酬档级
+     */
+	private String olda;
+	/**
+     * 现行标准 月工资额
+     */
+	private String oldb;
+	/**
+     * 现行标准 年薪总额
+     */
+	private String oldc;
+	/**
+     * 调整后标准 薪酬档级
+     */
+	private String newa;
+	/**
+     * 调整后标准 月工资额
+     */
+	private String newb;
+	/**
+     * 调整后标准 年薪总额
+     */
+	private String newc;
+	/**
+     * 月增资
+     */
+	private String addNum;
+	/**
+     * 执行时间
+     */
+	private Date exeDate;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 49 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiExpense.java

@@ -0,0 +1,49 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 报销申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_activiti_expense")
+public class TestActivitiExpense extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 员工姓名
+     */
+    @TableField("name")
+	private String userId;
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 报销费用
+     */
+	private Integer cost;
+	/**
+     * 归属部门
+     */
+	private String officeId;
+	/**
+     * 报销事由
+     */
+	private String reason;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 48 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiLeave.java

@@ -0,0 +1,48 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.domain;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 请假申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_activiti_leave")
+public class TestActivitiLeave extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 请假类型
+     */
+	private String leaveType;
+	/**
+     * 请假开始时间
+     */
+	private Date startTime;
+	/**
+     * 请假结束时间
+     */
+	private Date endTime;
+	/**
+     * 请假事由
+     */
+	private String reason;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiAuditMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiAudit;
+
+/**
+ * 薪酬调整申请MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestActivitiAuditMapper extends BaseMapper<TestActivitiAudit> {
+
+    /**
+     * 根据id获取薪酬调整申请
+     * @param id
+     * @return
+     */
+    TestActivitiAuditDTO findById(String id);
+
+    /**
+     * 获取薪酬调整申请列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestActivitiAuditDTO> findList(Page <TestActivitiAuditDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiExpenseMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiExpense;
+
+/**
+ * 报销申请MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestActivitiExpenseMapper extends BaseMapper<TestActivitiExpense> {
+
+    /**
+     * 根据id获取报销申请
+     * @param id
+     * @return
+     */
+    TestActivitiExpenseDTO findById(String id);
+
+    /**
+     * 获取报销申请列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestActivitiExpenseDTO> findList(Page <TestActivitiExpenseDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiLeaveMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiLeave;
+
+/**
+ * 请假申请MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestActivitiLeaveMapper extends BaseMapper<TestActivitiLeave> {
+
+    /**
+     * 根据id获取请假申请
+     * @param id
+     * @return
+     */
+    TestActivitiLeaveDTO findById(String id);
+
+    /**
+     * 获取请假申请列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestActivitiLeaveDTO> findList(Page <TestActivitiLeaveDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 59 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiAuditMapper.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.activiti.mapper.TestActivitiAuditMapper">
+
+	<sql id="testActivitiAuditColumns">
+		a.id AS "id",
+		a.proc_ins_id AS "procInsId",
+		a.user_id AS "user.id",
+		a.office_id AS "office.id",
+		a.post AS "post",
+		a.sex AS "sex",
+		a.edu AS "edu",
+		a.content AS "content",
+		a.olda AS "olda",
+		a.oldb AS "oldb",
+		a.oldc AS "oldc",
+		a.newa AS "newa",
+		a.newb AS "newb",
+		a.newc AS "newc",
+		a.add_num AS "addNum",
+		a.exe_date AS "exeDate",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+
+		user.name AS "user.name",
+
+		office.name AS "office.name"
+	</sql>
+
+	<sql id="testActivitiAuditJoins">
+
+		LEFT JOIN sys_user user ON user.id = a.user_id
+		LEFT JOIN sys_office office ON office.id = a.office_id
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO">
+		SELECT
+			<include refid="testActivitiAuditColumns"/>
+		FROM test_activiti_audit a
+		<include refid="testActivitiAuditJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO" >
+		SELECT
+			<include refid="testActivitiAuditColumns"/>
+		FROM test_activiti_audit a
+		<include refid="testActivitiAuditJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 52 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiExpenseMapper.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.activiti.mapper.TestActivitiExpenseMapper">
+
+	<sql id="testActivitiExpenseColumns">
+		a.id AS "id",
+		a.name AS "user.id",
+		a.proc_ins_id AS "procInsId",
+		a.cost AS "cost",
+		a.office_id AS "office.id",
+		a.reason AS "reason",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		user.name AS "user.name",
+
+
+
+		office.name AS "office.name"
+	</sql>
+
+	<sql id="testActivitiExpenseJoins">
+
+		LEFT JOIN sys_user user ON user.id = a.name
+		LEFT JOIN sys_office office ON office.id = a.office_id
+		LEFT JOIN sys_user createBy ON createBy.id = a.create_by
+		LEFT JOIN sys_user updateBy ON updateBy.id = a.update_by
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO">
+		SELECT
+			<include refid="testActivitiExpenseColumns"/>
+		FROM test_activiti_expense a
+		<include refid="testActivitiExpenseJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO" >
+		SELECT
+			<include refid="testActivitiExpenseColumns"/>
+		FROM test_activiti_expense a
+		<include refid="testActivitiExpenseJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 44 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiLeaveMapper.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.activiti.mapper.TestActivitiLeaveMapper">
+
+	<sql id="testActivitiLeaveColumns">
+		a.id AS "id",
+		a.proc_ins_id AS "procInsId",
+		a.leave_type AS "leaveType",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.reason AS "reason",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag"
+	</sql>
+
+	<sql id="testActivitiLeaveJoins">
+
+		LEFT JOIN sys_user createBy ON createBy.id = a.create_by
+		LEFT JOIN sys_user updateBy ON updateBy.id = a.update_by
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO">
+		SELECT
+			<include refid="testActivitiLeaveColumns"/>
+		FROM test_activiti_leave a
+		<include refid="testActivitiLeaveJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO" >
+		SELECT
+			<include refid="testActivitiLeaveColumns"/>
+		FROM test_activiti_leave a
+		<include refid="testActivitiLeaveJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 69 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiAuditService.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service;
+
+import com.jeeplus.sys.constant.CommonConstants;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO;
+import com.jeeplus.test.activiti.service.mapstruct.TestActivitiAuditWrapper;
+import com.jeeplus.test.activiti.domain.TestActivitiAudit;
+import com.jeeplus.test.activiti.mapper.TestActivitiAuditMapper;
+
+/**
+ * 薪酬调整申请Service
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Service
+@Transactional
+public class TestActivitiAuditService extends ServiceImpl<TestActivitiAuditMapper, TestActivitiAudit> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestActivitiAuditDTO findById(String id) {
+		TestActivitiAuditDTO testActivitiAuditDTO = baseMapper.findById ( id );
+		return testActivitiAuditDTO;
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <TestActivitiAuditDTO> findPage(Page <TestActivitiAuditDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+	/**
+	* 保存或者更新
+	* @param  testActivitiAuditDTO
+	* @return
+	*/
+	public void saveOrUpdate(TestActivitiAuditDTO testActivitiAuditDTO) {
+		TestActivitiAudit testActivitiAudit =  TestActivitiAuditWrapper.INSTANCE.toEntity ( testActivitiAuditDTO );
+		super.saveOrUpdate (testActivitiAudit);
+		testActivitiAuditDTO.setId ( testActivitiAudit.getId () );
+	}
+
+	/**
+	 * 删除
+	 * @param  id
+	 * @return
+	 */
+	public void removeById(String id) {
+		super.removeById ( id );
+	}
+
+}

+ 69 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiExpenseService.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service;
+
+import com.jeeplus.sys.constant.CommonConstants;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO;
+import com.jeeplus.test.activiti.service.mapstruct.TestActivitiExpenseWrapper;
+import com.jeeplus.test.activiti.domain.TestActivitiExpense;
+import com.jeeplus.test.activiti.mapper.TestActivitiExpenseMapper;
+
+/**
+ * 报销申请Service
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Service
+@Transactional
+public class TestActivitiExpenseService extends ServiceImpl<TestActivitiExpenseMapper, TestActivitiExpense> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestActivitiExpenseDTO findById(String id) {
+		TestActivitiExpenseDTO testActivitiExpenseDTO = baseMapper.findById ( id );
+		return testActivitiExpenseDTO;
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <TestActivitiExpenseDTO> findPage(Page <TestActivitiExpenseDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+	/**
+	* 保存或者更新
+	* @param  testActivitiExpenseDTO
+	* @return
+	*/
+	public void saveOrUpdate(TestActivitiExpenseDTO testActivitiExpenseDTO) {
+		TestActivitiExpense testActivitiExpense =  TestActivitiExpenseWrapper.INSTANCE.toEntity ( testActivitiExpenseDTO );
+		super.saveOrUpdate (testActivitiExpense);
+		testActivitiExpenseDTO.setId ( testActivitiExpense.getId () );
+	}
+
+	/**
+	 * 删除
+	 * @param  id
+	 * @return
+	 */
+	public void removeById(String id) {
+		super.removeById ( id );
+	}
+
+}

+ 69 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiLeaveService.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service;
+
+import com.jeeplus.sys.constant.CommonConstants;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.beans.factory.annotation.Autowired;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO;
+import com.jeeplus.test.activiti.service.mapstruct.TestActivitiLeaveWrapper;
+import com.jeeplus.test.activiti.domain.TestActivitiLeave;
+import com.jeeplus.test.activiti.mapper.TestActivitiLeaveMapper;
+
+/**
+ * 请假申请Service
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Service
+@Transactional
+public class TestActivitiLeaveService extends ServiceImpl<TestActivitiLeaveMapper, TestActivitiLeave> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestActivitiLeaveDTO findById(String id) {
+		TestActivitiLeaveDTO testActivitiLeaveDTO = baseMapper.findById ( id );
+		return testActivitiLeaveDTO;
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <TestActivitiLeaveDTO> findPage(Page <TestActivitiLeaveDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+	/**
+	* 保存或者更新
+	* @param  testActivitiLeaveDTO
+	* @return
+	*/
+	public void saveOrUpdate(TestActivitiLeaveDTO testActivitiLeaveDTO) {
+		TestActivitiLeave testActivitiLeave =  TestActivitiLeaveWrapper.INSTANCE.toEntity ( testActivitiLeaveDTO );
+		super.saveOrUpdate (testActivitiLeave);
+		testActivitiLeaveDTO.setId ( testActivitiLeave.getId () );
+	}
+
+	/**
+	 * 删除
+	 * @param  id
+	 * @return
+	 */
+	public void removeById(String id) {
+		super.removeById ( id );
+	}
+
+}

+ 98 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiAuditDTO.java

@@ -0,0 +1,98 @@
+/**
+        * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+        */
+package com.jeeplus.test.activiti.service.dto;
+
+import com.jeeplus.sys.service.dto.UserDTO;
+import javax.validation.constraints.NotNull;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 薪酬调整申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestActivitiAuditDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 变动用户
+     */
+	@NotNull(message="变动用户不能为空")
+	private UserDTO user;
+	/**
+     * 归属部门
+     */
+	@NotNull(message="归属部门不能为空")
+	private OfficeDTO office;
+	/**
+     * 岗位
+     */
+	private String post;
+	/**
+     * 性别
+     */
+	private String sex;
+	/**
+     * 学历
+     */
+	private String edu;
+	/**
+     * 调整原因
+     */
+	@NotNull(message="调整原因不能为空")
+	private String content;
+	/**
+     * 现行标准 薪酬档级
+     */
+	private String olda;
+	/**
+     * 现行标准 月工资额
+     */
+	@NotNull(message="现行标准 月工资额不能为空")
+	private String oldb;
+	/**
+     * 现行标准 年薪总额
+     */
+	private String oldc;
+	/**
+     * 调整后标准 薪酬档级
+     */
+	private String newa;
+	/**
+     * 调整后标准 月工资额
+     */
+	@NotNull(message="调整后标准 月工资额不能为空")
+	private String newb;
+	/**
+     * 调整后标准 年薪总额
+     */
+	private String newc;
+	/**
+     * 月增资
+     */
+	@NotNull(message="月增资不能为空")
+	private String addNum;
+	/**
+     * 执行时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@NotNull(message="执行时间不能为空")
+	private Date exeDate;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 55 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiExpenseDTO.java

@@ -0,0 +1,55 @@
+/**
+        * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+        */
+package com.jeeplus.test.activiti.service.dto;
+
+import com.jeeplus.sys.service.dto.UserDTO;
+import javax.validation.constraints.NotNull;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 报销申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestActivitiExpenseDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 员工姓名
+     */
+	@NotNull(message="员工姓名不能为空")
+    @Query(tableColumn = "a.name", javaField = "user.id", type = QueryType.LIKE)
+	private UserDTO user;
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 报销费用
+     */
+	@NotNull(message="报销费用不能为空")
+	private Integer cost;
+	/**
+     * 归属部门
+     */
+	@NotNull(message="归属部门不能为空")
+	private OfficeDTO office;
+	/**
+     * 报销事由
+     */
+	@NotNull(message="报销事由不能为空")
+	private String reason;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 54 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiLeaveDTO.java

@@ -0,0 +1,54 @@
+/**
+        * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+        */
+package com.jeeplus.test.activiti.service.dto;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 请假申请Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestActivitiLeaveDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 流程实例ID
+     */
+	private String procInsId;
+	/**
+     * 请假类型
+     */
+	@NotNull(message="请假类型不能为空")
+	private String leaveType;
+	/**
+     * 请假开始时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@NotNull(message="请假开始时间不能为空")
+	private Date startTime;
+	/**
+     * 请假结束时间
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@NotNull(message="请假结束时间不能为空")
+	private Date endTime;
+	/**
+     * 请假事由
+     */
+	@NotNull(message="请假事由不能为空")
+	private String reason;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiAuditWrapper.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.activiti.service.dto.TestActivitiAuditDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiAudit;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestActivitiAuditWrapper
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestActivitiAuditWrapper extends EntityWrapper<TestActivitiAuditDTO, TestActivitiAudit> {
+
+    TestActivitiAuditWrapper INSTANCE = Mappers.getMapper(TestActivitiAuditWrapper.class);
+     @Mappings({
+            @Mapping(source = "user.id", target = "userId"),
+            @Mapping(source = "office.id", target = "officeId"),
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    TestActivitiAudit toEntity(TestActivitiAuditDTO dto);
+
+
+    @Mappings({
+            @Mapping(source = "userId", target = "user.id"),
+            @Mapping(source = "officeId", target = "office.id"),
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    TestActivitiAuditDTO toDTO(TestActivitiAudit entity);
+}
+

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiExpenseWrapper.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.activiti.service.dto.TestActivitiExpenseDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiExpense;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestActivitiExpenseWrapper
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestActivitiExpenseWrapper extends EntityWrapper<TestActivitiExpenseDTO, TestActivitiExpense> {
+
+    TestActivitiExpenseWrapper INSTANCE = Mappers.getMapper(TestActivitiExpenseWrapper.class);
+     @Mappings({
+            @Mapping(source = "user.id", target = "userId"),
+            @Mapping(source = "office.id", target = "officeId"),
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    TestActivitiExpense toEntity(TestActivitiExpenseDTO dto);
+
+
+    @Mappings({
+            @Mapping(source = "userId", target = "user.id"),
+            @Mapping(source = "officeId", target = "office.id"),
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    TestActivitiExpenseDTO toDTO(TestActivitiExpense entity);
+}
+

+ 36 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiLeaveWrapper.java

@@ -0,0 +1,36 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.activiti.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.activiti.service.dto.TestActivitiLeaveDTO;
+import com.jeeplus.test.activiti.domain.TestActivitiLeave;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestActivitiLeaveWrapper
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestActivitiLeaveWrapper extends EntityWrapper<TestActivitiLeaveDTO, TestActivitiLeave> {
+
+    TestActivitiLeaveWrapper INSTANCE = Mappers.getMapper(TestActivitiLeaveWrapper.class);
+     @Mappings({
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    TestActivitiLeave toEntity(TestActivitiLeaveDTO dto);
+
+
+    @Mappings({
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    TestActivitiLeaveDTO toDTO(TestActivitiLeave entity);
+}
+

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/controller/TestContinentController.java

@@ -0,0 +1,93 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.grid.domain.TestContinent;
+import com.jeeplus.test.grid.service.dto.TestContinentDTO;
+import com.jeeplus.test.grid.service.mapstruct.TestContinentWrapper;
+import com.jeeplus.test.grid.service.TestContinentService;
+
+/**
+ * 洲Controller
+ * @author lgf
+ * @version 2022-03-18
+ */
+
+@Api(tags ="洲")
+@RestController
+@RequestMapping(value = "/test/grid/testContinent")
+public class TestContinentController {
+
+	@Autowired
+	private TestContinentService testContinentService;
+
+	@Autowired
+	private TestContinentWrapper testContinentWrapper;
+
+	/**
+	 * 洲列表数据
+	 */
+	@ApiLog("查询洲列表数据")
+	@ApiOperation(value = "查询洲列表数据")
+	@PreAuthorize("hasAuthority('test:grid:testContinent:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestContinent>> list(TestContinentDTO testContinentDTO, Page<TestContinent> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testContinentDTO, TestContinentDTO.class);
+		IPage<TestContinent> result = testContinentService.page (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取洲数据
+	 */
+	@ApiLog("根据Id获取洲数据")
+	@ApiOperation(value = "根据Id获取洲数据")
+	@PreAuthorize("hasAnyAuthority('test:grid:testContinent:view','test:grid:testContinent:add','test:grid:testContinent:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<TestContinentDTO> queryById(String id) {
+		return ResponseEntity.ok ( testContinentWrapper.toDTO ( testContinentService.getById ( id ) ) );
+	}
+
+	/**
+	 * 保存洲
+	 */
+	@ApiLog("保存洲")
+	@ApiOperation(value = "保存洲")
+	@PreAuthorize("hasAnyAuthority('test:grid:testContinent:add','test:grid:testContinent:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestContinentDTO testContinentDTO) {
+		//新增或编辑表单保存
+		testContinentService.saveOrUpdate (testContinentWrapper.toEntity (testContinentDTO));
+        return ResponseEntity.ok ( "保存洲成功" );
+	}
+
+
+	/**
+	 * 删除洲
+	 */
+	@ApiLog("删除洲")
+	@ApiOperation(value = "删除洲")
+	@PreAuthorize("hasAuthority('test:grid:testContinent:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        testContinentService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除洲成功" );
+	}
+
+}

+ 92 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/controller/TestCountryController.java

@@ -0,0 +1,92 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.grid.service.dto.TestCountryDTO;
+import com.jeeplus.test.grid.service.mapstruct.TestCountryWrapper;
+import com.jeeplus.test.grid.service.TestCountryService;
+
+/**
+ * 国家Controller
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+
+@Api(tags ="国家")
+@RestController
+@RequestMapping(value = "/test/grid/testCountry")
+public class TestCountryController {
+
+	@Autowired
+	private TestCountryService testCountryService;
+
+	@Autowired
+	private TestCountryWrapper testCountryWrapper;
+
+	/**
+	 * 国家列表数据
+	 */
+	@ApiLog("查询国家列表数据")
+	@ApiOperation(value = "查询国家列表数据")
+	@PreAuthorize("hasAuthority('test:grid:testCountry:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestCountryDTO>> list(TestCountryDTO testCountryDTO, Page<TestCountryDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testCountryDTO, TestCountryDTO.class);
+		IPage<TestCountryDTO> result = testCountryService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取国家数据
+	 */
+	@ApiLog("根据Id获取国家数据")
+	@ApiOperation(value = "根据Id获取国家数据")
+	@PreAuthorize("hasAnyAuthority('test:grid:testCountry:view','test:grid:testCountry:add','test:grid:testCountry:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<TestCountryDTO> queryById(String id) {
+		return ResponseEntity.ok ( testCountryService.findById ( id ) );
+	}
+
+	/**
+	 * 保存国家
+	 */
+	@ApiLog("保存国家")
+	@ApiOperation(value = "保存国家")
+	@PreAuthorize("hasAnyAuthority('test:grid:testCountry:add','test:grid:testCountry:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestCountryDTO testCountryDTO) {
+		//新增或编辑表单保存
+		testCountryService.saveOrUpdate (testCountryWrapper.toEntity (testCountryDTO));
+        return ResponseEntity.ok ( "保存国家成功" );
+	}
+
+
+	/**
+	 * 删除国家
+	 */
+	@ApiLog("删除国家")
+	@ApiOperation(value = "删除国家")
+	@PreAuthorize("hasAuthority('test:grid:testCountry:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        testCountryService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除国家成功" );
+	}
+
+}

+ 31 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/domain/TestContinent.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 洲Entity
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_continent")
+public class TestContinent extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 洲名
+     */
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 39 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/domain/TestCountry.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 国家Entity
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_country")
+public class TestCountry extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 国名
+     */
+	private String name;
+	/**
+     * 人口
+     */
+	private String sum;
+	/**
+     * 所属洲
+     */
+	private String continentId;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/TestContinentMapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.grid.domain.TestContinent;
+
+/**
+ * 洲MAPPER接口
+ * @author lgf
+ * @version 2022-03-18
+ */
+public interface TestContinentMapper extends BaseMapper<TestContinent> {
+
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/TestCountryMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.grid.service.dto.TestCountryDTO;
+import com.jeeplus.test.grid.domain.TestCountry;
+
+/**
+ * 国家MAPPER接口
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+public interface TestCountryMapper extends BaseMapper<TestCountry> {
+
+    /**
+     * 根据id获取国家
+     * @param id
+     * @return
+     */
+    TestCountryDTO findById(String id);
+
+    /**
+     * 获取国家列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestCountryDTO> findList(Page <TestCountryDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/xml/TestContinentMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.grid.mapper.TestContinentMapper">
+
+
+</mapper>

+ 47 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/mapper/xml/TestCountryMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.grid.mapper.TestCountryMapper">
+
+	<sql id="testCountryColumns">
+		a.id AS "id",
+		a.name AS "name",
+		a.sum AS "sum",
+		a.continent_id AS "continent.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+
+
+		continent.name AS "continent.name"
+	</sql>
+
+	<sql id="testCountryJoins">
+
+		LEFT JOIN test_continent continent ON continent.id = a.continent_id
+		LEFT JOIN sys_user createBy ON createBy.id = a.create_by
+		LEFT JOIN sys_user updateBy ON updateBy.id = a.update_by
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.grid.service.dto.TestCountryDTO">
+		SELECT
+			<include refid="testCountryColumns"/>
+		FROM test_country a
+		<include refid="testCountryJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.grid.service.dto.TestCountryDTO">
+		SELECT
+			<include refid="testCountryColumns"/>
+		FROM test_country a
+		<include refid="testCountryJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/TestContinentService.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.grid.domain.TestContinent;
+import com.jeeplus.test.grid.mapper.TestContinentMapper;
+
+/**
+ * 洲Service
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class TestContinentService extends ServiceImpl<TestContinentMapper, TestContinent> {
+
+}

+ 45 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/TestCountryService.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.grid.service.dto.TestCountryDTO;
+import com.jeeplus.test.grid.domain.TestCountry;
+import com.jeeplus.test.grid.mapper.TestCountryMapper;
+
+/**
+ * 国家Service
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class TestCountryService extends ServiceImpl<TestCountryMapper, TestCountry> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestCountryDTO findById(String id) {
+		return baseMapper.findById ( id );
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <TestCountryDTO> findPage(Page <TestCountryDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/dto/TestContinentDTO.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service.dto;
+
+import javax.validation.constraints.NotNull;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 洲DTO
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestContinentDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 洲名
+     */
+	@NotNull(message="洲名不能为空")
+    @Query(type = QueryType.LIKE)
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 41 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/dto/TestCountryDTO.java

@@ -0,0 +1,41 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service.dto;
+
+import com.jeeplus.test.grid.service.dto.TestContinentDTO;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 国家DTO
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestCountryDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 国名
+     */
+    @Query(tableColumn = "a.name", javaField = "name", type = QueryType.LIKE)
+	private String name;
+	/**
+     * 人口
+     */
+	private String sum;
+	/**
+     * 所属洲
+     */
+	private TestContinentDTO continent;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 24 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/mapstruct/TestContinentWrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.grid.service.dto.TestContinentDTO;
+import com.jeeplus.test.grid.domain.TestContinent;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestContinentWrapper
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestContinentWrapper extends EntityWrapper<TestContinentDTO, TestContinent> {
+
+    TestContinentWrapper INSTANCE = Mappers.getMapper(TestContinentWrapper.class);
+}
+

+ 38 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/grid/service/mapstruct/TestCountryWrapper.java

@@ -0,0 +1,38 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.grid.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.grid.service.dto.TestCountryDTO;
+import com.jeeplus.test.grid.domain.TestCountry;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestCountryWrapper
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestCountryWrapper extends EntityWrapper<TestCountryDTO, TestCountry> {
+
+    TestCountryWrapper INSTANCE = Mappers.getMapper(TestCountryWrapper.class);
+     @Mappings({
+            @Mapping(source = "continent.id", target = "continentId"),
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    TestCountry toEntity(TestCountryDTO dto);
+
+
+    @Mappings({
+            @Mapping(source = "continentId", target = "continent.id"),
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    TestCountryDTO toDTO(TestCountry entity);
+}
+

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/CourseController.java

@@ -0,0 +1,93 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.manytomany.domain.Course;
+import com.jeeplus.test.manytomany.service.dto.CourseDTO;
+import com.jeeplus.test.manytomany.service.mapstruct.CourseWrapper;
+import com.jeeplus.test.manytomany.service.CourseService;
+
+/**
+ * 课程Controller
+ * @author lgf
+ * @version 2022-03-18
+ */
+
+@Api(tags ="课程")
+@RestController
+@RequestMapping(value = "/test/manytomany/course")
+public class CourseController {
+
+	@Autowired
+	private CourseService courseService;
+
+	@Autowired
+	private CourseWrapper courseWrapper;
+
+	/**
+	 * 课程列表数据
+	 */
+	@ApiLog("查询课程列表数据")
+	@ApiOperation(value = "查询课程列表数据")
+	@PreAuthorize("hasAuthority('test:manytomany:course:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<Course>> list(CourseDTO courseDTO, Page<Course> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (courseDTO, CourseDTO.class);
+		IPage<Course> result = courseService.page (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取课程数据
+	 */
+	@ApiLog("根据Id获取课程数据")
+	@ApiOperation(value = "根据Id获取课程数据")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:course:view','test:manytomany:course:add','test:manytomany:course:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<CourseDTO> queryById(String id) {
+		return ResponseEntity.ok ( courseWrapper.toDTO ( courseService.getById ( id ) ) );
+	}
+
+	/**
+	 * 保存课程
+	 */
+	@ApiLog("保存课程")
+	@ApiOperation(value = "保存课程")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:course:add','test:manytomany:course:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody CourseDTO courseDTO) {
+		//新增或编辑表单保存
+		courseService.saveOrUpdate (courseWrapper.toEntity (courseDTO));
+        return ResponseEntity.ok ( "保存课程成功" );
+	}
+
+
+	/**
+	 * 删除课程
+	 */
+	@ApiLog("删除课程")
+	@ApiOperation(value = "删除课程")
+	@PreAuthorize("hasAuthority('test:manytomany:course:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        courseService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除课程成功" );
+	}
+
+}

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/StudentController.java

@@ -0,0 +1,93 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.manytomany.domain.Student;
+import com.jeeplus.test.manytomany.service.dto.StudentDTO;
+import com.jeeplus.test.manytomany.service.mapstruct.StudentWrapper;
+import com.jeeplus.test.manytomany.service.StudentService;
+
+/**
+ * 学生Controller
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+
+@Api(tags ="学生")
+@RestController
+@RequestMapping(value = "/test/manytomany/student")
+public class StudentController {
+
+	@Autowired
+	private StudentService studentService;
+
+	@Autowired
+	private StudentWrapper studentWrapper;
+
+	/**
+	 * 学生列表数据
+	 */
+	@ApiLog("查询学生列表数据")
+	@ApiOperation(value = "查询学生列表数据")
+	@PreAuthorize("hasAuthority('test:manytomany:student:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<Student>> list(StudentDTO studentDTO, Page<Student> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (studentDTO, StudentDTO.class);
+		IPage<Student> result = studentService.page (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取学生数据
+	 */
+	@ApiLog("根据Id获取学生数据")
+	@ApiOperation(value = "根据Id获取学生数据")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:student:view','test:manytomany:student:add','test:manytomany:student:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<StudentDTO> queryById(String id) {
+		return ResponseEntity.ok ( studentWrapper.toDTO ( studentService.getById ( id ) ) );
+	}
+
+	/**
+	 * 保存学生
+	 */
+	@ApiLog("保存学生")
+	@ApiOperation(value = "保存学生")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:student:add','test:manytomany:student:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody StudentDTO studentDTO) {
+		//新增或编辑表单保存
+		studentService.saveOrUpdate (studentWrapper.toEntity (studentDTO));
+        return ResponseEntity.ok ( "保存学生成功" );
+	}
+
+
+	/**
+	 * 删除学生
+	 */
+	@ApiLog("删除学生")
+	@ApiOperation(value = "删除学生")
+	@PreAuthorize("hasAuthority('test:manytomany:student:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        studentService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除学生成功" );
+	}
+
+}

+ 92 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/controller/StudentCourseController.java

@@ -0,0 +1,92 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.manytomany.service.dto.StudentCourseDTO;
+import com.jeeplus.test.manytomany.service.mapstruct.StudentCourseWrapper;
+import com.jeeplus.test.manytomany.service.StudentCourseService;
+
+/**
+ * 学生课程记录Controller
+ * @author lgf
+ * @version 2022-03-18
+ */
+
+@Api(tags ="学生课程记录")
+@RestController
+@RequestMapping(value = "/test/manytomany/studentCourse")
+public class StudentCourseController {
+
+	@Autowired
+	private StudentCourseService studentCourseService;
+
+	@Autowired
+	private StudentCourseWrapper studentCourseWrapper;
+
+	/**
+	 * 学生课程记录列表数据
+	 */
+	@ApiLog("查询学生课程记录列表数据")
+	@ApiOperation(value = "查询学生课程记录列表数据")
+	@PreAuthorize("hasAuthority('test:manytomany:studentCourse:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<StudentCourseDTO>> list(StudentCourseDTO studentCourseDTO, Page<StudentCourseDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (studentCourseDTO, StudentCourseDTO.class);
+		IPage<StudentCourseDTO> result = studentCourseService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取学生课程记录数据
+	 */
+	@ApiLog("根据Id获取学生课程记录数据")
+	@ApiOperation(value = "根据Id获取学生课程记录数据")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:studentCourse:view','test:manytomany:studentCourse:add','test:manytomany:studentCourse:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<StudentCourseDTO> queryById(String id) {
+		return ResponseEntity.ok ( studentCourseService.findById ( id ) );
+	}
+
+	/**
+	 * 保存学生课程记录
+	 */
+	@ApiLog("保存学生课程记录")
+	@ApiOperation(value = "保存学生课程记录")
+	@PreAuthorize("hasAnyAuthority('test:manytomany:studentCourse:add','test:manytomany:studentCourse:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody StudentCourseDTO studentCourseDTO) {
+		//新增或编辑表单保存
+		studentCourseService.saveOrUpdate (studentCourseWrapper.toEntity (studentCourseDTO));
+        return ResponseEntity.ok ( "保存学生课程记录成功" );
+	}
+
+
+	/**
+	 * 删除学生课程记录
+	 */
+	@ApiLog("删除学生课程记录")
+	@ApiOperation(value = "删除学生课程记录")
+	@PreAuthorize("hasAuthority('test:manytomany:studentCourse:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        studentCourseService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除学生课程记录成功" );
+	}
+
+}

+ 31 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/Course.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 课程Entity
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_course")
+public class Course extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 课程名
+     */
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 31 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/Student.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 学生Entity
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_student")
+public class Student extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 姓名
+     */
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 39 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/domain/StudentCourse.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 学生课程记录Entity
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_student_course")
+public class StudentCourse extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 学生
+     */
+	private String studentId;
+	/**
+     * 课程
+     */
+	private String courseId;
+	/**
+     * 分数
+     */
+	private Double score;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/CourseMapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.manytomany.domain.Course;
+
+/**
+ * 课程MAPPER接口
+ * @author lgf
+ * @version 2022-03-18
+ */
+public interface CourseMapper extends BaseMapper<Course> {
+
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/StudentCourseMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.manytomany.service.dto.StudentCourseDTO;
+import com.jeeplus.test.manytomany.domain.StudentCourse;
+
+/**
+ * 学生课程记录MAPPER接口
+ * @author lgf
+ * @version 2022-03-18
+ */
+public interface StudentCourseMapper extends BaseMapper<StudentCourse> {
+
+    /**
+     * 根据id获取学生课程记录
+     * @param id
+     * @return
+     */
+    StudentCourseDTO findById(String id);
+
+    /**
+     * 获取学生课程记录列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <StudentCourseDTO> findList(Page <StudentCourseDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/StudentMapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.manytomany.domain.Student;
+
+/**
+ * 学生MAPPER接口
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+public interface StudentMapper extends BaseMapper<Student> {
+
+
+}

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/CourseMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.manytomany.mapper.CourseMapper">
+
+
+</mapper>

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/StudentCourseMapper.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.manytomany.mapper.StudentCourseMapper">
+
+	<sql id="studentCourseColumns">
+		a.id AS "id",
+		a.student_id AS "student.id",
+		a.course_id AS "course.id",
+		a.score AS "score",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		student.name AS "student.name",
+
+		course.name AS "course.name"
+	</sql>
+
+	<sql id="studentCourseJoins">
+
+		LEFT JOIN test_student student ON student.id = a.student_id
+		LEFT JOIN test_course course ON course.id = a.course_id
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.manytomany.service.dto.StudentCourseDTO">
+		SELECT
+			<include refid="studentCourseColumns"/>
+		FROM test_student_course a
+		<include refid="studentCourseJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.manytomany.service.dto.StudentCourseDTO">
+		SELECT
+			<include refid="studentCourseColumns"/>
+		FROM test_student_course a
+		<include refid="studentCourseJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/mapper/xml/StudentMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.manytomany.mapper.StudentMapper">
+
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/CourseService.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.manytomany.domain.Course;
+import com.jeeplus.test.manytomany.mapper.CourseMapper;
+
+/**
+ * 课程Service
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class CourseService extends ServiceImpl<CourseMapper, Course> {
+
+}

+ 45 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/StudentCourseService.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.manytomany.service.dto.StudentCourseDTO;
+import com.jeeplus.test.manytomany.domain.StudentCourse;
+import com.jeeplus.test.manytomany.mapper.StudentCourseMapper;
+
+/**
+ * 学生课程记录Service
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class StudentCourseService extends ServiceImpl<StudentCourseMapper, StudentCourse> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public StudentCourseDTO findById(String id) {
+		return baseMapper.findById ( id );
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <StudentCourseDTO> findPage(Page <StudentCourseDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+}

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/StudentService.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.manytomany.domain.Student;
+import com.jeeplus.test.manytomany.mapper.StudentMapper;
+
+/**
+ * 学生Service
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class StudentService extends ServiceImpl<StudentMapper, Student> {
+
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/CourseDTO.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.dto;
+
+import javax.validation.constraints.NotNull;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 课程DTO
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class CourseDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 课程名
+     */
+	@NotNull(message="课程名不能为空")
+    @Query(type = QueryType.LIKE)
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 47 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/StudentCourseDTO.java

@@ -0,0 +1,47 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.dto;
+
+import com.jeeplus.test.manytomany.service.dto.StudentDTO;
+import javax.validation.constraints.NotNull;
+import com.jeeplus.test.manytomany.service.dto.CourseDTO;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 学生课程记录DTO
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class StudentCourseDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 学生
+     */
+	@NotNull(message="学生不能为空")
+    @Query(tableColumn = "a.student_id", javaField = "student.id", type = QueryType.LIKE)
+	private StudentDTO student;
+	/**
+     * 课程
+     */
+	@NotNull(message="课程不能为空")
+    @Query(tableColumn = "a.course_id", javaField = "course.id", type = QueryType.LIKE)
+	private CourseDTO course;
+	/**
+     * 分数
+     */
+	@NotNull(message="分数不能为空")
+	private Double score;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/dto/StudentDTO.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.dto;
+
+import javax.validation.constraints.NotNull;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 学生DTO
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class StudentDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 姓名
+     */
+	@NotNull(message="姓名不能为空")
+    @Query(type = QueryType.LIKE)
+	private String name;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 24 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/CourseWrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.manytomany.service.dto.CourseDTO;
+import com.jeeplus.test.manytomany.domain.Course;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  CourseWrapper
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface CourseWrapper extends EntityWrapper<CourseDTO, Course> {
+
+    CourseWrapper INSTANCE = Mappers.getMapper(CourseWrapper.class);
+}
+

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/StudentCourseWrapper.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.manytomany.service.dto.StudentCourseDTO;
+import com.jeeplus.test.manytomany.domain.StudentCourse;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  StudentCourseWrapper
+ * @author lgf
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface StudentCourseWrapper extends EntityWrapper<StudentCourseDTO, StudentCourse> {
+
+    StudentCourseWrapper INSTANCE = Mappers.getMapper(StudentCourseWrapper.class);
+     @Mappings({
+            @Mapping(source = "student.id", target = "studentId"),
+            @Mapping(source = "course.id", target = "courseId"),
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    StudentCourse toEntity(StudentCourseDTO dto);
+
+
+    @Mappings({
+            @Mapping(source = "studentId", target = "student.id"),
+            @Mapping(source = "courseId", target = "course.id"),
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    StudentCourseDTO toDTO(StudentCourse entity);
+}
+

+ 24 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/manytomany/service/mapstruct/StudentWrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.manytomany.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.manytomany.service.dto.StudentDTO;
+import com.jeeplus.test.manytomany.domain.Student;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  StudentWrapper
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface StudentWrapper extends EntityWrapper<StudentDTO, Student> {
+
+    StudentWrapper INSTANCE = Mappers.getMapper(StudentWrapper.class);
+}
+

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/controller/TestNoteController.java

@@ -0,0 +1,93 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.note.domain.TestNote;
+import com.jeeplus.test.note.service.dto.TestNoteDTO;
+import com.jeeplus.test.note.service.mapstruct.TestNoteWrapper;
+import com.jeeplus.test.note.service.TestNoteService;
+
+/**
+ * 富文本测试Controller
+ * @author liugf
+ * @version 2022-03-18
+ */
+
+@Api(tags ="富文本测试")
+@RestController
+@RequestMapping(value = "/test/note/testNote")
+public class TestNoteController {
+
+	@Autowired
+	private TestNoteService testNoteService;
+
+	@Autowired
+	private TestNoteWrapper testNoteWrapper;
+
+	/**
+	 * 富文本测试列表数据
+	 */
+	@ApiLog("查询富文本测试列表数据")
+	@ApiOperation(value = "查询富文本测试列表数据")
+	@PreAuthorize("hasAuthority('test:note:testNote:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestNote>> list(TestNoteDTO testNoteDTO, Page<TestNote> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testNoteDTO, TestNoteDTO.class);
+		IPage<TestNote> result = testNoteService.page (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取富文本测试数据
+	 */
+	@ApiLog("根据Id获取富文本测试数据")
+	@ApiOperation(value = "根据Id获取富文本测试数据")
+	@PreAuthorize("hasAnyAuthority('test:note:testNote:view','test:note:testNote:add','test:note:testNote:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<TestNoteDTO> queryById(String id) {
+		return ResponseEntity.ok ( testNoteWrapper.toDTO ( testNoteService.getById ( id ) ) );
+	}
+
+	/**
+	 * 保存富文本测试
+	 */
+	@ApiLog("保存富文本测试")
+	@ApiOperation(value = "保存富文本测试")
+	@PreAuthorize("hasAnyAuthority('test:note:testNote:add','test:note:testNote:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestNoteDTO testNoteDTO) {
+		//新增或编辑表单保存
+		testNoteService.saveOrUpdate (testNoteWrapper.toEntity (testNoteDTO));
+        return ResponseEntity.ok ( "保存富文本测试成功" );
+	}
+
+
+	/**
+	 * 删除富文本测试
+	 */
+	@ApiLog("删除富文本测试")
+	@ApiOperation(value = "删除富文本测试")
+	@PreAuthorize("hasAuthority('test:note:testNote:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        testNoteService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除富文本测试成功" );
+	}
+
+}

+ 39 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/domain/TestNote.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 富文本测试Entity
+ * @author liugf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_note")
+public class TestNote extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 标题
+     */
+	private String title;
+	/**
+     * 富文本1
+     */
+	private String contents1;
+	/**
+     * 富文本2
+     */
+	private String contents2;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/mapper/TestNoteMapper.java

@@ -0,0 +1,17 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.note.domain.TestNote;
+
+/**
+ * 富文本测试MAPPER接口
+ * @author liugf
+ * @version 2022-03-18
+ */
+public interface TestNoteMapper extends BaseMapper<TestNote> {
+
+
+}

+ 6 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/mapper/xml/TestNoteMapper.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.note.mapper.TestNoteMapper">
+
+
+</mapper>

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/TestNoteService.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.note.domain.TestNote;
+import com.jeeplus.test.note.mapper.TestNoteMapper;
+
+/**
+ * 富文本测试Service
+ * @author liugf
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class TestNoteService extends ServiceImpl<TestNoteMapper, TestNote> {
+
+}

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/dto/TestNoteDTO.java

@@ -0,0 +1,40 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.service.dto;
+
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 富文本测试DTO
+ * @author liugf
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestNoteDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 标题
+     */
+    @Query(type = QueryType.LIKE)
+	private String title;
+	/**
+     * 富文本1
+     */
+	private String contents1;
+	/**
+     * 富文本2
+     */
+	private String contents2;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 24 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/note/service/mapstruct/TestNoteWrapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.note.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.note.service.dto.TestNoteDTO;
+import com.jeeplus.test.note.domain.TestNote;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestNoteWrapper
+ * @author liugf
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestNoteWrapper extends EntityWrapper<TestNoteDTO, TestNote> {
+
+    TestNoteWrapper INSTANCE = Mappers.getMapper(TestNoteWrapper.class);
+}
+

+ 92 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/controller/TestFormLeaveController.java

@@ -0,0 +1,92 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.controller;
+
+import javax.validation.Valid;
+import com.google.common.collect.Lists;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.one.service.dto.TestFormLeaveDTO;
+import com.jeeplus.test.one.service.mapstruct.TestFormLeaveWrapper;
+import com.jeeplus.test.one.service.TestFormLeaveService;
+
+/**
+ * 请假表单Controller
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+
+@Api(tags ="请假表单")
+@RestController
+@RequestMapping(value = "/test/one/testFormLeave")
+public class TestFormLeaveController {
+
+	@Autowired
+	private TestFormLeaveService testFormLeaveService;
+
+	@Autowired
+	private TestFormLeaveWrapper testFormLeaveWrapper;
+
+	/**
+	 * 请假表单列表数据
+	 */
+	@ApiLog("查询请假表单列表数据")
+	@ApiOperation(value = "查询请假表单列表数据")
+	@PreAuthorize("hasAuthority('test:one:testFormLeave:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestFormLeaveDTO>> list(TestFormLeaveDTO testFormLeaveDTO, Page<TestFormLeaveDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testFormLeaveDTO, TestFormLeaveDTO.class);
+		IPage<TestFormLeaveDTO> result = testFormLeaveService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取请假表单数据
+	 */
+	@ApiLog("根据Id获取请假表单数据")
+	@ApiOperation(value = "根据Id获取请假表单数据")
+	@PreAuthorize("hasAnyAuthority('test:one:testFormLeave:view','test:one:testFormLeave:add','test:one:testFormLeave:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<TestFormLeaveDTO> queryById(String id) {
+		return ResponseEntity.ok ( testFormLeaveService.findById ( id ) );
+	}
+
+	/**
+	 * 保存请假表单
+	 */
+	@ApiLog("保存请假表单")
+	@ApiOperation(value = "保存请假表单")
+	@PreAuthorize("hasAnyAuthority('test:one:testFormLeave:add','test:one:testFormLeave:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestFormLeaveDTO testFormLeaveDTO) {
+		//新增或编辑表单保存
+		testFormLeaveService.saveOrUpdate (testFormLeaveWrapper.toEntity (testFormLeaveDTO));
+        return ResponseEntity.ok ( "保存请假表单成功" );
+	}
+
+
+	/**
+	 * 删除请假表单
+	 */
+	@ApiLog("删除请假表单")
+	@ApiOperation(value = "删除请假表单")
+	@PreAuthorize("hasAuthority('test:one:testFormLeave:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+        testFormLeaveService.removeByIds ( Lists.newArrayList ( idArray ) );
+		return ResponseEntity.ok( "删除请假表单成功" );
+	}
+
+}

+ 48 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/domain/TestFormLeave.java

@@ -0,0 +1,48 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.domain;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 请假表单Entity
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_form_leave")
+public class TestFormLeave extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 所属公司
+     */
+	private String companyId;
+	/**
+     * 归属部门
+     */
+	private String officeId;
+	/**
+     * 员工
+     */
+	private String userId;
+	/**
+     * 归属区域
+     */
+	private String areaId;
+	/**
+     * 请假开始日期
+     */
+	private Date beginDate;
+	/**
+     * 请假结束日期
+     */
+	private Date endDate;
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/mapper/TestFormLeaveMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.one.service.dto.TestFormLeaveDTO;
+import com.jeeplus.test.one.domain.TestFormLeave;
+
+/**
+ * 请假表单MAPPER接口
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+public interface TestFormLeaveMapper extends BaseMapper<TestFormLeave> {
+
+    /**
+     * 根据id获取请假表单
+     * @param id
+     * @return
+     */
+    TestFormLeaveDTO findById(String id);
+
+    /**
+     * 获取请假表单列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestFormLeaveDTO> findList(Page <TestFormLeaveDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 56 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/mapper/xml/TestFormLeaveMapper.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.one.mapper.TestFormLeaveMapper">
+
+	<sql id="testFormLeaveColumns">
+		a.id AS "id",
+		a.company_id AS "company.id",
+		a.office_id AS "office.id",
+		a.user_id AS "user.id",
+		a.area_id AS "area.id",
+		a.begin_date AS "beginDate",
+		a.end_date AS "endDate",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+
+		company.name AS "company.name",
+
+		office.name AS "office.name",
+
+		user.name AS "user.name",
+
+		area.name AS "area.name"
+	</sql>
+
+	<sql id="testFormLeaveJoins">
+
+		LEFT JOIN sys_office company ON company.id = a.company_id
+		LEFT JOIN sys_office office ON office.id = a.office_id
+		LEFT JOIN sys_user user ON user.id = a.user_id
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		LEFT JOIN sys_user createBy ON createBy.id = a.create_by
+		LEFT JOIN sys_user updateBy ON updateBy.id = a.update_by
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.one.service.dto.TestFormLeaveDTO">
+		SELECT
+			<include refid="testFormLeaveColumns"/>
+		FROM test_form_leave a
+		<include refid="testFormLeaveJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.one.service.dto.TestFormLeaveDTO">
+		SELECT
+			<include refid="testFormLeaveColumns"/>
+		FROM test_form_leave a
+		<include refid="testFormLeaveJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 45 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/TestFormLeaveService.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.service;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.one.service.dto.TestFormLeaveDTO;
+import com.jeeplus.test.one.domain.TestFormLeave;
+import com.jeeplus.test.one.mapper.TestFormLeaveMapper;
+
+/**
+ * 请假表单Service
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Service
+@Transactional
+public class TestFormLeaveService extends ServiceImpl<TestFormLeaveMapper, TestFormLeave> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestFormLeaveDTO findById(String id) {
+		return baseMapper.findById ( id );
+	}
+
+	/**
+	 * 自定义分页检索
+	 * @param page
+	 * @param queryWrapper
+	 * @return
+	 */
+	public IPage <TestFormLeaveDTO> findPage(Page <TestFormLeaveDTO> page, QueryWrapper queryWrapper) {
+		queryWrapper.eq ("a.del_flag", 0 ); // 排除已经删除
+		return  baseMapper.findList (page, queryWrapper);
+	}
+
+}

+ 59 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/dto/TestFormLeaveDTO.java

@@ -0,0 +1,59 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.service.dto;
+
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.service.dto.AreaDTO;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 请假表单DTO
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TestFormLeaveDTO extends BaseDTO {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 所属公司
+     */
+	private OfficeDTO company;
+	/**
+     * 归属部门
+     */
+    @Query(tableColumn = "a.office_id", javaField = "office.id", type = QueryType.EQ)
+	private OfficeDTO office;
+	/**
+     * 员工
+     */
+    @Query(tableColumn = "a.user_id", javaField = "user.id", type = QueryType.EQ)
+	private UserDTO user;
+	/**
+     * 归属区域
+     */
+    @Query(tableColumn = "a.area_id", javaField = "area.id", type = QueryType.EQ)
+	private AreaDTO area;
+	/**
+     * 请假开始日期
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(tableColumn = "a.begin_date", javaField = "beginDate", type = QueryType.BETWEEN)
+	private Date beginDate;
+	/**
+     * 请假结束日期
+     */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Query(tableColumn = "a.end_date", javaField = "endDate", type = QueryType.NOTBETWEEN)
+	private Date endDate;
+
+}

+ 44 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/one/service/mapstruct/TestFormLeaveWrapper.java

@@ -0,0 +1,44 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.one.service.mapstruct;
+
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.one.service.dto.TestFormLeaveDTO;
+import com.jeeplus.test.one.domain.TestFormLeave;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+/**
+ *  TestFormLeaveWrapper
+ * @author 刘高峰
+ * @version 2022-03-18
+ */
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {} )
+public interface TestFormLeaveWrapper extends EntityWrapper<TestFormLeaveDTO, TestFormLeave> {
+
+    TestFormLeaveWrapper INSTANCE = Mappers.getMapper(TestFormLeaveWrapper.class);
+     @Mappings({
+            @Mapping(source = "company.id", target = "companyId"),
+            @Mapping(source = "office.id", target = "officeId"),
+            @Mapping(source = "user.id", target = "userId"),
+            @Mapping(source = "area.id", target = "areaId"),
+            @Mapping(source = "createBy.id", target = "createBy"),
+            @Mapping (source = "updateBy.id", target = "updateBy")})
+    TestFormLeave toEntity(TestFormLeaveDTO dto);
+
+
+    @Mappings({
+            @Mapping(source = "companyId", target = "company.id"),
+            @Mapping(source = "officeId", target = "office.id"),
+            @Mapping(source = "userId", target = "user.id"),
+            @Mapping(source = "areaId", target = "area.id"),
+            @Mapping (source = "createBy", target = "createBy.id"),
+            @Mapping (source = "updateBy", target = "updateBy.id")})
+    TestFormLeaveDTO toDTO(TestFormLeave entity);
+}
+

二進制
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/.DS_Store


+ 88 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/controller/TestDataMainFormController.java

@@ -0,0 +1,88 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.controller;
+
+import javax.validation.Valid;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.onetomany.service.dto.TestDataMainFormDTO;
+import com.jeeplus.test.onetomany.service.TestDataMainFormService;
+
+/**
+ * 票务代理Controller
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Api(tags ="票务代理")
+@RestController
+@RequestMapping(value = "/test/onetomany/testDataMainForm")
+public class TestDataMainFormController {
+
+	@Autowired
+	private TestDataMainFormService testDataMainFormService;
+
+	/**
+	 * 票务代理列表数据
+	 */
+	@ApiLog("查询票务代理列表数据")
+	@ApiOperation(value = "查询票务代理列表数据")
+	@PreAuthorize("hasAuthority('test:onetomany:testDataMainForm:list')")
+	@GetMapping("list")
+	public ResponseEntity<IPage<TestDataMainFormDTO>> list(TestDataMainFormDTO testDataMainFormDTO, Page<TestDataMainFormDTO> page) throws Exception {
+		QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (testDataMainFormDTO, TestDataMainFormDTO.class);
+		IPage<TestDataMainFormDTO> result = testDataMainFormService.findPage (page, queryWrapper);
+		return ResponseEntity.ok (result);
+	}
+
+
+	/**
+	 * 根据Id获取票务代理数据
+	 */
+	@ApiLog("根据Id获取票务代理数据")
+	@ApiOperation(value = "根据Id获取票务代理数据")
+	@PreAuthorize("hasAnyAuthority('test:onetomany:testDataMainForm:view','test:onetomany:testDataMainForm:add','test:onetomany:testDataMainForm:edit')")
+	@GetMapping("queryById")
+	public ResponseEntity<TestDataMainFormDTO> queryById(String id) {
+		return ResponseEntity.ok ( testDataMainFormService.findById ( id ) );
+	}
+
+	/**
+	 * 保存票务代理
+	 */
+	@ApiLog("保存票务代理")
+	@ApiOperation(value = "保存票务代理")
+	@PreAuthorize("hasAnyAuthority('test:onetomany:testDataMainForm:add','test:onetomany:testDataMainForm:edit')")
+	@PostMapping("save")
+	public  ResponseEntity <String> save(@Valid @RequestBody TestDataMainFormDTO testDataMainFormDTO) {
+		//新增或编辑表单保存
+		testDataMainFormService.saveOrUpdate (testDataMainFormDTO);
+        return ResponseEntity.ok ( "保存票务代理成功" );
+	}
+
+
+	/**
+	 * 删除票务代理
+	 */
+	@ApiLog("删除票务代理")
+	@ApiOperation(value = "删除票务代理")
+	@PreAuthorize("hasAuthority('test:onetomany:testDataMainForm:del')")
+	@DeleteMapping("delete")
+	public ResponseEntity <String> delete(String ids) {
+		String idArray[] = ids.split(",");
+		for(String id: idArray){
+			testDataMainFormService.removeById ( id );
+		}
+		return ResponseEntity.ok( "删除票务代理成功" );
+	}
+
+}

+ 55 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild21.java

@@ -0,0 +1,55 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 火车票Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_data_child1")
+public class TestDataChild21 extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 出发地
+     */
+    @TableField("startarea")
+	private String startAreaId;
+	/**
+     * 目的地
+     */
+    @TableField("endarea")
+	private String endAreaId;
+	/**
+     * 出发时间
+     */
+	private Date starttime;
+	/**
+     * 到达时间
+     */
+	private Date endtime;
+	/**
+     * 代理价格
+     */
+	private Double price;
+	/**
+     * 业务主表ID
+     */
+	private String testDataMainId;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 58 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild22.java

@@ -0,0 +1,58 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 飞机票Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_data_child2")
+public class TestDataChild22 extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 出发地
+     */
+    @TableField("startarea")
+	private String startAreaId;
+	/**
+     * 目的地
+     */
+    @TableField("endarea")
+	private String endAreaId;
+	/**
+     * 出发时间
+     */
+    @TableField("starttime")
+	private Date startTime;
+	/**
+     * 到达时间
+     */
+    @TableField("endtime")
+	private Date endTime;
+	/**
+     * 代理价格
+     */
+	private Double price;
+	/**
+     * 外键
+     */
+    @TableField("test_data_main")
+	private String testDataMainId;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 58 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataChild23.java

@@ -0,0 +1,58 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 汽车票Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_data_child3")
+public class TestDataChild23 extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 出发地
+     */
+    @TableField("startarea")
+	private String startAreaId;
+	/**
+     * 目的地
+     */
+    @TableField("endarea")
+	private String endAreaId;
+	/**
+     * 出发时间
+     */
+    @TableField("starttime")
+	private Date startTime;
+	/**
+     * 到达时间
+     */
+    @TableField("endtime")
+	private Date endTime;
+	/**
+     * 代理价格
+     */
+	private Double price;
+	/**
+     * 外键
+     */
+    @TableField("test_data_main")
+	private String testDataMainId;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 59 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/domain/TestDataMainForm.java

@@ -0,0 +1,59 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+/**
+ * 票务代理Entity
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("test_data_main")
+public class TestDataMainForm extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     * 用户
+     */
+    @TableField("user_id")
+	private String tuserId;
+	/**
+     * 所属部门
+     */
+	private String officeId;
+	/**
+     * 所属区域
+     */
+	private String areaId;
+	/**
+     * 名称
+     */
+	private String name;
+	/**
+     * 性别
+     */
+	private String sex;
+	/**
+     * 身份证照片
+     */
+    @TableField("t_file")
+	private String file;
+	/**
+     * 加入日期
+     */
+	private Date inDate;
+	/**
+     * 备注信息
+     */
+	private String remarks;
+
+}

+ 35 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild21Mapper.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.mapper;
+
+;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+;
+import com.jeeplus.test.onetomany.service.dto.TestDataChild21DTO;
+import com.jeeplus.test.onetomany.domain.TestDataChild21;
+
+/**
+ * 火车票MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestDataChild21Mapper extends BaseMapper<TestDataChild21> {
+
+    /**
+     * 根据id获取火车票
+     * @param id
+     * @return
+     */
+    TestDataChild21DTO findById(String id);
+
+    /**
+     * 获取火车票列表
+     *
+     * @param TestDataMainFormId
+     * @return
+     */
+    List <TestDataChild21DTO> findList(String TestDataMainFormId);
+
+}

+ 35 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild22Mapper.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.mapper;
+
+;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+;
+import com.jeeplus.test.onetomany.service.dto.TestDataChild22DTO;
+import com.jeeplus.test.onetomany.domain.TestDataChild22;
+
+/**
+ * 飞机票MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestDataChild22Mapper extends BaseMapper<TestDataChild22> {
+
+    /**
+     * 根据id获取飞机票
+     * @param id
+     * @return
+     */
+    TestDataChild22DTO findById(String id);
+
+    /**
+     * 获取飞机票列表
+     *
+     * @param TestDataMainFormId
+     * @return
+     */
+    List <TestDataChild22DTO> findList(String TestDataMainFormId);
+
+}

+ 35 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataChild23Mapper.java

@@ -0,0 +1,35 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.mapper;
+
+;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+;
+import com.jeeplus.test.onetomany.service.dto.TestDataChild23DTO;
+import com.jeeplus.test.onetomany.domain.TestDataChild23;
+
+/**
+ * 汽车票MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestDataChild23Mapper extends BaseMapper<TestDataChild23> {
+
+    /**
+     * 根据id获取汽车票
+     * @param id
+     * @return
+     */
+    TestDataChild23DTO findById(String id);
+
+    /**
+     * 获取汽车票列表
+     *
+     * @param TestDataMainFormId
+     * @return
+     */
+    List <TestDataChild23DTO> findList(String TestDataMainFormId);
+
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/TestDataMainFormMapper.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.onetomany.service.dto.TestDataMainFormDTO;
+import com.jeeplus.test.onetomany.domain.TestDataMainForm;
+
+/**
+ * 票务代理MAPPER接口
+ * @author liugf
+ * @version 2022-03-20
+ */
+public interface TestDataMainFormMapper extends BaseMapper<TestDataMainForm> {
+
+    /**
+     * 根据id获取票务代理
+     * @param id
+     * @return
+     */
+    TestDataMainFormDTO findById(String id);
+
+    /**
+     * 获取票务代理列表
+     *
+     * @param queryWrapper
+     * @return
+     */
+    IPage <TestDataMainFormDTO> findList(Page <TestDataMainFormDTO> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}

+ 49 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild21Mapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.onetomany.mapper.TestDataChild21Mapper">
+
+	<sql id="testDataChild21Columns">
+		a.id AS "id",
+		a.startarea AS "startArea.id",
+		a.endarea AS "endArea.id",
+		a.starttime AS "starttime",
+		a.endtime AS "endtime",
+		a.price AS "price",
+		a.test_data_main_id AS "testDataMainDTO.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		startArea.name AS "startArea.name",
+
+		endArea.name AS "endArea.name"
+	</sql>
+
+	<sql id="testDataChild21Joins">
+
+		LEFT JOIN sys_area startArea ON startArea.id = a.startarea
+		LEFT JOIN sys_area endArea ON endArea.id = a.endarea
+			LEFT JOIN test_data_main b ON b.id = a.test_data_main_id
+	</sql>
+
+
+	<select id="findById" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild21DTO">
+		SELECT
+			<include refid="testDataChild21Columns"/>
+		FROM test_data_child1 a
+		<include refid="testDataChild21Joins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild21DTO">
+		SELECT
+			<include refid="testDataChild21Columns"/>
+		FROM test_data_child1 a
+		<include refid="testDataChild21Joins"/>
+		WHERE a.test_data_main_id = #{TestDataMainFormId} and a.del_flag = 0
+	</select>
+
+</mapper>

+ 49 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild22Mapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.onetomany.mapper.TestDataChild22Mapper">
+
+	<sql id="testDataChild22Columns">
+		a.id AS "id",
+		a.startarea AS "startArea.id",
+		a.endarea AS "endArea.id",
+		a.starttime AS "startTime",
+		a.endtime AS "endTime",
+		a.price AS "price",
+		a.test_data_main AS "testDataMain.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		startArea.name AS "startArea.name",
+
+		endArea.name AS "endArea.name"
+	</sql>
+
+	<sql id="testDataChild22Joins">
+
+		LEFT JOIN sys_area startArea ON startArea.id = a.startarea
+		LEFT JOIN sys_area endArea ON endArea.id = a.endarea
+			LEFT JOIN test_data_main b ON b.id = a.test_data_main
+	</sql>
+
+
+	<select id="findById" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild22DTO">
+		SELECT
+			<include refid="testDataChild22Columns"/>
+		FROM test_data_child2 a
+		<include refid="testDataChild22Joins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild22DTO">
+		SELECT
+			<include refid="testDataChild22Columns"/>
+		FROM test_data_child2 a
+		<include refid="testDataChild22Joins"/>
+		WHERE a.test_data_main = #{TestDataMainFormId} and a.del_flag = 0
+	</select>
+
+</mapper>

+ 49 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataChild23Mapper.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.onetomany.mapper.TestDataChild23Mapper">
+
+	<sql id="testDataChild23Columns">
+		a.id AS "id",
+		a.startarea AS "startArea.id",
+		a.endarea AS "endArea.id",
+		a.starttime AS "startTime",
+		a.endtime AS "endTime",
+		a.price AS "price",
+		a.test_data_main AS "testDataMain.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		startArea.name AS "startArea.name",
+
+		endArea.name AS "endArea.name"
+	</sql>
+
+	<sql id="testDataChild23Joins">
+
+		LEFT JOIN sys_area startArea ON startArea.id = a.startarea
+		LEFT JOIN sys_area endArea ON endArea.id = a.endarea
+			LEFT JOIN test_data_main b ON b.id = a.test_data_main
+	</sql>
+
+
+	<select id="findById" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild23DTO">
+		SELECT
+			<include refid="testDataChild23Columns"/>
+		FROM test_data_child3 a
+		<include refid="testDataChild23Joins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.onetomany.service.dto.TestDataChild23DTO">
+		SELECT
+			<include refid="testDataChild23Columns"/>
+		FROM test_data_child3 a
+		<include refid="testDataChild23Joins"/>
+		WHERE a.test_data_main = #{TestDataMainFormId} and a.del_flag = 0
+	</select>
+
+</mapper>

+ 53 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/mapper/xml/TestDataMainFormMapper.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.onetomany.mapper.TestDataMainFormMapper">
+
+	<sql id="testDataMainFormColumns">
+		a.id AS "id",
+		a.user_id AS "tuser.id",
+		a.office_id AS "office.id",
+		a.area_id AS "area.id",
+		a.name AS "name",
+		a.sex AS "sex",
+		a.t_file AS "file",
+		a.in_date AS "inDate",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+
+		tuser.name AS "tuser.name",
+
+		office.name AS "office.name",
+
+		area.name AS "area.name"
+	</sql>
+
+	<sql id="testDataMainFormJoins">
+
+		LEFT JOIN sys_user tuser ON tuser.id = a.user_id
+		LEFT JOIN sys_office office ON office.id = a.office_id
+		LEFT JOIN sys_area area ON area.id = a.area_id
+	</sql>
+
+
+
+	<select id="findById" resultType="com.jeeplus.test.onetomany.service.dto.TestDataMainFormDTO">
+		SELECT
+			<include refid="testDataMainFormColumns"/>
+		FROM test_data_main a
+		<include refid="testDataMainFormJoins"/>
+		WHERE a.id = #{id} and a.del_flag = 0
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.test.onetomany.service.dto.TestDataMainFormDTO" >
+		SELECT
+			<include refid="testDataMainFormColumns"/>
+		FROM test_data_main a
+		<include refid="testDataMainFormJoins"/>
+	    ${ew.customSqlSegment}
+	</select>
+
+</mapper>

+ 41 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild21Service.java

@@ -0,0 +1,41 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.service;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.onetomany.service.dto.TestDataChild21DTO;
+import com.jeeplus.test.onetomany.domain.TestDataChild21;
+import com.jeeplus.test.onetomany.mapper.TestDataChild21Mapper;
+
+/**
+ * 火车票Service
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Service
+@Transactional
+public class TestDataChild21Service extends ServiceImpl<TestDataChild21Mapper, TestDataChild21> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestDataChild21DTO findById(String id) {
+		return baseMapper.findById ( id );
+	}
+
+	/**
+	 * 查询列表
+	 * @param testDataMainId
+	 * @return
+	 */
+	public List <TestDataChild21DTO> findList(String testDataMainId) {
+		return  baseMapper.findList (testDataMainId);
+	}
+
+}

+ 41 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild22Service.java

@@ -0,0 +1,41 @@
+/**
+ * Copyright © 2021-2025 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.test.onetomany.service;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.onetomany.service.dto.TestDataChild22DTO;
+import com.jeeplus.test.onetomany.domain.TestDataChild22;
+import com.jeeplus.test.onetomany.mapper.TestDataChild22Mapper;
+
+/**
+ * 飞机票Service
+ * @author liugf
+ * @version 2022-03-20
+ */
+@Service
+@Transactional
+public class TestDataChild22Service extends ServiceImpl<TestDataChild22Mapper, TestDataChild22> {
+
+	/**
+	 * 根据id查询
+	 * @param id
+	 * @return
+	 */
+	public TestDataChild22DTO findById(String id) {
+		return baseMapper.findById ( id );
+	}
+
+	/**
+	 * 查询列表
+	 * @param testDataMainId
+	 * @return
+	 */
+	public List <TestDataChild22DTO> findList(String testDataMainId) {
+		return  baseMapper.findList (testDataMainId);
+	}
+
+}

+ 0 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/onetomany/service/TestDataChild23Service.java


Some files were not shown because too many files changed in this diff