Browse Source

Merge branch 'master' of http://47.100.37.243:10191/quyueting/manHourHousekeeper

QuYueTing 2 weeks ago
parent
commit
bd35ab69f1
46 changed files with 107472 additions and 22976 deletions
  1. 3 3
      .idea/libraries/Maven__cglib_cglib_3_1.xml
  2. 3 3
      .idea/libraries/Maven__com_aliyun_tea_1_2_7.xml
  3. 3 3
      .idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml
  4. 3 3
      .idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml
  5. 3 3
      .idea/libraries/Maven__commons_io_commons_io_1_3_1.xml
  6. 3 3
      .idea/libraries/Maven__org_ehcache_ehcache_3_6_3.xml
  7. 3 3
      .idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml
  8. 3 3
      .idea/libraries/Maven__org_ow2_asm_asm_4_2.xml
  9. 3 3
      .idea/libraries/Maven__org_springframework_data_spring_data_ldap_2_1_14_RELEASE.xml
  10. 3 3
      .idea/libraries/Maven__org_springframework_ldap_spring_ldap_core_2_3_2_RELEASE.xml
  11. 47 313
      .idea/workspace.xml
  12. 1 1
      fhKeeper/formulahousekeeper/management-platform-mld/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java
  13. 41 2
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/controller/FeishuInfoController.java
  14. 110 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/controller/PaymentApplicationController.java
  15. 161 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/entity/PaymentApplication.java
  16. 16 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/mapper/PaymentApplicationMapper.java
  17. 3 1
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/FeishuInfoService.java
  18. 0 52
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/FeishuInfoService.java~
  19. 18 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/PaymentApplicationService.java
  20. 1 1
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java
  21. 266 7
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java
  22. 97 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/PaymentApplicationServiceImpl.java
  23. 11 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  24. 1 1
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/application.yml
  25. 31 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/mapper/PaymentApplicationMapper.xml
  26. 30 0
      fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/sql/2026-04-21.sql
  27. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java
  28. BIN
      fhKeeper/formulahousekeeper/management-platform/workTime.2026-04-07.log.gz
  29. 79165 0
      fhKeeper/formulahousekeeper/management-platform/workTime.log
  30. 1 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureController.java
  31. 83 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/demo/MonthUtils.java
  32. BIN
      fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-08-22.log.gz
  33. 11670 0
      fhKeeper/formulahousekeeper/management-workshop/workshop_print.log
  34. 2 1
      fhKeeper/formulahousekeeper/timesheet-yzr/.vscode/settings.json
  35. 5 5
      fhKeeper/formulahousekeeper/timesheet-yzr/package-lock.json
  36. 1 0
      fhKeeper/formulahousekeeper/timesheet-yzr/src/i18n/en.json
  37. 1 0
      fhKeeper/formulahousekeeper/timesheet-yzr/src/i18n/zh.json
  38. 17 0
      fhKeeper/formulahousekeeper/timesheet-yzr/src/routes.js
  39. 8250 4101
      fhKeeper/formulahousekeeper/timesheet-yzr/src/views/corpreport/list.vue
  40. 2118 1089
      fhKeeper/formulahousekeeper/timesheet-yzr/src/views/expense/expense.vue
  41. 2603 0
      fhKeeper/formulahousekeeper/timesheet-yzr/src/views/paymentApplication/paymentApplication.vue
  42. 2112 1293
      fhKeeper/formulahousekeeper/timesheet-yzr/src/views/workReport/dailyReportReview.vue
  43. BIN
      fhKeeper/formulahousekeeper/timesheet/node_modules.zip
  44. 5 5
      fhKeeper/formulahousekeeper/timesheet/package-lock.json
  45. 555 16071
      fhKeeper/formulahousekeeper/timesheet_h5/package-lock.json
  46. 18 0
      fhKeeper/formulahousekeeper/timesheet_mld/package-lock.json

+ 3 - 3
.idea/libraries/Maven__cglib_cglib_3_1.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: cglib:cglib:3.1">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/cglib/cglib/3.1/cglib-3.1-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__com_aliyun_tea_1_2_7.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: com.aliyun:tea:1.2.7">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/com/aliyun/tea/1.2.7/tea-1.2.7-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: commons-beanutils:commons-beanutils:1.9.2">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-beanutils/commons-beanutils/1.9.2/commons-beanutils-1.9.2-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: commons-collections:commons-collections:3.2.1">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__commons_io_commons_io_1_3_1.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: commons-io:commons-io:1.3.1">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__org_ehcache_ehcache_3_6_3.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: org.ehcache:ehcache:3.6.3">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ehcache/ehcache/3.6.3/ehcache-3.6.3-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.4">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-runtime.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-runtime.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/jacoco/org.jacoco.agent/0.8.4/org.jacoco.agent-0.8.4-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: org.ow2.asm:asm:4.2">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/ow2/asm/asm/4.2/asm-4.2-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__org_springframework_data_spring_data_ldap_2_1_14_RELEASE.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: org.springframework.data:spring-data-ldap:2.1.14.RELEASE">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/data/spring-data-ldap/2.1.14.RELEASE/spring-data-ldap-2.1.14.RELEASE-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 3 - 3
.idea/libraries/Maven__org_springframework_ldap_spring_ldap_core_2_3_2_RELEASE.xml

@@ -1,13 +1,13 @@
 <component name="libraryTable">
   <library name="Maven: org.springframework.ldap:spring-ldap-core:2.3.2.RELEASE">
     <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE.jar!/" />
     </CLASSES>
     <JAVADOC>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE-javadoc.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE-javadoc.jar!/" />
     </JAVADOC>
     <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE-sources.jar!/" />
+      <root url="jar://$PROJECT_DIR$/../../Code/Maven/apache-maven-3.6.1/mvn_repository/org/springframework/ldap/spring-ldap-core/2.3.2.RELEASE/spring-ldap-core-2.3.2.RELEASE-sources.jar!/" />
     </SOURCES>
   </library>
 </component>

+ 47 - 313
.idea/workspace.xml

@@ -3,204 +3,36 @@
   <component name="AutoImportSettings">
     <option name="autoReloadType" value="SELECTIVE" />
   </component>
+  <component name="BranchesTreeState">
+    <expand>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+      <path>
+        <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" />
+        <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" />
+      </path>
+    </expand>
+    <select />
+  </component>
   <component name="ChangeListManager">
     <list default="true" id="2e06e18d-7f5e-4cbb-94ca-32a48e9e7e1f" name="Default Changelist" comment="gitignore">
-      <change afterPath="$PROJECT_DIR$/fhKeeper/formulahousekeeper/management-platform/src/main/resources/application-prod.yml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/jarRepositories.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_easyexcel_2_2_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_7.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_credentials_java_0_2_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_dingtalk_1_1_50.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_dysmsapi20170525_2_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_endpoint_util_0_0_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_openapiutil_0_1_8.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_tea_openapi_0_0_18.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_tea_util_0_2_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_artofsolving_jodconverter_2_2_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baidu_aip_java_sdk_4_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_baomidou_mybatis_plus_generator_3_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_classmate_1_4_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_10_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_binarywang_weixin_java_common_3_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_binarywang_weixin_java_mp_3_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_jai_imageio_jai_imageio_core_1_4_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_pagehelper_pagehelper_5_1_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_autoconfigure_1_2_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_pagehelper_pagehelper_spring_boot_starter_1_2_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_github_virtuald_curvesapi_1_04.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_code_gson_gson_2_8_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_guava_guava_20_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_google_protobuf_protobuf_java_3_6_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_ibm_icu_icu4j_4_8_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_jcraft_jsch_0_1_55.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_lowagie_itext_2_1_7.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_12_13.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_squareup_okio_okio_1_15_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_xml_bind_jaxb_core_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_sun_xml_bind_jaxb_impl_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_zaxxer_HikariCP_3_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_codec_commons_codec_1_11.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_io_commons_io_2_5.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_logging_commons_logging_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__eu_bitwalker_UserAgentUtils_1_21.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_appengine_awt_appengine_awt_1_0_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_poi_xwpf_converter_core_gae_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_poi_xwpf_converter_pdf_gae_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_converter_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_core_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_document_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_document_docx_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_itext_extension_gae_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_template_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_fr_opensagres_xdocreport_template_freemarker_2_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_itext_gae_itext_gae_4_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__fr_opensagres_xdocreport_sfntly_sfntly_1_0_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_lettuce_lettuce_core_5_1_8_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_micrometer_micrometer_core_1_1_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_buffer_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_codec_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_common_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_handler_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_resolver_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_transport_4_1_43_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__io_projectreactor_reactor_core_3_2_13_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_activation_javax_activation_api_1_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__jaxen_jaxen_1_1_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__log4j_log4j_1_2_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_18.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_9_16.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_9_16.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_java_dev_jna_jna_4_5_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_jodah_expiringmap_0_5_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_sourceforge_lept4j_lept4j_1_12_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__net_sourceforge_tess4j_tess4j_4_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_collections4_4_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_jexl3_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_8_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_12.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_httpcomponents_httpmime_4_5_10.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_pdfbox_fontbox_2_0_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_pdfbox_jbig2_imageio_3_0_2.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_pdfbox_pdfbox_2_0_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_pdfbox_pdfbox_debugger_2_0_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_pdfbox_pdfbox_tools_2_0_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_ooxml_schemas_1_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_3_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_3_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_poi_poi_ooxml_schemas_3_17.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_velocity_velocity_engine_core_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_xmlbeans_xmlbeans_2_6_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_apache_xmlgraphics_xmlgraphics_commons_1_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_9_5.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_assertj_assertj_core_3_11_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_65.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_65.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_dom4j_dom4j_2_0_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_freemarker_freemarker_2_3_23.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ghost4j_ghost4j_1_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_18_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_jboss_vfs_3_2_14_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_3_Final.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_json_json_20160810.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jxls_jxls_2_6_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jxls_jxls_poi_1_2_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_latencyutils_LatencyUtils_2_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mockito_mockito_core_2_23_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_3_5_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_autoconfigure_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_mybatis_spring_boot_mybatis_spring_boot_starter_2_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_openoffice_juh_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_openoffice_jurt_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_openoffice_ridl_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_openoffice_unoil_2_3_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_projectlombok_lombok_1_18_8.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_29.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_autoconfigure_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_0_1_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_ldap_2_3_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_11_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_commons_2_1_14_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_2_1_14_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_redis_2_1_14_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_aop_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_beans_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_context_support_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_core_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_expression_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jcl_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_jdbc_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_oxm_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_test_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_tx_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_web_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_spring_webmvc_5_1_12_RELEASE.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_6_3.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_yaml_snakeyaml_1_23.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__stax_stax_api_1_0_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__cglib_cglib_3_1.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__cglib_cglib_3_1.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_tea_1_2_7.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_aliyun_tea_1_2_7.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_2.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__commons_io_commons_io_1_3_1.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__commons_io_commons_io_1_3_1.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ehcache_ehcache_3_6_3.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_ehcache_ehcache_3_6_3.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_4.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_ow2_asm_asm_4_2.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_ldap_2_1_14_RELEASE.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_data_spring_data_ldap_2_1_14_RELEASE.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_ldap_spring_ldap_core_2_3_2_RELEASE.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_springframework_ldap_spring_ldap_core_2_3_2_RELEASE.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
@@ -218,86 +50,29 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
-  <component name="IdeDocumentHistory">
-    <option name="CHANGED_PATHS">
-      <list>
-        <option value="$PROJECT_DIR$/fhKeeper/formulahousekeeper/.gitignore" />
-        <option value="$PROJECT_DIR$/fhKeeper/.gitignore" />
-      </list>
-    </option>
-  </component>
   <component name="MarkdownSettingsMigration">
     <option name="stateVersion" value="1" />
   </component>
   <component name="MavenImportPreferences">
     <option name="generalSettings">
       <MavenGeneralSettings>
-        <option name="customMavenHome" value="$PROJECT_DIR$/../../../../Code/Maven/apache-maven-3.6.1" />
-        <option name="mavenHomeTypeForPersistence" value="CUSTOM" />
         <option name="userSettingsFile" value="D:\Code\Maven\apache-maven-3.6.1\conf\settings.xml" />
       </MavenGeneralSettings>
     </option>
   </component>
-  <component name="ProjectColorInfo"><![CDATA[{
-  "associatedIndex": 3
-}]]></component>
-  <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="200" />
-    <option name="y" value="150" />
-    <option name="width" value="1190" />
-    <option name="height" value="920" />
-  </component>
   <component name="ProjectId" id="2T3aGTVV4p290kiNh3VASlwQynm" />
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
-  <component name="ProjectView">
-    <navigator proportions="" version="1">
-      <foldersAlwaysOnTop value="true" />
-    </navigator>
-    <panes>
-      <pane id="PackagesPane" />
-      <pane id="ProjectPane">
-        <subPane>
-          <expand>
-            <path>
-              <item name="manHourHousekeeper" type="b2602c69:ProjectViewProjectNode" />
-              <item name="manHourHousekeeper" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="manHourHousekeeper" type="b2602c69:ProjectViewProjectNode" />
-              <item name="manHourHousekeeper" type="462c0819:PsiDirectoryNode" />
-              <item name="fhKeeper" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="manHourHousekeeper" type="b2602c69:ProjectViewProjectNode" />
-              <item name="manHourHousekeeper" type="462c0819:PsiDirectoryNode" />
-              <item name="fhKeeper" type="462c0819:PsiDirectoryNode" />
-              <item name="formulahousekeeper" type="462c0819:PsiDirectoryNode" />
-            </path>
-          </expand>
-          <select />
-        </subPane>
-      </pane>
-      <pane id="Scope" />
-    </panes>
-  </component>
   <component name="ProjectViewState">
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "kotlin-language-version-configured": "true",
-    "last_opened_file_path": "D:/soft/Idea/workspace/manHourHousekeeper/fhKeeper/formulahousekeeper/management-platform",
-    "node.js.detected.package.eslint": "true",
-    "node.js.detected.package.tslint": "true",
-    "node.js.selected.package.eslint": "(autodetect)",
-    "node.js.selected.package.tslint": "(autodetect)",
-    "nodejs_package_manager_path": "npm",
-    "run.configurations.included.in.services": "true",
-    "vue.rearranger.settings.migration": "true"
-  }
-}]]></component>
+  <component name="PropertiesComponent">
+    <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
+    <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
+    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="aspect.path.notification.shown" value="true" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/fhKeeper/formulahousekeeper/management-platform" />
+  </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="D:\soft\Idea\workspace\manHourHousekeeper\fhKeeper\formulahousekeeper\management-platform\src\main\resources" />
@@ -363,8 +138,8 @@
     </configuration>
     <configuration name="ops-platform" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
       <module name="ops-platform" />
-      <option name="SHORTEN_COMMAND_LINE" value="NONE" />
       <option name="SPRING_BOOT_MAIN_CLASS" value="com.management.platform.PlatformStartApplication" />
+      <option name="SHORTEN_COMMAND_LINE" value="NONE" />
       <method v="2">
         <option name="Make" enabled="true" />
       </method>
@@ -401,6 +176,7 @@
       <workItem from="1699496183240" duration="10608000" />
       <workItem from="1699511991644" duration="591000" />
       <workItem from="1731463084181" duration="1707000" />
+      <workItem from="1775528335932" duration="77000" />
     </task>
     <task id="LOCAL-00001" summary="gitignore">
       <created>1577949176115</created>
@@ -412,43 +188,6 @@
     <option name="localTasksCounter" value="2" />
     <servers />
   </component>
-  <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="513000" />
-  </component>
-  <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
-    <editor active="true" />
-    <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15405117" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info id="Image Layers" order="2" />
-      <window_info id="Designer" order="3" />
-      <window_info id="UI Designer" order="4" />
-      <window_info id="Capture Tool" order="5" />
-      <window_info id="Favorites" order="6" side_tool="true" />
-      <window_info anchor="bottom" id="Message" order="0" />
-      <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
-      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
-      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
-      <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
-      <window_info active="true" anchor="bottom" id="Version Control" order="8" visible="true" weight="0.329718" />
-      <window_info anchor="bottom" id="Database Changes" order="9" />
-      <window_info anchor="bottom" id="Terminal" order="10" />
-      <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
-      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Palette" order="3" />
-      <window_info anchor="right" id="Theme Preview" order="4" />
-      <window_info anchor="right" id="Maven" order="5" />
-      <window_info anchor="right" id="Capture Analysis" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-      <window_info anchor="right" id="Database" order="8" />
-    </layout>
-  </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="3" />
   </component>
@@ -462,26 +201,21 @@
         </entry>
       </map>
     </option>
+    <option name="oldMeFiltersMigrated" value="true" />
   </component>
   <component name="VcsManagerConfiguration">
     <MESSAGE value="gitignore" />
     <option name="LAST_COMMIT_MESSAGE" value="gitignore" />
   </component>
-  <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/fhKeeper/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="437">
-          <caret line="23" selection-start-line="23" selection-end-line="23" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/fhKeeper/formulahousekeeper/.gitignore">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="437">
-          <caret line="23" selection-start-line="23" selection-end-line="23" />
-        </state>
-      </provider>
-    </entry>
+  <component name="WindowStateProjectService">
+    <state x="740" y="271" key="FileChooserDialogImpl" timestamp="1775528414826">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="740" y="271" key="FileChooserDialogImpl/0.0.1920.1032/-1920.8.1920.1032@0.0.1920.1032" timestamp="1775528414826" />
+    <state x="753" y="429" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1775528342911">
+      <screen x="0" y="0" width="1920" height="1032" />
+    </state>
+    <state x="753" y="429" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032/-1920.8.1920.1032@0.0.1920.1032" timestamp="1775528342911" />
   </component>
   <component name="masterDetails">
     <states>

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform-mld/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -30,7 +30,7 @@ import com.taobao.api.ApiException;
 import com.taobao.api.FileItem;
 import com.taobao.api.internal.util.StringUtils;
 import com.taobao.api.internal.util.WebUtils;
-import javafx.scene.control.TextArea;
+//import javafx.scene.control.TextArea;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;

+ 41 - 2
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -143,7 +143,7 @@ public class FeishuInfoController {
     }
 
     @RequestMapping("/refreshExpenseSheet")
-    public HttpRespMsg refreshExpenseSheet(Integer companyId, String userId, String startDate, String endDate, String ymonth, HttpServletRequest request){
+    public HttpRespMsg refreshFeishuFormData(Integer companyId, String userId, String startDate, String endDate, String ymonth,String refreshType, HttpServletRequest request){
         HttpRespMsg msg = new HttpRespMsg();
         try {
             if (ymonth != null) {
@@ -171,7 +171,46 @@ public class FeishuInfoController {
             if (userId != null) {
                 targetUser = userMapper.selectById(userId);
             }
-            msg = feishuInfoService.getExpenseFeeResult(feishuInfo, targetUser, startDate, endDate);
+            msg = feishuInfoService.refreshExpenseSheet(feishuInfo, targetUser, startDate, endDate,refreshType);
+        } catch (Exception e) {
+            e.printStackTrace();
+            msg.setError(e.getMessage());
+            return msg;
+        }
+        return msg;
+    }
+
+
+    @RequestMapping("/refreshPaymentApplication")
+    public HttpRespMsg refreshPaymentApplication(Integer companyId, String userId, String startDate, String endDate, String ymonth,String refreshType, HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        try {
+            if (ymonth != null) {
+                startDate = ymonth.replace("-", "") + "01";
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
+                //判断当前日期
+                LocalDate now = LocalDate.now();
+                DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
+                LocalDate formatDate = LocalDate.parse(startDate, dtf);
+                if (formatDate.isAfter(now)) {
+                    msg.setError("不可超过当前月");
+                } else if (now.getYear() == formatDate.getYear() && now.getMonth() == formatDate.getMonth()) {
+                    endDate = dtf.format(now);
+                } else {
+                    //计算当月的最后一天
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.set(Calendar.YEAR, Integer.parseInt(ymonth.substring(0, 4)));
+                    calendar.set(Calendar.MONTH, Integer.parseInt(ymonth.substring(5, 7)) - 1);
+                    calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
+                    endDate = simpleDateFormat.format(calendar.getTime());
+                }
+            }
+            FeishuInfo feishuInfo = feishuInfoService.getOne(new QueryWrapper<FeishuInfo>().eq("company_id",companyId));
+            User targetUser = null;
+            if (userId != null) {
+                targetUser = userMapper.selectById(userId);
+            }
+            msg = feishuInfoService.refreshPaymentApplication(feishuInfo, targetUser, startDate, endDate,refreshType);
         } catch (Exception e) {
             e.printStackTrace();
             msg.setError(e.getMessage());

+ 110 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/controller/PaymentApplicationController.java

@@ -0,0 +1,110 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.github.pagehelper.util.StringUtil;
+import com.management.platform.entity.Department;
+import com.management.platform.entity.ExpenseSheet;
+import com.management.platform.entity.PaymentApplication;
+import com.management.platform.entity.User;
+import com.management.platform.entity.vo.SysRichFunction;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.DepartmentService;
+import com.management.platform.service.PaymentApplicationService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 付款申请表 前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-04-21
+ */
+@RestController
+@RequestMapping("/payment-application")
+public class PaymentApplicationController {
+
+    @Resource
+    private HttpServletRequest request;
+    @Resource
+    private PaymentApplicationService paymentApplicationService;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private DepartmentService departmentService;
+
+    @RequestMapping("/list")
+    public HttpRespMsg list(PaymentApplication paymentApplication){
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        LambdaQueryWrapper<PaymentApplication> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PaymentApplication::getCompanyId,companyId);
+        if(null!=paymentApplication.getDeptId()){
+            List<Integer> branchDepartment=null;
+            List<Department> departmentList=departmentService.list(new QueryWrapper<Department>().eq("company_id",companyId));
+            branchDepartment= getBranchDepartment(paymentApplication.getDeptId(), departmentList);
+            queryWrapper.in(PaymentApplication::getDeptId,branchDepartment);
+        }
+        if(null!=paymentApplication.getProjectCode()&&StringUtil.isNotEmpty(paymentApplication.getProjectCode())){
+            queryWrapper.like(PaymentApplication::getProjectCode,paymentApplication.getProjectCode());
+        }
+        if(null!=paymentApplication.getStartDate()&&null!=paymentApplication.getEndDate()&&StringUtil.isNotEmpty(paymentApplication.getStartDate())&&StringUtil.isNotEmpty(paymentApplication.getEndDate())){
+            queryWrapper.between(PaymentApplication::getPaymentDate,paymentApplication.getStartDate(),paymentApplication.getEndDate());
+        }
+        IPage<PaymentApplication> page = paymentApplicationService.page(new Page<>(paymentApplication.getPageIndex(), paymentApplication.getPageSize()), queryWrapper);
+        HashMap<String, Object> result = new HashMap<>();
+        result.put("records",page.getRecords());
+        result.put("total",page.getTotal());
+        httpRespMsg.setCode("ok");
+        httpRespMsg.setData(result);
+        return httpRespMsg;
+    }
+
+
+    @RequestMapping("/exportList")
+    public HttpRespMsg exportList(PaymentApplication paymentApplication) {
+        String token = request.getHeader("TOKEN");
+        User user = userMapper.selectById(token);
+        paymentApplication.setCompanyId(user.getCompanyId());
+        return paymentApplicationService.exportList(paymentApplication);
+    }
+
+    private List<Integer> getBranchDepartment(Integer departmentId, List<Department> departmentList) {
+        List<Integer> list = new ArrayList<>();
+        list.add(departmentId);
+        //搜到子部门进行添加
+        for (Department department : departmentList) {
+            if (departmentId.equals(department.getSuperiorId())) {
+                list.addAll(getBranchDepartment(department.getDepartmentId(), departmentList));
+            }
+        }
+        return list;
+    }
+
+    @RequestMapping("/getListByProjectCode")
+    public HttpRespMsg getListByProjectCode(String projectCode){
+        HttpRespMsg httpRespMsg = new HttpRespMsg();
+        if(null!=projectCode&&StringUtil.isNotEmpty(projectCode)){
+            LambdaQueryWrapper<PaymentApplication> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(PaymentApplication::getProjectCode,projectCode);
+            List<PaymentApplication> list = paymentApplicationService.list(queryWrapper);
+            httpRespMsg.setData(list);
+        }
+        return httpRespMsg;
+    }
+}
+

+ 161 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/entity/PaymentApplication.java

@@ -0,0 +1,161 @@
+package com.management.platform.entity;
+
+import java.math.BigDecimal;
+
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonAppend;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 付款申请表
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-04-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class PaymentApplication extends Model<PaymentApplication> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 编码
+     */
+    @TableField("code")
+    private String code;
+
+    /**
+     * 提交人名称
+     */
+    @TableField("submitter_name")
+    private String submitterName;
+
+    /**
+     * 提交人ID
+     */
+    @TableField("submitter_id")
+    private String submitterId;
+
+    /**
+     * 状态
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 提交人所属部门名称
+     */
+    @TableField("submitter_dept")
+    private String submitterDept;
+
+    /**
+     * 提交人所属部门ID
+     */
+    @TableField("dept_id")
+    private Integer deptId;
+
+    /**
+     * 付款事由
+     */
+    @TableField("payment_reason")
+    private String paymentReason;
+
+    /**
+     * 付款金额
+     */
+    @TableField("payment_amount")
+    private BigDecimal paymentAmount;
+
+    /**
+     * 项目编号
+     */
+    @TableField("project_code")
+    private String projectCode;
+
+    /**
+     * 付款方式
+     */
+    @TableField("payment_method")
+    private String paymentMethod;
+
+    /**
+     * 付款日期
+     */
+    @TableField("payment_date")
+    @DateTimeFormat("yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate paymentDate;
+
+    /**
+     * 银行账户
+     */
+    @TableField("bank_account")
+    private String bankAccount;
+
+    /**
+     * 流程实例编码
+     */
+    @TableField("instance_code")
+    private String instanceCode;
+
+    /**
+     * 公司ID
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("created_at")
+    @DateTimeFormat("yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createdAt;
+
+    /**
+     * 更新时间
+     */
+    @TableField("updated_at")
+    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updatedAt;
+
+    @TableField(exist = false)
+    private Integer pageIndex;
+
+    @TableField(exist = false)
+    private Integer pageSize;
+
+    @TableField(exist = false)
+    private String startDate;
+
+    @TableField(exist = false)
+    private String endDate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/mapper/PaymentApplicationMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.PaymentApplication;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 付款申请表 Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-04-21
+ */
+public interface PaymentApplicationMapper extends BaseMapper<PaymentApplication> {
+
+}

+ 3 - 1
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/FeishuInfoService.java

@@ -48,5 +48,7 @@ public interface FeishuInfoService extends IService<FeishuInfo> {
 
     HttpRespMsg getCardTimeResult(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate);
 
-    HttpRespMsg getExpenseFeeResult(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate) throws Exception;
+    HttpRespMsg refreshExpenseSheet(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate,String refreshType) throws Exception;
+
+    HttpRespMsg refreshPaymentApplication(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate, String refreshType) throws Exception;
 }

+ 0 - 52
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/FeishuInfoService.java~

@@ -1,52 +0,0 @@
-package com.management.platform.service;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.entity.FeishuInfo;
-import com.management.platform.entity.User;
-import com.management.platform.entity.bo.LoadTaskResultBO;
-import com.management.platform.util.HttpRespMsg;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2023-02-27
- */
-public interface FeishuInfoService extends IService<FeishuInfo> {
-
-
-    String getAppAccessToken(FeishuInfo feishuInfo);
-
-    JSONObject getCorpInfo(FeishuInfo feishuInfo);
-
-    JSONObject getUserInfo(FeishuInfo feishuInfo, String feishuUserId);
-
-    Map<String,Object> getAvailableRange(FeishuInfo feishuInfo, String pageToken);
-
-    JSONArray getSubDepartmentList(FeishuInfo feishuInfo, String departmentId, String pageToken);
-
-    JSONArray getDepartmentInfo(FeishuInfo feishuInfo, String departmentId);
-
-    JSONArray getUserInfoWithDepartment(FeishuInfo feishuInfo, String feishuDeptid, String pageToken);
-
-    void batchSendCardTemplateMessage(FeishuInfo feishuInfo, List<String> userIds, String sendTypeName, List<String> templateVariableDetail) throws Exception;
-
-    void batchSendCardMessage(FeishuInfo feishuInfo, List<String> userIds, String sendTypeName, Map<String, String> templateVariableDetail, String pushUrl) throws Exception;
-
-    HttpRespMsg initSuperManager(String corpid, String name);
-
-    HttpRespMsg loadTaskResult(LoadTaskResultBO queryBO);
-
-    HttpRespMsg getApprovalResult(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate) throws Exception;
-
-    HttpRespMsg getCardTimeResult(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate);
-
-    
-}

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/PaymentApplicationService.java

@@ -0,0 +1,18 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.PaymentApplication;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.util.HttpRespMsg;
+
+/**
+ * <p>
+ * 付款申请表 服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-04-21
+ */
+public interface PaymentApplicationService extends IService<PaymentApplication> {
+
+    HttpRespMsg exportList(PaymentApplication paymentApplication);
+}

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -31,7 +31,7 @@ import com.taobao.api.ApiException;
 import com.taobao.api.FileItem;
 import com.taobao.api.internal.util.StringUtils;
 import com.taobao.api.internal.util.WebUtils;
-import javafx.scene.control.TextArea;
+//import javafx.scene.control.TextArea;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;

+ 266 - 7
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/FeishuInfoServiceImpl.java

@@ -78,10 +78,11 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
 
     public static final String GET_APPROVAL_INSTANCE_INFO = "https://open.feishu.cn/open-apis/approval/v4/instances/:instance_id";
 
-    public static final Map<Integer, String> EXPENSE_APPROVAL_CODE_MAP = new HashMap<>();
+    public static final Map<String, String> EXPENSE_APPROVAL_CODE_MAP = new HashMap<>();
     static {
         //医智锐科技
-        EXPENSE_APPROVAL_CODE_MAP.put(8484, "E17B8057-1847-4BA2-8DDF-BBD28C57B909");
+        EXPENSE_APPROVAL_CODE_MAP.put("ExpenseSheet", "E17B8057-1847-4BA2-8DDF-BBD28C57B909");
+        EXPENSE_APPROVAL_CODE_MAP.put("PaymentApplication", "889F8775-C221-4E77-833D-BA0D8BD085EA");
     }
 
     @Resource
@@ -115,6 +116,12 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
     private ExpenseTypeMapper expenseTypeMapper;
     @Autowired
     private ExpenseMainTypeMapper expenseMainTypeMapper;
+    @Resource
+    private PaymentApplicationMapper paymentApplicationMapper;
+    @Resource
+    private DepartmentMapper departmentMapper;
+    @Resource
+    private DepartmentFeishuMapper departmentFeishuMapper;
 
     @Override
     public String getAppAccessToken(FeishuInfo feishuInfo) {
@@ -981,7 +988,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
     }
 
     @Override
-    public HttpRespMsg getExpenseFeeResult(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate) throws Exception {
+    public HttpRespMsg refreshExpenseSheet(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate,String refreshType) throws Exception {
         HttpRespMsg msg = new HttpRespMsg();
         
         if (feishuInfo == null) {
@@ -1010,14 +1017,14 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
                         toDate = end;
                     }
                     System.out.println("分批查询fromDate=" + fromDate + ", toDate=" + toDate);
-                    JSONArray tmpList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), formatter.format(fromDate), formatter.format(toDate), userId);
+                    JSONArray tmpList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), formatter.format(fromDate), formatter.format(toDate), userId,refreshType);
                     if (tmpList != null && tmpList.size() > 0) {
                         instanceList.addAll(tmpList);
                     }
                 }
 
             } else{
-                instanceList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), startDate, endDate, userId);
+                instanceList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), startDate, endDate, userId,refreshType);
             }
 
 
@@ -1104,6 +1111,116 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
         
         return msg;
     }
+
+    @Override
+    public HttpRespMsg refreshPaymentApplication(FeishuInfo feishuInfo, User targetUser, String startDate, String endDate,String refreshType) throws Exception {
+        HttpRespMsg msg = new HttpRespMsg();
+
+        if (feishuInfo == null) {
+            msg.setError("飞书信息不能为空");
+            return msg;
+        }
+
+        try {
+            // 第一步:调用GET_APPROVAL_INSTANCE_LIST获取审批实例列表
+            System.out.println("========== 开始获取支付申请审批实例列表 ==========");
+            System.out.println("开始时间: " + startDate + ", 结束时间: " + endDate);
+            String userId = targetUser == null?null:targetUser.getJobNumber();
+
+            //日期间隔如果超过30天,需要分批查询
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
+            LocalDate start = LocalDate.parse(startDate, formatter);
+            LocalDate end = LocalDate.parse(endDate, formatter);
+            long daysBetween = ChronoUnit.DAYS.between(start, end);
+            JSONArray instanceList = null;
+            System.out.println("daysBetween==="+daysBetween);
+            if (daysBetween > 29) {
+                instanceList = new JSONArray();
+                for (LocalDate fromDate = start; !fromDate.isAfter(end); fromDate = fromDate.plusDays(30)) {
+                    LocalDate toDate = fromDate.plusDays(29);
+                    if (toDate.isAfter(end)) {
+                        toDate = end;
+                    }
+                    System.out.println("分批查询fromDate=" + fromDate + ", toDate=" + toDate);
+                    JSONArray tmpList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), formatter.format(fromDate), formatter.format(toDate), userId,refreshType);
+                    if (tmpList != null && tmpList.size() > 0) {
+                        instanceList.addAll(tmpList);
+                    }
+                }
+
+            } else{
+                instanceList = getApprovalInstanceList(feishuInfo.getCompanyId(), feishuInfo.getAppId(), startDate, endDate, userId,refreshType);
+            }
+            if (instanceList == null || instanceList.size() == 0) {
+                System.out.println("未查询到支付申请审批实例");
+                msg.setData(new JSONArray());
+                return msg;
+            }
+
+            System.out.println("查询到审批实例数量: " + instanceList.size());
+
+            // 第二步:遍历实例列表,调用GET_APPROVAL_INSTANCE_INFO获取每个实例的详情并解析存储
+            int successCount = 0;
+            int skipCount = 0;
+            int errorCount = 0;
+
+            List<String> instanceCodeList = new ArrayList<>();
+            for (int i = 0; i < instanceList.size(); i++) {
+                JSONObject instance = instanceList.getJSONObject(i).getJSONObject("instance");
+                String instanceCode = instance.getString("code");
+                instanceCodeList.add(instanceCode);
+            }
+            for (int i = 0; i < instanceList.size(); i++) {
+                JSONObject instance = instanceList.getJSONObject(i).getJSONObject("instance");
+                String instanceCode = instance.getString("code");
+
+//                System.out.println("========== 处理第 " + (i + 1) + " 个实例 ==========");
+//                System.out.println("实例ID: " + instanceCode);
+
+                try {
+
+                    // 调用接口获取实例详情
+                    JSONObject instanceDetail = getApprovalInstanceInfo(feishuInfo.getAppId(), instanceCode);
+
+                    if (instanceDetail != null) {
+                        // 解析并存储数据
+                        boolean parseResult = parseAndSavePaymentData(instanceDetail, feishuInfo.getCompanyId());
+                        if (parseResult) {
+                            successCount++;
+                            System.out.println("支付申请单处理成功。instance_code: " + instanceCode);
+                        } else {
+                            errorCount++;
+                            System.out.println("支付申请单处理失败。instance_code: " + instanceCode);
+                        }
+                    } else {
+                        errorCount++;
+                        System.out.println("获取实例详情失败,实例ID: " + instanceCode);
+                    }
+                } catch (Exception e) {
+                    errorCount++;
+                    System.out.println("处理实例异常,实例ID: " + instanceCode + ", 异常信息: " + e.getMessage());
+                    e.printStackTrace();
+                }
+            }
+
+            System.out.println("========== 支付申请单数据同步完成 ==========");
+            System.out.println("总数: " + instanceList.size() + ", 成功: " + successCount + ", 跳过: " + skipCount + ", 失败: " + errorCount);
+
+            JSONObject resultData = new JSONObject();
+            resultData.put("total", instanceList.size());
+            resultData.put("success", successCount);
+            resultData.put("skip", skipCount);
+            resultData.put("error", errorCount);
+            msg.setData(resultData);
+
+        } catch (Exception e) {
+            System.out.println("获取支付申请单数据异常: " + e.getMessage());
+            e.printStackTrace();
+            throw e;
+        }
+
+        return msg;
+    }
     
     /**
      * 解析并保存报销单数据
@@ -1318,6 +1435,148 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
             return false;
         }
     }
+
+
+
+    /**
+     * 解析并保存支付申请单数据
+     * @param instanceDetail 实例详情
+     * @param companyId 公司ID
+     * @return 是否成功
+     */
+    private boolean parseAndSavePaymentData(JSONObject instanceDetail, Integer companyId) {
+        try {
+            // 解析基本信息
+            String instanceCode = instanceDetail.getString("instance_code");
+            String userId = instanceDetail.getString("user_id");
+            String departmentId = instanceDetail.getString("department_id");
+            String serialNumber = instanceDetail.getString("serial_number");
+            String status = instanceDetail.getString("status");
+            Long startTime = instanceDetail.getLong("start_time");
+            String formStr = instanceDetail.getString("form");
+            // 根据user_id查询用户信息
+            User user = userMapper.selectOne(
+                    new QueryWrapper<User>()
+                            .eq("job_number", userId)
+                            .eq("company_id", companyId)
+            );
+
+            // 根据department_id查询部门信息
+            DepartmentFeishu departmentFeishu = departmentFeishuMapper.selectOne(new LambdaQueryWrapper<DepartmentFeishu>().eq(DepartmentFeishu::getFeishuDeptid, departmentId));
+            Department department = departmentMapper.selectOne(
+                    new QueryWrapper<Department>()
+                            .eq("feishu_deptid", departmentFeishu.getFeishuOpenDeptid())
+                            .eq("company_id", companyId)
+            );
+
+            if (user == null) {
+                System.out.println("未找到用户,job_number: " + userId);
+                return false;
+            }
+
+            // 解析form字段
+            JSONArray formArray = JSONArray.parseArray(formStr);
+
+            // 提取关键字段
+            String departmentName = null; // 提交人所属部门
+            String paymentReason = null; // 付款事由
+            Double paymentAmount = null; // 付款金额
+            String projectCode = null; // 项目编号
+            String paymentMethod = null; // 付款方式
+            String paymentDate = null; // 付款日期
+            String bankAccount = null; // 银行账户
+            DateTimeFormatter dateFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
+            for (int i = 0; i < formArray.size(); i++) {
+                JSONObject formItem = formArray.getJSONObject(i);
+                String name = formItem.getString("name");
+
+                if ("提交人所属部门".equals(name)) {
+                    departmentName = formItem.getString("value");
+                } else if ("付款事由,需写明收款方的收款账户".equals(name)) {
+                    paymentReason = formItem.getString("value");
+                } else if ("付款金额".equals(name)) {
+                    Object valueObj = formItem.get("value");
+                    if (valueObj instanceof Number) {
+                        paymentAmount = ((Number) valueObj).doubleValue();
+                    } else if (valueObj instanceof String) {
+                        paymentAmount = Double.parseDouble((String) valueObj);
+                    }
+                } else if ("项目编号".equals(name)) {
+                    projectCode = formItem.getString("value");
+                } else if ("付款方式".equals(name)) {
+                    paymentMethod = formItem.getString("value");
+                }else if ("付款日期".equals(name)) {
+                    String dateValue = formItem.getString("value");
+                    if (!StringUtils.isEmpty(dateValue)) {
+                        try {
+                            // 解析ISO 8601格式的日期时间
+                            LocalDateTime dateTime = LocalDateTime.parse(dateValue, dateFormatter);
+                            paymentDate = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                        } catch (Exception e) {
+                            System.out.println("日期解析失败: " + dateValue);
+                        }
+                    }
+                }else if ("银行账户".equals(name)) {
+                    JSONObject object = formItem.getJSONObject("value");
+                    String widgetAccountBankName = object.getString("widgetAccountBankName");
+                    bankAccount = object.getString("widgetAccountNumber");
+//                    JSONObject value = JSONObject.parseObject(widgetAccountBankName);
+//                    String text = value.getString("text");
+//                    bankAccount=String.valueOf(JSONObject.parseObject(text).get("bankNameZh"));
+                }
+            }
+            PaymentApplication paymentApplication = new PaymentApplication();
+            paymentApplication.setCompanyId(companyId);
+            paymentApplication.setSubmitterId(user.getId());
+            paymentApplication.setSubmitterName(user.getName());
+            paymentApplication.setInstanceCode(instanceCode);
+            paymentApplication.setSubmitterDept(department.getDepartmentName());
+            paymentApplication.setDeptId(department.getDepartmentId());
+            paymentApplication.setPaymentAmount(new BigDecimal(paymentAmount));
+            paymentApplication.setPaymentReason(paymentReason);
+            paymentApplication.setProjectCode(projectCode);
+            paymentApplication.setPaymentMethod(paymentMethod);
+            paymentApplication.setPaymentDate(LocalDate.parse(paymentDate));
+            paymentApplication.setBankAccount(bankAccount);
+
+            // 设置创建日期(从startTime转换)
+            if (startTime != null) {
+                LocalDateTime createAt = Instant.ofEpochMilli(startTime)
+                        .atZone(ZoneId.of("Asia/Shanghai"))
+                        .toLocalDateTime();
+                paymentApplication.setCreatedAt(createAt);
+            }
+            paymentApplication.setCode(serialNumber);
+            // 设置状态:根据飞书审批状态映射
+            // PENDING-待审核, APPROVED-审核通过, REJECTED-驳回, CANCELED-已撤回
+            Integer sheetStatus = 1; // 默认待审核
+            if ("APPROVED".equals(status)) {
+                sheetStatus = 0; // 审核通过
+            } else if ("REJECTED".equals(status)) {
+                sheetStatus = 2; // 驳回
+            } else if ("CANCELED".equals(status)) {
+                sheetStatus = 3; // 已撤回
+            } else if ("PENDING".equals(status)) {
+                sheetStatus = 1; // 待审核
+            }
+            paymentApplication.setStatus(sheetStatus);
+            // 插入ExpenseSheet
+            PaymentApplication oldPayment = paymentApplicationMapper.selectOne(new LambdaQueryWrapper<PaymentApplication>().eq(PaymentApplication::getCode, serialNumber));
+            if(null==oldPayment){
+                int insertResult = paymentApplicationMapper.insert(paymentApplication);
+                if (insertResult <= 0) {
+                    System.out.println("插入PaymentApplication失败");
+                    return false;
+                }
+            }
+            return true;
+
+        } catch (Exception e) {
+            System.out.println("解析并保存支付申请数据异常: " + e.getMessage());
+            e.printStackTrace();
+            return false;
+        }
+    }
     
     /**
      * 获取审批实例列表
@@ -1326,7 +1585,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
      * @param endDate 结束时间 格式:yyyyMMdd
      * @return 审批实例列表
      */
-    private JSONArray getApprovalInstanceList(Integer companyId, String appId, String startDate, String endDate, String userId) throws Exception {
+    private JSONArray getApprovalInstanceList(Integer companyId, String appId, String startDate, String endDate, String userId,String refreshType) throws Exception {
         JSONArray result = new JSONArray();
         
         // 将yyyyMMdd格式转换为时间戳(秒)
@@ -1339,7 +1598,7 @@ public class FeishuInfoServiceImpl extends ServiceImpl<FeishuInfoMapper, FeishuI
         
         String url = GET_APPROVAL_INSTANCE_LIST;
         //审批表单的code
-        String approvalCode = EXPENSE_APPROVAL_CODE_MAP.get(companyId);
+        String approvalCode = EXPENSE_APPROVAL_CODE_MAP.get(refreshType);
         HttpHeaders headers = new HttpHeaders();
         MediaType type = MediaType.parseMediaType("application/json; charset=utf-8");
         headers.setContentType(type);

+ 97 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/PaymentApplicationServiceImpl.java

@@ -0,0 +1,97 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.management.platform.entity.*;
+import com.management.platform.mapper.PaymentApplicationMapper;
+import com.management.platform.service.ExcelExportService;
+import com.management.platform.service.PaymentApplicationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.util.ExcelUtil;
+import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 付款申请表 服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2026-04-21
+ */
+@Service
+public class PaymentApplicationServiceImpl extends ServiceImpl<PaymentApplicationMapper, PaymentApplication> implements PaymentApplicationService {
+
+    @Resource
+    private ExcelExportService excelExportService;
+    @Value(value = "${upload.path}")
+    private String path;
+
+    @Override
+    public HttpRespMsg exportList(PaymentApplication paymentApplication) {
+        Integer companyId = paymentApplication.getCompanyId();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        QueryWrapper<PaymentApplication> queryWrapper = new QueryWrapper<PaymentApplication>();
+        queryWrapper.eq("company_id", companyId).orderByDesc("id");
+        if (!StringUtils.isEmpty(paymentApplication.getProjectCode())) {
+            queryWrapper.like("project_code", paymentApplication.getProjectCode());
+        }
+        if (!StringUtils.isEmpty(paymentApplication.getStartDate()) && !StringUtils.isEmpty(paymentApplication.getEndDate())) {
+            queryWrapper.between("payment_date", paymentApplication.getStartDate(), paymentApplication.getEndDate());
+        }
+        if (paymentApplication.getDeptId() != null) {
+            queryWrapper.eq("dept_id", paymentApplication.getDeptId());
+        }
+        List<PaymentApplication> records = paymentApplication.selectList(queryWrapper);
+        List<List<String>> allList=new ArrayList<>();
+        List<String> titleList=new ArrayList<>();
+        titleList.add("提交人所属部门");
+        titleList.add("付款事由");
+        titleList.add("付款金额");
+        titleList.add("项目编号");
+        titleList.add("付款方式");
+        titleList.add("付款日期");
+        titleList.add("银行账户");
+        titleList.add("状态");
+
+        allList.add(titleList);
+        for (PaymentApplication record : records) {
+            ArrayList<String> itemList = new ArrayList<>();
+            Integer status = record.getStatus();
+            String statusStr="";
+            switch (status){
+                case 0:statusStr="审核通过";
+                    break;
+                case 1:statusStr="驳回";
+                    break;
+                case 2:statusStr="已撤回";
+                    break;
+                case 3:statusStr="待审核";
+                    break;
+            }
+            itemList.add(record.getSubmitterDept());
+            itemList.add(record.getPaymentReason());
+            itemList.add(String.valueOf(record.getPaymentAmount().doubleValue()));
+            itemList.add(record.getProjectCode());
+            itemList.add(record.getPaymentMethod());
+            itemList.add(df.format(record.getPaymentDate()));
+            itemList.add(record.getBankAccount());
+            itemList.add(statusStr);
+            allList.add(itemList);
+        }
+        HttpRespMsg msg = new HttpRespMsg();
+        //生成excel文件导出
+        String fileName = "支付申请单据列表"+System.currentTimeMillis();
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , allList, path);
+        msg.data = resp;
+        return msg;
+    }
+}

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -274,6 +274,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Resource
     private ProjectLeaderService projectLeaderService;
+    @Resource
+    private PaymentApplicationMapper paymentApplicationMapper;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -4471,10 +4473,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<ExpenseMainType> expenseMainTypes = expenseMainTypeMapper.selectList(new QueryWrapper<ExpenseMainType>().eq("company_id", companyId));
         List<ExpenseSheet> expenseSheetList = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>().eq("company_id", companyId).eq("status", 0));
         List<ExpenseItem> expenseItemList = expenseItemMapper.selectList(new QueryWrapper<ExpenseItem>().in("expense_id", expenseSheetList.stream().map(ExpenseSheet::getId).collect(Collectors.toList())));
+        List<String> projectCodeList = projectTask.stream().map(i -> String.valueOf(i.get("projectCode"))).distinct().collect(Collectors.toList());
+        List<PaymentApplication> paymentApplicationList = paymentApplicationMapper.selectList(new LambdaQueryWrapper<PaymentApplication>().in(PaymentApplication::getProjectCode, projectCodeList).eq(PaymentApplication::getStatus, 0));
         for (Map<String, Object> map : projectTask) {
             BigDecimal bigDecimal=new BigDecimal(0);
             List<Map<String,Object>> itemList=new ArrayList<>();
             Integer curProjectId = (Integer)map.get("id");
+            String curProjectCode = String.valueOf(map.get("projectCode"));
+            BigDecimal decimal = new BigDecimal(0);
+            List<PaymentApplication> curPaymentList = paymentApplicationList.stream().filter(i -> i.getProjectCode().equals(curProjectCode)).collect(Collectors.toList());
+            for (PaymentApplication paymentApplication : curPaymentList) {
+                decimal=decimal.add(paymentApplication.getPaymentAmount());
+            }
+            map.put("paymentApplicationAmount",decimal.doubleValue());
             for (ExpenseMainType expenseMainType : expenseMainTypes) {
                 Map<String,Object> item=new HashMap<>();
                 item.put("type",expenseMainType.getId());

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/application.yml

@@ -15,7 +15,7 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://localhost:3306/man_yzr?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false&allowPublicKeyRetrieval=true
+    url: jdbc:mysql://192.168.2.3:3306/man_yzr?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false&allowPublicKeyRetrieval=true
     username: root
     password: P011430@Huoshi*
     hikari:

+ 31 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/mapper/PaymentApplicationMapper.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.management.platform.mapper.PaymentApplicationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.PaymentApplication">
+        <id column="id" property="id" />
+        <result column="code" property="code" />
+        <result column="submitter_name" property="submitterName" />
+        <result column="submitter_id" property="submitterId" />
+        <result column="submitter_dept" property="submitterDept" />
+        <result column="dept_id" property="deptId" />
+        <result column="payment_reason" property="paymentReason" />
+        <result column="payment_amount" property="paymentAmount" />
+        <result column="project_code" property="projectCode" />
+        <result column="project_id" property="projectId" />
+        <result column="payment_method" property="paymentMethod" />
+        <result column="payment_date" property="paymentDate" />
+        <result column="bank_account" property="bankAccount" />
+        <result column="instance_code" property="instanceCode" />
+        <result column="company_id" property="companyId" />
+        <result column="created_at" property="createdAt" />
+        <result column="updated_at" property="updatedAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, code, submitter_name, submitter_id, submitter_dept, dept_id, payment_reason, payment_amount, project_code, project_id, payment_method, payment_date, bank_account, instance_code, company_id, created_at, updated_at
+    </sql>
+
+</mapper>

+ 30 - 0
fhKeeper/formulahousekeeper/management-platform-yzr/src/main/resources/sql/2026-04-21.sql

@@ -0,0 +1,30 @@
+CREATE TABLE `payment_application`  (
+  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '编码',
+  `submitter_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提交人名称',
+  `submitter_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提交人ID',
+  `submitter_dept` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提交人所属部门名称',
+  `dept_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提交人所属部门ID',
+  `payment_reason` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '付款事由',
+  `payment_amount` decimal(18, 2) NOT NULL COMMENT '付款金额',
+  `project_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '项目编号',
+  `status` int UNSIGNED NULL DEFAULT NULL COMMENT '状态',
+  `payment_method` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '付款方式',
+  `payment_date` date NOT NULL COMMENT '付款日期',
+  `bank_account` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '银行账户',
+  `instance_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '实例编码',
+  `company_id` int UNSIGNED NULL DEFAULT NULL COMMENT '公司ID',
+  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+  PRIMARY KEY (`id`) USING BTREE,
+  UNIQUE INDEX `uk_code`(`code`) USING BTREE,
+  INDEX `idx_company_id`(`company_id`) USING BTREE,
+  INDEX `idx_project_code`(`project_code`) USING BTREE,
+  INDEX `idx_payment_date`(`payment_date`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '付款申请表' ROW_FORMAT = Dynamic;
+
+
+#按照顺序执行
+INSERT INTO sys_module VALUES(null,'支付申请','/paymentApplication',null,null,13,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0);
+select id from sys_module where name="支付申请";
+insert into sys_role_module values(55733,33);

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DingDingServiceImpl.java

@@ -31,7 +31,6 @@ import com.taobao.api.ApiException;
 import com.taobao.api.FileItem;
 import com.taobao.api.internal.util.StringUtils;
 import com.taobao.api.internal.util.WebUtils;
-import javafx.scene.control.TextArea;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -41,7 +40,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -50,6 +48,8 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+//import javafx.scene.control.TextArea;
+
 //import com.management.platform.entity.vo.LeaveQuotaNum;
 
 @Service

BIN
fhKeeper/formulahousekeeper/management-platform/workTime.2026-04-07.log.gz


File diff suppressed because it is too large
+ 79165 - 0
fhKeeper/formulahousekeeper/management-platform/workTime.log


+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdProcedureController.java

@@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.management.platform.entity.ProdProcedure;
 import com.management.platform.service.ProdProcedureService;
 import com.management.platform.util.HttpRespMsg;
-import com.sun.scenario.effect.impl.sw.java.JSWBlend_SRC_OUTPeer;
+//import com.sun.scenario.effect.impl.sw.java.JSWBlend_SRC_OUTPeer;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 

+ 83 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/demo/MonthUtils.java

@@ -0,0 +1,83 @@
+package com.management.platform.demo;
+
+import java.time.*;
+import java.time.format.*;
+import java.time.temporal.*;
+import java.util.*;
+import java.util.stream.*;
+
+public class MonthUtils {
+
+    /**
+     * 获取月份信息
+     * @param yearMonthStr 格式 "yyyy-MM"(如 "2023-05")
+     * @param holidays 法定节假日列表(如 ["2023-05-01", "2023-05-02"])
+     * @return Map<String, Object> 包含月份名称、第一天、最后一天、工作日天数
+     */
+    public static Map<String, Object> getMonthInfo(String yearMonthStr, List<String> holidays) {
+        // 解析输入
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+        YearMonth yearMonth = YearMonth.parse(yearMonthStr, formatter);
+
+        // 1. 月份名称(本地化)
+        String monthName = yearMonth.getMonth().getDisplayName(TextStyle.FULL, Locale.CHINA);
+
+        // 2. 月份的第一天
+        LocalDate firstDay = yearMonth.atDay(1);
+
+        // 3. 月份的最后一天
+        LocalDate lastDay = yearMonth.atEndOfMonth();
+
+        // 4. 计算工作日天数(排除周末和法定节假日)
+        long workDays = calculateWorkDays(yearMonth, holidays);
+
+        // 返回结果
+        Map<String, Object> result = new HashMap<>();
+        result.put("monthName", monthName);  // 月份名称(如 "五月")
+        result.put("firstDay", firstDay);     // 月份第一天(LocalDate)
+        result.put("lastDay", lastDay);       // 月份最后一天(LocalDate)
+        result.put("workDays", workDays);     // 工作日天数(long)
+        return result;
+    }
+
+    /**
+     * 计算某个月的工作日天数(排除周末和法定节假日)
+     */
+    private static long calculateWorkDays(YearMonth yearMonth, List<String> holidays) {
+        // 获取月份的所有日期
+        List<LocalDate> datesInMonth = IntStream.rangeClosed(1, yearMonth.lengthOfMonth())
+                .mapToObj(day -> yearMonth.atDay(day))
+                .collect(Collectors.toList());
+
+        // 过滤:排除周末 + 法定节假日
+        return datesInMonth.stream()
+                .filter(date -> {
+                    // 1. 排除周六、周日
+                    DayOfWeek dayOfWeek = date.getDayOfWeek();
+                    if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
+                        return false;
+                    }
+                    // 2. 排除法定节假日
+                    String dateStr = date.format(DateTimeFormatter.ISO_LOCAL_DATE);
+                    return !holidays.contains(dateStr);
+                })
+                .count();
+    }
+
+    public static void main(String[] args) {
+        // 示例:2023年5月,假设法定节假日是 ["2023-05-01", "2023-05-02", "2023-05-03"]
+        List<String> holidays = Arrays.asList("2025-01-01",
+                "2025-01-28", "2025-01-29", "2025-01-30", "2025-01-31", "2025-02-03", "2025-02-04",
+                "2025-04-04",
+                "2025-05-01", "2025-05-02", "2025-05-05",
+                "2025-06-02",
+                "2025-10-01", "2025-10-02", "2025-10-03", "2025-10-06", "2025-10-07", "2025-10-08" );
+        Map<String, Object> monthInfo = getMonthInfo("2023-07", holidays);
+
+        // 输出结果
+        System.out.println("月份名称: " + monthInfo.get("monthName")); // 五月
+        System.out.println("第一天: " + monthInfo.get("firstDay"));    // 2023-05-01
+        System.out.println("最后一天: " + monthInfo.get("lastDay"));  // 2023-05-31
+        System.out.println("工作日天数: " + monthInfo.get("workDays")); // 23(假设5月有23个工作日)
+    }
+}

BIN
fhKeeper/formulahousekeeper/management-workshop/workshop_print.2025-08-22.log.gz


File diff suppressed because it is too large
+ 11670 - 0
fhKeeper/formulahousekeeper/management-workshop/workshop_print.log


+ 2 - 1
fhKeeper/formulahousekeeper/timesheet-yzr/.vscode/settings.json

@@ -1,3 +1,4 @@
+
 {
   // Vue: i18n-ally 插件如下须要本身配置
   "i18n-ally.localesPaths": ["src/i18n"], // 翻译的语言路径
@@ -9,4 +10,4 @@
   "i18n-ally.enabledFrameworks": ["vue"],
   "vue-i18n.i18nPaths": "src\\i18n" // 翻译后变量的格式, flat(扁平式即对象属性路径变成一个长字符串), nested(嵌套式即对象属性变量可以进行相互之间的嵌套)
   // 注意: 如果 i18n-ally 检测不出来框架, 或 提示错误, 可能是版本太高的缘故
-}
+}

+ 5 - 5
fhKeeper/formulahousekeeper/timesheet-yzr/package-lock.json

@@ -173,11 +173,6 @@
       "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
       "dev": true
     },
-    "@popperjs/core": {
-      "version": "npm:@sxzz/popperjs-es@2.11.7",
-      "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "@tinymce/tinymce-vue": {
       "version": "6.2.0",
       "resolved": "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-6.2.0.tgz",
@@ -2751,6 +2746,11 @@
         "normalize-wheel-es": "^1.2.0"
       },
       "dependencies": {
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.8",
+          "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.8.tgz",
+          "integrity": "sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ=="
+        },
         "async-validator": {
           "version": "4.2.5",
           "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet-yzr/src/i18n/en.json

@@ -20,6 +20,7 @@
     "customerManagement": "Customer management",
     "engineeringProfessionalManagement": "Engineering professional Management",
     "reimbursement": "reimbursement",
+    "paymentApplication": "payment application",
     "researchCenterManagement": "Research Center Management",
     "supplierManagement": "Supplier Management",
     "organizationalStructure": "Organizational structure",

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet-yzr/src/i18n/zh.json

@@ -20,6 +20,7 @@
     "customerManagement": "客户管理",
     "engineeringProfessionalManagement": "工程专业管理",
     "reimbursement": "费用报销",
+    "paymentApplication": "支付申请",
     "researchCenterManagement": "研究中心管理",
     "supplierManagement": "供应商管理",
     "organizationalStructure": "组织架构",

+ 17 - 0
fhKeeper/formulahousekeeper/timesheet-yzr/src/routes.js

@@ -104,6 +104,9 @@ import userGrouping from './views/userGrouping/userGrouping.vue'
 // 设备管理
 import deviceManagement from './views/deviceManagement/deviceManagement'
 
+//支付申请
+import paymentApplication from './views/paymentApplication/paymentApplication.vue'
+
 Vue.use(Router)
 
 export const fixedRouter = [
@@ -429,6 +432,20 @@ export const allRouters = [//组织架构
         // 其他信息
         meta: { text: 'navigation.reimbursement' } 
     },
+
+    // 支付申请模块
+    {
+        path: '/',
+        component: Home,
+        name: '支付申请',
+        iconCls: 'iconfont firerock-iconbaoxiao',
+        leaf: true,
+        children: [
+            { path: '/paymentApplication', component: paymentApplication, name: '支付申请' }
+        ],
+        // 其他信息
+        meta: { text: 'navigation.paymentApplication' } 
+    },
     
     {
         path: '/',

File diff suppressed because it is too large
+ 8250 - 4101
fhKeeper/formulahousekeeper/timesheet-yzr/src/views/corpreport/list.vue


File diff suppressed because it is too large
+ 2118 - 1089
fhKeeper/formulahousekeeper/timesheet-yzr/src/views/expense/expense.vue


File diff suppressed because it is too large
+ 2603 - 0
fhKeeper/formulahousekeeper/timesheet-yzr/src/views/paymentApplication/paymentApplication.vue


File diff suppressed because it is too large
+ 2112 - 1293
fhKeeper/formulahousekeeper/timesheet-yzr/src/views/workReport/dailyReportReview.vue


BIN
fhKeeper/formulahousekeeper/timesheet/node_modules.zip


+ 5 - 5
fhKeeper/formulahousekeeper/timesheet/package-lock.json

@@ -173,11 +173,6 @@
       "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
       "dev": true
     },
-    "@popperjs/core": {
-      "version": "npm:@sxzz/popperjs-es@2.11.7",
-      "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "@tinymce/tinymce-vue": {
       "version": "6.2.0",
       "resolved": "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-6.2.0.tgz",
@@ -2751,6 +2746,11 @@
         "normalize-wheel-es": "^1.2.0"
       },
       "dependencies": {
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.8",
+          "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.8.tgz",
+          "integrity": "sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ=="
+        },
         "async-validator": {
           "version": "4.2.5",
           "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",

File diff suppressed because it is too large
+ 555 - 16071
fhKeeper/formulahousekeeper/timesheet_h5/package-lock.json


+ 18 - 0
fhKeeper/formulahousekeeper/timesheet_mld/package-lock.json

@@ -1432,6 +1432,16 @@
       "dev": true,
       "optional": true
     },
+    "bindings": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmmirror.com/bindings/-/bindings-1.5.0.tgz",
+      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "file-uri-to-path": "1.0.0"
+      }
+    },
     "block-stream": {
       "version": "0.0.9",
       "resolved": "https://registry.npmmirror.com/block-stream/-/block-stream-0.0.9.tgz",
@@ -3321,6 +3331,13 @@
         "loader-utils": "^1.0.2"
       }
     },
+    "file-uri-to-path": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+      "dev": true,
+      "optional": true
+    },
     "filename-regex": {
       "version": "2.0.1",
       "resolved": "https://registry.npmmirror.com/filename-regex/-/filename-regex-2.0.1.tgz",
@@ -9491,6 +9508,7 @@
           "dev": true,
           "optional": true,
           "requires": {
+            "bindings": "^1.5.0",
             "nan": "^2.12.1"
           }
         },