Проектирование и внедрение системы управления складом на базе JavaSwing+Mysql

Java задняя часть база данных
Проектирование и внедрение системы управления складом на базе JavaSwing+Mysql

theme: condensed-night-purple highlight: a11y-dark

Это 18-й день моего участия в ноябрьском испытании обновлений. Узнайте подробности события:Вызов последнего обновления 2021 г."

Предисловие:

Этот проект разработан с использованием Java Swing, который может реализовать вход/регистрацию/сброс системы управления складом, управление системой, управление сырьем, управление готовой продукцией, управленческие записи и выход из системы после входа в систему. Дизайн интерфейса относительно краток, подходит для использования в качестве разработки курса Java для начинающих и технологии обучения.

Резюме:

      В настоящее время многие предприятия имеют проблемы: недостаточная информатизация, низкая загрузка компьютеров, большое количество повседневных задач выполняется вручную, поэтому такие проблемы, как низкая эффективность работы и плохая внутренняя коммуникация, трудно преодолеть. Для повышения конкурентоспособности предприятий необходима внутренняя информатизация предприятий. Поэтому необходимо внедрить передовую систему автоматизации и реализовать управление, совместное использование и передачу информации внутри предприятия, чтобы позволить предприятию занять лидирующие позиции в условиях жесткой конкуренции 21 века. Система управления складом — это планирование и контроль потока товаров и информации, а также денег. Он образует единое целое складского хозяйства, складского хозяйства и инвентаря, так что предприятие находится в состоянии полного контроля, уменьшая масштаб инвестиций и ускоряя оборачиваемость капитала. На основе отражения в режиме реального времени корректирует отклонения предприятия во всех аспектах ежедневного производственного и операционного процесса, снижает себестоимость готовой продукции и отставание товаров. Этот дизайн представляет собой базовую систему управления складом, а функция программы относительно проста и близка к реальности. Система эффективно управляет общими деловыми операциями, такими как отсутствие и наличие запасов и управление запасами на предприятии, а также базовой информацией, такой как связанные поставщики. Поэтому он имеет универсальное применение и может удовлетворить потребности складов предприятия. Эта система использует программное обеспечение для управления базой данных My SQL и MySQL в качестве платформы разработки системы, а также использует графический язык программирования JavaSwing для разработки программ.

 

Основные модули:

Вход пользователя, регистрация, сброс

Управление сырьем: «вход сырья, возврат сырья, инвентаризация сырья, выставление счетов за производство, возврат производства, производственные отходы»

Управление готовой продукцией: «ввод готовой продукции, инвентаризация готовой продукции, возврат готовой продукции, ремонт готовой продукции, возврат готовой продукции»

Управление записями: «оперативные записи, записи об отходах, записи об отгрузке, записи о сырье, записи о готовой продукции»

Справочный центр: «Помощь, О программе, Выход из системы»

Функциональный скриншот:

Авторизоваться

Функция домашней страницы системы

Управление системой:

Войдите на страницу управления системой, вы можете регистрировать новых пользователей, удалять пользователей, а также упорядочивать и просматривать данные.

Управление сырьем:

Управление сырьем: включая ввод сырья, возврат сырья, инвентаризацию сырья, выставление счетов за производство, возврат производства, ввод и просмотр производственных отходов и других данных и т. д.

Управление готовой продукцией:

Управление готовой продукцией: включая ввод готовой продукции, инвентаризацию готовой продукции, возврат готовой продукции, ремонт готовой продукции, ввод данных о возврате готовой продукции и операции просмотра и т. д.

Управление записью:

Управление записями: включая записи операций, записи об отходах, записи об отгрузке, записи о сырье и записи о готовой продукции, операции просмотра данных.

разное:

 

Некоторые ключевые коды:

Регистрация входа пользователя:

public class Logo implements ActionListener{
	public static final String logoon = "登录";
	public static final String helpt = "帮助";
	public static final String logooff ="退出";
	public static final String user = "用    户:";
	public static final String password = "密    码:";
	private javax.swing.JTextField userText;
	private javax.swing.JPasswordField userpwd;
	private javax.swing.JPanel jp = new javax.swing.JPanel(){
		public void paintComponent(Graphics g){
			super.paintComponent(g);
			if(!isOpaque()){return;}
			Graphics2D g2d = (Graphics2D) g;
			//int rule = AlphaComposite.SRC_OVER;
			AlphaComposite opaque = AlphaComposite.SrcOver;
			//AlphaComposite blend = AlphaComposite.getInstance(rule, 0.6f);
			//AlphaComposite set = AlphaComposite.Src;
			int width = getWidth();
			int height = getHeight();
			GradientPaint gradientPaint = new GradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false);
			g2d.setComposite(opaque);
			g2d.setPaint(gradientPaint);
			g2d.fillRect(0, 0, width,height);
			g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
		}
	};
	private javax.swing.JButton logoin = null;
	private JFrame logo_Frame = new JFrame(logoon);
	/*public Logo() {
		// TODO 自动生成构造函数存根
	}
	*/
	public Logo(){
		try{
			UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		}catch(Exception exe){System.err.print(exe.getMessage());}
		JFrame.setDefaultLookAndFeelDecorated(true);
		Toolkit tools = logo_Frame.getToolkit();
		Image logo = tools.getImage("res/logo.jpg");
		logo_Frame = new JFrame(logoon);
		logo_Frame.setIconImage(logo);
		
		
		jp.setLayout(new GridBagLayout());
		jp.setBackground(java.awt.Color.pink);
		javax.swing.ImageIcon pic = new javax.swing.ImageIcon("res/logo1.jpg");
		javax.swing.JLabel picture = new javax.swing.JLabel(pic);
		setupComponent(picture,0,0,GridBagConstraints.ABOVE_BASELINE_LEADING,1,true);
		javax.swing.JLabel users = new javax.swing.JLabel(user);
		setupComponent(users,0,1,1,1,false);
		javax.swing.JLabel pas = new javax.swing.JLabel(password);
		setupComponent(pas,0,2,1,1,false);
		userText = new javax.swing.JTextField(12);
		userText.requestFocus();
		userText.addKeyListener(new KeyListener(){
			public void keyTyped(KeyEvent e){}
			public void keyReleased(KeyEvent e){}
			public void keyPressed(KeyEvent e){
				if((e.getKeyChar() == KeyEvent.VK_ENTER )&&(userText.getText().trim() != "")){
					userpwd.requestFocus();
				}
			}
		});
		setupComponent(userText,1,1,1,1,false);
		userpwd = new javax.swing.JPasswordField(12);
		userpwd.addKeyListener(new KeyListener(){
			public void keyTyped(KeyEvent e){}
			public void keyPressed(KeyEvent e){
				if((e.getKeyChar() == KeyEvent.VK_ENTER) && (userpwd.getText().trim() != "")){
					logoin.requestFocus();
				}
				else{
					userpwd.requestFocus();
				}
			}
			public void keyReleased(KeyEvent e){
				
			}
		});
		setupComponent(userpwd,1,2,1,1,false);
		
		logoin = new javax.swing.JButton(logoon);
		logoin.addKeyListener(new KeyListener(){
			public void keyTyped(KeyEvent e){}
			public void keyReleased(KeyEvent e){}
			public void keyPressed(KeyEvent e){
				if((e.getKeyChar()==KeyEvent.VK_ENTER )){
					if(("".equals(userText.getText().trim())) ){
						javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE);
						userText.requestFocus();
						return;
					}
					if(("".equals(userpwd.getText().trim()))){
						javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE);
						userpwd.requestFocus();
						return;
					}
					boolean b = USeDB.logoon(userText.getText().trim(), userpwd.getText().trim());
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
					Date date = new Date(System.currentTimeMillis());
					String day = sdf.format(date);
					String s ="'"+day+"','"+userText.getText().trim()+"','"+"登录"+"'";
					String sql = "insert into handle_record values("+s+")";
					USeDB.UpdateDB(sql);
					if(b){
						logo_Frame.dispose();
						new My_MainFrame(userText.getText().trim());
					}
					userText.setText("");
					userpwd.setText("");
					userText.requestFocus();
				}
			}
		});
		logoin.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				System.out.println(userText.getText());
				if(("".equals(userText.getText().trim()))){
					javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE);
					userText.requestFocus();
					return;
				}
				if(("".equals(userpwd.getText().trim()))){
					javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE);
					userpwd.requestFocus();
					return;
				}
				if(userText.getText().trim()!=""&& userpwd.getText().trim()!=""){
				boolean b = USeDB.logoon(userText.getText().trim(), userpwd.getText().trim());
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				Date date = new Date(System.currentTimeMillis());
				String day = sdf.format(date);
				String s ="'"+day+"','"+userText.getText().trim()+"','"+"登录"+"'";
				String sql = "insert into handle_record values("+s+")";
				USeDB.UpdateDB(sql);
				if(b==true){
					logo_Frame.dispose();
					new My_MainFrame(userText.getText().trim());
				}else{
					userText.setText("");
					userpwd.setText("");
					userText.requestFocus();
					javax.swing.JOptionPane.showMessageDialog(logo_Frame, "用户名或密码错误","错误提示",JOptionPane.ERROR_MESSAGE);
				}
			}
			}
		});
		setupComponent(logoin,0,3,1,1,true);
		
		javax.swing.JButton help = new javax.swing.JButton(helpt);
		

Подключение к БД:

public class DBUtil{
private static String dbUrl="jdbc:mysql://localhost:3307/stock_manager2?characterEncoding=utf8"; // 数据库连接地址
	private static String dbUserName="root"; // 用户名,这里是你的mysql用户名,一般是root
	private static String dbPassword="crit@2019"; // 密码,mysql密码,密码为空的话不要写,我的是空,所以没写
	private static String jdbcName="com.mysql.jdbc.Driver"; // 驱动名称
	//private static String driver="sun.jdbc.odbc.JdbcOdbcDriver";//声明驱动类字符串
	//声明数据库连接字符串
	//private static String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=db/mydb.mdb";
	private static Connection con=null;//声明数据库连接对象引用
	private static Statement stat=null;//声明语句对象引用
	private static PreparedStatement psInsert=null;//声明预编译语句对象引用
	private static ResultSet rs=null;//声明结果集对象引用
	public DBUtil() {
		// TODO 自动生成构造函数存根}
	public static Connection getConnection(){//得到数据库连接的方法
		try{
			Class.forName(jdbcName);//加载驱动类
			con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);//得到连接
		}
		catch(Exception e){e.printStackTrace();}
		return con;//返回连接
	}
	public static void closeCon(){//关闭数据库连接的方法
		try{
			if(rs!=null){rs.close(); rs=null;}//如果结果集不为空关闭结果集并赋值null
			if(stat!=null){stat.close(); stat=null;}//如果语句对象不为空关闭语句对象并赋值null
			if(con!=null){con.close(); con=null;}//如果连接不为空关闭连接并赋值null				
		}
		catch(Exception e){e.printStackTrace();}
	}
	
}

Дизайн базы данных:

пользовательская таблица:

CREATE TABLE `NewTable` (
`user_id`  int(11) NOT NULL AUTO_INCREMENT ,
`user_name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`u_text`  longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY (`user_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=5
ROW_FORMAT=DYNAMIC
;

Форма ввода сырья:

CREATE TABLE `NewTable` (
`product_ID`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`product_client`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`product_name`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`product_spec`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`product_unit`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`product_value`  float NULL DEFAULT NULL ,
`product_make`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stock_date`  datetime NULL DEFAULT NULL ,
`product_text`  longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY (`product_ID`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=DYNAMIC
;

Лист регистрации отгрузки:

CREATE TABLE `NewTable` (
`scrap_id`  int(11) NOT NULL AUTO_INCREMENT ,
`user_name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`handle_date`  datetime NULL DEFAULT NULL ,
`scrap_text`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`scrap_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=3
ROW_FORMAT=DYNAMIC
;

Информационный лист отходов:

CREATE TABLE `NewTable` (
`stuff_ID`  varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`stuff_name`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_company`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_people`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`check_people`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_unit`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_value`  int(11) NULL DEFAULT NULL ,
`stuff_spec`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_color`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stuff_place`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`stock_date`  datetime NULL DEFAULT NULL ,
`stuff_text`  longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY (`stuff_ID`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=DYNAMIC
;

Суммировать:

         через этот дизайн курса. Я узнал много вещей, которые мне очень пригодились. Я чувствую, что дизайн интерфейса java похож на интерфейс mfc. Просто у java нет визуального интерфейса и это слишком утомительно. Другие в основном связаны с классами и объектами. Это довольно просто реализовать. Используя базу данных mysql с высокой стабильностью и безопасностью, два программного обеспечения объединяются для завершения проектирования и разработки системы. Он также полностью учитывает потребности пользователей. Оператор может запросить всю информацию в любое время, и каждый модуль предоставляет функцию просмотра информации. Эта система понимает, что пользователи могут выполнять управление системой, управление сырьем, управление готовой продукцией, управленческие записи и другие операции после входа в систему. Поскольку у меня недостаточно знаний и опыта, а время разработки короткое, система будет иметь некоторые дефекты и недостатки. . В будущем будет предпринято больше усилий для улучшения этой системы, но она по-прежнему является хорошим выбором в качестве справочного материала для обучения студентов и разработки курса.

ВсеНравится, Избранное, Следите, КомментируйтеЛа,