|
|
@@ -85,12 +85,14 @@ public class EquipmentSafeOperationRewardTask {
|
|
|
|
|
|
int processedCount = 0;
|
|
|
for (GxtEquipment equipment : equipments) {
|
|
|
- try {
|
|
|
- processEquipmentSafeOperationReward(equipment);
|
|
|
- processedCount++;
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("处理设备 {} 连续安全运行奖励时发生异常", equipment.getEquipmentCode(), e);
|
|
|
- }
|
|
|
+ //if(equipment.getEquipmentId() == 59L){
|
|
|
+ try {
|
|
|
+ processEquipmentSafeOperationReward(equipment);
|
|
|
+ processedCount++;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理设备 {} 连续安全运行奖励时发生异常", equipment.getEquipmentCode(), e);
|
|
|
+ }
|
|
|
+ //}
|
|
|
}
|
|
|
|
|
|
log.info("设备连续安全运行奖励任务执行完成,共处理 {} 个设备", processedCount);
|
|
|
@@ -116,7 +118,7 @@ public class EquipmentSafeOperationRewardTask {
|
|
|
|
|
|
// 第一次查询:查询workOrderStatus不等于invalid的工单,按restartTime降序排序
|
|
|
List<GxtRepairOrder> archivedRepairOrders = repairOrderService.selectGxtRepairOrderByDeviceIdWithCondition(
|
|
|
- equipment.getEquipmentId(), "invalid", true, "restartTime", MAX_ORDERS_PER_QUERY, true);
|
|
|
+ equipment.getEquipmentId(), "invalid", true, "restartTime", MAX_ORDERS_PER_QUERY, false);
|
|
|
|
|
|
List<GxtWorkOrder> archivedWorkOrders = workOrderService.selectGxtWorkOrderByDeviceIdWithCondition(
|
|
|
equipment.getEquipmentId(), "invalid", true, "restartTime", MAX_ORDERS_PER_QUERY);
|
|
|
@@ -168,16 +170,18 @@ public class EquipmentSafeOperationRewardTask {
|
|
|
if (applicableDeduction != null) {
|
|
|
// 使用预处理的数据进行扣分处理
|
|
|
if (processedData.relatedRepairOrder != null) {
|
|
|
- // 如果对应的工单是GxtRepairOrder,则获取的是downtimeScore的值
|
|
|
- BigDecimal deductionScore = applicableDeduction.getDowntimeScore();
|
|
|
- if (deductionScore != null && deductionScore.compareTo(BigDecimal.ZERO) < 0) { // 确保是负数
|
|
|
- log.info("设备 {} 停运 {} 天,扣减维修工单 {} 停机分值 {}",
|
|
|
- equipment.getEquipmentCode(), daysSinceFailure, processedData.relatedRepairOrder.getWorkOrderProjectNo(), deductionScore);
|
|
|
-
|
|
|
- // 对相关工单人员进行扣分操作
|
|
|
- updatePersonStopScoreForRepairOrder(processedData.relatedRepairOrder, deductionScore);
|
|
|
- // 更新月度统计数据
|
|
|
- updateMonthlyScoreDataForStopScore(processedData.relatedRepairOrder, deductionScore);
|
|
|
+ if(!"2".equals(processedData.relatedRepairOrder.getRepairMethod())){
|
|
|
+ // 如果对应的工单是GxtRepairOrder,则获取的是downtimeScore的值
|
|
|
+ BigDecimal deductionScore = applicableDeduction.getDowntimeScore();
|
|
|
+ if (deductionScore != null && deductionScore.compareTo(BigDecimal.ZERO) < 0) { // 确保是负数
|
|
|
+ log.info("设备 {} 停运 {} 天,扣减维修工单 {} 停机分值 {}",
|
|
|
+ equipment.getEquipmentCode(), daysSinceFailure, processedData.relatedRepairOrder.getWorkOrderProjectNo(), deductionScore);
|
|
|
+
|
|
|
+ // 对相关工单人员进行扣分操作
|
|
|
+ updatePersonStopScoreForRepairOrder(processedData.relatedRepairOrder, deductionScore);
|
|
|
+ // 更新月度统计数据
|
|
|
+ updateMonthlyScoreDataForStopScore(processedData.relatedRepairOrder, deductionScore);
|
|
|
+ }
|
|
|
}
|
|
|
} else if (processedData.relatedWorkOrder != null) {
|
|
|
// 如果对应的工单是GxtWorkOrder,则获取的是downtimeScore的值
|
|
|
@@ -227,16 +231,18 @@ public class EquipmentSafeOperationRewardTask {
|
|
|
|
|
|
// 使用预处理的数据进行奖励处理
|
|
|
if (processedData.relatedRepairOrder != null) {
|
|
|
- // 如果对应的工单是GxtRepairOrder,则获取的是unplannedMaintenanceScore的值
|
|
|
- BigDecimal rewardScore = applicableReward.getUnplannedMaintenanceScore();
|
|
|
- if (rewardScore != null && rewardScore.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- log.info("设备 {} 安全运行 {} 天,奖励维修工单 {} 维修奖励分值 {}",
|
|
|
- equipment.getEquipmentCode(), daysBetween, processedData.relatedRepairOrder.getWorkOrderProjectNo(), rewardScore);
|
|
|
-
|
|
|
- // 然后在获取这个工单所对应的人员数据,对这些人员进行加分操作
|
|
|
- updatePersonRunScoreForRepairOrder(processedData.relatedRepairOrder, rewardScore);
|
|
|
- // 更新月度统计数据
|
|
|
- updateMonthlyScoreDataForRunScore(processedData.relatedRepairOrder, rewardScore);
|
|
|
+ if(!"2".equals(processedData.relatedRepairOrder.getRepairMethod())){
|
|
|
+ // 如果对应的工单是GxtRepairOrder,则获取的是unplannedMaintenanceScore的值
|
|
|
+ BigDecimal rewardScore = applicableReward.getUnplannedMaintenanceScore();
|
|
|
+ if (rewardScore != null && rewardScore.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ log.info("设备 {} 安全运行 {} 天,奖励维修工单 {} 维修奖励分值 {}",
|
|
|
+ equipment.getEquipmentCode(), daysBetween, processedData.relatedRepairOrder.getWorkOrderProjectNo(), rewardScore);
|
|
|
+
|
|
|
+ // 然后在获取这个工单所对应的人员数据,对这些人员进行加分操作
|
|
|
+ updatePersonRunScoreForRepairOrder(processedData.relatedRepairOrder, rewardScore);
|
|
|
+ // 更新月度统计数据
|
|
|
+ updateMonthlyScoreDataForRunScore(processedData.relatedRepairOrder, rewardScore);
|
|
|
+ }
|
|
|
}
|
|
|
} else if (processedData.relatedWorkOrder != null) {
|
|
|
// 如果对应的工单是GxtWorkOrder,则获取的是plannedMaintenanceScore的值
|