Browse Source

抢单延时逻辑

夏文涛 2 years ago
parent
commit
d1d3a30175

+ 72 - 43
.idea/workspace.xml

@@ -3,7 +3,9 @@
   <component name="ChangeListManager">
     <list default="true" id="33456f28-da03-4d10-99dd-fd9bd193cf84" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.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/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/request/timeVo.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/repair/model/request/timeVo.java" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -18,20 +20,44 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
+      <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="650">
-              <caret line="568" column="55" selection-start-line="568" selection-start-column="55" selection-end-line="568" selection-end-column="55" />
+            <state relative-caret-position="276">
+              <caret line="507" column="13" lean-forward="true" selection-start-line="507" selection-start-column="13" selection-end-line="507" selection-end-column="13" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="487">
-              <caret line="129" column="65" selection-start-line="129" selection-start-column="65" selection-end-line="129" selection-end-column="65" />
+            <state relative-caret-position="-3555">
+              <caret line="44" column="49" selection-start-line="44" selection-start-column="49" selection-end-line="44" selection-end-column="49" />
+              <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/model/request/timeVo.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="263">
+              <caret line="13" column="19" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="19" />
+              <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/common/utils/TimeExchange.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="310">
+              <caret line="40" column="42" selection-start-line="40" selection-start-column="42" selection-end-line="40" selection-end-column="42" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -162,16 +188,16 @@
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairRecord.java" />
         <option value="$PROJECT_DIR$/src/main/resources/mapper/repair/RepairUserMapper.xml" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/model/vo/UserDataVo.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/RepairShiftSettingsService.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/services/impl/RepairShiftSettingsServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairShiftSettingsController.java" />
-        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/request/timeVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairClassesSettingsController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairConsumeController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/ExcelUtils.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/model/request/timeVo.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java" />
       </list>
     </option>
   </component>
@@ -606,12 +632,12 @@
       <workItem from="1689834821108" duration="40536000" />
       <workItem from="1690247776483" duration="78760000" />
       <workItem from="1690506045062" duration="61277000" />
-      <workItem from="1690850680543" duration="90134000" />
+      <workItem from="1690850680543" duration="91990000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="514712000" />
+    <option name="totallyTimeSpent" value="516568000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -623,10 +649,10 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="-7" y="0" width="974" height="1039" extended-state="0" />
+    <frame x="-8" y="-8" width="1936" height="1048" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" weight="0.18123667" />
+      <window_info content_ui="combo" id="Project" order="0" weight="0.4573304" />
       <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" />
@@ -637,8 +663,8 @@
       <window_info id="Web" order="8" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32603937" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.39496717" />
-      <window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.3878453" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.84309393" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.60175055" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32932165" />
@@ -697,7 +723,7 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java</url>
-          <line>635</line>
+          <line>634</line>
           <properties />
           <option name="timeStamp" value="125" />
         </line-breakpoint>
@@ -733,21 +759,21 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java</url>
-          <line>194</line>
+          <line>117</line>
           <properties />
-          <option name="timeStamp" value="183" />
+          <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>159</line>
+          <line>128</line>
           <properties />
-          <option name="timeStamp" value="211" />
+          <option name="timeStamp" value="219" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java</url>
-          <line>160</line>
+          <line>21</line>
           <properties />
-          <option name="timeStamp" value="212" />
+          <option name="timeStamp" value="220" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
@@ -894,13 +920,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/timeVo.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
-          <caret line="11" column="19" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="19" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/pojo/RepairShiftSettings.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="310">
@@ -929,16 +948,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="172">
-          <caret line="24" column="25" selection-start-line="24" selection-start-column="13" selection-end-line="24" selection-end-column="25" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/EncryptionUtil.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="115">
@@ -1110,23 +1119,43 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/controller/RepairRecordController.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/TimeExchange.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="650">
-          <caret line="568" column="55" selection-start-line="568" selection-start-column="55" selection-end-line="568" selection-end-column="55" />
+        <state relative-caret-position="310">
+          <caret line="40" column="42" selection-start-line="40" selection-start-column="42" selection-end-line="40" selection-end-column="42" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/model/request/timeVo.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="263">
+          <caret line="13" column="19" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="19" />
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/repair/common/utils/DelayedUtils.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="487">
-          <caret line="129" column="65" selection-start-line="129" selection-start-column="65" selection-end-line="129" selection-end-column="65" />
+        <state relative-caret-position="-3555">
+          <caret line="44" column="49" selection-start-line="44" selection-start-column="49" selection-end-line="44" selection-end-column="49" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <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="276">
+          <caret line="507" column="13" lean-forward="true" selection-start-line="507" selection-start-column="13" selection-end-line="507" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
   </component>
   <component name="masterDetails">
     <states>

+ 102 - 35
src/main/java/com/repair/common/utils/DelayedUtils.java

@@ -126,11 +126,90 @@ public class DelayedUtils {
         //考核 100  160
         //int ssss = addMinuteStart(result, TimeExchange.StringToDate("2023-08-03 14:00:00", "yyyy-MM-dd HH:mm:ss"), 270, TimeExchange.StringToDate("2023-08-03 10:11:00", "yyyy-MM-dd HH:mm:ss"), "2023-08-03", 229, 0, 2);
 
-        int isDuty = 0;
-        Date nowDate = TimeExchange.StringToDate("2023-08-03 19:30:00", "yyyy-MM-dd HH:mm:ss");
-        int acceptanceAssessTime = 200;
-        int maintenanceAssessTime = 600;
+        List<timeVo> nsn = new ArrayList<>();
+        timeVo s1 = new timeVo();
+        s1.setNowDate(TimeExchange.StringToDate("2023-08-03 10:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s1.setAcceptanceAssessTime(50);
+        s1.setMaintenanceAssessTime(60);
+        nsn.add(s1);
+
+        timeVo s2 = new timeVo();
+        s2.setNowDate(TimeExchange.StringToDate("2023-08-03 06:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s2.setAcceptanceAssessTime(200);
+        s2.setMaintenanceAssessTime(600);
+        nsn.add(s2);
+        timeVo s3 = new timeVo();
+        s3.setNowDate(TimeExchange.StringToDate("2023-08-03 07:30:00", "yyyy-MM-dd HH:mm:ss"));
+        s3.setAcceptanceAssessTime(50);
+        s3.setMaintenanceAssessTime(300);
+        nsn.add(s3);
+        timeVo s4 = new timeVo();
+        s4.setNowDate(TimeExchange.StringToDate("2023-08-03 10:11:00", "yyyy-MM-dd HH:mm:ss"));
+        s4.setAcceptanceAssessTime(320);
+        s4.setMaintenanceAssessTime(100);
+        nsn.add(s4);
+        timeVo s5 = new timeVo();
+        s5.setNowDate(TimeExchange.StringToDate("2023-08-03 12:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s5.setAcceptanceAssessTime(200);
+        s5.setMaintenanceAssessTime(160);
+        nsn.add(s5);
+        timeVo s6 = new timeVo();
+        s6.setNowDate(TimeExchange.StringToDate("2023-08-03 14:20:00", "yyyy-MM-dd HH:mm:ss"));
+        s6.setAcceptanceAssessTime(150);
+        s6.setMaintenanceAssessTime(280);
+        nsn.add(s6);
+        timeVo s7 = new timeVo();
+        s7.setNowDate(TimeExchange.StringToDate("2023-08-03 16:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s7.setAcceptanceAssessTime(30);
+        s7.setMaintenanceAssessTime(150);
+        nsn.add(s7);
+        timeVo s8 = new timeVo();
+        s8.setNowDate(TimeExchange.StringToDate("2023-08-03 17:30:00", "yyyy-MM-dd HH:mm:ss"));
+        s8.setAcceptanceAssessTime(50);
+        s8.setMaintenanceAssessTime(200);
+        nsn.add(s8);
+        timeVo s9 = new timeVo();
+        s9.setNowDate(TimeExchange.StringToDate("2023-08-03 19:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s9.setAcceptanceAssessTime(90);
+        s9.setMaintenanceAssessTime(70);
+        nsn.add(s9);
+        timeVo s10 = new timeVo();
+        s10.setNowDate(TimeExchange.StringToDate("2023-08-03 07:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s10.setAcceptanceAssessTime(100);
+        s10.setMaintenanceAssessTime(90);
+        nsn.add(s10);
+        timeVo s20 = new timeVo();
+        s20.setNowDate(TimeExchange.StringToDate("2023-08-03 07:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s20.setAcceptanceAssessTime(200);
+        s20.setMaintenanceAssessTime(400);
+        nsn.add(s20);
+        timeVo s11 = new timeVo();
+        s11.setNowDate(TimeExchange.StringToDate("2023-08-03 11:11:00", "yyyy-MM-dd HH:mm:ss"));
+        s11.setAcceptanceAssessTime(150);
+        s11.setMaintenanceAssessTime(170);
+        nsn.add(s11);
+        timeVo s12 = new timeVo();
+        s12.setNowDate(TimeExchange.StringToDate("2023-08-03 18:30:00", "yyyy-MM-dd HH:mm:ss"));
+        s12.setAcceptanceAssessTime(50);
+        s12.setMaintenanceAssessTime(60);
+        nsn.add(s12);
+        timeVo s13 = new timeVo();
+        s13.setNowDate(TimeExchange.StringToDate("2023-08-03 20:00:00", "yyyy-MM-dd HH:mm:ss"));
+        s13.setAcceptanceAssessTime(70);
+        s13.setMaintenanceAssessTime(90);
+        nsn.add(s13);
+
+
+        for (timeVo t:nsn) {
+            teststs(t.getNowDate(),t.getAcceptanceAssessTime(),t.getMaintenanceAssessTime(),shiftDatas);
+        }
+        String ssss = "";
+    }
+
+    private static void teststs(Date nowDate, int acceptanceAssessTime, int maintenanceAssessTime, List<RepairShiftSettings> shiftDatas) throws ParseException {
         String dateNow = "2023-08-03";
+        int isDuty = 0;
+        //下班之后或者值班接的单不考核 将报修工单中的is_duty改为1
         //下班之后或者值班接的单不考核 将报修工单中的is_duty改为1
         Date workTime = TimeExchange.StringToDate(dateNow + " " + shiftDatas.get(0).getEndTime() + ":00", "yyyy-MM-dd HH:mm:ss");
         if (workTime.before(nowDate)) {
@@ -146,41 +225,28 @@ public class DelayedUtils {
                 Date endWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
 
                 //小于工作时间段的开始时间
-                if (nowDate.before(startWorkTime) || nowDate.equals(startWorkTime)) {
-                    if (i == 0) {
-                        int minute = TimeExchange.getOffsetMinutes(nowDate, startWorkTime);
-                        int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
-                        acceptanceAssessTime = acceptanceAssessTime + minute;
-                        acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                        maintenanceAssessTime = maintenanceAssessTime + minute;
-                        maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                        break;
-                    }
-                    else {
-                        Date lastEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i - 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-                        if (lastEndWorkTime.before(nowDate) || lastEndWorkTime.equals(nowDate)) {
-                            Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-                            Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-                            int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
-                            int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
-                            acceptanceAssessTime = acceptanceAssessTime + minute;
-                            acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-                            maintenanceAssessTime = maintenanceAssessTime + minute;
-                            maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-                            break;
-                        }
-                    }
-                } else if ((startWorkTime.before(nowDate) || startWorkTime.equals(nowDate)) && (nowDate.before(endWorkTime) || endWorkTime.equals(nowDate))) {
+                if (nowDate.before(startWorkTime) || nowDate.equals(startWorkTime) && i == 0) {
+                    //早上开始上班之前的单子
+                    int minute = TimeExchange.getOffsetMinutes(nowDate, startWorkTime);
                     int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
+                    acceptanceAssessTime = acceptanceAssessTime + minute;
                     acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                    maintenanceAssessTime = maintenanceAssessTime + minute;
                     maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                    System.out.println("时间:"+TimeExchange.DateToString(nowDate)+"acc:"+acceptanceAssessTime+"main:"+maintenanceAssessTime);
                     break;
-                } else {
-                    Date sdsfds = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-                    if ((endWorkTime.before(nowDate) || endWorkTime.equals(nowDate)) &&
-                            (nowDate.before(TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss"))
-                                    || nowDate.equals(TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss")))) {
-                        Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
+                } else if ((startWorkTime.before(nowDate) || startWorkTime.equals(nowDate)) && (nowDate.before(endWorkTime) || nowDate.equals(endWorkTime))) {
+                    //工作时间段内的单子
+                    int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
+                    acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                    maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                    System.out.println("时间:"+TimeExchange.DateToString(nowDate)+"acc:"+acceptanceAssessTime+"main:"+maintenanceAssessTime);
+                    break;
+
+                } else{
+                    //非工作时间段的单子
+                    Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
+                    if ((endWorkTime.before(nowDate) || endWorkTime.equals(nowDate)) && (nowDate.before(nextStartWorkTime) || nowDate.equals(nextStartWorkTime))) {
                         Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
                         int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
                         int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
@@ -188,6 +254,7 @@ public class DelayedUtils {
                         acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
                         maintenanceAssessTime = maintenanceAssessTime + minute;
                         maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 2);
+                        System.out.println("时间:"+TimeExchange.DateToString(nowDate)+"acc:"+acceptanceAssessTime+"main:"+maintenanceAssessTime);
                         break;
                     }
                 }

+ 1 - 2
src/main/java/com/repair/common/utils/TimeExchange.java

@@ -39,7 +39,6 @@ public class TimeExchange {
         DateFormat dateFormat = new SimpleDateFormat(formatDate);
         try {
             date = dateFormat.parse(time);
-            System.out.println(date.toString());
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -56,7 +55,7 @@ public class TimeExchange {
     public static String DateToString(Date time) {
         String dateStr = "";
         Date date = new Date();
-        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
+        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
             dateStr = dateFormat.format(time);
             System.out.println(dateStr);

+ 22 - 39
src/main/java/com/repair/controller/RepairRecordController.java

@@ -538,52 +538,35 @@ public class RepairRecordController implements RepairRecordControllerAPI {
                         Date endWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
 
                         //小于工作时间段的开始时间
-                        if (nowDate.before(startWorkTime) || nowDate.equals(startWorkTime)) {
-                            if (i == 0) {
-                                //早上开始上班之前的单子
-                                int minute = TimeExchange.getOffsetMinutes(nowDate, startWorkTime);
-                                int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
-                                acceptanceAssessTime = acceptanceAssessTime + minute;
-                                acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                                maintenanceAssessTime = maintenanceAssessTime + minute;
-                                maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                                break;
-                            }
-
-//                            else {
-//                                //非工作时间段内的单子
-//                                Date lastEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i - 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-//                                if (lastEndWorkTime.before(nowDate) || lastEndWorkTime.equals(nowDate)) {
-//                                    Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-//                                    Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-//                                    int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
-//                                    int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
-//                                    acceptanceAssessTime = acceptanceAssessTime + minute;
-//                                    acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-//                                    maintenanceAssessTime = maintenanceAssessTime + minute;
-//                                    maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-//                                    break;
-//                                }
-//                            }
-                            //工作时间段内的单子
+                        if (nowDate.before(startWorkTime) || nowDate.equals(startWorkTime) && i == 0) {
+                            //早上开始上班之前的单子
+                            int minute = TimeExchange.getOffsetMinutes(nowDate, startWorkTime);
+                            int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
+                            acceptanceAssessTime = acceptanceAssessTime + minute;
+                            acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                            maintenanceAssessTime = maintenanceAssessTime + minute;
+                            maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
+                            break;
                         } else if ((startWorkTime.before(nowDate) || startWorkTime.equals(nowDate)) && (nowDate.before(endWorkTime) || nowDate.equals(endWorkTime))) {
+                            //工作时间段内的单子
                             int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
                             acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
                             maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 1);
                             break;
+
+                        } else{
                             //非工作时间段的单子
-                        } else if ((endWorkTime.before(nowDate) || endWorkTime.equals(nowDate)) &&
-                                  (nowDate.before(TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss"))
-                                  || nowDate.equals(TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss")))) {
                             Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-                            Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-                            int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
-                            int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
-                            acceptanceAssessTime = acceptanceAssessTime + minute;
-                            acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-                            maintenanceAssessTime = maintenanceAssessTime + minute;
-                            maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-                            break;
+                            if ((endWorkTime.before(nowDate) || endWorkTime.equals(nowDate)) && (nowDate.before(nextStartWorkTime) || nowDate.equals(nextStartWorkTime))) {
+                                Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
+                                int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
+                                int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
+                                acceptanceAssessTime = acceptanceAssessTime + minute;
+                                acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
+                                maintenanceAssessTime = maintenanceAssessTime + minute;
+                                maintenanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, maintenanceAssessTime, nowDate, dateNow, workMinte, i, 2);
+                                break;
+                            }
                         }
                     }
                 }

+ 7 - 0
src/main/java/com/repair/model/request/timeVo.java

@@ -2,6 +2,8 @@ package com.repair.model.request;
 
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * @Author: binguo
  * @Date: 2023/8/2 星期三 20:35
@@ -23,4 +25,9 @@ public class timeVo {
      * 是否是工作时间
      */
     private Integer isWork;
+
+
+    private Date nowDate;
+    private int acceptanceAssessTime;
+    private int maintenanceAssessTime;
 }