changhaoshiye/src/test/java/com/goats/ProcessTimeCalculator.java
2025-03-07 17:09:01 +08:00

89 lines
3.1 KiB
Java

package com.goats;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ProcessTimeCalculator {
public static void main(String[] args) {
String filePath = "D:\\GOATS\\昌昊项目资料\\sql\\s_data_202502271336.txt";
List<ProductionRecord> records = new ArrayList<>();
List<ProcessTimeResult> results = new ArrayList<>();
// 读取数据
try (BufferedReader br = new BufferedReader(new FileReader(filePath))) {
String line;
boolean isHeader = true;
while ((line = br.readLine()) != null) {
if (isHeader) { // 跳过表头
isHeader = false;
continue;
}
String[] fields = line.split("\\|");
if (fields.length < 8) continue;
ProductionRecord record = new ProductionRecord();
record.rid = Long.parseLong(fields[1].trim());
record.id = Integer.parseInt(fields[2].trim());
record.a002CycleTime = Double.parseDouble(fields[4].trim().replace(",", "")); //循环时间
record.a003RunningTime = Double.parseDouble(fields[5].trim().replace(",", ""));//运行时间
record.a005Quantity = Integer.parseInt(fields[7].trim().replace(",", ""));//加工数量
records.add(record);
}
} catch (IOException e) {
e.printStackTrace();
}
// 计算加工工时
int previousQuantity = 0;
double previousRunningTime = 0;
for (ProductionRecord record : records) {
if (record.a005Quantity > previousQuantity) {
if (previousQuantity != 0) { // 忽略初始值
double cycleTime = record.a003RunningTime - previousRunningTime;
results.add(new ProcessTimeResult(
record.a005Quantity,
cycleTime,
record.a002CycleTime
));
}
previousQuantity = record.a005Quantity;
previousRunningTime = record.a003RunningTime;
}
}
// 打印结果
System.out.println("零件编号 | 加工工时 (分钟) | A002循环时间 (秒)");
for (ProcessTimeResult result : results) {
System.out.printf("%-8d | %-12.2f | %-15.2f%n",
result.partNumber,
result.processTime,
result.a002CycleTime
);
}
}
static class ProductionRecord {
long rid;
int id;
double a002CycleTime;
double a003RunningTime;
int a005Quantity;
}
static class ProcessTimeResult {
int partNumber;
double processTime;
double a002CycleTime;
ProcessTimeResult(int partNumber, double processTime, double a002CycleTime) {
this.partNumber = partNumber;
this.processTime = processTime;
this.a002CycleTime = a002CycleTime;
}
}
}