今天將為大家分析一個公司綜合管理系統(企業管理平台是一項管理體系+企業管理軟件的綜合性平台,簡稱ECP,是企業現實運營中使用的有形和無形相結合的管理體系。ECP企業管理平台是企業線上生存的運營支撐環境,它為企業的管理者提供了一個類似線下日常工作的環境,分布在不同地方的不同時間工作的管理者,可以像坐在同一個房間一樣地工作。),該項目使用框架為SSM(MYECLIPSE),選用開發工具為MYECLIPSE。公司綜合管理系統為一個 后台項目。
為了完成該系統,我們首先需要對該系統進行需求分析。一個公司綜合管理系統應包含用戶角色有管理員、用戶。為了能讓用戶順利登陸系統完成相關操作,需要為每種登陸角色設置賬戶和密碼字段。
總結得出該系統所有數據為:管理員(admin)、用戶(yonghu)、理念體系(liniantixi)、企業目標(qiyemubiao)
管理員表
字段名 | 類型 | 屬性 | 描述 id | INT(11) | PRIMARY KEY | 管理員id username | VARCHAR(255) | | 賬號 password | VARCHAR(255) | | 密碼
用戶表
字段名 | 類型 | 屬性 | 描述 id | INT(11) | PRIMARY KEY | 用戶id xingming | VARCHAR(255) | | 姓名 nianling | VARCHAR(255) | | 年齡 zhiwu | VARCHAR(255) | | 職務 quanxian | VARCHAR(255) | | 權限 username | VARCHAR(255) | | 賬號 password | VARCHAR(255) | | 密碼
理念體系表
字段名 | 類型 | 屬性 | 描述 id | INT(11) | PRIMARY KEY | 理念體系id chengxinlinian | VARCHAR(255) | | 誠信理念 shichanglinian | VARCHAR(255) | | 市場理念 chuangxinlinian | VARCHAR(255) | | 創新理念 shoufalinian | VARCHAR(255) | | 守法理念
企業目標表
字段名 | 類型 | 屬性 | 描述 id | INT(11) | PRIMARY KEY | 企業目標id duanqimubiao | VARCHAR(255) | | 短期目標 zhongqimubiao | VARCHAR(255) | | 中期目標 changqimubiao | VARCHAR(255) | | 長期目標
package org.mypro.front; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.List; import javax.jms.Session; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mypro.dao.QiyemubiaoMapper; import org.mypro.entity.Qiyemubiao; import org.mypro.entity.QiyemubiaoExample; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; @Controller @RequestMapping(value = "/") public class QiyemubiaoController { private static final Log logger = LogFactory.getLog(QiyemubiaoController.class); @Autowired private QiyemubiaoMapper qiyemubiaodao; //定義方法tianjiaqiyemubiao,響應頁面tianjiaqiyemubiao請求 @RequestMapping(value = "tianjiaqiyemubiao") public String tianjiaqiyemubiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) { logger.debug("QiyemubiaoController.tianjiaqiyemubiao ......"); if(backurl != null && backurl.indexOf("tianjiaqiyemubiao.action") == -1){ return "forward:/" + backurl; } return "tianjiaqiyemubiao"; } @RequestMapping(value = "tianjiaqiyemubiaoact") public String tianjiaqiyemubiaoact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Qiyemubiao qiyemubiao,String backurl) throws IOException { logger.debug("QiyemubiaoController.tianjiaqiyemubiaoact ......"); qiyemubiaodao.insert(qiyemubiao); request.setAttribute("message", "添加企業目標成功"); if(backurl != null && backurl.indexOf("tianjiaqiyemubiaoact.action") == -1){ return "forward:/" + backurl; } //返回tianjiaqiyemubiao方法 return "forward:/tianjiaqiyemubiao.action"; } //定義qiyemubiaoguanli方法響應頁面請求 @RequestMapping(value = "qiyemubiaoguanli") public String qiyemubiaoguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) { logger.debug("QiyemubiaoController.qiyemubiaoguanli ......"); QiyemubiaoExample example = new QiyemubiaoExample(); List qiyemubiaoall = qiyemubiaodao.selectByExample(example); request.setAttribute("qiyemubiaoall", qiyemubiaoall); if(backurl != null && backurl.indexOf("qiyemubiaoguanli.action") == -1){ return "forward:/" + backurl; } return "qiyemubiaoguanli"; } // 定義 qiyemubiaochakan方法 @RequestMapping(value = "qiyemubiaochakan") public String qiyemubiaochakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) { logger.debug("QiyemubiaoController.qiyemubiaochakan ......"); QiyemubiaoExample example = new QiyemubiaoExample(); List qiyemubiaoall = qiyemubiaodao.selectByExample(example); request.setAttribute("qiyemubiaoall", qiyemubiaoall); if(backurl != null && backurl.indexOf("qiyemubiaochakan.action") == -1){ return "forward:/" + backurl; } return "qiyemubiaochakan"; } // 定義 xiugaiqiyemubiao方法 @RequestMapping(value = "xiugaiqiyemubiao") public String xiugaiqiyemubiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){ logger.debug("QiyemubiaoController.xiugaiqiyemubiao ......"); Qiyemubiao qiyemubiao = qiyemubiaodao.selectByPrimaryKey(id); request.setAttribute("qiyemubiao", qiyemubiao); if(backurl != null && backurl.indexOf("xiugaiqiyemubiao.action") == -1){ return "forward:/" + backurl; } return "xiugaiqiyemubiao"; } // 定義xiugaiqiyemubiaoact處理企業目標修改 @RequestMapping(value = "xiugaiqiyemubiaoact") public String xiugaiqiyemubiaoact(HttpServletRequest request, HttpServletResponse response,Qiyemubiao qiyemubiao,HttpSession session,String backurl) throws IOException { logger.debug("QiyemubiaoController.xiugaiqiyemubiaoact ......"); qiyemubiaodao.updateByPrimaryKeySelective(qiyemubiao); request.setAttribute("message", "修改企業目標信息成功"); if(backurl != null && backurl.indexOf("xiugaiqiyemubiaoact.action") == -1){ return "forward:/" + backurl; } return "forward:/qiyemubiaoguanli.action"; } // 定義shanchuqiyemubiao,處理刪除企業目標 @RequestMapping(value = "shanchuqiyemubiao") public String shanchuqiyemubiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){ logger.debug("QiyemubiaoController.shanchuqiyemubiao ......"); qiyemubiaodao.deleteByPrimaryKey(id); request.setAttribute("message", "刪除企業目標成功"); if(backurl != null && backurl.indexOf("shanchuqiyemubiao.action") == -1){ return "forward:/" + backurl; } return "forward:/qiyemubiaoguanli.action"; } // 定義sousuoqiyemubiao方法,處理搜索操作 @RequestMapping(value = "sousuoqiyemubiao") public String sousuoqiyemubiao(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) { logger.debug("QiyemubiaoController.sousuoqiyemubiao ......"); QiyemubiaoExample example = new QiyemubiaoExample(); QiyemubiaoExample.Criteria criteria = example.createCriteria(); if(search != null){ criteria.andDuanqimubiaoLike("%" + search + "%"); } List qiyemubiaoall = qiyemubiaodao.selectByExample(example); request.setAttribute("qiyemubiaoall", qiyemubiaoall); if(backurl != null && backurl.indexOf("sousuoqiyemubiao.action") == -1){ return "forward:/" + backurl; } return "sousuoqiyemubiao"; } // 定義QiyemubiaopinglunMapper@RequestMapping (value = "qiyemubiaoxiangqing") public String qiyemubiaoxiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {logger. debug("QiyemubiaoController.qiyemubiaoxiangqing ......");Qiyemubiao qiyemubiao = qiyemubiaodao.selectByPrimaryKey(id);request. setAttribute("qiyemubiao", qiyemubiao); if(backurl != null && backurl.indexOf("qiyemubiaoxiangqing.action") == -1){ return "forward:/" + backurl; } return "qiyemubiaoxiangqing"; } // 上傳文件圖片等 public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException { // 根據當前時間生成時間字符串 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS"); String res = sdf.format(new Date()); // uploads文件夾位置 String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/"); // 原始名稱 String originalFileName = file.getOriginalFilename(); // 新文件名 String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf(".")); // 創建年月文件夾 Calendar date = Calendar.getInstance(); File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1)); // 新文件 File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName); // 判斷目標文件所在目錄是否存在 if( !newFile.getParentFile().exists()) { // 如果目標文件所在的目錄不存在,則創建父目錄newFile. getParentFile().mkdirs(); } System.out.println(newFile); // 將內存中的數據寫入磁盤file. transferTo(newFile); // 完整的url String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName; return fileUrl; }}
添加理念體系模塊:
通過添加理念體系模塊,可以完成理念體系的添加操作。在頁面中跳轉到添加理念體系頁面,輸入理念體系的所有信息,點擊添加操作,可以將理念體系數據以post提交到liniantixiController中。理念體系所包含的字段信息包括誠信理念,市場理念,創新理念,守法理念。在liniantixiController中通過定義liniantixi接受所有的理念體系參數。使用liniantixidao的insert方法將liniantixi實體插入到數據庫中。完成數據的添加操作,在liniantixiMapper中匹配對應的liniantixixml完成插入sql語句的執行操作。該部分核心代碼如下:
通過liniantixidao的insert方法將頁面傳輸的理念體系添加到數據庫中 liniantixidao.insert(liniantixi);
將添加理念體系成功信息,保存到request的message中,在頁面中給出用戶提示 request.setAttribute("message", "添加理念體系成功");
返回理念體系管理界面
return "forward:/tianjialiniantixi.action";
查詢理念體系模塊:
在后台liniantixiguanli方法中,通過selectByexample方法獲取所有的數據信息。將其保存到request中,在頁面中通過foreach方法
進行循環展示到table中。完成理念體系查詢操作。具體代碼如下:
生成理念體系樣例類,通過example定義查詢條件 LiniantixiExample example = new LiniantixiExample();
通過liniantixidao的selectByExample方法查詢出所有的理念體系信息 List liniantixiall = liniantixidao.selectByExample(example);
將理念體系信息,保存到request中,在頁面通過foreach方法進行展示 request.setAttribute("liniantixiall", liniantixiall);
返回理念體系管理界面
return "forward:/liniantixiguanli.action";
修改理念體系模塊:
對已經上傳的理念體系信息可以進行修改操作,該部分操作在理念體系管理界面中點擊修改按鈕可以跳轉到理念體系修改頁面。在修改頁面中,將初始化所有的理念體系字段信息,字段信息包括誠信理念,市場理念,創新理念,守法理念。字段信息內容通過理念體系id獲取。修改后的信息傳入到liniantixiController中接收為liniantixi。在liniantixiController中包含有提前定義好的liniantixidao,該參數為liniantixiMapper是實現。liniantixiMapper中定義了修改方法,此處使用修改方法為updateByPrimaryKeySelective,該方法可以將修改后信息同步到數據庫中,最終將修改成功信息返回頁面中。該部分代碼如下:
通過liniantixidao的修改方法根據id修改對應的理念體系 liniantixidao.updateByPrimaryKeySelective(liniantixi);
將修改理念體系成功信息,保存到request的message中,在頁面中給出用戶提示 request.setAttribute("message", "修改理念體系信息成功");
返回理念體系管理界面
return "forward:/liniantixiguanli.action";
刪除理念體系模塊:
刪除理念體系功能的實現方式為,通過點擊刪除理念體系按鈕,向服務器發起get請求。請求中包含理念體系的id信息,在liniantixiController中使用int接受該id,並將該id傳入liniantixidao的deleteByPrimaryKey方法中。該方法的作用為根據id刪除對應理念體系。最后將刪除理念體系成功的信息返回頁面,該部分核心代碼如下:
通過liniantixidao的刪除方法根據id刪除對應的理念體系 liniantixidao.deleteByPrimaryKey(id);
將刪除理念體系成功信息,保存到request的message中,在頁面中給出用戶提示 request.setAttribute("message", "刪除理念體系成功");
返回理念體系管理界面
return "forward:/liniantixiguanli.action";