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;
        }
    }
posted @   一只虎鲸  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示