Jelajahi Sumber

项目初始化

user5 1 tahun lalu
melakukan
53896e9ea8
100 mengubah file dengan 5563 tambahan dan 0 penghapusan
  1. TEMPAT SAMPAH
      .DS_Store
  2. TEMPAT SAMPAH
      jeeplus-module/.DS_Store
  3. 201 0
      jeeplus-module/jeeplus-module.iml
  4. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/.DS_Store
  5. 25 0
      jeeplus-module/jeeplus-test/.gitignore
  6. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.jar
  7. 1 0
      jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.properties
  8. 53 0
      jeeplus-module/jeeplus-test/pom.xml
  9. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/.DS_Store
  10. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/main/.DS_Store
  11. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/main/java/.DS_Store
  12. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/main/java/com/.DS_Store
  13. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/.DS_Store
  14. TEMPAT SAMPAH
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/.DS_Store
  15. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiAuditController.java
  16. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiExpenseController.java
  17. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/controller/TestActivitiLeaveController.java
  18. 88 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiAudit.java
  19. 49 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiExpense.java
  20. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/domain/TestActivitiLeave.java
  21. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiAuditMapper.java
  22. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiExpenseMapper.java
  23. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/TestActivitiLeaveMapper.java
  24. 59 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiAuditMapper.xml
  25. 52 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiExpenseMapper.xml
  26. 44 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/mapper/xml/TestActivitiLeaveMapper.xml
  27. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiAuditService.java
  28. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiExpenseService.java
  29. 69 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/TestActivitiLeaveService.java
  30. 98 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiAuditDTO.java
  31. 55 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiExpenseDTO.java
  32. 54 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/dto/TestActivitiLeaveDTO.java
  33. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiAuditWrapper.java
  34. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiExpenseWrapper.java
  35. 36 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/activiti/service/mapstruct/TestActivitiLeaveWrapper.java
  36. 48 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/controller/TranspondController.java
  37. 32 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/dto/TranspondDTO.java
  38. 100 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/service/TranspondService.java
  39. 191 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionController.java
  40. 113 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionHandoverController.java
  41. 95 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimission.java
  42. 32 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionAudit.java
  43. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionFiles.java
  44. 52 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionHandover.java
  45. 46 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionHandoverInitialize.java
  46. 36 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionRea.java
  47. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionAuditMapper.java
  48. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionFilesMapper.java
  49. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionHandoverInitializeMapper.java
  50. 27 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionHandoverMapper.java
  51. 25 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionMapper.java
  52. 14 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionReaMapper.java
  53. 30 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionAuditMapper.xml
  54. 31 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionFilesMapper.xml
  55. 63 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionHandoverInitializeMapper.xml
  56. 74 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionHandoverMapper.xml
  57. 165 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionMapper.xml
  58. 30 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionReaMapper.xml
  59. 38 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionAuditService.java
  60. 13 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionFilesService.java
  61. 38 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionHandoverInitializeService.java
  62. 102 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionHandoverService.java
  63. 20 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionReaService.java
  64. 181 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionService.java
  65. 31 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionAuditDTO.java
  66. 133 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionDTO.java
  67. 37 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionFilesDTO.java
  68. 58 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionHandoverDTO.java
  69. 47 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionHandoverInitializeDTO.java
  70. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionReaDTO.java
  71. 15 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionAuditWrapper.java
  72. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionFilesWrapper.java
  73. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionHandoverInitializeWrapper.java
  74. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionHandoverWrapper.java
  75. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionReaWrapper.java
  76. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionWrapper.java
  77. 82 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonApi.java
  78. 200 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java
  79. 46 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseJsonRespDTO.java
  80. 87 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseSearchApi.java
  81. 53 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseSearchDTO.java
  82. 279 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/TicketQueryUtils.java
  83. 42 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/flowable/dto/CommitParamDTO.java
  84. 63 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractFileController.java
  85. 51 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractFilePaperController.java
  86. 184 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractInfoController.java
  87. 96 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/CwContractBorrowController.java
  88. 81 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractFile.java
  89. 85 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractFilePaper.java
  90. 248 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractInfo.java
  91. 22 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractParticipant.java
  92. 40 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/CwWorkContractBorrow.java
  93. 42 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/CwWorkContractBorrowMessage.java
  94. 44 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractFileMapper.java
  95. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractFilePaperMapper.java
  96. 84 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractInfoMapper.java
  97. 22 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractParticipantMapper.java
  98. 36 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/CwWorkContractBorrowMapper.java
  99. 11 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/CwWorkContractBorrowMessageMapper.java
  100. 0 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractFileMapper.xml

TEMPAT SAMPAH
.DS_Store


TEMPAT SAMPAH
jeeplus-module/.DS_Store


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

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

TEMPAT SAMPAH
jeeplus-module/jeeplus-test/.DS_Store


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

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

TEMPAT SAMPAH
jeeplus-module/jeeplus-test/.mvn/wrapper/maven-wrapper.jar


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

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

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

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

TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/.DS_Store


TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/main/.DS_Store


TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/main/java/.DS_Store


TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/main/java/com/.DS_Store


TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/.DS_Store


TEMPAT SAMPAH
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/.DS_Store


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 48 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/controller/TranspondController.java

@@ -0,0 +1,48 @@
+package com.jeeplus.test.centerservice.controller;
+
+import com.jeeplus.centerservice.enums.TaskAliasEnum;
+import com.jeeplus.test.centerservice.dto.TranspondDTO;
+import com.jeeplus.test.centerservice.service.TranspondService;
+import com.jeeplus.test.reimbursement.reimbursementInfo.service.ReimbursementInfoService;
+import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.SaveInfoDto;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * 流程审核转发controller
+ */
+@Controller
+@RequestMapping(value = "/transpond")
+public class TranspondController {
+
+    @Resource
+    private ReimbursementInfoService reimbursementInfoService;
+    @Resource
+    private TranspondService transpondService;
+
+    /**
+     * 流程详情分发
+     * @param id
+     * @param processDefKey
+     * @return
+     */
+    @RequestMapping(value = "detailDistribute", method = RequestMethod.GET)
+    @ResponseBody
+    public Object detailDistribute(@RequestParam String id, @RequestParam String processDefKey) {
+        return transpondService.detailDistribute(id, processDefKey);
+    }
+
+    /**
+     * 审核分发操作
+     * @return
+     */
+    @RequestMapping(value = "auditDistribute", method = RequestMethod.POST)
+    @ResponseBody
+    public Map<String,Object> auditDistribute(@RequestBody TranspondDTO transpondDTO) {
+        Map<String, Object> res = transpondService.auditDistribute(transpondDTO);
+        return res;
+    }
+}

+ 32 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/dto/TranspondDTO.java

@@ -0,0 +1,32 @@
+package com.jeeplus.test.centerservice.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TranspondDTO {
+
+    /**
+     * 数据id
+     */
+    private String id;
+
+    /**
+     * 审核通过或驳回 yes同意 no驳回
+     */
+    private String flag;
+
+    /**
+     * 审核意见
+     */
+    private String comment;
+
+    /**
+     * 流程key
+     * 例如:ccpm系统的13、102  cpa系统的Process_1665383385070
+     */
+    private String processDefKey;
+}

+ 100 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/centerservice/service/TranspondService.java

@@ -0,0 +1,100 @@
+package com.jeeplus.test.centerservice.service;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.jeeplus.centerservice.enums.TaskAliasEnum;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.centerservice.dto.TranspondDTO;
+import com.jeeplus.test.cw.common.CommonApi;
+import com.jeeplus.test.reimbursement.reimbursementInfo.service.ReimbursementInfoService;
+import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.RetureListDto;
+import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.SaveInfoDto;
+import org.flowable.engine.TaskService;
+import org.flowable.task.api.Task;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class TranspondService {
+
+    @Resource
+    private ReimbursementInfoService reimbursementInfoService; // 评估-报销service
+
+    @Resource
+    private TaskService taskService;
+
+    @Resource
+    private FlowTaskService flowTaskService;
+
+    @Autowired
+    private CommonApi commonApi;
+
+    public Object detailDistribute(String id, String processDefKey) {
+        TaskAliasEnum taskAliasEnum = TaskAliasEnum.getByCcpmContains(processDefKey);
+        // 评估-报销
+        if (TaskAliasEnum.REIMBURSEMENT.getCpaTaskAlias().equals(taskAliasEnum.getCpaTaskAlias())) {
+            SaveInfoDto byId = reimbursementInfoService.findById(id);
+            return byId;
+        }
+        return null;
+    }
+
+    public Map<String,Object> auditDistribute(TranspondDTO transpondDTO) {
+        Map<String,Object> result = new HashMap<>();
+        result.put("success", null);
+        if (Objects.nonNull(transpondDTO) && StringUtils.isNotBlank(transpondDTO.getId()) && StringUtils.isNotBlank(transpondDTO.getFlag()) && StringUtils.isNotBlank(transpondDTO.getProcessDefKey())) {
+            String id = transpondDTO.getId(); // 报销数据id
+            String flag = transpondDTO.getFlag(); // 审核标记  yes通过  no驳回
+            TaskAliasEnum taskAliasEnum = TaskAliasEnum.getByCcpmContains(transpondDTO.getProcessDefKey()); // 获取流程key枚举
+            if (ObjectUtil.isNotEmpty(taskAliasEnum)) {
+                if (TaskAliasEnum.REIMBURSEMENT.getCpaTaskAlias().equals(taskAliasEnum.getCpaTaskAlias())) { // 评估-报销流程
+                    SaveInfoDto reim = reimbursementInfoService.findById(id);
+                    if (Objects.nonNull(reim) && StringUtils.isNotBlank(reim.getType()) && "2".equals(reim.getType())) { // 确保当时数据处于“待审核”状态
+                        if ( StringUtils.isNotBlank(reim.getProcInsId())) {
+                            try {
+                                RetureListDto upStatusParam = new RetureListDto();
+                                upStatusParam.setId(id);
+                                if ("yes".equals(flag)) {
+                                    String taskName = commonApi.getTaskName(reim.getProcInsId());
+                                    if (StringUtils.isNotBlank(taskName) && "公司领导审批".equals(taskName)) {
+                                        // “公司领导审批” 节点审核通过时,才会将审核状态改为 “审核通过”
+                                        upStatusParam.setType("5"); // 审核状态设置为审核完成
+                                    } else {
+                                        upStatusParam.setType("2");
+                                    }
+                                } else {
+                                    upStatusParam.setType("4"); // 审核状态设置为审核驳回
+                                }
+                                reimbursementInfoService.updateStatusById(upStatusParam); // 修改数据的审核状态
+                                flowTaskService.auditByProcInsIdAndFlag(reim.getProcInsId(), flag, null, transpondDTO.getComment()); // 审核操作
+                                result.put("success", "false");
+                                result.put("message", "操作成功");
+                            }catch (Exception e) {
+                                e.printStackTrace();
+                                result.put("success", "false");
+                                result.put("message", "操作失败");
+                            }
+                        }
+                    } else {
+                        result.put("success", "false");
+                        result.put("message", "操作失败,数据已发生改变或不存在,请刷新数据");
+                    }
+                }
+            }
+        }
+        if (ObjectUtil.isEmpty(result.get("success"))) {
+            result.put("success", "false");
+            result.put("message", "操作失败");
+        }
+        return result;
+    }
+}

+ 191 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionController.java

@@ -0,0 +1,191 @@
+package com.jeeplus.test.changes.dimission.controller;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.ChangesDimissionService;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.RosterBaseService;
+import io.swagger.annotations.Api;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api("异动管理-离职")
+@RestController
+@RequestMapping(value = "/changes/dimission")
+public class ChangesDimissionController {
+
+    @Resource
+    private ChangesDimissionService changesDimissionService;
+    @Resource
+    private RosterBaseService rosterBaseService;
+
+    public List<String> getIntersection(List<String> list1,List<String> list2,List<String> list3){
+        if(list1.size()!=0 && list2.size()!=0 && list3.size()!=0){
+            List<String> intersection = (List<String>) CollectionUtils.intersection(list1, list2);
+            return (List<String>) CollectionUtils.intersection(intersection, list3);
+        }else if(list1.size()!=0 && list2.size()!=0 && list3.size()==0) {
+            return (List<String>) CollectionUtils.intersection(list1, list2);
+        }else if(list1.size()!=0 && list2.size()==0 && list3.size()!=0) {
+            return (List<String>) CollectionUtils.intersection(list1, list3);
+        }else if(list1.size()==0 && list2.size()!=0 && list3.size()!=0) {
+            return (List<String>) CollectionUtils.intersection(list2, list3);
+        }else if(list1.size()!=0 && list2.size()==0 && list3.size()==0) {
+            return list1;
+        }else if(list1.size()==0 && list2.size()!=0 && list3.size()==0) {
+            return list2;
+        }else if(list1.size()==0 && list2.size()==0 && list3.size()!=0) {
+            return list3;
+        }
+        return null;
+    }
+    /**
+     * 查询离职列表
+     * @param changesDimissionDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询离职列表")
+    @PreAuthorize("hasAuthority('changes:dimission:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<ChangesDimissionDTO>> data(ChangesDimissionDTO changesDimissionDTO, Page<ChangesDimissionDTO> page) throws Exception {
+        ChangesDimission changesDimission = ChangesDimissionWrapper.INSTANCE.toEntity(changesDimissionDTO);
+        QueryWrapper<ChangesDimission> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( changesDimission, ChangesDimission.class );
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(ObjectUtil.isNotEmpty(changesDimissionDTO.getRosterBaseDTO())){
+                if(StringUtils.isNotBlank(changesDimissionDTO.getRosterId())
+                        ||StringUtils.isNotBlank(changesDimissionDTO.getRosterBaseDTO().getOfficeId())
+                        ||StringUtils.isNotBlank(changesDimissionDTO.getRosterBaseDTO().getMobile())){
+                    List<String> rosterIdsName = new ArrayList<>();
+                    List<String> rosterIdsOfficeId = new ArrayList<>();
+                    List<String> rosterIdsMobile = new ArrayList<>();
+                    if(StringUtils.isNotBlank(changesDimissionDTO.getRosterId())){
+                        if(StringUtils.isNotBlank(changesDimissionDTO.getRosterId())) {
+                            rosterIdsName.add(changesDimissionDTO.getRosterId());
+                        }
+                    }
+                    if(StringUtils.isNotBlank(changesDimissionDTO.getRosterBaseDTO().getOfficeId())){
+                        List<String> collect = rosterBaseService.list(new QueryWrapper<RosterBase>().lambda().eq(RosterBase::getOfficeId, changesDimissionDTO.getRosterBaseDTO().getOfficeId()))
+                                .stream().map(RosterBase::getId).collect(Collectors.toList());
+                        rosterIdsOfficeId.addAll(collect);
+                        if(CollectionUtil.isNotEmpty(collect)) {
+                            rosterIdsOfficeId.addAll(collect);
+                        }else{
+                            return ResponseEntity.ok(null);
+                        }
+                    }
+                    if(StringUtils.isNotBlank(changesDimissionDTO.getRosterBaseDTO().getMobile())){
+                        List<String> collect = rosterBaseService.list(new QueryWrapper<RosterBase>().lambda().like(RosterBase::getMobile, changesDimissionDTO.getRosterBaseDTO().getMobile()))
+                                .stream().map(RosterBase::getId).collect(Collectors.toList());
+                        rosterIdsMobile.addAll(collect);
+                        if(CollectionUtil.isNotEmpty(collect)) {
+                            rosterIdsMobile.addAll(collect);
+                        }else{
+                            return ResponseEntity.ok(null);
+                        }
+                    }
+                    List<String> ids = getIntersection(rosterIdsName,rosterIdsOfficeId,rosterIdsMobile);
+                    if(CollectionUtil.isNotEmpty(ids)){
+                        queryWrapper.lambda().in(ChangesDimission::getRosterId,ids);
+                    }else{
+                        return ResponseEntity.ok(null);
+                    }
+                }
+            }
+        }
+        IPage<ChangesDimissionDTO> result = changesDimissionService.findList (page,queryWrapper);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
+     * 查询离职数据
+     * @param id
+     * @return
+     */
+    @ApiLog("查询离职详情")
+    @PreAuthorize ("hasAnyAuthority('changes:dimission:view','changes:dimission:add','changes:dimission:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("id") String id) {
+        ChangesDimissionDTO changesDimissionDTO = changesDimissionService.queryById ( id );
+        return ResponseEntity.ok (changesDimissionDTO);
+    }
+
+    /**
+     * 修改/新增离职
+     * @param changesDimissionDTO
+     * @return
+     */
+    @ApiLog(value = "修改/新增离职", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody ChangesDimissionDTO changesDimissionDTO) {
+        return changesDimissionService.saveDimission(changesDimissionDTO);
+    }
+
+    /**
+     * 保存离职审批
+     * @param changesDimissionDTO
+     * @return
+     */
+    @ApiLog(value = "保存离职审批", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("saveCheck")
+    public ResponseEntity saveCheck(@Valid @RequestBody ChangesDimissionDTO changesDimissionDTO) {
+        changesDimissionService.saveDimission(changesDimissionDTO);
+        return ResponseUtil.newInstance().add("businessTable", "changes_dimission_audit").add("businessId", changesDimissionDTO.getId()).ok ("操作成功");
+    }
+
+    /**
+     * 删除离职
+     * @param ids
+     * @return
+     */
+    @ApiLog(value = "删除离职", type = LogTypeEnum.SAVE)
+    @PreAuthorize ("hasAuthority('changes:dimission:del')")
+    @DeleteMapping("delete")
+    public ResponseEntity delete(String ids) {
+        return changesDimissionService.deleteByIds(ids);
+    }
+
+    /**
+     * 取消确认
+     * @param id
+     * @return
+     */
+    @ApiLog(value = "取消确认", type = LogTypeEnum.SAVE)
+    @GetMapping("updateStatus")
+    public ResponseEntity updateStatus(String id) {
+        return changesDimissionService.updateStatus(id);
+    }
+
+    /**
+     * 同意、驳回、撤回   离职审批
+     * @param changesDimissionDTO
+     */
+    @ApiLog(value = "同意/驳回/撤回离职审批", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("updateVettingStatusById")
+    public void updateVettingStatusById(@Valid @RequestBody ChangesDimissionDTO changesDimissionDTO) {
+        changesDimissionService.updateVettingStatusById(changesDimissionDTO);
+    }
+}

+ 113 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/controller/ChangesDimissionHandoverController.java

@@ -0,0 +1,113 @@
+package com.jeeplus.test.changes.dimission.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.service.ChangesDimissionHandoverInitializeService;
+import com.jeeplus.test.changes.dimission.service.ChangesDimissionHandoverService;
+import com.jeeplus.test.changes.dimission.service.ChangesDimissionService;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionHandoverWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.RosterBaseService;
+import io.swagger.annotations.Api;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api("异动管理-离职交接")
+@RestController
+@RequestMapping(value = "/changes/dimission_handover")
+public class ChangesDimissionHandoverController {
+
+    @Resource
+    private ChangesDimissionService changesDimissionService;
+    @Resource
+    private RosterBaseService rosterBaseService;
+    @Resource
+    private ChangesDimissionHandoverService changesDimissionHandoverService;
+    @Resource
+    private ChangesDimissionHandoverInitializeService changesDimissionHandoverInitializeService;
+
+    /**
+     * 查询离职交接列表
+     * @param changesDimissionHandoverDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("查询离职交接列表")
+    @PreAuthorize("hasAuthority('changes:dimission:list')")
+    @GetMapping("list")
+    public ResponseEntity<IPage<ChangesDimissionHandoverDTO>> data(ChangesDimissionHandoverDTO changesDimissionHandoverDTO, Page<ChangesDimissionHandoverDTO> page) throws Exception {
+        ChangesDimissionHandover changesDimissionHandover = ChangesDimissionHandoverWrapper.INSTANCE.toEntity(changesDimissionHandoverDTO);
+        QueryWrapper<ChangesDimissionHandover> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( changesDimissionHandover, ChangesDimissionHandover.class );
+        IPage<ChangesDimissionHandoverDTO> result = changesDimissionHandoverService.findList (page,queryWrapper);
+        return ResponseEntity.ok (result);
+    }
+
+    /**
+     * 查询离职数据
+     * @param id
+     * @return
+     */
+    @ApiLog("查询离职交接详情")
+    @PreAuthorize ("hasAnyAuthority('changes:dimission:view','changes:dimission:add','changes:dimission:edit')")
+    @GetMapping("queryById")
+    public ResponseEntity queryById(@RequestParam("id") String id) {
+        List<ChangesDimissionHandoverDTO> changesDimissionHandoverDTOList = changesDimissionHandoverService.queryByCdId ( id );
+        return ResponseEntity.ok (changesDimissionHandoverDTOList);
+    }
+
+    /**
+     * 查询离职交接初始值数据
+     * @return
+     */
+    @ApiLog("查询离职交接初始值数据")
+    @GetMapping("queryInitialize")
+    public ResponseEntity queryInitialize() {
+        List<ChangesDimissionHandoverInitializeDTO> changesDimissionHandoverDTOList = changesDimissionHandoverInitializeService.getList ();
+        return ResponseEntity.ok (changesDimissionHandoverDTOList);
+    }
+
+    /**
+     * 保存离职交接信息
+     * @param changesDimissionHandoverDTO
+     * @return
+     */
+    @ApiLog(value = "修改/新增离职交接信息", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("save")
+    public ResponseEntity save(@Valid @RequestBody ChangesDimissionHandoverDTO changesDimissionHandoverDTO) {
+        changesDimissionHandoverService.saveHandover(changesDimissionHandoverDTO);
+        return ResponseUtil.newInstance().add("businessTable", "changes_dimission").add("businessId", changesDimissionHandoverDTO.getCdId()).ok ("操作成功");
+    }
+
+    /**
+     * 同意、驳回、撤回   离职交接审批
+     * @param changesDimissionDTO
+     */
+    @ApiLog(value = "同意/驳回/撤回离职交接审批", type = LogTypeEnum.SAVE)
+    @PreAuthorize("hasAnyAuthority('changes:dimission:save','changes:dimission:edit')")
+    @PostMapping("updateByCdId")
+    public void updateByCdId(@Valid @RequestBody ChangesDimissionDTO changesDimissionDTO) {
+        changesDimissionHandoverService.updateByCdId(changesDimissionDTO);
+    }
+
+}

+ 95 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimission.java

@@ -0,0 +1,95 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职
+ * @TableName changes_dimission
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission")
+public class ChangesDimission extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String rosterId;
+
+    /**
+     * 最后工作日
+     */
+    private Date lastWorkDate;
+
+    /**
+     * 离职日期
+     */
+    private Date dimissionDate;
+
+    /**
+     * 原因说明
+     */
+    private String reasonDesc;
+
+    /**
+     * 离职类型
+     */
+    private String type;
+
+    /**
+     * 离职审批
+     */
+    private String vettingStatus;
+
+    /**
+     * 离职交接
+     */
+    private String handoverStatus;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 薪资结算日
+     */
+    private Date payrollSettlementDate;
+
+    /**
+     * 申请日期
+     */
+    private Date requestDate;
+
+    /**
+     * 审批交接人
+     */
+    private String handoverId;
+
+    /**
+     * 社保最后缴纳月
+     */
+    private String socialSecurityLast;
+
+    /**
+     * 公积金最后缴纳月
+     */
+    private String providentFundLast;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 32 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionAudit.java

@@ -0,0 +1,32 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName changes_dimission_audit
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission_audit")
+public class ChangesDimissionAudit extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 审核状态
+     */
+    private String vettingStatus;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionFiles.java

@@ -0,0 +1,37 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-附件
+ * @TableName changes_dimission_files
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission_files")
+public class ChangesDimissionFiles extends BaseEntity {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 附件url
+     */
+    private String url;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 52 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionHandover.java

@@ -0,0 +1,52 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName changes_dimission_handover
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission_handover")
+public class ChangesDimissionHandover extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 所属分类,0为分类
+     */
+    private String parentId;
+
+    /**
+     * 分类
+     */
+    private String type;
+
+    /**
+     * 交接内容
+     */
+    private String content;
+
+    /**
+     * 会签对象
+     */
+    private String rosterId;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionHandoverInitialize.java

@@ -0,0 +1,46 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName changes_dimission_handover_initialize
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("changes_dimission_handover_initialize")
+public class ChangesDimissionHandoverInitialize extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 所属分类,0为分类
+     */
+    private String parentId;
+
+    /**
+     * 分类
+     */
+    private String type;
+
+    /**
+     * 交接内容
+     */
+    private String content;
+
+    /**
+     * 会签对象
+     */
+    private String rosterId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 36 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/domain/ChangesDimissionRea.java

@@ -0,0 +1,36 @@
+package com.jeeplus.test.changes.dimission.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-离职原因
+ * @TableName changes_dimission_rea
+ */
+@Data
+@TableName("changes_dimission_rea")
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionRea extends BaseEntity {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 离职原因
+     */
+    private String dimissionReason;
+
+    private static final long serialVersionUID = 1L;
+}

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionAuditMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit
+*/
+@Mapper
+public interface ChangesDimissionAuditMapper extends BaseMapper<ChangesDimissionAudit> {
+
+
+}

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionFilesMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles
+*/
+@Mapper
+public interface ChangesDimissionFilesMapper extends BaseMapper<ChangesDimissionFiles> {
+
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionHandoverInitializeMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandoverInitialize;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandoverInitialize
+*/
+@Mapper
+public interface ChangesDimissionHandoverInitializeMapper extends BaseMapper<ChangesDimissionHandoverInitialize> {
+
+    public List<ChangesDimissionHandoverInitializeDTO> getList();
+}

+ 27 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionHandoverMapper.java

@@ -0,0 +1,27 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover
+*/
+@Mapper
+public interface ChangesDimissionHandoverMapper extends BaseMapper<ChangesDimissionHandover> {
+
+    public IPage<ChangesDimissionHandoverDTO> findList(Page<ChangesDimissionHandoverDTO> page, @Param(Constants.WRAPPER) QueryWrapper<ChangesDimissionHandover> queryWrapper);
+
+    public List<ChangesDimissionHandoverDTO> queryByCdId(@Param("id") String id);
+
+}

+ 25 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionMapper.java

@@ -0,0 +1,25 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimission
+*/
+@Mapper
+public interface ChangesDimissionMapper extends BaseMapper<ChangesDimission> {
+
+    public IPage<ChangesDimissionDTO> findList(Page<ChangesDimissionDTO> page, @Param(Constants.WRAPPER) QueryWrapper<ChangesDimission> queryWrapper);
+
+    public ChangesDimissionDTO queryById(@Param("id") String id);
+
+}

+ 14 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/ChangesDimissionReaMapper.java

@@ -0,0 +1,14 @@
+package com.jeeplus.test.changes.dimission.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @Entity com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea
+*/
+@Mapper
+public interface ChangesDimissionReaMapper extends BaseMapper<ChangesDimissionRea> {
+
+
+}

+ 30 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionAuditMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionAuditMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionAuditDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="vettingStatus" column="vetting_status" jdbcType="VARCHAR"/>
+            <result property="procInsId" column="proc_ins_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cda.id,
+        cda.create_by,
+        cda.create_date,
+        cda.update_by,
+        cda.update_date,
+        cda.del_flag,
+        cda.remarks,
+        cda.vetting_status,
+        cda.proc_ins_id
+    </sql>
+</mapper>

+ 31 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionFilesMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionFilesMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="cdId" column="cd_id" jdbcType="VARCHAR"/>
+            <result property="url" column="url" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdf.id,
+        cdf.create_by,
+        cdf.create_date,
+        cdf.update_by,
+        cdf.update_date,
+        cdf.del_flag,
+        cdf.remarks,
+        cdf.cd_id,
+        cdf.url,
+        cdf.name
+    </sql>
+</mapper>

+ 63 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionHandoverInitializeMapper.xml

@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionHandoverInitializeMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="content" column="content" jdbcType="VARCHAR"/>
+            <result property="rosterId" column="roster_id" jdbcType="VARCHAR"/>
+            <collection property="handoverDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO" column="id" select="getListByParentId"></collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdhi.id,
+        cdhi.create_by,
+        cdhi.create_date,
+        cdhi.update_by,
+        cdhi.update_date,
+        cdhi.del_flag,
+        cdhi.remarks,
+        cdhi.parent_id,
+        cdhi.type,
+        cdhi.content,
+        cdhi.roster_id
+    </sql>
+
+    <sql id="Child_Column_List">
+        cdhic.id,
+        cdhic.create_by,
+        cdhic.create_date,
+        cdhic.update_by,
+        cdhic.update_date,
+        cdhic.del_flag,
+        cdhic.remarks,
+        cdhic.parent_id,
+        cdhic.type,
+        cdhic.content,
+        cdhic.roster_id
+    </sql>
+
+    <select id="getListByParentId" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO">
+        select
+        <include refid="Child_Column_List"></include>
+        from changes_dimission_handover_initialize cdhic
+        where cdhic.del_flag = '0' and cdhic.parent_id = #{id}
+    </select>
+
+    <select id="getList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from changes_dimission_handover_initialize cdhi
+        where cdhi.del_flag = '0' and cdhi.parent_id = '0'
+    </select>
+</mapper>

+ 74 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionHandoverMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionHandoverMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="cdId" column="cd_id" jdbcType="VARCHAR"/>
+            <result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="content" column="content" jdbcType="VARCHAR"/>
+            <result property="rosterId" column="roster_id" jdbcType="VARCHAR"/>
+            <collection property="handoverDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO" column="id" select="getListByParentId"></collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdh.id,
+        cdh.create_by,
+        cdh.create_date,
+        cdh.update_by,
+        cdh.update_date,
+        cdh.del_flag,
+        cdh.remarks,
+        cdh.cd_id,
+        cdh.parent_id,
+        cdh.type,
+        cdh.content,
+        cdh.roster_id
+    </sql>
+
+    <sql id="Child_Column_List">
+        cdhc.id,
+        cdhc.create_by,
+        cdhc.create_date,
+        cdhc.update_by,
+        cdhc.update_date,
+        cdhc.del_flag,
+        cdhc.remarks,
+        cdhc.cd_id,
+        cdhc.parent_id,
+        cdhc.type,
+        cdhc.content,
+        cdhc.roster_id
+    </sql>
+
+    <select id="getListByParentId" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO">
+        select
+        <include refid="Child_Column_List"></include>
+        from changes_dimission_handover cdhc
+        where cdhc.parent_id = ${id} and cdhc.del_flag = '0'
+    </select>
+
+    <select id="findList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from changes_dimission_handover cdh
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="queryByCdId" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>
+        from changes_dimission_handover cdh
+        where cdh.del_flag = '0' and cdh.cd_id = ${id} and cdh.parent_id = '0'
+    </select>
+
+</mapper>

+ 165 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionMapper.xml

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="rosterId" column="roster_id" jdbcType="VARCHAR"/>
+            <result property="lastWorkDate" column="last_work_date" jdbcType="TIMESTAMP"/>
+            <result property="dimissionDate" column="dimission_date" jdbcType="TIMESTAMP"/>
+            <result property="reasonDesc" column="reason_desc" jdbcType="VARCHAR"/>
+            <result property="type" column="type" jdbcType="VARCHAR"/>
+            <result property="vettingStatus" column="vetting_status" jdbcType="VARCHAR"/>
+            <result property="handoverStatus" column="handover_status" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <result property="payrollSettlementDate" column="payroll_settlement_date" jdbcType="TIMESTAMP"/>
+            <result property="requestDate" column="request_date" jdbcType="TIMESTAMP"/>
+            <result property="rosterBaseDTO.name" column="rb_name" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.jobNo" column="rb_job_no" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.mobile" column="rb_mobile" jdbcType="VARCHAR"/>
+            <result property="rosterBaseDTO.onboardingDate" column="rb_onboarding_date" jdbcType="TIMESTAMP"/>
+            <result property="soName" column="so_name" jdbcType="VARCHAR"/>
+            <result property="jpName" column="jp_name" jdbcType="VARCHAR"/>
+            <result column="handover_id" jdbcType="VARCHAR" property="handoverId" />
+            <result column="social_security_last" jdbcType="TIMESTAMP" property="socialSecurityLast" />
+            <result column="provident_fund_last" jdbcType="TIMESTAMP" property="providentFundLast" />
+            <result column="proc_ins_id" jdbcType="VARCHAR" property="procInsId" />
+            <association property="changesDimissionAuditDTO" column="id" javaType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionAuditDTO" select="getAudit"></association>
+            <collection property="changesDimissionReaDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO" column="id" select="getRea"></collection>
+            <collection property="changesDimissionFilesDTOList" ofType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO" column="id" select="getFiles"></collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cd.id,
+        cd.create_by,
+        cd.create_date,
+        cd.update_by,
+        cd.update_date,
+        cd.del_flag,
+        cd.remarks,
+        cd.roster_id,
+        cd.last_work_date,
+        cd.dimission_date,
+        cd.reason_desc,
+        cd.type,
+        cd.vetting_status,
+        cd.handover_status,
+        cd.status,
+        cd.payroll_settlement_date,
+        cd.request_date,
+        cd.handover_id,
+        cd.social_security_last,
+        cd.provident_fund_last,
+        cd.proc_ins_id
+    </sql>
+    <sql id="Rea_Column_List">
+        cdr.id,
+        cdr.create_by,
+        cdr.create_date,
+        cdr.update_by,
+        cdr.update_date,
+        cdr.del_flag,
+        cdr.remarks,
+        cdr.cd_id,
+        cdr.dimission_reason
+    </sql>
+    <sql id="Files_Column_List">
+        cdf.id,
+        cdf.create_by,
+        cdf.create_date,
+        cdf.update_by,
+        cdf.update_date,
+        cdf.del_flag,
+        cdf.remarks,
+        cdf.cd_id,
+        cdf.url,
+        cdf.name
+    </sql>
+    <sql id="Audit_Column_List">
+        cda.id,
+        cda.create_by,
+        cda.create_date,
+        cda.update_by,
+        cda.update_date,
+        cda.del_flag,
+        cda.remarks,
+        cda.vetting_status,
+        cda.proc_ins_id
+    </sql>
+
+    <select id="getAudit" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionAuditDTO">
+        select
+        <include refid="Audit_Column_List"></include>
+        from changes_dimission_audit cda
+        where cda.del_flag = '0' and cda.id = #{id}
+    </select>
+    <select id="getRea" resultType="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO">
+        select
+        <include refid="Rea_Column_List"></include>
+        from changes_dimission_rea cdr
+        where cdr.del_flag = '0' and cdr.cd_id = #{id}
+    </select>
+    <select id="getFiles" resultMap="FilesMap">
+        select
+        <include refid="Files_Column_List"></include>,
+        su.name su_name
+        from changes_dimission_files cdf
+        left join sys_user su on cdf.create_by = su.id and su.del_flag = '0'
+        where cdf.del_flag = '0' and cdf.cd_id = #{id}
+        order by cdf.create_date desc
+    </select>
+    <resultMap id="FilesMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO">
+        <id column="id" jdbcType="VARCHAR" property="id" />
+        <result column="create_by" jdbcType="VARCHAR" property="createBy.id" />
+        <result column="create_date" jdbcType="TIMESTAMP" property="createDate" />
+        <result column="update_by" jdbcType="VARCHAR" property="updateBy.id" />
+        <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" />
+        <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+        <result column="cd_id" jdbcType="VARCHAR" property="cdId" />
+        <result column="url" jdbcType="VARCHAR" property="url" />
+        <result column="name" jdbcType="VARCHAR" property="name" />
+        <result column="su_name" jdbcType="VARCHAR" property="createBy.name" />
+    </resultMap>
+
+    <select id="findList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>,
+        rb.name rb_name,
+        rb.job_no rb_job_no,
+        rb.mobile rb_mobile,
+        rb.onboarding_date rb_onboarding_date,
+        so.name so_name,
+        jp.name jp_name
+        from changes_dimission cd
+        left join roster_base rb on rb.id = cd.roster_id and rb.del_flag = '0'
+        left join sys_office so on so.id = rb.office_id and so.del_flag = '0'
+        left join job_position jp on jp.id = rb.job_position_id and jp.del_flag = '0'
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="queryById" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"></include>,
+        rb.name rb_name,
+        rb.job_no rb_job_no,
+        rb.mobile rb_mobile,
+        rb.onboarding_date rb_onboarding_date,
+        so.name so_name,
+        jp.name jp_name
+        from changes_dimission cd
+        left join roster_base rb on rb.id = cd.roster_id and rb.del_flag = '0'
+        left join sys_office so on so.id = rb.office_id and so.del_flag = '0'
+        left join job_position jp on jp.id = rb.job_position_id and jp.del_flag = '0'
+        where cd.del_flag = '0' and cd.id = #{id}
+    </select>
+
+</mapper>

+ 30 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/mapper/xml/ChangesDimissionReaMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.changes.dimission.mapper.ChangesDimissionReaMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+            <result property="cdId" column="cd_id" jdbcType="VARCHAR"/>
+            <result property="dimissionReason" column="dimission_reason" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        cdr.id,
+        cdr.create_by,
+        cdr.create_date,
+        cdr.update_by,
+        cdr.update_date,
+        cdr.del_flag,
+        cdr.remarks,
+        cdr.cd_id,
+        cdr.dimission_reason
+    </sql>
+</mapper>

+ 38 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionAuditService.java

@@ -0,0 +1,38 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionAuditMapper;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionFilesWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionAuditService extends ServiceImpl<ChangesDimissionAuditMapper, ChangesDimissionAudit> {
+
+
+
+}

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionFilesService.java

@@ -0,0 +1,13 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionFilesMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionFilesService extends ServiceImpl<ChangesDimissionFilesMapper, ChangesDimissionFiles> {
+
+}

+ 38 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionHandoverInitializeService.java

@@ -0,0 +1,38 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandoverInitialize;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionHandoverInitializeMapper;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionHandoverMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionHandoverInitializeWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionHandoverWrapper;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionHandoverInitializeService extends ServiceImpl<ChangesDimissionHandoverInitializeMapper, ChangesDimissionHandoverInitialize> {
+
+    @Resource
+    private ChangesDimissionHandoverInitializeMapper changesDimissionHandoverInitializeMapper;
+
+    public List<ChangesDimissionHandoverInitializeDTO> getList(){
+        List<ChangesDimissionHandoverInitializeDTO> list = changesDimissionHandoverInitializeMapper.getList();
+        return list;
+    }
+
+}

+ 102 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionHandoverService.java

@@ -0,0 +1,102 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionHandoverMapper;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionFilesWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionHandoverWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionHandoverService extends ServiceImpl<ChangesDimissionHandoverMapper, ChangesDimissionHandover> {
+
+    @Resource
+    private ChangesDimissionHandoverMapper changesDimissionHandoverMapper;
+    @Resource
+    private ChangesDimissionMapper changesDimissionMapper;
+
+    public IPage<ChangesDimissionHandoverDTO> findList(Page<ChangesDimissionHandoverDTO> page, QueryWrapper<ChangesDimissionHandover> queryWrapper){
+        queryWrapper.eq("cdh.del_flag","0").eq("cdh.parent_id","0");
+        return changesDimissionHandoverMapper.findList(page,queryWrapper);
+    }
+
+    public void saveHandover(ChangesDimissionHandoverDTO changesDimissionHandoverDTO) {
+
+        if(ObjectUtil.isNotEmpty(changesDimissionHandoverDTO)){
+            if(StringUtils.isNotBlank(changesDimissionHandoverDTO.getCdId())){
+                this.remove(new QueryWrapper<ChangesDimissionHandover>().lambda().eq(ChangesDimissionHandover::getCdId,changesDimissionHandoverDTO.getCdId()));
+            }
+            if(CollectionUtil.isNotEmpty(changesDimissionHandoverDTO.getHandoverDTOList())){
+                List<ChangesDimissionHandover> changesDimissionHandoverList = new ArrayList<>();
+                changesDimissionHandoverDTO.getHandoverDTOList().stream().forEach(item->{
+                    ChangesDimissionHandover changesDimissionHandover = ChangesDimissionHandoverWrapper.INSTANCE.toEntity(item);
+                    changesDimissionHandover.setParentId("0");
+                    if(StringUtils.isNotBlank(changesDimissionHandoverDTO.getCdId())){
+                        changesDimissionHandover.setCdId(changesDimissionHandoverDTO.getCdId());
+                    }
+                    changesDimissionHandover.setId(null);
+                    this.save(changesDimissionHandover);
+                    if(CollectionUtil.isNotEmpty(item.getHandoverDTOList())){
+                        item.getHandoverDTOList().stream().forEach(item2->{
+                            ChangesDimissionHandover handover = ChangesDimissionHandoverWrapper.INSTANCE.toEntity(item2);
+                            handover.setParentId(changesDimissionHandover.getId());
+                            if(StringUtils.isNotBlank(changesDimissionHandoverDTO.getCdId())){
+                                handover.setCdId(changesDimissionHandoverDTO.getCdId());
+                            }
+                            handover.setId(null);
+                            changesDimissionHandoverList.add(handover);
+                        });
+                    }
+                });
+                this.saveBatch(changesDimissionHandoverList);
+                ChangesDimission changesDimission = new ChangesDimission();
+                changesDimission.setId(changesDimissionHandoverDTO.getCdId());
+                changesDimission.setHandoverStatus(changesDimissionHandoverDTO.getHandoverStatus());
+                changesDimissionMapper.updateById(changesDimission);
+            }
+        }
+    }
+
+    public List<ChangesDimissionHandoverDTO> queryByCdId(String id) {
+
+        List<ChangesDimissionHandoverDTO> changesDimissionHandoverDTOList = changesDimissionHandoverMapper.queryByCdId(id);
+
+        return changesDimissionHandoverDTOList;
+    }
+
+    /**
+     * 根据离职id来修改离职交接状态 handoverStatus的值
+     * @param changesDimissionDTO
+     */
+    public void updateByCdId(ChangesDimissionDTO changesDimissionDTO){
+        ChangesDimission changesDimission = new ChangesDimission();
+        changesDimission.setHandoverStatus(changesDimissionDTO.getHandoverStatus());
+        this.changesDimissionMapper.update(changesDimission,new QueryWrapper<ChangesDimission>().lambda().eq(ChangesDimission::getId,changesDimissionDTO.getId()));
+    }
+
+}

+ 20 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionReaService.java

@@ -0,0 +1,20 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionReaMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+@Service
+@Transactional
+public class ChangesDimissionReaService extends ServiceImpl<ChangesDimissionReaMapper, ChangesDimissionRea> {
+
+    @Resource
+    private ChangesDimissionReaMapper changesDimissionReaMapper;
+
+}

+ 181 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/ChangesDimissionService.java

@@ -0,0 +1,181 @@
+package com.jeeplus.test.changes.dimission.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.mapper.ChangesDimissionMapper;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionFilesWrapper;
+import com.jeeplus.test.changes.dimission.service.mapstruct.ChangesDimissionWrapper;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ChangesDimissionService extends ServiceImpl<ChangesDimissionMapper, ChangesDimission> {
+
+    @Resource
+    private ChangesDimissionMapper changesDimissionMapper;
+    @Resource
+    private ChangesDimissionReaService changesDimissionReaService;
+    @Resource
+    private ChangesDimissionFilesService changesDimissionFilesService;
+    @Resource
+    private ChangesDimissionAuditService changesDimissionAuditService;
+
+    public IPage<ChangesDimissionDTO> findList(Page<ChangesDimissionDTO> page, QueryWrapper<ChangesDimission> queryWrapper){
+        queryWrapper.eq("cd.del_flag","0");
+        return changesDimissionMapper.findList(page,queryWrapper);
+    }
+
+    public ChangesDimissionDTO queryById(String id) {
+
+        ChangesDimissionDTO changesDimissionDTO = changesDimissionMapper.queryById(id);
+
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getChangesDimissionReaDTOList())){
+                List<String> collect = changesDimissionDTO.getChangesDimissionReaDTOList().stream().map(ChangesDimissionReaDTO::getDimissionReason).collect(Collectors.toList());
+                if(CollectionUtil.isNotEmpty(collect)){
+                    changesDimissionDTO.setReaTypeList(collect);
+                }
+            }
+        }
+
+        return changesDimissionDTO;
+    }
+
+    public ResponseEntity saveDimission(ChangesDimissionDTO changesDimissionDTO) {
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            if(StringUtils.isNotBlank(changesDimissionDTO.getId())){
+                List<ChangesDimission> list = this.list(new QueryWrapper<ChangesDimission>().lambda()
+                        .eq(ChangesDimission::getRosterId, changesDimissionDTO.getRosterId())
+                        .ne(ChangesDimission::getId, changesDimissionDTO.getId()));
+                if(CollectionUtil.isNotEmpty(list)){
+                    return ResponseEntity.badRequest().body("此员工已提交离职,请勿重复提交");
+                }
+            }else{
+                List<ChangesDimission> list = this.list(new QueryWrapper<ChangesDimission>().lambda()
+                        .eq(ChangesDimission::getRosterId, changesDimissionDTO.getRosterId()));
+                if(CollectionUtil.isNotEmpty(list)){
+                    return ResponseEntity.badRequest().body("此员工已提交离职,请勿重复提交");
+                }
+            }
+            if(StringUtils.isBlank(changesDimissionDTO.getVettingStatus())){
+                changesDimissionDTO.setVettingStatus("1");
+            }
+            if(StringUtils.isBlank(changesDimissionDTO.getHandoverStatus())){
+                changesDimissionDTO.setHandoverStatus("1");
+            }
+        }
+        ChangesDimission changesDimission = ChangesDimissionWrapper.INSTANCE.toEntity(changesDimissionDTO);
+        if(ObjectUtil.isNotEmpty(changesDimission)){
+            if(StringUtils.isNotBlank(changesDimission.getId())){
+                this.update(changesDimission,new LambdaUpdateWrapper<ChangesDimission>()
+                        .eq(ChangesDimission::getId,changesDimission.getId())
+                        .set(ObjectUtils.isEmpty(changesDimission.getDimissionDate()),ChangesDimission::getDimissionDate,null)
+                        .set(ObjectUtils.isEmpty(changesDimission.getLastWorkDate()),ChangesDimission::getLastWorkDate,null)
+                        .set(ObjectUtils.isEmpty(changesDimission.getPayrollSettlementDate()),ChangesDimission::getPayrollSettlementDate,null)
+                );
+            }else{
+                this.save(changesDimission);
+            }
+        }
+
+
+        if(ObjectUtil.isNotEmpty(changesDimissionDTO)){
+            ChangesDimissionAudit audit = new ChangesDimissionAudit();
+            audit.setVettingStatus(changesDimissionDTO.getVettingStatus());
+            List<ChangesDimissionAudit> list = changesDimissionAuditService.list(new QueryWrapper<ChangesDimissionAudit>().lambda().eq(ChangesDimissionAudit::getId, changesDimission.getId()));
+            if(CollectionUtil.isNotEmpty(list)){
+                changesDimissionAuditService.update(audit,new QueryWrapper<ChangesDimissionAudit>().lambda().eq(ChangesDimissionAudit::getId,changesDimission.getId()));
+            }else{
+                audit.setId(changesDimission.getId());
+                changesDimissionAuditService.save(audit);
+            }
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getReaTypeList())){
+                changesDimissionReaService.remove(new QueryWrapper<ChangesDimissionRea>().lambda()
+                        .eq(ChangesDimissionRea::getCdId,changesDimission.getId())
+                );
+                List<ChangesDimissionRea> reaList = new ArrayList<>();
+                changesDimissionDTO.getReaTypeList().stream().forEach(item->{
+                    ChangesDimissionRea rea = new ChangesDimissionRea();
+                    rea.setCdId(changesDimission.getId());
+                    rea.setDimissionReason(item);
+                    reaList.add(rea);
+                });
+                changesDimissionReaService.saveBatch(reaList);
+            }
+
+            if(CollectionUtil.isNotEmpty(changesDimissionDTO.getChangesDimissionFilesDTOList())){
+                List<String> fileIdList = changesDimissionDTO.getChangesDimissionFilesDTOList().stream()
+                        .filter(item -> StringUtils.isNotBlank(item.getId()))
+                        .map(ChangesDimissionFilesDTO::getId).collect(Collectors.toList());
+                changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda()
+                        .eq(ChangesDimissionFiles::getCdId,changesDimission.getId())
+                        .notIn(CollectionUtil.isNotEmpty(fileIdList),ChangesDimissionFiles::getId,fileIdList)
+                );
+                List<ChangesDimissionFiles> fileList = new ArrayList<>();
+                changesDimissionDTO.getChangesDimissionFilesDTOList().stream().forEach(item->{
+                    ChangesDimissionFiles file = ChangesDimissionFilesWrapper.INSTANCE.toEntity(item);
+                    file.setCdId(changesDimission.getId());
+                    fileList.add(file);
+                });
+                changesDimissionFilesService.saveOrUpdateBatch(fileList);
+            }else{
+                changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda()
+                        .eq(ChangesDimissionFiles::getCdId,changesDimission.getId())
+                );
+            }
+        }
+        return ResponseEntity.ok("保存成功");
+    }
+
+    public ResponseEntity deleteByIds(String ids) {
+        String idArray[] =ids.split(",");
+        this.removeByIds (Lists.newArrayList (idArray));
+        changesDimissionFilesService.remove(new QueryWrapper<ChangesDimissionFiles>().lambda().in(ChangesDimissionFiles::getCdId,Lists.newArrayList (idArray)));
+        changesDimissionReaService.remove(new QueryWrapper<ChangesDimissionRea>().lambda().in(ChangesDimissionRea::getCdId,Lists.newArrayList (idArray)));
+        return ResponseEntity.ok ("放弃离职成功");
+    }
+
+    public ResponseEntity updateStatus(String id){
+        this.update(new UpdateWrapper<ChangesDimission>().lambda().set(ChangesDimission::getStatus,'1').eq(ChangesDimission::getId,id));
+        return ResponseEntity.ok ("取消确认成功");
+    }
+
+    /**
+     * 根据离职id来修改离职审批状态 vetting_status的值
+     * @param changesDimissionDTO
+     */
+    public void updateVettingStatusById(ChangesDimissionDTO changesDimissionDTO){
+        ChangesDimissionAudit changesDimissionAudit = new ChangesDimissionAudit();
+        changesDimissionAudit.setVettingStatus(changesDimissionDTO.getVettingStatus());
+        this.changesDimissionAuditService.update(changesDimissionAudit,new QueryWrapper<ChangesDimissionAudit>().lambda().eq(ChangesDimissionAudit::getId,changesDimissionDTO.getId()));
+        ChangesDimission changesDimission = new ChangesDimission();
+        changesDimission.setVettingStatus(changesDimissionDTO.getVettingStatus());
+        this.update(changesDimission,new QueryWrapper<ChangesDimission>().lambda().eq(ChangesDimission::getId,changesDimissionDTO.getId()));
+    }
+
+}

+ 31 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionAuditDTO.java

@@ -0,0 +1,31 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 
+ * @TableName changes_dimission_audit
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionAuditDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 审核状态
+     */
+    private String vettingStatus;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private static final long serialVersionUID = 1L;
+}

+ 133 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionDTO.java

@@ -0,0 +1,133 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import com.jeeplus.test.roster.domain.RosterBase;
+import com.jeeplus.test.roster.service.dto.RosterBaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 异动管理-离职
+ * @TableName changes_dimission
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 人员id
+     */
+    private String rosterId;
+
+    /**
+     * 最后工作日
+     */
+    private Date lastWorkDate;
+
+    /**
+     * 离职日期
+     */
+    private Date dimissionDate;
+
+    /**
+     * 原因说明
+     */
+    private String reasonDesc;
+
+    /**
+     * 离职类型
+     */
+    private String type;
+
+    /**
+     * 离职审批
+     */
+    private String vettingStatus;
+
+    /**
+     * 离职交接
+     */
+    private String handoverStatus;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 薪资结算日
+     */
+    private Date payrollSettlementDate;
+
+    /**
+     * 申请日期
+     */
+    private Date requestDate;
+
+    /**
+     * 审批交接人
+     */
+    private String handoverId;
+
+    /**
+     * 社保最后缴纳月
+     */
+    private String socialSecurityLast;
+
+    /**
+     * 公积金最后缴纳月
+     */
+    private String providentFundLast;
+
+    /**
+     * 离职原因详情
+     */
+    private List<ChangesDimissionReaDTO> changesDimissionReaDTOList;
+
+    /**
+     * 离职原因
+     */
+    private List<String> reaTypeList;
+
+    /**
+     * 人员信息
+     */
+    private RosterBaseDTO rosterBaseDTO;
+
+    /**
+     * 部门
+     */
+    private String soName;
+
+    /**
+     * 职位
+     */
+    private String jpName;
+
+    /**
+     * 附件
+     */
+    private List<ChangesDimissionFilesDTO> changesDimissionFilesDTOList;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    /**
+     * 离职审批数据
+     */
+    private ChangesDimissionAuditDTO changesDimissionAuditDTO;
+
+    private static final long serialVersionUID = 1L;
+}

+ 37 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionFilesDTO.java

@@ -0,0 +1,37 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-附件
+ * @TableName changes_dimission_files
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionFilesDTO extends BaseDTO {
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 附件url
+     */
+    private String url;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    private static final long serialVersionUID = 1L;
+}

+ 58 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionHandoverDTO.java

@@ -0,0 +1,58 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 
+ * @TableName changes_dimission_handover
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionHandoverDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 所属分类,0为分类
+     */
+    private String parentId;
+
+    /**
+     * 分类
+     */
+    private String type;
+
+    /**
+     * 交接内容
+     */
+    private String content;
+
+    /**
+     * 会签对象
+     */
+    private String rosterId;
+
+    private List<ChangesDimissionHandoverDTO> handoverDTOList;
+
+    /**
+     * 交接状态
+     */
+    private String handoverStatus;
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 47 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionHandoverInitializeDTO.java

@@ -0,0 +1,47 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 
+ * @TableName changes_dimission_handover_initialize
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionHandoverInitializeDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 所属分类,0为分类
+     */
+    private String parentId;
+
+    /**
+     * 分类
+     */
+    private String type;
+
+    /**
+     * 交接内容
+     */
+    private String content;
+
+    /**
+     * 会签对象
+     */
+    private String rosterId;
+
+    private List<ChangesDimissionHandoverInitializeDTO> handoverDTOList;
+
+    private static final long serialVersionUID = 1L;
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/dto/ChangesDimissionReaDTO.java

@@ -0,0 +1,34 @@
+package com.jeeplus.test.changes.dimission.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 异动管理-离职-离职原因
+ * @TableName changes_dimission_rea
+ */
+@Data
+@TableName("changes_dimission_rea")
+@EqualsAndHashCode(callSuper = false)
+public class ChangesDimissionReaDTO extends BaseDTO {
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 离职id
+     */
+    private String cdId;
+
+    /**
+     * 离职原因
+     */
+    private String dimissionReason;
+
+    private static final long serialVersionUID = 1L;
+}

+ 15 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionAuditWrapper.java

@@ -0,0 +1,15 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionAudit;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionAuditDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionAuditWrapper extends EntityWrapper<ChangesDimissionAuditDTO, ChangesDimissionAudit>{
+
+        ChangesDimissionAuditWrapper INSTANCE = Mappers.getMapper(ChangesDimissionAuditWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionFilesWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionFiles;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionFilesDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionFilesWrapper extends EntityWrapper<ChangesDimissionFilesDTO, ChangesDimissionFiles>{
+
+        ChangesDimissionFilesWrapper INSTANCE = Mappers.getMapper(ChangesDimissionFilesWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionHandoverInitializeWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandoverInitialize;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverInitializeDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionHandoverInitializeWrapper extends EntityWrapper<ChangesDimissionHandoverInitializeDTO, ChangesDimissionHandoverInitialize>{
+
+        ChangesDimissionHandoverInitializeWrapper INSTANCE = Mappers.getMapper(ChangesDimissionHandoverInitializeWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionHandoverWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionHandover;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionHandoverDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionHandoverWrapper extends EntityWrapper<ChangesDimissionHandoverDTO, ChangesDimissionHandover>{
+
+        ChangesDimissionHandoverWrapper INSTANCE = Mappers.getMapper(ChangesDimissionHandoverWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionReaWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimissionRea;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionReaDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionReaWrapper extends EntityWrapper<ChangesDimissionReaDTO, ChangesDimissionRea>{
+
+        ChangesDimissionReaWrapper INSTANCE = Mappers.getMapper(ChangesDimissionReaWrapper.class);
+
+}

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/changes/dimission/service/mapstruct/ChangesDimissionWrapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.changes.dimission.service.mapstruct;
+
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import com.jeeplus.test.changes.dimission.domain.ChangesDimission;
+import com.jeeplus.test.changes.dimission.service.dto.ChangesDimissionDTO;
+import com.jeeplus.test.jobPosion.domain.JobPosition;
+import com.jeeplus.test.jobPosion.service.dto.JobPositionDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface ChangesDimissionWrapper extends EntityWrapper<ChangesDimissionDTO, ChangesDimission>{
+
+        ChangesDimissionWrapper INSTANCE = Mappers.getMapper(ChangesDimissionWrapper.class);
+
+}

+ 82 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonApi.java

@@ -0,0 +1,82 @@
+package com.jeeplus.test.cw.common;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.jeeplus.sys.utils.StringUtils;
+import io.swagger.annotations.Api;
+import org.flowable.bpmn.model.BpmnModel;
+import org.flowable.bpmn.model.FlowNode;
+import org.flowable.engine.RepositoryService;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.TaskService;
+import org.flowable.task.api.Task;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+@RestController
+@RequestMapping(value = "/commonApi")
+public class CommonApi {
+
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private RuntimeService runtimeService;
+
+    /**
+     * 根据procInsId获取当前流程节点名称
+     * @param procInsId
+     * @return
+     */
+    @GetMapping("/getTaskNameByProcInsId")
+    public ResponseEntity<String> getTaskNameByProcInsId(@RequestParam("procInsId") String procInsId) {
+        String res = getTaskName(procInsId);
+        return ResponseEntity.ok(res);
+    }
+
+    /**
+     * 判断当前审核节点是否为最后一个节点
+     * @param procInsId
+     * @return
+     */
+    @GetMapping("/isLastTask")
+    @Deprecated
+    public ResponseEntity<Boolean> isLastTask(@RequestParam("procInsId") String procInsId) {
+        Task task = taskService.createTaskQuery().processInstanceId(procInsId).active().singleResult();
+        // task为null则审核节点为最后一个审核节点
+        if (ObjectUtil.isEmpty(task)) {
+            return ResponseEntity.ok(true);
+        }
+        return ResponseEntity.ok(false);
+    }
+
+    /**
+     * 根据procInsId获取当前流程节点名称
+     * @param procInsId
+     * @return
+     */
+    public String getTaskName(String procInsId) {
+        if (StringUtils.isNotBlank(procInsId)) {
+            Task task = taskService.createTaskQuery().processInstanceId(procInsId).active().singleResult();
+            if (task!=null) {
+                //获取流程发布Id信息
+                String definitionId = runtimeService.createProcessInstanceQuery().processInstanceId(procInsId).singleResult().getProcessDefinitionId();
+                //获取bpm对象
+                BpmnModel bpmnModel = SpringUtil.getBean (RepositoryService.class).getBpmnModel(definitionId);
+                //传节点定义key 获取当前节点
+                FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(task.getTaskDefinitionKey());
+                if (ObjectUtil.isNotEmpty(flowNode)) {
+                    if (StringUtils.isNotBlank(flowNode.getName())) {
+                        return flowNode.getName();
+                    }
+                }
+            }
+        }
+        return "";
+    }
+}

+ 200 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/CommonUtils.java

@@ -0,0 +1,200 @@
+package com.jeeplus.test.cw.common;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.jeeplus.sys.service.DictTypeService;
+import com.jeeplus.sys.service.OfficeService;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.RoleDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.UserUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class CommonUtils {
+
+    /**
+     * 判断当前用户是否拥有 “ 财务部门主任 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleCwBmzr() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有财务部门主任角色
+                if ("cw_bmzr".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 财务员工 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleCwYg() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有财务员工角色
+                if ("cwyg".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 专家组成员 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleZjzcy() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有专家组成员角色
+                if ("zjzcy".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 项目员工 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleXmYg() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有项目员工角色
+                if ("xmyg".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 会计所长 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleKjsz() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有会计所长角色
+                if ("kjsz".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+    /**
+     * 判断当前用户是否拥有 “ 质控部主任 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleZkbzr() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有质控部主任角色
+                if ("zkbzr".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 判断当前用户是否拥有 “ 质控部员工 ” 的角色
+     * @return
+     */
+    public static boolean haveRoleZkbyg() {
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        List<RoleDTO> roles = new ArrayList<>(); // 当前用户拥有的角色
+        if (CollectionUtil.isNotEmpty(userDTO.getRoleDTOList())) {
+            roles = userDTO.getRoleDTOList().stream().filter(item -> {
+                // 过滤当前用户是否拥有质控部员工角色
+                if ("zkbyg".equals(item.getEnName())) {
+                    return true;
+                }
+                return false;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtil.isNotEmpty(roles)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 计算时间差
+     * 注:参数小于或等于当前时间
+     */
+    public static String timeDef(Date time) {
+        Long def = new Date().getTime() - time.getTime();
+        // 计算天数
+        long day = def / (1000 * 60 * 60 * 24);
+        if (day != 0) {
+            return day + "天前";
+        }
+        // 计算小时
+        long house = def / (1000 * 60 * 60);
+        if (house != 0) {
+            return house + "小时前";
+        }
+        // 计算分钟
+        long min = def / (1000 * 60);
+        return min + "分钟前";
+    }
+
+    /**
+     * 获取所有公司中的第一个
+     * @return
+     */
+    public static String getFirstCompanyId() {
+        List<OfficeDTO> allCompany = SpringUtil.getBean(OfficeService.class).getAllCompany();
+        if (CollectionUtil.isNotEmpty(allCompany)) {
+            return allCompany.get(0).getId();
+        }
+        return "";
+    }
+}

+ 46 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseJsonRespDTO.java

@@ -0,0 +1,46 @@
+package com.jeeplus.test.cw.common.enterpriseSearch;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class EnterpriseJsonRespDTO {
+
+    private Integer error_code;
+
+    private Boolean success;
+
+    private String message;
+
+    private D data;
+
+    @Data
+    class D {
+        private BigDecimal searchtime;
+
+        private Integer total;
+
+        private String num;
+
+        private Integer viewtotal;
+
+        private List<Items> items;
+    }
+
+    @Data
+    class Items {
+        private String entname;
+
+        private String legalname;
+
+        private String esdate;
+
+        private Integer id;
+
+        private String companyid;
+    }
+
+
+}

+ 87 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseSearchApi.java

@@ -0,0 +1,87 @@
+package com.jeeplus.test.cw.common.enterpriseSearch;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.sys.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Api("企业信息查询API")
+@RestController
+@RequestMapping(value = "/enterprise_search_api")
+public class EnterpriseSearchApi {
+
+    /**
+     * 根据关键字查询相关企业
+     * @param keyword
+     * @return
+     */
+    @ApiOperation(value = "根据关键字查询相关企业")
+    @PostMapping("enterpriseSearchByName")
+    public String enterpriseSearchByName(@RequestParam String keyword){
+        if(StringUtils.isBlank(keyword)){
+            return null;
+        }
+        return  TicketQueryUtils.enterpriseSearchByName(keyword);
+    }
+
+    /**
+     * 根据id查询企业税号
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id查询企业税号")
+    @PostMapping("enterpriseTicketInfo")
+    public Object enterpriseTicketInfo(String id){
+        if(StringUtils.isBlank(id)){
+            return null;
+        }
+        return TicketQueryUtils.enterpriseTicketInfoQueryById(id);
+    }
+
+    /**
+     * 分页查询相关企业
+     * @param enterpriseSearchDTO
+     * @param page
+     * @return
+     * @throws Exception
+     */
+    @ApiLog("分页查询相关企业")
+    @GetMapping("list")
+    public ResponseEntity<IPage<EnterpriseSearchDTO>> data(EnterpriseSearchDTO enterpriseSearchDTO, Page<EnterpriseSearchDTO> page) throws Exception {
+        IPage<EnterpriseSearchDTO> result = new Page<EnterpriseSearchDTO>();
+        List<EnterpriseSearchDTO> list = new ArrayList<>();
+        if (ObjectUtil.isNotEmpty(enterpriseSearchDTO)){
+            if (StringUtils.isNotBlank(enterpriseSearchDTO.getENTNAME())){
+                String s = TicketQueryUtils.enterpriseSearchPage(enterpriseSearchDTO.getENTNAME(),String.valueOf(page.getSize()),String.valueOf(page.getCurrent()));
+                if (StringUtils.isNotBlank(s)){
+                    EnterpriseJsonRespDTO enterpriseJsonRespDTO = JSONObject.parseObject(s, EnterpriseJsonRespDTO.class); //json字符串直接转java对象
+                    if (ObjectUtil.isNotEmpty(enterpriseJsonRespDTO)){
+                        if(ObjectUtil.isNotEmpty(enterpriseJsonRespDTO.getData())){
+                            if(CollectionUtil.isNotEmpty(enterpriseJsonRespDTO.getData().getItems())){
+                                enterpriseJsonRespDTO.getData().getItems().stream().forEach(item->{
+                                    String s1 = TicketQueryUtils.enterpriseTicketInfoQueryById(item.getCompanyid());
+                                    EnterpriseSearchDTO dto = JSONObject.parseObject(s1, EnterpriseSearchDTO.class);
+                                    list.add(dto);
+                                });
+                                result.setRecords(list);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        return ResponseEntity.ok (result);
+    }
+
+}

+ 53 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/EnterpriseSearchDTO.java

@@ -0,0 +1,53 @@
+package com.jeeplus.test.cw.common.enterpriseSearch;
+
+import lombok.Data;
+
+/**
+ * 企业查询DTO
+ *     "ENTNAME": "用友网络科技股份有限公司", //企业全称
+ *     "OPLOC": "北京市海淀区北清路68号", //注册地址
+ *     "UNCID": "91110000600001760P",  //统一信用代码
+ *     "GONGSH": "110000005119254", //工商注册号
+ *     "ORGCODE": "600001760", //组织机构代码
+ *     "HASUNIFY": true, //是否三证合一
+ *     "TAXNUMBER": "91110000600001760P", //税号(同统一信用代码)
+ */
+@Data
+public class EnterpriseSearchDTO  {
+
+    /**
+     * 企业全称
+     */
+    private String ENTNAME;
+
+    /**
+     * 注册地址
+     */
+    private String OPLOC;
+
+    /**
+     * 统一信用代码
+     */
+    private String UNCID;
+
+    /**
+     * 工商注册号
+     */
+    private String GONGSH;
+
+    /**
+     * 组织机构代码
+     */
+    private String ORGCODE;
+
+    /**
+     * 是否三证合一
+     */
+    private Boolean HASUNIFY;
+
+    /**
+     * 税号(同统一信用代码)
+     */
+    private String TAXNUMBER;
+
+}

+ 279 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/enterpriseSearch/TicketQueryUtils.java

@@ -0,0 +1,279 @@
+package com.jeeplus.test.cw.common.enterpriseSearch;
+
+import com.alibaba.fastjson.JSONObject;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLSession;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+名称:企业开票税号查询
+ * 功能:
+ * 1、根据关键字查询相关企业,或者根据企业信息的id查询企业的详细信息;
+ * 2、可以查到企业的名称、联系方式等基本信息;
+ * 3、可以查到公司纳税人识别号、注册地址等开发票需要的详细信息。
+ *
+ * 状态:
+ * 	    错误码	说明
+ *  	300001	请求header中没有设置apikey
+ *  	300002	api不存在或url无法解析
+ *  	300003	apikey不存在,请输入正确的apikey
+ *  	300004	服务剩余次数不足,请再次购买
+ *  	300005	未设置ip白名单
+ *  	300006	IP白名单中不包含您的IP
+ *  	300007	系统繁忙稍候再试
+ *  	300008	访问次数超载
+ *  	300009	未找到节流信息
+ *  	300010	header参数中缺少需签名的参数值
+ *  	300011	缺少需验证的参数列表
+ *  	300012	签名信息不匹配
+ *  	300013	header中缺少参数appkey
+ *  	300014	header中缺少参数appsecret
+ *  	300015	api已过期,请另行购买
+ *  	300017	要求必填参数为不能为空
+ *  	300018	api没有授权
+ */
+public class TicketQueryUtils {
+
+    private static String ApiCode = "35afe9ec3263424f9a18feb837177169";
+    private static String searchByNameUrl = "https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseSearchByName";
+    private static String ticketInfoQueryUrl = "https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseTicketInfo";
+
+    private static final String DEF_CHATSET = "UTF-8";
+    private static final int DEF_CONN_TIMEOUT = 30000;
+    private static final int DEF_READ_TIMEOUT = 30000;
+    private static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
+
+
+    /**
+     * 根据关键字查询相关企业
+     * @param keyword
+     * @return
+     */
+    public static String enterpriseSearchByName(String keyword){
+        String result =null;
+        String method = "GET";
+        String paramFormat = "form";
+        Map<String, Object> params = new HashMap<String, Object>();//请求参数
+        params.put("keyword", keyword);
+
+        Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
+        headerParams.put("apicode", ApiCode);//APICODE
+        try {
+            result = net(searchByNameUrl, params, headerParams, method, paramFormat);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 根据关键字以及分页信息查询相关企业
+     * @param keyword
+     * @return
+     */
+    public static String enterpriseSearchPage(String keyword,String size,String pageNum){
+        String result =null;
+        String method = "GET";
+        String paramFormat = "form";
+        Map<String, Object> params = new HashMap<String, Object>();//请求参数
+        params.put("keyword", keyword);
+        params.put("size", size);
+        params.put("pageNum", pageNum);
+
+        Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
+        headerParams.put("apicode", ApiCode);//APICODE
+        try {
+            result = net(searchByNameUrl, params, headerParams, method, paramFormat);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 根据id查询企业税号
+     * @param id
+     * @return
+     */
+    public static String enterpriseTicketInfoQueryById(String id){
+        String result =null;
+        String method = "GET";
+        String paramFormat = "form";
+        Map<String, Object> params = new HashMap<String, Object>();//请求参数
+        params.put("id", id);
+
+        Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
+        headerParams.put("apicode", ApiCode);//APICODE
+
+        try {
+            result = net(ticketInfoQueryUrl, params, headerParams, method, paramFormat);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    private static final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    };
+
+    /**
+     *
+     * @param strUrl 请求地址
+     * @param params 请求参数
+     * @param method 请求方法
+     * @return  网络请求字符串
+     * @throws Exception
+     */
+    public static String net(String strUrl, Map<String,Object> params, Map<String,Object> headerParams, String method, String paramFormat) throws Exception {
+        HttpURLConnection conn = null;
+        BufferedReader reader = null;
+        String rs = null;
+        try {
+            String contentType = null;
+            if(headerParams.containsKey("Content-Type"))
+                contentType = headerParams.get("Content-Type").toString();
+
+            StringBuffer sb = new StringBuffer();
+            if(method==null || method.equals("GET")){
+                strUrl = strUrl+"?"+urlencode(params);
+            }
+
+            trustAllHttpsCertificates();
+            HttpsURLConnection.setDefaultHostnameVerifier(DO_NOT_VERIFY);
+
+            URL url = new URL(strUrl);
+            conn = (HttpURLConnection) url.openConnection();
+            if(method==null || method.equals("GET")){
+                conn.setRequestMethod("GET");
+            }else{
+                conn.setRequestMethod("POST");
+                conn.setDoOutput(true);
+            }
+            conn.setRequestProperty("User-agent", userAgent);
+            for (String i : headerParams.keySet()) {
+                conn.setRequestProperty(i, headerParams.get(i).toString());
+            }
+            if("form".equals(paramFormat) && !"application/x-www-form-urlencoded".equals(contentType) && !"application/xml".equals(contentType)) {
+                conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+            }
+            conn.setUseCaches(false);
+            conn.setConnectTimeout(DEF_CONN_TIMEOUT);
+            conn.setReadTimeout(DEF_READ_TIMEOUT);
+            conn.setInstanceFollowRedirects(false);
+            conn.connect();
+            if (params!= null && method.equals("POST")) {
+                try {
+                    OutputStream out = conn.getOutputStream();
+                    if("form".equals(paramFormat)) {
+                        if("application/x-www-form-urlencoded".equals(contentType))
+                            out.write(urlencode(params).getBytes("utf-8"));
+                        else if("application/xml".equals(contentType))
+                            out.write(xmlencode(params).getBytes("utf-8"));
+                        else
+                            out.write(jsonencode(params).getBytes("utf-8"));
+                    } else
+                        out.write(params.toString().getBytes("utf-8"));
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            InputStream is = conn.getInputStream();
+            reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
+            String strRead = null;
+            while ((strRead = reader.readLine()) != null) {
+                sb.append(strRead);
+            }
+            rs = sb.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (reader != null) {
+                reader.close();
+            }
+            if (conn != null) {
+                conn.disconnect();
+            }
+        }
+        return rs;
+    }
+
+    //将map型转为请求参数型
+    public static String urlencode(Map<String,Object>data) {
+        StringBuilder sb = new StringBuilder();
+        for (Map.Entry i : data.entrySet()) {
+            try {
+                if(("").equals(i.getKey())) {
+                    sb.append(URLEncoder.encode(i.getValue()+"","UTF-8"));
+                } else {
+                    sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
+                }
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        return sb.toString();
+    }
+
+    //将map型转为请求参数型
+    public static String jsonencode(Map<String,Object>data) {
+        JSONObject jparam = new JSONObject();
+        for (Map.Entry i : data.entrySet())
+            jparam.put((String) i.getKey(), i.getValue());
+
+        return jparam.toString();
+    }
+
+    //将map型转为请求参数型
+    public static String xmlencode(Map<String,Object>data) {
+        StringBuffer xmlData = new StringBuffer();
+        xmlData.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+        for (Map.Entry i : data.entrySet())
+            xmlData.append("<" + i.getKey() + ">" + i.getValue() + "</" + i.getKey() + ">");
+
+        return xmlData.toString();
+    }
+
+    static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
+        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+            return null;
+        }
+
+        public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+
+        public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+    }
+
+    private static void trustAllHttpsCertificates() throws Exception {
+        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
+        javax.net.ssl.TrustManager tm = new miTM();
+        trustAllCerts[0] = tm;
+        javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
+        sc.init(null, trustAllCerts, null);
+        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+    }
+}

+ 42 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/common/flowable/dto/CommitParamDTO.java

@@ -0,0 +1,42 @@
+package com.jeeplus.test.cw.common.flowable.dto;
+
+import com.jeeplus.flowable.model.TaskComment;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 流程审核通过时需要的参数
+ */
+@Data
+public class CommitParamDTO<T> implements Serializable {
+
+    private String taskId;
+    private String taskDefKey;
+    private String procInsId;
+    private String procDefId;
+    private String assignee;
+    private TaskComment comment;
+    private T vars;
+    private Cope cope; // 抄送的参数,按需使用
+
+    @Data
+    class Cope implements Serializable{
+        private List<String> userIds;
+        private String procDefId;
+        private String procInsId; // 后端自己给,前端没传
+        private String procDefName;
+        private String procInsName;
+        private String taskName;
+    }
+
+//    @Data
+//    class Comment {
+//        private String assignee;
+//        private String message;
+//        private String status;
+//        private String type;
+//        private List<String> userIds;
+//    }
+}

+ 63 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractFileController.java

@@ -0,0 +1,63 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.service.ContractFileService;
+import com.jeeplus.test.workContract.domain.WorkContractFile;
+import com.jeeplus.test.workContract.service.dto.WorkContractFileDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:13
+ **/
+@RestController
+@Api(tags ="财务合同登记归档管理")
+@RequestMapping(value = "/contract/contractFile")
+public class ContractFileController {
+
+    @Autowired
+    private ContractFileService service;
+
+    /**
+     * 合同登记新增/修改
+     */
+    @ApiOperation(value = "合同登记归档新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody ContractFile contractFile) throws Exception{
+        String id = service.saveInfo(contractFile);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_file").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody ContractFile contractFile) {
+        service.updateStatusById(contractFile);
+    }
+
+    /**
+     * 根据id查询
+     */
+    @ApiOperation(value = "根据id查询")
+    @GetMapping(value = "findById")
+    public ContractFile findById(@RequestParam String id) {
+        return service.findById(id);
+    }
+
+    /**
+     * 根据contractInfoId查询
+     */
+    @ApiOperation(value = "根据contractInfoId查询")
+    @GetMapping(value = "findByContractInfoId")
+    public ContractFile findByContractInfoId(@RequestParam String id) {
+        return service.findByContractInfoId(id);
+    }
+}

+ 51 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractFilePaperController.java

@@ -0,0 +1,51 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFilePaper;
+import com.jeeplus.test.cw.contractRegistration.service.ContractFilePaperService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-29 14:22
+ **/
+@RestController
+@Api(tags ="财务合同登记纸质归档管理")
+@RequestMapping(value = "/contract/contractPaperFile")
+public class ContractFilePaperController {
+
+    @Autowired
+    private ContractFilePaperService service;
+
+    /**
+     * 合同登记纸质归档新增/修改
+     */
+    @ApiOperation(value = "合同登记纸质归档新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody ContractFilePaper contractFilePaper) throws Exception{
+        String id = service.saveInfo(contractFilePaper);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_file_paper").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody ContractFilePaper filePaper) {
+        service.updateStatusById(filePaper);
+    }
+
+    /**
+     * 根据contractInfoId查询
+     */
+    @ApiOperation(value = "根据contractInfoId查询")
+    @GetMapping(value = "findByContractInfoId")
+    public ContractFilePaper findByContractInfoId(@RequestParam String id) {
+        return service.findByContractInfoId(id);
+    }
+}

+ 184 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractInfoController.java

@@ -0,0 +1,184 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.aop.logging.annotation.ApiLog;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.excel.ExcelOptions;
+import com.jeeplus.core.excel.ExportMode;
+import com.jeeplus.core.excel.utils.EasyPoiUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.sys.constant.enums.LogTypeEnum;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.service.ContractInfoService;
+import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.service.dto.QueryListDto;
+import com.jeeplus.test.materialManagement.contract.service.dto.ContractInfoDto;
+import com.jeeplus.test.zs.zsReimbursement.approvalInfo.service.dto.ZsRetureListDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:52
+ **/
+@RestController
+@Api(tags ="财务合同登记管理")
+@RequestMapping(value = "/contract/registration")
+public class ContractInfoController {
+
+    @Autowired
+    private ContractInfoService service;
+
+    @Resource
+    private FlowTaskService flowTaskService;
+
+    /**
+     * 列表查询
+     * @param info
+     * @return
+     */
+    @ApiOperation(value = "列表查询")
+    // @PreAuthorize("hasAnyAuthority('cw_work_contract_info:list')")
+    @GetMapping("/list")
+    public ResponseEntity<IPage<ContractInfo>> list(ContractInfo info, Page<ContractInfo> page) throws Exception {
+        QueryWrapper<ContractInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ContractInfo.class);
+        IPage<ContractInfo> list = service.list(page,info,wrapper);
+        list.getRecords().stream().forEach(i -> {
+            // 项目登记
+            if (StringUtils.isNotBlank(i.getTaskId()) && StringUtils.isNotBlank(i.getStatus())) {
+                if ("2".equals(i.getStatus())) { // “审核中”的数据要获取数据审核人
+                    i.setAuditUserIds(flowTaskService.getTaskAuditUsers(i.getTaskId()));  // 获取数据审核人
+                }
+            }
+            // 纸质归档
+            if (StringUtils.isNotBlank(i.getFilePaperTaskId()) && StringUtils.isNotBlank(i.getFiledPaperType())) {
+                if ("2".equals(i.getFiledPaperType())) { // “审核中”的数据要获取数据审核人
+                    i.setAuditUserIdsFP(flowTaskService.getTaskAuditUsers(i.getFilePaperTaskId()));  // 获取数据审核人
+                }
+            }
+        });
+        return ResponseEntity.ok(list);
+    }
+
+    /**
+     * 合同登记新增/修改    cw:workContract:add
+     */
+    @ApiOperation(value = "合同登记新增/修改")
+    @PreAuthorize("hasAnyAuthority('cw:workContract:add','cw:workContract:edit')")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody ContractInfo info) throws Exception{
+        String id = service.saveInfo(info);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_info").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 合同登记信息删除
+     */
+    @ApiOperation(value = "合同登记删除")
+    @GetMapping(value = "remove")
+    public ResponseEntity remove(@RequestParam String id) {
+        return service.removeById(id);
+    }
+
+    /**
+     * 合同登记查询
+     */
+    @ApiOperation(value = "合同登记查询")
+    @GetMapping(value = "findById")
+    public ContractInfo findById(@RequestParam String id) {
+        return service.findById(id);
+    }
+
+    /**
+     * 合同登记查询附件信息
+     */
+    @ApiOperation(value = "合同登记查询")
+    @GetMapping(value = "findFileInfoById")
+    public ContractInfo findFileInfoById(@RequestParam String id) {
+        return service.findFileInfoById(id);
+    }
+
+    /**
+     * 合同登记查询
+     */
+    @ApiOperation(value = "根据归档id查询")
+    @GetMapping(value = "findByContractId")
+    public ContractInfo findByContractId(@RequestParam String id) {
+        return service.findByContractId(id);
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody ContractInfo info) {
+        service.updateStatusById(info);
+    }
+
+    /**
+     * 根据id修改合同实际金额
+     */
+    @ApiOperation(value = "根据id修改合同实际金额")
+    @PostMapping(value = "updateInfo")
+    public void updateInfo(@RequestBody ContractInfo info) {
+        service.updateInfo(info);
+    }
+
+    /**
+     * 根据id修改纸质归档状态
+     */
+    @ApiOperation(value = "根据id修改纸质归档状态")
+    @PostMapping(value = "updatePaperInfo")
+    public void updatePaperInfo(@RequestBody ContractInfo info) {
+        service.updatePaperInfo(info);
+    }
+
+    @ApiOperation(value = "根据客户id查询关联的项目")
+    @GetMapping("/getByClientId")
+    public ResponseEntity<List<ContractInfo>> getByClientId(String contractId, ContractInfo contractInfo) {
+        List<ContractInfo> list = service.getByClientId(contractId,contractInfo);
+        return ResponseEntity.ok(list);
+    }
+
+
+    @ApiLog(value = "兴光会计合同数据导出", type = LogTypeEnum.EXPORT)
+    @GetMapping("exportFile")
+    @ApiOperation(value = "兴光会计合同数据导出")
+    public void exportFile(ContractInfo info, Page <ContractInfo> page, ExcelOptions options, HttpServletResponse response) throws Exception {
+        QueryWrapper<ContractInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ContractInfo.class);
+        String fileName = options.getFilename();
+        String sheetName = options.getSheetName();
+        List<ContractInfo> result = new ArrayList<>();
+        if ( ExportMode.current.equals ( options.getMode() ) ) {
+            result = service.list (page,info,wrapper).getRecords();
+        } else if (ExportMode.selected.equals ( options.getMode() )) {
+            result = service.list (page,info,wrapper).getRecords().stream ( ).filter ( item ->
+                    options.getSelectIds ( ).contains ( item.getId ( ) )
+            ).collect ( Collectors.toList ( ) );
+        } else {
+            page.setSize (-1);
+            page.setCurrent (0);
+            result = service.list (page,info,wrapper).getRecords();
+        }
+        try {
+            EasyPoiUtil.exportExcel ( result, sheetName,  sheetName, ContractInfo.class, fileName, response );
+        }catch (Exception e){
+            System.out.println(e);
+        }
+
+    }
+}

+ 96 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/CwContractBorrowController.java

@@ -0,0 +1,96 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.test.cw.contractRegistration.domain.CwWorkContractBorrow;
+import com.jeeplus.test.cw.contractRegistration.domain.CwWorkContractBorrowMessage;
+import com.jeeplus.test.cw.contractRegistration.service.CwWorkContractBorrowService;
+import com.jeeplus.test.cw.contractRegistration.service.dto.CwWorkContractBorrowDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-27 13:50
+ **/
+@Slf4j
+@Api(tags ="财务-合同登记借用")
+@RestController
+@RequestMapping(value = "/contract/workContractBorrow")
+public class CwContractBorrowController {
+
+    @Resource
+    private CwWorkContractBorrowService borrowService;
+
+    /**
+     * 合同登记新增/修改
+     */
+    @ApiOperation(value = "合同登记借用新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody CwWorkContractBorrowDto workContractBorrowDto) throws Exception{
+        String id = borrowService.saveInfo(workContractBorrowDto);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_borrow").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody CwWorkContractBorrowDto workContractBorrowDto) {
+        borrowService.updateStatusById(workContractBorrowDto);
+    }
+
+    /**
+     * 根据contractInfoId修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusByContractInfoId")
+    public void updateStatusByContractInfoId(@RequestBody CwWorkContractBorrowDto workContractBorrowDto) {
+        borrowService.updateStatusByContractInfoId(workContractBorrowDto);
+    }
+
+    /**
+     * 根据id查询
+     */
+    @ApiOperation(value = "根据id查询")
+    @GetMapping(value = "findById")
+    public CwWorkContractBorrow findById(@RequestParam String id) {
+        return borrowService.findById(id);
+    }
+
+    /**
+     * 根据contractInfoId查询
+     */
+    @ApiOperation(value = "根据contractInfoId查询")
+    @GetMapping(value = "findByContractInfoId")
+    public CwWorkContractBorrow findByContractInfoId(@RequestParam String id) {
+        return borrowService.findByContractInfoId(id);
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态借用表status")
+    @PostMapping(value = "updateMessageStatusById")
+    public void updateMessageStatusById(@RequestBody CwWorkContractBorrowDto workContractBorrowDto) {
+        borrowService.updateMessageByBorrowId(workContractBorrowDto, workContractBorrowDto.getType());
+    }
+
+    @ApiOperation(value = "根据id删除借用表信息")
+    @GetMapping(value = "deleteById")
+    public void deleteById(@RequestParam String id) {
+        borrowService.deleteById(id);
+    }
+
+    @ApiOperation(value = "根据id查询借用表信息")
+    @GetMapping(value = "findMessageList")
+    public List<CwWorkContractBorrowMessage> findMessageList(@RequestParam String id) {
+        return borrowService.findMessageList(id);
+    }
+}

+ 81 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractFile.java

@@ -0,0 +1,81 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:06
+ **/
+@Data
+@TableName(value = "cw_work_contract_file")
+public class ContractFile extends BaseEntity {
+
+    @TableField(exist = false)
+    private String fileId;
+
+    /**
+     * 合同登记主键值
+     */
+    private String contractInfoId;
+    /**
+     * 流程id
+     */
+    private String procInsId;
+    private String processDefinitionId;
+    /**
+     * 归档人
+     */
+    private String fileCreateName;
+    /**
+     * 归档状态
+     */
+    private String filedType;
+    /**
+     * 归档完成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String filedData;
+    /**
+     * 案卷号
+     */
+//    private String filedNo;
+    /**
+     * 确认案卷号
+     */
+//    private String confirmFiledNo;
+
+    @TableField(exist = false)
+    private String createId;       //创建人id
+
+    /**
+     * 客户名称
+     */
+    @TableField(exist = false)
+    private String customerName;
+
+    /**
+     * 客户编号
+     */
+    @TableField(exist = false)
+    private String customerNo;
+
+    /**
+     * 合同正文附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractProperList;
+
+    /**
+     * 归档附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractInfoList;
+}

+ 85 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractFilePaper.java

@@ -0,0 +1,85 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 纸质归档
+ * @author: 王强
+ * @create: 2022-11-10 16:06
+ **/
+@Data
+@TableName(value = "cw_work_contract_file_paper")
+public class ContractFilePaper extends BaseEntity {
+
+    @TableField(exist = false)
+    private String fileId;
+
+    /**
+     * 合同登记主键值
+     */
+    private String contractInfoId;
+    /**
+     * 流程id
+     */
+    private String procInsId;
+    private String processDefinitionId;
+    /**
+     * 归档人
+     */
+    private String fileCreateName;
+    /**
+     * 纸质归档状态
+     */
+    private String filedPaperType;
+    /**
+     * 归档完成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String filedData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+    /**
+     * 案卷号
+     */
+    private String filedNo;
+    /**
+     * 确认案卷号
+     */
+    private String confirmFiledNo;
+
+    @TableField(exist = false)
+    private String createId;       //创建人id
+
+    /**
+     * 客户名称
+     */
+    @TableField(exist = false)
+    private String customerName;
+
+    /**
+     * 客户编号
+     */
+    @TableField(exist = false)
+    private String customerNo;
+
+    /**
+     * 合同正文附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractProperList;
+
+    /**
+     * 归档附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractInfoList;
+}

+ 248 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractInfo.java

@@ -0,0 +1,248 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:42
+ **/
+@Data
+@TableName(value = "cw_work_contract_info")
+public class ContractInfo extends BaseEntity {
+
+    //合同编号(字典值)
+    public static final String BIZ_CODE = "10";
+
+    //合同 基字流水号
+    public static final String SERIAL_NUMBER1 = "17";
+    //合同 咨字流水号
+    public static final String SERIAL_NUMBER2 = "18";
+    //合同 框字流水号
+    public static final String SERIAL_NUMBER3 = "19";
+    //合同 审字流水号
+    public static final String SERIAL_NUMBER4 = "20";
+    //合同 验字流水号
+    public static final String SERIAL_NUMBER5 = "21";
+    //合同 特字流水号
+    public static final String SERIAL_NUMBER6 = "22";
+
+    @Query(tableColumn = "a.contract_name")
+    @Excel(name = "合同名称", width = 30)
+    private String contractName;            //合同名称
+    @Query(tableColumn = "a.contract_no")
+    @Excel(name = "合同编号", width = 30)
+    private String contractNo;              //合同编号
+
+    /**
+     * 委托方联系人名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "委托方", width = 30)
+    private String clientContactsName;
+
+    /**
+     * 案卷号
+     */
+    @TableField(exist = false)
+    @Excel(name = "案卷号", width = 16)
+    private String filedNo;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "签约日期", width = 16,exportFormat="yyyy-MM-dd")
+    private Date signingDate;             //签约日期
+    @Query(tableColumn = "a.contract_amount")
+    @Excel(name = "合同金额(元)", width = 16, type = 10)
+    private Double contractAmount;          //合同金额(元)
+
+    @TableField(exist = false)
+    @Excel(name = "所属部门", width = 16)
+    private String departmentName;
+
+    /**
+     * 创建人
+     */
+    @TableField(exist = false)
+    @Excel(name = "创建人", width = 12)
+    private String createName;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 16,exportFormat="yyyy-MM-dd")
+    private Date createDate;
+    @Excel(name = "状态", width = 10,dict = "cw_status")
+    private String status;                  //状态
+
+    /**
+     * 纸质归档状态
+     */
+    @Excel(name = "纸质归档状态", width = 16,dict = "filed_type")
+    private String filedPaperType;
+
+    /**
+     * 借用状态
+     */
+    @Excel(name = "借用状态", width = 12,dict = "borrow_type")
+    private String borrowType;
+
+    private String payerSubject;            //付款主体
+    private String paymentMethod;           //付款方式
+    private Double predictAmount;          //预计金额(元)
+    private Double actualContractAmount;    //合同实际金额
+    private String contractNum;             //合同份数
+    private String paymentAgreement;        //付款约定
+    @TableField(fill = FieldFill.UPDATE)
+    private String changeNum;               //修改次数
+//    @Query(tableColumn = "a.department")
+    private String department;              //所属部门
+    private String clientContacts;          //委托方联系人
+    private String clientContactsPhone;     //委托方联系人电话
+    private String contractApprovalType;    //合同归档审批类型
+    private String procInsId;               //流程id
+    private String processDefinitionId;     //
+
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;                //创建人名称
+
+    @TableField(exist = false)
+    @Query(tableColumn = "c.id",type = QueryType.EQ)
+    private String createId;                //创建人id
+
+    @TableField(exist = false)
+    private String contractStatus;          //合同状态
+
+    @TableField(exist = false)
+    private String taskFiledId;
+
+    @TableField(exist = false)
+    private String taskFiledProcInsId;
+
+    @TableField(exist = false)
+    private String taskFiledPaperProcInsId;
+
+    /**
+     * 归档状态
+     */
+    @Query(tableColumn = "a.filed_type")
+    private String filedType;
+
+    @TableField(exist = false)
+    private String[] contractAmounts;
+
+    @TableField(exist = false)
+    private String[] contractDates;
+
+    /**
+     * 附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractProperList;
+
+    /**
+     * 被服务单位信息
+     */
+    @TableField(exist = false)
+    private List<CwWorkClientBaseDTO> cwWorkClientContactDTOList;
+
+    /**
+     * 归档附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentDto> contractInfoList;
+
+    /**
+     * 合同金额类别
+     */
+    private String contractAmountType;
+
+    /**
+     * 对方合同编号
+     */
+    private String contractOpposite;
+
+    /**
+     * 收费标准
+     */
+    private String contractFee;
+
+    private String fees;
+    /**
+     * 确认案卷号
+     */
+    @TableField(exist = false)
+    private String confirmFiledNo;
+
+    @TableField(exist = false)
+    private String taskBorrowId;
+
+    /**
+     * 客户id
+     */
+    @TableField(exist = false)
+    private String customerId;
+
+    /**
+     * 客户编号
+     */
+    @TableField(exist = false)
+    private String customerNo;
+
+    /**
+     * 统一社会信用代码
+     */
+    @TableField(exist = false)
+    private String uscCode;
+
+    /**
+     * 客户地址
+     */
+    @TableField(exist = false)
+    private String address;
+
+    /**
+     * 付款描述
+     */
+    private String paymentDescribe;
+
+    /**
+     * 合同类型
+     */
+    private String contractType;
+
+    /**
+     * 合同流水号
+     */
+    private String contractSerialNumber;
+
+    @TableField(exist = false)
+    private String taskId;
+
+    /**
+     * 数据审核人
+     */
+    @TableField(exist = false)
+    private List<String> auditUserIds;
+
+    @TableField(exist = false)
+    private String filePaperTaskId;
+
+    /**
+     * 数据审核人  纸质归档
+     */
+    @TableField(exist = false)
+    private List<String> auditUserIdsFP;
+}

+ 22 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractParticipant.java

@@ -0,0 +1,22 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 参与签约方信息
+ * @author: 王强
+ * @create: 2022-11-15 13:32
+ **/
+@Data
+@TableName(value = "cw_work_contract_participant")
+public class ContractParticipant extends BaseEntity {
+
+    private String customerName;
+
+    private String customerNo;
+
+    private String contractInfoId;
+}

+ 40 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/CwWorkContractBorrow.java

@@ -0,0 +1,40 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-27 13:53
+ **/
+@Data
+@TableName("cw_work_contract_borrow")
+public class CwWorkContractBorrow extends BaseEntity {
+
+    private String contractInfoId;
+
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    private String contractName;
+
+    private String contractNo;
+
+    private String clientName;
+
+    private String borrowName;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date borrowData;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date borrowRetData;
+
+    private String remarks;
+
+    private String borrowType;
+
+}

+ 42 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/CwWorkContractBorrowMessage.java

@@ -0,0 +1,42 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-27 13:54
+ **/
+@Data
+@TableName("cw_work_contract_borrow_message")
+public class CwWorkContractBorrowMessage extends BaseEntity {
+
+    private String contractBorrowId;
+
+    private String contractName;
+
+    private String borrowName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date borrowData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date borrowRetData;
+
+    private String borrowType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date retData;
+
+    private String contractId;  //合同id
+
+    private String contractCreateById;  //合同创建人id
+
+    private String processDefinitionId;  //流程defId
+    private String procInsId;  //流程procInsId
+
+}

+ 44 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractFileMapper.java

@@ -0,0 +1,44 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:10
+ **/
+public interface ContractFileMapper extends BaseMapper<ContractFile> {
+
+    List<WorkAttachmentDto> findDtos(@Param("id") String id);
+
+    ContractFile findById (@Param("id") String id);
+
+    ContractFile findByInfoId (@Param("id") String id);
+
+    void updateStatusById(@Param("id") String id, @Param("filedType")String filedType);
+
+    ContractFile selectFileByContractInfoId (@Param("id") String id);
+
+    List<WorkAttachment> findList(@Param("id") String id);
+
+    Integer findIsExit(@Param("id") String id, @Param("name")String name);
+
+    /**
+     * 根据attachmentId删除上传文件信息
+     */
+    void deleteFileInfo(String attachmentId);
+
+    /**
+     * 根据合同登记主键值找到对应归档信息
+     * @param id
+     */
+    ContractFile getInfoByConId(String id);
+
+    ContractFile getById(String id);
+}

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractFilePaperMapper.java

@@ -0,0 +1,34 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFilePaper;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-29 14:20
+ **/
+public interface ContractFilePaperMapper extends BaseMapper<ContractFilePaper> {
+    /**
+     * 根据合同id查询纸质归档信息
+     * @param id
+     * @return
+     */
+    ContractFilePaper selectFilePaperByContractInfoId(String id);
+
+    ContractFilePaper getById(String id);
+
+    void updateStatusById(@Param("id") String id, @Param("filedType")String filedType);
+
+    List<WorkAttachment> findList(@Param("id") String id);
+
+    Integer findIsExit(@Param("id") String id, @Param("contractInfoId") String contractInfoId, @Param("name")String name);
+
+    /**
+     * 根据attachmentId删除上传文件信息
+     */
+    void deleteFileInfo(String attachmentId);
+}

+ 84 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractInfoMapper.java

@@ -0,0 +1,84 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractParticipant;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:47
+ **/
+public interface ContractInfoMapper extends BaseMapper<ContractInfo> {
+
+    ContractInfo getInfoById(String id);
+
+    ContractFile getById(String id);
+
+    List<WorkAttachmentDto> findDtos(@Param("id") String id);
+
+    IPage<ContractInfo> findPageList(Page<ContractInfo> page, @Param("officeIds") String officeIds, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+    ContractInfo findById (@Param("id") String id);
+
+    ContractInfo findFileInfoById (@Param("id") String id);
+
+    ContractInfo findByContractId (@Param("id") String id);
+
+    void updateStatusById(@Param("id") String id, @Param("status")String status);
+
+    void updatefiledTypeById(@Param("id") String id, @Param("status")String status);
+
+    void updatefiledPaperTypeById(@Param("id") String id, @Param("status")String status);
+
+    List<WorkAttachment> findList(@Param("id") String id);
+
+    Integer findIsExit(@Param("id") String id, @Param("name")String name);
+
+    /**
+     * 修改合同实际金额
+     * @param id
+     * @param actualContractAmount
+     * @param contractApprovalType
+     */
+    void updateInfo(@Param("id") String id,
+                    @Param("actualContractAmount") Double actualContractAmount,
+                    @Param("contractApprovalType") String contractApprovalType,
+                    @Param("filedType") String filedType);
+
+    List<String> findChildIds(String department);
+
+    List<ContractInfo> getByClientId(@Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+    // 没有使用客户id作为参数,而是直接查询,是因为 合同与客户的关联表 中没有 客户id 的字段,只有客户编号的字段
+    List<String> getClientListByClientNo(@Param("no") String no);
+
+    void updateBorrowTypeById(@Param("id") String id, @Param("status")String status);
+
+    /**
+     * 修改纸质归档状态
+     * @param id
+     * @param filedPaperType
+     */
+    void updatePaperInfo(@Param("id") String id,
+                         @Param("actualContractAmount") Double actualContractAmount,
+                         @Param("contractApprovalType") String contractApprovalType,
+                         @Param("filedPaperType") String filedPaperType);
+
+    String isUseByProject(@Param("id") String id);
+
+    String isUseByReim(@Param("id") String id);
+
+    String isUseByInvoice(@Param("id") String id);
+}

+ 22 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractParticipantMapper.java

@@ -0,0 +1,22 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractParticipant;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-15 13:44
+ **/
+public interface ContractParticipantMapper extends BaseMapper<ContractParticipant> {
+
+    /**
+     * 估计infoid删除相关的参与签约方信息
+     * @param InfoId
+     */
+    void deleteFromParticipant(String InfoId);
+
+
+    List<ContractParticipant> findByInfoId(String infoID);
+}

+ 36 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/CwWorkContractBorrowMapper.java

@@ -0,0 +1,36 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.CwWorkContractBorrow;
+import com.jeeplus.test.cw.contractRegistration.domain.CwWorkContractBorrowMessage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-27 13:52
+ **/
+public interface CwWorkContractBorrowMapper extends BaseMapper<CwWorkContractBorrow> {
+
+    void updateStatusById(@Param("id") String id, @Param("borrowType")String borrowType);
+
+    void updateStatusByContractInfoId(@Param("id") String id, @Param("borrowType")String borrowType);
+
+    CwWorkContractBorrow selectFileByContractInfoId (@Param("id") String id);
+
+    void updateMessageByBorrowId(@Param("id") String id, @Param("borrowType")String borrowType, @Param("type")String type);
+
+    void deleteMessageById(@Param("id") String id);
+
+    List<CwWorkContractBorrowMessage> findMessageList(@Param("id") String id);
+
+    CwWorkContractBorrow selectByInfoId(String id);
+
+    /**
+     * 查询临期合同借用信息
+     * @param adventDay
+     * @return
+     */
+    List<CwWorkContractBorrowMessage> getAdventMessageList(@Param("adventDay") String adventDay);
+}

+ 11 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/CwWorkContractBorrowMessageMapper.java

@@ -0,0 +1,11 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.CwWorkContractBorrowMessage;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-27 13:59
+ **/
+public interface CwWorkContractBorrowMessageMapper extends BaseMapper<CwWorkContractBorrowMessage> {
+}

+ 0 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractFileMapper.xml


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini