又大又粗又猛免费视频久久_国产理论在线播放_久久男人av资源网站免费软件_99国产精品无码

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)(源碼 數(shù)據(jù)庫 文檔 PPT)

  • 開發(fā)語言:Java
  • 數(shù)據(jù)庫:MySQL
  • 技術(shù):SpringBoot
  • 工具:IDEA/Ecilpse、Navicat、Maven

系統(tǒng)展示

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

系統(tǒng)總體功能模塊圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

管理員登錄界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

管理員功能界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

學(xué)生管理界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

部門管理界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

員工考勤管理界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

請假申請管理界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

員工工資管理界面圖

基于SpringBoot的“人事管理系統(tǒng)”的設(shè)計(jì)與實(shí)現(xiàn)

招聘計(jì)劃管理界面圖

摘要

首先,論文一開始便是清楚的論述了系統(tǒng)的研究內(nèi)容。其次,剖析系統(tǒng)需求分析,弄明白“做什么”,分析包括業(yè)務(wù)分析和業(yè)務(wù)流程的分析以及用例分析,更進(jìn)一步明確系統(tǒng)的需求。然后在明白了系統(tǒng)的需求基礎(chǔ)上需要進(jìn)一步地設(shè)計(jì)系統(tǒng),主要包羅軟件架構(gòu)模式、整體功能模塊、數(shù)據(jù)庫設(shè)計(jì)。本項(xiàng)目軟件架構(gòu)選擇B/S模式和java技術(shù),總體功能模塊運(yùn)用自頂向下的分層思想。再然后就是實(shí)現(xiàn)系統(tǒng)并進(jìn)行代碼編寫實(shí)現(xiàn)功能。論文的最后章節(jié)總結(jié)一下自己完成本論文和開發(fā)本項(xiàng)目的心得和總結(jié)。通過人事管理系統(tǒng)將會使人事管理各個(gè)方面的工作效率帶來實(shí)質(zhì)性的提升。

研究的背景

困擾管理層的許多問題當(dāng)中,人事管理是一定不敢忽視的一塊。但是管理好人事又面臨很多麻煩需要解決,例如有幾個(gè)方面:第一,公司往往員工人數(shù)都比較多,如何保證能夠管理到每一員工;第二,如何在工作瑣碎,記錄繁多的情況下將人事變動的情況反應(yīng)給公司領(lǐng)導(dǎo)相關(guān)部門決策,等等。在此情況下開發(fā)一款人事管理系統(tǒng),于是乎變得非常合乎時(shí)宜。

經(jīng)過網(wǎng)上調(diào)查和搜集數(shù)據(jù),我們可以發(fā)現(xiàn)人事管理方面的系統(tǒng)在公司中并不是相當(dāng)普及,公司在人事管理方面的可以有許多改進(jìn)。實(shí)際上如今信息化成為一個(gè)未來的趨勢或者可以說在當(dāng)前現(xiàn)代化的城市典范中,信息化已經(jīng)成為主流,開發(fā)一個(gè)人事管理系統(tǒng)一方面可能會更合乎時(shí)宜,另一方面來說也可以提高公司在人事管理方面的效率給相關(guān)部門人的工作帶來一定的便利。

開發(fā)意義

人類的進(jìn)步帶動信息化的發(fā)展,使人們生活節(jié)奏越來越快,所以人們越來越重視信息的時(shí)效性。以往的管理方式已經(jīng)滿足不了人們對獲得信息的方式、方便快捷的需求。即人事管理系統(tǒng)慢慢的被人們關(guān)注。首先,網(wǎng)上獲取信息十分的實(shí)時(shí)、便捷,只要系統(tǒng)在線狀態(tài),無論在哪里都能第一時(shí)間查找到理想的信息。

研究內(nèi)容與結(jié)構(gòu)

本項(xiàng)目在開發(fā)和設(shè)計(jì)過程中涉及到原理和技術(shù)有: B/S、java技術(shù)和MySQL數(shù)據(jù)庫等等;將按以下章節(jié)進(jìn)行開發(fā)設(shè)計(jì);

第一章緒論;剖析項(xiàng)目背景,說明研究的內(nèi)容。

第二章開發(fā)技術(shù);系統(tǒng)主要使用了java技術(shù),b/s模式和myspl數(shù)據(jù)庫,并對此做了介紹。

第三章系統(tǒng)分析;包羅了系統(tǒng)總體結(jié)構(gòu)、對系統(tǒng)的性能、功能、流程圖進(jìn)行了分析。

第四章系統(tǒng)設(shè)計(jì);對軟件功能模塊和數(shù)據(jù)庫進(jìn)行詳細(xì)設(shè)計(jì)。

第五章系統(tǒng)總體設(shè)計(jì);對系統(tǒng)管理員,教師和學(xué)生的功能進(jìn)行描述。

第六章對系統(tǒng)進(jìn)行測試。

第七章總結(jié)心得;在論文最后結(jié)束章節(jié)總結(jié)了開發(fā)這個(gè)系統(tǒng)和撰寫論文時(shí)候自己的總結(jié)、感想,包括致謝。

部分源碼

/** * 員工 * 后端接口 * @author * @email * @date 2022-03-22 17:13:54 */@RestController@RequestMapping("/yuangong")public class YuangongController { @Autowired private YuangongService yuangongService; @Autowired private TokenService tokenService; /** * 登錄 */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username)); if(user==null || !user.getMima().equals(password)) { return R.error("賬號或密碼不正確"); } String token = tokenService.generateToken(user.getId(), username,"yuangong", "員工" ); return R.ok().put("token", token); } /** * 注冊 */ @IgnoreAuth @RequestMapping("/register") public R register(@RequestBody YuangongEntity yuangong){ //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("注冊用戶已存在"); } Long uId = new Date().getTime(); yuangong.setId(uId); yuangongService.insert(yuangong); return R.ok(); } /** * 退出 */ @RequestMapping("/logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } /** * 獲取用戶的session用戶信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); YuangongEntity user = yuangongService.selectById(id); return R.ok().put("data", user); } /** * 密碼重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username)); if(user==null) { return R.error("賬號不存在"); } user.setMima("123456"); yuangongService.updateById(user); return R.ok("密碼已重置為:123456"); } /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,YuangongEntity yuangong, HttpServletRequest request){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,YuangongEntity yuangong, HttpServletRequest request){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( YuangongEntity yuangong){ EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>(); ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong")); return R.ok().put("data", yuangongService.selectListView(ew)); } /** * 查詢 */ @RequestMapping("/query") public R query(YuangongEntity yuangong){ EntityWrapper< YuangongEntity> ew = new EntityWrapper< YuangongEntity>(); ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong")); YuangongView yuangongView = yuangongService.selectView(ew); return R.ok("查詢員工成功").put("data", yuangongView); } /** * 后端詳情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ YuangongEntity yuangong = yuangongService.selectById(id); return R.ok().put("data", yuangong); } /** * 前端詳情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ YuangongEntity yuangong = yuangongService.selectById(id); return R.ok().put("data", yuangong); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ yuangong.setId(new Date().getTime() new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("用戶已存在"); } yuangong.setId(new Date().getTime()); yuangongService.insert(yuangong); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ yuangong.setId(new Date().getTime() new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yuangong); YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", yuangong.getYuangonggonghao())); if(user!=null) { return R.error("用戶已存在"); } yuangong.setId(new Date().getTime()); yuangongService.insert(yuangong); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody YuangongEntity yuangong, HttpServletRequest request){ //ValidatorUtils.validateEntity(yuangong); yuangongService.updateById(yuangong);//全部更新 return R.ok(); } /** * 刪除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ yuangongService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper<YuangongEntity> wrapper = new EntityWrapper<YuangongEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = yuangongService.selectCount(wrapper); return R.ok().put("count", count); } }

結(jié)論

通過完成該人事管理和本論文的撰寫讓我更加明白了軟件開發(fā)過程中軟件工程思想的重要性。在項(xiàng)目的前期由于對需求分析做的不夠謹(jǐn)慎和明確,導(dǎo)致了后面在設(shè)計(jì)甚至編碼時(shí)候造成了許多不必要的麻煩。由此在今后的學(xué)習(xí)和工作開發(fā)之中必須要牢牢把握住軟件工程的設(shè)計(jì)思想和方法,這樣可以進(jìn)一步保證項(xiàng)目開發(fā)的健壯性和準(zhǔn)確性。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部