Browse Source

复制qrcode项目

yusm 2 months ago
parent
commit
b8b917e488
100 changed files with 8265 additions and 0 deletions
  1. 2 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.gitattributes
  2. 33 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.gitignore
  3. 19 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.mvn/wrapper/maven-wrapper.properties
  4. 1 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/build.bat
  5. 259 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/mvnw
  6. 149 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/mvnw.cmd
  7. 121 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/pom.xml
  8. 28 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/CollectdataApplication.java
  9. 19 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/config/PropertyMsg.java
  10. 312 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/controller/WechatCallbackController.java
  11. 50 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AIQuestion.java
  12. 86 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AIQuestionDetail.java
  13. 70 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ActionLog.java
  14. 42 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AlertTime.java
  15. 99 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AttachmentCenter.java
  16. 78 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditLogCenter.java
  17. 94 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditWorkflowSetting.java
  18. 88 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditWorkflowTimeSetting.java
  19. 47 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusObjRelation.java
  20. 27 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusObject.java
  21. 95 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusReportStore.java
  22. 49 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessItemCustom.java
  23. 89 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessItemProduct.java
  24. 223 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessOpportunity.java
  25. 74 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessProduct.java
  26. 183 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessTrip.java
  27. 68 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BustripAuditLog.java
  28. 82 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BustripProject.java
  29. 57 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CategoryRatioTblSetting.java
  30. 206 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Clue.java
  31. 55 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ClueLog.java
  32. 67 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ClueUploadfile.java
  33. 36 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ColumnFixTrans.java
  34. 55 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CommonUse.java
  35. 175 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Company.java
  36. 49 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyCert.java
  37. 56 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyCustomerContact.java
  38. 125 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyDingding.java
  39. 44 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyReport.java
  40. 59 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactSyncLog.java
  41. 170 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Contacts.java
  42. 112 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactsDocument.java
  43. 75 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactsLog.java
  44. 236 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Contract.java
  45. 130 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractCustom.java
  46. 107 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractDocument.java
  47. 77 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractLog.java
  48. 65 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractModifyRecord.java
  49. 99 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractPayCustomized.java
  50. 100 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractPayment.java
  51. 52 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractType.java
  52. 61 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractTypeSec.java
  53. 55 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxJobResult.java
  54. 53 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxPreAuthCode.java
  55. 47 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxRegisterCode.java
  56. 90 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CusReportForm.java
  57. 46 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CusTableColumn.java
  58. 275 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Custom.java
  59. 49 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomItemContacts.java
  60. 62 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomMultipartFile.java
  61. 79 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomerInfo.java
  62. 50 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DdCallback.java
  63. 13 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DdingCardTimeItem.java
  64. 109 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Department.java
  65. 58 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentDingding.java
  66. 61 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentFeishu.java
  67. 49 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentOtherManager.java
  68. 58 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentWx.java
  69. 105 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/EarningSnapshot.java
  70. 69 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/EstimateTimeSetting.java
  71. 60 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExcelMultipartFile.java
  72. 45 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseAuditSetting.java
  73. 120 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseItem.java
  74. 59 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseMainType.java
  75. 43 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpensePayWay.java
  76. 163 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseSheet.java
  77. 58 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseType.java
  78. 55 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FastAccess.java
  79. 76 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FeishuInfo.java
  80. 61 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FeishuSend.java
  81. 192 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Finance.java
  82. 39 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceAuditor.java
  83. 83 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceCalculate.java
  84. 206 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceFixedcolname.java
  85. 103 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceImport.java
  86. 69 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceProjects.java
  87. 52 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceTblcuscol.java
  88. 10 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormFieldHead.java
  89. 29 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormTransColumn.java
  90. 14 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormTransCondition.java
  91. 117 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupBudgetReview.java
  92. 46 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupParticipator.java
  93. 57 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupTemplate.java
  94. 46 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupTmpstages.java
  95. 105 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GtemplateTask.java
  96. 77 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Information.java
  97. 72 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveAuditLog.java
  98. 49 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeavePmaudit.java
  99. 76 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveQuotaNum.java
  100. 0 0
      fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveSheet.java

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.gitattributes

@@ -0,0 +1,2 @@
+/mvnw text eol=lf
+*.cmd text eol=crlf

+ 33 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.gitignore

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

+ 19 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/.mvn/wrapper/maven-wrapper.properties

@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+wrapperVersion=3.3.2
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip

+ 1 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/build.bat

@@ -0,0 +1 @@
+mvn package

+ 259 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/mvnw

@@ -0,0 +1,259 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.3.2
+#
+# Optional ENV vars
+# -----------------
+#   JAVA_HOME - location of a JDK home dir, required when download maven via java source
+#   MVNW_REPOURL - repo url base for downloading maven distribution
+#   MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+#   MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
+# ----------------------------------------------------------------------------
+
+set -euf
+[ "${MVNW_VERBOSE-}" != debug ] || set -x
+
+# OS specific support.
+native_path() { printf %s\\n "$1"; }
+case "$(uname)" in
+CYGWIN* | MINGW*)
+  [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
+  native_path() { cygpath --path --windows "$1"; }
+  ;;
+esac
+
+# set JAVACMD and JAVACCMD
+set_java_home() {
+  # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
+  if [ -n "${JAVA_HOME-}" ]; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ]; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+      JAVACCMD="$JAVA_HOME/jre/sh/javac"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+      JAVACCMD="$JAVA_HOME/bin/javac"
+
+      if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
+        echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
+        echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
+        return 1
+      fi
+    fi
+  else
+    JAVACMD="$(
+      'set' +e
+      'unset' -f command 2>/dev/null
+      'command' -v java
+    )" || :
+    JAVACCMD="$(
+      'set' +e
+      'unset' -f command 2>/dev/null
+      'command' -v javac
+    )" || :
+
+    if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
+      echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
+      return 1
+    fi
+  fi
+}
+
+# hash string like Java String::hashCode
+hash_string() {
+  str="${1:-}" h=0
+  while [ -n "$str" ]; do
+    char="${str%"${str#?}"}"
+    h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
+    str="${str#?}"
+  done
+  printf %x\\n $h
+}
+
+verbose() { :; }
+[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
+
+die() {
+  printf %s\\n "$1" >&2
+  exit 1
+}
+
+trim() {
+  # MWRAPPER-139:
+  #   Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+  #   Needed for removing poorly interpreted newline sequences when running in more
+  #   exotic environments such as mingw bash on Windows.
+  printf "%s" "${1}" | tr -d '[:space:]'
+}
+
+# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
+while IFS="=" read -r key value; do
+  case "${key-}" in
+  distributionUrl) distributionUrl=$(trim "${value-}") ;;
+  distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
+  esac
+done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
+[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
+
+case "${distributionUrl##*/}" in
+maven-mvnd-*bin.*)
+  MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
+  case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
+  *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
+  :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
+  :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
+  :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
+  *)
+    echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
+    distributionPlatform=linux-amd64
+    ;;
+  esac
+  distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
+  ;;
+maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
+*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
+esac
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
+[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
+distributionUrlName="${distributionUrl##*/}"
+distributionUrlNameMain="${distributionUrlName%.*}"
+distributionUrlNameMain="${distributionUrlNameMain%-bin}"
+MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
+MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
+
+exec_maven() {
+  unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
+  exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
+}
+
+if [ -d "$MAVEN_HOME" ]; then
+  verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+  exec_maven "$@"
+fi
+
+case "${distributionUrl-}" in
+*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
+*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
+esac
+
+# prepare tmp dir
+if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
+  clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
+  trap clean HUP INT TERM EXIT
+else
+  die "cannot create temp dir"
+fi
+
+mkdir -p -- "${MAVEN_HOME%/*}"
+
+# Download and Install Apache Maven
+verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+verbose "Downloading from: $distributionUrl"
+verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+# select .zip or .tar.gz
+if ! command -v unzip >/dev/null; then
+  distributionUrl="${distributionUrl%.zip}.tar.gz"
+  distributionUrlName="${distributionUrl##*/}"
+fi
+
+# verbose opt
+__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
+[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
+
+# normalize http auth
+case "${MVNW_PASSWORD:+has-password}" in
+'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+esac
+
+if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
+  verbose "Found wget ... using wget"
+  wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
+elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
+  verbose "Found curl ... using curl"
+  curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
+elif set_java_home; then
+  verbose "Falling back to use Java to download"
+  javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
+  targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
+  cat >"$javaSource" <<-END
+	public class Downloader extends java.net.Authenticator
+	{
+	  protected java.net.PasswordAuthentication getPasswordAuthentication()
+	  {
+	    return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
+	  }
+	  public static void main( String[] args ) throws Exception
+	  {
+	    setDefault( new Downloader() );
+	    java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
+	  }
+	}
+	END
+  # For Cygwin/MinGW, switch paths to Windows format before running javac and java
+  verbose " - Compiling Downloader.java ..."
+  "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
+  verbose " - Running Downloader.java ..."
+  "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
+fi
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+if [ -n "${distributionSha256Sum-}" ]; then
+  distributionSha256Result=false
+  if [ "$MVN_CMD" = mvnd.sh ]; then
+    echo "Checksum validation is not supported for maven-mvnd." >&2
+    echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+    exit 1
+  elif command -v sha256sum >/dev/null; then
+    if echo "$distributionSha256Sum  $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
+      distributionSha256Result=true
+    fi
+  elif command -v shasum >/dev/null; then
+    if echo "$distributionSha256Sum  $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
+      distributionSha256Result=true
+    fi
+  else
+    echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
+    echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+    exit 1
+  fi
+  if [ $distributionSha256Result = false ]; then
+    echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
+    echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
+    exit 1
+  fi
+fi
+
+# unzip and move
+if command -v unzip >/dev/null; then
+  unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
+else
+  tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
+fi
+printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
+mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
+
+clean || :
+exec_maven "$@"

+ 149 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/mvnw.cmd

@@ -0,0 +1,149 @@
+<# : batch portion
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.3.2
+@REM
+@REM Optional ENV vars
+@REM   MVNW_REPOURL - repo url base for downloading maven distribution
+@REM   MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+@REM   MVNW_VERBOSE - true: enable verbose log; others: silence the output
+@REM ----------------------------------------------------------------------------
+
+@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
+@SET __MVNW_CMD__=
+@SET __MVNW_ERROR__=
+@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
+@SET PSModulePath=
+@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
+  IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
+)
+@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
+@SET __MVNW_PSMODULEP_SAVE=
+@SET __MVNW_ARG0_NAME__=
+@SET MVNW_USERNAME=
+@SET MVNW_PASSWORD=
+@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
+@echo Cannot start maven from wrapper >&2 && exit /b 1
+@GOTO :EOF
+: end batch / begin powershell #>
+
+$ErrorActionPreference = "Stop"
+if ($env:MVNW_VERBOSE -eq "true") {
+  $VerbosePreference = "Continue"
+}
+
+# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
+$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
+if (!$distributionUrl) {
+  Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+}
+
+switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
+  "maven-mvnd-*" {
+    $USE_MVND = $true
+    $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
+    $MVN_CMD = "mvnd.cmd"
+    break
+  }
+  default {
+    $USE_MVND = $false
+    $MVN_CMD = $script -replace '^mvnw','mvn'
+    break
+  }
+}
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
+if ($env:MVNW_REPOURL) {
+  $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
+  $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
+}
+$distributionUrlName = $distributionUrl -replace '^.*/',''
+$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
+$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
+if ($env:MAVEN_USER_HOME) {
+  $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
+}
+$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
+$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
+
+if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
+  Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+  Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
+  exit $?
+}
+
+if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
+  Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
+}
+
+# prepare tmp dir
+$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
+$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
+$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
+trap {
+  if ($TMP_DOWNLOAD_DIR.Exists) {
+    try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+    catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+  }
+}
+
+New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
+
+# Download and Install Apache Maven
+Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+Write-Verbose "Downloading from: $distributionUrl"
+Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+$webclient = New-Object System.Net.WebClient
+if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
+  $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
+}
+[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
+if ($distributionSha256Sum) {
+  if ($USE_MVND) {
+    Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
+  }
+  Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
+  if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
+    Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
+  }
+}
+
+# unzip and move
+Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
+Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
+try {
+  Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
+} catch {
+  if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
+    Write-Error "fail to move MAVEN_HOME"
+  }
+} finally {
+  try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+  catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+}
+
+Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"

+ 121 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/pom.xml

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.5.6</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+
+    <groupId>com.management</groupId>
+    <artifactId>management-crm-qrcodeNew</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>management-crm-qrcodeNew</name>
+    <description>management-crm-qrcodeNew</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+    <dependencies>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.7</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.16.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>2.1.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.10</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.1.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>10.2.1.jre8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.12.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.12.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 28 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/CollectdataApplication.java

@@ -0,0 +1,28 @@
+package com.management.collectdata;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.web.client.RestTemplate;
+
+@SpringBootApplication
+@MapperScan("com.management.collectdata.mapper")
+@EnableTransactionManagement //开启事务支持
+@EnableAsync
+@EnableScheduling
+public class CollectdataApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(CollectdataApplication.class, args);
+    }
+
+
+    @Bean(name = "redisTemplate")
+    RestTemplate restTemplate(){
+        return new RestTemplate();
+    }
+
+}

+ 19 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/config/PropertyMsg.java

@@ -0,0 +1,19 @@
+package com.management.collectdata.config;
+
+import java.lang.annotation.*;
+
+/**
+ *  属性信息注解,仅仅可以用于域声明
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Inherited
+public @interface PropertyMsg {
+    /**
+     * 提示语,用于标记哪个字段发生变更
+     *
+     * @return 提示语
+     */
+    String value();
+}

+ 312 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/controller/WechatCallbackController.java

@@ -0,0 +1,312 @@
+package com.management.collectdata.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.management.collectdata.entity.*;
+import com.management.collectdata.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/wechat")
+@Slf4j
+public class WechatCallbackController {
+    private final String TOKEN = "FireRockCRM2025";
+
+    @Resource
+    private MiniBindUserService miniBindUserService;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private CustomService customService;
+
+    @Resource
+    private RestTemplate restTemplate;
+
+    @Resource
+    private WechatAccountService wechatAccountService;
+
+    @Resource
+    private BusinessOpportunityService businessOpportunityService;
+
+    @Value(value = "${wxqr.app_id}")
+    private String appId;
+
+    @Value(value = "${wxqr.app_secret}")
+    private String appsecret;
+
+    private final ObjectMapper objectMapper = new ObjectMapper();
+
+    // 微信配置验证接口(GET请求)
+    @GetMapping("/callback")
+    public String validate(@RequestParam("signature") String signature,
+                           @RequestParam("timestamp") String timestamp,
+                           @RequestParam("nonce") String nonce,
+                           @RequestParam("echostr") String echostr) {
+        log.info("进入了微信配置验证接口");
+
+        // 1. 将Token、timestamp、nonce按字典序排序
+        String[] arr = new String[]{TOKEN, timestamp, nonce};
+        Arrays.sort(arr);
+
+        // 2. 拼接后SHA1加密
+        String joined = String.join("", arr);
+        String calculatedSignature = DigestUtils.sha1Hex(joined);
+
+        // 3. 验证签名
+        if (calculatedSignature.equals(signature)) {
+            log.info("Invalid signature==>GET请求验证签名成功");
+            return echostr; // 验证成功返回echostr
+        }
+        log.info("Invalid signature==>GET请求验证失败");
+        return "Invalid signature"; // 验证失败
+    }
+
+    @PostMapping(produces = "application/xml;charset=UTF-8",value = "/callback")
+    public String handleMessage(@RequestBody String xmlData) {
+        log.info("接收到微信消息/事件:\n{}", xmlData);
+        try {
+            Document document = DocumentHelper.parseText(xmlData);
+            Element root = document.getRootElement();
+
+            String msgType = root.elementText("MsgType");
+            if (!"event".equals(msgType)) {
+                return successResponse(root);
+            }
+
+            String event = root.elementText("Event");
+            String openId = root.elementText("FromUserName");
+
+            switch (event) {
+                case "subscribe": // 关注事件
+                    log.info("用户关注: OpenID={}", openId);
+                    handleSubscribe(openId);
+                    return buildWelcomeMessage(root);
+
+                case "unsubscribe": // 取消关注事件
+                    log.info("用户取消关注: OpenID={}", openId);
+                    handleUnsubscribe(openId);
+                    return successResponse(root);
+
+                case "SCAN": // 扫码事件(已关注用户)
+                    log.info("已关注用户扫码: OpenID={}", openId);
+                    handleScan(openId);
+                    return successResponse(root);
+
+                default:
+                    log.info("忽略的事件类型: {}", event);
+                    return successResponse(root);
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("回调处理逻辑失败==>"+e.getMessage());
+            return "";
+        }
+    }
+
+
+    private void handleSubscribe(String openId) {
+        // 实现用户关注的业务逻辑
+        log.info("处理用户关注逻辑: {}", openId);
+        Map<String, Object> userInfo = getUserInfo(openId, null);
+        log.info("返回的userInfo信息==>"+userInfo.toString());
+        if (userInfo.get("unionid") != null) {
+            String unionid = (String) userInfo.get("unionid");
+            List<MiniBindUser> miniBindUserList = miniBindUserService.list(new QueryWrapper<MiniBindUser>().eq("unionid",unionid ));
+            if (!miniBindUserList.isEmpty()) {
+                if (customService.count(new QueryWrapper<Custom>().eq("custom_name", unionid))==0){
+                    MiniBindUser miniBindUser = miniBindUserList.get(0);
+                    Custom custom = new Custom();
+                    custom.setCustomName(unionid);//用户的openId
+                    custom.setIsDelete(0);
+                    custom.setCreateTime(new Date());
+                    if (StringUtils.isNotEmpty(miniBindUser.getUserId())) {
+                        custom.setInchargerId(miniBindUser.getUserId());
+                        User user = userService.getById(miniBindUser.getUserId());
+                        custom.setCompanyId(user != null ? user.getCompanyId() : null);
+                        customService.save(custom);
+                        log.info("新增客户成功");
+
+                        BusinessOpportunity opportunity = new BusinessOpportunity();
+                        opportunity.setCompanyId(user != null ? user.getCompanyId() : null);
+                        opportunity.setIsDelete(0);
+                        opportunity.setCreateTime(new Date());
+                        opportunity.setInchargerId(miniBindUser.getUserId());
+                        opportunity.setName("扫码关注客户:"+unionid);
+                        businessOpportunityService.save(opportunity);
+                    }
+
+
+                }else {
+                    log.info(unionid+":系统中已存在对应的客户");
+                }
+            }else {
+                log.info(unionid+":对应的客户,暂未绑定相关的销售人员");
+            }
+        }else {
+            log.info("unionid为空");
+        }
+
+    }
+
+    private void handleUnsubscribe(String openId) {
+        // 实现用户取消关注的业务逻辑
+//        customService.remove(new QueryWrapper<Custom>().eq("custom_name", openId));
+        // 实现用户关注的业务逻辑
+        log.info("处理用户取消关注逻辑: {}", openId);
+        Map<String, Object> userInfo = getUserInfo(openId, null);
+        log.info("返回的userInfo信息==>"+userInfo.toString());
+        if (userInfo.get("unionid") != null) {
+            String unionid = (String) userInfo.get("unionid");
+            customService.remove(new QueryWrapper<Custom>().eq("custom_name", unionid));
+            businessOpportunityService.remove(new QueryWrapper<BusinessOpportunity>().like("name", unionid));
+        }
+        log.info("处理用户取消关注逻辑: {}", openId);
+    }
+
+    private void handleScan(String openId) {
+        log.info("处理用户扫码逻辑: {}", openId);
+    }
+
+
+    // ========== 响应消息构建方法 ==========
+    private String successResponse(Element root) {
+        return String.format(
+                "<xml>" +
+                        "<ToUserName><![CDATA[%s]]></ToUserName>" +
+                        "<FromUserName><![CDATA[%s]]></FromUserName>" +
+                        "<CreateTime>%d</CreateTime>" +
+                        "<MsgType><![CDATA[text]]></MsgType>" +
+                        "<Content><![CDATA[success]]></Content>" +
+                        "</xml>",
+                root.elementText("FromUserName"),
+                root.elementText("ToUserName"),
+                System.currentTimeMillis() / 1000);
+    }
+
+    private String errorResponse() {
+        return "error";
+    }
+
+    private String buildWelcomeMessage(Element root) {
+        return String.format(
+                "<xml>" +
+                        "<ToUserName><![CDATA[%s]]></ToUserName>" +
+                        "<FromUserName><![CDATA[%s]]></FromUserName>" +
+                        "<CreateTime>%d</CreateTime>" +
+                        "<MsgType><![CDATA[text]]></MsgType>" +
+                        "<Content><![CDATA[感谢您的关注!]]></Content>" +
+                        "</xml>",
+                root.elementText("FromUserName"),
+                root.elementText("ToUserName"),
+                System.currentTimeMillis() / 1000);
+    }
+
+    /*private String buildWelcomeMessage(Element root) {
+        return String.format(
+                "<xml>" +
+                        "<ToUserName><![CDATA[%s]]></ToUserName>" +
+                        "<FromUserName><![CDATA[%s]]></FromUserName>" +
+                        "<CreateTime>%d</CreateTime>" +
+                        "<MsgType><![CDATA[news]]></MsgType>" +
+                        "<ArticleCount>1</ArticleCount>" +
+                        "<Articles>" +
+                        "<item>" +
+                        "<Title><![CDATA[欢迎关注]]></Title>" +  // 必须字段
+                        "<Description><![CDATA[点击关注公众号]]></Description>" +
+                        "<Url><![CDATA[https://mobcrm.ttkuaiban.com/guideAttentionToOfficialAccount]]></Url>" +
+                        "</item>" +
+                        "</Articles>" +
+                        "</xml>",
+                root.elementText("FromUserName"),
+                root.elementText("ToUserName"),
+                System.currentTimeMillis() / 1000);
+    }*/
+
+    public Map<String, Object> getUserInfo(String openId, String userId) {
+        String accessToken=null;
+        if (StringUtils.isNotEmpty(userId)){
+            accessToken= getAccessToken(userId);
+        }else {
+            accessToken= getAccessToken(appId,appsecret);
+            log.info("accessToken==>"+accessToken);
+        }
+        if (accessToken == null) {
+            return null;
+        }
+
+        String url = String.format(
+                "https://api.weixin.qq.com/cgi-bin/user/info?access_token=%s&openid=%s&lang=zh_CN",
+                accessToken, openId);
+
+        try (CloseableHttpClient client = HttpClients.createDefault()) {
+            HttpGet request = new HttpGet(url);
+            String response = EntityUtils.toString(client.execute(request).getEntity());
+            log.info("获取用户信息===>"+response);
+            return objectMapper.readValue(response, Map.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("获取用户信息失败==>"+e.getMessage());
+            return null;
+        }
+    }
+
+    private String getAccessToken(String userId) {
+        User user = userService.getById(userId);
+        if (user==null){
+            log.info("获取企业的微信Token时,未获取该用户");
+            return null;
+        }else {
+            WechatAccount wechatAccount = wechatAccountService.getOne(new QueryWrapper<WechatAccount>().eq("company_id", user.getCompanyId()));
+            if (wechatAccount==null){
+                log.info("该公司没有配置公众号相关的参数");
+                return null;
+            }
+            return wechatAccountService.getAccessToken(user.getCompanyId(), wechatAccount.getAppId());
+        }
+    }
+
+    private String getAccessToken() {
+        WechatAccount wechatAccount = wechatAccountService.list().get(0);
+        if (wechatAccount==null){
+            log.info("该公司没有配置公众号相关的参数");
+            return null;
+        }
+        return wechatAccountService.getAccessToken(wechatAccount.getCompanyId(), wechatAccount.getAppId());
+    }
+
+    public String getAccessToken(String appId, String appSecret) {
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appId + "&secret=" + appSecret;
+        log.info("url==>"+url);
+        try {
+            ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
+            JSONObject json = JSONObject.parseObject(response.getBody());
+            return json.getString("access_token");
+        } catch (Exception e) {
+            throw new RuntimeException("获取access_token失败", e);
+        }
+    }
+
+}

+ 50 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AIQuestion.java

@@ -0,0 +1,50 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ai_question")
+public class AIQuestion extends Model<AIQuestion> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "question_id",type = IdType.AUTO)
+    private Integer questionId;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 会话名称
+     */
+    @TableField("name")
+    private String name;
+
+
+}

+ 86 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AIQuestionDetail.java

@@ -0,0 +1,86 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("ai_question_detail")
+public class AIQuestionDetail extends Model<AIQuestionDetail> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "detail_id",type = IdType.AUTO)
+    private Integer detailId;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("question_id")
+    private Integer questionId;
+
+    /**对话类型 0ai 1客户*/
+    @TableField("type")
+    private Integer type;
+
+    /**对话内容*/
+    @TableField("content")
+    private String content;
+
+    /**排序*/
+    @TableField("seq")
+    private Integer seq;
+
+    /**数据来源 1系统表 2自定义报表 3本地上传 4自由对话*/
+    @TableField("question_data_source")
+    private Integer questionDataSource;
+
+    /**来源内容 系统表存表名 报表存formId 文件存文件名*/
+    @TableField("source_content")
+    private String sourceContent;
+
+    /**文件路径*/
+    @TableField("url")
+    private String url;
+
+    /**
+     * 系统表查询的开始时间
+     */
+    @TableField("start_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startDate;
+
+    /**
+     * 系统表查询的结束时间
+     */
+    @TableField("end_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date endDate;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("creator_id")
+    private String creatorId;
+}

+ 70 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ActionLog.java

@@ -0,0 +1,70 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ActionLog extends Model<ActionLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 模块id
+     */
+    @TableField("item_id")
+    private Integer itemId;
+
+    /**
+     * 操作时间
+     */
+    @TableField("creat_time")
+    private Date creatTime;
+
+    /**
+     * 操作内容
+     */
+    @TableField("name")
+    private String name;
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 创建人id
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 模块代码
+     */
+    @TableField("code")
+    private String code;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 42 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AlertTime.java

@@ -0,0 +1,42 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AlertTime extends Model<AlertTime> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 提醒时间; 例如18:00
+     */
+    @TableField("alert_time")
+    private String alertTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 99 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AttachmentCenter.java

@@ -0,0 +1,99 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AttachmentCenter extends Model<AttachmentCenter> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 附件名称
+     */
+    @TableField("attachment_name")
+    private String attachmentName;
+
+    /**
+     * 服务器生成的附件
+     */
+    @TableField("server_name")
+    private String serverName;
+
+    /**
+     * 对外访问地址
+     */
+    @TableField("url")
+    private String url;
+
+    @TableField("creator_id")
+    private String creatorId;
+
+    @TableField("creator_name")
+    private String creatorName;
+
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime indate;
+
+    /**
+     * 模块id
+     */
+    @TableField("module_id")
+    private Integer moduleId;
+
+    /**
+     * 模块代码
+     */
+    @TableField("module_code")
+    private String moduleCode;
+
+    /**
+     * 文件大小
+     */
+    @TableField("size")
+    private String size;
+
+    /**
+     * 文件类型
+     */
+    @TableField("attachment_type")
+    private Integer attachmentType;
+
+    /**
+     * 文件后缀
+     */
+    @TableField("attachment_suffix")
+    private String attachmentSuffix;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 78 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditLogCenter.java

@@ -0,0 +1,78 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AuditLogCenter extends Model<AuditLogCenter> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 模块id
+     */
+    @TableField("module_id")
+    private Integer moduleId;
+
+    /**
+     * 模块编码
+     */
+    @TableField("module_code")
+    private String moduleCode;
+
+    /**
+     * 操作时间
+     */
+    @TableField("audit_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime auditTime;
+
+    /**
+     * 操作人id
+     */
+    @TableField("auditor_id")
+    private String auditorId;
+
+    /**
+     * 操作人
+     */
+    @TableField("auditor_name")
+    private String auditorName;
+
+    /**
+     * 操作内容
+     */
+    @TableField("auditor_content")
+    private String auditorContent;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 94 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditWorkflowSetting.java

@@ -0,0 +1,94 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-03-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AuditWorkflowSetting extends Model<AuditWorkflowSetting> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 要设置的部门id,针对部门设置流程
+     */
+    @TableField("dept_id")
+    private Integer deptId;
+
+    /**
+     * 指定该节点的审核人员
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 指定该节点的审核姓名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 顺序
+     */
+    @TableField("seq")
+    private Integer seq;
+
+    /**
+     * 审核部门的id
+     */
+    @TableField("audit_dept_id")
+    private Integer auditDeptId;
+
+    /**
+     * 审核部门的名称
+     */
+    @TableField("audit_dept_name")
+    private String auditDeptName;
+
+    /**
+     * 1-部门审核,0-项目负责人审核,2-指定人员审核
+     */
+    @TableField("auditor_type")
+    private Integer auditorType;
+
+    /**
+     * 是否是最终审核
+     */
+    @TableField("is_final")
+    private Integer isFinal;
+
+    /**
+     * 类型:1-请假,2-出差,3-物资采购
+     */
+    @TableField("type")
+    private Integer type;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 88 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/AuditWorkflowTimeSetting.java

@@ -0,0 +1,88 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-02-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class AuditWorkflowTimeSetting extends Model<AuditWorkflowTimeSetting> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 要设置的部门id,针对部门设置流程
+     */
+    @TableField("dept_id")
+    private Integer deptId;
+
+    /**
+     * 指定该节点的审核人员
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 指定该节点的审核姓名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 顺序
+     */
+    @TableField("seq")
+    private Integer seq;
+
+    /**
+     * 审核部门的id
+     */
+    @TableField("audit_dept_id")
+    private Integer auditDeptId;
+
+    /**
+     * 审核部门的名称
+     */
+    @TableField("audit_dept_name")
+    private String auditDeptName;
+
+    /**
+     * 1-部门审核,0-项目负责人审核
+     */
+    @TableField("is_dept_audit")
+    private Integer isDeptAudit;
+
+    /**
+     * 是否是最终审核
+     */
+    @TableField("is_final")
+    private Integer isFinal;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 47 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusObjRelation.java

@@ -0,0 +1,47 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusObjRelation extends Model<BusObjRelation> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**主表*/
+    @TableField("from_tbl")
+    private String fromTbl;
+
+    /**子表*/
+    @TableField("to_tbl")
+    private String toTbl;
+
+    /**主表字段*/
+    @TableField("from_col")
+    private String fromCol;
+
+    /**主表字段对应业务对象名称*/
+    @TableField("from_col_bus_name")
+    private String fromColBusName;
+
+    /**子表字段*/
+    @TableField("to_col")
+    private String toCol;
+
+    /**字典code对应的值*/
+    @TableField("dict_code")
+    private String dictCode;
+
+    /**是否一对多关系*/
+    @TableField("one_to_many")
+    private Integer oneToMany;
+}

+ 27 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusObject.java

@@ -0,0 +1,27 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusObject extends Model<BusObject> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**业务对象名称*/
+    @TableField("name")
+    private String name;
+
+    /**对应数据库里的表名*/
+    @TableField("tbl_name")
+    private String tblName;
+}

+ 95 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusReportStore.java

@@ -0,0 +1,95 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusReportStore extends Model<BusReportStore> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**文件类型 1文件夹 2报表*/
+    @TableField("store_type")
+    private Integer storeType;
+
+    /**名称*/
+    @TableField("store_name")
+    private String storeName;
+
+    /**父级文件夹id 默认0*/
+    @TableField("parent_store_id")
+    private Integer parentStoreId;
+
+    /**创建人id*/
+    @TableField("create_by")
+    private String createBy;
+
+    @TableField(exist = false)
+    private String createName;
+
+    /**创建时间*/
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**更新人id*/
+    @TableField("update_by")
+    private String updateBy;
+
+    @TableField(exist = false)
+    private String updateName;
+    /**更新时间*/
+    @TableField("update_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date updateTime;
+
+    /**描述*/
+    @TableField("description")
+    private String description;
+
+    /**排序*/
+    @TableField("order_item")
+    private Integer orderItem;
+
+    /**关联报表id*/
+    @TableField("relate_form_id")
+    private Integer relateFormId;
+
+    /**所属公司id*/
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private List<BusReportStore> childStoreList = new ArrayList<>();
+
+    @TableField(exist = false)
+    private String formSql;
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> deptAccessList;
+
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> userAccessList;
+
+    @TableField(exist = false)
+    private Integer privilege;
+}

+ 49 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessItemCustom.java

@@ -0,0 +1,49 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusinessItemCustom extends Model<BusinessItemCustom> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 客户id
+     */
+    @TableField("contacts_id")
+    private Integer contactsId;
+
+    /**
+     * 联系人id
+     */
+    @TableField("business_id")
+    private Integer businessId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 89 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessItemProduct.java

@@ -0,0 +1,89 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusinessItemProduct extends Model<BusinessItemProduct> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     *  
+     */
+    @TableId("id")
+    private Long id;
+
+    /**
+     * 产品id
+     */
+    @TableField("product_id")
+    private Integer productId;
+    /**
+     * 产品id
+     */
+    @TableField("inventory")
+    private Integer inventory;
+    @TableField(exist = false)
+    private String productName;
+    @TableField(exist = false)
+    private String unit;
+    @TableField("price")
+    private BigDecimal price;
+//    @TableField(exist = false)
+//    private String inventory;
+    @TableField(exist = false)
+    private String productType;
+
+    /**
+     * 商机id
+     */
+    @TableField("business_id")
+    private Integer businessId;
+
+    /**
+     * 数量
+     */
+    @TableField("quantity")
+    private Integer quantity;
+
+    /**
+     * 折扣率
+     */
+    @TableField("discount")
+    private Integer discount;
+
+    /**
+     * 合计价格
+     */
+    @TableField("total_price")
+    private BigDecimal totalPrice;
+    /**
+     * 商机售价
+     */
+    @TableField("selling_price")
+    private BigDecimal sellingPrice;
+
+
+//    @Override
+//    protected Serializable pkVal() {
+//        return this.id;
+//    }
+
+}

+ 223 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessOpportunity.java

@@ -0,0 +1,223 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-12-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusinessOpportunity extends Model<BusinessOpportunity> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String productName;
+    @TableField("clue_id")
+    private Integer clueId;
+
+    /**
+     * 商机名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 联系人id
+     */
+    @TableField("contacts_id")
+    private Integer contactsId;
+    /**
+     * 赢单\输单 理由
+     */
+    @TableField("reason")
+    private String reason;
+    @TableField(exist = false)
+    private String contactsName;
+
+    /**
+     * 客户id
+     */
+    @TableField("customer_id")
+    private Integer customerId;
+    @TableField(exist = false)
+    private String customerName;
+
+
+    /**
+     * 商机金额
+     */
+    @TableField("amount_of_money")
+    private BigDecimal amountOfMoney;
+
+    /**
+     * 预计成交日期
+     */
+    @TableField("expected_transaction_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate expectedTransactionDate;
+
+    /**
+     * 商机阶段
+     */
+    @TableField("stage_id")
+    private Integer stageId;
+
+    @TableField(exist = false)
+    private String stageValue;
+    @TableField(exist = false)
+    private String total;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+    @TableField(exist = false)
+    private String startTime;
+    @TableField(exist = false)
+    private String endTime;
+    /**
+     * 修改时间
+     */
+    @TableField("edit_time")
+    private Date editTime;
+
+    /**
+     * 创建人
+     */
+    @TableField("creator_id")
+    private String creatorId;
+    @TableField(exist = false)
+    private String creatorName;
+    /**
+     * 负责人
+     */
+    @TableField("incharger_id")
+    private String inchargerId;
+    @TableField(exist = false)
+    private String inchargerName;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    @TableField(exist = false)
+    private String ids;
+    @TableField(exist = false)
+    private BigDecimal finalPrice;
+
+    /**
+     * 回收站(是否删除) 0-否 1-是
+     */
+    @TableField("is_delete")
+    private Integer isDelete;
+    @TableField(exist = false)
+    private Integer pageIndex;
+    @TableField(exist = false)
+    private Integer pageFrom;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate1")
+    private String plate1;
+    @TableField(exist = false)
+    private String userId;
+    @TableField(exist = false)
+    private Integer productId;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate2")
+    private String plate2;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate3")
+    private String plate3;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate4")
+    private String plate4;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate5")
+    private String plate5;
+
+    /**是否需要置顶 0/Flase 1/True*/
+    @TableField("need_pin")
+    private Boolean needPin;
+
+    /**被置顶时间*/
+    @TableField("pin_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date pinTime;
+
+    /**阶段颜色*/
+    @TableField(exist = false)
+    private String stageColor;
+
+
+//    @JsonDeserialize(using = BusinessItemProductListDeserializer.class)
+    @TableField(exist = false)
+    private String businessItemProductList;
+    @TableField(exist = false)
+    private List<BusinessItemProduct> businessItemProducts;
+    @TableField(exist = false)
+    private List<ActionLog> actionLogList;
+    @TableField(exist = false)
+    private List<Task> taskList;
+    @TableField(exist = false)
+    private List<UploadFile> uploadFilePList;
+
+    /**
+     * 排序
+     */
+    @TableField("seq")
+    private Integer seq;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 74 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessProduct.java

@@ -0,0 +1,74 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusinessProduct extends Model<BusinessProduct> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 产品id
+     */
+    @TableField("product_id")
+    private Integer productId;
+
+    /**
+     * 商机id
+     */
+    @TableField("business_id")
+    private Integer businessId;
+
+    /**
+     * 售价
+     */
+    @TableField("selling_price")
+    private BigDecimal sellingPrice;
+
+    /**
+     * 数量
+     */
+    @TableField("count")
+    private Integer count;
+
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private BigDecimal discount;
+
+    /**
+     * 合计
+     */
+    @TableField("total")
+    private BigDecimal total;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 183 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BusinessTrip.java

@@ -0,0 +1,183 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-12-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusinessTrip extends Model<BusinessTrip> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 申请人id
+     */
+    @TableField("owner_id")
+    private String ownerId;
+
+    /**
+     * 申请人姓名
+     */
+    @TableField("owner_name")
+    private String ownerName;
+
+    /**
+     * 出差事由
+     */
+    @TableField("reason")
+    private String reason;
+
+    /**
+     * 开始时间
+     */
+    @TableField("start_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startDate;
+
+    /**
+     * 结束时间
+     */
+    @TableField("end_date")
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    /**
+     * 0-飞机,1-火车,2-汽车,3-轮船,4-其他
+     */
+    @TableField("way")
+    private Integer way;
+
+    /**
+     * 出发城市
+     */
+    @TableField("city_from")
+    private String cityFrom;
+
+    /**
+     * 目的城市
+     */
+    @TableField("city_to")
+    private String cityTo;
+
+    /**
+     * 0-单程,1-往返
+     */
+    @TableField("go_back")
+    private Integer goBack;
+
+    /**
+     * 出差天数
+     */
+    @TableField("day_count")
+    private Integer dayCount;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 0-审核通过,1-待审核,2-驳回,3-已撤回
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 驳回原因
+     */
+    @TableField("deny_reason")
+    private String denyReason;
+
+    /**
+     * 申请时间
+     */
+    @TableField("indate")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime indate;
+
+    /**
+     * 是否已经关联
+     */
+    @TableField("is_linked")
+    private Integer isLinked;
+
+    /**
+     * 钉钉审批实例procInst_id
+     */
+    @TableField("procinst_id")
+    private String procinstId;
+
+    /**
+     * 钉钉审批实例的审批通过时间
+     */
+    @TableField("gmt_finished")
+    private String gmtFinished;
+
+    /**
+     * 审核人id
+     */
+    @TableField("auditor_id")
+    private String auditorId;
+
+    /**
+     * 审核人姓名
+     */
+    @TableField("auditor_name")
+    private String auditorName;
+
+    /**
+     * 1-部门审核,2-指定人员审核
+     */
+    @TableField("auditor_type")
+    private Integer auditorType;
+
+    /**
+     * 当前审核节点id
+     */
+    @TableField("cur_audit_setting_id")
+    private Integer curAuditSettingId;
+
+    @TableField(exist = false)
+    private String departmentName;
+
+    @TableField(exist = false)
+    List<BustripProject> projectList;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 68 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BustripAuditLog.java

@@ -0,0 +1,68 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-12-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BustripAuditLog extends Model<BustripAuditLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 表单id
+     */
+    @TableField("sheet_id")
+    private Integer sheetId;
+
+    /**
+     * 审批节点id
+     */
+    @TableField("audit_node_id")
+    private Integer auditNodeId;
+
+    @TableField("auditor_id")
+    private String auditorId;
+
+    @TableField("auditor_name")
+    private String auditorName;
+
+    /**
+     * 是否审核通过,1-通过,0-驳回
+     */
+    @TableField("is_pass")
+    private Integer isPass;
+
+    @TableField("indate")
+    private LocalDateTime indate;
+
+    @TableField("deny_reason")
+    private String denyReason;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 82 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/BustripProject.java

@@ -0,0 +1,82 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BustripProject extends Model<BustripProject> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 出差记录id
+     */
+    @TableField("bustrip_id")
+    private Integer bustripId;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 开始日期
+     */
+    @TableField("start_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startDate;
+
+    /**
+     * 结束日期
+     */
+    @TableField("end_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    /**
+     * 自定义维度id
+     */
+    @TableField("degree_id")
+    private Integer degreeId;
+
+    /**
+     * 自定义维度内容
+     */
+    @TableField("degree_name")
+    private String degreeName;
+    @TableField(exist = false)
+    private String projectName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 57 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CategoryRatioTblSetting.java

@@ -0,0 +1,57 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CategoryRatioTblSetting extends Model<CategoryRatioTblSetting> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id做主键
+     */
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 检测的项目分类id
+     */
+    @TableField("monitor_category_id")
+    private Integer monitorCategoryId;
+
+    /**
+     * 百分比
+     */
+    @TableField("ratio")
+    private Integer ratio;
+
+    /**
+     * 0-低于,1-高于
+     */
+    @TableField("more_or_less")
+    private Integer moreOrLess;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 206 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Clue.java

@@ -0,0 +1,206 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@Setter
+@Getter
+public class Clue extends Model<Clue> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;/**
+     * 公司id
+     */
+    @TableField("is_bo")
+    private Integer isBo;
+    //创建人
+    @TableField("create_id")
+    private String createId;
+    @TableField(exist = false)
+    private String createName;
+
+    /**
+     * 线索名称
+     */
+    @TableField("clue_name")
+    private String clueName;
+
+    @TableField(exist = false)
+    private String companyName;
+
+    /**
+     * 线索来源
+     */
+    @TableField("clue_source_id")
+    private Integer clueSourceId;
+    @TableField(exist = false)
+    private String clueSourceValue;
+
+    /**
+     * 电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 客户行业
+     */
+    @TableField("customer_industry_id")
+    private Integer customerIndustryId;
+    @TableField(exist = false)
+    private String customerIndustryValue;
+
+    /**
+     * 客户级别
+     */
+    @TableField("customer_level_id")
+    private Integer customerLevelId;
+    @TableField(exist = false)
+    private String customerLevelValue;
+
+    /**
+     * 地址
+     */
+    @TableField("address")
+    private String address;
+    @TableField(exist = false)
+    private String ids;
+
+
+    /**
+     * 负责人id
+     */
+    @TableField("incharger_id")
+    private String inchargerId;
+    @TableField(exist = false)
+    private String inchargerName;
+
+
+//    private String tempInchargerId;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 回收站(是否删除) 0-否 1-是
+     */
+    @TableField("is_delete")
+    private Integer isDelete;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate1")
+    private String plate1;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate2")
+    private String plate2;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate3")
+    private String plate3;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate4")
+    private String plate4;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate5")
+    private String plate5;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 是否需要置顶 0/Flase 1/True
+     */
+    @TableField("need_pin")
+    private Boolean needPin;
+
+    /**
+     * 被置顶时间
+     */
+    @TableField("pin_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date pinTime;
+
+
+    @TableField(exist = false)
+    private String startTime;
+    @TableField(exist = false)
+    private String endTime;
+    @TableField(exist = false)
+    private Integer pageIndex;
+    @TableField(exist = false)
+    private Integer pageFrom;
+    @TableField(exist = false)
+    private List<ActionLog> clueLogList;
+    @TableField(exist = false)
+    private List<UploadFile> files;
+    @TableField(exist = false)
+    private List<Task> taskList;
+    @TableField(exist = false)
+    private Integer isDesc;
+    @TableField(exist = false)
+    private String userId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 55 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ClueLog.java

@@ -0,0 +1,55 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ClueLog extends Model<ClueLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("id")
+    private Long id;
+
+    @TableField("clue_id")
+    private Integer clueId;
+
+    /**
+     * 操作时间
+     */
+    @TableField("creat_time")
+    private Date creatTime;
+
+    /**
+     * 操作内容
+     */
+    @TableField("name")
+    private String name;
+
+    @TableField("user_id")
+    private String userId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 67 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ClueUploadfile.java

@@ -0,0 +1,67 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ClueUploadfile extends Model<ClueUploadfile> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 文件地址
+     */
+    @TableField("path")
+    private String path;
+    /**
+     * 上传人
+     */
+    @TableField("create_id")
+    private String createId;
+
+    /**
+     * 线索id
+     */
+    @TableField("clue_id")
+    private Integer clueId;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 36 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ColumnFixTrans.java

@@ -0,0 +1,36 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ColumnFixTrans extends Model<ColumnFixTrans> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**表名*/
+    @TableField("tbl_name")
+    private String tblName;
+
+    /**字段名*/
+    @TableField("col_name")
+    private String colName;
+
+    /**值*/
+    @TableField("col_val")
+    private String colVal;
+
+    /**值对应含义*/
+    @TableField("val_mean")
+    private String valMean;
+
+}

+ 55 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CommonUse.java

@@ -0,0 +1,55 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CommonUse extends Model<CommonUse> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 新建设置名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 新建设置路由
+     */
+    @TableField("router")
+    private String router;
+
+    @TableField("seq")
+    private Integer seq;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 175 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Company.java

@@ -0,0 +1,175 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-12-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Company extends Model<Company> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司表主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司名
+     */
+    @TableField("company_name")
+    private String companyName;
+
+    /**
+     * 公司规模
+     */
+    @TableField("staff_count_max")
+    private Integer staffCountMax;
+
+    /**
+     * 会员到期时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField("expiration_date")
+    private LocalDateTime expirationDate;
+
+    /**
+     * 是否签约
+     */
+    @TableField("set_meal")
+    private Integer setMeal;
+
+    /**
+     * 工时平台
+     */
+    @TableField("package_worktime")
+    private Integer packageWorktime;
+
+    /**
+     * 项目协作平台
+     */
+    @TableField("package_project")
+    private Integer packageProject;
+
+    /**
+     * 合同平台
+     */
+    @TableField("package_contract")
+    private Integer packageContract;
+
+    /**
+     * OA平台;请假,出差等
+     */
+    @TableField("package_oa")
+    private Integer packageOa;
+
+    /**
+     * 生产车间平台
+     */
+    @TableField("package_etimecard")
+    private Integer packageEtimecard;
+
+    /**
+     * 费用报销
+     */
+    @TableField("package_expense")
+    private Integer packageExpense;
+
+    /**
+     * 客户管理
+     */
+    @TableField("package_customer")
+    private Integer packageCustomer;
+
+    /**
+     * 工程专业
+     */
+    @TableField("package_engineering")
+    private Integer packageEngineering;
+
+    /**
+     * 简单表格版本
+     */
+    @TableField("package_simple")
+    private Integer packageSimple;
+
+    /**
+     * 财务核算成本
+     */
+    @TableField("package_finance")
+    private Integer packageFinance;
+
+    /**
+     * 供应商模块
+     */
+    @TableField("package_provider")
+    private Integer packageProvider;
+
+    /**
+     * 是否是国际化版本
+     */
+    @TableField("is_international")
+    private Integer isInternational;
+
+    /**
+     * 创建日期
+     */
+    @TableField("create_date")
+    private LocalDateTime createDate;
+
+    /**
+     * 注册来源
+     */
+    @TableField("reg_from")
+    private String regFrom;
+
+
+    /**
+     * 非项目采用简易模式,非项目工时由部门主要负责人审核
+     */
+    @TableField("non_project_simple")
+    private Integer nonProjectSimple;
+
+    /**
+     * 是否存在商机模式 默认存在1, 不存在0
+     */
+    @TableField("is_exist_business")
+    private Integer isExistBusiness;
+
+    /**版本控制 1专业 2旗舰*/
+    @TableField("version_control")
+    private Integer versionControl;
+
+    /**
+     * 默认0, 1表示简易模式
+     */
+    @TableField("is_simple")
+    private Integer isSimple;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 49 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyCert.java

@@ -0,0 +1,49 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-04-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyCert extends Model<CompanyCert> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 证书名称
+     */
+    @TableField("name")
+    private String name;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 56 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyCustomerContact.java

@@ -0,0 +1,56 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyCustomerContact extends Model<CompanyCustomerContact> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 是否联系过
+     */
+    @TableField("contacted")
+    private Boolean contacted;
+
+    /**
+     * 客户反馈
+     */
+    @TableField("feedback")
+    private String feedback;
+
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime indate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 125 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyDingding.java

@@ -0,0 +1,125 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyDingding extends Model<CompanyDingding> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 钉钉企业id
+     */
+    @TableId("corpid")
+    private String corpid;
+
+    @TableField("corp_name")
+    private String corpName;
+
+    @TableField("auth_user_id")
+    private String authUserId;
+
+    @TableField("indate")
+    private LocalDateTime indate;
+
+    /**
+     * 内部系统公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("access_token")
+    private String accessToken;
+
+    /**
+     * accessToken过期时间
+     */
+    @TableField("expire_time")
+    private LocalDateTime expireTime;
+
+    /**
+     * 企业应用id
+     */
+    @TableField("agent_id")
+    private Long agentId;
+
+    /**
+     * 企业内部应用appkey
+     */
+    @TableField("inner_appkey")
+    private String innerAppkey;
+
+    /**
+     * 企业内部应用appsecret
+     */
+    @TableField("inner_appsecret")
+    private String innerAppsecret;
+
+    /**
+     * 企业内部应用token
+     */
+    @TableField("inner_token")
+    private String innerToken;
+
+    /**
+     * 企业内部应用token过期时间
+     */
+    @TableField("inner_expire_time")
+    private LocalDateTime innerExpireTime;
+
+    /**
+     * 企业链接地址
+     */
+    @TableField("web_url")
+    private String webUrl;
+
+    /**
+     * pc端企业链接地址
+     */
+    @TableField("pc_web_url")
+    private String pcWebUrl;
+
+    /**
+     * 具有OA审批权限的管理员钉钉id
+     */
+    @TableField("oa_manager_dingid")
+    private String oaManagerDingid;
+
+    /**
+     * 与钉钉通讯录结构一致
+     */
+    @TableField("sync_contact")
+    private Integer syncContact;
+
+    /**
+     * 通讯录是否需要转译
+     */
+//    @TableField("contact_need_translate")
+    @TableField(exist = false)
+    private Integer contactNeedTranslate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.corpid;
+    }
+
+}

+ 44 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CompanyReport.java

@@ -0,0 +1,44 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CompanyReport extends Model<CompanyReport> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 报表id
+     */
+    @TableField("report_form_id")
+    private Integer reportFormId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}

+ 59 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactSyncLog.java

@@ -0,0 +1,59 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContactSyncLog extends Model<ContactSyncLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 1-成功,0失败
+     */
+    @TableField("result")
+    private Integer result;
+
+    /**
+     * 同步记录内容,失败原因
+     */
+    @TableField("msg")
+    private String msg;
+
+    /**
+     * 时间戳
+     */
+    @TableField("indate")
+    private LocalDateTime indate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 170 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Contacts.java

@@ -0,0 +1,170 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-06-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Contacts extends Model<Contacts> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 性别: 0女  1男
+     */
+    @TableField("sex")
+    private Integer sex;
+    @TableField(exist = false)
+    private String sexValue;
+
+    /**
+     * 联系人名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 客户id
+     */
+    @TableField("custom_id")
+    private Integer customId;
+
+    /**
+     * 联系人邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 联系人电话
+     */
+    @TableField("phone")
+    private String phone;
+
+    /**
+     * 负责人
+     */
+    @TableField("owner_id")
+    private String ownerId;
+    @TableField(exist = false)
+    private String ownerName;
+
+    /**
+     * 创建人
+     */
+    @TableField("creator_id")
+    private String creatorId;
+    @TableField(exist = false)
+    private String creatorName;
+
+    /**
+     * 地址
+     */
+    @TableField("address")
+    private String address;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 回收站(是否删除) 0-否 1-是
+     */
+    @TableField("is_delete")
+    private Integer isDelete;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime createTime;
+
+    /**
+     * 职务
+     */
+    @TableField("position")
+    private String position;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate1")
+    private String plate1;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate2")
+    private String plate2;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate3")
+    private String plate3;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate4")
+    private String plate4;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate5")
+    private String plate5;
+
+    /**
+     * 是否为常用联系人 0否1是
+     */
+    @TableField("is_frequent")
+    private Integer isFrequent;
+
+    /**是否需要置顶 0/Flase 1/True*/
+    @TableField("need_pin")
+    private Boolean needPin;
+
+    /**被置顶时间*/
+    @TableField("pin_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date pinTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 112 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactsDocument.java

@@ -0,0 +1,112 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContactsDocument extends Model<ContactsDocument> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 文件名
+     */
+    @TableField("document_name")
+    private String documentName;
+
+    /**
+     * 服务器生成的文件名
+     */
+    @TableField("server_name")
+    private String serverName;
+
+    /**
+     * 对外访问地址
+     */
+    @TableField("url")
+    private String url;
+
+    /**
+     * 创建人id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 创建人姓名
+     */
+    @TableField("creator_name")
+    private String creatorName;
+
+    /**
+     * 创建时间
+     */
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime indate;
+
+    /**
+     * 联系人id
+     */
+    @TableField("contacts_id")
+    private Integer contactsId;
+
+    @TableField("folder_id")
+    private Integer folderId;
+
+    /**
+     * 文件大小
+     */
+    @TableField("size")
+    private String size;
+
+    /**
+     * 文件类型
+     * 0-图片文件,1-文本文件 ,2-压缩文件,3-txt,4-excle文件,5-压缩文件,6-视频文件,7-音频文件
+     */
+    @TableField("document_type")
+    private Integer documentType;
+
+    /**
+     * 文件状态0-存在,1-删除
+     */
+    @TableField("is_deleted")
+    private Integer isDeleted;
+
+    /**
+     * 是否是文件夹
+     */
+    @TableField("is_folder")
+    private Integer isFolder;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 75 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContactsLog.java

@@ -0,0 +1,75 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContactsLog extends Model<ContactsLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 联系人的id
+     */
+    @TableField("contacts_id")
+    private Integer contactsId;
+
+    /**
+     * 操作时间
+     */
+    @TableField("operate_date")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime operateDate;
+
+    /**
+     * 操作者id
+     */
+    @TableField("operate_id")
+    private String operateId;
+
+    /**
+     * 操作信息
+     */
+    @TableField("msg")
+    private String msg;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String operateName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 236 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Contract.java

@@ -0,0 +1,236 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Contract extends Model<Contract> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 合同表主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 创建者姓名
+     */
+    @TableField(exist = false)
+    private String creatorName;
+
+    /**
+     * 创建者wxCorpId
+     */
+    @TableField(exist = false)
+    private String creatorWxCorpId;
+
+    /**
+     * 创建者id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+
+    /**
+     * 合同开始时间
+     */
+    @TableField("start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate startDate;
+
+    /**
+     * 合同结束时间
+     */
+    @TableField("end_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate endDate;
+
+    /**
+     * 合同编号
+     */
+    @TableField("number")
+    private String number;
+
+    /**
+     * 关联项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 合同名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 金额
+     */
+    @TableField("amounts")
+    private BigDecimal amounts;
+
+    /**
+     * 合同类型的id
+     */
+    @TableField("type_id")
+    private Integer typeId;
+
+    /**
+     * 合同类型的名称
+     */
+    @TableField(exist = false)
+    private String typeName;
+
+
+    /**
+     * 审核人Id
+     */
+    @TableField("checkerId")
+    private String checkerId;
+
+    /**
+     * 0-审核通过,1-待审核,2-驳回
+     */
+    @TableField("status")
+    private Integer status;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate indate;
+
+    /**
+     * 备注
+     */
+    @TableField("remarks")
+    private String remarks;
+
+    /**
+     * 到款金额
+     */
+    @TableField("payment")
+    private BigDecimal payment;
+
+    /**
+     * 下次到款时间
+     */
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate nextPaymentDate;
+
+    /**
+     * 下次到款金额
+     */
+    @TableField(exist = false)
+    private BigDecimal nextPaymentAmount;
+
+    @TableField(exist = false)
+    public ContractCustom customData;
+
+    @TableField(exist = false)
+    public ContractPayCustomized payCustomizedData;
+
+    /**
+     * 二级分类id
+     */
+    @TableField("sec_type_id")
+    private Integer secTypeId;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate1")
+    private String plate1;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate2")
+    private String plate2;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate3")
+    private String plate3;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate4")
+    private String plate4;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate5")
+    private String plate5;
+
+    /**
+     * 二级分类名称
+     */
+    @TableField(exist = false)
+    private String secTypeName;
+
+    /**是否需要置顶 0/Flase 1/True*/
+    @TableField("need_pin")
+    private Boolean needPin;
+
+    /**被置顶时间*/
+    @TableField("pin_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date pinTime;
+
+    @TableField("department_id")
+    private Integer departmentId;
+
+    @TableField(exist = false)
+    private String departmentName;
+
+    @TableField(exist = false)
+    private BigDecimal invoicedAmount;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 130 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractCustom.java

@@ -0,0 +1,130 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-11-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractCustom extends Model<ContractCustom> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 合同Id
+     */
+    @TableId("contract_id")
+    private Integer contractId;
+
+    /**
+     * 对方单位
+     */
+    @TableField("customer_org")
+    private String customerOrg;
+
+    /**
+     * 对方联系人
+     */
+    @TableField("customer_contact")
+    private String customerContact;
+
+    /**
+     * 对方电话
+     */
+    @TableField("customer_phone")
+    private String customerPhone;
+
+    /**
+     * 使用部门
+     */
+    @TableField("use_department")
+    private String useDepartment;
+
+    /**
+     * 经费来源
+     */
+    @TableField("funds_source")
+    private String fundsSource;
+
+    /**
+     * 合同承办人
+     */
+    @TableField("undertaker")
+    private String undertaker;
+
+    /**
+     * 代理人
+     */
+    @TableField("agent")
+    private String agent;
+
+    /**
+     * 签订日期
+     */
+    @TableField("sign_date")
+    private String signDate;
+
+    /**
+     * 备案日期
+     */
+    @TableField("filings_date")
+    private String filingsDate;
+
+    /**
+     * 增值税税率(%)
+     */
+    @TableField("tax_rate")
+    private Integer taxRate;
+
+    /**
+     * 合同金额(元)/不含税价
+     */
+    @TableField("amounts_no_tax")
+    private BigDecimal amountsNoTax;
+
+    /**
+     * 币种
+     */
+    @TableField("currency")
+    private String currency;
+
+    /**
+     * 是否固定金额 0否,1是
+     */
+    @TableField("is_amount_fixed")
+    private Boolean isAmountFixed;
+
+    /**
+     * 合同状态(是否结清):1-履约中,2-履约结束
+     */
+    @TableField("finish_status")
+    private Integer finishStatus;
+
+    /**
+     * 印花税税目
+     */
+    @TableField("stamp_duty_items")
+    private String stampDutyItems;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.contractId;
+    }
+
+}

+ 107 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractDocument.java

@@ -0,0 +1,107 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-12-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractDocument extends Model<ContractDocument> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 文件名
+     */
+    @TableField("document_name")
+    private String documentName;
+
+    /**
+     * 服务器生成的文件名
+     */
+    @TableField("server_name")
+    private String serverName;
+
+    /**
+     * 对外访问地址
+     */
+    @TableField("url")
+    private String url;
+
+    /**
+     * 创建人id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 创建人姓名
+     */
+    @TableField("creator_name")
+    private String creatorName;
+
+    /**
+     * 创建时间
+     */
+    @TableField("indate")
+    private LocalDateTime indate;
+
+    /**
+     * 合同id
+     */
+    @TableField("contract_id")
+    private Integer contractId;
+
+    @TableField("folder_id")
+    private Integer folderId;
+
+    /**
+     * 文件大小
+     */
+    @TableField("size")
+    private String size;
+
+    /**
+     * 文件类型
+     */
+    @TableField("document_type")
+    private Integer documentType;
+
+    /**
+     * 文件状态0-存在,1-删除
+     */
+    @TableField("is_deleted")
+    private Integer isDeleted;
+
+    /**
+     * 是否是文件夹
+     */
+    @TableField("is_folder")
+    private Integer isFolder;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 77 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractLog.java

@@ -0,0 +1,77 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-12-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractLog extends Model<ContractLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 合同的id
+     */
+    @TableField("contract_id")
+    private Integer contractId;
+
+    /**
+     * 操作时间
+     */
+    @TableField("operate_date")
+    private LocalDateTime operateDate;
+
+    /**
+     * 创建者id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 操作者id
+     */
+    @TableField("operator_id")
+    private String operatorId;
+
+    /**
+     * 0-新增操作;1-编辑操作;2-审核通过;3-审核驳回;4-批量导入;5-删除合同
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 操作信息
+     */
+    @TableField("msg")
+    private String msg;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 65 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractModifyRecord.java

@@ -0,0 +1,65 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractModifyRecord extends Model<ContractModifyRecord> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 修改前金额
+     */
+    @TableField("old_contract_amount")
+    private Double oldContractAmount;
+
+    /**
+     * 修改后金额
+     */
+    @TableField("new_contract_amount")
+    private Double newContractAmount;
+
+    @TableField("update_date")
+    private LocalDateTime updateDate;
+
+    @TableField("project_id")
+    private Integer projectId;
+
+    @TableField("reason")
+    private String reason;
+
+    /**
+     * 操作人
+     */
+    @TableField("edit_user_id")
+    private String editUserId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 99 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractPayCustomized.java

@@ -0,0 +1,99 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-11-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractPayCustomized extends Model<ContractPayCustomized> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 合同id
+     */
+    @TableField("contract_id")
+    private Integer contractId;
+
+    /**
+     * 付款日期
+     */
+    @TableField("pay_date")
+    private String payDate;
+
+    /**
+     * 已付款金额(元)
+     */
+    @TableField("payed_amount")
+    private BigDecimal payedAmount;
+
+    /**
+     * 付款类型:1-预付,2-报账
+     */
+    @TableField("pay_way")
+    private Integer payWay;
+
+    /**
+     * 凭证号
+     */
+    @TableField("bill_number")
+    private String billNumber;
+
+    /**
+     * 已冲销金额
+     */
+    @TableField("reserved_amounts")
+    private BigDecimal reservedAmounts;
+
+    /**
+     * 冲销凭证号
+     */
+    @TableField("reserved_bill_number")
+    private String reservedBillNumber;
+
+    /**
+     * 付款总金额
+     */
+    @TableField("total_payed_amounts")
+    private BigDecimal totalPayedAmounts;
+
+    /**
+     * 待付款金额
+     */
+    @TableField("pending_amounts")
+    private BigDecimal pendingAmounts;
+
+    /**
+     * 是否已付款
+     */
+    @TableField("is_payed")
+    private Boolean isPayed;
+
+    /**
+     * 付款类型:0报账,1预付
+     */
+    @TableField("pay_type")
+    private Boolean payType;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+}

+ 100 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractPayment.java

@@ -0,0 +1,100 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-05-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractPayment extends Model<ContractPayment> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("contract_id")
+    private Integer contractId;
+
+    /**
+     * 计划回款日期
+     */
+    @TableField("pay_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate payDate;
+
+    /**
+     * 回款金额
+     */
+    @TableField("amount")
+    private BigDecimal amount;
+
+    /**
+     * 是否
+     */
+    @TableField("is_payed")
+    private Boolean isPayed;
+
+
+    /**
+     * 是否开票 1是 0否
+     */
+    @TableField("is_billed")
+    private Integer isBilled;
+
+    /**
+     * 开票日期
+     */
+    @TableField("bill_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate billDate;
+
+    /**
+     * 发票类型 0专票 1普票
+     */
+    @TableField("invoice_type")
+    private Integer invoiceType;
+
+    @TableField(exist = false)
+    private String  invoiceTypeName;
+
+    /**
+     * 税额
+     */
+    @TableField("tax_amount")
+    private BigDecimal taxAmount;
+
+    /**
+     * 税率
+     */
+    @TableField("tax_rate")
+    private BigDecimal taxRate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 52 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractType.java

@@ -0,0 +1,52 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractType extends Model<ContractType> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 合同类型id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 合同类型
+     */
+    @TableField("type_name")
+    private String typeName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 61 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ContractTypeSec.java

@@ -0,0 +1,61 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-11-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ContractTypeSec extends Model<ContractTypeSec> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 合同类型id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 合同类型
+     */
+    @TableField("sec_type_name")
+    private String secTypeName;
+
+    /**
+     * 主类型id
+     */
+    @TableField("main_type_id")
+    private Integer mainTypeId;
+
+    @TableField(exist = false)
+    private String mainTypeName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 55 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxJobResult.java

@@ -0,0 +1,55 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-10-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CorpwxJobResult extends Model<CorpwxJobResult> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("job_id")
+    private String jobId;
+
+    @TableField("job_type")
+    private String jobType;
+
+    @TableField("err_code")
+    private Integer errCode;
+
+    @TableField("err_msg")
+    private String errMsg;
+
+    /**
+     * 授权企业corpid
+     */
+    @TableField("auth_corp_id")
+    private String authCorpId;
+
+    @TableField("indate")
+    private LocalDateTime indate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.jobId;
+    }
+
+}

+ 53 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxPreAuthCode.java

@@ -0,0 +1,53 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CorpwxPreAuthCode extends Model<CorpwxPreAuthCode> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("code")
+    private String code;
+
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime indate;
+
+    @TableField("expire_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime expireTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 47 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CorpwxRegisterCode.java

@@ -0,0 +1,47 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CorpwxRegisterCode extends Model<CorpwxRegisterCode> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("code")
+    private String code;
+
+    @TableField("indate")
+    private LocalDateTime indate;
+
+    @TableField("expire_time")
+    private LocalDateTime expireTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 90 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CusReportForm.java

@@ -0,0 +1,90 @@
+package com.management.collectdata.entity;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CusReportForm extends Model<CusReportForm> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**报表名称*/
+    @TableField("report_form_name")
+    private String reportFormName;
+
+    /**1公开 2私有*/
+    @TableField("privilege")
+    private Integer privilege;
+
+    /**创建人id*/
+    @TableField("create_by")
+    private String createBy;
+
+    /**创建时间*/
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date createTime;
+
+    /**执行sql*/
+    @TableField("execute_sql")
+    private String executeSql;
+
+    /**所属公司id*/
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("form_json")
+    private String formJson;
+
+    @TableField("form_field_head")
+    private String formFieldHead;
+
+    @TableField(exist = false)
+    private String departmentIds;
+
+
+    @TableField(exist = false)
+    private String userIds;
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> deptAccessList;
+
+
+    @TableField(exist = false)
+    private List<ReportFormAccess> userAccessList;
+
+    @TableField(exist = false)
+    private Integer orderItem;
+
+    @TableField(exist = false)
+    private Integer parentStoreId;
+
+    @TableField(exist = false)
+    private String description;
+
+    /**承接前端需要转义的条件*/
+    @TableField(exist = false)
+    private String formTransConditionJson;
+
+//    /**承接前端需要转义的条件*/
+//    @TableField(exist = false)
+//    private List<FormTransCondition> formTransConditionList;
+
+}

+ 46 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CusTableColumn.java

@@ -0,0 +1,46 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CusTableColumn extends Model<CusTableColumn> {
+//    private String TABLE_CATALOG;
+    private String tableCatalog;
+//    private String IS_NULLABLE;
+    private String isNullable;
+//    private String TABLE_NAME;
+    private String tableName;
+//    private String TABLE_SCHEMA;
+    private String tableSchema;
+//    private String EXTRA;
+    private String extra;
+//    private String COLUMN_NAME;
+    private String columnName;
+//    private String COLUMN_KEY;
+    private String columnKey;
+//    private String NUMERIC_PRECISION;
+    private String numericPrecision;
+//    private String PRIVILEGES;
+    private String privileges;
+//    private String COLUMN_COMMENT;
+    private String columnComment;
+//    private String NUMERIC_SCALE;
+    private String numericScale;
+//    private String COLUMN_TYPE;
+    private String columnType;
+//    private String GENERATION_EXPRESSION;
+    private String generationExpression;
+//    private String ORDINAL_POSITION;
+    private String ordinalPosition;
+//    private String DATA_TYPE;
+    private String dataType;
+
+    /**转义类型 0不需要 1人名 2部门*/
+    private Integer transType=0;
+
+}

+ 275 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Custom.java

@@ -0,0 +1,275 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Custom extends Model<Custom> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 客户名称
+     */
+    @TableField("custom_name")
+    private String customName;
+    /**
+     * 地址
+     */
+    @TableField("address")
+    private String address;
+    /**
+     * 负责人
+     */
+    @TableField("incharger_id")
+    private String inchargerId;
+    @TableField(exist = false)
+    private String inchargerName;
+
+    /**
+     * 公司电话
+     */
+    @TableField("company_phone")
+    private String companyPhone;
+
+    /**
+     * 客户来源id
+     */
+    @TableField("custom_source_id")
+    private Integer customSourceId;
+    @TableField(exist = false)
+    private String customSourceValue;
+
+    /**
+     * 客户行业id
+     */
+    @TableField("customer_industry_id")
+    private Integer customerIndustryId;
+    @TableField(exist = false)
+    private String customerIndustryValue;
+
+    /**
+     * 客户级别id
+     */
+    @TableField("customer_level_id")
+    private Integer customerLevelId;
+    @TableField(exist = false)
+    private String customerLevelValue;
+
+    /**
+     * 邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 客户所有者
+     */
+    @TableField("owner_id")
+    private String ownerId;
+    @TableField(exist = false)
+    private String ownerName;
+
+    /**
+     * 客户编号
+     */
+    @TableField("custom_code")
+    private String customCode;
+
+    /**
+     * 电话
+     */
+    @TableField("tel_phone")
+    private String telPhone;
+    @TableField("contacts_name")
+    private String contactsName;
+
+    /**
+     * 传真
+     */
+    @TableField("fax")
+    private String fax;
+
+    /**
+     * 开单地址-国家/地区
+     */
+    @TableField("country_billing")
+    private String countryBilling;
+    @TableField(exist = false)
+    private String userId;
+    @TableField(exist = false)
+    private List<Contacts> contacts;
+    @TableField(exist = false)
+    private List<SalesOrder> salesOrders;
+
+    /**
+     * 开单地址-省/市
+     */
+    @TableField("province_billing")
+    private String provinceBilling;
+
+    /**
+     * 开单地址-市
+     */
+    @TableField("city_billing")
+    private String cityBilling;
+
+    /**
+     * 开单地址-街道
+     */
+    @TableField("street_billing")
+    private String streetBilling;
+
+    /**
+     * 发货地址-国家/地区
+     */
+    @TableField("country_delivery")
+    private String countryDelivery;
+
+    /**
+     * 发货地址-省/市
+     */
+    @TableField("province_delivery")
+    private String provinceDelivery;
+
+    /**
+     * 发货地址-市
+     */
+    @TableField("city_delivery")
+    private String cityDelivery;
+
+    /**
+     * 发货地址-街道
+     */
+    @TableField("street_delivery")
+    private String streetDelivery;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate1")
+    private String plate1;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate2")
+    private String plate2;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate3")
+    private String plate3;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate4")
+    private String plate4;
+
+    /**
+     * 自定义字段存值
+     */
+    @TableField("plate5")
+    private String plate5;
+
+    /**
+     * 创建人
+     */
+    @TableField("creator_id")
+    private String creatorId;
+    @TableField(exist = false)
+    private String creatorName;
+
+    /**
+     * 描述
+     */
+    @TableField("custom_desc")
+    private String customDesc;
+
+    /**
+     * 回收站(是否删除) 0-否 1-是
+     */
+    @TableField("is_delete")
+    private Integer isDelete;
+
+    /**
+     * 是否成交 0-否 1-是
+     */
+    @TableField("close_deal")
+    private Integer closeDeal;
+
+    /**是否需要置顶 0/Flase 1/True*/
+    @TableField("need_pin")
+    private Boolean needPin;
+
+    /**被置顶时间*/
+    @TableField("pin_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date pinTime;
+
+    @TableField(exist = false)
+    private String ids;
+    @TableField(exist = false)
+    private String startTime;
+    @TableField(exist = false)
+    private String endTime;
+    @TableField(exist = false)
+    private Integer pageIndex;
+    @TableField(exist = false)
+    private Integer pageFrom;
+    @TableField(exist = false)
+    private List<UploadFile> files;
+    @TableField(exist = false)
+    private List<BusinessOpportunity> BusinessOpportunitys;
+    @TableField(exist = false)
+    private List<ActionLog> actionLogs;
+    @TableField(exist = false)
+    private List<Contacts> contactsList;
+    @TableField(exist = false)
+    private Integer isDesc;
+
+    @TableField(exist = false)
+    private List<Task> tasks;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 49 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomItemContacts.java

@@ -0,0 +1,49 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-04-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CustomItemContacts extends Model<CustomItemContacts> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 客户id
+     */
+    @TableField("contacts_id")
+    private Integer contactsId;
+
+    /**
+     * 联系人id
+     */
+    @TableField("custom_id")
+    private Integer customId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 62 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomMultipartFile.java

@@ -0,0 +1,62 @@
+package com.management.collectdata.entity;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class CustomMultipartFile implements MultipartFile {
+
+    private final byte[] content;
+    private final String name;
+    private final String originalFilename;
+    private final String contentType;
+
+    public CustomMultipartFile(byte[] content, String name, String originalFilename, String contentType) {
+        this.content = content;
+        this.name = name;
+        this.originalFilename = originalFilename;
+        this.contentType = contentType;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public String getOriginalFilename() {
+        return originalFilename;
+    }
+
+    @Override
+    public String getContentType() {
+        return contentType;
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return content == null || content.length == 0;
+    }
+
+    @Override
+    public long getSize() {
+        return content.length;
+    }
+
+    @Override
+    public byte[] getBytes() throws IOException {
+        return content;
+    }
+
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new ByteArrayInputStream(content);
+    }
+
+    @Override
+    public void transferTo(java.io.File dest) throws IOException, IllegalStateException {
+        new java.io.FileOutputStream(dest).write(content);
+    }
+}

+ 79 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/CustomerInfo.java

@@ -0,0 +1,79 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-07-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CustomerInfo extends Model<CustomerInfo> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 客户编码
+     */
+    @TableField("customer_code")
+    private String customerCode;
+
+    /**
+     * 客户公司名称
+     */
+    @TableField("customer_name")
+    private String customerName;
+
+    /**
+     * 联系人
+     */
+    @TableField("contact_name")
+    private String contactName;
+
+    /**
+     * 联系人电话
+     */
+    @TableField("contact_phone")
+    private String contactPhone;
+
+    /**
+     * 邮箱
+     */
+    @TableField("email")
+    private String email;
+
+    /**
+     * 地址
+     */
+    @TableField("address")
+    private String address;
+
+    /**
+     * 系统公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 50 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DdCallback.java

@@ -0,0 +1,50 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DdCallback extends Model<DdCallback> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 插入的时间
+     */
+    @TableField("datetime")
+    private LocalDateTime datetime;
+
+    @TableField("event_type")
+    private String eventType;
+
+    @TableField("decrypt_msg")
+    private String decryptMsg;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 13 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DdingCardTimeItem.java

@@ -0,0 +1,13 @@
+package com.management.collectdata.entity;
+
+import lombok.Data;
+
+@Data
+public class DdingCardTimeItem {
+    private Long workDate;
+    private String checkType;
+    private String userId;
+    private Long userCheckTime;
+    private String corpId;
+
+}

+ 109 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Department.java

@@ -0,0 +1,109 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 部门
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Department extends Model<Department> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "department_id", type = IdType.AUTO)
+    private Integer departmentId;
+
+    /**
+     * 部门名称
+     */
+    @TableField("department_name")
+    private String departmentName;
+
+    /**
+     * 部门顺序
+     */
+    @TableField("seq")
+    private Integer seq;
+
+    /**
+     * 上级部门id
+     */
+    @TableField("superior_id")
+    private Integer superiorId;
+
+    /**
+     * 所属公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 部门负责人id
+     */
+    @TableField(value = "manager_id", updateStrategy = FieldStrategy.IGNORED)
+    private String managerId;
+
+    /**
+     * 日报导入审核人
+     */
+    @TableField(value = "report_audit_userid", updateStrategy = FieldStrategy.IGNORED)
+    private String reportAuditUserid;
+
+
+    /**
+     * 企业微信的部门id
+     */
+    @TableField("corpwx_deptid")
+    private Integer corpwxDeptid;
+
+
+    /**
+     * 企业微信部门的父部门id
+     */
+    @TableField("corpwx_deptpid")
+    private Integer corpwxDeptpid;
+
+    /**
+     * 钉钉的部门id
+     */
+    @TableField("dd_deptid")
+    private Integer ddDeptid;
+
+    /**
+     * 飞书的部门id
+     */
+    @TableField("feishu_deptid")
+    private String feishuDeptid;
+
+    /**
+     * 是否推送到SAP
+     */
+    @TableField("push_to_sap")
+    private Integer pushToSap;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.departmentId;
+    }
+
+}

+ 58 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentDingding.java

@@ -0,0 +1,58 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-06-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DepartmentDingding extends Model<DepartmentDingding> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("dd_deptid")
+    private Integer ddDeptid;
+
+    @TableField("dd_parentid")
+    private Integer ddParentid;
+
+    /**
+     * 企业corpid
+     */
+    @TableField("corpid")
+    private String corpid;
+
+    @TableField("name")
+    private String name;
+
+    /**
+     * 内部部门id
+     */
+    @TableField("sys_deptid")
+    private Integer sysDeptid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 61 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentFeishu.java

@@ -0,0 +1,61 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-03-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DepartmentFeishu extends Model<DepartmentFeishu> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("feishu_open_deptid")
+    private String feishuOpenDeptid;
+
+    @TableField("feishu_deptid")
+    private String feishuDeptid;
+
+    @TableField("feishu_parentid")
+    private String feishuParentid;
+
+    /**
+     * 企业corpid
+     */
+    @TableField("corpid")
+    private String corpid;
+
+    @TableField("name")
+    private String name;
+
+    /**
+     * 内部部门id
+     */
+    @TableField("sys_deptid")
+    private Integer sysDeptid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 49 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentOtherManager.java

@@ -0,0 +1,49 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DepartmentOtherManager extends Model<DepartmentOtherManager> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("department_id")
+    private Integer departmentId;
+
+    /**
+     * 其他部门管理员
+     */
+    @TableField("other_manager_id")
+    private String otherManagerId;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 58 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/DepartmentWx.java

@@ -0,0 +1,58 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-11-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class DepartmentWx extends Model<DepartmentWx> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("wx_deptid")
+    private Integer wxDeptid;
+
+    @TableField("wx_parentid")
+    private Integer wxParentid;
+
+    /**
+     * 企业corpid
+     */
+    @TableField("corpid")
+    private String corpid;
+
+    @TableField("name")
+    private String name;
+
+    /**
+     * 内部部门id
+     */
+    @TableField("sys_deptid")
+    private Integer sysDeptid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 105 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/EarningSnapshot.java

@@ -0,0 +1,105 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-10-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EarningSnapshot extends Model<EarningSnapshot> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 发生时间
+     */
+    @TableField("indate")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime indate;
+
+    /**
+     * 变更人id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 变更人姓名
+     */
+    @TableField("creator_name")
+    private String creatorName;
+
+    /**
+     * 项目金额
+     */
+    @TableField("contract_amount")
+    private Double contractAmount;
+
+    /**
+     * 利润
+     */
+    @TableField("profit")
+    private Double profit;
+
+    /**
+     * 利润率
+     */
+    @TableField("profit_percent")
+    private Double profitPercent;
+
+    /**
+     * 总成本
+     */
+    @TableField("cost_total")
+    private Double costTotal;
+
+    /**
+     * 细分项
+     */
+    @TableField("cost_data")
+    private String costData;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+
+    @TableField(exist = false)
+    List<ProjectBasecost> costList;
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 69 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/EstimateTimeSetting.java

@@ -0,0 +1,69 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class EstimateTimeSetting extends Model<EstimateTimeSetting> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id
+     */
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 项目人天填写要求:0-非必填,1-工时系统必填,同步的非必填,2-全部必填
+     */
+    @TableField("project_man_day_fill_mode")
+    private Integer projectManDayFillMode;
+
+    /**
+     * 项目剩余工时低于xx%时开始提示
+     */
+    @TableField("project_warning_percent")
+    private Integer projectWarningPercent;
+
+    /**
+     * 项目预估工时不足时是否禁止填报
+     */
+    @TableField("project_fronze_on_lack")
+    private Integer projectFronzeOnLack;
+
+    /**
+     * 分组剩余工时低于xx%时开始提示
+     */
+    @TableField("group_warning_percent")
+    private Integer groupWarningPercent;
+
+    /**
+     * 分组预估工时不足时是否禁止填报
+     */
+    @TableField("group_fronze_on_lack")
+    private Integer groupFronzeOnLack;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 60 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExcelMultipartFile.java

@@ -0,0 +1,60 @@
+package com.management.collectdata.entity;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class ExcelMultipartFile implements MultipartFile {
+
+    private final byte[] excelBytes;
+    private final String fileName;
+
+    public ExcelMultipartFile(byte[] excelBytes, String fileName) {
+        this.excelBytes = excelBytes;
+        this.fileName = fileName;
+    }
+
+    @Override
+    public String getName() {
+        return "file";
+    }
+
+    @Override
+    public String getOriginalFilename() {
+        return fileName;
+    }
+
+    @Override
+    public String getContentType() {
+        return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return excelBytes == null || excelBytes.length == 0;
+    }
+
+    @Override
+    public long getSize() {
+        return excelBytes.length;
+    }
+
+    @Override
+    public byte[] getBytes() throws IOException {
+        return excelBytes;
+    }
+
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new ByteArrayInputStream(excelBytes);
+    }
+
+    @Override
+    public void transferTo(java.io.File dest) throws IOException, IllegalStateException {
+        try (java.io.FileOutputStream fos = new java.io.FileOutputStream(dest)) {
+            fos.write(excelBytes);
+        }
+    }
+}

+ 45 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseAuditSetting.java

@@ -0,0 +1,45 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpenseAuditSetting extends Model<ExpenseAuditSetting> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 公司id
+     */
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 0-统一审核人(由权限模块控制), 1-项目经理审核
+     */
+    @TableField("audit_type")
+    private Integer auditType;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 120 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseItem.java

@@ -0,0 +1,120 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpenseItem extends Model<ExpenseItem> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 报销单id
+     */
+    @TableField("expense_id")
+    private Integer expenseId;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 费用日期
+     */
+    @TableField("happen_date")
+    private String happenDate;
+
+    /**
+     * 0-增值税专用发票,1-增值税普通发票
+     */
+    @TableField("invoice_type")
+    private Integer invoiceType;
+
+    /**
+     * 发票号
+     */
+    @TableField("invoice_no")
+    private String invoiceNo;
+
+    /**
+     * 税率
+     */
+    @TableField("tax_percent")
+    private Double taxPercent;
+
+    /**
+     * 税额
+     */
+    @TableField("tax_value")
+    private Double taxValue;
+
+    /**
+     * 费用金额
+     */
+    @TableField("amount")
+    private Double amount;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 费用类型
+     */
+    @TableField("expense_type")
+    private String expenseType;
+
+    /**
+     * 报销凭证
+     */
+    @TableField("pic")
+    private String pic;
+
+    /**
+     * 项目经理审核模式下需要:0-审核通过,1-待审核,2-驳回,3-已撤回
+     */
+    @TableField("status")
+    private Integer status;
+
+
+    @TableField(exist = false)
+    private String projectName;
+
+    @TableField(exist = false)
+    private Integer isIncharger;
+
+    @TableField(exist = false)
+    private String projectManagerId;
+    @TableField(exist = false)
+    private String projectManagerName;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 59 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseMainType.java

@@ -0,0 +1,59 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-05-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpenseMainType extends Model<ExpenseMainType> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 系统自带
+     */
+    @TableField("is_system")
+    private Integer isSystem;
+
+    /**
+     * 成本预算项id
+     */
+    @TableField(value = "basecost_setting_id", updateStrategy = FieldStrategy.IGNORED)
+    private Integer basecostSettingId;
+
+
+    @TableField(exist = false)
+    private String basecostSettingName;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 43 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpensePayWay.java

@@ -0,0 +1,43 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpensePayWay extends Model<ExpensePayWay> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("name")
+    private String name;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 163 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseSheet.java

@@ -0,0 +1,163 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-01-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpenseSheet extends Model<ExpenseSheet> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 单据编号
+     */
+    @TableField("code")
+    private String code;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 填报人id
+     */
+    @TableField("owner_id")
+    private String ownerId;
+
+    /**
+     * 填报人姓名
+     */
+    @TableField("owner_name")
+    private String ownerName;
+
+    /**
+     * 填报日期
+     */
+    @TableField("create_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate createDate;
+
+    /**
+     * 发票张数
+     */
+    @TableField("ticket_num")
+    private Integer ticketNum;
+
+    /**
+     * 费用主类型id
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 0-审核通过,1-待审核,2-驳回,3-已撤回
+     */
+    @TableField("status")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 总费用
+     */
+    @TableField("total_amount")
+    private Double totalAmount;
+
+    /**
+     * 录入人
+     */
+    @TableField("operator_id")
+    private String operatorId;
+
+    /**
+     * 驳回原因
+     */
+    @TableField("deny_reason")
+    private String denyReason;
+
+    /**
+     * 发送状态 0-未发送 1-已发送
+     */
+    @TableField("send_state")
+    private Integer sendState;
+
+    /**
+     * 第一审核人id
+     */
+    @TableField("first_checker_id")
+    private String firstCheckerId;
+
+    /**
+     * 第二审核人id
+     */
+    @TableField("second_checker_id")
+    private String secondCheckerId;
+
+    /**
+     * 0-待第一审核人审核 1-待第二审核人审核 2-审核完成
+     */
+    @TableField("review_process")
+    private Integer reviewProcess;
+
+    @TableField(exist = false)
+    private List<ExpenseItem> invoiceList;
+
+    @TableField(exist = false)
+    private String expenseMainTypeName;
+
+    @TableField(exist = false)
+    private String firstCheckerName;
+
+    @TableField(exist = false)
+    private String secondCheckerName;
+
+    /**
+     * 支付方式id
+     */
+    @TableField("pay_way_id")
+    private Integer payWayId;
+
+    /**
+     * 支付方式名称
+     */
+    @TableField("pay_way_name")
+    private String payWayName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 58 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/ExpenseType.java

@@ -0,0 +1,58 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ExpenseType extends Model<ExpenseType> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 主类型: 0-一般费用,1-差旅费用,2-外包费用
+     */
+    @TableField("main_type")
+    private Integer mainType;
+
+    /**
+     * 费用类型名称
+     */
+    @TableField("type_name")
+    private String typeName;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String expenseMainTypeName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 55 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FastAccess.java

@@ -0,0 +1,55 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-06-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FastAccess extends Model<FastAccess> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 新建设置名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 新建设置路由
+     */
+    @TableField("router")
+    private String router;
+
+    @TableField("seq")
+    private Integer seq;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 76 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FeishuInfo.java

@@ -0,0 +1,76 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-03-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FeishuInfo extends Model<FeishuInfo> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("corpid")
+    private String corpid;
+
+    @TableField("corp_name")
+    private String corpName;
+
+    /**
+     * 企业token
+     */
+    @TableField("access_token")
+    private String accessToken;
+
+    /**
+     * token有效期
+     */
+    @TableField("expire_time")
+    private LocalDateTime expireTime;
+
+    /**
+     * 系统内部的公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 授权企业内应用的id
+     */
+    @TableField("agentid")
+    private Integer agentid;
+
+    /**
+     * 飞书企业自建应用APPID
+     */
+    @TableField("app_id")
+    private String appId;
+
+    /**
+     * 飞书企业自建应用APPSecret
+     */
+    @TableField("app_secret")
+    private String appSecret;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.corpid;
+    }
+
+}

+ 61 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FeishuSend.java

@@ -0,0 +1,61 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-03-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FeishuSend extends Model<FeishuSend> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 模板名称
+     */
+    @TableField("template_name")
+    private String templateName;
+
+    /**
+     * 飞书卡片消息模板Id
+     */
+    @TableField("template_id")
+    private String templateId;
+
+    /**
+     * 卡片相关变量  发送消息需要注意按照变量赋值
+     */
+    @TableField("template_variable")
+    private String templateVariable;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 192 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Finance.java

@@ -0,0 +1,192 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-08-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Finance extends Model<Finance> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户id
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 工号
+     */
+    @TableField("job_number")
+    private String jobNumber;
+
+    /**
+     * 用户姓名
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 部门名称
+     */
+    @TableField("dept_name")
+    private String deptName;
+
+    /**
+     * 月成本
+     */
+    @TableField("month_cost")
+    private BigDecimal monthCost;
+
+    /**
+     * 奖金
+     */
+    @TableField("bonus")
+    private BigDecimal bonus;
+
+    /**
+     * 津贴
+     */
+    @TableField("allowance")
+    private BigDecimal allowance;
+
+    /**
+     * 养老保险
+     */
+    @TableField("insurance_old")
+    private BigDecimal insuranceOld;
+
+    /**
+     * 医疗保险
+     */
+    @TableField("insurance_medical")
+    private BigDecimal insuranceMedical;
+
+    /**
+     * 失业保险
+     */
+    @TableField("insurance_losejob")
+    private BigDecimal insuranceLosejob;
+
+    /**
+     * 工伤保险
+     */
+    @TableField("insurance_injury")
+    private BigDecimal insuranceInjury;
+
+    /**
+     * 住房公积金
+     */
+    @TableField("house_fund")
+    private BigDecimal houseFund;
+
+    /**
+     * 其他
+     */
+    @TableField("others")
+    private BigDecimal others;
+
+    /**
+     * 总成本
+     */
+    @TableField("total_cost")
+    private BigDecimal totalCost;
+
+    /**
+     * 年月
+     */
+    @TableField("ymonth")
+    private String ymonth;
+
+    /**
+     * 自定义1
+     */
+    @TableField("custom_field1")
+    private BigDecimal customField1;
+
+    /**
+     * 自定义2
+     */
+    @TableField("custom_field2")
+    private BigDecimal customField2;
+
+    /**
+     * 自定义3
+     */
+    @TableField("custom_field3")
+    private BigDecimal customField3;
+
+    @TableField(exist = false)
+    private BigDecimal hourCost;
+
+    @TableField(exist = false)
+    private Integer hasReport;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    //按比例折算后的各项收入
+    public static Finance getByPercent(Finance from, double percent) {
+        Finance target = new Finance();
+        BigDecimal per = new BigDecimal(percent).divide(new BigDecimal(100));
+        target.setTotalCost(from.getTotalCost().multiply(per));
+        target.setMonthCost(from.getMonthCost().multiply(per));
+        target.setBonus(from.getBonus().multiply(per));
+        target.setAllowance(from.getAllowance().multiply(per));
+        target.setInsuranceOld(from.getInsuranceOld().multiply(per));
+        target.setInsuranceMedical(from.getInsuranceMedical().multiply(per));
+        target.setInsuranceLosejob(from.getInsuranceLosejob().multiply(per));
+        target.setInsuranceInjury(from.getInsuranceInjury().multiply(per));
+        target.setHouseFund(from.getHouseFund().multiply(per));
+        if (from.getCustomField1() != null) {
+            target.setCustomField1(from.getCustomField1().multiply(per));
+        } else {
+            target.setCustomField1(new BigDecimal(0));
+        }
+        if (from.getCustomField2() != null) {
+            target.setCustomField2(from.getCustomField2().multiply(per));
+        } else {
+            target.setCustomField2(new BigDecimal(0));
+        }
+        if (from.getCustomField3() != null) {
+            target.setCustomField3(from.getCustomField3().multiply(per));
+        } else {
+            target.setCustomField3(new BigDecimal(0));
+        }
+
+        return target;
+    }
+}

+ 39 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceAuditor.java

@@ -0,0 +1,39 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceAuditor extends Model<FinanceAuditor> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("company_id")
+    private Integer companyId;
+
+    @TableField("auditor_id")
+    private String auditorId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 83 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceCalculate.java

@@ -0,0 +1,83 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceCalculate extends Model<FinanceCalculate> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 工资字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("month_cost_calculate")
+    private Integer monthCostCalculate;
+
+    /**
+     * 奖金字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("bonus_calculate")
+    private Integer bonusCalculate;
+
+    /**
+     * 津贴字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("allowance_calculate")
+    private Integer allowanceCalculate;
+
+    /**
+     * 养老保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("insurance_old_calculate")
+    private Integer insuranceOldCalculate;
+
+    /**
+     * 医疗保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("insurance_medical_calculate")
+    private Integer insuranceMedicalCalculate;
+
+    /**
+     * 失业保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("insurance_losejob_calculate")
+    private Integer insuranceLosejobCalculate;
+
+    /**
+     * 工伤保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("insurance_injury_calculate")
+    private Integer insuranceInjuryCalculate;
+
+    /**
+     * 住房公积金字段, 1-参与计算,0-不参与计算
+     */
+    @TableField("house_fund_calculate")
+    private Integer houseFundCalculate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+}

+ 206 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceFixedcolname.java

@@ -0,0 +1,206 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceFixedcolname extends Model<FinanceFixedcolname> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId("company_id")
+    private Integer companyId;
+
+    /**
+     * 工资字段
+     */
+    @TableField("month_cost")
+    private String monthCost;
+
+    /**
+     * 奖金字段
+     */
+    @TableField("bonus")
+    private String bonus;
+
+    /**
+     * 津贴字段
+     */
+    @TableField("allowance")
+    private String allowance;
+
+    /**
+     * 养老保险字段
+     */
+    @TableField("insurance_old")
+    private String insuranceOld;
+
+    /**
+     * 医疗保险字段
+     */
+    @TableField("insurance_medical")
+    private String insuranceMedical;
+
+    /**
+     * 失业保险字段
+     */
+    @TableField("insurance_losejob")
+    private String insuranceLosejob;
+
+    /**
+     * 工伤保险字段
+     */
+    @TableField("insurance_injury")
+    private String insuranceInjury;
+
+    /**
+     * 住房公积金字段
+     */
+    @TableField("house_fund")
+    private String houseFund;
+
+    @TableField(exist = false)
+    private String field1;
+
+    @TableField(exist = false)
+    private String field2;
+
+    @TableField(exist = false)
+    private String field3;
+
+    @TableField(exist = false)
+    private String field4;
+
+    @TableField(exist = false)
+    private String field5;
+
+    @TableField(exist = false)
+    private String field6;
+
+    @TableField(exist = false)
+    private String field7;
+
+
+    /**
+     * 自定义字段1 是否计入合计成本,1-参与,0-不参与
+     */
+    @TableField(exist = false)
+    private Integer field1Calculate;
+    /**
+     * 自定义字段2 是否计入合计成本,1-参与,0-不参与
+     */
+    @TableField(exist = false)
+    private Integer field2Calculate;
+    /**
+     * 自定义字段3 是否计入合计成本,1-参与,0-不参与
+     */
+    @TableField(exist = false)
+    private Integer field3Calculate;
+
+    @TableField(exist = false)
+    private Integer field4Calculate;
+
+    @TableField(exist = false)
+    private Integer field5Calculate;
+
+    @TableField(exist = false)
+    private Integer field6Calculate;
+
+    @TableField(exist = false)
+    private Integer field7Calculate;
+
+    /**
+     * 工资字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer monthCostCalculate;
+
+    /**
+     * 奖金字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer bonusCalculate;
+
+    /**
+     * 津贴字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer allowanceCalculate;
+
+    /**
+     * 养老保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer insuranceOldCalculate;
+
+    /**
+     * 医疗保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer insuranceMedicalCalculate;
+
+    /**
+     * 失业保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer insuranceLosejobCalculate;
+
+    /**
+     * 工伤保险字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer insuranceInjuryCalculate;
+
+    /**
+     * 住房公积金字段, 1-参与计算,0-不参与计算
+     */
+    @TableField(exist = false)
+    private Integer houseFundCalculate;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.companyId;
+    }
+
+    public FinanceFixedcolname copyFromCalculate(FinanceCalculate calculate) {
+        this.monthCostCalculate = calculate.getMonthCostCalculate();
+        this.bonusCalculate = calculate.getBonusCalculate();
+        this.allowanceCalculate = calculate.getAllowanceCalculate();
+        this.insuranceOldCalculate = calculate.getInsuranceOldCalculate();
+        this.insuranceMedicalCalculate = calculate.getInsuranceMedicalCalculate();
+        this.insuranceLosejobCalculate = calculate.getInsuranceLosejobCalculate();
+        this.insuranceInjuryCalculate = calculate.getInsuranceInjuryCalculate();
+        this.houseFundCalculate = calculate.getHouseFundCalculate();
+        return this;
+    }
+
+    public FinanceCalculate toCalculateObj() {
+        FinanceCalculate calculate = new FinanceCalculate();
+        calculate.setCompanyId(companyId);
+        calculate.setAllowanceCalculate(1);
+        calculate.setBonusCalculate(bonusCalculate);
+        calculate.setHouseFundCalculate(houseFundCalculate);
+        calculate.setInsuranceInjuryCalculate(insuranceInjuryCalculate);
+        calculate.setInsuranceMedicalCalculate(insuranceMedicalCalculate);
+        calculate.setInsuranceLosejobCalculate(insuranceLosejobCalculate);
+        calculate.setInsuranceOldCalculate(insuranceOldCalculate);
+        calculate.setMonthCostCalculate(monthCostCalculate);
+        return calculate;
+    }
+}

+ 103 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceImport.java

@@ -0,0 +1,103 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceImport extends Model<FinanceImport> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("ymonth")
+    private String ymonth;
+
+    @TableField("file_name")
+    private String fileName;
+
+    @TableField("server_name")
+    private String serverName;
+
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime indate;
+
+    /**
+     * 操作人id
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 操作人姓名
+     */
+    @TableField("user_name")
+    private String userName;
+
+    /**
+     * 0-待审核,1-已通过,2-已驳回,-1 -已撤销
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 审核人id
+     */
+    @TableField("auditor_id")
+    private String auditorId;
+
+    /**
+     * 审核人姓名
+     */
+    @TableField("auditor_name")
+    private String auditorName;
+
+    /**
+     * 是否重新计算日报
+     */
+    @TableField("recover_report")
+    private Integer recoverReport;
+
+    /**
+     * 是否覆盖月薪
+     */
+    @TableField("recover_monthcost")
+    private Integer recoverMonthcost;
+
+    /**
+     * 驳回原因
+     */
+    @TableField("reject_reason")
+    private String rejectReason;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 69 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceProjects.java

@@ -0,0 +1,69 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-02-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceProjects extends Model<FinanceProjects> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 年月
+     */
+    @TableField("ymonth")
+    private String ymonth;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 项目名称
+     */
+    @TableField("project_name")
+    private String projectName;
+
+    /**
+     * 项目编号
+     */
+    @TableField("project_code")
+    private String projectCode;
+
+    @TableField(exist = false)
+    private String categoryName;
+
+    @TableField(exist = false)
+    private Integer categoryId;
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 52 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FinanceTblcuscol.java

@@ -0,0 +1,52 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class FinanceTblcuscol extends Model<FinanceTblcuscol> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 自定义字段名称
+     */
+    @TableField("field_name")
+    private String fieldName;
+
+    /**
+     * 1-参与计算,0-不参与计算
+     */
+    @TableField("need_calculate")
+    private Integer needCalculate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 10 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormFieldHead.java

@@ -0,0 +1,10 @@
+package com.management.collectdata.entity;
+
+import lombok.Data;
+
+@Data
+public class FormFieldHead {
+    private String columnVal;
+    private String columnName;
+    private String tableName;
+}

+ 29 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormTransColumn.java

@@ -0,0 +1,29 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+/**需转义字段*/
+public class FormTransColumn extends Model<FormTransColumn> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("tbl_name")
+    private String tblName;
+
+    @TableField("col_name")
+    private String colName;
+
+    @TableField("trans_type")
+    private Integer transType;
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/FormTransCondition.java

@@ -0,0 +1,14 @@
+package com.management.collectdata.entity;
+
+import lombok.Data;
+
+@Data
+public class FormTransCondition {
+    private String tblName;
+    private String tblAlias;
+    private String colName;
+    private String useVal;//模糊匹配的数据
+
+    /**1人名转义 2部门转义*/
+    private Integer transType;
+}

+ 117 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupBudgetReview.java

@@ -0,0 +1,117 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-02-19
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GroupBudgetReview extends Model<GroupBudgetReview> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 分组id
+     */
+    @TableField("group_id")
+    private Integer groupId;
+
+    /**
+     * 变更前
+     */
+    @TableField("old_man_day")
+    private Integer oldManDay;
+
+    /**
+     * 变更值
+     */
+    @TableField("change_man_day")
+    private Integer changeManDay;
+
+    /**
+     * 变更后
+     */
+    @TableField("now_man_day")
+    private Integer nowManDay;
+
+    /**
+     * 0-待审核 1-审核通过 2-驳回
+     */
+    @TableField("status")
+    private Integer status;
+
+    @TableField("create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 操作人id
+     */
+    @TableField("creator_id")
+    private String creatorId;
+
+    /**
+     * 任务名称
+     */
+    @TableField("group_name")
+    private String groupName;
+
+    /**
+     * 分组名称
+     */
+    @TableField("creator")
+    private String creator;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    @TableField("project_name")
+    private String projectName;
+
+    /**
+     * 变更原因
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 驳回理由
+     */
+    @TableField("reject_reason")
+    private String rejectReason;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 46 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupParticipator.java

@@ -0,0 +1,46 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-04-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GroupParticipator extends Model<GroupParticipator> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("group_id")
+    private Integer groupId;
+
+    @TableField("user_id")
+    private String userId;
+
+    @TableField(exist = false)
+    private String userName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 57 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupTemplate.java

@@ -0,0 +1,57 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GroupTemplate extends Model<GroupTemplate> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("is_system")
+    private Integer isSystem;
+
+    @TableField("cre_with_pro")
+    private Boolean creWithPro;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @TableField(exist = false)
+    private List<GroupTmpstages> stagesList;
+    @TableField(exist = false)
+    private Boolean selected = false;
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 46 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GroupTmpstages.java

@@ -0,0 +1,46 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2021-05-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GroupTmpstages extends Model<GroupTmpstages> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("template_id")
+    private Integer templateId;
+
+    @TableField("stages_name")
+    private String stagesName;
+
+    @TableField("sequence")
+    private Integer sequence;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 105 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/GtemplateTask.java

@@ -0,0 +1,105 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class GtemplateTask extends Model<GtemplateTask> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 任务内容
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 任务级别,0-一般 1-重要 2-紧急
+     */
+    @TableField("task_level")
+    private Integer taskLevel;
+
+    /**
+     * 当前阶段id
+     */
+    @TableField("tstages_id")
+    private Integer tstagesId;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    /**
+     * 排序位置
+     */
+    @TableField("seq")
+    private Integer seq;
+
+    /**
+     * 0-任务,1-里程碑,2-风险
+     */
+    @TableField("task_type")
+    private Integer taskType;
+
+    /**
+     * 模板id
+     */
+    @TableField("gtemplate_id")
+    private Integer gtemplateId;
+
+    @TableField("task_desc")
+    private String taskDesc;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+
+//    public static GtemplateTask fromTask(Task task) {
+//        GtemplateTask item = new GtemplateTask();
+//        item.setCompanyId(task.getCompanyId());
+//        item.setName(task.getName());
+//        item.setSeq(task.getSeq());
+//        item.setTaskLevel(task.getTaskLevel());
+//        item.setTaskType(task.getTaskType());
+//        item.setTaskDesc(task.getTaskDesc());
+//        return item;
+//    }
+//
+//    public Task toTask() {
+//        Task task = new Task();
+//        task.setName(name);
+//        task.setTaskLevel(taskLevel);
+//        task.setTaskType(taskType);
+//        task.setCompanyId(companyId);
+//        task.setSeq(seq);
+//        task.setTaskDesc(taskDesc);
+//        task.setCreateDate(LocalDate.now());
+//        return task;
+//    }
+}

+ 77 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/Information.java

@@ -0,0 +1,77 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 提示消息
+ * </p>
+ *
+ * @author Seyason
+ * @since 2024-07-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Information extends Model<Information> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 消息所有者
+     */
+    @TableField("user_id")
+    private String userId;
+
+    /**
+     * 类型 0-审批未通过或撤销,1-任务待执行, 2-任务有进展,3-费用报销待审核 4-合同被驳回,5-合同审核通过,6-合同待审核
+     */
+    @TableField("type")
+    private Integer type;
+
+    /**
+     * 附加数据
+     */
+    @TableField("content")
+    private String content;
+
+    /**
+     * 时间
+     */
+    @TableField("time")
+    private Date time;
+
+    /**
+     * 是否被查看
+     */
+    @TableField("checked")
+    private Integer checked;
+
+    @TableField("msg")
+    private String msg;
+
+    @TableField("path")
+    private String path;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 72 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveAuditLog.java

@@ -0,0 +1,72 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-12-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class LeaveAuditLog extends Model<LeaveAuditLog> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 表单id
+     */
+    @TableField("sheet_id")
+    private Integer sheetId;
+
+    /**
+     * 审批节点id
+     */
+    @TableField("audit_node_id")
+    private Integer auditNodeId;
+
+    @TableField("auditor_id")
+    private String auditorId;
+
+    @TableField("auditor_name")
+    private String auditorName;
+
+    /**
+     * 是否审核通过,1-通过,0-驳回
+     */
+    @TableField("is_pass")
+    private Integer isPass;
+
+    @TableField("indate")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime indate;
+
+    @TableField("deny_reason")
+    private String denyReason;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 49 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeavePmaudit.java

@@ -0,0 +1,49 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-04-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class LeavePmaudit extends Model<LeavePmaudit> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("leave_id")
+    private Integer leaveId;
+
+    @TableField("auditor_id")
+    private String auditorId;
+
+    /**
+     * 0-待审核,1-已通过,2-已驳回
+     */
+    @TableField("status")
+    private Integer status;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 76 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveQuotaNum.java

@@ -0,0 +1,76 @@
+package com.management.collectdata.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2022-05-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class LeaveQuotaNum extends Model<LeaveQuotaNum> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField(exist = false)
+    private String department;
+
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField("user_dingding_id")
+    private String userDingdingId;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("leave_code")
+    private String leaveCode;
+
+    @TableField("start_time")
+    private String startTime;
+
+    @TableField("end_time")
+    private String endTime;
+
+    @TableField("quota_in_hours")
+    private String quotaInHours;
+
+    @TableField("quota_in_days")
+    private String quotaInDays;
+
+    @TableField("used_in_hours")
+    private String usedInHours;
+
+    @TableField("used_in_days")
+    private String usedInDays;
+
+    @TableField("left_in_hours")
+    private String leftInHours;
+
+    @TableField("left_in_days")
+    private String leftInDays;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 0 - 0
fhKeeper/formulahousekeeper/management-crm-qrcodeNew/src/main/java/com/management/collectdata/entity/LeaveSheet.java


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