9月28日记录
一个管理流水线的MES系统的java实现:
代码如下:
点击查看代码
import java.util.Scanner;
import java.util.Objects;
public class PlanInformation {
private static int counter = 0; // 用于 ID 递增
private int id;
private String planid;
private String planname;
private String process;
private String nextprocess;
private String operator;
private String recipient;
private int plannumber;
private int innumber;
private int outnumber;
private int missnumber;
private int badnumber;
private int inspectednumber;
private int statement;
public PlanInformation(String planid, String planname, String process, String nextprocess,
String operator, String recipient, int plannumber) {
this.id = ++counter;
this.planid = planid;
this.planname = planname;
this.process = process;
this.nextprocess = nextprocess;
this.operator = operator;
this.recipient = recipient;
this.plannumber = plannumber;
this.innumber = 0;
this.outnumber = 0;
this.missnumber = 0;
this.badnumber = 0;
this.inspectednumber = 0;
this.statement = 0; // 默认状态为 0 (初始计划)
}
public int getId() { return id; }
public String getPlanid() { return planid; }
public String getPlanname() { return planname; }
public String getProcess() { return process; }
public String getNextprocess() { return nextprocess; }
public String getOperator() { return operator; }
public String getRecipient() { return recipient; }
public int getPlannumber() { return plannumber; }
public int getInnumber() { return innumber; }
public int getOutnumber() { return outnumber; }
public int getMissnumber() { return missnumber; }
public int getBadnumber() { return badnumber; }
public int getInspectednumber() { return inspectednumber; }
public int getStatement() { return statement; }
public void setPlanid(String planid) { this.planid = planid; }
public void setPlanname(String planname) { this.planname = planname; }
public void setProcess(String process) { this.process = process; }
public void setNextprocess(String nextprocess) { this.nextprocess = nextprocess; }
public void setOperator(String operator) { this.operator = operator; }
public void setRecipient(String recipient) { this.recipient = recipient; }
public void setPlannumber(int plannumber) { this.plannumber = plannumber; }
public void setInnumber(int innumber) { this.innumber = innumber; }
public void setOutnumber(int outnumber) { this.outnumber = outnumber; }
public void setMissnumber(int missnumber) { this.missnumber = missnumber; }
public void setBadnumber(int badnumber) { this.badnumber = badnumber; }
public void setInspectednumber(int inspectednumber) { this.inspectednumber = inspectednumber; }
public void setStatement(int statement) { this.statement = statement; }
@Override
public String toString() {
return String.format("ID: %d, Plan ID: %s, Plan Name: %s, Process: %s, Next Process: %s",
id, planid, planname, process, nextprocess);
}
}
class PlanManagement {
private PlanInformation[] plans = new PlanInformation[5];
private int count = 0;
public static void main(String[] args) {
PlanManagement management = new PlanManagement();
management.showMainMenu();
}
public void showMainMenu() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("***********************************************************");
System.out.println("石家庄铁道大学无限23软件开发有限公司");
System.out.println("Mes系统2023版");
System.out.println("***********************************************************");
System.out.println("1、生成计划");
System.out.println("2、提交日报");
System.out.println("3、确认日报");
System.out.println("4、统计进度");
System.out.println("***********************************************************");
System.out.print("请输入选项: ");
int option = scanner.nextInt();
switch (option) {
case 1:
generatePlan();
break;
case 2:
submitReport();
break;
case 3:
confirmReport();
break;
case 4:
statistics();
break;
default:
System.out.println("该选项不存在,请重新输入!");
}
}
}
private void generatePlan() {
if (count < plans.length) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入产品批次(格式:YYYY-MMO):");
String planid = scanner.nextLine();
System.out.print("请输入产品名称:");
String planname = scanner.nextLine();
System.out.print("请输入计划数量:");
int plannumber = scanner.nextInt();
if (planid.length() != 8 || !planid.matches("\\d{4}-\\d{3}")) {
System.out.println("录入错误,产品批次格式错误!");
return;
}
String process = "10.00.射蜡";
String nextprocess = "20.00.修蜡";
String operator = "柳泽羽";
String recipient = "藤艺哲";
plans[count++] = new PlanInformation(planid, planname, process, nextprocess, operator, recipient, plannumber);
System.out.println("该产品入库操作已完成,是否提交(Y/N):");
char confirm = scanner.next().charAt(0);
if (confirm == 'Y' || confirm == 'y') {
System.out.println("产品信息已提交!");
} else {
System.out.println("放弃提交,返回主界面。");
count--;
}
} else {
System.out.println("存储已满,无法生成新的计划!");
}
}
private void submitReport() {
if (count == 0) {
System.out.println("没有可选的日报,请先生成计划!");
return;
}
Scanner scanner = new Scanner(System.in);
System.out.print("请输入产品批次号:");
String planid = scanner.nextLine();
PlanInformation plan = findPlanById(planid);
if (plan == null) {
System.out.println("库中没有该产品批次!");
return;
}
System.out.println("1、产品批次:" + plan.getPlanid());
System.out.println("2、产品名称:" + plan.getPlanname());
System.out.println("3、计划数量:" + plan.getPlannumber());
System.out.print("录入当前记录状态(0-初始,1-提交,2-确认):");
int statement = scanner.nextInt();
plan.setStatement(statement);
System.out.println("日报提交完成!");
}
private void confirmReport() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入产品批次:");
String planid = scanner.nextLine();
PlanInformation plan = findPlanById(planid);
if (plan == null) {
System.out.println("库中没有该产品批次!");
return;
}
if (plan.getStatement() == 1) {
System.out.println("确认日报信息:");
// TODO: 显示更多信息,并提供确认操作
System.out.print("确认结果(Y/N):");
char confirm = scanner.next().charAt(0);
if (confirm == 'Y' || confirm == 'y') {
plan.setStatement(2);
System.out.println("确认完成,新的生产任务生成!");
}
} else {
System.out.println("该批次状态未提交或已确认!");
}
}
private void statistics() {
System.out.println("***********************************************************");
System.out.println("进度统计功能未实现。");
}
private PlanInformation findPlanById(String planid) {
for (PlanInformation plan : plans) {
if (plan != null && Objects.equals(plan.getPlanid(), planid)) {
return plan;
}
}
return null;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?