Forráskód Böngészése

修改连续运行得分、扣分

ouyj 2 hónapja
szülő
commit
e0b5732682

+ 13 - 3
ygtx-gxt/src/main/java/com/ygtx/gxt/task/EquipmentSafeOperationRewardTask.java

@@ -179,13 +179,20 @@ public class EquipmentSafeOperationRewardTask {
             return; // 必须最少能找到任意的GxtRepairOrder或者GxtWorkOrder当中的其中一个,否则数据不完整,不用再继续后面的步骤
         }
 
-        if (processedData.latestOccurOrPauseTime == null) {
+        /*if (processedData.latestOccurOrPauseTime == null) {
             log.debug("设备 {} 未找到任何occurTime或pauseTime数据,跳过处理", equipment.getEquipmentCode());
             return; // 必须最少能找到任意的GxtRepairOrder或者GxtWorkOrder当中的其中一个,否则数据不完整,不用再继续后面的步骤
+        }*/
+
+        // 检查是否在安全运行中
+        if (processedData.latestOccurOrPauseTime != null && processedData.latestRestartTime.before(processedData.latestOccurOrPauseTime)) {
+            log.debug("设备 {} 的最新occurTime/pauseTime({})比restartTime({})晚,不在安全运行中",
+                    equipment.getEquipmentCode(), processedData.latestOccurOrPauseTime, processedData.latestRestartTime);
+            return;
         }
 
         // 检查是否在安全运行中
-        if (!processedData.latestRestartTime.before(processedData.latestOccurOrPauseTime)) {
+        //if (!processedData.latestRestartTime.before(processedData.latestOccurOrPauseTime)) {
             // 计算安全运行天数
             int daysBetween = DateUtils.calculateDateDifference(DateUtils.getNowDate(), processedData.latestRestartTime);
             if (daysBetween <= 0) {
@@ -242,7 +249,7 @@ public class EquipmentSafeOperationRewardTask {
             } else {
                 log.warn("设备 {} 未找到对应的工单信息", equipment.getEquipmentCode());
             }
-        }
+        //}
     }
 
     /**
@@ -1308,6 +1315,9 @@ public class EquipmentSafeOperationRewardTask {
         // 计算停运天数:复运时间 - 停机时间(pauseTime)
         Date restartTime = workOrder.getRestartTime();
         Date pauseTime = workOrder.getPauseTime(); // 维保工单使用pauseTime作为停机时间
+        if (pauseTime == null) {
+            pauseTime = workOrder.getCreateTime();
+        }
         if (restartTime == null || pauseTime == null) {
             log.warn("维保工单 {} 的复运时间或停机时间为空,跳过扣分", workOrder.getWorkOrderProjectNo());
             return;

+ 3 - 0
ygtx-gxt/src/main/resources/mapper/gxt/GxtWorkOrderMapper.xml

@@ -946,6 +946,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     and work_order_status = #{workOrderStatus}
                 </if>
             </if>
+            <if test="orderByField != null and orderByField == 'restartTime'">
+                and work_order_status IN ('completed','archived')
+            </if>
         </where>
         <choose>
             <when test="orderByField != null and orderByField == 'pauseTime'">