Java實(shí)戰(zhàn)之藥品管理系統(tǒng)的實(shí)現(xiàn)
項(xiàng)目介紹
本項(xiàng)目屬于前后端分離的項(xiàng)目,分為兩個(gè)角色藥品管理員和取藥處人員
藥品管理員:
登錄、退出、藥品信息錄入、藥廠信息錄入、采購(gòu)員信息錄入、藥品信息瀏覽、藥廠信息瀏覽、采購(gòu)人員信息瀏覽、藥品信息查詢(xún)?nèi)霂?kù)修改刪除、藥廠信息入庫(kù)修改刪除、采購(gòu)員信息入庫(kù)修改刪除、入庫(kù)記錄瀏覽、出庫(kù)記錄瀏覽、系統(tǒng)幫助
取藥處人員:
登錄、退出、藥品信息瀏覽、藥廠信息瀏覽、采購(gòu)員信息瀏覽、藥品信息查詢(xún)出庫(kù)、出庫(kù)記錄瀏覽、系統(tǒng)幫助
環(huán)境需要
1.運(yùn)行環(huán)境:最好是java jdk 1.8,我們?cè)谶@個(gè)平臺(tái)上運(yùn)行的。其他版本理論上也可以。
2.IDE環(huán)境:IDEA,Eclipse,Myeclipse都可以。推薦IDEA;
3.tomcat環(huán)境:Tomcat 7.x,8.x,9.x版本均可
4.硬件環(huán)境:windows 7/8/10 1G內(nèi)存以上;或者 Mac OS;
5.數(shù)據(jù)庫(kù):MySql 5.7版本;
6.是否Maven項(xiàng)目:是
技術(shù)棧
1. 后端:SpringBoot
2. 前端:html+layui+jquery+bootstrap+echarts
使用說(shuō)明
1. 使用Navicat或者其它工具,在mysql中創(chuàng)建對(duì)應(yīng)名稱(chēng)的數(shù)據(jù)庫(kù),并導(dǎo)入項(xiàng)目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse導(dǎo)入項(xiàng)目,Eclipse/MyEclipse導(dǎo)入時(shí),若為maven項(xiàng)目請(qǐng)選擇maven;
若為maven項(xiàng)目,導(dǎo)入成功后請(qǐng)執(zhí)行maven clean;maven install命令,然后運(yùn)行;
3. 將項(xiàng)目中application.yml配置文件中的數(shù)據(jù)庫(kù)配置改為自己的配置;
4. 運(yùn)行項(xiàng)目,后端輸入localhost:8081/
效果圖展示
實(shí)現(xiàn)核心代碼
用戶(hù)相關(guān)的controller控制層
/** * 用戶(hù)相關(guān)的controller */ @Controller public class UserController { /** * 轉(zhuǎn)向登錄頁(yè)面 */ @RequestMapping(value = "/login") public String login(){ return "/login"; } /** * 判斷用戶(hù)登錄是否成功 */ @RequestMapping(value = "/toLogin") @ResponseBody public Object toLogin(String username,String password){ if(username==null||password==null){ return ResultMapUtil.getHashMapLogin("用戶(hù)名密碼不能為空","2"); } Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(username,password); try{ subject.login(token); }catch (UnknownAccountException e){ return ResultMapUtil.getHashMapLogin("用戶(hù)名不存在","2"); }catch (IncorrectCredentialsException e){ return ResultMapUtil.getHashMapLogin("密碼錯(cuò)誤","2"); } return ResultMapUtil.getHashMapLogin("驗(yàn)證成功","1"); } /** * 轉(zhuǎn)向后臺(tái)管理首頁(yè) */ @RequestMapping(value = "/index") public String index(){ return "/index"; } /** * 退出登錄 */ @RequestMapping(value = "/logout") public String logout(){ Subject subject = SecurityUtils.getSubject(); subject.logout(); return "redirect:/login"; } }
藥品相關(guān)的controller
/** * 藥品相關(guān)的controller */ @Controller @RequestMapping(value = "/druginfo") public class DruginfoController { @Autowired private IDruginfoService druginfoService; /** * 轉(zhuǎn)向藥品頁(yè)面 */ @RequestMapping public String druginfo(){ return "/druginfo"; } /** * 分頁(yè)查詢(xún)藥品列表 */ @RequestMapping(value = "/druginfoQueryPage") @ResponseBody public Object druginfoQueryPage(String param, @RequestParam(defaultValue = "1")int pageNum,@RequestParam(defaultValue = "10")int pageSize){ try{ IPage<Druginfo> iPage = druginfoService.selectDruginfoPage(pageNum,pageSize,param); return ResultMapUtil.getHashMapMysqlPage(iPage); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 轉(zhuǎn)向藥品新增頁(yè)面 */ @RequestMapping(value = "/druginfoPage") public String druginfoPage(){ return "/druginfoPage"; } /** * 添加一個(gè)藥品 */ @RequestMapping(value = "/druginfoAdd") @ResponseBody public Object druginfoAdd(Druginfo druginfo){ try{ int i = druginfoService.addDruginfo(druginfo); return ResultMapUtil.getHashMapSave(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 轉(zhuǎn)向藥品編輯頁(yè)面 */ @RequestMapping(value = "/druginfoQueryById") public String druginfoQueryById(@RequestParam(name = "id",required = true)Integer id, Model model){ Druginfo druginfo = druginfoService.queryDruginfoById(id); model.addAttribute("obj",druginfo); return "/druginfoPage"; } /** * 修改一個(gè)藥品 */ @RequestMapping(value = "/druginfoEdit") @ResponseBody public Object druginfoEdit(Druginfo druginfo){ try{ int i = druginfoService.editDruginfo(druginfo); return ResultMapUtil.getHashMapSave(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 刪除一個(gè)藥品 */ @RequestMapping(value = "/druginfoDelById") @ResponseBody public Object druginfoDelById(Integer id){ try{ int i = druginfoService.delDruginfoById(id); return ResultMapUtil.getHashMapDel(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 獲取所有藥品 */ @RequestMapping(value = "/druginfoList") @ResponseBody public Object druginfoList(){ List<Druginfo> druginfoList = druginfoService.queryDruginfoList(); return ResultMapUtil.getHashMapList(druginfoList); } /** * 轉(zhuǎn)向藥品保質(zhì)期檢查頁(yè)面 */ @RequestMapping(value = "/warranty") public String warranty(){ return "/warranty"; } }
供應(yīng)商相關(guān)的controller
/** * 供應(yīng)商相關(guān)的controller */ @Controller @RequestMapping(value = "/supplier") public class SupplierController { @Autowired private ISupplierService supplierService; /** * 轉(zhuǎn)向供應(yīng)商頁(yè)面 */ @RequestMapping public String supplier(){ return "/supplier"; } /** * 分頁(yè)查詢(xún)供應(yīng)商列表 */ @RequestMapping(value = "/supplierQueryPage") @ResponseBody public Object supplierQueryPage(String param, @RequestParam(defaultValue = "1")int pageNum,@RequestParam(defaultValue = "10")int pageSize){ try{ IPage<Supplier> iPage = supplierService.selectSupplierPage(pageNum,pageSize,param); return ResultMapUtil.getHashMapMysqlPage(iPage); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 轉(zhuǎn)向供應(yīng)商新增頁(yè)面 */ @RequestMapping(value = "/supplierPage") public String supplierPage(){ return "/supplierPage"; } /** * 添加一個(gè)供應(yīng)商 */ @RequestMapping(value = "/supplierAdd") @ResponseBody public Object supplierAdd(Supplier supplier){ try{ supplier.setCreatetime(new Date()); int i = supplierService.addSupplier(supplier); return ResultMapUtil.getHashMapSave(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 轉(zhuǎn)向供應(yīng)商編輯頁(yè)面 */ @RequestMapping(value = "/supplierQueryById") public String supplierQueryById(@RequestParam(name = "id",required = true)Integer id, Model model){ Supplier supplier = supplierService.querySupplierById(id); model.addAttribute("obj",supplier); return "/supplierPage"; } /** * 修改一個(gè)供應(yīng)商 */ @RequestMapping(value = "/supplierEdit") @ResponseBody public Object supplierEdit(Supplier supplier){ try{ int i = supplierService.editSupplier(supplier); return ResultMapUtil.getHashMapSave(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 刪除一個(gè)供應(yīng)商 */ @RequestMapping(value = "/supplierDelById") @ResponseBody public Object supplierDelById(Integer id){ try{ int i = supplierService.delSupplierById(id); return ResultMapUtil.getHashMapDel(i); } catch (Exception e){ return ResultMapUtil.getHashMapException(e); } } /** * 獲取所有供應(yīng)商 */ @RequestMapping(value = "/supplierList") @ResponseBody public Object supplierList(){ List<Supplier> supplierList = supplierService.querySupplierList(); return ResultMapUtil.getHashMapList(supplierList); } }
以上就是Java實(shí)戰(zhàn)之藥品管理系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java藥品管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Springboot整合mybatisplus的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Springboot整合mybatisplus的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Java8新特性之接口中的默認(rèn)方法和靜態(tài)方法詳解
今天帶大家學(xué)習(xí)的是Java8新特性的相關(guān)知識(shí),文章圍繞著Java接口中的默認(rèn)方法和靜態(tài)方法展開(kāi),文中有非常詳細(xì)的的代碼示例,需要的朋友可以參考下2021-06-06string boot 與 自定義interceptor的實(shí)例講解
下面小編就為大家分享一篇string boot 與 自定義interceptor的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12java swing 創(chuàng)建一個(gè)簡(jiǎn)單的QQ界面教程
這篇文章主要介紹了java swing 創(chuàng)建一個(gè)簡(jiǎn)單的QQ界面教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09