基于SSM实现企业生资源管理系统-ERP系统
作者主頁:編程指南針
?
?
作者簡介:Java領域優質創作者、CSDN博客專家 、掘金特邀作者、多年架構師設計經驗、騰訊課堂常駐講師
主要內容:Java項目、畢業設計、簡歷模板、學習資料、面試題庫、技術互助
收藏點贊不迷路? 關注作者有好處
文末獲取源碼?
項目編號:BS-XX-157
一,項目簡介
這是一個生產管理ERP系統。依托科技計劃重點項目“制造裝備物聯及生產管理系統研發”,主要包括:計劃進度、設備管理、工藝監控、物料監控、人員監控、質量監控、系統管理7大模塊。系統采用SSM框架開發實現,前端主要基于JQUERY-UI實現頁面布局展示。
ERP(Enterprise Resource Planning,企業資源計劃)系統,是進行物質資源、資金資源和信息資源集成一體化管理的企業信息管理系統,ERP統領企業全局,為管理層服務,重心在于企業決策,ERP對企業宏觀管理,一個企業一套ERP,具有整合性、系統性、靈活性、實時控制性等顯著特點。ERP 系統的供應鏈管理思想對企業提出了更高的要求,是企業在信息化社會、在知識經濟時代繁榮發展的核心管理模式。
二,環境介紹
語言環境:Java:? jdk1.8
數據庫:Mysql: mysql5.7
應用服務器:Tomcat:? tomcat8.5.31
開發工具:IDEA或eclipse
后臺開發技術:SSM框架開發
前端開發技術:ajax+jquery+jquery-ui
三,系統展示
用戶登陸:
計劃進度管理:
計劃進度管理-訂單管理
計劃進度管理-客戶管理
計劃進度管理-產品管理
計劃進度管理-作業管理
計劃進度管理-生產計劃管理
計劃進度管理-生產派工管理
設備管理—設備臺賬
設備管理—設備種類
設備管理—設備例檢
設備管理—設備故障
設備管理—設備維修
工藝監控—工藝管理?
物料監控—物料信息
系統管理—用戶管理
系統管理—角色管理
四,核心代碼展示
package com.megagao.production.ssm.controller;import java.util.HashMap; import java.util.Map;import javax.servlet.http.HttpServletRequest;import com.megagao.production.ssm.domain.customize.ActiveUser; import com.megagao.production.ssm.util.CollectionsFactory; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import static com.megagao.production.ssm.common.Constants.NO_PERMISSION;/**** 權限判斷controller**/ @RestController public class AuthorityJudgeController {private static final Logger logger = LoggerFactory.getLogger(AuthorityJudgeController.class);@RequestMapping("*/*_judge")public Map<String,Object> authorityJudge(HttpServletRequest request) throws Exception{Subject subject = SecurityUtils.getSubject();ActiveUser activeUser = (ActiveUser) subject.getPrincipal();//根據uri,使用shiro判斷相應權限String uri = request.getRequestURI();String[] names = uri.split("/");String featureName = names[2];String operateName = names[3].split("_")[0];Map<String,Object> map = CollectionsFactory.newHashMap();if(!activeUser.getUserStatus().equals("1")){if (logger.isDebugEnabled()) {logger.debug(NO_PERMISSION, "賬戶已被鎖定!");}map.put("msg", "您的賬戶已被鎖定,請切換賬戶登錄!");}else if(!activeUser.getRoleStatus().equals("1")){if (logger.isDebugEnabled()) {logger.debug(NO_PERMISSION, "角色已被鎖定!");}map.put("msg", "當前角色已被鎖定,請切換賬戶登錄!");}else{if (logger.isDebugEnabled()) {logger.debug(NO_PERMISSION, "沒有權限!");}if(!subject.isPermitted(featureName+":"+operateName)){map.put("msg", "您沒有權限,請切換用戶登錄!");}}return map;} } package com.megagao.production.ssm.controller;import java.util.HashMap; import java.util.Iterator; import java.util.Map;import javax.servlet.http.HttpServletResponse;import com.megagao.production.ssm.service.FileService; import com.megagao.production.ssm.util.DownloadUtil; import com.megagao.production.ssm.util.JsonUtils; 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.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest;/**** 上傳圖片處理**/ @Controller public class FileController {@Autowiredprivate FileService fileService;@RequestMapping(value="/file/upload", method=RequestMethod.POST)@ResponseBodypublic String handleFileUpload(MultipartHttpServletRequest request) throws Exception{Iterator<String> iterator = request.getFileNames();String json = null;while (iterator.hasNext()) {String fileName = iterator.next();MultipartFile multipartFile = request.getFile(fileName);Map<String,Object> result = fileService.uploadFile(multipartFile);json = JsonUtils.objectToJson(result);}return json;}@RequestMapping(value="/file/delete")@ResponseBodypublic String handleFileDelete(@RequestParam String fileName) throws Exception{fileService.deleteFile(fileName);Map<String,Object> result = new HashMap<String,Object>(); result.put("data", "success");String json = JsonUtils.objectToJson(result);return json;}@RequestMapping(value="/file/download")public void handleFileDownload(@RequestParam String fileName, HttpServletResponse response) throws Exception{fileName = fileName.substring(fileName.lastIndexOf("/")+1);String filePath = "D:\\upload\\temp\\file\\"+fileName;DownloadUtil du = new DownloadUtil();du.download(filePath, fileName, response, false);} } package com.megagao.production.ssm.controller;import com.megagao.production.ssm.util.CollectionsFactory; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpSession; import java.util.Map;import static com.megagao.production.ssm.common.Constants.VALIDATE_CODE;@Controller public class LoginController {/*** shiro ajax登錄 */@RequestMapping(value = "/ajaxLogin")@ResponseBodypublic Map<String,Object> ajaxLogin(@RequestParam String username,@RequestParam String password,@RequestParam(required=false) String randomcode,HttpSession session) throws Exception{Map<String,Object> map = CollectionsFactory.newHashMap();if(randomcode !=null && !randomcode.equals("")){//取出session的驗證碼(正確的驗證碼)String validateCode = (String)session.getAttribute(VALIDATE_CODE);//頁面中輸入的驗證和session中的驗證進行對比 if(validateCode!=null && !randomcode.equals(validateCode)){//如果校驗失敗,將驗證碼錯誤失敗信息放入map中map.put("msg", "randomcode_error");//直接返回,不再校驗賬號和密碼 return map; }}Subject currentUser = SecurityUtils.getSubject();if (!currentUser.isAuthenticated()) {UsernamePasswordToken token = new UsernamePasswordToken(username, password);try{currentUser.login(token);}catch(UnknownAccountException ex){map.put("msg", "account_error");}catch(IncorrectCredentialsException ex){map.put("msg", "password_error");}catch(AuthenticationException ex){map.put("msg", "authentication_error");}}//返回json數據return map;} } package com.megagao.production.ssm.controller.system;import java.util.List;import com.megagao.production.ssm.domain.customize.CustomResult; import com.megagao.production.ssm.service.PermissionService; import com.megagao.production.ssm.domain.authority.SysRolePermission; import com.megagao.production.ssm.domain.customize.EUDataGridResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;@Controller @RequestMapping("/permission") public class PermissionController {@Autowiredprivate PermissionService permissionService;@RequestMapping("/get/{permissionId}")@ResponseBodypublic SysRolePermission getItemById(@PathVariable String permissionId) throws Exception{SysRolePermission sysRolePermission = permissionService.get(permissionId);return sysRolePermission;}@RequestMapping("/find")public String find() throws Exception{return "permission_list";}@RequestMapping("/get_data")@ResponseBodypublic List<SysRolePermission> getData() throws Exception{return permissionService.find();}@RequestMapping("/get_permission")@ResponseBodypublic SysRolePermission getPermission(String roleId) throws Exception{return permissionService.getByRoleId(roleId);}@RequestMapping("/add")public String add() throws Exception{return "permission_add";}@RequestMapping("/edit")public String edit() throws Exception{return "permission_edit";}@RequestMapping("/list")@ResponseBodypublic EUDataGridResult getItemList(Integer page, Integer rows, SysRolePermission sysRolePermission)throws Exception{EUDataGridResult result = permissionService.getList(page, rows, sysRolePermission);return result;}@RequestMapping(value="/insert", method=RequestMethod.POST)@ResponseBodyprivate CustomResult insert(SysRolePermission sysRolePermission) throws Exception {CustomResult result = permissionService.insert(sysRolePermission);return result;}@RequestMapping(value="/update")@ResponseBodyprivate CustomResult update(SysRolePermission sysRolePermission) throws Exception {CustomResult result = permissionService.update(sysRolePermission);return result;}@RequestMapping(value="/update_by_roleid")@ResponseBodyprivate CustomResult updateByRoleId(String roleId, String permission) throws Exception {CustomResult result = permissionService.updateByRoleId(roleId, permission);return result;}@RequestMapping(value="/update_all")@ResponseBodyprivate CustomResult updateAll(SysRolePermission sysRolePermission) throws Exception {CustomResult result = permissionService.updateAll(sysRolePermission);return result;}@RequestMapping(value="/delete")@ResponseBodyprivate CustomResult delete(String id) throws Exception {CustomResult result = permissionService.delete(id);return result;}} package com.megagao.production.ssm.controller.system;import java.util.List;import com.megagao.production.ssm.domain.vo.RoleVO; import com.megagao.production.ssm.domain.customize.CustomResult; import com.megagao.production.ssm.domain.customize.EUDataGridResult; import com.megagao.production.ssm.domain.authority.SysRole; import com.megagao.production.ssm.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import javax.validation.Valid;@Controller @RequestMapping("/role") public class RoleController {@Autowiredprivate RoleService roleService;@RequestMapping("/get/{roleId}")@ResponseBodypublic RoleVO getItemById(@PathVariable String roleId) throws Exception{RoleVO sysRole = roleService.get(roleId);return sysRole;}@RequestMapping("/find")public String find() throws Exception{return "role_list";}@RequestMapping("/permission")public String permission() throws Exception{return "role_permission";}@RequestMapping("/get_data")@ResponseBodypublic List<RoleVO> getData() throws Exception{return roleService.find();}@RequestMapping("/add")public String add() throws Exception{return "role_add";}@RequestMapping("/edit")public String edit() throws Exception{return "role_edit";}@RequestMapping("/list")@ResponseBodypublic EUDataGridResult getItemList(Integer page, Integer rows, RoleVO role) throws Exception{EUDataGridResult result = roleService.getList(page, rows, role);return result;}@RequestMapping(value="/insert", method=RequestMethod.POST)@ResponseBodyprivate CustomResult insert(@Valid SysRole role, BindingResult bindingResult) throws Exception {CustomResult result;if(bindingResult.hasErrors()){FieldError fieldError = bindingResult.getFieldError();return CustomResult.build(100, fieldError.getDefaultMessage());}if(roleService.findByRoleNameAndId(role.getRoleName(), role.getRoleId()).size()>0){result = new CustomResult(0, "該角色名已經存在,請更換角色名!", null);}else if(roleService.get(role.getRoleId()) != null){result = new CustomResult(0, "該角色編號已經存在,請更換角色編號!", null);}else{result = roleService.insert(role);}return result;}@RequestMapping(value="/update")@ResponseBodyprivate CustomResult update(SysRole role) throws Exception {CustomResult result = roleService.update(role);return result;}@RequestMapping(value="/update_all")@ResponseBodyprivate CustomResult updateAll(@Valid SysRole role, BindingResult bindingResult) throws Exception {CustomResult result;if(bindingResult.hasErrors()){FieldError fieldError = bindingResult.getFieldError();return CustomResult.build(100, fieldError.getDefaultMessage());}if(roleService.findByRoleNameAndId(role.getRoleName(), role.getRoleId()).size()>0){result = new CustomResult(0, "該角色名已經存在,請更換角色名!", null);}else if(roleService.get(role.getRoleId()) != null){result = new CustomResult(0, "該角色編號已經存在,請更換角色編號!", null);}else{result = roleService.updateAll(role);}return result;}@RequestMapping(value="/delete")@ResponseBodyprivate CustomResult delete(String id) throws Exception {CustomResult result = roleService.delete(id);return result;}@RequestMapping(value="/delete_batch")@ResponseBodyprivate CustomResult deleteBatch(String[] ids) throws Exception {CustomResult result = roleService.deleteBatch(ids);return result;}//根據角色id查找@RequestMapping("/search_role_by_roleId")@ResponseBodypublic EUDataGridResult searchRoleByRoleId(Integer page, Integer rows, String searchValue) throws Exception{EUDataGridResult result = roleService.searchRoleByRoleId(page, rows, searchValue);return result;}//根據角色名查找@RequestMapping("/search_role_by_roleName")@ResponseBodypublic EUDataGridResult searchRoleByRoleName(Integer page, Integer rows, String searchValue) throws Exception{EUDataGridResult result = roleService.searchRoleByRoleName(page, rows, searchValue);return result;} }五,項目總結
本項目功能齊全,前后端交互較好,完整的實現了一個企業ERP系統應用的相關模塊。
總結
以上是生活随笔為你收集整理的基于SSM实现企业生资源管理系统-ERP系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pr 入门教程:了解基本用户界面
- 下一篇: 大工21春《船舶制图》大作业离线作业