今天将为大家分析一个公司综合管理系统(企业管理平台是一项管理体系+企业管理软件的综合性平台,简称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";