




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要隨著企業(yè)客戶的增多,市場的擴大,企業(yè)需要相當(dāng)數(shù)量的業(yè)務(wù)員來和客戶溝通以及有跟單員來跟進顧客的訂單,而業(yè)務(wù)員和跟單員的績效提成,計算起來也比較繁瑣。本訂單管理系統(tǒng)有效的將業(yè)務(wù)員、跟單員以及管理員的業(yè)務(wù)工作信息進行管理,使得業(yè)務(wù)、跟單和管理的信息得以方便、快捷地傳遞,節(jié)省大量的人力,提高工作效率。本系統(tǒng)運用HTML,JavaScript技術(shù),JSP開發(fā)語言,通過SQLserver2012,Tomcat,JDBC等進行數(shù)據(jù)庫的連接,開發(fā)工具為MyEclipse10。系統(tǒng)分析和設(shè)計采用面向?qū)ο蟮姆椒?。本系統(tǒng)主要功能有:管理員主要是訂單信息管理、顧客信息管理、員工信息管理、廠商信息管理、業(yè)績信息管理;業(yè)務(wù)員主要是訂單的錄入、添加顧客信息、查看訂單顧客廠商個人以及提成信息;跟單員主要是訂單狀態(tài)的記錄、添加廠商信息、查看訂單顧客廠商個人以及提成信息。關(guān)鍵字:訂單管理;管理信息系統(tǒng);面向?qū)ο驩rdermanagementsystemAbstractWiththeincreaseofcorporatecustomersandtheexpansionofthemarket,enterprisesneedaconsiderablenumberofsalesmentocommunicatewithcustomersandhavemerchandiserstofollowuptheordersofcustomers,andtheperformancecommissionsofsalesmenandmerchandisersarealsotedioustocalculate.Thisordermanagementsystemeffectivelymanagesthebusinessinformationofsalesmen,merchandisersandadministrators,sothatthebusiness,merchandiserandmanagementinformationcanbetransmittedconvenientlyandquickly,savingalotofmanpowerandimprovingworkefficiency.ThissystemUSESHTML,JavaScripttechnology,JSPdevelopmentlanguage,throughSQLserver2012,Tomcat,JDBCandotherdatabaseconnection,developmenttoolforMyEclipse10.Systemanalysisanddesignadoptanobject-orientedapproach.Themainfunctionsofthesystemare:theadministratorismainlyorderinformationmanagement,customerinformationmanagement,staffinformationmanagement,manufacturerinformationmanagement,performanceinformationmanagement;Thesalesmanmainlyinputtheorder,addthecustomerinformation,viewtheordercustomer'smanufacturerpersonalandcommissioninformation;Themerchandisermainlyrecordstheorderstatus,addsthemanufacturer'sinformation,andcheckstheordercustomer'smanufacturer'spersonalinformationandcommissioninformation.Keywords:ordermanagement;Managementinformationsystem;object-oriented目錄一、 系統(tǒng)研發(fā)背景 [10]。a.管理員登錄:主要是ID和密碼,驗證后管理員進入管理員的操作頁面。如果編號或者是密碼錯誤,則會彈出提示窗口,確認后重新進入登錄頁面。如圖78,圖79所示。圖78管理員登錄頁面圖79消息框b.管理員操作頁面:在管理列表里列出了管理員所要進行的管理工作,有訂單信息管理、顧客信息管理、廠商信息管理、員工信息管理、業(yè)績信息管理。點擊退出就可以退出系統(tǒng)返回首頁。如圖80所示。圖80管理員操作頁面c.管理員-訂單列表:管理員可以在此查看所有訂單的信息。管理員可以對這些服裝訂單的信息進行添加、刪除、修改操作。操作成功后會跳回到訂單列表頁面。添加訂單信息時管理員輸入訂單數(shù)量、訂單單價以及成本單價后,訂單總額和訂單成本就會自動計算顯示。還可以在此搜索訂單信息,在想要搜索的內(nèi)容的搜索框中填入關(guān)鍵詞就可以搜索相關(guān)關(guān)鍵詞的訂單信息,查詢出來的訂單信息將會在另一個頁面顯示。點擊顧客編號和廠商編號就可以查看該訂單的相關(guān)顧客信息和廠商信息。如圖81,圖82,圖83,圖84,圖85,圖86,圖87所示。圖81管理員訂單列表頁面圖82管理員添加訂單信息頁面圖83管理員修改訂單信息頁面圖84管理員進行搜索操作頁面圖85管理員搜索后顯示頁面圖86管理員查看指定訂單的顧客信息頁面圖87管理員查看指定訂單的廠商信息頁面d.管理員-廠商列表:管理員可以在此查看所有廠商的信息。管理員可以對廠商信息進行添加、刪除、修改操作。操作成功后會跳回到廠商列表頁面。還可以在此搜索廠商信息,在搜索框中填入關(guān)鍵詞就可以搜索相關(guān)關(guān)鍵詞的廠商信息,查詢出來的廠商信息將會在另一個頁面顯示。如圖88,圖89,圖90,圖91,圖92所示。圖88管理員廠商列表頁面圖89管理員添加廠商信息頁面圖90管理員修改廠商信息頁面圖91管理員進行搜索操作頁面圖92管理員搜索后顯示頁面e.管理員-顧客列表:管理員可以在此查看所有顧客的信息。管理員可以對顧客信息進行添加、刪除、修改操作。操作成功后會跳回到顧客列表頁面。還可以在此搜索顧客信息,在搜索框中填入關(guān)鍵詞就可以搜索相關(guān)關(guān)鍵詞的顧客信息,查詢出來的顧客信息將會在另一個頁面顯示。如圖93,圖94,圖95,圖96,圖97所示。圖93管理員顧客列表頁面圖94管理員添加顧客信息頁面圖95管理員修改顧客信息頁面圖96管理員進行搜索操作頁面圖97管理員搜索后顯示頁面f.管理員-員工列表:管理員可以在此查看所有員工的信息。管理員可以對員工信息進行添加、刪除、修改操作。操作成功后會跳回到員工列表頁面。還可以在此搜索員工信息,在搜索框中填入關(guān)鍵詞就可以搜索相關(guān)關(guān)鍵詞的員工信息,查詢出來的員工信息將會在另一個頁面顯示。如圖98,圖99,圖100,圖101,圖102所示。圖98管理員員工列表頁面圖99管理員添加員工信息頁面圖100管理員修改員工信息頁面圖101管理員進行搜索操作頁面圖102管理員搜索后顯示頁面g.管理員-業(yè)務(wù)銷售金額:管理員可以在此查看各業(yè)務(wù)員各自所接訂單的銷售總額表以及柱狀圖。如圖103,圖104所示。圖103業(yè)務(wù)銷售金額表格圖104業(yè)務(wù)銷售金額柱狀圖h.管理員-業(yè)務(wù)訂單數(shù)量:管理員可以在此查看各業(yè)務(wù)員各自所接訂單的單數(shù)表以及柱狀圖。如圖105,圖106所示。圖105業(yè)務(wù)訂單數(shù)量表格圖106業(yè)務(wù)訂單數(shù)量柱狀圖i.管理員-業(yè)務(wù)提成金額:管理員可以在此查看業(yè)務(wù)員各自所接訂單的提成總額表以及柱狀圖;還有含有每張訂單銷售額、成本、利潤以及業(yè)務(wù)員提成數(shù)據(jù)的表格。如圖107,圖108,圖109所示。圖107業(yè)務(wù)提成金額綜合表格圖108業(yè)務(wù)提成金額表格圖109業(yè)務(wù)提成金額柱狀圖j.管理員-跟單訂單金額:管理員可以在此查看各跟單員各自所接訂單的銷售總額表以及柱狀圖。如圖110,圖111所示。圖110跟單訂單金額表格圖111跟單訂單金額柱狀圖k.管理員-跟單訂單數(shù)量:管理員可以在此查看各跟單員各自所接訂單的單數(shù)表以及柱狀圖。如圖112,圖113所示。圖112跟單訂單數(shù)量表格圖113跟單訂單數(shù)量柱狀圖l.管理員-跟單提成金額:管理員可以在此查看各跟單員各自所接訂單的提成總額表以及柱狀圖;還有含有每張訂單銷售額、成本、利潤以及跟單員提成數(shù)據(jù)的表格。如圖114,圖115,圖116所示。圖114跟單提成金額綜合表格圖115跟單提成金額表格圖116跟單提成金額柱狀圖系統(tǒng)實現(xiàn)5.1系統(tǒng)代碼量以及代碼名稱系統(tǒng)代碼量以及代碼名稱:Jsp部分的如圖117,圖118,圖119,圖120所示。圖117代碼量以及代碼名稱圖118代碼量以及代碼名稱圖119代碼量以及代碼名稱圖120代碼量以及代碼名稱Java部分的如圖121,圖122,圖123所示。圖121代碼量以及代碼名稱圖122代碼量以及代碼名稱圖123代碼量以及代碼名稱5.2開發(fā)過程遇到的問題及解決辦法1、操作頁面想要實現(xiàn)左邊目錄不變,點擊相關(guān)子目錄,右邊顯示相關(guān)內(nèi)容。解決辦法:運用iframe,即內(nèi)聯(lián)式框架。2、想要實現(xiàn)登錄頁面不同的用戶進入不同的操作頁面。解決辦法:在登錄頁面中填編號和密碼的框框不能弄成不同用戶不同的框框,所以就在登錄頁面前加了一個選擇身份的頁面,選擇不同的身份則進入不同的登錄頁面。3、想要實現(xiàn)用戶查看個人的訂單信息功能。解決辦法:將登錄頁面的員工Id用Session保存在整個會話期間,在orderdao寫一個按照Id搜索訂單信息的dao,然后在servlet調(diào)用dao,將dao獲取的數(shù)據(jù)打包轉(zhuǎn)發(fā)到j(luò)sp。4、想要實現(xiàn)用戶查看個人的信息功能。解決辦法:將登錄頁面的員工Id用Session保存在整個會話期間,在empdao寫一個按照Id搜索員工信息的dao,然后在servlet調(diào)用dao,將dao獲取的數(shù)據(jù)打包轉(zhuǎn)發(fā)到j(luò)sp。5、想要實現(xiàn)在訂單列表可以查看指定訂單的顧客信息和廠商信息。解決辦法:在dao寫一個按照Id搜索信息的dao,訂單列表處的顧客Id和廠商Id鏈接調(diào)用servlet,servlet調(diào)用dao,將dao獲取的數(shù)據(jù)打包轉(zhuǎn)發(fā)到j(luò)sp。6、想要實現(xiàn)員工可以查看自己的提成金額。解決辦法:在sql聚合語句查詢的數(shù)據(jù)不知道在java如何表示,所以采用的是在jsp頁面直接連接數(shù)據(jù)庫,將計算后的數(shù)據(jù)直接顯示在jsp上。7、想要實現(xiàn)管理員查看員工提成金額動態(tài)顯示在頁面上,以表格和柱狀圖方式顯示。解決辦法:在sql聚合語句查詢的數(shù)據(jù)不知在java如何表示,所以采用的是在jsp頁面直接連接數(shù)據(jù)庫,將查詢的數(shù)據(jù)直接顯示在jsp上。柱狀圖用的是JFreeChart,JFreeChart是JAVA平臺上的一個開放的圖表繪制類庫。8、想要實現(xiàn)在信息列表可以搜索信息,搜索框搜索信息。解決辦法:jsp調(diào)用servlet,servlet調(diào)用dao,將dao獲取的數(shù)據(jù)打包轉(zhuǎn)發(fā)到j(luò)sp。只能搜索一個關(guān)鍵詞,不能同時搜索具有幾個關(guān)鍵詞的信息。也不能在原本頁面顯示,搜索的結(jié)果是在新的頁面顯示。5.3核心代碼5.3.1業(yè)務(wù)員模塊核心代碼(1)錄入顧客信息a、DaopublicvoidaddCus(StringcusId,StringcusName,StringcusSex,StringcusPhone,StringcusAddress) { Stringsql="insertintoCustomer(cusId,cusName,cusSex,cusPhone,cusAddress)values(?,?,?,?,?)"; Connectionconn=null; PreparedStatementps=null; ResultSetrs=null; try { conn=BaseDAO.getConn(); ps=conn.prepareStatement(sql); ps.setString(1,cusId); ps.setString(2,cusName); ps.setString(3,cusSex); ps.setString(4,cusPhone); ps.setString(5,cusAddress); rs=ps.executeQuery(); }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } }b、Servlet StringcusId=req.getParameter("cusId"); StringcusName=req.getParameter("cusName"); StringcusSex=req.getParameter("cusSex"); StringcusPhone=req.getParameter("cusPhone"); StringcusAddress=req.getParameter("cusAddress"); CusInfoDAOcusDAO=newCusInfoDAO(); cusDAO.addCus(cusId,cusName,cusSex,cusPhone,cusAddress); resp.sendRedirect("/clothing/cloorderservlet?op=cuslist");(2)錄入訂單信息a、DaopublicvoidaddOrder(StringcusId,StringorderTime,StringorderContent,StringorderRemark,StringorderQuantity,doubleorderPrice,doubleorderDeposit,doubleorderTotal,StringdeliveryTime,StringsalesName,StringfollowName,StringvendorId,doublecostPrice,doublecostAmount,StringorderStatus) { Stringsql="insertintoorderInfo(cusId,orderTime,orderContent,orderRemark,orderQuantity,orderPrice,orderDeposit,orderTotal,deliveryTime,salesName,followName,vendorId,costPrice,costAmount,orderStatus)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; try { conn=BaseDAO.getConn(); ps=conn.prepareStatement(sql); ps.setString(1,cusId); ps.setString(2,orderTime); ps.setString(3,orderContent); ps.setString(4,orderRemark); ps.setString(5,orderQuantity); ps.setDouble(6,orderPrice); ps.setDouble(7,orderDeposit); ps.setDouble(8,orderTotal); ps.setString(9,deliveryTime); ps.setString(10,salesName); ps.setString(11,followName); ps.setString(12,vendorId); ps.setDouble(13,costPrice); ps.setDouble(14,costAmount); ps.setString(15,orderStatus); rs=ps.executeQuery(); }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } }b、ServletDatedt=newDate();//獲取當(dāng)前時間 SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringcusId=req.getParameter("cusId"); StringorderTime=format.format(dt); StringorderContent=req.getParameter("orderContent"); StringorderRemark=req.getParameter("orderRemark"); StringorderQuantity=req.getParameter("orderQuantity"); doubleorderPrice=Double.parseDouble(req.getParameter("orderPrice")); doubleorderDeposit=Double.parseDouble(req.getParameter("orderDeposit")); doubleorderTotal=Double.parseDouble(req.getParameter("orderTotal")); StringdeliveryTime=req.getParameter("deliveryTime"); StringsalesName=req.getParameter("salesName"); StringfollowName=req.getParameter("followName"); StringvendorId=req.getParameter("vendorId"); doublecostPrice=Double.parseDouble(req.getParameter("costPrice")); doublecostAmount=Double.parseDouble(req.getParameter("costAmount")); StringorderStatus=req.getParameter("orderStatus"); OrderInfoDAOorderDAO=newOrderInfoDAO(); orderDAO.addOrder(cusId,orderTime,orderContent,orderRemark,orderQuantity,orderPrice,orderDeposit,orderTotal,deliveryTime,salesName,followName,vendorId,costPrice,costAmount,orderStatus); resp.sendRedirect("/clothing/cloorderservlet?op=orderlist");c、Jsp<scripttype="text/javascript">functioncalc(){varorderQuantity=document.getElementById("orderQuantity").value;varorderPrice=document.getElementById("orderPrice").value;varcostPrice=document.getElementById("costPrice").value;document.getElementById("orderTotal").value=parseFloat(orderQuantity)*parseFloat(orderPrice);varorderTotal=document.getElementById("orderTotal").value;document.getElementById("costAmount").value=parseFloat(orderQuantity)*parseFloat(costPrice);document.getElementById("orderDeposit").value=parseFloat(orderTotal)*0.3;}</script>5.3.2跟單員模塊核心代碼(1)修改訂單狀態(tài)a、DaopublicintupdateOrder(intcorderId,StringvendorId,StringorderStatus){ //TODOAuto-generatedmethodstub Stringsql="updateorderInfosetvendorId=?,orderStatus=?wherecorderId=?"; intexist=0; try{ conn=BaseDAO.getConn(); System.out.println("更新"+conn); ps=conn.prepareStatement(sql); ps.setString(1,vendorId); ps.setString(2,orderStatus); ps.setInt(3,corderId); ps.executeUpdate(); exist=1; }catch(Exceptionex) { //ex.printStackTrace(); exist=0; }finally { BaseDAO.closeAll(conn,ps,rs); } System.out.println("更新"+exist); returnexist; }b、ServletintcorderId=Integer.parseInt(req.getParameter("corderId")); StringvendorId=req.getParameter("vendorId"); StringorderStatus=req.getParameter("orderStatus"); OrderInfoorder=newOrderInfo(); OrderInfoDAOorderDAO=newOrderInfoDAO(); intexist=orderDAO.updateOrder(corderId,vendorId,orderStatus); if(exist==1){ resp.sendRedirect("/clothing/cloorderservlet?op=myorderlistgd"); }else{ req.setAttribute("fail","修改失敗"); req.getRequestDispatcher("error.jsp").forward(req,resp); }(2)查看我的訂單a、DaopublicArrayList<OrderInfo>selectgdOrder(StringempId) { ArrayList<OrderInfo>gdorderlist=newArrayList<OrderInfo>(); try { conn=BaseDAO.getConn(); System.out.println(conn); ps=conn.prepareStatement("select*fromorderInfowhereexists(selectempNamefromempInfowhereorderInfo.followName=empInfo.empNameandempId='"+empId+"')"); System.out.println("ps"+ps); rs=ps.executeQuery(); System.out.println("ps"+ps); while(rs.next()) { OrderInfoorder=newOrderInfo(); order.setCorderId(rs.getInt(1)); order.setcusId(rs.getString(2)); order.setorderTime(rs.getString(3)); order.setorderContent(rs.getString(4)); order.setorderRemark(rs.getString(5)); order.setorderQuantity(rs.getString(6)); order.setorderPrice(rs.getDouble(7)); order.setorderDeposit(rs.getDouble(8)); order.setorderTotal(rs.getDouble(9)); order.setdeliveryTime(rs.getString(10)); order.setsalesName(rs.getString(11)); order.setfollowName(rs.getString(12)); order.setvendorId(rs.getString(13)); order.setcostPrice(rs.getDouble(14)); order.setcostAmount(rs.getDouble(15)); order.setorderStatus(rs.getString(16)); gdorderlist.add(order); System.out.println("order4"+order); } }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } System.out.println("gdorderlist"+gdorderlist); returngdorderlist; }b、Servletif(op.equals("myorderlistgd")) { StringempId=request.getSession().getAttribute("empId").toString(); ArrayList<OrderInfo>gdorderlist=orderDAO.selectgdOrder(empId); System.out.println("gdorderlist"+gdorderlist); request.setAttribute("gdorderlist",gdorderlist); request.getRequestDispatcher("myordergd.jsp").forward(request,response); }(3)查看我的信息a、DaopublicArrayList<EmpInfo>selectEmp(StringempId) { Connectionconn=null; PreparedStatementps=null; ResultSetrs=null; ArrayList<EmpInfo>emplist=newArrayList<EmpInfo>(); try { conn=BaseDAO.getConn(); ps=conn.prepareStatement("select*fromempInfowhereempId='"+empId+"'"); System.out.println("ps"+ps); rs=ps.executeQuery(); System.out.println("rs"+rs); while(rs.next()) { EmpInfoemp=newEmpInfo(); emp.setempId(rs.getString(1)); emp.setempName(rs.getString(2)); emp.setempPosition(rs.getString(3)); emp.setempSex(rs.getString(4)); emp.setempAge(rs.getString(5)); emp.setempPhone(rs.getString(6)); emp.setempPassword(rs.getString(7)); emplist.add(emp); } }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } returnemplist; }b、Servletif(op.equals("gdinfo")) { StringempId=request.getSession().getAttribute("empId").toString(); ArrayList<EmpInfo>emplist=empDAO.selectEmp(empId); request.setAttribute("emplist",emplist); request.getRequestDispatcher("gdInfo.jsp").forward(request,response); }5.3.3管理員模塊核心代碼(1)注冊員工信息a、DaopublicvoidaddEmp(StringempId,StringempName,StringempPosition,StringempSex,StringempAge,StringempPhone,StringempPassword) { Stringsql="insertintoempInfo(empId,empName,empPosition,empSex,empAge,empPhone,empPassword)values(?,?,?,?,?,?,?)"; Connectionconn=null; PreparedStatementps=null; ResultSetrs=null; try { conn=BaseDAO.getConn(); ps=conn.prepareStatement(sql); ps.setString(1,empId); ps.setString(2,empName); ps.setString(3,empPosition); ps.setString(4,empSex); ps.setString(5,empAge); ps.setString(6,empPhone); ps.setString(7,empPassword); rs=ps.executeQuery(); }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } }b、ServletStringempId=req.getParameter("empId"); StringempName=req.getParameter("empName"); StringPositions=req.getParameter("Positions"); StringempSex=req.getParameter("empSex"); StringempAge=req.getParameter("empAge"); StringempPhone=req.getParameter("empPhone"); StringempPassword=req.getParameter("empPassword"); EmpInfoDAOempDAO=newEmpInfoDAO(); empDAO.addEmp(empId,empName,Positions,empSex,empAge,empPhone,empPassword); resp.sendRedirect("/clothing/cloorderservlet?op=emplistadmin");(2)查看訂單信息a、DaopublicArrayList<OrderInfo>selectAllOrder() { ArrayList<OrderInfo>orderlist=newArrayList<OrderInfo>(); try { conn=BaseDAO.getConn(); System.out.println(conn); ps=conn.prepareStatement("select*fromorderInfo"); System.out.println("ps"+ps); rs=ps.executeQuery(); System.out.println("ps"+ps); while(rs.next()) { OrderInfoorder=newOrderInfo(); order.setCorderId(rs.getInt(1)); order.setcusId(rs.getString(2)); order.setorderTime(rs.getString(3)); order.setorderContent(rs.getString(4)); order.setorderRemark(rs.getString(5)); order.setorderQuantity(rs.getString(6)); order.setorderPrice(rs.getDouble(7)); order.setorderDeposit(rs.getDouble(8)); order.setorderTotal(rs.getDouble(9)); order.setdeliveryTime(rs.getString(10)); order.setsalesName(rs.getString(11)); order.setfollowName(rs.getString(12)); order.setvendorId(rs.getString(13)); order.setcostPrice(rs.getDouble(14)); order.setcostAmount(rs.getDouble(15)); order.setorderStatus(rs.getString(16)); orderlist.add(order); System.out.println("order"+order); } }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } System.out.println("orderlist"+orderlist); returnorderlist; }b、Servletif(op.equals("orderlistadmin")) { ArrayList<OrderInfo>orderlist=orderDAO.selectAllOrder(); System.out.println("orderlist1"+orderlist); request.setAttribute("orderlist",orderlist); request.getRequestDispatcher("orderListadmin.jsp").forward(request,response); }(3)查看提成信息(柱狀圖)a、jsp<!--柱狀圖--><%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//驅(qū)動程序名Stringurl="jdbc:sqlserver://:1433;databasename=clothingorders";//數(shù)據(jù)庫名Stringusername="sa";//數(shù)據(jù)庫用戶名Stringpassword="123456";//數(shù)據(jù)庫用戶密碼Connectionconn=DriverManager.getConnection(url,username,password);//連接狀態(tài)System.out.println("數(shù)據(jù)庫連接成功!");Statementstmt=null;ResultSetrs=null;Stringsql="selectsalesName,sum((orderTotal-costAmount)*0.12)ascommissionfromorderInfogroupbysalesName;";//查詢語句stmt=conn.createStatement();rs=stmt.executeQuery(sql);DefaultCategoryDatasetdataset=newDefaultCategoryDataset();try{while(rs.next()){dataset.addValue(Double.parseDouble(rs.getString("commission")),"提成",rs.getString("salesName"));} }catch(Exceptione) { e.printStackTrace(); System.out.println("數(shù)據(jù)庫連接失敗"); }//創(chuàng)建主題樣式StandardChartThemestandardChartTheme1=newStandardChartTheme("CN");//設(shè)置標題字體standardChartTheme1.setExtraLargeFont(newFont("隸書",Font.BOLD,20));//設(shè)置圖例的字體standardChartTheme1.setRegularFont(newFont("宋書",Font.PLAIN,8));//設(shè)置軸向的字體standardChartTheme1.setLargeFont(newFont("宋書",Font.PLAIN,15));//應(yīng)用主題樣式ChartFactory.setChartTheme(standardChartTheme1);JFreeChartchart1=ChartFactory.createBarChart3D("業(yè)務(wù)提成金額圖","業(yè)務(wù)姓名","提成金額(元)",dataset,PlotOrientation.VERTICAL,false,false,false);CategoryPlotplot=(CategoryPlot)chart1.getPlot();//獲得圖標中間部分,即plotCategoryAxiscategoryAxis=plot.getDomainAxis();//獲得橫坐標categoryAxis.setLabelFont(newFont("宋書",Font.BOLD,12));//設(shè)置橫坐標字體Stringfilename=ServletUtilities.saveChartAsPNG(chart1,1400,400,null,session);StringgraphURL=request.getContextPath()+"/DisplayChart?filename="+filename;System.out.println(graphURL+"\n"+filename);%><imgsrc="<%=graphURL%>"width=1400height=400border=0usemap="#<%=filename%>">(4)搜索訂單信息(訂單狀態(tài))a、DaopublicArrayList<OrderInfo>findorderStatus(StringorderStatus) { ArrayList<OrderInfo>findorderStatus=newArrayList<OrderInfo>(); try { conn=BaseDAO.getConn(); ps=conn.prepareStatement("select*fromorderInfowhereorderStatuslike'%"+orderStatus+"%'"); rs=ps.executeQuery(); while(rs.next()){ OrderInfoorder=newOrderInfo(); order.setCorderId(rs.getInt(1)); order.setcusId(rs.getString(2)); order.setorderTime(rs.getString(3)); order.setorderContent(rs.getString(4)); order.setorderRemark(rs.getString(5)); order.setorderQuantity(rs.getString(6)); order.setorderPrice(rs.getDouble(7)); order.setorderDeposit(rs.getDouble(8)); order.setorderTotal(rs.getDouble(9)); order.setdeliveryTime(rs.getString(10)); order.setsalesName(rs.getString(11)); order.setfollowName(rs.getString(12)); order.setvendorId(rs.getString(13)); order.setcostPrice(rs.getDouble(14)); order.setcostAmount(rs.getDouble(15)); order.setorderStatus(rs.getString(16)); findorderStatus.add(order); } }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } System.out.println("findorderStatus"+findorderStatus); returnfindorderStatus; }b、Servletif(op.equals("findorderStatus")) { StringorderStatus=request.getParameter("search"); ArrayList<OrderInfo>findorderStatus=orderDAO.findorderStatus(orderStatus); System.out.println("findorderStatus"+findorderStatus); request.setAttribute("findorderStatus",findorderStatus); request.getRequestDispatcher("findorderStatusadmin.jsp").forward(request,response); }c、Jsp<divclass="topnav"style="float:left;position:absolute;left:875px;top:35px;"><divclass="search-container"><formaction="/clothing/cloorderservlet?op=findorderStatus"method="post"><a>請輸入要查詢的訂單狀態(tài):</a><inputtype="text"placeholder="搜索..."name="search"><buttontype="submit">提交</button></form></div></div>(5)查看指定訂單的顧客信息a、DaopublicCusInfoselectCusById(StringcusId) { Connectionconn=null; PreparedStatementps=null; ResultSetrs=null; CusInfocus=null; try { conn=BaseDAO.getConn(); ps=conn.prepareStatement("select*fromCustomerwherecusId='"+cusId+"'"); rs=ps.executeQuery(); if(rs.next()) { cus=newCusInfo(); cus.setcusId(rs.getString(1)); cus.setcusName(rs.getString(2)); cus.setcusSex(rs.getString(3)); cus.setcusPhone(rs.getString(4)); cus.setcusAddress(rs.getString(5)); } }catch(Exceptionex) { ex.printStackTrace(); }finally { BaseDAO.closeAll(conn,ps,rs); } returncus; }b、Servletif(op.equals("cusdetails")) { StringcusId=request.getParameter("cusId"); CusInfocus=cusDAO.selectCusById(cusId); request.setAttribute("cus",cus); request.getRequestDispatcher("cusdetails.jsp").forward(request,response); }c、Jsp<td><ahref="/clothing/cloorderservlet?op=cusdetails&cusId=${order.cusId}">${order.cusId}</a></td>總結(jié)本文對服裝訂單管理的現(xiàn)狀和存在的問題從系統(tǒng)方面進行了分析研究,隨著市場的擴大,企業(yè)客戶的增多,業(yè)務(wù)員和跟單員的數(shù)量也隨之增加,計算業(yè)務(wù)員和跟單員每張訂單的提成金額就變成一件繁瑣的事。針對繁瑣的數(shù)據(jù)計算,容易造數(shù)據(jù)的遺漏、誤報、計算錯誤等問題,做出此軟件系統(tǒng),分析結(jié)果表明,此軟件系統(tǒng)很好的解決了服裝訂單管理復(fù)雜的一系列問題。本論文完成的主要工作有:(1)業(yè)務(wù)員在本系統(tǒng)的應(yīng)用可實現(xiàn)添加訂單信息和顧客信息,方便的查詢訂單信息、顧客信息、廠商信息、個人信息和提成信息,方便的搜索訂單信息、顧客信息、廠商信息,能管理自己的個人信息,能時刻關(guān)注到自己所接訂單的進度。(2)跟單員在本系統(tǒng)的應(yīng)用可實現(xiàn)添加廠商信息,修改自己跟進的訂單狀態(tài),方便的查詢訂單信息、顧客信息、廠商信息、個人信息和提成信息,方便的搜索訂單信息、顧客信息、廠商信息,能管理自己的個人信息。(3)管理員在本系統(tǒng)的應(yīng)用可實現(xiàn)對訂單信息的管理,顧客信息的管理,員工信息的管理,廠商信息的管理,業(yè)務(wù)員和跟單員的業(yè)績信息的管理,管理信息時能進行添加、刪除、修改、搜索等操作。但本系統(tǒng)還存在很多不足,如:界面設(shè)計不夠美觀,列表數(shù)據(jù)沒有進行分頁,顧客和廠商的編號不能自動生成,代碼不便于日后修改升級等。此外,本系統(tǒng)也僅限于局域網(wǎng)管理,未對網(wǎng)絡(luò)管理進行研究。這些均有待改善。參考文獻何受倩,曾昊.Java程序設(shè)計教程.中國鐵路出版社,2016.09.張秋余.基于用例的需求建模方法[J].計算機工程與設(shè)計,2006,27(19):3539-3541.[美]RobertV.Stum;[美]斯塔姆;譯者:銻格.面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(UML版).清華大學(xué)出版社.2005.08.楊冬青,李紅燕,唐世渭.數(shù)據(jù)庫系統(tǒng)概念.機械工業(yè)出版社.2015.04.王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社,2006年5月.田學(xué)強.JSP連接數(shù)據(jù)庫技術(shù)的研究[J].天津職業(yè)院校聯(lián)合學(xué)報,2007,9(5):50-54.動力火柴.\o"神氣的內(nèi)聯(lián)框架:iframe實戰(zhàn)"神氣的內(nèi)聯(lián)框架:iframe實戰(zhàn)[J].移動信息,2001,10:53-55.李艷霞.基于JBPM的服裝外貿(mào)訂單管理系統(tǒng)設(shè)計[J].河南科技,2015,556(2):23-25.黃懷毅.服裝銷售管理系統(tǒng)的設(shè)計與實現(xiàn)[J].無線互聯(lián)科技,2016,7:65-66.張玉葉,馬春清.利用JFreeChart在JSP中制作圖表[J].計算機時代,2013,4:34-39.致謝轉(zhuǎn)眼間就到了要畢業(yè)的時候了,在這四年的學(xué)習(xí)生活中,很多事情歷歷在目,我也收獲到了很多,而這些成績的取得是和一直關(guān)心幫助我的人分不開的。在大學(xué)最后得時間里,我很認真地做完了畢業(yè)設(shè)計,因為它是我大學(xué)的最后一次作業(yè)了,完成了它我大學(xué)生活接近尾聲了?;叵胛业乃哪甏髮W(xué)生活真的有很多的收獲和感觸,我遇到了很多真誠待我的人,遇到很多幫助我的人。在這里的四年時間我從一個懵懂少年成長為一個懂事懂禮懂得做人的人,在這里我不但學(xué)到了文化知識,實踐動手能力,更形成了我的許多價值觀,學(xué)會了許多做人做事的道理。感謝我的父母,無論何時,他們都理解我,支持我。非常感謝所有教過我的老師孜孜不倦的傳道授業(yè)解惑。特別感謝企協(xié)、沙盤課和科源團隊的老師,在我自我否定的時候給我自信。感謝我的導(dǎo)師田艷老師,在我做畢業(yè)設(shè)計的每個階段,從選題到查閱資料,論文提綱的確定,中期論文的修改,后期論文格式調(diào)整等各個環(huán)節(jié)中都給予了我悉心的指導(dǎo)。最后謝謝我的母校對我的教育,我將以更加飽滿的熱情投入今后的工作中,去完成自己的理想!
電腦故障檢測卡代碼表
1、特殊代碼"00"和"ff"及其它起始碼有三種情況出現(xiàn):
①已由一系列其它代碼之后再出現(xiàn):"00"或"ff",則主板ok。
②如果將cmos中設(shè)置無錯誤,則不嚴重的故障不會影響bios自檢的繼續(xù),而最終出現(xiàn)"00"或"ff"。
③一開機就出現(xiàn)"00"或"ff"或其它起始代碼并且不變化則為主板沒有運行起來。
2、本表是按代碼值從小到大排序,卡中出碼順序不定。
3、未定義的代碼表中未列出。
4、對于不同bios(常用ami、award、phoenix)用同一代碼代表的意義不同,因此應(yīng)弄清您所檢測的電腦是屬于哪一種類型的bios,您可查閱您的電腦使用手冊,或從主板上的bios芯片上直接查看,也可以在啟動屏幕時直接看到。
5、有少數(shù)主板的pci槽只有一部分代碼出現(xiàn),但isa槽有完整自檢代碼輸出。且目前已發(fā)現(xiàn)有極個別原裝機主板的isa槽無代碼輸出,而pci槽則有完整代碼輸出,故建議您在查看代碼不成功時,將本雙槽卡換到另一種插槽試一下。另外,同一塊主板的不同pci槽,有的槽有完整代碼送出,如dell810主板只有靠近cpu的一個pci槽有完整代碼顯示,一直變化到"00"或"ff",而其它pci槽走到"38"后則不繼續(xù)變化。
6、復(fù)位信號所需時間isa與pci不一定同步,故有可能isa開始出代碼,但pci的復(fù)位燈還不熄,故pci代碼停要起始代碼上。
代碼對照表
00.已顯示系統(tǒng)的配置;即將控制INI19引導(dǎo)裝入。
01處理器測試1,處理器狀態(tài)核實,如果測試失敗,循環(huán)是無限的。處理器寄存器的測試即將開始,不可屏蔽中斷即將停用。CPU寄存器測試正在進行或者失敗。
02確定診斷的類型(正?;蛘咧圃欤?。如果鍵盤緩沖器含有數(shù)據(jù)就會失效。停用不可屏蔽中斷;通過延遲開始。CMOS寫入/讀出正在進行或者失靈。
03清除8042鍵盤控制器,發(fā)出TESTKBRD命令(AAH)通電延遲已完成。ROMBIOS檢查部件正在進行或失靈。
04使8042鍵盤控制器復(fù)位,核實TESTKBRD。鍵盤控制器軟復(fù)位/通電測試??删幊涕g隔計時器的測試正在進行或失靈。
05如果不斷重復(fù)制造測試1至5,可獲得8042控制狀態(tài)。已確定軟復(fù)位/通電;即將啟動ROM。DMA初如準備正在進行或者失靈。
06使電路片作初始準備,停用視頻、奇偶性、DMA電路片,以及清除DMA電路片,所有頁面寄存器和CMOS停機字節(jié)。已啟動ROM計算ROMBIOS檢查總和,以及檢查鍵盤緩沖器是否清除。DMA初始頁面寄存器讀/寫測試正在進行或失靈。
07處理器測試2,核實CPU寄存器的工作。ROMBIOS檢查總和正常,鍵盤緩沖器已清除,向鍵盤發(fā)出BAT(基本保證測試)命令。.
08使CMOS計時器作初始準備,正常的更新計時器的循環(huán)。已向鍵盤發(fā)出BAT命令,即將寫入BAT命令。RAM更新檢驗正在進行或失靈。
09EPROM檢查總和且必須等于零才通過。核實鍵盤的基本保證測試,接著核實鍵盤命令字節(jié)。第一個64KRAM測試正在進行。
0A使視頻接口作初始準備。發(fā)出鍵盤命令字節(jié)代碼,即將寫入命令字節(jié)數(shù)據(jù)。第一個64KRAM芯片或數(shù)據(jù)線失靈,移位。
0B測試8254通道0。寫入鍵盤控制器命令字節(jié),即將發(fā)出引腳23和24的封鎖/解鎖命令。第一個64KRAM奇/偶邏輯失靈。
0C測試8254通道1。鍵盤控制器引腳23、24已封鎖/解鎖;已發(fā)出NOP命令。第一個64KRAN的地址線故障。
0D1、檢查CPU速度是否與系統(tǒng)時鐘相匹配。2、檢查控制芯片已編程值是否符合初設(shè)置。3、視頻通道測試,如果失敗,則鳴喇叭。已處理NOP命令;接著測試CMOS停開寄存器。第一個64KRAM的奇偶性失靈
0E測試CMOS停機字節(jié)。CMOS停開寄存器讀/寫測試;將計算CMOS檢查總和。初始化輸入/輸出端口地址。
0F測試擴展的CMOS。已計算CMOS檢查總和寫入診斷字節(jié);CMOS開始初始準備。.
10測試DMA通道0。CMOS已作初始準備,CMOS狀態(tài)寄存器即將為日期和時間作初始準備。第一個64KRAM第0位故障。
11測試DMA通道1。CMOS狀態(tài)寄存器已作初始準備,即將停用DMA和中斷控制器。第一個64DKRAM第1位故障。
12測試DMA頁面寄存器。停用DMA控制器1以及中斷控制器1和2;即將視頻顯示器并使端口B作初始準備。第一個64DKRAM第2位故障。
13測試8741鍵盤控制器接口。視頻顯示器已停用,端口B已作初始準備;即將開始電路片初始化/存儲器自動檢測。第一個64DKRAM第3位故障。
14測試存儲器更新觸發(fā)電路。電路片初始化/存儲器處自動檢測結(jié)束;8254計時器測試即將開始。第一個64DKRAM第4位故障。
15測試開頭64K的系統(tǒng)存儲器。第2通道計時器測試了一半;8254第2通道計時器即將完成測試。第一個64DKRAM第5位故障。
16建立8259所用的中斷矢量表。第2通道計時器測試結(jié)束;8254第1通道計時器即將完成測試。第一個64DKRAM第6位故障。
17調(diào)準視頻輸入/輸出工作,若裝有視頻BIOS則啟用。第1通道計時器測試結(jié)束;8254第0通道計時器即將完成測試。第一個64DKRAM第7位故障。
18測試視頻存儲器,如果安裝選用的視頻BIOS通過,由可繞過。第0通道計時器測試結(jié)束;即將開始更新存儲器。第一個64DKRAM第8位故障。
19測試第1通道的中斷控制器(8259)屏蔽位。已開始更新存儲器,接著將完成存儲器的更新。第一個64DKRAM第9位故障。
1A測試第2通道的中斷控制器(8259)屏蔽位。正在觸發(fā)存儲器更新線路,即將檢查15微秒通/斷時間。第一個64DKRAM第10位故障。
1B測試CMOS電池電平。完成存儲器更新時間30微秒測試;即將開始基本的64K存儲器測試。第一個64DKRAM第11位故障。
1C測試CMOS檢查總和。.第一個64DKRAM第12位故障。
1D調(diào)定CMOS配置。.第一個64DKRAM第13位故障。
1E測定系統(tǒng)存儲器的大小,并且把它和CMOS值比較。.第一個64DKRAM第14位故障。
1F測試64K存儲器至最高640K。.第一個64DKRAM第15位故障。
20測量固定的8259中斷位。開始基本的64K存儲器測試;即將測試地址線。從屬DMA寄存器測試正在進行或失靈。
21維持不可屏蔽中斷(NMI)位(奇偶性或輸入/輸出通道的檢查)。通過地址線測試;即將觸發(fā)奇偶性。主DMA寄存器測試正在進行或失靈。
22測試8259的中斷功能。結(jié)束觸發(fā)奇偶性;將開始串行數(shù)據(jù)讀/寫測試。主中斷屏蔽寄存器測試正在進行或失靈。
23測試保護方式8086虛擬方式和8086頁面方式。基本的64K串行數(shù)據(jù)讀/寫測試正常;即將開始中斷矢量初始化之前的任何調(diào)節(jié)。從屬中斷屏蔽存器測試正在進行或失靈。
24測定1MB以上的擴展存儲器。矢量初始化之前的任何調(diào)節(jié)完成,即將開始中斷矢量的初始準備。設(shè)置ES段地址寄存器注冊表到內(nèi)存高端。
25測試除頭一個64K之后的所有存儲器。完成中斷矢量初始準備;將為旋轉(zhuǎn)式斷續(xù)開始讀出8042的輸入/輸出端口。裝入中斷矢量正在進行或失靈。
26測試保護方式的例外情況。讀出8042的輸入/輸出端口;即將為旋轉(zhuǎn)式斷續(xù)開始使全局數(shù)據(jù)作初始準備。開啟A20地址線;使之參入尋址。
27確定超高速緩沖存儲器的控制或屏蔽RAM。全1數(shù)據(jù)初始準備結(jié)束;接著將進行中斷矢量之后的任何初始準備。鍵盤控制器測試正在進行或失靈。
28確定超高速緩沖存儲器的控制或者特別的8042鍵盤控制器。完成中斷矢量之后的初始準備;即將調(diào)定單色方式。CMOS電源故障/檢查總和計算正在進行。
29.已調(diào)定單色方式,即將調(diào)定彩色方式。CMOS配置有效性的檢查正在進行。
2A使鍵盤控制器作初始準備。已調(diào)定彩色方式,即將進行ROM測試前的觸發(fā)奇偶性。置空64K基本內(nèi)存。
2B使磁碟驅(qū)動器和控制器作初始準備。觸發(fā)奇偶性結(jié)束;即將控制任選的視頻ROM檢查前所需的任何調(diào)節(jié)。屏幕存儲器測試正在進行或失靈。
2C檢查串行端口,并使之作初始準備。完成視頻ROM控制之前的處理;即將查看任選的視頻ROM并加以控制。屏幕初始準備正在進行或失靈。
2D檢測并行端口,并使之作初始準備。已完成任選的視頻ROM控制,即將進行視頻ROM回復(fù)控制之后任何其他處理的控制。屏幕回掃測試正在進行或失靈。
2E使硬磁盤驅(qū)動器和控制器作初始準備。從視頻ROM控制之后的處理復(fù)原;如果沒有發(fā)現(xiàn)EGA/VGA就要進行顯示器存儲器讀/寫測試。檢測視頻ROM正在進行。
2F檢測數(shù)學(xué)協(xié)處理器,并使之作初始準備。沒發(fā)現(xiàn)EGA/VGA;即將開始顯示器存儲器讀/寫測試。.
30建立基本內(nèi)存和擴展內(nèi)存。通過顯示器存儲器讀/寫測試;即將進行掃描檢查。認為屏幕是可以工作的。
31檢測從C800:0至EFFF:0的選用ROM,并使之作初始準備。顯示器存儲器讀/寫測試或掃描檢查失敗,即將進行另一種顯示器存儲器讀/寫測試。單色監(jiān)視器是可以工作的。
32對主板上COM/LTP/FDD/聲音設(shè)備等I/O芯片編程使之適合設(shè)置值。通過另一種顯示器存儲器讀/寫測試;卻將進行另一種顯示器掃描檢查。彩色監(jiān)視器(40列)是可以工作的。
33.視頻顯示器檢查結(jié)束;將開始利用調(diào)節(jié)開關(guān)和實際插卡檢驗顯示器的關(guān)型。彩色監(jiān)視器(80列)是可以工作的。
34.已檢驗顯示器適配器;接著將調(diào)定顯示方式。計時器滴答聲中斷測試正在進行或失靈。35
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 乒乓球課題申報書
- 名師支部建設(shè)課題申報書
- 振興鄉(xiāng)村教育課題申報書
- 教學(xué)課題立項申報書模板
- 思政教研課題申報書模板
- 家庭研究專題課題申報書
- 課題項目申報書模版
- 個人購平房合同范本
- 課題申報書核心觀點
- 作文課題立項申報書范文
- 部編版四年級語文下冊第4單元大單元整體教學(xué)作業(yè)設(shè)計(教案配套)
- 大一邏輯學(xué)全部
- 2023年湖南食品藥品職業(yè)學(xué)院高職單招(英語)試題庫含答案解析
- GB/T 39096-2020石油天然氣工業(yè)油氣井油管用鋁合金管
- 爐外精煉說課
- GB/T 23111-2008非自動衡器
- GB/T 18877-2020有機無機復(fù)混肥料
- DB11 938-2022 綠色建筑設(shè)計標準
- 最新家政服務(wù)員培訓(xùn)課件
- 2022譯林版新教材高一英語必修二單詞表及默寫表
- 全國青少年機器人技術(shù)等級考試:二級培訓(xùn)全套課件
評論
0/150
提交評論