liu 2 năm trước cách đây
mục cha
commit
50f552bf47

+ 4 - 3
.idea/encodings.xml

@@ -2,14 +2,15 @@
 <project version="4">
   <component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
     <file url="file://$PROJECT_DIR$" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/HttpsClient.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/MyX509TrustManager.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/SHA1.java" charset="UTF-8" />
-    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" charset="GBK" />
+    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxConstants.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxUtil.java" charset="UTF-8" />
-    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/AlterPriceRequest.java" charset="GBK" />
-    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java" charset="GBK" />
+    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/AlterPriceRequest.java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/WxPayRequest.java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/src/main/java/com/repair/model/result/Wx_user.java" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>

+ 20 - 0
.idea/jarRepositories.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>

+ 65 - 215
.idea/workspace.xml

@@ -1,63 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
   <component name="ChangeListManager">
     <list default="true" id="33456f28-da03-4d10-99dd-fd9bd193cf84" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DictionaryCompare.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/HttpUtils.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/JaxbUtil.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/result/EndPay.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/result/PayResult.java" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/result/TongYiReturn.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairAnalysisVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairSummarizingVo.java" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTrendVo.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/common/utils/WxUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/WxUtil.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/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/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/model/vo/MyRepairRecordVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/MyRepairRecordVo.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTechnicianVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTechnicianVo.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/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/core/JwtlnterceptorConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/core/JwtlnterceptorConfig.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/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/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/resources/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.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" />
+      <change beforePath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/META-INF/spring-configuration-metadata.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRecordMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/mapper/repair/RepairRecordMapper.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/repair_system-0.0.1-SNAPSHOT.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/target/repair_system-0.0.1-SNAPSHOT.jar.original" afterDir="false" />
     </list>
-    <ignored path="$PROJECT_DIR$/out/" />
-    <ignored path="$PROJECT_DIR$/target/" />
-    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -80,121 +48,6 @@
   <component name="DefaultGradleProjectSettings">
     <option name="isMigrated" value="true" />
   </component>
-  <component name="FavoritesManager">
-    <favorites_list name="repair_report" />
-  </component>
-  <component name="FileEditorManager">
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
-        <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="148">
-              <caret line="100" selection-start-line="100" selection-end-line="100" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <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="289">
-              <caret line="2283" column="74" selection-start-line="2283" selection-start-column="54" selection-end-line="2283" selection-end-column="74" />
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/main/resources/mapper/repair/RepairRecordMapper.xml">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="79">
-              <caret line="592" column="36" selection-start-line="592" selection-start-column="16" selection-end-line="592" selection-end-column="36" />
-              <folding>
-                <element signature="e#10311#10315#0" expanded="true" />
-                <element signature="e#10431#10435#0" expanded="true" />
-                <element signature="e#10666#10670#0" expanded="true" />
-                <element signature="e#10714#10718#0" expanded="true" />
-                <element signature="e#11282#11286#0" expanded="true" />
-                <element signature="e#11408#11412#0" expanded="true" />
-                <element signature="e#11479#11483#0" expanded="true" />
-                <element signature="e#11965#11969#0" expanded="true" />
-                <element signature="e#12108#12112#0" expanded="true" />
-                <element signature="e#12170#12174#0" expanded="true" />
-                <element signature="e#27597#27601#0" expanded="true" />
-                <element signature="e#27717#27721#0" expanded="true" />
-                <element signature="e#27791#27795#0" expanded="true" />
-                <element signature="e#28316#28320#0" expanded="true" />
-                <element signature="e#28450#28454#0" expanded="true" />
-                <element signature="e#28521#28525#0" expanded="true" />
-                <element signature="e#33402#33406#0" expanded="true" />
-                <element signature="e#33522#33526#0" expanded="true" />
-                <element signature="e#33680#33684#0" expanded="true" />
-                <element signature="e#33811#33815#0" expanded="true" />
-                <element signature="e#34529#34533#0" expanded="true" />
-                <element signature="e#34649#34653#0" expanded="true" />
-                <element signature="e#34729#34733#0" expanded="true" />
-                <element signature="e#35251#35255#0" expanded="true" />
-                <element signature="e#35382#35386#0" expanded="true" />
-                <element signature="e#35459#35463#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/MyRepairRecordVo.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="378">
-              <caret line="144" column="29" selection-start-line="144" selection-start-column="29" selection-end-line="144" selection-end-column="29" />
-              <folding>
-                <element signature="e#1813#1814#0" expanded="true" />
-                <element signature="e#1850#1851#0" expanded="true" />
-                <element signature="e#2102#2103#0" expanded="true" />
-                <element signature="e#2143#2144#0" expanded="true" />
-                <element signature="e#2211#2212#0" expanded="true" />
-                <element signature="e#2271#2272#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/vo/RepairTechnicianVo.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="32">
-              <caret line="76" selection-start-line="76" selection-end-line="76" />
-              <folding>
-                <element signature="e#1166#1167#0" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="false">
-        <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="269">
-              <caret line="55" column="50" selection-start-line="55" selection-start-column="26" selection-end-line="55" selection-end-column="50" />
-              <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/services/impl/RepairRecordServiceImpl.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="292">
-              <caret line="70" column="76" selection-start-line="70" selection-start-column="54" selection-end-line="70" selection-end-column="76" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-    </leaf>
-  </component>
   <component name="FileTemplateManagerImpl">
     <option name="RECENT_TEMPLATES">
       <list>
@@ -329,12 +182,15 @@
       </list>
     </option>
   </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
   <component name="MavenImportPreferences">
     <option name="generalSettings">
       <MavenGeneralSettings>
         <option name="localRepository" value="D:\Software\Develop\Maven\repository" />
-        <option name="mavenHome" value="D:/Software/Develop/Maven/apache-maven-3.3.9" />
-        <option name="userSettingsFile" value="D:\Software\Develop\Maven\apache-maven-3.3.9\conf\settings.xml" />
+        <option name="mavenHome" value="D:/soft/maven/apache-maven-3.8.6" />
+        <option name="userSettingsFile" value="D:/soft/maven/apache-maven-3.8.6\conf\settings.xml" />
       </MavenGeneralSettings>
     </option>
   </component>
@@ -362,6 +218,7 @@
     <option name="width" value="974" />
     <option name="height" value="1039" />
   </component>
+  <component name="ProjectId" id="2UKU884aEg3tGv5QPtIO7kgEzoG" />
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
   <component name="ProjectView">
     <navigator proportions="" version="1">
@@ -528,21 +385,29 @@
       </pane>
     </panes>
   </component>
-  <component name="PropertiesComponent">
-    <property name="RequestMappingsPanelOrder0" value="0" />
-    <property name="RequestMappingsPanelOrder1" value="1" />
-    <property name="RequestMappingsPanelWidth0" value="75" />
-    <property name="RequestMappingsPanelWidth1" value="75" />
-    <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="aspect.path.notification.shown" value="true" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/../../校车预约移动端/carBooksDevelopV" />
-    <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
-    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
-    <property name="project.structure.last.edited" value="Artifacts" />
-    <property name="project.structure.proportion" value="0.15" />
-    <property name="project.structure.side.proportion" value="0.0" />
-    <property name="settings.editor.selected.configurable" value="MavenSettings" />
+  <component name="ProjectViewState">
+    <option name="showExcludedFiles" value="false" />
+    <option name="showLibraryContents" value="true" />
   </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "RequestMappingsPanelOrder0": "0",
+    "RequestMappingsPanelOrder1": "1",
+    "RequestMappingsPanelWidth0": "75",
+    "RequestMappingsPanelWidth1": "75",
+    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "project.structure.last.edited": "Project",
+    "project.structure.proportion": "0.0",
+    "project.structure.side.proportion": "0.0",
+    "settings.editor.selected.configurable": "MavenSettings",
+    "spring.configuration.checksum": "9194e5bdf12f70631e80a517ca4e09a3"
+  }
+}]]></component>
   <component name="RebelAgentSelection">
     <selection>jr</selection>
   </component>
@@ -569,18 +434,6 @@
       <recent name="D:\Bingo\Desktop\工作内容\报修系统\Back-endDevelopmentFramework\src\main\resources\mapper\video" />
     </key>
   </component>
-  <component name="RunDashboard">
-    <option name="ruleStates">
-      <list>
-        <RuleState>
-          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
-        </RuleState>
-        <RuleState>
-          <option name="name" value="StatusDashboardGroupingRule" />
-        </RuleState>
-      </list>
-    </option>
-  </component>
   <component name="RunManager" selected="Spring Boot.MybatisPlusApplication">
     <configuration name="AutoCode" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
       <option name="MAIN_CLASS_NAME" value="com.repair.AutoCode" />
@@ -664,6 +517,10 @@
       </list>
     </recent_temporary>
   </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
+  <component name="SshConsoleOptionsProvider">
+    <option name="myEncoding" value="UTF-8" />
+  </component>
   <component name="SvnConfiguration">
     <configuration />
   </component>
@@ -705,6 +562,7 @@
       <workItem from="1692276778311" duration="8094000" />
       <workItem from="1692328425694" duration="3410000" />
       <workItem from="1692338996790" duration="35057000" />
+      <workItem from="1692687608803" duration="1252000" />
     </task>
     <servers />
   </component>
@@ -763,7 +621,18 @@
     </layout>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
-    <option name="version" value="1" />
+    <option name="version" value="3" />
+  </component>
+  <component name="Vcs.Log.Tabs.Properties">
+    <option name="TAB_STATES">
+      <map>
+        <entry key="MAIN">
+          <value>
+            <State />
+          </value>
+        </entry>
+      </map>
+    </option>
   </component>
   <component name="XDebuggerManager">
     <breakpoint-manager>
@@ -771,115 +640,96 @@
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/exception/EmsExceptionHandler.java</url>
           <line>163</line>
-          <properties />
           <option name="timeStamp" value="27" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>jar://C:/Program Files/Java/jdk1.8.0_181/src.zip!/java/lang/Class.java</url>
           <line>1781</line>
-          <properties />
           <option name="timeStamp" value="90" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumeController.java</url>
           <line>183</line>
-          <properties />
           <option name="timeStamp" value="137" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java</url>
           <line>117</line>
-          <properties />
           <option name="timeStamp" value="218" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java</url>
           <line>128</line>
-          <properties />
           <option name="timeStamp" value="219" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumeController.java</url>
           <line>98</line>
-          <properties />
           <option name="timeStamp" value="229" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java</url>
           <line>302</line>
-          <properties />
           <option name="timeStamp" value="242" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairLeaveMessageController.java</url>
           <line>93</line>
-          <properties />
           <option name="timeStamp" value="243" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java</url>
           <line>120</line>
-          <properties />
           <option name="timeStamp" value="244" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java</url>
           <line>167</line>
-          <properties />
           <option name="timeStamp" value="245" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairPayRecordController.java</url>
           <line>106</line>
-          <properties />
           <option name="timeStamp" value="246" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java</url>
           <line>442</line>
-          <properties />
           <option name="timeStamp" value="260" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java</url>
           <line>558</line>
-          <properties />
           <option name="timeStamp" value="261" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumeController.java</url>
           <line>395</line>
-          <properties />
           <option name="timeStamp" value="265" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumablesController.java</url>
           <line>156</line>
-          <properties />
           <option name="timeStamp" value="269" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java</url>
           <line>277</line>
-          <properties />
           <option name="timeStamp" value="271" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairEvaluateController.java</url>
           <line>54</line>
-          <properties />
           <option name="timeStamp" value="288" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java</url>
           <line>73</line>
-          <properties />
           <option name="timeStamp" value="302" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/scheduled/SystemScheduled.java</url>
           <line>84</line>
-          <properties />
           <option name="timeStamp" value="303" />
         </line-breakpoint>
       </breakpoints>

+ 6 - 0
src/main/java/com/repair/api/RepairRecordControllerAPI.java

@@ -221,4 +221,10 @@ public interface RepairRecordControllerAPI {
     @ApiOperation(value = "报修趋势统计", notes = "报修趋势统计", httpMethod = "GET")
     CommonResult repairTrend(@RequestParam int state) throws Exception;
 
+    @GetMapping(value = "/repairSummarizing")
+    @ApiOperation(value = "总数据汇总统计", notes = "总数据汇总统计", httpMethod = "GET")
+    CommonResult repairSummarizing() throws Exception;
+
+
+
 }

+ 88 - 2
src/main/java/com/repair/common/utils/DateUtils.java

@@ -3,6 +3,7 @@ package com.repair.common.utils;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 
@@ -62,10 +63,95 @@ public class DateUtils {
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         return LocalDateTime.now().format(dateTimeFormatter);
     }
+
+    public static String trendStartTime(Integer state){
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime now = LocalDateTime.now();
+        now=now.withHour(0).withMinute(0).withSecond(0);
+        switch (state) {
+//           本年
+            case 1:
+                LocalDateTime localDateTime = now.withDayOfYear(1);
+                return localDateTime.format(dateTimeFormatter);
+//           本月
+            case 2:
+                LocalDateTime localDateTime1 = now.withDayOfMonth(1);
+                return localDateTime1.format(dateTimeFormatter);
+
+//            本周
+            case 3:
+                int value = now.getDayOfWeek().getValue();
+                LocalDateTime localDateTime2 = now.minusDays(value-1);
+                return localDateTime2.format(dateTimeFormatter);
+
+//            今天
+            case 4: ;
+                return now.format(dateTimeFormatter);
+        }
+
+        return null;
+    }
+
+    /**
+     *
+     * @param state
+     * @return
+     */
+    public static String trendComparisonStartTime(Integer state) {
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime now = LocalDateTime.now();
+        now=now.withHour(0).withMinute(0).withSecond(0);
+
+        switch (state) {
+//           去年
+            case 1:
+                LocalDateTime localDateTime = now.minusYears(1).withDayOfYear(1);
+                return localDateTime.format(dateTimeFormatter);
+//           上月
+            case 2:
+                LocalDateTime localDateTime1 = now.minusMonths(1).withDayOfMonth(1);
+
+                return localDateTime1.format(dateTimeFormatter);
+
+//            上周
+            case 3:
+                int value = now.getDayOfWeek().getValue();
+                LocalDateTime localDateTime2 = now.minusWeeks(1).minusDays(value-1);
+                return localDateTime2.format(dateTimeFormatter);
+
+//            昨天
+            case 4:
+                LocalDateTime localDateTime3 = now.minusDays(1);
+                return localDateTime3.format(dateTimeFormatter);
+        }
+
+        return null;
+    }
+
+    public static String weekName(int weekState){
+        switch (weekState) {
+            case 1:
+                return "星期一";
+            case 2:
+                return "星期二";
+            case 3:
+                return "星期三";
+            case 4:
+                return "星期四";
+            case 5:
+                return "星期五";
+            case 6:
+                return "星期六";
+            case 7:
+                return "星期日";
+        }
+        return null;
+    }
+
     public static void main(String[] args) {
-        String s = startTime(4);
+        String s = trendStartTime(4);
         System.out.println("s = " + s);
-        String s1 = endTime();
+        String s1 = trendComparisonStartTime(4);
         System.out.println("s1 = " + s1);
     }
 }

+ 43 - 17
src/main/java/com/repair/controller/RepairPayRecordController.java

@@ -440,11 +440,30 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
 
 //      支付订单ID
         Integer repairPayRecordId = rar.getRepairPayRecordId();
-//      金额
+//      退款金额
         BigDecimal refundPrice = rar.getRefundPrice();
 
         RepairPayRecord repairPayRecord = repairPayRecordService.getById(repairPayRecordId);
 
+//        实退金额不能大于剩余金额
+        Integer recordId = repairPayRecord.getRecordId();
+//        实收金额
+        BigDecimal payPrice = repairPayRecord.getPayPrice();
+        LambdaQueryWrapper<RepairRefundRecord> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(RepairRefundRecord::getRecordId,recordId);
+        List<RepairRefundRecord> refundRecordList = repairRefundRecordService.list(wrapper);
+        BigDecimal refundTotal=new BigDecimal(0);
+        for (RepairRefundRecord repairRefundRecord : refundRecordList) {
+            BigDecimal refundPrice1 = repairRefundRecord.getRefundPrice();
+            refundTotal=refundTotal.add(refundPrice1);
+        }
+
+//        实收金额减总退款金额在减实退金额,不能小于0
+        int i = payPrice.subtract(refundTotal).subtract(refundPrice).compareTo(new BigDecimal(0));
+        if (i<0) {
+            return CommonResult.fail("实退金额有误");
+        }
+
         RepairRefundRecord repairRefundRecord = new RepairRefundRecord();
 
         repairRefundRecord.setRecordId(repairPayRecord.getRecordId());
@@ -552,9 +571,27 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
         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);
+
+
+        //        导出
+        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("状态");
+
+
+        if (ObjectUtils.isNotEmpty(queryExportVoList)&&queryExportVoList.size()>0) {
+
+            for (QueryExportVo queryExportVo : queryExportVoList) {
+                QueryExportVo vo = new QueryExportVo();
+                BeanUtils.copyProperties(queryExportVo, vo);
 //            退款金额
             BigDecimal refundTotalPrice = queryExportVo.getRefundTotalPrice();
             if (ObjectUtils.isEmpty(refundTotalPrice)) {
@@ -575,19 +612,6 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
 
         }
 
-        //        导出
-
-        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);
@@ -602,6 +626,8 @@ public class RepairPayRecordController implements RepairPayRecordControllerAPI {
             dataRow1.createCell(7).setCellValue(vo.getStatus());
         }
 
+        }
+
         // 将工作簿写入文件
         ExcelUtils.excelDownload(workbook, "支付成功表.xlsx", response);
 

+ 207 - 38
src/main/java/com/repair/controller/RepairRecordController.java

@@ -32,6 +32,7 @@ import org.springframework.validation.BindingResult;
 
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -44,6 +45,8 @@ import java.io.PrintWriter;
 import java.math.BigDecimal;
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -2482,10 +2485,16 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         wrapperReceiving.groupBy(RepairReceiving::getUserId);
         IPage<RepairReceiving> repairReceivingListPage = repairReceivingService.page(new Page<RepairReceiving>(currentPage, pageCount), wrapperReceiving);
 
+        IPage<MaintenanceWorkerVo> page = new Page();
+        BeanUtils.copyProperties(repairReceivingListPage,page);
+
         LambdaQueryWrapper<RepairReceiving> wrapperReceiving2 = new LambdaQueryWrapper<>();
         wrapperReceiving2.between(ObjectUtils.isNotEmpty(startTime), RepairReceiving::getReceivingTime, startTime, endTime);
         wrapperReceiving2.isNotNull(RepairReceiving::getFinishTime);
         List<RepairReceiving> repairReceivingList = repairReceivingService.list(wrapperReceiving2);
+        if (ObjectUtils.isEmpty(repairReceivingList)&&repairReceivingList.size()<=0) {
+            return CommonResult.ok(page);
+        }
 
         ArrayList<Integer> userList = new ArrayList<>();
 
@@ -2739,8 +2748,7 @@ public class RepairRecordController implements RepairRecordControllerAPI {
 
         });
 
-        IPage<MaintenanceWorkerVo> page = new Page();
-        BeanUtils.copyProperties(repairReceivingListPage, page);
+
         page.setRecords(vos);
 
         return CommonResult.ok(page);
@@ -2758,11 +2766,31 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         String startTime = DateUtils.startTime(state);
         String endTime = DateUtils.endTime();
 
+        ArrayList<MaintenanceWorkerVo> vos = new ArrayList<>();
+
+        //        导出
+        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("平均维修时长(分)");
+        headerRow.createCell(8).setCellValue("耗材总费用(元)");
+
+
         LambdaQueryWrapper<RepairReceiving> wrapperReceiving = new LambdaQueryWrapper<>();
         wrapperReceiving.between(ObjectUtils.isNotEmpty(startTime), RepairReceiving::getReceivingTime, startTime, endTime);
         wrapperReceiving.isNotNull(RepairReceiving::getFinishTime);
         List<RepairReceiving> repairReceivingList = repairReceivingService.list(wrapperReceiving);
 
+        if (ObjectUtils.isNotEmpty(repairReceivingList)&&repairReceivingList.size()>0) {
+
+
         ArrayList<Integer> userList = new ArrayList<>();
 
         ArrayList<Integer> recordList = new ArrayList<>();
@@ -2918,7 +2946,6 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         Wrapper<RepairSchool> schoolWrapper = new LambdaQueryWrapper<>();
         List<RepairSchool> schoolList = repairSchoolService.list(schoolWrapper);
 
-        ArrayList<MaintenanceWorkerVo> vos = new ArrayList<>();
 
         users.forEach(repairUser -> {
             MaintenanceWorkerVo maintenanceWorkerVo = new MaintenanceWorkerVo();
@@ -3013,39 +3040,24 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             vos.add(maintenanceWorkerVo);
         });
 
-
-        //        导出
-        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("平均维修时长(分)");
-        headerRow.createCell(8).setCellValue("耗材总费用(元)");
-
-        for (int i = 0; i < vos.size(); i++) {
-            MaintenanceWorkerVo vo = vos.get(i);
-            Row dataRow1 = sheet.createRow(i + 1);
-            dataRow1.createCell(0).setCellValue(i + 1);
-            dataRow1.createCell(1).setCellValue(vo.getSchoolName());
-            dataRow1.createCell(2).setCellValue(vo.getName());
-            dataRow1.createCell(3).setCellValue(vo.getWorkOrderTotal());
-            dataRow1.createCell(4).setCellValue(vo.getDegreePraise());
-            dataRow1.createCell(5).setCellValue(vo.getTimeOut());
-            BigDecimal answer = vo.getAnswer();
-            if (ObjectUtils.isEmpty(answer)) {
-                answer = new BigDecimal(0);
-            }
-            dataRow1.createCell(6).setCellValue(answer.toString());
-            BigDecimal maintain = vo.getMaintain();
-            if (ObjectUtils.isEmpty(maintain)) {
-                maintain = new BigDecimal(0);
-            }
+            for (int i = 0; i < vos.size(); i++) {
+                MaintenanceWorkerVo vo = vos.get(i);
+                Row dataRow1 = sheet.createRow(i + 1);
+                dataRow1.createCell(0).setCellValue(i+1);
+                dataRow1.createCell(1).setCellValue(vo.getSchoolName());
+                dataRow1.createCell(2).setCellValue(vo.getName());
+                dataRow1.createCell(3).setCellValue(vo.getWorkOrderTotal());
+                dataRow1.createCell(4).setCellValue( vo.getDegreePraise());
+                dataRow1.createCell(5).setCellValue( vo.getTimeOut());
+                BigDecimal answer = vo.getAnswer();
+                if (ObjectUtils.isEmpty(answer)) {
+                    answer=new BigDecimal(0);
+                }
+                dataRow1.createCell(6).setCellValue(answer.toString());
+                BigDecimal maintain = vo.getMaintain();
+                if (ObjectUtils.isEmpty(maintain)) {
+                    maintain=new BigDecimal(0);
+                }
 
             dataRow1.createCell(7).setCellValue(maintain.toString());
 
@@ -3055,7 +3067,9 @@ public class RepairRecordController implements RepairRecordControllerAPI {
             }
             dataRow1.createCell(8).setCellValue(totalPrice.toString());
 
+            }
         }
+
         // 将工作簿写入文件
         ExcelUtils.excelDownload(workbook, "维修师傅.xlsx", response);
 
@@ -3074,8 +3088,13 @@ public class RepairRecordController implements RepairRecordControllerAPI {
         String startTime = DateUtils.startTime(state);
         String endTime = DateUtils.endTime();
 
+        RepairAnalysisVo vo=repairRecordService.repairAnalysis(startTime,endTime);
 
-        return null;
+        Integer timeOutCount=repairRecordService.queryTimeOut(startTime,endTime);
+
+        vo.setTimeOutCount(timeOutCount);
+
+        return CommonResult.ok(vo);
     }
 
     /**
@@ -3087,7 +3106,157 @@ public class RepairRecordController implements RepairRecordControllerAPI {
      */
     @Override
     public CommonResult repairTrend(int state) throws Exception {
-        return null;
+
+        DateTimeFormatter dateTimeFormatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+//        本次时间
+        String startTime = DateUtils.trendStartTime(state);
+        LocalDateTime sTime = LocalDateTime.parse(startTime, dateTimeFormatter);
+
+        int monthValue = sTime.getMonthValue();
+
+//        对比时间
+        String doubleStartTime = DateUtils.trendComparisonStartTime(state);
+        LocalDateTime dsTime = LocalDateTime.parse(doubleStartTime, dateTimeFormatter);
+
+        ArrayList<RepairTrendVo> vos = new ArrayList<>();
+//      本年和去年
+        if (state==1) {
+
+            for (int i = 1; i <= 12; i++) {
+                RepairTrendVo repairTrendVo = new RepairTrendVo();
+
+                LocalDateTime dateTime = sTime.plusMonths(i - 1);
+                LocalDateTime endTime = sTime.plusMonths(i);
+                LambdaQueryWrapper<RepairRecord> wrapper=new LambdaQueryWrapper<>();
+                wrapper.between(RepairRecord::getReportTime,dateTime,endTime);
+                int count = repairRecordService.count(wrapper);
+                repairTrendVo.setTrendCount(count);
+
+                LocalDateTime dDateTime = dsTime.plusMonths(i - 1);
+                LocalDateTime doubleEndTime = dsTime.plusMonths(i);
+                LambdaQueryWrapper<RepairRecord> dWrapper=new LambdaQueryWrapper<>();
+                dWrapper.between(RepairRecord::getReportTime,dDateTime,doubleEndTime);
+                int dCount = repairRecordService.count(dWrapper);
+                repairTrendVo.setTrendComparisonCount(dCount);
+
+                repairTrendVo.setTrendName(dateTime.getMonthValue()+"月");
+                repairTrendVo.setTrendComparisonName(dDateTime.getMonthValue()+"月");
+                vos.add(repairTrendVo);
+            }
+
+        }else if (state==2){
+            for (int i = 1; i <= 31; i++) {
+                RepairTrendVo repairTrendVo = new RepairTrendVo();
+
+                LocalDateTime dateTime = sTime.plusDays(i - 1);
+                LocalDateTime endTime = sTime.plusDays(i);
+
+                LocalDateTime dDateTime = dsTime.plusDays(i - 1);
+                LocalDateTime doubleEndTime = dsTime.plusDays(i);
+
+                int value = dateTime.getMonthValue();
+                int value2 = dDateTime.getMonthValue();
+
+//                  当前时间月份相同就可以添加
+                if (value==monthValue) {
+                    LambdaQueryWrapper<RepairRecord> wrapper=new LambdaQueryWrapper<>();
+                    wrapper.between(RepairRecord::getReportTime,dateTime,endTime);
+                    int count = repairRecordService.count(wrapper);
+                    repairTrendVo.setTrendCount(count);
+                    repairTrendVo.setTrendName(value+"月"+dateTime.getDayOfMonth()+"号");
+                }
+//              对比的月份不相同就可以添加
+                if (value2!=monthValue) {
+                    LambdaQueryWrapper<RepairRecord> dWrapper=new LambdaQueryWrapper<>();
+                    dWrapper.between(RepairRecord::getReportTime,dDateTime,doubleEndTime);
+                    int dCount = repairRecordService.count(dWrapper);
+                    repairTrendVo.setTrendComparisonCount(dCount);
+                    repairTrendVo.setTrendComparisonName(value2+"月"+dDateTime.getDayOfMonth()+"号");
+                }
+
+                vos.add(repairTrendVo);
+            }
+
+        }else if (state==3){
+            for (int i = 1; i <= 7; i++) {
+                RepairTrendVo repairTrendVo = new RepairTrendVo();
+
+                LocalDateTime dateTime = sTime.plusDays(i - 1);
+                LocalDateTime endTime = sTime.plusDays(i);
+                LambdaQueryWrapper<RepairRecord> wrapper=new LambdaQueryWrapper<>();
+                wrapper.between(RepairRecord::getReportTime,dateTime,endTime);
+                int count = repairRecordService.count(wrapper);
+                repairTrendVo.setTrendCount(count);
+
+                LocalDateTime dDateTime = dsTime.plusDays(i - 1);
+                LocalDateTime doubleEndTime = dsTime.plusDays(i);
+                LambdaQueryWrapper<RepairRecord> dWrapper=new LambdaQueryWrapper<>();
+                dWrapper.between(RepairRecord::getReportTime,dDateTime,doubleEndTime);
+                int dCount = repairRecordService.count(dWrapper);
+                repairTrendVo.setTrendComparisonCount(dCount);
+
+                repairTrendVo.setTrendName(DateUtils.weekName(dateTime.getDayOfWeek().getValue()));
+                repairTrendVo.setTrendComparisonName(DateUtils.weekName(dDateTime.getDayOfWeek().getValue()));
+                vos.add(repairTrendVo);
+            }
+        }else if (state==4){
+            for (int i = 1; i <= 24; i++) {
+                RepairTrendVo repairTrendVo = new RepairTrendVo();
+
+                LocalDateTime dateTime = sTime.plusHours(i - 1);
+                LocalDateTime endTime = sTime.plusHours(i);
+                LambdaQueryWrapper<RepairRecord> wrapper=new LambdaQueryWrapper<>();
+                wrapper.between(RepairRecord::getReportTime,dateTime,endTime);
+                int count = repairRecordService.count(wrapper);
+                repairTrendVo.setTrendCount(count);
+
+                LocalDateTime dDateTime = dsTime.plusHours(i - 1);
+                LocalDateTime doubleEndTime = dsTime.plusHours(i);
+                LambdaQueryWrapper<RepairRecord> dWrapper=new LambdaQueryWrapper<>();
+                dWrapper.between(RepairRecord::getReportTime,dDateTime,doubleEndTime);
+                int dCount = repairRecordService.count(dWrapper);
+                repairTrendVo.setTrendComparisonCount(dCount);
+
+                repairTrendVo.setTrendName(dateTime.getHour()+"点");
+                repairTrendVo.setTrendComparisonName(dDateTime.getHour()+"点");
+                vos.add(repairTrendVo);
+            }
+        }
+
+
+        return CommonResult.ok(vos);
+    }
+
+    /**
+     * 总数据汇总
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CommonResult repairSummarizing() throws Exception {
+
+        List<RepairSummarizingVo> vos = new ArrayList<>();
+        for (int i = 0; i < 5 ; i++) {
+            String startTime = DateUtils.startTime(i);
+            String endTime = DateUtils.endTime();
+            RepairSummarizingVo vo=repairRecordService.repairSummarizing(startTime,endTime);
+            if (i==0) {
+                vo.setDateName("全部");
+            }else if (i==1){
+                vo.setDateName("本年");
+            }else if (i==2){
+                vo.setDateName("本月");
+            }else if (i==3){
+                vo.setDateName("本周");
+            }else {
+                vo.setDateName("今天");
+            }
+            vos.add(vo);
+        }
+        
+
+        return CommonResult.ok(vos);
     }
 
     @Override

+ 1 - 1
src/main/java/com/repair/core/JwtlnterceptorConfig.java

@@ -14,7 +14,7 @@ public class JwtlnterceptorConfig implements WebMvcConfigurer {
         //目前测试下来 使用 /**所有的话,response.sendError浏览器获取不到响应的信息
         //默认拦截所有路径
         registry.addInterceptor(authenticationInterceptor())
-                .addPathPatterns("/api/**");
+                .addPathPatterns("/api0/**");
         //endregion
     }
 

+ 6 - 0
src/main/java/com/repair/mapper/RepairRecordMapper.java

@@ -80,4 +80,10 @@ public interface RepairRecordMapper extends BaseMapper<RepairRecord> {
     List<RepairAreaVo> repairAreaExport(String startTime, String endTime);
 
     List<MaintenanceGoodsVo>  maintenanceGoodsExport(String startTime, String endTime);
+
+    RepairAnalysisVo repairAnalysis(@Param("startTime")String startTime,@Param("endTime") String endTime);
+
+    Integer queryTimeOut(@Param("startTime")String startTime,@Param("endTime") String endTime);
+
+    RepairSummarizingVo repairSummarizing(@Param("startTime")String startTime,@Param("endTime") String endTime);
 }

+ 29 - 0
src/main/java/com/repair/model/vo/RepairAnalysisVo.java

@@ -0,0 +1,29 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+@Data
+public class RepairAnalysisVo {
+
+    //
+    private Integer totalCount;
+    //
+    private Integer checkCount;
+    //
+    private Integer receivingCount;
+    //
+    private Integer maintainCount;
+    //
+    private Integer accomplishCount;
+    //
+    private Integer shutCount;
+    //
+    private Integer timeOutCount;
+    //
+    private Integer cancelCount;
+    //
+    private Integer disposeCount;
+    //
+    private Integer affirmCount;
+
+}

+ 27 - 0
src/main/java/com/repair/model/vo/RepairSummarizingVo.java

@@ -0,0 +1,27 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+@Data
+public class RepairSummarizingVo {
+//
+    private String dateName;
+    //
+    private Integer totalCount;
+    //
+    private Integer checkCount;
+    //
+    private Integer receivingCount;
+    //
+    private Integer maintainCount;
+    //
+    private Integer accomplishCount;
+    //
+    private Integer shutCount;
+    //
+    private Integer cancelCount;
+    //
+    private Integer disposeCount;
+    //
+    private Integer affirmCount;
+}

+ 11 - 0
src/main/java/com/repair/model/vo/RepairTrendVo.java

@@ -0,0 +1,11 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+@Data
+public class RepairTrendVo {
+    private Integer trendCount;
+    private Integer trendComparisonCount;
+    private String trendName;
+    private String trendComparisonName;
+}

+ 6 - 0
src/main/java/com/repair/services/RepairRecordService.java

@@ -96,4 +96,10 @@ public interface RepairRecordService extends IService<RepairRecord> {
     List<RepairAreaVo> repairAreaExport(String startTime, String endTime);
 
     List<MaintenanceGoodsVo> maintenanceGoodsExport(String startTime, String endTime);
+
+    RepairAnalysisVo repairAnalysis(String startTime, String endTime);
+
+    Integer queryTimeOut(String startTime, String endTime);
+
+    RepairSummarizingVo repairSummarizing(String startTime, String endTime);
 }

+ 18 - 0
src/main/java/com/repair/services/impl/RepairRecordServiceImpl.java

@@ -321,4 +321,22 @@ public class RepairRecordServiceImpl extends ServiceImpl<RepairRecordMapper, Rep
         List<MaintenanceGoodsVo> vos =repairRecordMapper.maintenanceGoodsExport(startTime,endTime);
         return vos;
     }
+
+    @Override
+    public RepairAnalysisVo repairAnalysis(String startTime, String endTime) {
+        RepairAnalysisVo vo=repairRecordMapper.repairAnalysis(startTime,endTime);
+        return vo;
+    }
+
+    @Override
+    public Integer queryTimeOut(String startTime, String endTime) {
+        Integer timeOutCount=repairRecordMapper.queryTimeOut(startTime,endTime);
+        return timeOutCount;
+    }
+
+    @Override
+    public RepairSummarizingVo repairSummarizing(String startTime, String endTime) {
+        RepairSummarizingVo vo=repairRecordMapper.repairSummarizing(startTime,endTime);
+        return vo;
+    }
 }

+ 212 - 0
src/main/resources/mapper/repair/RepairRecordMapper.xml

@@ -940,4 +940,216 @@
         </where>
         GROUP BY rr.article_id) wx
     </select>
+
+    <select id="repairAnalysis" resultType="com.repair.model.vo.RepairAnalysisVo">
+        SELECT
+        COUNT(*) AS total_count,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and (maintenance_state in (5,6))
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as check_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 1
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as receiving_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 2
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as maintain_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as accomplish_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 9
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as shut_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 8
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as cancel_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 3
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as dispose_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 4
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        )
+        as affirm_count
+        FROM
+        repair_record rr
+        <where>
+            AND rr.deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+    </select>
+    <select id="queryTimeOut" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM (
+        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,
+        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
+        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
+        rdr.is_lose_efficacy = 0
+        and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
+        rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
+        rdr.receiving_time)
+        <where>
+            and rr3.deleted = 0 and rr3.is_duty = 0 and rr3.maintenance_state &lt;= 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr3.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        UNION ALL
+        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
+        article_name,
+        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
+        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
+        rdv.is_lose_efficacy = 0
+        and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
+        rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
+        minute) &lt;= rdv.finish_time)
+        <where>
+            and rr4.deleted = 0 and rr4.is_duty = 0 and rr4.maintenance_state &lt;= 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr4.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) t
+    </select>
+
+    <select id="repairSummarizing" resultType="com.repair.model.vo.RepairSummarizingVo">
+        SELECT
+        COUNT(*) AS total_count,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and (maintenance_state in (5,6))
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as check_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 1
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as receiving_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 2
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as maintain_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as accomplish_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 9
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as shut_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 8
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as cancel_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 3
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as dispose_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 4
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        )
+        as affirm_count
+        FROM
+        repair_record rr
+        <where>
+            AND rr.deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 212 - 0
target/classes/mapper/repair/RepairRecordMapper.xml

@@ -940,4 +940,216 @@
         </where>
         GROUP BY rr.article_id) wx
     </select>
+
+    <select id="repairAnalysis" resultType="com.repair.model.vo.RepairAnalysisVo">
+        SELECT
+        COUNT(*) AS total_count,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and (maintenance_state in (5,6))
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as check_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 1
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as receiving_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 2
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as maintain_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as accomplish_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 9
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as shut_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 8
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as cancel_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 3
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as dispose_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 4
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        )
+        as affirm_count
+        FROM
+        repair_record rr
+        <where>
+            AND rr.deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+    </select>
+    <select id="queryTimeOut" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM (
+        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,
+        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
+        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
+        rdr.is_lose_efficacy = 0
+        and ((date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;= NOW() and
+        rdr.receiving_time is null) or date_add(rdr.assigned_time , interval rdr.acceptance_assess_time minute) &lt;=
+        rdr.receiving_time)
+        <where>
+            and rr3.deleted = 0 and rr3.is_duty = 0 and rr3.maintenance_state &lt;= 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr3.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        UNION ALL
+        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
+        article_name,
+        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
+        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
+        rdv.is_lose_efficacy = 0
+        and ((date_add(rdv.receiving_time , interval rdv.maintenance_assess_time minute) &lt;= NOW() and
+        rdv.maintenance_assess_time is null) or date_add(rdv.receiving_time , interval rdv.maintenance_assess_time
+        minute) &lt;= rdv.finish_time)
+        <where>
+            and rr4.deleted = 0 and rr4.is_duty = 0 and rr4.maintenance_state &lt;= 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr4.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) t
+    </select>
+
+    <select id="repairSummarizing" resultType="com.repair.model.vo.RepairSummarizingVo">
+        SELECT
+        COUNT(*) AS total_count,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and (maintenance_state in (5,6))
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as check_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 1
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as receiving_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 2
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as maintain_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 7
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as accomplish_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 9
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as shut_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 8
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as cancel_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 3
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        ) as dispose_count ,
+        (SELECT COUNT(*) FROM repair_record
+        <where>
+            AND deleted = 0
+            and maintenance_state = 4
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+        )
+        as affirm_count
+        FROM
+        repair_record rr
+        <where>
+            AND rr.deleted = 0
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+                and rr.report_time between #{startTime} and #{endTime}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 3 - 0
target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -1,6 +1,7 @@
 com\repair\AutoCode.class
 com\repair\services\impl\RepairShiftSettingsServiceImpl.class
 com\repair\mapper\RepairPayRecordMapper.class
+com\repair\model\vo\RepairTrendVo.class
 com\repair\common\utils\AesUtils.class
 com\repair\model\vo\AddressBookVo.class
 com\repair\model\vo\ClassesDataVo.class
@@ -86,6 +87,7 @@ com\repair\model\vo\NoticePageVo.class
 com\repair\services\impl\RepairReceivingServiceImpl.class
 com\repair\model\request\insertRepairUserRequest.class
 com\repair\model\vo\RepairSchoolVo.class
+com\repair\model\vo\RepairSummarizingVo.class
 com\repair\model\vo\RepairConsumeVo.class
 com\repair\model\result\CommonResult.class
 com\repair\common\exception\EmsException.class
@@ -301,6 +303,7 @@ com\repair\model\request\updateAddressBookRequest.class
 com\repair\core\JwtlnterceptorConfig.class
 com\repair\model\result\WechatUnifiedOrder.class
 com\repair\services\impl\RepairAdminServiceImpl.class
+com\repair\model\vo\RepairAnalysisVo.class
 com\repair\model\vo\RepairUserVo.class
 com\repair\model\vo\SystemMenuVo.class
 com\repair\mapper\RepairTransferRecordMapper.class

BIN
target/repair_system-0.0.1-SNAPSHOT.jar.original