diff --git a/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java index aaa13a5..389eaab 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java @@ -37,10 +37,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; import static org.springblade.common.enums.DictBizEnum.GOODS_TYPE; @@ -379,26 +376,36 @@ public class WorkOrderServiceImpl extends BaseServiceImpl workOrderList = this.list(Wrappers.lambdaQuery(WorkOrder.class) - .eq(WorkOrder::getRepairPerson, user.getId()) - .eq(WorkOrder::getApproveResult, 1)); + .eq(WorkOrder::getRepairPerson, user.getId())); int num = workOrderList.size() * 3; if (num == 0) { maintenancePersonnel.setRatio(null); } else { int flag = 0; for (WorkOrder workOrder : workOrderList) { - if (workOrder.getIsOkSecure() == 1) { + Optional isOkSecure = Optional.ofNullable(workOrder.getIsOkSecure()); + Optional isOkValidity = Optional.ofNullable(workOrder.getIsOkValidity()); + Optional isOkQuality = Optional.ofNullable(workOrder.getIsOkQuality()); + if (isOkQuality.isEmpty() && isOkValidity.isEmpty() && isOkSecure.isEmpty()) { + num = num - 3; + continue; + } + if (isOkSecure.isPresent() && isOkSecure.get() == 1) { flag++; } - if (workOrder.getIsOkValidity() == 1) { + if (isOkValidity.isPresent() && isOkValidity.get() == 1) { flag++; } - if (workOrder.getIsOkQuality() == 1) { + if (isOkQuality.isPresent() && isOkQuality.get() == 1) { flag++; } } - int ratio = flag * 100 / num; - maintenancePersonnel.setRatio(ratio); + if (num == 0) { + maintenancePersonnel.setRatio(null); + } else { + int ratio = flag * 100 / num; + maintenancePersonnel.setRatio(ratio); + } } list.add(maintenancePersonnel); }