Browse Source

代码合并

夏文涛 2 years ago
parent
commit
e299d895af

+ 272 - 399
.idea/workspace.xml

@@ -2,99 +2,23 @@
 <project version="4">
 <project version="4">
   <component name="ChangeListManager">
   <component name="ChangeListManager">
     <list default="true" id="33456f28-da03-4d10-99dd-fd9bd193cf84" name="Default Changelist" comment="">
     <list default="true" id="33456f28-da03-4d10-99dd-fd9bd193cf84" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RecordEvaluateVo.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/SystemMessagePageVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairEvaluateControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairEvaluateControllerAPI.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairLeaveMessageControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairLeaveMessageControllerAPI.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairSystemMessagesControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/api/RepairSystemMessagesControllerAPI.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DateUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DateUtils.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairEvaluateMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairEvaluateMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairSystemMessagesMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairSystemMessagesMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairUserMapper.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairCollaborateRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairCollaborateRecord.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairRecord.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTrackRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTrackRecord.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTransferRecord.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairTransferRecord.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/collaborateApplyRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/collaborateApplyRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/finishOrderRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/finishOrderRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/repairRecordRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/repairRecordRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/transferApplyRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/transferApplyRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/transferOrderRequest.java" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/request/transferRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/transferRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/CollaborateDetailVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/CollaborateDetailVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairCardNumberVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairCardNumberVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/TransferDetailVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/TransferDetailVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairDispatchRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairDispatchRecordService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairReceivingService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairReceivingService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairSystemMessagesService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairSystemMessagesService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairUserService.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairDispatchRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairDispatchRecordServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairEvaluateServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairEvaluateServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairSystemMessagesServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairSystemMessagesServiceImpl.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairUserServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairPayRecordMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairPayRecordMapper.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/ProsperityRepairPayRecordsVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/ProsperityRepairPayRecordsVo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/RepairPayRecordService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/application-dev.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-dev.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/application-prod.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-prod.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/application-prod.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application-prod.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/application.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/application.yml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairCollaborateRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairCollaborateRecordMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairDispatchRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairDispatchRecordMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairEvaluateMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairEvaluateMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairPayRecordMapper.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemMessagesMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairSystemMessagesMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairTransferRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairTransferRecordMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application-dev.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application-prod.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/application.yml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/excelFile/耗材管理模板.xlsx" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/excelFile/自定义排班模板.xlsx" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairAdminMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairAreaMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairArticleTypeMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairClassesSettingsMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairCloseMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairCollaborateRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairConsumablesMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairConsumeMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairDispatchRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairEvaluateMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairLeaveMessageMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairNoticeSettingMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairPayRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairReceivingMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRefundRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairSchoolMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairShiftSettingsMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairSystemMessagesMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairSystemSettingMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairTrackRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairTransferRecordMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairUserMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairWorkTypeMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/WxAccessTokenMapper.xml" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/maven-archiver/pom.properties" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst" beforeDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/repair_system-0.0.1-SNAPSHOT.jar.original" beforeDir="false" />
     </list>
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -107,100 +31,34 @@
   <component name="DefaultGradleProjectSettings">
   <component name="DefaultGradleProjectSettings">
     <option name="isMigrated" value="true" />
     <option name="isMigrated" value="true" />
   </component>
   </component>
+  <component name="FavoritesManager">
+    <favorites_list name="repair_report" />
+  </component>
   <component name="FileEditorManager">
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="3443">
-              <caret line="1182" column="21" selection-start-line="1182" selection-start-column="16" selection-end-line="1182" selection-end-column="21" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairClassesSettingsMapper.xml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="322">
-              <caret line="14" column="39" selection-start-line="14" selection-start-column="16" selection-end-line="14" selection-end-column="39" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairClassesSettingsServiceImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="272">
-              <caret line="67" column="52" selection-start-line="67" selection-start-column="34" selection-end-line="67" selection-end-column="52" />
-            </state>
-          </provider>
-        </entry>
-      </file>
       <file pinned="false" current-in-tab="false">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="131">
-              <caret line="147" column="36" selection-start-line="147" selection-start-column="36" selection-end-line="147" selection-end-column="36" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/ClassesSettingVo.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="391">
-              <caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairUserController.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="502">
-              <caret line="221" column="41" selection-start-line="221" selection-start-column="24" selection-end-line="221" selection-end-column="41" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="644">
-              <caret line="43" column="39" selection-start-line="43" selection-start-column="39" selection-end-line="43" selection-end-column="39" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="1449">
-              <caret line="91" column="19" selection-start-line="91" selection-start-column="19" selection-end-line="91" selection-end-column="19" />
+            <state relative-caret-position="269">
+              <caret line="310" column="12" selection-start-line="310" selection-start-column="12" selection-end-line="310" selection-end-column="12" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
       <file pinned="false" current-in-tab="false">
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairArticleTypeController.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="292">
-              <caret line="130" column="114" selection-start-line="130" selection-start-column="114" selection-end-line="130" selection-end-column="114" />
+            <state relative-caret-position="345">
+              <caret line="15" column="25" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="25" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
       </file>
       </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java">
           <provider selected="true" editor-type-id="text-editor">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="378">
-              <caret line="136" column="56" selection-start-line="136" selection-start-column="56" selection-end-line="136" selection-end-column="56" />
+            <state relative-caret-position="233">
+              <caret line="38" column="33" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="33" />
             </state>
             </state>
           </provider>
           </provider>
         </entry>
         </entry>
@@ -217,23 +75,6 @@
   </component>
   </component>
   <component name="FindInProjectRecents">
   <component name="FindInProjectRecents">
     <findStrings>
     <findStrings>
-      <find>String voice;</find>
-      <find>.voice</find>
-      <find>queryCollaborateDetail</find>
-      <find>repairRecordRequest</find>
-      <find>cooperationDetail</find>
-      <find>tr.get</find>
-      <find>EXISTS</find>
-      <find>date</find>
-      <find>cooperationOrders</find>
-      <find>repairUser</find>
-      <find>减去</find>
-      <find>collaborateApply</find>
-      <find>inserBatchEvaluate</find>
-      <find>transfer</find>
-      <find>userIds</find>
-      <find>inserBatchSystemMessage</find>
-      <find>queryPendingOrder</find>
       <find>updateRepairSystemMessages</find>
       <find>updateRepairSystemMessages</find>
       <find>querySystemMessagePage</find>
       <find>querySystemMessagePage</find>
       <find>new RepairSystemMessages()</find>
       <find>new RepairSystemMessages()</find>
@@ -243,10 +84,27 @@
       <find>合法</find>
       <find>合法</find>
       <find>updateAddressBookRequest</find>
       <find>updateAddressBookRequest</find>
       <find>RepairCardNumberVo</find>
       <find>RepairCardNumberVo</find>
+      <find>queryClassesSettingList</find>
+      <find>build</find>
+      <find>/queryProsperityRepairPayRecords</find>
+      <find>autoDispatchUser</find>
+      <find>queryProsperityRepairPayRecords</find>
+      <find>comp</find>
       <find>抢单</find>
       <find>抢单</find>
       <find>getRepairByUserIds</find>
       <find>getRepairByUserIds</find>
-      <find>build</find>
-      <find>queryClassesSettingList</find>
+      <find>queryTotal</find>
+      <find>area_name</find>
+      <find>queryManagePage</find>
+      <find>queryNotTimeout</find>
+      <find>route</find>
+      <find>routes</find>
+      <find>queryTimeout</find>
+      <find>Con</find>
+      <find>CONTACT</find>
+      <find>TimeOut</find>
+      <find>NotTimeOut</find>
+      <find>Openid</find>
+      <find>ipconfig</find>
     </findStrings>
     </findStrings>
     <replaceStrings>
     <replaceStrings>
       <replace>RepairConsume</replace>
       <replace>RepairConsume</replace>
@@ -287,13 +145,6 @@
   <component name="IdeDocumentHistory">
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
     <option name="CHANGED_PATHS">
       <list>
       <list>
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairClassesSettingsMapper.xml" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairDispatchRecordServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairDispatchRecordService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairReceivingService.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairDispatchRecordMapper.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairCardNumberVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairCardNumberVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java" />
@@ -317,11 +168,8 @@
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairEvaluateMapper.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairEvaluateMapper.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/application-prod.yml" />
-        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/config/ScheduledConfig.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/config/ScheduledConfig.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
-        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java" />
@@ -335,9 +183,19 @@
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairSystemMessagesController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java" />
+        <option value="$PROJECT_DIR$/src/main/resources/application-prod.yml" />
+        <option value="$PROJECT_DIR$/src/main/resources/application-dev.yml" />
+        <option value="$PROJECT_DIR$/src/main/resources/application.yml" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java" />
       </list>
       </list>
     </option>
     </option>
   </component>
   </component>
@@ -370,7 +228,7 @@
     <option name="skipTests" value="true" />
     <option name="skipTests" value="true" />
   </component>
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-7" />
+    <option name="x" value="953" />
     <option name="width" value="974" />
     <option name="width" value="974" />
     <option name="height" value="1039" />
     <option name="height" value="1039" />
   </component>
   </component>
@@ -380,6 +238,8 @@
       <foldersAlwaysOnTop value="true" />
       <foldersAlwaysOnTop value="true" />
     </navigator>
     </navigator>
     <panes>
     <panes>
+      <pane id="Scope" />
+      <pane id="PackagesPane" />
       <pane id="ProjectPane">
       <pane id="ProjectPane">
         <subPane>
         <subPane>
           <expand>
           <expand>
@@ -448,6 +308,16 @@
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
               <item name="model" type="462c0819:PsiDirectoryNode" />
               <item name="model" type="462c0819:PsiDirectoryNode" />
+              <item name="enumModel" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
               <item name="pojo" type="462c0819:PsiDirectoryNode" />
               <item name="pojo" type="462c0819:PsiDirectoryNode" />
             </path>
             </path>
             <path>
             <path>
@@ -457,6 +327,16 @@
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="main" type="462c0819:PsiDirectoryNode" />
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="java" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
               <item name="repair" type="462c0819:PsiDirectoryNode" />
+              <item name="model" type="462c0819:PsiDirectoryNode" />
+              <item name="vo" type="462c0819:PsiDirectoryNode" />
+            </path>
+            <path>
+              <item name="repair_report" type="b2602c69:ProjectViewProjectNode" />
+              <item name="repair_backend" type="462c0819:PsiDirectoryNode" />
+              <item name="src" type="462c0819:PsiDirectoryNode" />
+              <item name="main" type="462c0819:PsiDirectoryNode" />
+              <item name="java" type="462c0819:PsiDirectoryNode" />
+              <item name="repair" type="462c0819:PsiDirectoryNode" />
               <item name="services" type="462c0819:PsiDirectoryNode" />
               <item name="services" type="462c0819:PsiDirectoryNode" />
             </path>
             </path>
             <path>
             <path>
@@ -488,8 +368,6 @@
           <select />
           <select />
         </subPane>
         </subPane>
       </pane>
       </pane>
-      <pane id="Scope" />
-      <pane id="PackagesPane" />
     </panes>
     </panes>
   </component>
   </component>
   <component name="PropertiesComponent">
   <component name="PropertiesComponent">
@@ -511,15 +389,12 @@
     <selection>jr</selection>
     <selection>jr</selection>
   </component>
   </component>
   <component name="RecentsManager">
   <component name="RecentsManager">
-    <key name="MoveFile.RECENT_KEYS">
-      <recent name="D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\resources\mapper\repair" />
-      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources\mapper\repair" />
-      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources" />
-      <recent name="D:\Bingo\Desktop\工作内容\报修系统\Back-endDevelopmentFramework\src\main\resources\mapper\video" />
-    </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
       <recent name="com.template" />
       <recent name="com.template" />
     </key>
     </key>
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources\excelFile" />
+    </key>
     <key name="CopyClassDialog.RECENTS_KEY">
     <key name="CopyClassDialog.RECENTS_KEY">
       <recent name="com.repair.model.vo" />
       <recent name="com.repair.model.vo" />
       <recent name="com.repair.model.request" />
       <recent name="com.repair.model.request" />
@@ -527,8 +402,11 @@
       <recent name="com.repair.model.enumModel" />
       <recent name="com.repair.model.enumModel" />
       <recent name="com.repair.common.utils" />
       <recent name="com.repair.common.utils" />
     </key>
     </key>
-    <key name="CopyFile.RECENT_KEYS">
-      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources\excelFile" />
+    <key name="MoveFile.RECENT_KEYS">
+      <recent name="D:\Bingo\Desktop\工作内容\报修系统\repair_backend\src\main\resources\mapper\repair" />
+      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources\mapper\repair" />
+      <recent name="D:\Bingo\Desktop\工作内容\报修系统\BackRepairSystem\src\main\resources" />
+      <recent name="D:\Bingo\Desktop\工作内容\报修系统\Back-endDevelopmentFramework\src\main\resources\mapper\video" />
     </key>
     </key>
   </component>
   </component>
   <component name="RunDashboard">
   <component name="RunDashboard">
@@ -664,12 +542,14 @@
       <workItem from="1692264980576" duration="16000" />
       <workItem from="1692264980576" duration="16000" />
       <workItem from="1692274596024" duration="691000" />
       <workItem from="1692274596024" duration="691000" />
       <workItem from="1692275638971" duration="254000" />
       <workItem from="1692275638971" duration="254000" />
-      <workItem from="1692276778311" duration="2606000" />
+      <workItem from="1692276778311" duration="8094000" />
+      <workItem from="1692328425694" duration="3410000" />
+      <workItem from="1692338996790" duration="5780000" />
     </task>
     </task>
     <servers />
     <servers />
   </component>
   </component>
   <component name="TimeTrackingManager">
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="772172000" />
+    <option name="totallyTimeSpent" value="786850000" />
   </component>
   </component>
   <component name="TodoView">
   <component name="TodoView">
     <todo-panel id="selected-file">
     <todo-panel id="selected-file">
@@ -682,28 +562,28 @@
   </component>
   </component>
   <component name="ToolWindowManager">
   <component name="ToolWindowManager">
     <frame x="-8" y="-8" width="1936" height="1048" extended-state="6" />
     <frame x="-8" y="-8" width="1936" height="1048" extended-state="6" />
-    <editor active="true" />
     <layout>
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.108742006" />
-      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info id="Designer" order="2" />
-      <window_info id="JRebel" order="3" side_tool="true" />
-      <window_info id="Image Layers" order="4" />
-      <window_info id="Capture Tool" order="5" />
-      <window_info id="UI Designer" order="6" />
-      <window_info id="Favorites" order="7" side_tool="true" />
-      <window_info id="Web" order="8" side_tool="true" />
+      <window_info id="Designer" order="0" />
+      <window_info id="Structure" order="1" sideWeight="0.49781182" side_tool="true" weight="0.13219616" />
+      <window_info id="JRebel" order="2" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
+      <window_info id="Image Layers" order="3" />
+      <window_info id="Capture Tool" order="4" />
+      <window_info id="UI Designer" order="5" />
+      <window_info id="Ant Build" order="6" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
+      <window_info id="Favorites" order="7" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
+      <window_info id="Web" order="8" sideWeight="0.50547045" side_tool="true" weight="0.13219616" />
+      <window_info content_ui="combo" id="Project" order="9" sideWeight="0.5021882" visible="true" weight="0.13219616" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32603937" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32603937" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.34573305" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.7571116" />
+      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.3369803" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.032822758" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32932165" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32932165" />
       <window_info anchor="bottom" id="Spring" order="7" weight="0.32932165" />
       <window_info anchor="bottom" id="Spring" order="7" weight="0.32932165" />
       <window_info anchor="bottom" id="Terminal" order="8" weight="0.32928178" />
       <window_info anchor="bottom" id="Terminal" order="8" weight="0.32928178" />
       <window_info anchor="bottom" id="Docker" order="9" />
       <window_info anchor="bottom" id="Docker" order="9" />
-      <window_info anchor="bottom" id="Messages" order="10" weight="0.29978117" />
+      <window_info anchor="bottom" id="Messages" order="10" weight="0.2994475" />
       <window_info anchor="bottom" id="Java Enterprise" order="11" />
       <window_info anchor="bottom" id="Java Enterprise" order="11" />
       <window_info anchor="bottom" id="Database Changes" order="12" />
       <window_info anchor="bottom" id="Database Changes" order="12" />
       <window_info anchor="bottom" id="Version Control" order="13" />
       <window_info anchor="bottom" id="Version Control" order="13" />
@@ -711,16 +591,15 @@
       <window_info anchor="bottom" id="JRebel Console" order="15" side_tool="true" />
       <window_info anchor="bottom" id="JRebel Console" order="15" side_tool="true" />
       <window_info anchor="bottom" id="Event Log" order="16" weight="0.32822758" />
       <window_info anchor="bottom" id="Event Log" order="16" weight="0.32822758" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
-      <window_info anchor="right" id="Ant Build" order="1" weight="0.24945295" />
-      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-      <window_info anchor="right" id="Maven" order="3" weight="0.76477027" />
-      <window_info anchor="right" id="Palette" order="4" />
-      <window_info anchor="right" id="Capture Analysis" order="5" />
-      <window_info anchor="right" id="Database" order="6" />
-      <window_info anchor="right" id="Palette&#9;" order="7" />
-      <window_info anchor="right" id="Theme Preview" order="8" />
-      <window_info anchor="right" id="Bean Validation" order="9" />
-      <window_info anchor="right" id="JRebel Setup Guide" order="10" side_tool="true" weight="0.32995737" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="1" weight="0.25" />
+      <window_info anchor="right" id="Maven" order="2" visible="true" weight="0.34594882" />
+      <window_info anchor="right" id="Palette" order="3" />
+      <window_info anchor="right" id="Capture Analysis" order="4" />
+      <window_info anchor="right" id="Database" order="5" weight="0.32932165" />
+      <window_info anchor="right" id="Palette&#9;" order="6" />
+      <window_info anchor="right" id="Theme Preview" order="7" />
+      <window_info anchor="right" id="Bean Validation" order="8" />
+      <window_info anchor="right" id="JRebel Setup Guide" order="9" side_tool="true" weight="0.32995737" />
     </layout>
     </layout>
   </component>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
   <component name="TypeScriptGeneratedFilesManager">
@@ -748,12 +627,6 @@
           <option name="timeStamp" value="137" />
           <option name="timeStamp" value="137" />
         </line-breakpoint>
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
         <line-breakpoint enabled="true" type="java-line">
-          <url>file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java</url>
-          <line>151</line>
-          <properties />
-          <option name="timeStamp" value="147" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTechnicianVo.java</url>
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTechnicianVo.java</url>
           <line>76</line>
           <line>76</line>
           <properties />
           <properties />
@@ -821,13 +694,13 @@
         </line-breakpoint>
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1055</line>
+          <line>1061</line>
           <properties />
           <properties />
           <option name="timeStamp" value="263" />
           <option name="timeStamp" value="263" />
         </line-breakpoint>
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1761</line>
+          <line>1767</line>
           <properties />
           <properties />
           <option name="timeStamp" value="264" />
           <option name="timeStamp" value="264" />
         </line-breakpoint>
         </line-breakpoint>
@@ -851,13 +724,13 @@
         </line-breakpoint>
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1162</line>
+          <line>1168</line>
           <properties />
           <properties />
           <option name="timeStamp" value="274" />
           <option name="timeStamp" value="274" />
         </line-breakpoint>
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java</url>
-          <line>1372</line>
+          <line>1378</line>
           <properties />
           <properties />
           <option name="timeStamp" value="275" />
           <option name="timeStamp" value="275" />
         </line-breakpoint>
         </line-breakpoint>
@@ -905,104 +778,6 @@
     <option name="FILTER_TARGETS" value="false" />
     <option name="FILTER_TARGETS" value="false" />
   </component>
   </component>
   <component name="editorHistoryManager">
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eRecordStatu.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="16" column="4" selection-start-line="16" selection-start-column="4" selection-end-line="16" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/transferRequest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="115">
-          <caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairEvaluate.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="568">
-          <caret line="51" column="26" selection-start-line="51" selection-start-column="19" selection-end-line="51" selection-end-column="26" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.0.5/mybatis-plus-core-3.0.5.jar!/com/baomidou/mybatisplus/core/MybatisDefaultParameterHandler.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="405">
-          <caret line="53" selection-start-line="53" selection-end-line="53" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-core/3.0.5/mybatis-plus-core-3.0.5.jar!/com/baomidou/mybatisplus/core/MybatisXMLLanguageDriver.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
-          <caret line="17" selection-start-line="17" selection-end-line="17" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/statement/BaseStatementHandler.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="331">
-          <caret line="70" selection-start-line="70" selection-end-line="70" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/statement/PreparedStatementHandler.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="276">
-          <caret line="40" selection-start-line="40" selection-end-line="40" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/statement/RoutingStatementHandler.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="644">
-          <caret line="54" selection-start-line="54" selection-end-line="54" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/session/Configuration.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="630">
-          <caret line="559" selection-start-line="559" selection-end-line="559" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/BatchExecutor.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="484">
-          <caret line="78" selection-start-line="78" selection-end-line="78" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/BaseExecutor.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="116" selection-start-line="116" selection-end-line="116" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/executor/CachingExecutor.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="285">
-          <caret line="75" selection-start-line="75" selection-end-line="75" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/plugin/Invocation.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="621">
-          <caret line="48" selection-start-line="48" selection-end-line="48" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="jar://$MAVEN_REPOSITORY$/com/baomidou/mybatis-plus-extension/3.0.5/mybatis-plus-extension-3.0.5.jar!/com/baomidou/mybatisplus/extension/plugins/OptimisticLockerInterceptor.class">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="644">
-          <caret line="57" selection-start-line="57" selection-end-line="57" />
-        </state>
-      </provider>
-    </entry>
     <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/plugin/Plugin.java">
     <entry file="jar://$MAVEN_REPOSITORY$/org/mybatis/mybatis/3.4.6/mybatis-3.4.6-sources.jar!/org/apache/ibatis/plugin/Plugin.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="285">
         <state relative-caret-position="285">
@@ -1056,13 +831,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="449">
-          <caret line="41" column="70" selection-start-line="41" selection-start-column="70" selection-end-line="41" selection-end-column="70" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairRecordService.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="219">
         <state relative-caret-position="219">
@@ -1070,16 +838,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="224">
-          <caret line="74" column="93" selection-start-line="74" selection-start-column="93" selection-end-line="74" selection-end-column="93" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java" />
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/RepairEvaluateService.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
@@ -1091,13 +849,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-932">
-          <caret line="159" column="54" selection-start-line="159" selection-start-column="37" selection-end-line="159" selection-end-column="54" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairReceivingServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-1048">
         <state relative-caret-position="-1048">
@@ -1147,13 +898,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="8280">
-          <caret line="360" column="79" selection-start-line="360" selection-start-column="69" selection-end-line="360" selection-end-column="79" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairSystemMessagesServiceImpl.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairSystemMessagesServiceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="621">
         <state relative-caret-position="621">
@@ -1168,20 +912,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="4393">
-          <caret line="225" column="27" selection-start-line="225" selection-start-column="27" selection-end-line="225" selection-end-column="27" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3197">
-          <caret line="139" column="57" selection-start-line="139" selection-start-column="41" selection-end-line="139" selection-end-column="57" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairSystemMessages.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="644">
         <state relative-caret-position="644">
@@ -1203,13 +933,6 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="378">
-          <caret line="136" column="56" selection-start-line="136" selection-start-column="56" selection-end-line="136" selection-end-column="56" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairUser.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairUser.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="295">
         <state relative-caret-position="295">
@@ -1241,30 +964,180 @@
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairClassesSettingsMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="322">
+          <caret line="14" column="39" selection-start-line="14" selection-start-column="16" selection-end-line="14" selection-end-column="39" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="269">
+          <caret line="255" column="55" selection-start-line="255" selection-start-column="24" selection-end-line="255" selection-end-column="55" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairPayRecordControllerAPI.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="486">
+          <caret line="38" column="125" selection-start-line="38" selection-start-column="118" selection-end-line="38" selection-end-column="125" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxUtil.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="183">
+          <caret line="51" column="37" selection-start-line="51" selection-start-column="37" selection-end-line="51" selection-end-column="37" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="jar://C:/Program Files/Java/jdk1.8.0_181/src.zip!/java/util/Comparator.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="191">
+          <caret line="463" column="69" selection-start-line="463" selection-start-column="69" selection-end-line="463" selection-end-column="69" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/RepairRecordControllerAPI.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1311">
+          <caret line="68" column="41" selection-start-line="68" selection-start-column="26" selection-end-line="68" selection-end-column="41" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="131">
-          <caret line="147" column="36" selection-start-line="147" selection-start-column="36" selection-end-line="147" selection-end-column="36" />
+        <state relative-caret-position="2944">
+          <caret line="172" column="45" selection-start-line="172" selection-start-column="12" selection-end-line="172" selection-end-column="82" />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairClassesSettingsMapper.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/wxLoginVo.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="322">
-          <caret line="14" column="39" selection-start-line="14" selection-start-column="16" selection-end-line="14" selection-end-column="39" />
+        <state relative-caret-position="805">
+          <caret line="37" column="31" selection-start-line="37" selection-start-column="25" selection-end-line="37" selection-end-column="31" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/mapper/RepairRecordMapper.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="736">
+          <caret line="39" column="30" selection-start-line="39" selection-start-column="30" selection-end-line="39" selection-end-column="30" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="503">
+          <caret line="148" selection-start-line="148" selection-end-line="148" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="147">
+          <caret line="151" column="58" lean-forward="true" selection-start-line="151" selection-start-column="58" selection-end-line="151" selection-end-column="58" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/core/SwaggerConfiguration.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="295">
+          <caret line="34" column="17" selection-start-line="34" selection-start-column="17" selection-end-line="34" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairRecordPageVo.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1564">
+          <caret line="76" column="25" selection-start-line="76" selection-start-column="25" selection-end-line="76" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/enumModel/eRecordStatu.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="184">
+          <caret line="8" column="12" selection-start-line="8" selection-start-column="12" selection-end-line="8" selection-end-column="12" />
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
       <provider selected="true" editor-type-id="text-editor">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="3443">
-          <caret line="1182" column="21" selection-start-line="1182" selection-start-column="16" selection-end-line="1182" selection-end-column="21" />
+        <state relative-caret-position="344">
+          <caret line="794" column="58" selection-start-line="794" selection-start-column="58" selection-end-line="794" selection-end-column="58" />
           <folding>
           <folding>
             <element signature="imports" expanded="true" />
             <element signature="imports" expanded="true" />
           </folding>
           </folding>
         </state>
         </state>
       </provider>
       </provider>
     </entry>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="614">
+          <caret line="294" column="139" selection-start-line="294" selection-start-column="139" selection-end-line="294" selection-end-column="139" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application-prod.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="447">
+          <caret line="58" selection-start-line="58" selection-end-line="66" selection-end-column="43" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="594">
+          <caret line="62" column="8" selection-start-line="62" selection-start-column="2" selection-end-line="62" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/resources/application-dev.yml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="677">
+          <caret line="65" column="43" selection-start-line="65" selection-start-column="43" selection-end-line="65" selection-end-column="43" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/config/WxOpenidConfig.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="580">
+          <caret line="32" column="19" selection-start-line="32" selection-start-column="19" selection-end-line="32" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxCodeVo.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="299">
+          <caret line="15" column="16" selection-start-line="15" selection-start-column="16" selection-end-line="15" selection-end-column="16" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/WxOpenVo.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="345">
+          <caret line="15" column="25" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="25" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/LoginController.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="269">
+          <caret line="310" column="12" selection-start-line="310" selection-start-column="12" selection-end-line="310" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/api/LoginControllerAPI.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="233">
+          <caret line="38" column="33" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
   </component>
   </component>
   <component name="masterDetails">
   <component name="masterDetails">
     <states>
     <states>

+ 6 - 2
src/main/java/com/repair/api/LoginControllerAPI.java

@@ -33,7 +33,11 @@ public interface LoginControllerAPI {
     CommonResult ChangePassword(@Validated @RequestBody changePasswordRequest cpr, @RequestHeader("user_head") String userhead, BindingResult bindingResult);
     CommonResult ChangePassword(@Validated @RequestBody changePasswordRequest cpr, @RequestHeader("user_head") String userhead, BindingResult bindingResult);
 
 
     @GetMapping(value = "/Openid")
     @GetMapping(value = "/Openid")
-    @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST")
-    CommonResult Openid(@RequestParam String wxcode) throws JsonProcessingException;
+    @ApiOperation(value = "微校授权", notes = "微校授权", httpMethod = "POST")
+    CommonResult Openid(@RequestParam String wxcode);
+
+    @GetMapping(value = "/XOpenid")
+    @ApiOperation(value = "微信授权", notes = "微信授权", httpMethod = "POST")
+    CommonResult XOpenid(@RequestParam String code, @RequestParam Integer userId);
 
 
 }
 }

+ 12 - 0
src/main/java/com/repair/api/RepairPayRecordControllerAPI.java

@@ -10,6 +10,7 @@ import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import javax.servlet.http.HttpServletResponse;
 @RequestMapping("/api/repairPayRecord")
 @RequestMapping("/api/repairPayRecord")
 @Api(tags = {"repairPayRecordController"}, value = "支付记录")
 @Api(tags = {"repairPayRecordController"}, value = "支付记录")
 public interface RepairPayRecordControllerAPI {
 public interface RepairPayRecordControllerAPI {
@@ -42,5 +43,16 @@ public interface RepairPayRecordControllerAPI {
     @ApiOperation(value = "实退", notes = "实退", httpMethod = "POST")
     @ApiOperation(value = "实退", notes = "实退", httpMethod = "POST")
     CommonResult refundableAmount(@RequestBody RefundableAmountRequest rar,@RequestHeader("user_head") String userhead, BindingResult bindingResult);
     CommonResult refundableAmount(@RequestBody RefundableAmountRequest rar,@RequestHeader("user_head") String userhead, BindingResult bindingResult);
 
 
+    @GetMapping(value = "/statistics")
+    @ApiOperation(value = "统计", notes = "统计", httpMethod = "GET")
+    CommonResult statistics() throws Exception;
+
+    @GetMapping(value = "/restrict")
+    @ApiOperation(value = "限制实退金额", notes = "限制实退金额", httpMethod = "GET")
+    CommonResult restrict(@RequestParam int payRecordId) throws Exception;
+
+    @GetMapping(value = "/queryExport")
+    @ApiOperation(value = "支付成功记录导出", notes = "支付成功记录导出", httpMethod = "GET")
+    void queryExport(HttpServletResponse response, String keyWord, String startTime, String endTime);
 
 
 }
 }

+ 6 - 0
src/main/java/com/repair/config/WxOpenidConfig.java

@@ -28,4 +28,10 @@ public class WxOpenidConfig {
 
 
     //微校主体码
     //微校主体码
     private String ocode;
     private String ocode;
+
+    //微信小程序appId
+    private String xappid;
+
+    //微信小程序secret
+    private String xsecret;
 }
 }

+ 123 - 15
src/main/java/com/repair/controller/LoginController.java

@@ -1,5 +1,6 @@
 package com.repair.controller;
 package com.repair.controller;
 
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -19,9 +20,7 @@ import com.repair.model.request.changePasswordRequest;
 import com.repair.model.request.loginRequest;
 import com.repair.model.request.loginRequest;
 import com.repair.model.result.CommonResult;
 import com.repair.model.result.CommonResult;
 import com.repair.model.result.Wx_user;
 import com.repair.model.result.Wx_user;
-import com.repair.model.vo.LoginVo;
-import com.repair.model.vo.routeDataVo;
-import com.repair.model.vo.wxLoginVo;
+import com.repair.model.vo.*;
 import com.repair.services.RepairAdminService;
 import com.repair.services.RepairAdminService;
 import com.repair.common.utils.AesUtils;
 import com.repair.common.utils.AesUtils;
 import com.repair.common.utils.paramUtils;
 import com.repair.common.utils.paramUtils;
@@ -38,6 +37,12 @@ import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.client.RestTemplate;
 
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.URL;
+import java.net.URLConnection;
 import java.net.URLEncoder;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
@@ -69,7 +74,7 @@ public class LoginController implements LoginControllerAPI {
     @Override
     @Override
     @PassToken
     @PassToken
     public CommonResult queryReduce() {
     public CommonResult queryReduce() {
-        return CommonResult.ok("ip地址为"+wxOpenidConfig.getIpconfig()+"的系统版本为:1V");
+        return CommonResult.ok("ip地址为" + wxOpenidConfig.getIpconfig() + "的系统版本为:1V");
     }
     }
 
 
     /**
     /**
@@ -196,11 +201,11 @@ public class LoginController implements LoginControllerAPI {
 
 
     @Override
     @Override
     @PassToken
     @PassToken
-    public CommonResult Openid(String wxcode) throws JsonProcessingException {
+    public CommonResult Openid(String wxcode){
         Gson gson = new Gson();
         Gson gson = new Gson();
         String tokenUrl = "https://open.wecard.qq.com/connect/oauth2/token";
         String tokenUrl = "https://open.wecard.qq.com/connect/oauth2/token";
         Map<String, String> tokenParams = new HashMap<>();
         Map<String, String> tokenParams = new HashMap<>();
-        String url = "mnp://wxd6f090391d410534";
+        String url = "mnp://" + wxOpenidConfig.getXappid();
         tokenParams.put("wxcode", wxcode);
         tokenParams.put("wxcode", wxcode);
         tokenParams.put("app_key", wxOpenidConfig.getAppid());
         tokenParams.put("app_key", wxOpenidConfig.getAppid());
         tokenParams.put("app_secret", wxOpenidConfig.getAppkey());
         tokenParams.put("app_secret", wxOpenidConfig.getAppkey());
@@ -237,16 +242,16 @@ public class LoginController implements LoginControllerAPI {
             return CommonResult.fail(e.getMessage());
             return CommonResult.fail(e.getMessage());
         }
         }
 
 
-        if(card_number == null || card_number.equals("")){
+        if (card_number == null || card_number.equals("")) {
             return CommonResult.fail("卡号为空,授权失败");
             return CommonResult.fail("卡号为空,授权失败");
         }
         }
         //根据卡号查询repair_user表中的用户信息
         //根据卡号查询repair_user表中的用户信息
         RepairUser user = repairUserService.getRepairByCardNumber(card_number);
         RepairUser user = repairUserService.getRepairByCardNumber(card_number);
-        if(identity_type != 4 && user == null){
+        if (identity_type != 4 && user == null) {
             return CommonResult.fail("非法权限,授权失败");
             return CommonResult.fail("非法权限,授权失败");
         }
         }
 
 
-        if(user == null){
+        if (user == null) {
             user = new RepairUser();
             user = new RepairUser();
             user.setCardNumber(card_number);
             user.setCardNumber(card_number);
             user.setUserName(user_name);
             user.setUserName(user_name);
@@ -256,7 +261,7 @@ public class LoginController implements LoginControllerAPI {
             user.setSchoolId(eSchool.integerOf(campus));//校区ID
             user.setSchoolId(eSchool.integerOf(campus));//校区ID
             user.setIsChange(0);
             user.setIsChange(0);
             int num = repairUserService.insertRepairUser(user);
             int num = repairUserService.insertRepairUser(user);
-            if(num <= 0){
+            if (num <= 0) {
                 return CommonResult.fail("无法记录用户信息,授权失败");
                 return CommonResult.fail("无法记录用户信息,授权失败");
             }
             }
             RepairAdmin admin = new RepairAdmin();
             RepairAdmin admin = new RepairAdmin();
@@ -268,7 +273,7 @@ public class LoginController implements LoginControllerAPI {
             admin.setStatu(1);
             admin.setStatu(1);
             admin.setIsMobile(1);
             admin.setIsMobile(1);
             int adminNum = repairAdminService.insertRepairAdmin(admin);
             int adminNum = repairAdminService.insertRepairAdmin(admin);
-            if(adminNum <= 0){
+            if (adminNum <= 0) {
                 return CommonResult.fail("无法记录账号信息,授权失败");
                 return CommonResult.fail("无法记录账号信息,授权失败");
             }
             }
         }
         }
@@ -278,8 +283,8 @@ public class LoginController implements LoginControllerAPI {
         wxLoginVo wlv = new wxLoginVo();
         wxLoginVo wlv = new wxLoginVo();
         routeDataVo data = getRoutes(user.getUserZzid());
         routeDataVo data = getRoutes(user.getUserZzid());
         wlv.setUserId(user.getId());
         wlv.setUserId(user.getId());
-        wlv.setRoutes(data == null ? new ArrayList<>() :data.getRoutes());
-        wlv.setBtns(data == null ? new ArrayList<>() :data.getBtns());
+        wlv.setRoutes(data == null ? new ArrayList<>() : data.getRoutes());
+        wlv.setBtns(data == null ? new ArrayList<>() : data.getBtns());
         wlv.setUserName(user.getUserName());
         wlv.setUserName(user.getUserName());
         wlv.setUserZZid(user.getUserZzid());
         wlv.setUserZZid(user.getUserZzid());
         wlv.setUserZZName(eUserZZ.stringOf(user.getUserZzid()));
         wlv.setUserZZName(eUserZZ.stringOf(user.getUserZzid()));
@@ -293,11 +298,112 @@ public class LoginController implements LoginControllerAPI {
         return CommonResult.ok(wlv);
         return CommonResult.ok(wlv);
     }
     }
 
 
-    public routeDataVo getRoutes(Integer userZZid){
+    /**
+     * 获取小程序code换取openid、session_key
+     * userId:用户ID
+     *
+     * @param code
+     * @return
+     */
+    @Override
+    @PassToken
+    public CommonResult XOpenid(String code, Integer userId) {
+        WxOpenVo wov = new WxOpenVo();
+
+        RepairUser user = repairUserService.getRepairById(userId);
+        if (user == null) {
+            return CommonResult.fail("用户信息不合法,无法进行微信授权");
+        }
+
+        if (user.getOpenid() != null) {
+            wov.setOpenId(user.getOpenid());
+            return CommonResult.ok(wov);
+        }
+
+        String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxOpenidConfig.getXappid()
+                + "&secret=" + wxOpenidConfig.getXsecret() + "&js_code=" + code + "&grant_type=authorization_code";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String line;
+        StringBuffer stringBuffer = new StringBuffer();
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+
+            // 设置通用的请求属性 设置请求格式
+            //设置返回类型
+            conn.setRequestProperty("contentType", "text/plain");
+            //设置请求类型
+            conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
+            //设置超时时间
+            conn.setConnectTimeout(1000);
+            conn.setReadTimeout(1000);
+            conn.setDoOutput(true);
+            conn.connect();
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(conn.getOutputStream());
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应    设置接收格式
+            in = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream(), "UTF-8"));
+            while ((line = in.readLine()) != null) {
+                stringBuffer.append(line);
+            }
+            WxCodeVo entity = new WxCodeVo();
+            JSONObject wx = JSONObject.parseObject(stringBuffer.toString());
+
+            // json数据转换成字符串
+            assert wx != null;
+            String openid = wx.get("openid").toString();
+            String sessionkey = wx.get("session_key").toString();
+            // 当主体账户绑定小程序后就可以获取到,未绑定无法获取
+            String unionId = "";
+            if (wx.get("unionid") != null) {
+                unionId = wx.get("unionid").toString();
+            }
+            entity.setOpenid(openid);
+            entity.setSessionkey(sessionkey);
+            entity.setUnionid(unionId);
+
+            //根据用户ID找到用户数据 并把openid绑定进去
+            user.setOpenid(openid);
+            int updateUser = repairUserService.updateRepairUser(user);
+            if (updateUser <= 0) {
+                return CommonResult.fail("更新用户openid失败");
+            }
+
+            wov.setOpenId(user.getOpenid());
+
+            return CommonResult.ok(wov);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+
+        return CommonResult.ok(wov);
+    }
+
+
+    public routeDataVo getRoutes(Integer userZZid) {
         routeDataVo result = new routeDataVo();
         routeDataVo result = new routeDataVo();
         List<String> routes = new ArrayList<>();
         List<String> routes = new ArrayList<>();
         List<String> btns = new ArrayList<>();
         List<String> btns = new ArrayList<>();
-        switch (userZZid){
+        switch (userZZid) {
             //维修师傅
             //维修师傅
             //eUserZZ.Maintenance.getValue():1
             //eUserZZ.Maintenance.getValue():1
             case 1:
             case 1:
@@ -328,6 +434,7 @@ public class LoginController implements LoginControllerAPI {
                 btns.add("报价");
                 btns.add("报价");
                 btns.add("维修完成");
                 btns.add("维修完成");
                 btns.add("派单");
                 btns.add("派单");
+                btns.add("图表");
                 break;
                 break;
             //后勤
             //后勤
             //eUserZZ.Logistics.getValue():3
             //eUserZZ.Logistics.getValue():3
@@ -340,6 +447,7 @@ public class LoginController implements LoginControllerAPI {
                 btns.add("表格编辑");
                 btns.add("表格编辑");
                 btns.add("延时");
                 btns.add("延时");
                 btns.add("派单");
                 btns.add("派单");
+                btns.add("图表");
                 btns.add("审核");
                 btns.add("审核");
                 btns.add("分段器按钮");
                 btns.add("分段器按钮");
                 break;
                 break;

+ 183 - 7
src/main/java/com/repair/controller/RepairPayRecordController.java

@@ -8,10 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.repair.api.RepairPayRecordControllerAPI;
 import com.repair.api.RepairPayRecordControllerAPI;
-import com.repair.common.utils.AesUtils;
-import com.repair.common.utils.TimeExchange;
-import com.repair.common.utils.UUIDUtils;
-import com.repair.common.utils.paramUtils;
+import com.repair.common.utils.*;
 import com.repair.model.enumModel.eIsSuccess;
 import com.repair.model.enumModel.eIsSuccess;
 import com.repair.model.enumModel.eIsSuper;
 import com.repair.model.enumModel.eIsSuper;
 import com.repair.model.enumModel.ePayPageStatu;
 import com.repair.model.enumModel.ePayPageStatu;
@@ -22,7 +19,13 @@ import com.repair.model.request.repairPayRequest;
 import com.repair.model.result.CommonResult;
 import com.repair.model.result.CommonResult;
 import com.repair.model.result.PageUtils;
 import com.repair.model.result.PageUtils;
 import com.repair.model.vo.ProsperityRepairPayRecordsVo;
 import com.repair.model.vo.ProsperityRepairPayRecordsVo;
+import com.repair.model.vo.QueryExportVo;
+import com.repair.model.vo.StatisticsVo;
 import com.repair.services.*;
 import com.repair.services.*;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -30,6 +33,7 @@ import org.springframework.validation.BindingResult;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
@@ -253,7 +257,7 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public CommonResult     queryProsperityRepairPayRecords(int currentPage, int pageCount, String keyWord, String startTime, String endTime) {
+    public CommonResult queryProsperityRepairPayRecords(int currentPage, int pageCount, String keyWord, String startTime, String endTime) {
 
 
         if (startTime != null && endTime != null) {
         if (startTime != null && endTime != null) {
             try {
             try {
@@ -280,10 +284,22 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
             list.forEach(repairUser -> {
             list.forEach(repairUser -> {
                 userIdList.add(repairUser.getId());
                 userIdList.add(repairUser.getId());
             });
             });
-        }else {
+        } else {
             userIdList.add(0);
             userIdList.add(0);
         }
         }
 
 
+        ArrayList<Integer> recordList = new ArrayList<>();
+        LambdaQueryWrapper<RepairRecord> recordWrapper = new LambdaQueryWrapper<>();
+        recordWrapper.like(ObjectUtils.isNotEmpty(keyWord),RepairRecord::getRecordNo,keyWord);
+        List<RepairRecord> list2 = repairRecordService.list(recordWrapper);
+        if (ObjectUtils.isNotEmpty(list2) && list2.size() >= 0) {
+            list2.forEach(repairRecord -> {
+                recordList.add(repairRecord.getId());
+            });
+        } else {
+            recordList.add(0);
+        }
+
 
 
         LambdaQueryWrapper<RepairPayRecord> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<RepairPayRecord> wrapper = new LambdaQueryWrapper<>();
 
 
@@ -292,7 +308,7 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
                 .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), RepairPayRecord::getCreateTime, startTime, endTime)
                 .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), RepairPayRecord::getCreateTime, startTime, endTime)
                 .eq(RepairPayRecord::getIsSuccess, eIsSuccess.Succeed.getValue())
                 .eq(RepairPayRecord::getIsSuccess, eIsSuccess.Succeed.getValue())
                 .or()
                 .or()
-                .like(ObjectUtils.isNotEmpty(keyWord), RepairPayRecord::getRecordId, keyWord)
+                .in(ObjectUtils.isNotEmpty(keyWord), RepairPayRecord::getRecordId, recordList)
                 .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), RepairPayRecord::getCreateTime, startTime, endTime)
                 .between(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime), RepairPayRecord::getCreateTime, startTime, endTime)
                 .eq(RepairPayRecord::getIsSuccess, eIsSuccess.Succeed.getValue());
                 .eq(RepairPayRecord::getIsSuccess, eIsSuccess.Succeed.getValue());
 
 
@@ -334,6 +350,10 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
         List<RepairUser> users = repairUserService.list(userListWrapper);
         List<RepairUser> users = repairUserService.list(userListWrapper);
 
 
 
 
+        LambdaQueryWrapper<RepairRecord> rrWrapper = new LambdaQueryWrapper<>();
+        rrWrapper.in(RepairRecord::getId, recordIdList);
+        List<RepairRecord> list1 = repairRecordService.list(rrWrapper);
+
         records.forEach(rpr -> {
         records.forEach(rpr -> {
             ProsperityRepairPayRecordsVo prrpv = new ProsperityRepairPayRecordsVo();
             ProsperityRepairPayRecordsVo prrpv = new ProsperityRepairPayRecordsVo();
             BeanUtils.copyProperties(rpr, prrpv);
             BeanUtils.copyProperties(rpr, prrpv);
@@ -342,6 +362,14 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
 
 
             Integer recordId = rpr.getRecordId();
             Integer recordId = rpr.getRecordId();
 
 
+//            工单号
+            for (RepairRecord repairRecord : list1) {
+                Integer id = repairRecord.getId();
+                if (id.equals(recordId)) {
+                    prrpv.setRecordNo(repairRecord.getRecordNo());
+                }
+            }
+
             List<RepairRefundRecord> repairRefundRecords = new ArrayList<>();
             List<RepairRefundRecord> repairRefundRecords = new ArrayList<>();
 
 
 //            报修人id
 //            报修人id
@@ -435,5 +463,153 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
 
 
         return CommonResult.fail("实退失败");
         return CommonResult.fail("实退失败");
     }
     }
+
+    /**
+     * 统计
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult statistics() throws Exception {
+        LambdaQueryWrapper<RepairPayRecord> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(RepairPayRecord::getIsSuccess, eIsSuccess.Succeed.getValue());
+
+        List<RepairPayRecord> payRecordList = repairPayRecordService.list(wrapper);
+//        总金额
+        BigDecimal totalPrice=new BigDecimal(0);
+        for (RepairPayRecord repairPayRecord : payRecordList) {
+            BigDecimal payPrice = repairPayRecord.getPayPrice();
+            totalPrice=totalPrice.add(payPrice);
+        }
+
+        LambdaQueryWrapper<RepairRefundRecord> refundWrapper=new LambdaQueryWrapper<>();
+        refundWrapper.eq(RepairRefundRecord::getIsSuccess, eIsSuccess.Succeed.getValue());
+        List<RepairRefundRecord> list = repairRefundRecordService.list(refundWrapper);
+        BigDecimal refundTotalPrice=new BigDecimal(0);
+        for (RepairRefundRecord repairRefundRecord : list) {
+            BigDecimal refundPrice = repairRefundRecord.getRefundPrice();
+            refundTotalPrice=refundTotalPrice.add(refundPrice);
+        }
+        StatisticsVo statisticsVo = new StatisticsVo();
+        statisticsVo.setCount(payRecordList.size());
+        statisticsVo.setTotalPrice(totalPrice);
+        statisticsVo.setRefundTotalPrice(refundTotalPrice);
+
+        return CommonResult.ok(statisticsVo);
+    }
+
+    /**
+     * 限制实退金额
+     * @param payRecordId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult restrict(int payRecordId) throws Exception {
+
+        RepairPayRecord payRecord = repairPayRecordService.getById(payRecordId);
+
+        if (ObjectUtils.isEmpty(payRecord)) {
+            return CommonResult.fail("参数异常");
+        }
+//        实付金额
+        BigDecimal payPrice = payRecord.getPayPrice();
+
+        Integer recordId = payRecord.getRecordId();
+
+        LambdaQueryWrapper<RepairRefundRecord> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(RepairRefundRecord::getRecordId,recordId);
+
+        List<RepairRefundRecord> refundRecordList = repairRefundRecordService.list(wrapper);
+//      退款总金额
+        BigDecimal refundTotalPrice=new BigDecimal(0);
+        for (RepairRefundRecord repairRefundRecord : refundRecordList) {
+            BigDecimal refundPrice = repairRefundRecord.getRefundPrice();
+            refundTotalPrice=refundTotalPrice.add(refundPrice);
+        }
+
+        int i = payPrice.compareTo(refundTotalPrice);
+        if (i>=0) {
+            BigDecimal subtract = payPrice.subtract(refundTotalPrice);
+            return CommonResult.ok(subtract);
+        }
+
+        return CommonResult.fail();
+    }
+
+
+    @Override
+    public void queryExport(HttpServletResponse response, String keyWord, String startTime, String endTime) {
+
+        if (startTime != null && endTime != null) {
+            try {
+                startTime = TimeExchange.getStartOfDayStr(TimeExchange.StringToDate(startTime, "yyyy-MM-dd"));
+                endTime = TimeExchange.getEndOfDayStr(TimeExchange.StringToDate(endTime, "yyyy-MM-dd"));
+            } catch (Exception e) {
+            }
+        }
+
+        List<QueryExportVo> queryExportVoList=repairPayRecordService.queryExport(keyWord,startTime,endTime);
+
+        List<QueryExportVo> vos = new ArrayList<>();
+        for (QueryExportVo queryExportVo : queryExportVoList) {
+            QueryExportVo vo = new QueryExportVo();
+            BeanUtils.copyProperties(queryExportVo,vo);
+//            退款金额
+            BigDecimal refundTotalPrice = queryExportVo.getRefundTotalPrice();
+            if (ObjectUtils.isEmpty(refundTotalPrice)) {
+                refundTotalPrice=new BigDecimal(0);
+                vo.setRefundTotalPrice(refundTotalPrice);
+            }
+//            退款金额=0
+            if (refundTotalPrice.compareTo(new BigDecimal(0))==1) {
+                vo.setStatus("已支付");
+            }
+//            金额
+            BigDecimal payPrice = queryExportVo.getPayPrice();
+            //            退款金额==实收金额
+            if (payPrice.compareTo(refundTotalPrice)==0) {
+                vo.setStatus("已退款");
+            }
+            if (payPrice.compareTo(refundTotalPrice)==1) {
+                vo.setStatus("部分退款");
+            }
+
+            vos.add(vo);
+
+        }
+
+
+        //        导出
+
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("支付成功记录表");
+        Row headerRow = sheet.createRow(0);
+        headerRow.createCell(0).setCellValue("序号");
+        headerRow.createCell(1).setCellValue("交易时间");
+        headerRow.createCell(2).setCellValue("工单号");
+        headerRow.createCell(3).setCellValue("交易流水号");
+        headerRow.createCell(4).setCellValue("报修人");
+        headerRow.createCell(5).setCellValue("交易金额");
+        headerRow.createCell(6).setCellValue("退款金额");
+        headerRow.createCell(7).setCellValue("状态");
+
+        for (int i = 0; i < vos.size(); i++) {
+            QueryExportVo vo = vos.get(i);
+            Row dataRow1 = sheet.createRow(i + 1);
+            dataRow1.createCell(0).setCellValue(vo.getId());
+            dataRow1.createCell(1).setCellValue(vo.getPayTime());
+            dataRow1.createCell(2).setCellValue(vo.getRecordNo());
+            dataRow1.createCell(3).setCellValue(vo.getPayNo());
+            dataRow1.createCell(4).setCellValue(vo.getUserName());
+            dataRow1.createCell(5).setCellValue( vo.getPayPrice().toString());
+            dataRow1.createCell(6).setCellValue( vo.getRefundTotalPrice().toString());
+            dataRow1.createCell(7).setCellValue(vo.getStatus());
+        }
+
+        // 将工作簿写入文件
+        ExcelUtils.excelDownload(workbook, "支付成功表.xlsx", response);
+
+    }
 }
 }
 
 

+ 116 - 28
src/main/java/com/repair/controller/RepairRecordController.java

@@ -80,7 +80,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
     @Autowired
     @Autowired
     private RepairEvaluateService repairEvaluateService;
     private RepairEvaluateService repairEvaluateService;
     @Autowired
     @Autowired
-    private  RepairSchoolService repairSchoolService;
+    private RepairSchoolService repairSchoolService;
     @Autowired
     @Autowired
     private WeiXiaoUtil weiXiaoUtil;
     private WeiXiaoUtil weiXiaoUtil;
 
 
@@ -576,8 +576,10 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                         r.setState("维修中");
                         r.setState("维修中");
                     } else if (r.getMaintenanceState() == 3) {
                     } else if (r.getMaintenanceState() == 3) {
                         r.setState("待处理");
                         r.setState("待处理");
+                    } else if (r.getMaintenanceState() == 4) {
+                        r.setState("待确认");
                     } else if (r.getMaintenanceState() == 5 || r.getMaintenanceState() == 6) {
                     } else if (r.getMaintenanceState() == 5 || r.getMaintenanceState() == 6) {
-                        r.setState("待审核");
+                        r.setState(r.getMaintenanceState() == 5 ? "转单待审核" : "协作待审核");
                     } else if (r.getMaintenanceState() == 7) {
                     } else if (r.getMaintenanceState() == 7) {
                         r.setState("已完成");
                         r.setState("已完成");
                     } else if (r.getMaintenanceState() == 8) {
                     } else if (r.getMaintenanceState() == 8) {
@@ -617,7 +619,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                 stateStr = "=5 or rr.maintenance_state = 6)";
                 stateStr = "=5 or rr.maintenance_state = 6)";
                 result = repairRecordService.queryNotTimeout(currentPage, pageCount, stateStr, keyWord, startTime, endTime, schoolId);
                 result = repairRecordService.queryNotTimeout(currentPage, pageCount, stateStr, keyWord, startTime, endTime, schoolId);
                 for (RepairRecordPageVo r : result.getList()) {
                 for (RepairRecordPageVo r : result.getList()) {
-                    r.setState("待审核");
+                    r.setState(r.getMaintenanceState() == 5 ? "转单待审核" : "协作待审核");
                     r.setDelayed(1);
                     r.setDelayed(1);
                 }
                 }
                 break;
                 break;
@@ -646,7 +648,9 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             case 8:
             case 8:
                 result = repairRecordService.queryTimeout(currentPage, pageCount, keyWord, startTime, endTime, schoolId);
                 result = repairRecordService.queryTimeout(currentPage, pageCount, keyWord, startTime, endTime, schoolId);
                 for (RepairRecordPageVo r : result.getList()) {
                 for (RepairRecordPageVo r : result.getList()) {
-                    r.setState("已超时");
+                    String[] Str = r.getMaintenancerName().split("-");
+                    r.setMaintenancerName(Str.length >= 2 ? Str[0] : "");
+                    r.setState(Str.length >= 2 ? Str[1] : "");
                 }
                 }
                 break;
                 break;
             default:
             default:
@@ -771,6 +775,8 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                 return CommonResult.fail("当天未排班,无法接单!");
                 return CommonResult.fail("当天未排班,无法接单!");
             }
             }
 
 
+            //师傅自己抢单的时候不去限制抢单师傅的楼栋
+
             Integer isDuty = 0;
             Integer isDuty = 0;
             int acceptanceAssessTime = result.getAcceptanceAssessTime();
             int acceptanceAssessTime = result.getAcceptanceAssessTime();
             int maintenanceAssessTime = result.getMaintenanceAssessTime();
             int maintenanceAssessTime = result.getMaintenanceAssessTime();
@@ -2174,7 +2180,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
 
         ArrayList<Integer> userList = new ArrayList<>();
         ArrayList<Integer> userList = new ArrayList<>();
 
 
-//        ArrayList<Integer> recordList = new ArrayList<>();
+        ArrayList<Integer> recordList = new ArrayList<>();
 
 
 //        接单总次数
 //        接单总次数
         HashMap<Integer, List<Integer>> receivingCountMap = new HashMap<>();
         HashMap<Integer, List<Integer>> receivingCountMap = new HashMap<>();
@@ -2197,7 +2203,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             userList.add(userId);
             userList.add(userId);
 
 
             Integer recordId = repairReceiving.getRecordId();
             Integer recordId = repairReceiving.getRecordId();
-//            recordList.add(recordId);
+            recordList.add(recordId);
 
 
             if (receivingCountMap.containsKey(userId)) {
             if (receivingCountMap.containsKey(userId)) {
 //                  总次数
 //                  总次数
@@ -2235,7 +2241,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
 
 //            维修时长=完成时间-接单时间(分)
 //            维修时长=完成时间-接单时间(分)
             long maintainTime = finishTimeTime - receivingTime;
             long maintainTime = finishTimeTime - receivingTime;
-            maintainTime=maintainTime/1000/60;
+            maintainTime = maintainTime / 1000 / 60;
 
 
             if (maintainMap.containsKey(userId)) {
             if (maintainMap.containsKey(userId)) {
 //                  维修时长
 //                  维修时长
@@ -2249,6 +2255,76 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
 
         }
         }
 
 
+
+        //        接单总次数
+        HashMap<Integer, List<Integer>> sendCountMap = new HashMap<>();
+
+//        接单超时次数
+        Map<Integer, Integer> sendTimeOutMap = new HashMap<>();
+
+//        接单总时长
+        Map<Integer, Long> sendMap = new HashMap<>();
+
+
+        LambdaQueryWrapper<RepairDispatchRecord> rdrsWrapper=new LambdaQueryWrapper<>();
+        rdrsWrapper.in(RepairDispatchRecord::getRecordId,recordList)
+                .isNotNull(RepairDispatchRecord::getReceivingTime);
+
+
+        List<RepairDispatchRecord> repairDispatchRecords = repairDispatchRecordService.list(rdrsWrapper);
+        for (RepairDispatchRecord repairDispatchRecord : repairDispatchRecords) {
+//                派单时间
+            long sendTime = repairDispatchRecord.getAssignedTime().getTime();
+//                接单考核时间
+            Integer acceptanceAssessTime = repairDispatchRecord.getAcceptanceAssessTime() * 1000 * 60;
+
+            long time=sendTime+acceptanceAssessTime;
+
+//                接单时间
+            long receivingTime = repairDispatchRecord.getReceivingTime().getTime();
+//            接单人
+            Integer usersId = repairDispatchRecord.getUsersId();
+            Integer recordId = repairDispatchRecord.getRecordId();
+
+            if (sendCountMap.containsKey(usersId)) {
+                List<Integer> integers = sendCountMap.get(usersId);
+                integers.add(recordId);
+                sendCountMap.put(usersId,integers);
+            }else {
+                ArrayList<Integer> integers = new ArrayList<>();
+                sendCountMap.put(usersId,integers);
+            }
+
+
+//              实际完成时间大于接单时间加考核时间为超时
+            if (receivingTime > time) {
+                if (sendTimeOutMap.containsKey(usersId)) {
+//                  次数
+                    Integer count = sendTimeOutMap.get(usersId);
+                    count = count + 1;
+                    sendTimeOutMap.put(usersId, count);
+                } else {
+                    sendTimeOutMap.put(usersId, 1);
+                }
+            }
+
+//            接单时长=接单时间-派单时间(分)
+           Long orderReceivingTime=receivingTime-sendTime;
+            orderReceivingTime=orderReceivingTime/1000/60;
+
+            if (sendMap.containsKey(usersId)) {
+//                  接单总时长
+                Long sendTotalTime = sendMap.get(usersId);
+                sendTotalTime = sendTotalTime + orderReceivingTime;
+                sendMap.put(usersId, sendTotalTime);
+            } else {
+                sendMap.put(usersId, orderReceivingTime);
+            }
+
+
+        }
+
+
         LambdaQueryWrapper<RepairUser> userWrapper=new LambdaQueryWrapper<>();
         LambdaQueryWrapper<RepairUser> userWrapper=new LambdaQueryWrapper<>();
         userWrapper.in(RepairUser::getId,userList);
         userWrapper.in(RepairUser::getId,userList);
 
 
@@ -2260,6 +2336,8 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         Wrapper<RepairSchool> schoolWrapper=new LambdaQueryWrapper<>();
         Wrapper<RepairSchool> schoolWrapper=new LambdaQueryWrapper<>();
         List<RepairSchool> schoolList = repairSchoolService.list(schoolWrapper);
         List<RepairSchool> schoolList = repairSchoolService.list(schoolWrapper);
 
 
+        ArrayList<MaintenanceWorkerVo> vos = new ArrayList<>();
+
         users.forEach(repairUser -> {
         users.forEach(repairUser -> {
             MaintenanceWorkerVo maintenanceWorkerVo = new MaintenanceWorkerVo();
             MaintenanceWorkerVo maintenanceWorkerVo = new MaintenanceWorkerVo();
 //            名字
 //            名字
@@ -2270,7 +2348,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             for (RepairSchool repairSchool : schoolList) {
             for (RepairSchool repairSchool : schoolList) {
                 Integer id = repairSchool.getId();
                 Integer id = repairSchool.getId();
                 if (id.equals(schoolId)) {
                 if (id.equals(schoolId)) {
-                    maintenanceWorkerVo.setName(repairSchool.getName());
+                    maintenanceWorkerVo.setSchoolName(repairSchool.getName());
                 }
                 }
             }
             }
 
 
@@ -2287,7 +2365,17 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             if (maintainTimeOutMap.containsKey(id)) {
             if (maintainTimeOutMap.containsKey(id)) {
                 Integer integer = maintainTimeOutMap.get(id);
                 Integer integer = maintainTimeOutMap.get(id);
                 BigDecimal a = new BigDecimal(integer);
                 BigDecimal a = new BigDecimal(integer);
-                BigDecimal bigDecimal = a.divide(b).setScale(2, BigDecimal.ROUND_HALF_UP);
+                BigDecimal c= b;
+//                接单
+                if (sendTimeOutMap.containsKey(id)) {
+                    Integer integer1 = sendTimeOutMap.get(id);
+                    BigDecimal bigDecimal = new BigDecimal(integer1);
+                    a=a.add(bigDecimal);
+                    List<Integer> integers = sendCountMap.get(id);
+                    c=c.add(new BigDecimal(integers.size()));
+                }
+
+                BigDecimal bigDecimal = a.divide(c,2,BigDecimal.ROUND_HALF_UP);
                 BigDecimal multiply = bigDecimal.multiply(new BigDecimal(100));
                 BigDecimal multiply = bigDecimal.multiply(new BigDecimal(100));
                 maintenanceWorkerVo.setTimeOut(multiply+"%");
                 maintenanceWorkerVo.setTimeOut(multiply+"%");
             }
             }
@@ -2295,9 +2383,21 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 //            平均维修时间
 //            平均维修时间
             Long aLong = maintainMap.get(id);
             Long aLong = maintainMap.get(id);
             BigDecimal bigDecimal = new BigDecimal(aLong);
             BigDecimal bigDecimal = new BigDecimal(aLong);
-            BigDecimal maintain = bigDecimal.divide(b).setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal maintain = bigDecimal.divide(b,2,BigDecimal.ROUND_HALF_UP);
             maintenanceWorkerVo.setMaintain(maintain);
             maintenanceWorkerVo.setMaintain(maintain);
 
 
+            //        平均响应时长
+            if (sendMap.containsKey(id)) {
+                Long aLong1 = sendMap.get(id);
+                BigDecimal bigDecimal1 = new BigDecimal(aLong1);
+                List<Integer> integers = sendCountMap.get(id);
+                BigDecimal bigDecimal2 = new BigDecimal(integers.size());
+                BigDecimal send = bigDecimal1.divide(bigDecimal2,2,BigDecimal.ROUND_HALF_UP);
+                maintenanceWorkerVo.setMaintain(send);
+            }
+
+
+
 //            总费用
 //            总费用
             LambdaQueryWrapper<RepairRecord> recordWrapper=new LambdaQueryWrapper<>();
             LambdaQueryWrapper<RepairRecord> recordWrapper=new LambdaQueryWrapper<>();
             recordWrapper.in(RepairRecord::getId,recordsList);
             recordWrapper.in(RepairRecord::getId,recordsList);
@@ -2306,7 +2406,9 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             BigDecimal totalPrice=new BigDecimal(0);
             BigDecimal totalPrice=new BigDecimal(0);
             for (RepairRecord repairRecord : list) {
             for (RepairRecord repairRecord : list) {
                 BigDecimal price = repairRecord.getPrice();
                 BigDecimal price = repairRecord.getPrice();
-                totalPrice=totalPrice.add(price);
+                if (ObjectUtils.isNotEmpty(price)) {
+                    totalPrice=totalPrice.add(price);
+                }
             }
             }
             maintenanceWorkerVo.setTotalPrice(totalPrice);
             maintenanceWorkerVo.setTotalPrice(totalPrice);
 
 
@@ -2323,31 +2425,17 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                     satisfaction=satisfaction.add(new BigDecimal(1));
                     satisfaction=satisfaction.add(new BigDecimal(1));
                 }
                 }
             }
             }
-            BigDecimal degreePraise = satisfaction.divide(evaluatesDecimal,2).setScale(2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+            BigDecimal degreePraise = satisfaction.divide(evaluatesDecimal,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
             maintenanceWorkerVo.setDegreePraise(degreePraise+"%");
             maintenanceWorkerVo.setDegreePraise(degreePraise+"%");
 
 
-//        平均响应时长
-            LambdaQueryWrapper<RepairDispatchRecord> rdrsWrapper=new LambdaQueryWrapper<>();
-            rdrsWrapper.in(RepairDispatchRecord::getRecordId,recordsList);
-
-            List<RepairDispatchRecord> repairDispatchRecords = repairDispatchRecordService.list(rdrsWrapper);
-
-
-
-
-
-
 
 
+            vos.add(maintenanceWorkerVo);
 
 
         });
         });
 
 
 
 
 
 
-
-
-
-
-        return null;
+        return CommonResult.ok(vos);
     }
     }
 
 
     /**
     /**

+ 5 - 0
src/main/java/com/repair/mapper/RepairPayRecordMapper.java

@@ -2,9 +2,12 @@ package com.repair.mapper;
 
 
 import com.repair.model.pojo.RepairPayRecord;
 import com.repair.model.pojo.RepairPayRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.repair.model.vo.QueryExportVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  Mapper 接口
  *  Mapper 接口
@@ -16,4 +19,6 @@ import org.springframework.stereotype.Repository;
 @Repository
 @Repository
 public interface RepairPayRecordMapper extends BaseMapper<RepairPayRecord> {
 public interface RepairPayRecordMapper extends BaseMapper<RepairPayRecord> {
     RepairPayRecord queryPaymentData(@Param("recordNo") String recordNo);
     RepairPayRecord queryPaymentData(@Param("recordNo") String recordNo);
+
+    List<QueryExportVo> queryExport(String keyWord, String startTime, String endTime);
 }
 }

+ 1 - 1
src/main/java/com/repair/model/vo/ProsperityRepairPayRecordsVo.java

@@ -14,7 +14,7 @@ public class ProsperityRepairPayRecordsVo {
 //    交易时间
 //    交易时间
     private Date payTime;
     private Date payTime;
 //    工单号
 //    工单号
-    private Integer recordId;
+    private String recordNo;
 //    交易流水号
 //    交易流水号
     private String payNo;
     private String payNo;
 //    支付人
 //    支付人

+ 25 - 0
src/main/java/com/repair/model/vo/QueryExportVo.java

@@ -0,0 +1,25 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class QueryExportVo {
+    private Integer id;
+//    交易时间
+    private Date payTime;
+//    工单号
+    private String recordNo;
+//    流水号
+    private String payNo;
+//    报修人
+    private String userName;
+//    交易金额
+    private BigDecimal payPrice;
+//    退款金额
+    private BigDecimal refundTotalPrice;
+//    状态
+    private String status;
+}

+ 14 - 0
src/main/java/com/repair/model/vo/StatisticsVo.java

@@ -0,0 +1,14 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class StatisticsVo {
+    private Integer count;
+
+    private BigDecimal totalPrice;
+
+    private BigDecimal refundTotalPrice;
+}

+ 28 - 0
src/main/java/com/repair/model/vo/WxCodeVo.java

@@ -0,0 +1,28 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/7 星期一 8:48
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class WxCodeVo {
+    /**
+     * 微信用户的唯一标识
+     */
+    public String openid;
+    /**
+     * 会话密钥
+     */
+    public String sessionkey;
+    /**
+     * 用户在微信开放平台的唯一标识符。本字段在满足一定条件的情况下才返回。
+     */
+    public String unionid;
+
+}

+ 17 - 0
src/main/java/com/repair/model/vo/WxOpenVo.java

@@ -0,0 +1,17 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/18 星期五 15:29
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class WxOpenVo {
+    /**
+     * 微信用户ID
+     */
+    private String openId;
+}

+ 3 - 0
src/main/java/com/repair/services/RepairPayRecordService.java

@@ -3,6 +3,7 @@ package com.repair.services;
 import com.repair.model.pojo.RepairPayRecord;
 import com.repair.model.pojo.RepairPayRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.result.PageUtils;
 import com.repair.model.result.PageUtils;
+import com.repair.model.vo.QueryExportVo;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -30,4 +31,6 @@ public interface RepairPayRecordService extends IService<RepairPayRecord> {
     RepairPayRecord getRepairPaySuccessByRecordId(int recordId);
     RepairPayRecord getRepairPaySuccessByRecordId(int recordId);
 
 
     RepairPayRecord queryPaymentData(String recordNo);
     RepairPayRecord queryPaymentData(String recordNo);
+
+    List<QueryExportVo> queryExport(String keyWord, String startTime, String endTime);
 }
 }

+ 8 - 0
src/main/java/com/repair/services/impl/RepairPayRecordServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.repair.model.pojo.RepairPayRecord;
 import com.repair.model.pojo.RepairPayRecord;
 import com.repair.mapper.RepairPayRecordMapper;
 import com.repair.mapper.RepairPayRecordMapper;
 import com.repair.model.result.PageUtils;
 import com.repair.model.result.PageUtils;
+import com.repair.model.vo.QueryExportVo;
 import com.repair.services.RepairPayRecordService;
 import com.repair.services.RepairPayRecordService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -79,4 +80,11 @@ public class RepairPayRecordServiceImpl extends ServiceImpl<RepairPayRecordMappe
         RepairPayRecord result = repairPayRecordMapper.queryPaymentData(recordNo);
         RepairPayRecord result = repairPayRecordMapper.queryPaymentData(recordNo);
         return result;
         return result;
     }
     }
+
+    @Override
+    public List<QueryExportVo> queryExport(String keyWord, String startTime, String endTime) {
+
+        List<QueryExportVo> vos=repairPayRecordMapper.queryExport(keyWord,startTime,endTime);
+        return vos;
+    }
 }
 }

+ 5 - 3
src/main/resources/application-dev.yml

@@ -55,13 +55,15 @@ tencentcloud:
   templateId: 1770016  #模板 ID
   templateId: 1770016  #模板 ID
   smsMin: 1
   smsMin: 1
 
 
-#微小程序
+#微校和小程序
 openid:
 openid:
-  appid: EE28EE2C93296F4E #3183DC96A6DABA8D
-  appkey: 5071958561AA629530AAA31503088330 #05742955578EC5BD29B7BC4CAC5AFACA
+  appid: EE28EE2C93296F4E
+  appkey: 5071958561AA629530AAA31503088330
   granttype: authorization_code
   granttype: authorization_code
   ipconfig: 192.168.161.220
   ipconfig: 192.168.161.220
   ocode: 1015730314
   ocode: 1015730314
+  xappid: wxd6f090391d410534
+  xsecret: a7e349716b116792d79c779bb7216153
 
 
 # 项目公钥私钥
 # 项目公钥私钥
 my-security:
 my-security:

+ 5 - 3
src/main/resources/application-prod.yml

@@ -56,13 +56,15 @@ tencentcloud:
   templateId: 1770016  #模板 ID
   templateId: 1770016  #模板 ID
   smsMin: 1
   smsMin: 1
 
 
-#微小程序
+#微校和小程序
 openid:
 openid:
-  appid: EE28EE2C93296F4E #3183DC96A6DABA8D
-  appkey: 5071958561AA629530AAA31503088330 #05742955578EC5BD29B7BC4CAC5AFACA
+  appid: EE28EE2C93296F4E
+  appkey: 5071958561AA629530AAA31503088330
   granttype: authorization_code
   granttype: authorization_code
   ipconfig: 192.168.161.220
   ipconfig: 192.168.161.220
   ocode: 1015730314
   ocode: 1015730314
+  xappid: wxd6f090391d410534
+  xsecret: a7e349716b116792d79c779bb7216153
 
 
 # 项目公钥私钥
 # 项目公钥私钥
 my-security:
 my-security:

+ 5 - 3
src/main/resources/application.yml

@@ -53,13 +53,15 @@ tencentcloud:
   templateId: 1770016  #模板 ID
   templateId: 1770016  #模板 ID
   smsMin: 1
   smsMin: 1
 
 
-#微小程序
+#微校和小程序
 openid:
 openid:
-  appid: EE28EE2C93296F4E #3183DC96A6DABA8D
-  appkey: 5071958561AA629530AAA31503088330 #05742955578EC5BD29B7BC4CAC5AFACA
+  appid: EE28EE2C93296F4E
+  appkey: 5071958561AA629530AAA31503088330
   granttype: authorization_code
   granttype: authorization_code
   ipconfig: 192.168.161.220
   ipconfig: 192.168.161.220
   ocode: 1015730314
   ocode: 1015730314
+  xappid: wxd6f090391d410534
+  xsecret: a7e349716b116792d79c779bb7216153
 
 
 # 项目公钥私钥
 # 项目公钥私钥
 my-security:
 my-security:

+ 29 - 0
src/main/resources/mapper/repair/RepairPayRecordMapper.xml

@@ -15,5 +15,34 @@
         inner join repair_record rr on rr.deleted = 0 and rr.record_no = #{recordNo} and rr.id = rpr.record_id
         inner join repair_record rr on rr.deleted = 0 and rr.record_no = #{recordNo} and rr.id = rpr.record_id
         where rpr.deleted = 0
         where rpr.deleted = 0
     </select>
     </select>
+<select id="queryExport" resultType="com.repair.model.vo.QueryExportVo">
+        SELECT row_number() over ( ORDER BY dc.pay_time ) AS id, dc.*
+        FROM
+        (SELECT
+        rpr.create_time AS pay_time,
+        rr.record_no AS record_no,
+        rpr.pay_no AS pay_no,
+        ru.user_name as user_name,
+        rpr.pay_price as pay_price,
+        (SELECT SUM(rrr.refund_price) FROM repair_refund_record rrr WHERE rrr.record_id=rpr.record_id and
+        rrr.is_success=1 and rrr.deleted=0) as refund_total_price
+        FROM
+        `repair_pay_record` rpr
+        LEFT JOIN repair_record rr ON rr.deleted = 0
+        AND rpr.record_id = rr.id
+        LEFT JOIN repair_user ru on rpr.user_id=ru.id and ru.deleted=0
+        where
+        rpr.is_success=1 AND rpr.deleted=0
+        ) dc
+        <where>
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+            <if test="keyWord != null and keyWord !='' ">
+                and (dc.user_name like '%' #{keyWord} '%' or dc.record_no like '%' #{keyWord} '%')
+            </if>
+
+        </where>
+    </select>
 
 
 </mapper>
 </mapper>

+ 4 - 3
src/main/resources/mapper/repair/RepairRecordMapper.xml

@@ -252,6 +252,7 @@
         <result property="userName" column="user_name"/>
         <result property="userName" column="user_name"/>
         <result property="userPhone" column="user_phone"/>
         <result property="userPhone" column="user_phone"/>
         <result property="articleName" column="article_name"/>
         <result property="articleName" column="article_name"/>
+        <result property="areaName" column="area_name"/>
         <result property="description" column="description"/>
         <result property="description" column="description"/>
         <result property="reportTime" column="report_time"/>
         <result property="reportTime" column="report_time"/>
         <result property="maintenancerName" column="maintenancer_name"/>
         <result property="maintenancerName" column="maintenancer_name"/>
@@ -291,7 +292,7 @@
         SELECT * FROM (
         SELECT * FROM (
         select rr3.school_id,rr3.user_id,1 as details,rr3.id,rr3.record_no,rr3.area_id as
         select rr3.school_id,rr3.user_id,1 as details,rr3.id,rr3.record_no,rr3.area_id as
         area_name,rr3.user_name,rr3.user_phone,rat.name as article_name,
         area_name,rr3.user_name,rr3.user_phone,rat.name as article_name,
-        rr3.description,rr3.report_time,rr3.maintenancer_name,rr3.maintenance_state
+        rr3.description,rr3.report_time,concat((select user_name from repair_user where id = rdr.users_id),'-','接单超时') as maintenancer_name,rr3.maintenance_state
         from repair_record rr3
         from repair_record rr3
         left join repair_article_type rat on rat.deleted = 0 and rat.id = rr3.article_id
         left join repair_article_type rat on rat.deleted = 0 and rat.id = rr3.article_id
         inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr3.id and
         inner join repair_dispatch_record rdr on rdr.deleted = 0 and rdr.record_id = rr3.id and
@@ -311,10 +312,10 @@
             </if>
             </if>
         </where>
         </where>
         UNION ALL
         UNION ALL
-        select rr4.user_id,1 as details,rr4.id,rr4.record_no,rr4.area_id as
+        select rr4.school_id,rr4.user_id,1 as details,rr4.id,rr4.record_no,rr4.area_id as
         area_name,rr4.user_name,rr4.user_phone,rat.name as
         area_name,rr4.user_name,rr4.user_phone,rat.name as
         article_name,
         article_name,
-        rr4.description,rr4.report_time,rr4.maintenancer_name,rr4.maintenance_state
+        rr4.description,rr4.report_time,concat((select user_name from repair_user where id = rdv.user_id),'-','维修超时') as maintenancer_name,rr4.maintenance_state
         from repair_record rr4
         from repair_record rr4
         left join repair_article_type rat on rat.deleted = 0 and rat.id = rr4.article_id
         left join repair_article_type rat on rat.deleted = 0 and rat.id = rr4.article_id
         inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr4.id and
         inner join repair_receiving rdv on rdv.deleted = 0 and rdv.record_id = rr4.id and