M墨鱼—_mo преди 5 години
родител
ревизия
e59a364b54
променени са 100 файла, в които са добавени 2162 реда и са изтрити 0 реда
  1. 180 0
      picc-admin-server/picc-admin-server.iml
  2. 22 0
      picc-admin-server/src/test/java/com/jpsoft/picc/test/PdfTest.java
  3. 13 0
      picc-admin-server/target/classes/application-dev.yml
  4. 50 0
      picc-admin-server/target/classes/application-production.yml
  5. 18 0
      picc-admin-server/target/classes/application-test.yml
  6. 99 0
      picc-admin-server/target/classes/application.yml
  7. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/PICCAdminServerApplication.class
  8. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/advice/PermissionAdvice.class
  9. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/config/SwaggerConfig.class
  10. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/config/WebMvcConfig.class
  11. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/interceptor/LoginInterceptor.class
  12. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/admin/controller/JwtsUserController.class
  13. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/ApprovalRecordController.class
  14. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/AttachmentController.class
  15. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/CompanyController.class
  16. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/CompanyMemberController.class
  17. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceAgentController.class
  18. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceDefinitionController.class
  19. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceDefinitionLimitController.class
  20. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceJobsController.class
  21. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/JobsController.class
  22. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/MessageController.class
  23. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/TransactionRecordController.class
  24. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/ApplicationPolicyController.class
  25. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.class
  26. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.class
  27. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyMemberController.class
  28. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyRecordController.class
  29. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/ApiController.class
  30. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/DataDictionaryController.class
  31. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/MenuController.class
  32. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/PermissionController.class
  33. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/RoleController.class
  34. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/UserController.class
  35. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/DataDictionaryDAO.class
  36. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/MenuDAO.class
  37. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/PermissionDAO.class
  38. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RoleDAO.class
  39. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RoleMenuDAO.class
  40. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RolePermissionDAO.class
  41. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/UserDAO.class
  42. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/UserRoleDAO.class
  43. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dto/RoleRelatedDTO.class
  44. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/DataDictionary.class
  45. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Menu.class
  46. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Permission.class
  47. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Role.class
  48. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/RoleMenu.class
  49. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/RolePermission.class
  50. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/User.class
  51. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/UserRole.class
  52. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/DataDictionaryService.class
  53. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/MenuService.class
  54. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/PermissionService.class
  55. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RoleMenuService.class
  56. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RolePermissionService.class
  57. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RoleService.class
  58. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/UserRoleService.class
  59. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/UserService.class
  60. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/DataDictionaryServiceImpl.class
  61. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/MenuServiceImpl.class
  62. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/PermissionServiceImpl.class
  63. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RoleMenuServiceImpl.class
  64. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RolePermissionServiceImpl.class
  65. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RoleServiceImpl.class
  66. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/UserRoleServiceImpl.class
  67. BIN
      picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/UserServiceImpl.class
  68. 49 0
      picc-admin-server/target/classes/logback-spring.xml
  69. 150 0
      picc-admin-server/target/classes/mapper/sys/DataDictionary.xml
  70. 139 0
      picc-admin-server/target/classes/mapper/sys/Menu.xml
  71. 108 0
      picc-admin-server/target/classes/mapper/sys/Permission.xml
  72. 93 0
      picc-admin-server/target/classes/mapper/sys/Role.xml
  73. 97 0
      picc-admin-server/target/classes/mapper/sys/RoleMenu.xml
  74. 96 0
      picc-admin-server/target/classes/mapper/sys/RolePermission.xml
  75. 102 0
      picc-admin-server/target/classes/mapper/sys/User.xml
  76. 100 0
      picc-admin-server/target/classes/mapper/sys/UserRole.xml
  77. BIN
      picc-admin-server/target/test-classes/META-INF/picc-admin-server.kotlin_module
  78. BIN
      picc-admin-server/target/test-classes/com/jpsoft/picc/test/CompanyTest.class
  79. BIN
      picc-admin-server/target/test-classes/com/jpsoft/picc/test/PdfTest.class
  80. 114 0
      picc-common/picc-common.iml
  81. 4 0
      picc-common/pom.xml
  82. 373 0
      picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/ItextPDFUtil.java
  83. 71 0
      picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/MyHeaderFooter.java
  84. 242 0
      picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/PdfTable.java
  85. 42 0
      picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/Watermark.java
  86. BIN
      picc-common/target/classes/META-INF/picc-common.kotlin_module
  87. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/ApprovalRecordDAO.class
  88. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyDAO.class
  89. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyMemberDAO.class
  90. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyUserDAO.class
  91. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceAgentDAO.class
  92. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceDefinitionDAO.class
  93. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceDefinitionLimitDAO.class
  94. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceJobsDAO.class
  95. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/JobsDAO.class
  96. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/MessageDAO.class
  97. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/dao/TransactionRecordDAO.class
  98. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/entity/ApprovalRecord.class
  99. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/entity/Company.class
  100. BIN
      picc-common/target/classes/com/jpsoft/picc/modules/base/entity/CompanyMember.class

+ 180 - 0
picc-admin-server/picc-admin-server.iml

@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+        <sourceRoots>
+          <root url="file://$MODULE_DIR$/src/main/java" />
+          <root url="file://$MODULE_DIR$/src/main/resources" />
+        </sourceRoots>
+      </configuration>
+    </facet>
+  </component>
+  <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$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="picc-common" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.27" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.27" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.18.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.13.2" level="project" />
+    <orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.4" level="project" />
+    <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.10.5" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-impl:0.10.5" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.5" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: org.lazyluke:log4jdbc-remix:0.2.7" level="project" />
+    <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.18" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.13" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.13" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.11" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.1.10" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:druid:1.1.10" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.1.RELEASE" 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-el:9.0.27" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.27" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.12" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.0.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
+    <orderEntry type="library" name="Maven: com.github.dozermapper:dozer-core:6.4.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" 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: org.slf4j:jcl-over-slf4j:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:18.0" 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: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.3" 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-scratchpad:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.18" 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.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: fr.opensagres.xdocreport:xdocreport:1.0.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:ooxml-schemas:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.12" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.jersey:jersey-json:1.9" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.3-1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-jaxrs:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-xc:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.jersey:jersey-core:1.9" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.json:json:20170516" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.taobao:taobao-sdk-java:1.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.13" level="project" />
+    <orderEntry type="library" name="Maven: com.itextpdf:itext-asian:5.2.0" level="project" />
+  </component>
+</module>

+ 22 - 0
picc-admin-server/src/test/java/com/jpsoft/picc/test/PdfTest.java

@@ -0,0 +1,22 @@
+package com.jpsoft.picc.test;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2020-2-4 13:10
+ */
+
+
+import com.jpsoft.picc.modules.common.utils.ItextPDFUtil;
+import java.util.ArrayList;
+
+/**
+ * 创建的pdf适合于桌面设备查看
+ */
+
+public class PdfTest {
+    public static void main(String[] args) throws Exception {
+
+        ItextPDFUtil.createPdf(new ArrayList());
+    }
+
+}

+ 13 - 0
picc-admin-server/target/classes/application-dev.yml

@@ -0,0 +1,13 @@
+spring:
+  datasource:
+    url: jdbc:log4jdbc:mysql://127.0.0.1:3306/picc?autoReconnect=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+    username: root
+    password: root
+  devtools:
+    add-properties: false
+    restart:
+      enabled: true
+
+logger:
+  level: WARN
+  dir: D:\\Logs\\picc\\picc-admin-server\\

+ 50 - 0
picc-admin-server/target/classes/application-production.yml

@@ -0,0 +1,50 @@
+spring:
+  datasource:
+    url: jdbc:log4jdbc:mysql://10.10.0.2:3306/electricity-payment?autoReconnect=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+    username: picc
+    password: picc
+  devtools:
+    restart:
+      enabled: true
+  redis:
+    # Redis数据库索引(默认为0)
+    database: 5
+    # Redis服务器地址
+    host: 127.0.0.1
+    # Redis服务器连接端口
+    port: 6379
+
+logger:
+  level: WARN
+  dir: E:\\picc\\logs
+
+netty:
+  port: 9966    #监听端口
+
+springfox:
+  documentation:
+    swagger:
+      v2:
+        host: www.wzgh.org
+
+wx:
+  pay:
+    appId: wxe598c699aa68cffe
+    appSecret: ea20d2e9a36aace26b4f7654218129af
+    mchId: 1500160622
+    subMchId: 1505070291
+    mchKey: jpsoft11111111111111111111111111
+    notifyUrl: http://www.wzgh.org/picc-server/wxPay/payNotify
+    ip: 122.228.31.242
+
+alipay:
+  serviceUrl: https://openapi.alipaydev.com/gateway.do
+  appId: 2016080600180410
+  publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzMBfmTqqpt4dMcuz8DpyrEtruu/G7+Gvkd0j99QX4mzcRLx4Wg9IicOIiZGSdgzLMKIxBmk0eKiqqbuBjOsrS/XU+SvsTNlT1O/ZY0w30HEWrb/pvmo58HSY76cevWqLqW19+fUax7HG811mF4lq4YkHNAWArqByEjoFYbKHbtqS0ReXFJ9SE5TaqZSVOieiu3bYPkw5HEGmnYZMhWH3Gvt6tK2peLSM8mEMY5qp3zlGew3sq1KtcDkvO2UCuAmEkAnCDZ1zoYYt45cvcmwaHozGKHGOtOe0EAitpZyLZW3dP5/yBFfWk+MdaA1kZe5gNr8ePY5ht+Sd+DizMEINiQIDAQAB
+  privateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDMwF+ZOqqm3h0xy7PwOnKsS2u678bv4a+R3SP31BfibNxEvHhaD0iJw4iJkZJ2DMswojEGaTR4qKqpu4GM6ytL9dT5K+xM2VPU79ljTDfQcRatv+m+ajnwdJjvpx69aoupbX359RrHscbzXWYXiWrhiQc0BYCuoHISOgVhsodu2pLRF5cUn1ITlNqplJU6J6K7dtg+TDkcQaadhkyFYfca+3q0ral4tIzyYQxjmqnfOUZ7DeyrUq1wOS87ZQK4CYSQCcINnXOhhi3jly9ybBoejMYocY6057QQCK2lnItlbd0/n/IEV9aT4x1oDWRl7mA2vx49jmG35J34OLMwQg2JAgMBAAECggEBALpSXSxdPKn4+ew0iJwVNAEh6PkF9ayZXWGJMY/2y31avt81+vdJbSMgcoFtnTAb2FN7ZM2Gsx8RrawjW3LXFmFbZeERXUlZg3YEhXhdBXWDU7XtLFIA7JSqJfn/xHNuH4Wgg8EQkLwkRP11gs/sVvzB63Ilh8Jhcyyu6/LJuYDfeXu/50sgkQn0xXjjJdwiez9iX//wraYYcWsSCCbwM3QZ0MRc3TCP04QfZsF+fnPM83/g2yzun8fmvB5zDtYhlHwau52CiZpTHOxCCkZx0tubVyPG9jmLJ8eg+/hIfOKzHi2HiNsOQlOgLj8inUkM2qW3JlU7VcHduB7MWjkDIAECgYEA6HLVEDDT61xQNIUbnBWQ0FpHBQjsG/388Uy/xKfchUkOfzA0kNId+Nrd3hhLtl3i7ta6KNu2vDNS5iEbg7SCVsgqBZ0enLLIrymyJ94pHbUeFTAqgP4pnoWglx3ttMsERCKcqt55NJY3gfLtVjBTgGgY1Kfxh9SYFC6CQ4v4V4kCgYEA4X8kv8vVg4ivoXk/gEsKXPYdXG6O3sClq7pf/kaecV0caV89rARXkDP324nLUMxvGKY0sNa373VhAFav4Hv3kGqrJ0NfEd/XiXXT3Zq3njN5V5xqjZZRsySimyFoBetYMTjN2dtPxTC/65OvQPC8BdHaSZDMQQQSFznKG9y4hgECgYEAieTFXIt6zB7BPcbQ8DEi7VcA1o3Kc3ii+wqKoMDr4u3J+c3BAUCEo0JDaCOFlrPvkbw0R1S//Ll9riNpzSHiSFUKCLaCmHa+8pqLo3b5cTQmmm8uZ8NfMTkYYU1R3HSrHThjNEIyKO4ME7zm6sBUaNJYGJ9gezG03hQRFr0MH/ECgYAKAXZD/Gtw9rO0WojyzGGdVl5fJ5i3UZ0ITbDMu510Mkl8c3ltFJQ+FdA9sZOP9kJHubhE0IJA4dh4B2CueVG22sTVbSvewyvxMYVBJAhZwLb1qD8iITVm2Y1NjOHswVCcfoTD0fNsMImTjm4MV6JAL9ubwA0QJXoYBbxuGBEoAQKBgDj0LpamjOv/gRDo96C8AKqACqWoHtVWvYaOrgsFVJWRsmkcrQu2nMHNyFlyJ1DcXbVkulILrUDth8+2jmbxrkmW+9Y8aX5vaKEmrNOOWiSgau3VxeJU+VedDYJl1IVpfs4k4ymMkkAGa1ZlMYHgeP20krHMzAn/NNeVvHUEXcR4
+  zfbPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlU5CIAwwMmDnDPUHQaxiqZh2y6VE11DFTYVZygLEUbZuSCATO2fGkY8hv3fhLj8Wj+QT4kRfJrK+/v1QKcZ7a5UaoaASOPOGEf8X9p+lfuA863luUPiD+k4W6QMjOXoPdY4G4JC9lFe5FT05NqVYHXGIIqXTWSIqLyWDlv7elj8D1HS06H+ArzAjbSyR47IaKJCMnpqLGHJ6ZQGM+6DEcOpdZAULjhguZ891eTtawVndDOaYToCDK4MpW9mEifpKRB8JZptqr2zQhFBm7iADyMsIM1xwko2N6mKJYyYZJ9QzhTindSQBGw0Pbt1480iqeoQOHo+z0HPmikIsuiu65QIDAQAB
+  inputCharset: UTF-8
+  mchId: 2088102170202580
+  # appAuthToken: 201906BBbc7d6558596f4bbc9f056c01b8aebX48
+  signType: RSA2
+  notifyUrl: http://www.wzgh.org/picc-server/aliPay/payNotify

+ 18 - 0
picc-admin-server/target/classes/application-test.yml

@@ -0,0 +1,18 @@
+spring:
+  datasource:
+    url: jdbc:log4jdbc:mysql://10.100.145.22:3307/picc?autoReconnect=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+    username: root
+    password: jpsoft
+  devtools:
+    restart:
+      enabled: true
+
+logger:
+  level: WARN
+  dir: C:\\picc\\logs\\picc-admin-server\\
+
+springfox:
+  documentation:
+    swagger:
+      v2:
+        host: gyxm.jing-zhou.gov.cn

+ 99 - 0
picc-admin-server/target/classes/application.yml

@@ -0,0 +1,99 @@
+server:
+  port: 8081
+  servlet:
+    context-path: /picc-admin-server
+
+spring:
+  http:
+    multipart:
+      max-request-size: 20MB
+      max-file-size: 20MB
+  datasource:
+    driver-class-name: net.sf.log4jdbc.DriverSpy
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      # 连接池的配置信息
+      # 初始化大小,最小,最大
+      initial-size: 5
+      min-idle: 5
+      maxActive: 20
+      # 配置获取连接等待超时的时间
+      maxWait: 60000
+      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      timeBetweenEvictionRunsMillis: 60000
+      # 配置一个连接在池中最小生存的时间,单位是毫秒
+      minEvictableIdleTimeMillis: 300000
+      validationQuery: SELECT 1
+      testWhileIdle: true
+      testOnBorrow: false
+      testOnReturn: false
+      # 打开PSCache,并且指定每个连接上PSCache的大小
+      poolPreparedStatements: true
+      maxPoolPreparedStatementPerConnectionSize: 20
+      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+      filters: stat,wall
+      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+      # 配置DruidStatFilter
+      web-stat-filter:
+        enabled: true
+        url-pattern: "/*"
+        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
+      # 配置DruidStatViewServlet
+      stat-view-servlet:
+        url-pattern: "/druid/*"
+        # IP白名单(没有配置或者为空,则允许所有访问)
+        allow:
+        # IP黑名单 (存在共同时,deny优先于allow)
+        deny:
+        #  禁用HTML页面上的“Reset All”功能
+        reset-enable: false
+        # 登录名
+        login-username: admin
+        # 登录密码
+        login-password: jpsoft
+  devtools:
+    restart:
+      enabled: true
+  profiles:
+    active: dev
+  redis:
+    # Redis数据库索引(默认为0)
+    database: 1
+    # Redis服务器地址
+    host: 192.168.33.21
+    # Redis服务器连接端口
+    port: 6379
+    # Redis服务器连接密码(默认为空)
+    password:
+    # 连接池最大连接数(使用负值表示没有限制)
+    pool:
+      max-active: 8
+      # 连接池最大阻塞等待时间(使用负值表示没有限制)
+      max-wait: -1
+      # 连接池中的最大空闲连接
+      max-idle: 8
+      # 连接池中的最小空闲连接
+      min-idle: 0
+      # 连接超时时间(毫秒)
+      timeout: 0
+
+jwt:
+  secret: WJgLLiAktNj/vCNEoz6mfAmE0btwluCTk/TnJiZOIkQ=
+  header: Authorization
+
+mybatis:
+  typeAliasesPackage: com.jpsoft.picc.**.entity
+  mapperLocations: classpath*:mapper/**/*.xml
+  configuration:
+    default-statement-timeout: 60
+
+pagehelper:
+  helperDialect: mysql
+  reasonable: true
+  supportMethodsArguments: true
+  params: count=countSql
+
+
+
+

BIN
picc-admin-server/target/classes/com/jpsoft/picc/PICCAdminServerApplication.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/advice/PermissionAdvice.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/config/SwaggerConfig.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/config/WebMvcConfig.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/interceptor/LoginInterceptor.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/admin/controller/JwtsUserController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/ApprovalRecordController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/AttachmentController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/CompanyController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/CompanyMemberController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceAgentController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceDefinitionController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceDefinitionLimitController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/InsuranceJobsController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/JobsController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/MessageController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/base/controller/TransactionRecordController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/ApplicationPolicyController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyMemberController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/business/controller/InsurancePolicyRecordController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/ApiController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/DataDictionaryController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/MenuController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/PermissionController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/RoleController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/controller/UserController.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/DataDictionaryDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/MenuDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/PermissionDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RoleDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RoleMenuDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/RolePermissionDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/UserDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dao/UserRoleDAO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/dto/RoleRelatedDTO.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/DataDictionary.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Menu.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Permission.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/Role.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/RoleMenu.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/RolePermission.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/User.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/entity/UserRole.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/DataDictionaryService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/MenuService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/PermissionService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RoleMenuService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RolePermissionService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/RoleService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/UserRoleService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/UserService.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/DataDictionaryServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/MenuServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/PermissionServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RoleMenuServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RolePermissionServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/RoleServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/UserRoleServiceImpl.class


BIN
picc-admin-server/target/classes/com/jpsoft/picc/modules/sys/service/impl/UserServiceImpl.class


+ 49 - 0
picc-admin-server/target/classes/logback-spring.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <include resource="org/springframework/boot/logging/logback/base.xml"/>
+    <!--
+    官方文档指明,需要使用<springProperty>,才可使用application.properties(或application.yml)中的值
+    -->
+    <springProperty scope="context" name="loggerLevel" source="logger.level"/>
+    <springProperty scope="context" name="loggerPath" source="logger.dir"/>
+    <property name="pattern" value="%date %level [%thread] %logger{36} [%file : %line] %msg%n"></property>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${loggerPath}/logfile.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${loggerPath}/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${pattern}</pattern>
+        </encoder>
+    </appender>
+    <!--
+    直接用maven的变量是@...@,用spring的变量是${...}
+    -->
+    <springProfile name="dev">
+        <!--root的level不能用变量-->
+        <logger name="jdbc" additivity="false" level="WARN">
+            <appender-ref ref="STDOUT" />
+        </logger>
+        <logger name="jdbc.sqltiming" additivity="false" level="ON">
+            <appender-ref ref="STDOUT" />
+        </logger>
+    </springProfile>
+    <springProfile name="test">
+        <root level="WARN">
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="FILE" />
+        </root>
+    </springProfile>
+    <springProfile name="production">
+        <root level="WARN">
+            <appender-ref ref="STDOUT" />
+            <appender-ref ref="FILE" />
+        </root>
+    </springProfile>
+</configuration>

+ 150 - 0
picc-admin-server/target/classes/mapper/sys/DataDictionary.xml

@@ -0,0 +1,150 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.DataDictionaryDAO">
+	<resultMap id="DataDictionaryMap" type="com.jpsoft.picc.modules.sys.entity.DataDictionary">
+		<id property="id" column="id_" />
+			<result property="name" column="name_" />
+			<result property="value" column="value_" />
+			<result property="sortNo" column="sort_no" />
+			<result property="parentId" column="parent_id" />
+			<result property="parentName" column="parent_name"/>
+			<result property="dataType" column="data_type" />
+			<result property="createBy" column="create_by" />
+			<result property="createDate" column="create_date" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateDate" column="update_date" />
+			<result property="activated" column="activated_" />
+			<result property="delFlag" column="del_flag"/>
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.DataDictionary">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into sys_data_dictionary
+	    (id_,name_,value_,sort_no,parent_id,data_type,create_by,create_date,update_by,update_date,activated_,del_flag)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{name,jdbcType=VARCHAR}
+,#{value,jdbcType=VARCHAR}
+,#{sortNo,jdbcType= NUMERIC }
+,#{parentId,jdbcType=VARCHAR}
+,#{dataType,jdbcType= NUMERIC }
+,#{createBy,jdbcType=VARCHAR}
+,#{createDate,jdbcType= TIMESTAMP }
+,#{updateBy,jdbcType=VARCHAR}
+,#{updateDate,jdbcType= TIMESTAMP }
+,#{activated,jdbcType= NUMERIC }
+,#{delFlag,jdbcType= NUMERIC }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from sys_data_dictionary where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.DataDictionary">
+		update sys_data_dictionary
+		<set>
+				<if test="userName!=null">
+		name_=#{name,jdbcType=VARCHAR},
+		</if>
+				<if test="value!=null">
+		value_=#{value,jdbcType=VARCHAR},
+		</if>
+				<if test="sortNo!=null">
+		sort_no=#{sortNo,jdbcType= NUMERIC },
+		</if>
+				<if test="parentId!=null">
+		parent_id=#{parentId,jdbcType=VARCHAR},
+		</if>
+			<if test="dataType!=null">
+				data_type=#{dataType,jdbcType= NUMERIC },
+			</if>
+			<if test="createBy!=null">
+				create_by=#{createBy,jdbcType=VARCHAR},
+			</if>
+			<if test="createDate!=null">
+				create_date=#{createDate,jdbcType= TIMESTAMP },
+			</if>
+			<if test="updateBy!=null">
+				update_by=#{updateBy,jdbcType=VARCHAR},
+			</if>
+			<if test="updateDate!=null">
+				update_date=#{updateDate,jdbcType= TIMESTAMP },
+			</if>
+			<if test="activated!=null">
+				activated_=#{activated,jdbcType= NUMERIC },
+			</if>
+			<if test="delFlag!=null">
+				del_flag=#{delFlag,jdbcType= NUMERIC },
+			</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="DataDictionaryMap">
+		select a.*,b.name_ as parent_name
+		from sys_data_dictionary a left join sys_data_dictionary b on a.parent_id = b.id_
+		where a.id_=#{0} and a.del_flag = 0
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from sys_data_dictionary where id_=#{0} and del_flag = 0
+	</select>
+	<select id="list" resultMap="DataDictionaryMap">
+		select * from sys_data_dictionary where del_flag = 0
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="DataDictionaryMap">
+		<![CDATA[
+			SELECT
+				a.*,b.name_ AS parent_name
+			FROM
+				sys_data_dictionary a
+			LEFT JOIN sys_data_dictionary b ON a.parent_id = b.id_
+		]]>
+		<where>
+				a.del_flag = 0
+			<if test="searchParams.id != null">
+				and a.ID_ like #{searchParams.id}
+			</if>
+			<if test="searchParams.userName != null">
+				and a.name_ like #{searchParams.userName}
+			</if>
+			<if test="searchParams.excludeId != null">
+				<![CDATA[
+				and a.ID_ <> #{searchParams.excludeId}
+				]]>
+			</if>
+			<if test="searchParams.dataType != null">
+				and a.data_type = #{searchParams.dataType}
+			</if>
+
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+
+	<select id="queryChildren" resultType="java.util.HashMap" parameterType="string" >
+		SELECT
+		a.id_ as id,a.name_ as userName,a.value_ as value
+		FROM
+		sys_data_dictionary a where a.del_flag = 0
+		and data_type = 2
+		and a.parent_id = #{0}
+	</select>
+
+	<select id="getName" parameterType="string" resultType="string">
+		select a.name_ as userName
+		from sys_data_dictionary a
+		where a.id_=#{0} and a.del_flag = 0
+	</select>
+	<select id="getValue" parameterType="string" resultType="string">
+		select a.value_ as value
+		from sys_data_dictionary a
+		where a.id_=#{0} and a.del_flag = 0
+	</select>
+</mapper>

+ 139 - 0
picc-admin-server/target/classes/mapper/sys/Menu.xml

@@ -0,0 +1,139 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.MenuDAO">
+    <resultMap id="MenuMap" type="com.jpsoft.picc.modules.sys.entity.Menu">
+        <id property="id" column="id_"/>
+        <result property="menuName" column="menu_name"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="parentName" column="parent_name"/>
+        <result property="sortNo" column="sort_no"/>
+        <result property="menuUrl" column="menu_url"/>
+        <result property="icon" column="icon_"/>
+        <result property="menuType" column="menu_type"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.Menu">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
+		insert into sys_menu
+	    (id_,menu_name,parent_id,sort_no,menu_url,menu_type,create_time,create_by,update_time,update_by,del_flag,icon_)
+		values
+		(
+            #{id,jdbcType=VARCHAR}
+            ,#{menuName,jdbcType=VARCHAR}
+            ,#{parentId,jdbcType=VARCHAR}
+            ,#{sortNo,jdbcType= NUMERIC }
+            ,#{menuUrl,jdbcType=VARCHAR}
+            ,#{menuType,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{updateTime,jdbcType= TIMESTAMP }
+            ,#{updateBy,jdbcType=VARCHAR}
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{icon,jdbcType=VARCHAR}
+		)
+	]]>
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from sys_menu where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.Menu">
+        update sys_menu
+        <set>
+            <if test="menuName!=null">
+                menu_name=#{menuName,jdbcType=VARCHAR},
+            </if>
+            <if test="parentId!=null">
+                parent_id=#{parentId,jdbcType=VARCHAR},
+            </if>
+            <if test="sortNo!=null">
+                sort_no=#{sortNo,jdbcType= NUMERIC },
+            </if>
+            <if test="menuUrl!=null">
+                menu_url=#{menuUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="menuType!=null">
+                menu_type=#{menuType,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="icon!=null">
+                icon_=#{icon,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="MenuMap">
+        select a.*,b.menu_name as parent_name
+        from sys_menu a left join sys_menu b on a.parent_id = b.id_
+        where a.id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from sys_menu where id_=#{0}
+    </select>
+    <select id="list" resultMap="MenuMap">
+        select * from sys_menu
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="MenuMap">
+        <![CDATA[
+			select a.*,b.menu_name as parent_name
+			from sys_menu a left join sys_menu b on a.parent_id = b.id_
+		]]>
+        where a.del_flag=0
+        <if test="searchParams.menuName != null">
+            and a.menu_name like #{searchParams.menuName}
+        </if>
+        <if test="searchParams.menuType != null">
+            and a.menu_type = #{searchParams.menuType}
+        </if>
+        <if test="searchParams.parentId != null">
+            and a.parent_id = #{searchParams.parentId}
+        </if>
+        <if test="searchParams.excludeId != null">
+            <![CDATA[
+                and a.id_ <> #{searchParams.excludeId}
+            ]]>
+        </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+    <select id="findAllocMenu"  parameterType="string" resultMap="MenuMap">
+        select * from sys_menu m,sys_role_menu rm,sys_user_role ur
+        where ur.user_id=#{userId}
+        and ur.role_id = rm.role_id
+        and rm.menu_id = m.id_
+        and m.menu_type = 2
+        and m.del_flag=0
+        <if test="parentId==null">
+            and m.parent_id is null
+        </if>
+        <if test="parentId!=null">
+            and m.parent_id = #{parentId}
+        </if>
+        order by m.sort_no asc
+    </select>
+</mapper>

+ 108 - 0
picc-admin-server/target/classes/mapper/sys/Permission.xml

@@ -0,0 +1,108 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.PermissionDAO">
+    <resultMap id="PermissionMap" type="com.jpsoft.picc.modules.sys.entity.Permission">
+        <id property="id" column="id_"/>
+        <result property="path" column="path_"/>
+        <result property="method" column="method_"/>
+        <result property="summary" column="summary_"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.Permission">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
+		insert into sys_permission
+	    (id_,path_,method_,summary_,del_flag,create_by,update_by,create_time,update_time)
+		values
+		(
+            #{id,jdbcType=VARCHAR}
+            ,#{path,jdbcType=VARCHAR}
+            ,#{method,jdbcType=VARCHAR}
+            ,#{summary,jdbcType=VARCHAR}
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{updateBy,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{updateTime,jdbcType= TIMESTAMP }
+		)
+	]]>
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from sys_permission where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.Permission">
+        update sys_permission
+        <set>
+            <if test="path!=null">
+                path_=#{path,jdbcType=VARCHAR},
+            </if>
+            <if test="method!=null">
+                method_=#{method,jdbcType=VARCHAR},
+            </if>
+            <if test="summary!=null">
+                summary_=#{summary,jdbcType=VARCHAR},
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="PermissionMap">
+        select
+        id_,path_,method_,summary_,del_flag,create_by,update_by,create_time,update_time from sys_permission where
+        id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from sys_permission where path_=#{path} and method_=#{method} and del_flag=0
+    </select>
+    <select id="list" resultMap="PermissionMap">
+        select * from sys_permission where del_flag=0
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="PermissionMap">
+        <![CDATA[
+			select * from sys_permission
+		]]>
+        where del_flag=0
+        <if test="searchParams.path != null">
+            and path_ like #{searchParams.path}
+        </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+    <select id="hasPermitted" parameterType="string" resultType="int">
+        <![CDATA[
+            select count(*) from
+            sys_user u,sys_user_role ur,sys_role_permission rp,sys_permission p
+            where u.id_=#{userId}
+            and u.id_=ur.user_id
+            and ur.role_id = rp.role_id
+            and rp.perm_id = p.id_
+            and p.path_ = #{path}
+            and p.method_ = #{method}
+        ]]>
+    </select>
+</mapper>

+ 93 - 0
picc-admin-server/target/classes/mapper/sys/Role.xml

@@ -0,0 +1,93 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.RoleDAO">
+    <resultMap id="RoleMap" type="com.jpsoft.picc.modules.sys.entity.Role">
+        <id property="id" column="id_"/>
+        <result property="name" column="name_"/>
+        <result property="description" column="description_"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.Role">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
+		insert into sys_role
+	    (id_,name_,description_,create_time,update_time,del_flag,create_by,update_by)
+		values
+		(
+            #{id,jdbcType=VARCHAR}
+            ,#{name,jdbcType=VARCHAR}
+            ,#{description,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{updateTime,jdbcType= TIMESTAMP }
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{updateBy,jdbcType=VARCHAR}
+		)
+	]]>
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from sys_role where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.Role">
+        update sys_role
+        <set>
+            <if test="name!=null">
+                name_=#{name,jdbcType=VARCHAR},
+            </if>
+            <if test="description!=null">
+                description_=#{description,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="RoleMap">
+        select
+        id_,name_,description_,create_time,update_time,del_flag,create_by,update_by from sys_role where id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from sys_role where id_=#{0}
+    </select>
+    <select id="list" resultMap="RoleMap">
+        select * from sys_role  where del_flag=0 order by create_time asc
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="RoleMap">
+        <![CDATA[
+			select * from sys_role
+		]]>
+            where del_flag=0
+            <if test="searchParams.roleName != null">
+                and name_ like #{searchParams.roleName}
+            </if>
+            <if test="searchParams.roleDesc != null">
+                and description_ like #{searchParams.roleDesc}
+            </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+</mapper>

+ 97 - 0
picc-admin-server/target/classes/mapper/sys/RoleMenu.xml

@@ -0,0 +1,97 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.RoleMenuDAO">
+	<resultMap id="RoleMenuMap" type="com.jpsoft.picc.modules.sys.entity.RoleMenu">
+		<id property="id" column="id_" />
+			<result property="roleId" column="role_id" />
+			<result property="menuId" column="menu_id" />
+			<result property="delFlag" column="del_flag" />
+			<result property="createBy" column="create_by" />
+			<result property="createTime" column="create_time" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateTime" column="update_time" />
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.RoleMenu">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into sys_role_menu
+	    (id_,role_id,menu_id,del_flag,create_by,create_time,update_by,update_time)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{roleId,jdbcType=VARCHAR}
+,#{menuId,jdbcType=VARCHAR}
+,#{delFlag,jdbcType= NUMERIC }
+,#{createBy,jdbcType=VARCHAR}
+,#{createTime,jdbcType= TIMESTAMP }
+,#{updateBy,jdbcType=VARCHAR}
+,#{updateTime,jdbcType= TIMESTAMP }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from sys_role_menu where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<delete id="deleteByRoleId" parameterType="string">
+		delete from sys_role_menu where role_id=#{0}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.RoleMenu">
+		update sys_role_menu
+		<set>
+				<if test="roleId!=null">
+		role_id=#{roleId,jdbcType=VARCHAR},
+		</if>
+				<if test="menuId!=null">
+		menu_id=#{menuId,jdbcType=VARCHAR},
+		</if>
+				<if test="delFlag!=null">
+		del_flag=#{delFlag,jdbcType= NUMERIC },
+		</if>
+				<if test="createBy!=null">
+		create_by=#{createBy,jdbcType=VARCHAR},
+		</if>
+				<if test="createTime!=null">
+		create_time=#{createTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="updateBy!=null">
+		update_by=#{updateBy,jdbcType=VARCHAR},
+		</if>
+				<if test="updateTime!=null">
+		update_time=#{updateTime,jdbcType= TIMESTAMP },
+		</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="RoleMenuMap">
+		select 
+id_,role_id,menu_id,del_flag,create_by,create_time,update_by,update_time		from sys_role_menu where id_=#{0}
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from sys_role_menu where id_=#{0}
+	</select>
+	<select id="list" resultMap="RoleMenuMap">
+		select * from sys_role_menu
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="RoleMenuMap">
+		<![CDATA[
+			select * from sys_role_menu
+		]]>
+		<where>
+			<if test="searchParams.id != null">
+				and ID_ like #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+	<select id="findByRoleId" parameterType="string" resultMap="RoleMenuMap">
+		select * from sys_role_menu where role_id=#{0}
+	</select>
+</mapper>

+ 96 - 0
picc-admin-server/target/classes/mapper/sys/RolePermission.xml

@@ -0,0 +1,96 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.RolePermissionDAO">
+	<resultMap id="RolePermissionMap" type="com.jpsoft.picc.modules.sys.entity.RolePermission">
+		<id property="id" column="id_" />
+			<result property="permId" column="perm_id" />
+			<result property="roleId" column="role_id" />
+			<result property="delFlag" column="del_flag" />
+			<result property="createBy" column="create_by" />
+			<result property="updateBy" column="update_by" />
+			<result property="createTime" column="create_time" />
+			<result property="updateTime" column="update_time" />
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.RolePermission">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into sys_role_permission
+	    (id_,perm_id,role_id,del_flag,create_by,update_by,create_time,update_time)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{permId,jdbcType=VARCHAR}
+,#{roleId,jdbcType=VARCHAR}
+,#{delFlag,jdbcType= NUMERIC }
+,#{createBy,jdbcType=VARCHAR}
+,#{updateBy,jdbcType=VARCHAR}
+,#{createTime,jdbcType= TIMESTAMP }
+,#{updateTime,jdbcType= TIMESTAMP }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from sys_role_permission where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<delete id="deleteByRoleId" parameterType="string">
+		delete from sys_role_permission where role_id=#{0}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.RolePermission">
+		update sys_role_permission
+		<set>
+				<if test="permId!=null">
+		perm_id=#{permId,jdbcType=VARCHAR},
+		</if>
+				<if test="roleId!=null">
+		role_id=#{roleId,jdbcType=VARCHAR},
+		</if>
+				<if test="delFlag!=null">
+		del_flag=#{delFlag,jdbcType= NUMERIC },
+		</if>
+				<if test="createBy!=null">
+		create_by=#{createBy,jdbcType=VARCHAR},
+		</if>
+				<if test="updateBy!=null">
+		update_by=#{updateBy,jdbcType=VARCHAR},
+		</if>
+				<if test="createTime!=null">
+		create_time=#{createTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="updateTime!=null">
+		update_time=#{updateTime,jdbcType= TIMESTAMP },
+		</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="RolePermissionMap">
+		select * from sys_role_permission where id_=#{0}
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from sys_role_permission where id_=#{0}
+	</select>
+	<select id="list" resultMap="RolePermissionMap">
+		select * from sys_role_permission
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="RolePermissionMap">
+		<![CDATA[
+			select * from sys_role_permission
+		]]>
+		<where>
+			<if test="searchParams.id != null">
+				and ID_ like #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+	<select id="findByRoleId" parameterType="string" resultMap="RolePermissionMap">
+		select * from sys_role_permission where role_id=#{0}
+	</select>
+</mapper>

+ 102 - 0
picc-admin-server/target/classes/mapper/sys/User.xml

@@ -0,0 +1,102 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.UserDAO">
+    <resultMap id="UserMap" type="com.jpsoft.picc.modules.sys.entity.User">
+        <id property="id" column="id_"/>
+        <result property="userName" column="user_name"/>
+        <result property="password" column="password_"/>
+        <result property="realName" column="real_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.User">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
+		insert into sys_user
+	    (id_,user_name,password_,real_name,create_time,update_time,del_flag,create_by,update_by)
+		values
+		(
+            #{id,jdbcType=VARCHAR}
+            ,#{userName,jdbcType=VARCHAR}
+            ,#{password,jdbcType=VARCHAR}
+            ,#{realName,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{updateTime,jdbcType= TIMESTAMP }
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{updateBy,jdbcType=VARCHAR}
+		)
+	]]>
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from sys_user where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.User">
+        update sys_user
+        <set>
+            <if test="userName!=null">
+                user_name=#{userName,jdbcType=VARCHAR},
+            </if>
+            <if test="password!=null">
+                password_=#{password,jdbcType=VARCHAR},
+            </if>
+            <if test="realName!=null">
+                real_name=#{realName,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="UserMap">
+        select
+        id_,user_name,password_,real_name,create_time,update_time,del_flag,create_by,update_by from sys_user where
+        id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from sys_user where id_=#{0}
+    </select>
+    <select id="list" resultMap="UserMap">
+        select * from sys_user
+    </select>
+    <select id="findByUserName" parameterType="string" resultMap="UserMap">
+        select * from sys_user where user_name=#{userName} and del_flag=0 limit 1
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="UserMap">
+        <![CDATA[
+			select * from sys_user
+			where del_flag=0
+		]]>
+        <if test="searchParams.userName != null">
+            and user_name like #{searchParams.userName}
+        </if>
+        <if test="searchParams.realName != null">
+            and real_name like #{searchParams.realName}
+        </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+</mapper>

+ 100 - 0
picc-admin-server/target/classes/mapper/sys/UserRole.xml

@@ -0,0 +1,100 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.picc.modules.sys.dao.UserRoleDAO">
+    <resultMap id="UserRoleMap" type="com.jpsoft.picc.modules.sys.entity.UserRole">
+        <id property="id" column="id_"/>
+        <result property="roleId" column="role_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+    <insert id="insert" parameterType="com.jpsoft.picc.modules.sys.entity.UserRole">
+        <!--
+        <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+            select sys_guid() from dual
+        </selectKey>
+        -->
+        <![CDATA[
+		insert into sys_user_role
+	    (id_,role_id,user_id,del_flag,create_by,update_by,create_time,update_time)
+		values
+		(
+            #{id,jdbcType=VARCHAR}
+            ,#{roleId,jdbcType=VARCHAR}
+            ,#{userId,jdbcType=VARCHAR}
+            ,#{delFlag,jdbcType= NUMERIC }
+            ,#{createBy,jdbcType=VARCHAR}
+            ,#{updateBy,jdbcType=VARCHAR}
+            ,#{createTime,jdbcType= TIMESTAMP }
+            ,#{updateTime,jdbcType= TIMESTAMP }
+		)
+	]]>
+    </insert>
+    <delete id="delete" parameterType="string">
+        delete from sys_user_role where id_=#{id,jdbcType=VARCHAR}
+    </delete>
+    <delete id="deleteByUserId" parameterType="string">
+        delete from sys_user_role where user_id=#{0}
+    </delete>
+    <update id="update" parameterType="com.jpsoft.picc.modules.sys.entity.UserRole">
+        update sys_user_role
+        <set>
+            <if test="roleId!=null">
+                role_id=#{roleId,jdbcType=VARCHAR},
+            </if>
+            <if test="userId!=null">
+                user_id=#{userId,jdbcType=VARCHAR},
+            </if>
+            <if test="delFlag!=null">
+                del_flag=#{delFlag,jdbcType= NUMERIC },
+            </if>
+            <if test="createBy!=null">
+                create_by=#{createBy,jdbcType=VARCHAR},
+            </if>
+            <if test="updateBy!=null">
+                update_by=#{updateBy,jdbcType=VARCHAR},
+            </if>
+            <if test="createTime!=null">
+                create_time=#{createTime,jdbcType= TIMESTAMP },
+            </if>
+            <if test="updateTime!=null">
+                update_time=#{updateTime,jdbcType= TIMESTAMP },
+            </if>
+        </set>
+        where id_=#{id}
+    </update>
+    <select id="get" parameterType="string" resultMap="UserRoleMap">
+        select
+        id_,role_id,user_id,del_flag,create_by,update_by,create_time,update_time from sys_user_role where id_=#{0}
+    </select>
+    <select id="exist" parameterType="string" resultType="int">
+        select count(*) from sys_user_role where id_=#{0}
+    </select>
+    <select id="list" resultMap="UserRoleMap">
+        select * from sys_user_role
+    </select>
+    <select id="findRoleByUserId" parameterType="string" resultMap="com.jpsoft.picc.modules.sys.dao.RoleDAO.RoleMap">
+        select r.* from sys_user_role ur,sys_role r
+        where ur.role_id = r.id_
+        and ur.user_id = #{0}
+        order by ur.create_time asc
+    </select>
+    <select id="search" parameterType="hashmap" resultMap="UserRoleMap">
+        <![CDATA[
+			select * from sys_user_role
+		]]>
+        <where>
+            <if test="searchParams.id != null">
+                and ID_ like #{searchParams.id}
+            </if>
+        </where>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
+</mapper>

BIN
picc-admin-server/target/test-classes/META-INF/picc-admin-server.kotlin_module


BIN
picc-admin-server/target/test-classes/com/jpsoft/picc/test/CompanyTest.class


BIN
picc-admin-server/target/test-classes/com/jpsoft/picc/test/PdfTest.class


+ 114 - 0
picc-common/picc-common.iml

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+  </component>
+  <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$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-starter:1.2.13" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.3" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper-spring-boot-autoconfigure:1.2.13" level="project" />
+    <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.11" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.27" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.27" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.12" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.0.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
+    <orderEntry type="library" name="Maven: com.github.dozermapper:dozer-core:6.4.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" 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: org.slf4j:slf4j-api:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.29" level="project" />
+    <orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.2" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:18.0" 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:spring-beans:5.2.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.1.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: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.3" 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-scratchpad:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.18" 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.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: fr.opensagres.xdocreport:xdocreport:1.0.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:ooxml-schemas:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.12" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.jersey:jersey-json:1.9" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.2.3-1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-jaxrs:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-xc:1.8.3" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.jersey:jersey-core:1.9" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.json:json:20170516" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.taobao:taobao-sdk-java:1.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.13" level="project" />
+    <orderEntry type="library" name="Maven: com.itextpdf:itext-asian:5.2.0" level="project" />
+  </component>
+</module>

+ 4 - 0
picc-common/pom.xml

@@ -16,5 +16,9 @@
             <artifactId>pagehelper-spring-boot-starter</artifactId>
             <version>LATEST</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-core</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 373 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/ItextPDFUtil.java

@@ -0,0 +1,373 @@
+package com.jpsoft.picc.modules.common.utils;
+
+import com.itextpdf.text.*;
+import com.itextpdf.text.pdf.*;
+import com.itextpdf.text.pdf.codec.Base64;
+import com.itextpdf.text.pdf.draw.LineSeparator;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2020-2-5 18:39
+ */
+public class ItextPDFUtil {
+
+    /**
+     * 斜角排列、全屏多个重复的花式文字水印
+     *
+     * @param input             需要加水印的PDF读取输入流
+     * @param output            输出生成PDF的输出流
+     * @param waterMarkString   水印字符
+     * @param xAmout            x轴重复数量
+     * @param yAmout            y轴重复数量
+     * @param opacity           水印透明度
+     * @param rotation          水印文字旋转角度,一般为45度角
+     * @param waterMarkFontSize 水印字体大小
+     * @param color             水印字体颜色
+     */
+    public static void stringWaterMark(InputStream input, OutputStream output, String waterMarkString, int xAmout, int yAmout, float opacity, float rotation, int waterMarkFontSize, BaseColor color) {
+        try {
+
+            PdfReader reader = new PdfReader(input);
+            PdfStamper stamper = new PdfStamper(reader, output);
+
+            // 添加中文字体
+            BaseFont baseFont = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
+
+            int total = reader.getNumberOfPages() + 1;
+
+            PdfContentByte over;
+            // 给每一页加水印
+            for (int i = 1; i < total; i++) {
+                Rectangle pageRect = stamper.getReader().getPageSizeWithRotation(i);
+                // 计算水印每个单位步长X,Y
+                float x = pageRect.getWidth() / xAmout;
+                float y = pageRect.getHeight() / yAmout;
+
+                over = stamper.getOverContent(i);
+                PdfGState gs = new PdfGState();
+                // 设置透明度为
+                gs.setFillOpacity(opacity);
+
+                over.setGState(gs);
+                over.saveState();
+
+                over.beginText();
+                over.setColorFill(color);
+                over.setFontAndSize(baseFont, waterMarkFontSize);
+
+                for (int n = 0; n < xAmout + 1; n++) {
+                    for (int m = 0; m < yAmout + 1; m++) {
+                        over.showTextAligned(Element.ALIGN_CENTER, waterMarkString, x * n, y * m, rotation);
+                    }
+                }
+
+                over.endText();
+            }
+            stamper.close();
+        } catch (Exception e) {
+            new Exception("NetAnd PDF add Text Watermark error" + e.getMessage());
+        }
+    }
+
+
+    public static void addPdfTextMark(String InPdfFile, String outPdfFile, String textMark, int textWidth, int textHeight) throws Exception {
+        PdfReader reader = new PdfReader(InPdfFile, "PDF".getBytes());
+        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(new File(outPdfFile)));
+        PdfContentByte under;
+        BaseFont font = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1", "Identity-H", true);// 使用系统字体
+        int pageSize = reader.getNumberOfPages();// 原pdf文件的总页数
+        for (int i = 1; i <= pageSize; i++) {
+            under = stamp.getUnderContent(i);// 水印在之前文本下
+          //  under = stamp.getOverContent(i);//水印在之前文本上
+            under.beginText();
+            under.setColorFill(new BaseColor(211, 211, 211));// 文字水印 颜色
+            under.setFontAndSize(font, 38);// 文字水印 字体及字号
+            under.setTextMatrix(textWidth, textHeight);// 文字水印 起始位置
+            under.showTextAligned(Element.ALIGN_CENTER, textMark, textWidth, textHeight, 45);
+            under.endText();
+        }
+        stamp.close();// 关闭
+    }
+
+
+    public static void createPdf(List list)throws Exception{
+        //测试pdf保存路径
+        String filePath = "C:/Users/Administrator/Desktop/test4.pdf";
+        File file = new File(filePath);
+
+
+        //创建文件
+        Document document = new Document(PageSize.A4, 80, 80, 30, 20);
+        //建立一个书写器
+        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
+
+
+        writer.setPageEvent(new Watermark("PICC"));
+
+
+        // 页眉/页脚
+        writer.setPageEvent(new MyHeaderFooter());
+        //打开文件
+        document.open();
+        // 4.向文档中添加内容
+        new ItextPDFUtil().generatePDF(document);
+        //关闭文档
+        document.close();
+        //关闭书写器
+        writer.close();
+
+    }
+
+    // 定义全局的字体静态变量
+    private static Font titlefont;
+    private static Font headfont;
+    private static Font keyfont;
+    private static Font textfont;
+    // 最大宽度
+    private static int maxWidth = 520;
+
+    // 静态代码块
+    static {
+        try {
+            // 不同字体(这里定义为同一种字体:包含不同字号、不同style)
+
+            BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
+            titlefont = new Font(bfChinese, 16, Font.BOLD);
+            headfont = new Font(bfChinese, 14, Font.BOLD);
+            keyfont = new Font(bfChinese, 10, Font.BOLD);
+            textfont = new Font(bfChinese, 11, Font.NORMAL);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // 生成PDF文件
+
+    public void generatePDF(Document document) throws Exception {
+        Image image1 = Image.getInstance("C:/Users/Administrator/Desktop/picc/logo.png");
+        Paragraph p1 = new Paragraph("00000000000001", titlefont);
+        //设置文字居中 0靠左   1,居中     2,靠右
+        p1.setAlignment(2);
+        //设置左缩进
+        p1.setIndentationLeft(12);
+        p1.setIndentationRight(12); //设置右缩进
+        p1.setFirstLineIndent(24); //设置首行缩进
+        p1.setLeading(0f); //行间距
+        p1.setSpacingBefore(5f); //设置段落上空白
+        p1.setSpacingAfter(5f); //设置段落下空白
+
+        // 直线
+        LineSeparator line = new LineSeparator(2f, 110, BaseColor.RED, Element.ALIGN_CENTER, -5f);
+
+        //段落2
+        Paragraph p2 = new Paragraph("雇主责任保险(2015版) 投保单", headfont);
+        p2.setAlignment(1);
+        p2.setSpacingBefore(5f); //设置段落上空白
+        p2.setSpacingAfter(5f); //设置段落下空白
+
+        //段落3
+        Paragraph p3 = new Paragraph("尊敬的投保人:在您填写本投保单前请先详细阅读《中国人民财产保险股份有限公司雇主责任保险条款(2015版)》,阅读条款时请您特别注意条款中的保险责任、责任免除、投保人被保险人义务、赔偿处理等内容并听取保险人就条款(包括前述需特别注意的内容)所作的说明。", textfont);
+        p3.setAlignment(0);
+        p3.setIndentationLeft(8);
+        p3.setFirstLineIndent(24); //设置首行缩进
+        p3.setSpacingAfter(10f);
+
+        //表格
+        PdfPTable table = PdfTable.createTable(new float[]{20, 65, 60, 70, 60, 65,120});
+        table.addCell(PdfTable.createCell("一、投保人、被保险人信息", textfont, Element.ALIGN_LEFT, 7,1,BaseColor.PINK, true));
+        table.addCell(PdfTable.createCell("投保人名称", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("联系电话", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("被保险人信息", textfont, Element.ALIGN_CENTER,1,5,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("名    称", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("营业性质", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("证件类型", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("□组织机构代码证\n" +"□税务登记证\n" +"□工商登记证\n"+"□营业执照", textfont, Element.ALIGN_LEFT,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("证件号码", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("营业范围", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("行业类别", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("雇员人数", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("投保人数", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("联系电话", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("联系地址", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("邮    编", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("近三年损失情况(时间、原因、损失金额)", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,5,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("二、承保信息", textfont, Element.ALIGN_LEFT, 7,1,BaseColor.PINK, true));
+
+        table.addCell(PdfTable.createCell("主险", textfont, Element.ALIGN_CENTER,2,7,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("限额名称", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("责任限额/免赔额", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("保险费(元)", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("累计责任限额", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,6,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("每次事故责任限额", textfont, Element.ALIGN_CENTER,1,4,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("每次事故责任限额", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("每人伤亡责任限额", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("每人医疗费用责任限额", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("法律费用责任限额", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("每次事故每人医疗费用免赔额", textfont, Element.ALIGN_CENTER,3,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("附加险", textfont, Element.ALIGN_CENTER,2,4,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("□附加职业病责任保险", textfont, Element.ALIGN_LEFT,4,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER,4,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER,4,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER,4,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_CENTER,1,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("保险费合计(人民币)", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("(大写):\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000(小写):¥ ", textfont, Element.ALIGN_LEFT,5,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("保险期间", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("自\u3000\u3000\u3000年\u3000月\u3000日零时起至\u3000\u3000\u3000年\u3000月\u3000日二十四时止。", textfont, Element.ALIGN_CENTER,5,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("保险合同争议处理", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("□提交______________仲裁委员会仲裁  □诉讼", textfont, Element.ALIGN_LEFT,5,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("司法管辖", textfont, Element.ALIGN_CENTER,2,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("", textfont, Element.ALIGN_LEFT,5,1,BaseColor.WHITE,false));
+
+        table.addCell(PdfTable.createCell("三、特别约定", textfont, Element.ALIGN_LEFT, 7,1,BaseColor.PINK, true));
+        table.addCell(PdfTable.createCell("特别约定", textfont, Element.ALIGN_CENTER, 2,1,BaseColor.WHITE, true));
+        table.addCell(PdfTable.createCell("1、发生保险事故后,被保险人必须在24小时内拨打95518电话报案,及时通知保险公司,未及时报案造成的损失和后果由被保险人负责。\n" +
+                "2、每次事故每人医疗费用免赔率10%,每次事故误工补贴50元/天,免赔天数3天,最高赔付180天。\n" +
+                "3、雇员残疾的,保险人按照《人身保险伤残评定标准》所对应伤残等级的给付比例乘以每人伤亡责任限额赔偿。《人身保险伤残评定标准》指中国保险行业协会发布的人身保险伤残程度评定与保险金给付比例标准,详见《关于印发<人身保险伤残评定标准>的通知》(中保协发【2013】88号)。\n" +
+                "4、本标准对功能和残疾进行了分类和分级,将人身保险伤残程度划分为一至十级,最重为第一级,最轻为第十级。与人身保险伤残程度等级相对应的保险金给付比例分为十档,伤残程度第一级对应的保险金给付比例为100%,伤残程度第十级对应的保险金给付比例为10%,每级相差10%。\n" +
+                "5、本保险单项下已扩展24小时(即全天候)。无论员工在工作或非工作期间所受意外伤害,我公司均负责赔偿。", textfont, Element.ALIGN_LEFT, new float[]{0,1,1,0},new float[]{5,10},5,1,BaseColor.WHITE, false));
+
+        table.addCell(PdfTable.createCell("四、投保人声明", textfont, Element.ALIGN_LEFT, 7,1,BaseColor.PINK, true));
+        table.addCell(PdfTable.createCell("投保人声明", keyfont, Element.ALIGN_CENTER, 2,2,BaseColor.WHITE, true));
+        table.addCell(PdfTable.createCell("\u3000\u3000保险人已向本人提供并详细介绍了中国人民财产保险雇主责任保险条款(2015版),并对其中免除保险人责任的条款(包括但不限于责任免除、投保人被保险人义务、赔偿处理、其他事项等),以及本保险合同中付费约定和特别约定的内容向本人做了明确说明,本人已充分理解并接受上述内容,同意以此作为订立保险合同的依据,自愿投保本保险。\n" +
+                "\u3000\u3000本人授权贵公司可以从第三方就有关保险服务事宜查询、收集与本人相关的信息。本人同意贵公司将本人提供的信息、本人接受贵公司保险服务产生的信息以及贵公司从第三方查询、收集的信息(包括本单证签署之前提供、查询收集和产生的),用于人保集团及其因服务必要而委托的第三方,向本人提供服务、推介产品、开展市场调查与信息数据分析。人保集团及其委托的第三方对上述个人信息依法承担保密和信息安全义务。本条中贵公司是指中国人民财产保险股份有限公司,“人保集团”是指中国人民保险集团股份有限公司及其作为控股股东、实际控制人的公司。本授权自本单证签署时生效,具有独立法律效力,不受合同成立与否及效力状态变化的影响。如取消或变更授权,请携带有效证件在办理业务的我公司营业网点办理。\n" +
+                "\u3000\u3000上述所填写的内容均属实。", keyfont, Element.ALIGN_LEFT, new float[]{0,1,0,0},new float[]{5,5},5,1,BaseColor.WHITE,false));
+        table.addCell(PdfTable.createCell("投保人签名 / 签章:\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000_________年____月____日", textfont, Element.ALIGN_RIGHT, new float[]{0,1,0,1},new float[]{50,5},5,1,BaseColor.WHITE, false));
+
+
+
+        PdfPTable table2 = PdfTable.createTable(new float[]{70, 70, 70, 70, 70, 110});
+        table2.setSpacingBefore(20F);
+        table2.setSpacingAfter(90F);
+        table2.addCell(PdfTable.createCell("以下内容由保险公司填写", keyfont, Element.ALIGN_LEFT, new float[]{2,2,2,2},new float[]{0,7},6,1,BaseColor.WHITE, false));
+
+        PdfPTable table3 = PdfTable.createTable(new float[]{70, 70, 70, 70, 80, 100});
+        table3.setSpacingBefore(10F);
+        table3.addCell(PdfTable.createCell("业务来源", textfont, Element.ALIGN_LEFT, new float[]{2,0,2,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER, new float[]{0,2,2,0},new float[]{0,7},6,1,BaseColor.WHITE, false));
+
+        table3.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER, new float[]{2,0,0,0},new float[]{0,7},1,2,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□直接业务", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□个人代理", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□电话业务", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□网上投保", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell(" ", textfont, Element.ALIGN_CENTER, new float[]{0,2,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+
+        table3.addCell(PdfTable.createCell("□专业代理", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□兼业代理", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("□经纪业务", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("名称及代码:", textfont, Element.ALIGN_LEFT, new float[]{0,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("_____________", textfont, Element.ALIGN_LEFT, new float[]{0,2,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+
+        table3.addCell(PdfTable.createCell("销售机构:", textfont, Element.ALIGN_LEFT, new float[]{2,0,0,0},new float[]{0,7},1,1,BaseColor.WHITE, false));
+        table3.addCell(PdfTable.createCell("__________________________________________________________", textfont, Element.ALIGN_LEFT, new float[]{0,2,0,0},new float[]{0,7},5,1,BaseColor.WHITE, false));
+
+        table3.addCell(PdfTable.createCell("业务员:___________ 代码:__________  联系电话:_____________ 日期:______________", textfont, Element.ALIGN_LEFT, new float[]{2,2,0,2},new float[]{0,7},6,1,BaseColor.WHITE, false));
+        document.add(image1);
+        document.add(p1);
+        document.add(line);
+        document.add(p2);
+        document.add(p3);
+        document.add(table);
+        document.add(table2);
+        document.add(table3);
+        document.newPage();
+
+
+        Paragraph newP1 = new Paragraph("中国人民财产保险股份有限公司  雇主责任保险(2015版)  投保清单", headfont);
+        newP1.setAlignment(1);
+        newP1.setSpacingBefore(5f); //设置段落上空白
+        newP1.setSpacingAfter(5f); //设置段落下空白
+
+        Paragraph newP2 = new Paragraph("投保单号:____________________", textfont);
+        //设置文字居中 0靠左   1,居中     2,靠右
+        newP2.setAlignment(2);
+        newP2.setSpacingBefore(10F);
+
+        PdfPTable table4 = PdfTable.createTable(new float[]{30, 50, 50, 110, 30, 30,80,80});
+        table4.setSpacingBefore(10F);
+        table4.addCell(PdfTable.createCell("序号", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("姓名", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("证件类型", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("证件号码", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("性别", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("年龄", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("岗位/工种", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        table4.addCell(PdfTable.createCell("健康情况", textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+
+        List list = new ArrayList();
+        for (int i =0;i<list.size();i++){
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+            table4.addCell(PdfTable.createCell(list.get(i).toString(), textfont, Element.ALIGN_CENTER, 1,1,BaseColor.WHITE, true));
+        }
+
+
+
+        document.add(image1);
+        document.add(line);
+        document.add(newP1);
+        document.add(newP2);
+        document.add(table4);
+
+    }
+
+}

+ 71 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/MyHeaderFooter.java

@@ -0,0 +1,71 @@
+package com.jpsoft.picc.modules.common.utils;
+
+import com.itextpdf.text.*;
+import com.itextpdf.text.pdf.*;
+
+import java.io.IOException;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2020-2-5 13:39
+ * 页眉页脚
+ */
+public class MyHeaderFooter extends PdfPageEventHelper {
+
+    // 总页数
+
+    PdfTemplate totalPage;
+
+    Font hfFont;
+
+    {
+        try {
+            hfFont = new Font(BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED), 8, Font.NORMAL);
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    // 打开文档时,创建一个总页数的模版
+    @Override
+    public void onOpenDocument(PdfWriter writer, Document document) {
+        PdfContentByte cb = writer.getDirectContent();
+        totalPage = cb.createTemplate(30, 16);
+    }
+
+    // 一页加载完成触发,写入页眉和页脚
+    @Override
+    public void onEndPage(PdfWriter writer, Document document) {
+        PdfPTable table = new PdfPTable(3);
+        try {
+            table.setTotalWidth(PageSize.A4.getWidth() - 100);
+            table.setWidths(new int[]{24, 24, 3});
+            table.setLockedWidth(true);
+            table.getDefaultCell().setFixedHeight(-10);
+            table.getDefaultCell().setBorder(Rectangle.BOTTOM);
+          //  table.addCell(new Paragraph("我是页眉/页脚", hfFont));// 可以直接使用addCell(str),不过不能指定字体,中文无法显示
+            table.addCell("");
+            table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
+            table.addCell(new Paragraph("第" + writer.getPageNumber() + "页/", hfFont));
+            // 总页数
+            PdfPCell cell = new PdfPCell(Image.getInstance(totalPage));
+            cell.setBorder(Rectangle.BOTTOM);
+            table.addCell(cell);
+            // 将页眉写到document中,位置可以指定,指定到下面就是页脚
+            table.writeSelectedRows(0, -1, 50, PageSize.A4.getHeight() - 822, writer.getDirectContent());
+        } catch (Exception de) {
+            throw new ExceptionConverter(de);
+        }
+    }
+
+    // 全部完成后,将总页数的pdf模版写到指定位置
+    @Override
+    public void onCloseDocument(PdfWriter writer, Document document) {
+        String text = "总" + (writer.getPageNumber()) + "页";
+        ColumnText.showTextAligned(totalPage, Element.ALIGN_LEFT, new Paragraph(text, hfFont), 1, 6, 0);
+    }
+
+
+}

+ 242 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/PdfTable.java

@@ -0,0 +1,242 @@
+package com.jpsoft.picc.modules.common.utils;
+
+import com.itextpdf.text.*;
+import com.itextpdf.text.pdf.PdfPCell;
+import com.itextpdf.text.pdf.PdfPTable;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2020-2-5 15:38
+ */
+public class PdfTable {
+    private static int maxWidth = 460;
+    /**
+     * 创建单元格(指定字体)
+     * @param value
+     * @param font
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+        cell.setPhrase(new Phrase(value, font));
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平..)
+     * @param value
+     * @param font
+     * @param align
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setPhrase(new Phrase(value, font));
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平居..、单元格跨x列合并)
+     * @param value
+     * @param font
+     * @param align
+     * @param colspan
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align, int colspan) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setColspan(colspan);
+        cell.setPhrase(new Phrase(value, font));
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平居..、单元格跨x列合并、设置单元格内边距)
+     * @param value
+     * @param font
+     * @param align
+     * @param colspan
+     * @param boderFlag
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align, int colspan, boolean boderFlag) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setColspan(colspan);
+        cell.setPhrase(new Phrase(value, font));
+        cell.setPadding(3.0f);
+        if (!boderFlag) {
+            cell.setBorder(0);
+            cell.setPaddingTop(15.0f);
+            cell.setPaddingBottom(8.0f);
+        } else if (boderFlag) {
+            cell.setBorder(0);
+        //    cell.setBackgroundColor(BaseColor.PINK);
+        //    cell.setRowspan(6);
+            cell.setPaddingTop(0.0f);
+            cell.setPaddingBottom(15.0f);
+        }
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平居..、单元格跨x列合并、设置单元格内边距)
+     * @param value
+     * @param font
+     * @param align
+     * @param colspan
+     * @param boderFlag
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align, int colspan,int rowspan,BaseColor baseColor, boolean boderFlag) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setColspan(colspan);
+        cell.setRowspan(rowspan);
+        cell.setBackgroundColor(baseColor);
+        cell.setPhrase(new Phrase(value, font));
+        cell.setPadding(3.0f);
+        if (!boderFlag) {
+         //   cell.setBorder(0);
+            cell.setPaddingTop(3.0f);
+            cell.setPaddingBottom(6.0f);
+        } else if (boderFlag) {
+         //   cell.setBorder(0);
+            cell.setPaddingTop(2.0f);
+            cell.setPaddingBottom(4.0f);
+        }
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平..、边框宽度:0表示无边框、内边距)
+     * @param value
+     * @param font
+     * @param align
+     * @param borderWidth
+     * @param paddingSize
+     * @param flag
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align, float[] borderWidth, float[] paddingSize, boolean flag) {
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setPhrase(new Phrase(value, font));
+        cell.setBorderWidthLeft(borderWidth[0]);
+        cell.setBorderWidthRight(borderWidth[1]);
+        cell.setBorderWidthTop(borderWidth[2]);
+        cell.setBorderWidthBottom(borderWidth[3]);
+        cell.setPaddingTop(paddingSize[0]);
+        cell.setPaddingBottom(paddingSize[1]);
+        if (flag) {
+            cell.setColspan(2);
+        }
+        return cell;
+    }
+
+    /**
+     * 创建单元格(指定字体、水平..、边框宽度:0表示无边框、内边距)
+     * @param value
+     * @param font
+     * @param align
+     * @param borderWidth
+     * @param paddingSize
+     * @param flag
+     * @return
+     */
+    public static PdfPCell createCell(String value, Font font, int align, float[] borderWidth, float[] paddingSize,int colspan,int rowspan,BaseColor baseColor,  boolean flag) {
+
+        /*Paragraph paragraph = new Paragraph(value);
+        paragraph.setLeading(0,4);*/
+        /*paragraph.setAlignment(0);
+        paragraph.setIndentationLeft(8);
+        paragraph.setFirstLineIndent(24); //设置首行缩进
+        paragraph.setSpacingAfter(10f);*/
+      //  paragraph.setPaddingTop(5);
+
+        PdfPCell cell = new PdfPCell();
+        cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+        cell.setHorizontalAlignment(align);
+        cell.setLeading(1.5F,1.5F);
+        cell.setColspan(colspan);
+        cell.setRowspan(rowspan);
+        cell.setBackgroundColor(baseColor);
+        cell.setPhrase(new Phrase(value, font));
+        cell.setBorderWidthLeft(borderWidth[0]);
+        cell.setBorderWidthRight(borderWidth[1]);
+        cell.setBorderWidthTop(borderWidth[2]);
+        cell.setBorderWidthBottom(borderWidth[3]);
+        cell.setPaddingLeft(4F);
+        cell.setPaddingRight(4F);
+        cell.setPaddingTop(paddingSize[0]);
+        cell.setPaddingBottom(paddingSize[1]);
+        if (flag) {
+            cell.setColspan(2);
+        }
+        return cell;
+    }
+
+    /**------------------------创建表格单元格的方法end----------------------------*/
+
+
+    /**--------------------------创建表格的方法start------------------- ---------*/
+    /**
+     * 创建默认列宽,指定列数、水平(居中、右、左)的表格
+     * @param colNumber
+     * @param align
+     * @return
+     */
+    public static PdfPTable createTable(int colNumber, int align) {
+        PdfPTable table = new PdfPTable(colNumber);
+        try {
+            table.setTotalWidth(maxWidth);
+            table.setLockedWidth(true);
+            table.setHorizontalAlignment(align);
+            table.getDefaultCell().setBorder(1);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return table;
+    }
+
+    /**
+     * 创建指定列宽、列数的表格
+     * @param widths
+     * @return
+     */
+    public static PdfPTable createTable(float[] widths) {
+        PdfPTable table = new PdfPTable(widths);
+        try {
+            table.setTotalWidth(maxWidth);
+            table.setLockedWidth(true);
+            table.setHorizontalAlignment(Element.ALIGN_CENTER);
+            table.getDefaultCell().setBorder(1);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return table;
+    }
+
+    /**
+     * 创建空白的表格
+     * @return
+     */
+    public static PdfPTable createBlankTable(Font keyfont) {
+        PdfPTable table = new PdfPTable(1);
+        table.getDefaultCell().setBorder(0);
+        table.addCell(createCell("", keyfont));
+        table.setSpacingAfter(20.0f);
+        table.setSpacingBefore(20.0f);
+        return table;
+    }/**--------------------------创建表格的方法end------------------- ---------*/
+
+}

+ 42 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/common/utils/Watermark.java

@@ -0,0 +1,42 @@
+package com.jpsoft.picc.modules.common.utils;
+
+import com.itextpdf.text.Document;
+import com.itextpdf.text.Element;
+import com.itextpdf.text.Font;
+import com.itextpdf.text.Phrase;
+import com.itextpdf.text.pdf.ColumnText;
+import com.itextpdf.text.pdf.GrayColor;
+import com.itextpdf.text.pdf.PdfPageEventHelper;
+import com.itextpdf.text.pdf.PdfWriter;
+
+/**
+ * @author 墨鱼_mo
+ * @date 2020-2-5 13:30
+ * 水印
+ */
+public class Watermark extends PdfPageEventHelper {
+
+    Font FONT = new Font(Font.FontFamily.HELVETICA, 30, Font.BOLD, new GrayColor(0.95f));
+    private String waterCont;//水印内容
+
+    public Watermark() {
+    }
+
+    public Watermark(String waterCont) {
+        this.waterCont = waterCont;
+    }
+
+    @Override
+    public void onEndPage(PdfWriter writer, Document document) {
+        for (int i = 0; i < 5; i++) {
+            for (int j = 0; j < 5; j++) {
+                ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER,
+                        new Phrase(this.waterCont == null ? "PICC" : this.waterCont, FONT),
+                        (50.5f + i * 250),
+                        (40.0f + j * 150),
+                        writer.getPageNumber() % 2 == 1 ? 45 : -45);
+            }
+        }
+    }
+
+}

BIN
picc-common/target/classes/META-INF/picc-common.kotlin_module


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/ApprovalRecordDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyMemberDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/CompanyUserDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceAgentDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceDefinitionDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceDefinitionLimitDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/InsuranceJobsDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/JobsDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/MessageDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/dao/TransactionRecordDAO.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/entity/ApprovalRecord.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/entity/Company.class


BIN
picc-common/target/classes/com/jpsoft/picc/modules/base/entity/CompanyMember.class


Някои файлове не бяха показани, защото твърде много файлове са промени