倉庫系統java
Ⅰ 跪求java倉庫管理軟體的源代碼
給你個流程,自己學著做,做出來你會很有成就感的,對你的技術也有很大幫助:
倉庫管理系統流程說明
(一)進貨管理
現代商業管理,進貨環節尤為重要,要求現場實時下訂單(Purchase
Order),及時補貨。
1、
業務員根據手中的手持終端(Handheld
Terminal,簡稱HHT),調用後台資料,與實際庫存資料進行實
時對照,並可通過終端無線驅動列印機列印對照表;
2、
業務員根據實時對照表,現場決定是否應補貨或退貨,通過終端調用後台資料庫制定訂單,以最快速度進行補貨或退貨;維持庫存的合理性。
(二)上架
將貨物存放到貨位上。
(三)交叉駁運
這種作業不對商品進行儲存,只處理信息分類。作業接受來自製造商的顧客組合訂貨,並把他們裝運到個別的顧客處去。交叉站台是指多對多的配送體系中的貨物調整。直接通過交叉換貨後為客戶配送,可以避免出入庫的麻煩。
(四)收貨管理
1、
供貨商按照訂單要求將貨品送到商場收貨處;
2、
商場驗收人員利用終端調用後台資料庫中相應的訂單存檔,與供貨商送來的商品逐一檢查對照,並進行確認,包括:商品編碼、商品數量、生產地、品種、規格、包裝時間、保質時間、舊價格、新價格、變更時間、條形碼標准等信息;
注:終端在系統未授權的情況下無法修改訂單。
3、
商場驗收人員在終端上按[確認]鍵,將信息上傳到後台伺服器,並同時記錄收貨時間和收貨人;
4、
終端可以現場實時調用後台資料庫中供貨商的歷史訂單,逐一查驗對照核算;
5、
通過終端無線驅動列印機列印收貨清單;
6、
在查驗過程中出現問題,可以拒收貨物。
(五)貨位管理
1、
採用條碼解讀器讀取商品條形碼,查詢商品在貨區的具體位置,(如X商品在A貨區B航道C貨架2層),用叉車將商品送到位,實現商品的全方位管理。
2、
通過終端實時地查看貨位貨量的存儲情況、空間大小及商品的最大容量,管理貨倉的區域、容量、體積和裝備限度。
3、
系統可以支持商場貨架、工具、固定資產及設備的反復排定和追蹤管理;使實際現場的錯誤堆放或工具、貨物的零散管理變得容易;使之有序、易於比較和修正現場與系統管理的信息差異;顯示、查詢設備、產品的使用歷史資料及商品、易損耗品的零用及耗費清單。
(六)盤點管理
傳統盤點必須關門進行盤點,盤點時間長,投入人力、物力大,效率低,由於人為因素較多,盤點資料不準確,給決策帶來極大困難。使用終端進行商品盤點,可以避免傳統盤點的這些弊端,而使用RF
終端後,後台系統通過無線網路終端在盤點採集資料的同時進行數據處理,更節省時間,靈活性更好。
(七)查詢管理
1、
在任何時間和地點,都可以通過終端進行查詢;查詢內容包括:商品信息、庫存情況、變價核對、訂單校驗等等;
2、
每次查驗可以包括該項諸多信息的逐一核對,並反饋給系統有效結果。
3、
總經理的現場實時查詢和店面的現場實時指揮工作變得方便容易。
(八
)追蹤調貨管理
在商場、倉庫、箱位、系列包裝及貨盤之間實現任意調貨功能。
(九)
出貨業務管理
完成校驗單據、出庫登記、釋放貨位、意外處理、貨物跟蹤
(十)
揀選管理
略
(十一)
裝運管理
略
(十二)
移庫管理
主要是針對不同庫區間的貨物移動,移入系統可以根據收貨系統原則進行處理,移出系統可以根據出貨系統原則進行處理。
(十三)
退貨處理
(1)
退廠通知維護
(2)
退廠通知確認:系統將在庫存中自動增加待出量
(3)
將退廠作業資料傳送到配送中心,然後等待配送中心回單
(4)
得到退廠資料回單後,執行退廠回單登錄,系統將自動調整庫存
Ⅱ 求java編寫的倉庫管理系統源代碼或詳細設計
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
class 商品 extends Panel
{String 代號,名稱;int 庫存;float 單價;
商品(String 代號,String 名稱,int 庫存,float 單價)
{this.代號=代號;this.名稱=名稱;this.庫存=庫存;this.單價=單價;
}
}
class ShowWin extends JFrame implements ActionListener
{ Hashtable hashtable=null;
JTextField 代號文本框=new JTextField(),
名稱文本框=new JTextField(),
庫存文本框=new JTextField(),
單價文本框=new JTextField(),
查詢文本框=new JTextField(),
查詢信息文本框=new JTextField(),
刪除文本框=new JTextField();
JButton b_add=new JButton("添加商品"),
b_del=new JButton("刪除商品"),
b_xun=new JButton("查詢商品"),
b_xiu=new JButton("修改商品"),
b_show=new JButton("顯示商品清單");
JTextArea 顯示區=new JTextArea(25,10);
ShowWin()
{super("倉庫管理窗口");
hashtable=new Hashtable();
Container con=getContentPane();
JScrollPane pane=new JScrollPane(顯示區);
顯示區.setEditable(false);
JPanel save=new JPanel();
save.setLayout(new GridLayout(8,2));
save.add(new Label("輸入代號:"));
save.add(代號文本框);
save.add(new Label("輸入名稱:"));
save.add(名稱文本框);
save.add(new Label("輸入庫存:"));
save.add(庫存文本框);
save.add(new Label("輸入單價:"));
save.add(單價文本框);
save.add(new Label("單擊添加:"));
save.add(b_add);
save.add(new Label("單擊修改:"));
save.add(b_xiu);
save.add(new Label("輸入查詢代號:"));
save.add(查詢文本框);
save.add(new Label("單擊查詢:"));
save.add(b_xun);
JPanel del=new JPanel();
del.setLayout(new GridLayout(2,2));
del.add(new Label("輸入刪除的代號:"));
del.add(刪除文本框);
del.add(new Label("單擊刪除:"));
del.add(b_del);
JPanel show=new JPanel();
show.setLayout(new BorderLayout());
show.add(pane,BorderLayout.CENTER);
show.add(b_show,BorderLayout.SOUTH);
JSplitPane split_one,split_two;
split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,save,del);
split_two=new
JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,split_one,show);
con.add(split_two,BorderLayout.CENTER);
JPanel xun=new JPanel();
xun.add(new Label("所得信息:"));
xun.add(查詢信息文本框);
xun.setLayout(new GridLayout(2,1));
con.add(xun,BorderLayout.SOUTH);
b_add.addActionListener(this);
b_del.addActionListener(this);
b_xun.addActionListener(this);
b_xiu.addActionListener(this);
b_show.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==b_add)
{String daihao=null,mingcheng=null;int kucun=0;float danjia=0.0f;
daihao=代號文本框.getText();mingcheng=名稱文本框.getText();
kucun=Integer.parseInt(庫存文本框.getText());
danjia=Float.valueOf(單價文本框.getText()).floatValue();
商品 goods=new 商品(daihao,mingcheng,kucun,danjia);
hashtable.put(daihao,goods);
try{FileOutputStream file=new FileOutputStream("goods.txt");
ObjectOutputStream out=new ObjectOutputStream(file);
out.writeObject(hashtable); out.close();
}
catch(IOException event){}
}
else if(e.getSource()==b_del)
{String daihao1=刪除文本框.getText();
try{FileInputStream come_in=new FileInputStream("goods.txt");
ObjectInputStream in=new ObjectInputStream(come_in);
hashtable=(Hashtable)in.readObject(); //////
in.close();
}
catch(ClassNotFoundException event){}
catch(IOException event){}
商品 temp=(商品)hashtable.get(daihao1);
{hashtable.remove(daihao1);}
try{FileOutputStream file=new FileOutputStream("goods.txt");
ObjectOutputStream out =new ObjectOutputStream(file);
out.writeObject(hashtable);//
out.close();
}
catch(IOException event){}
}
//
else if(e.getSource()==b_xun)
{ String aa;
aa=查詢文本框.getText();
查詢信息文本框.setText(null);
try{FileInputStream come_in=new FileInputStream("goods.txt");
ObjectInputStream in =new ObjectInputStream(come_in);
hashtable=(Hashtable)in.readObject(); ////
in.close();
}
catch(ClassNotFoundException event){}
catch(IOException event){}
商品 a=(商品)hashtable.get(aa);
查詢信息文本框.setText(" 代號:"+a.代號+" 名稱:"+a.名稱+" 庫存:"+a.庫存+" 單價:"+a.單價);
}
//
else if(e.getSource()==b_xiu)
{ String bb;
bb=代號文本框.getText();
try{FileInputStream come_in=new FileInputStream("goods.txt");
ObjectInputStream in=new ObjectInputStream(come_in);
hashtable=(Hashtable)in.readObject(); //////
in.close();
}
catch(ClassNotFoundException event){}
catch(IOException event){}
商品 temp=(商品)hashtable.get(bb);
{hashtable.remove(bb);}
try{FileOutputStream file=new FileOutputStream("goods.txt");
ObjectOutputStream out =new ObjectOutputStream(file);
out.writeObject(hashtable);//
out.close();
}
catch(IOException event){}
String daihao1=null,mingcheng1=null;int kucun1=0;float danjia1=0.0f;
daihao1=代號文本框.getText();mingcheng1=名稱文本框.getText();
kucun1=Integer.parseInt(庫存文本框.getText());
danjia1=Float.valueOf(單價文本框.getText()).floatValue();
商品 goods1=new 商品(daihao1,mingcheng1,kucun1,danjia1);
hashtable.put(daihao1,goods1);
try{FileOutputStream file=new FileOutputStream("goods.txt");
ObjectOutputStream out=new ObjectOutputStream(file);
out.writeObject(hashtable); out.close();
}
catch(IOException event){}
}
//
else if(e.getSource()==b_show)
{ 顯示區.setText(null);
try{FileInputStream come_in=new FileInputStream("goods.txt");
ObjectInputStream in =new ObjectInputStream(come_in);
hashtable=(Hashtable)in.readObject(); ////
}
catch(ClassNotFoundException event){}
catch(IOException event){}
Enumeration enum=hashtable.elements();
while(enum.hasMoreElements())
{ 商品 te=(商品)enum.nextElement();
顯示區.append("商品代號:"+te.代號+" ");
顯示區.append("商品名稱:"+te.名稱+" ");
顯示區.append("商品庫存:"+te.庫存+" ");
顯示區.append("商品單價:"+te.單價+" ");
顯示區.append("\n ");
}
}
}
}
public class LinkListFour
{public static void main(String args[])
{ ShowWin win=new ShowWin();
win.setSize(400,350);
win.setVisible(true);
win.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{ System.exit(0);}});
}
}
Ⅲ 軟體設計——倉庫管理系統使用哪種語言更好C++JAVA
如果是B/S模式的就相對來說簡單些,而且也好維護點,用JAVA可以開發,
如果是C/S模式的就相對復雜點,可以用C++做,MFC會讓你省不少時間。
Ⅳ 做Java開發都需要學什麼怎麼學
以下介紹的課程主要針對零基礎大數據工程師每個階段進行通俗易懂簡易介紹,方面大家更好的了解大數據學習課程。課程框架是科多大數據的零基礎大數據工程師課程。
一、第一階段:靜態網頁基礎(HTMLCSS)
1.難易程度:一顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:html常用標簽、CSS常見布局、樣式、定位等、靜態頁面的設計製作方式等
4.描述如下:
從技術層面來說,該階段使用的技術代碼很簡單、易於學習、方便理解。從後期課程層來說,因為我們重點是大數據,但前期需要鍛煉編程技術與思維。經過我們多年開發和授課的項目經理分析,滿足這兩點,目前市場上最好理解和掌握的技術是J2EE,但J2EE又離不開頁面技術。所以第一階段我們的重點是頁面技術。採用市場上主流的HTMlCSS。
二、第二階段:JavaSEJavaWeb
1.難易程度:兩顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:java基礎語法、java面向對象(類、對象、封裝、繼承、多態、抽象類、介面、常見類、內部類、常見修飾符等)、異常、集合、文件、IO、MYsql(基本SQL語句操作、多表查詢、子查詢、存儲過程、事務、分布式事務)JDBC、線程、反射、Socket編程、枚舉、泛型、設計模式
4.描述如下:
稱為Java基礎,由淺入深的技術點、真實商業項目模塊分析、多種存儲方式的設計
與實現。該階段是前四個階段最最重要的階段,因為後面所有階段的都要基於此階段,也是學習大數據緊密度最高的階段。本階段將第一次接觸團隊開發、產罩游出具有前後台(第一階段技術第二階段的技術綜合應用)的真實項目。
三、第三階段:前端框架
1.難易程序:兩星
2.課時量(技術知識點階段項目任務綜合能力):64課時
3.主要技術包括:Java、Jquery、註解反射一起使用,XML以及XML解析、解析dom4j、jxab、jdk8.0新特性、SVN、Maven、easyui
4.描述如下:
前兩個階段的基礎上化靜為動,可以實現讓我們網頁內容更加的豐富,當然如果從市場人員層面來說,有專業的前端設計人員,我們設計本階段的目標在於前端的技術可以更直觀的鍛煉人的思維和設計能力。同時我們也將第二階段的高級特性融入到本階段。使學習者更上一層樓。
四、第四階段:企業物余銷級開發框架
1.難易程序:三顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:Hibernate、Spring、SpringMVC、log4jslf4j整合、myBatis、struts2、Shiro、redis、流程引擎activity,爬蟲技術nutch,lucene,、Tomcat集群和熱備、MySQL讀寫分離
4.描述如下:
如果將整個JAVA課程比作一個糕點店,那前面三個階段可以做出一個武大郎燒餅(因為是純手工-太麻煩),而學習框架是可以開一個星巴克(高科技設備-省時省力)。從J2EE開發工程師的任職要求來說,該階段所用到的技術是必須掌握,而我們所授的課程是高於市場(市場上主流三大框架,我們進行七大框架技術傳授)、而且有真實的商業項目驅動。需求文檔、概要設計、詳細設計、源碼測試、部署、安裝手冊等都會進行講解。
五、第五階段:初識大數據
1.難易程度:三顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:大數據前篇(什麼是大數據,應用場景,如何學習大資料庫,虛擬機概念和安裝等)、Linux常見命令(文件管理、系統管理、磁碟管理)、LinuxShell編程(SHELL變數、循環控制、應用)、Hadoop入門(Hadoop組成、單機版環境、目錄結構、HDFS界面、MR界面、簡單的SHELL、java訪問hadoop)、HDFS(簡介、SHELL、IDEA開發工具使用、全分布式集群搭建)、MapRece應用(中間計算過程、Java操作MapRece、程序運行、日誌監控)、Hadoop高級應用(YARN框架介紹、配置項與優化、CDH簡介、環境搭建)、擴展(MAP端優化,COMBINER使用方法見,TOPK,SQOOP導出,其它虛擬機VM的快照,許可權管理命令,AWK與SED命令)
4.描述如下:
該階段設計是為了讓新人能夠對大數據有一個相對的大概念怎毀悉么相對呢?在前置課程JAVA的學習過後能夠理解程序在單機的電腦上是如何運行的。現在,大數據呢?大數據是將程序運行在大規模機器的集群中處理。大數據當然是要處理數據,所以同樣,數據的存儲從單機存儲變為多機器大規模的集群存儲。
(你問我什麼是集群?好,我有一大鍋飯,我一個人可以吃完,但是要很久,現在我叫大家一起吃。一個人的時候叫人,人多了呢?是不是叫人群啊!)
那麼大數據可以初略的分為:大數據存儲和大數據處理所以在這個階段中呢,我們課程設計了大數據的標准:HADOOP大數據的運行呢並不是在咋們經常使用的WINDOWS7或者W10上面,而是現在使用最廣泛的系統:LINUX。
六、第六階段:大數據資料庫
1.難易程度:四顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:Hive入門(Hive簡介、Hive使用場景、環境搭建、架構說明、工作機制)、HiveShell編程(建表、查詢語句、分區與分桶、索引管理和視圖)、Hive高級應用(DISTINCT實現、groupby、join、sql轉化原理、java編程、配置和優化)、hbase入門、HbaseSHELL編程(DDL、DML、Java操作建表、查詢、壓縮、過濾器)、細說Hbase模塊(REGION、HREGIONSERVER、HMASTER、ZOOKEEPER簡介、ZOOKEEPER配置、Hbase與Zookeeper集成)、HBASE高級特性(讀寫流程、數據模型、模式設計讀寫熱點、優化與配置)
4.描述如下:
該階段設計是為了讓大家在理解大數據如何處理大規模的數據的同時。簡化咋們的編寫程序時間,同時提高讀取速度。
怎麼簡化呢?在第一階段中,如果需要進行復雜的業務關聯與數據挖掘,自行編寫MR程序是非常繁雜的。所以在這一階段中我們引入了HIVE,大數據中的數據倉庫。這里有一個關鍵字,數據倉庫。我知道你要問我,所以我先說,數據倉庫呢用來做數據挖掘分析的,通常是一個超大的數據中心,存儲這些數據的呢,一般為ORACLE,DB2,等大型資料庫,這些資料庫通常用作實時的在線業務。
總之,要基於數據倉庫分析數據呢速度是相對較慢的。但是方便在於只要熟悉SQL,學習起來相對簡單,而HIVE呢就是這樣一種工具,基於大數據的SQL查詢工具,這一階段呢還包括HBASE,它為大數據裡面的資料庫。納悶了,不是學了一種叫做HIVE的數據「倉庫」了么?HIVE是基於MR的所以查詢起來相當慢,HBASE呢基於大數據可以做到實時的數據查詢。一個主分析,另一個主查詢
七、第七階段:實時數據採集
1.難易程序:四顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:Flume日誌採集,KAFKA入門(消息隊列、應用場景、集群搭建)、KAFKA詳解(分區、主題、接受者、發送者、與ZOOKEEPER集成、Shell開發、Shell調試)、KAFKA高級使用(java開發、主要配置、優化項目)、數據可視化(圖形與圖表介紹、CHARTS工具分類、柱狀圖與餅圖、3D圖與地圖)、STORM入門(設計思想、應用場景、處理過程、集群安裝)、STROM開發(STROMMVN開發、編寫STORM本地程序)、STORM進階(java開發、主要配置、優化項目)、KAFKA非同步發送與批量發送時效,KAFKA全局消息有序,STORM多並發優化
4.描述如下:
前面的階段數據來源是基於已經存在的大規模數據集來做的,數據處理與分析過後的結果是存在一定延時的,通常處理的數據為前一天的數據。
舉例場景:網站防盜鏈,客戶賬戶異常,實時徵信,遇到這些場景基於前一天的數據分析出來過後呢?是否太晚了。所以在本階段中我們引入了實時的數據採集與分析。主要包括了:FLUME實時數據採集,採集的來源支持非常廣泛,KAFKA數據數據接收與發送,STORM實時數據處理,數據處理秒級別
八、第八階段:SPARK數據分析
1.難易程序:五顆星
2.課時量(技術知識點階段項目任務綜合能力)
3.主要技術包括:SCALA入門(數據類型、運算符、控制語句、基礎函數)、SCALA進階(數據結構、類、對象、特質、模式匹配、正則表達式)、SCALA高級使用(高階函數、科里函數、偏函數、尾迭代、自帶高階函數等)、SPARK入門(環境搭建、基礎結構、運行模式)、Spark數據集與編程模型、SPARKSQL、SPARK進階(DATAFRAME、DATASET、SPARKSTREAMING原理、SPARKSTREAMING支持源、集成KAFKA與SOCKET、編程模型)、SPARK高級編程(Spark-GraphX、Spark-Mllib機器學習)、SPARK高級應用(系統架構、主要配置和性能優化、故障與階段恢復)、SPARKMLKMEANS演算法,SCALA隱式轉化高級特性
4.描述如下:
同樣先說前面的階段,主要是第一階段。HADOOP呢在分析速度上基於MR的大規模數據集相對來說還是挺慢的,包括機器學習,人工智慧等。而且不適合做迭代計算。SPARK呢在分析上是作為MR的替代產品,怎麼替代呢?先說他們的運行機制,HADOOP基於磁碟存儲分析,而SPARK基於內存分析。我這么說你可能不懂,再形象一點,就像你要坐火車從北京到上海,MR就是綠皮火車,而SPARK是高鐵或者磁懸浮。而SPARK呢是基於SCALA語言開發的,當然對SCALA支持最好,所以課程中先學習SCALA開發語言。
在科多大數據課程的設計方面,市面上的職位要求技術,基本全覆蓋。而且並不是單純的為了覆蓋職位要求,而是本身課程從前到後就是一個完整的大數據項目流程,一環扣一環。
比如從歷史數據的存儲,分析(HADOOP,HIVE,HBASE),到實時的數據存儲(FLUME,KAFKA),分析(STORM,SPARK),這些在真實的項目中都是相互依賴存在的。
Ⅳ 基於java的倉庫管理系統怎麼做
一個項目擺在你的面前,請千萬不要著急。一步一步來分析,去實施,慢慢的你就會發現你的項目已經有性了。首先要清楚你要做的項目的用途是什麼,要實現那些功能,分哪些模塊。分析好以後,再進行進一步的分析,比如入庫模塊,分析它的流程和功能,然後建立資料庫,建表,再分析用代碼如何實現,最好是提取出一些公共類以增加代碼的重用性,減少工作量。 就照著這個思路一步一步的分析,你一定能解決所有問題。不要輕易的跟別人要代碼,這是一個很不好的習慣。要自己多動手,多思考。要相信,勝出必有所長! 最後祝你成功!