Commit 9e01001a authored by Tong Li's avatar Tong Li

处理时间

parent d98a5bf6
...@@ -3,6 +3,7 @@ package com.aps.entity.basic; ...@@ -3,6 +3,7 @@ package com.aps.entity.basic;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.UUID; import java.util.UUID;
/** /**
...@@ -29,7 +30,16 @@ public class TimeSegment { ...@@ -29,7 +30,16 @@ public class TimeSegment {
} }
public int getProcessingTime() {
return calProcessingTime(); // 绝对处理时间(分钟)
}
public int calProcessingTime()
{
// 计算单个片段的有效时长(分钟),并乘以效率值
double segmentSeconds = ChronoUnit.SECONDS.between(this.start, this.end)*this.efficiency;
return (int)segmentSeconds;
}
// 全参构造(按需添加) // 全参构造(按需添加)
......
...@@ -519,8 +519,25 @@ if(finishedOrder==null||finishedOrder.size()==0) ...@@ -519,8 +519,25 @@ if(finishedOrder==null||finishedOrder.size()==0)
} }
} }
int processingTimeTotal1=0;
processingTimeTotal1=(int) geneDetails.stream().filter(t->t.getUsedSegment()==null).mapToDouble(ScheduleResultDetail::getProcessingTime) // 替换为实际字段名
.sum();
List<TimeSegment> UsedSegments=geneDetails.stream().
filter(t->t.getUsedSegment()!=null)
.map(ScheduleResultDetail::getUsedSegment).flatMap(List::stream)
// 收集为最终的 List
.collect(Collectors.toList());
if(UsedSegments!=null&&UsedSegments.size()>0)
{
processingTimeTotal1+=(int)UsedSegments.stream().mapToDouble(TimeSegment::getProcessingTime) // 替换为实际字段名
.sum();
}
result.setProcessingTime(processingTimeTotal1);
result.setProcessingTime(processingTimeTotal);
result.setGeneDetails(geneDetails); result.setGeneDetails(geneDetails);
// System.out.println("huanxingshijian="+result.getChangeOverTime()+"-------------------"+result.getOrderId()+"--------"+result.getExecId()+"---------"+prev.getOrderId()+"--------"+prev.getExecId()); // System.out.println("huanxingshijian="+result.getChangeOverTime()+"-------------------"+result.getOrderId()+"--------"+result.getExecId()+"---------"+prev.getOrderId()+"--------"+prev.getExecId());
......
...@@ -310,6 +310,7 @@ public class MachineCalculator { ...@@ -310,6 +310,7 @@ public class MachineCalculator {
time.setEndTime((int) ChronoUnit.SECONDS.between(baseTime, endCandidate)); time.setEndTime((int) ChronoUnit.SECONDS.between(baseTime, endCandidate));
time.setOneTime(oneTime); time.setOneTime(oneTime);
time.setQuantity(quantity); time.setQuantity(quantity);
times.add(time); times.add(time);
CopyOnWriteArrayList<TimeSegment> usedSegments = RemoveMachineAvailable(machine, time, slot); CopyOnWriteArrayList<TimeSegment> usedSegments = RemoveMachineAvailable(machine, time, slot);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment