




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄摘要 [12]。本系統(tǒng)參照阿里java開發(fā)手冊(cè)數(shù)據(jù)庫(kù)規(guī)約,遵循第三范式,使用Navicat工具進(jìn)行MySQL數(shù)據(jù)庫(kù)的設(shè)計(jì)和開發(fā)。數(shù)據(jù)庫(kù)主要的實(shí)體屬性本系統(tǒng)中的主要實(shí)體屬性如下:用戶表中包含:用戶id、登錄賬戶、密碼、電話、郵箱等字段。角色表包含的信息包括:角色id、角色名稱等。權(quán)限表包含的信息包括:菜單id、父菜單id、權(quán)限字段、路由名稱等。物資表中包含:物資id、分類id、規(guī)格、圖片、物資名稱、單位、備注、庫(kù)存。物資入庫(kù)表中包含:入庫(kù)id、類型、省份、詳細(xì)來源、聯(lián)系人、電話、郵箱、審核、創(chuàng)建時(shí)間。物資入庫(kù)詳情中包含:詳情id、物資id、分類id、入庫(kù)id、物資名稱、圖片、規(guī)格、單位、備注、數(shù)量。物資出庫(kù)表中包含:出庫(kù)id、類型、省份、詳細(xì)來源、聯(lián)系人、電話、郵箱、審核、創(chuàng)建時(shí)間。物資出庫(kù)詳情中包含:詳情id、物資id、分類id、出庫(kù)id、物資名稱、圖片、規(guī)格、單位、備注、數(shù)量。數(shù)據(jù)庫(kù)E-R模型在數(shù)據(jù)庫(kù)概念設(shè)計(jì)中,E-R圖能然我們更清楚的觀察出實(shí)體他們之間的聯(lián)系,本小節(jié)將使用畫E-R圖的方式,從超級(jí)管理員、倉(cāng)庫(kù)管理員、普通用戶三個(gè)角度對(duì)數(shù)據(jù)庫(kù)進(jìn)行分析。超級(jí)管理員超級(jí)管理員對(duì)用戶、角色、菜單、公告、物資分類、物資詳細(xì)信息都能進(jìn)行直接管理,還能夠查看物資出庫(kù)、入庫(kù)訂單詳情。在系統(tǒng)管理中數(shù)據(jù)庫(kù)包含用戶表、角色表、權(quán)限表、用戶-角色關(guān)聯(lián)表、角色-權(quán)限關(guān)聯(lián)表。一個(gè)用戶可以綁定多個(gè)角色,一個(gè)角色對(duì)應(yīng)多個(gè)用戶,一個(gè)權(quán)限可以對(duì)應(yīng)多個(gè)角色,而一個(gè)角色也可以擁有多個(gè)權(quán)限。超級(jí)管理員的E-R圖如圖4-14所示:圖4-14超級(jí)管理員實(shí)體—聯(lián)系圖倉(cāng)庫(kù)管理員倉(cāng)庫(kù)管理員對(duì)用戶、公告、物資分類、物資詳細(xì)信息都能進(jìn)行查看,還能夠直接對(duì)物資的出庫(kù)、入庫(kù)訂單和出庫(kù)、入庫(kù)詳情進(jìn)行管理,E-R圖如下所示:圖4-15倉(cāng)庫(kù)管理員實(shí)體—聯(lián)系圖普通用戶普通用戶能生成出庫(kù)、入庫(kù)訂單,還能夠查看物資分類列表。用戶與訂單的關(guān)系為1:n,即一個(gè)用戶可以生成多個(gè)出庫(kù)或者入庫(kù)訂單;訂單與訂單詳情為1:n的關(guān)系,即一個(gè)訂單可以有多件物品,普通用戶的E-R圖如圖4-16所示。圖4-16普通用戶實(shí)體—聯(lián)系圖系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)類圖類圖在軟件工程中扮演者重要的角色,通過類圖我們能清晰的表達(dá)系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖能幫助我們更好的理解系統(tǒng)、為編碼階段提供藍(lán)圖。如圖5-1描述了類的屬性,以及各類之間的關(guān)系。圖5-1系統(tǒng)總體類圖功能模塊界面設(shè)計(jì)為了設(shè)計(jì)的功能模塊能在本系統(tǒng)里的布局清晰,現(xiàn)對(duì)功能模塊所在的頁(yè)面進(jìn)行界面布局設(shè)計(jì)。系統(tǒng)查詢數(shù)據(jù)列表數(shù)據(jù)展示界面設(shè)計(jì)如圖5-2所示。 圖5-2信息管理、數(shù)據(jù)展示界面設(shè)計(jì)圖系統(tǒng)在物資入庫(kù)、物資出庫(kù)管理中進(jìn)行物資選擇的界面設(shè)計(jì)如圖5-3所示。圖5-3物資選擇界面設(shè)計(jì)圖系統(tǒng)在物資入庫(kù)、物資出庫(kù)管理中物資選擇完成后入庫(kù)的界面設(shè)計(jì)如圖5-4所示。圖5-4物資選擇成功后界面設(shè)計(jì)圖界面設(shè)計(jì)圖數(shù)據(jù)庫(kù)物理設(shè)計(jì)上一章節(jié)介紹了數(shù)據(jù)庫(kù)的主要的實(shí)體屬性,讓我們對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)有了大概的概念,這一小節(jié)將詳細(xì)的介紹數(shù)據(jù)庫(kù)設(shè)計(jì),更多詳細(xì)數(shù)據(jù)庫(kù)表如下所示:系統(tǒng)管理表設(shè)計(jì)用戶表sys_user數(shù)據(jù)庫(kù)表,如表5-1所示。表5-1用戶表(t_user)序號(hào)字段類型長(zhǎng)度能否為空解釋1user_idint11否用戶id2usernamevarchar64否登錄賬戶3passwordvarchar128否密碼4phonevarchar36否電話5emailvarchar64否郵箱6sexvarchar2否性別7is_admintinyint2能超級(jí)管理員8is_account_non_expiredtinyint2否賬戶是否過期9is_account_non_lockedtinyint2否賬戶是否鎖定10is_credentials_non_expiredtinyint2否密碼是否過期11is_enabledtinyint2否賬戶可用12nick_namevarchar2能姓名13create_timedatetime36否創(chuàng)建時(shí)間14update_timedatetime36能更新時(shí)間角色表sys_role數(shù)據(jù)庫(kù)表,如表5-2所示。表5-2角色表(sys_role)序號(hào)字段類型長(zhǎng)度能否為空解釋1role_idint11否角色id2role_namevarchar64否角色名稱3remarkvarchar128能備注4create_timedatetime36否創(chuàng)建時(shí)間5update_timedatetime36能更新時(shí)間權(quán)限表sys_menu數(shù)據(jù)庫(kù)表,如表5-3所示。表5-3權(quán)限表(sys_menu)序號(hào)字段類型長(zhǎng)度能否為空解釋1menu_idint11否菜單id2parent_idint11否父級(jí)菜單id3titlevarchar64否菜單名稱4codevarchar64否權(quán)限字段5namevarchar36否路由name6pathvarchar36否路由path7urlvarchar128否組件路徑8typevarchar2否類型9iconvarchar36能菜單圖標(biāo)10parent_namevarchar128能上級(jí)菜單名稱11oder_numint11能序號(hào)12creat_timedatetime36否創(chuàng)建時(shí)間13update_timedatetime36能更新時(shí)間用戶—角色關(guān)系表sys_user_role數(shù)據(jù)庫(kù)表,如表5-4所示。表5-4用戶—角色關(guān)系表(sys_user_role)序號(hào)字段類型長(zhǎng)度能否為空解釋1user_role_idint11否主鍵id2user_idint11否用戶id3role_idint11否角色id用戶—角色關(guān)系表sys_role_menu數(shù)據(jù)庫(kù)表,如表5-5所示。表5-5權(quán)限—角色關(guān)系表(sys_role_menu)序號(hào)字段類型長(zhǎng)度能否為空解釋1role_menu_idint11否主鍵id2menu_idint11否菜單id3role_idint11否角色id物資管理表設(shè)計(jì)物資分類表material_category數(shù)據(jù)表,如表5-6所示。表5-6物資分類表(material_category)序號(hào)字段類型長(zhǎng)度能否為空解釋1category_idint11否分類id2category_namevarchar64否分類名稱3order_numint11否序號(hào)物資詳情表material_info數(shù)據(jù)庫(kù)表,如表5-7所示。表5-7物資表(material_info)序號(hào)字段類型長(zhǎng)度能否為空解釋1info_idint11否物資id2category_idint11否分類id3info_namevarchar64否物資名稱4imagetext64否圖片5specsvarchar64否規(guī)格6unitvarchar36否單位7info_descvarchar200否備注8storeint36否庫(kù)存9send_idint11否物資申請(qǐng)單號(hào)material_into數(shù)據(jù)庫(kù)表,如表5-8所示。表5-8物資入庫(kù)表(material_info)序號(hào)字段類型長(zhǎng)度能否為空解釋1into_idvarchar11否入庫(kù)id2typevarchar2否類型3provincevarchar64否省份4detail_sourcevarchar200否詳細(xì)來源5namevarchar36否聯(lián)系人phonevarchar18否電話emailvarchar64否郵箱statusvarchar2否審核create_timedatetime36否創(chuàng)建時(shí)間sand_idInt11否物資申請(qǐng)idmaterial_into_detail數(shù)據(jù)庫(kù)表,如表5-9所示。表5-9物資入庫(kù)詳情表(material_info_detail)序號(hào)字段類型長(zhǎng)度能否為空解釋1into_detail_idint11否詳情id2into_idint11否入庫(kù)id3info_idint11否物資id4category_idint11否分類id5info_namevarchar64否物資名稱6imagetext200能圖片7specsvarchar64否規(guī)格8unitvarchar36否單位9info_descvarchar200能備注10numint36否數(shù)量material_send數(shù)據(jù)庫(kù)表,如表5-10所示。表5-10物資發(fā)放表(material_send)序號(hào)字段類型長(zhǎng)度能否為空解釋1send_idint11否發(fā)放id2typevarchar2否類型3provincevarchar64否省份4detail_sourcevarchar200否詳細(xì)來源5namevarchar36否聯(lián)系人6phonevarchar18否電話7emailvarchar64否郵箱8statusvarchar2否審核9create_timedatetime32否創(chuàng)建時(shí)間10do_typevarchar2否緊急程度material_send_detail數(shù)據(jù)庫(kù)表,如表5-11所示。表5-11物資發(fā)放詳情表(material_send_detail)序號(hào)字段類型長(zhǎng)度能否為空解釋1send_detail_idint11否詳情id2send_idint11否發(fā)放id3info_idint11否物資id4category_idint11否分類id5info_namevarchar64否物資名稱6imageText200否圖片7specsvarchar64否規(guī)格8unitvarchar36否單位9info_descvarchar200否備注10numInt11否數(shù)量公告管理表設(shè)計(jì)公告表notice數(shù)據(jù)庫(kù)表,如表5-12所示。表5-12公告表(material_send)序號(hào)字段類型長(zhǎng)度能否為空解釋1notice_idint11否通知id2titlevarchar128否標(biāo)題3content_texttext512否內(nèi)容4create_timedatetime32否創(chuàng)建時(shí)間系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)庫(kù)實(shí)現(xiàn)新建一個(gè)數(shù)據(jù)庫(kù),命名為material-pro,如圖6-1所示。圖6-1新建數(shù)據(jù)庫(kù)在數(shù)據(jù)庫(kù)中新建sys_user,sys_role,material_category等多個(gè)表。如下是創(chuàng)建sys_user表的MySQL語言:createtablesys_user(user_idint(11)notnullauto_incrementcomment'用戶id',usernamevarchar(64)comment'登錄賬戶',passwordvarchar(128)comment'密碼',phonevarchar(15)comment'電話',emailvarchar(64)comment'郵箱',sexvarchar(2)comment'性別',is_adminvarchar(2)comment'是否是超級(jí)管理員1:是0:否',is_account_non_expiredtinyint(2)comment'帳戶是否過期(1未過期,0已過期)',is_account_non_lockedtinyint(2)comment'帳戶是否被鎖定(1未鎖定,0已鎖定)',is_credentials_non_expiredtinyint(2)comment'密碼是否過期(1未過期,0已過期)',is_enabledtinyint(2)comment'帳戶是否可用(1可用,0刪除用戶)',nick_namevarchar(64)comment'昵稱',create_timedatetime(36)comment'創(chuàng)建時(shí)間',update_timedatetime(36)comment'更新時(shí)間',primarykey(user_id));數(shù)據(jù)庫(kù)中的sys_user的設(shè)計(jì)表如圖6-2所示。圖6-2sys_user的設(shè)計(jì)表在IDEA的項(xiàng)目源文件中連接mybatis數(shù)據(jù)庫(kù)。在application-tesst.yml文件中完成對(duì)本網(wǎng)站中數(shù)據(jù)庫(kù)的配置,如下是連接數(shù)據(jù)庫(kù)的核心代碼:#數(shù)據(jù)庫(kù)連接配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/material-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=trueusername:rootpassword:root系統(tǒng)功能模塊的實(shí)現(xiàn)本系統(tǒng)采用了前后端分離的模式,后端的所有模塊均采用Controller-Service-DAO模式。Controller層為控制層,控制前后端交互,接受前端的請(qǐng)求;Service層為業(yè)務(wù)層,負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì)。DAO層也叫Mapper層,主要負(fù)責(zé)與數(shù)據(jù)庫(kù)進(jìn)行交互,在Mapper層中所有Mapper接口繼承Mybatis-Plus框架提供的BaseMapper接口,用于實(shí)現(xiàn)針對(duì)單個(gè)表的簡(jiǎn)單增刪改查操作。Controller層接受前端請(qǐng)求,調(diào)用service層,service層調(diào)用DAO層接口,接收DAO層返回的數(shù)據(jù),service層返回的數(shù)據(jù)給Controller層,最后Controller層返回具體的頁(yè)面和數(shù)據(jù)到客戶端。系統(tǒng)管理模塊的實(shí)現(xiàn)用戶管理實(shí)現(xiàn)超級(jí)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的系統(tǒng)管理里的用戶管理,能出查詢出用戶列表,如圖6-3所示。超級(jí)管理員可以對(duì)用戶進(jìn)行新增、編輯、導(dǎo)出、刪除、重置密碼、禁用用戶的操作。新增用戶如圖6-4所示,可以綁定角色,綁定后使用該用戶的賬號(hào)登錄時(shí)就可以看見相應(yīng)角色對(duì)應(yīng)的系統(tǒng)權(quán)限頁(yè)面了。重置密碼,點(diǎn)擊確認(rèn)后,密碼將被重置為666666。圖6-3用戶管理頁(yè)面圖6-4用戶新增頁(yè)面超級(jí)管理員通過點(diǎn)擊角色管理頁(yè)面的對(duì)應(yīng)按鈕,向SysController中的add、edit、delete、list、exportUser等接口發(fā)出請(qǐng)求完成用戶的添加、編輯、查詢、導(dǎo)出等操作。以用戶的添加為例,用戶點(diǎn)擊新增按鈕,填寫用戶新增必填信息后點(diǎn)擊確認(rèn),前端就會(huì)綁定數(shù)據(jù)并發(fā)出addApi請(qǐng)求來帶調(diào)用后端SysUserController中的add()方法,SysUserController調(diào)用SysUserService中的同名方法,SysUserService調(diào)用SysUserMapper中的insert方法來新增用戶。如下圖6-5為用戶管理的類圖。圖6-6用戶管理類圖SysUserController.java的核心代碼部分如下://新增@PostMappingpublicResultVoadd(@RequestBodySysUsersysUser){//判斷賬戶是否被占用QueryWrapper<SysUser>query=newQueryWrapper<>();query.lambda().eq(SysUser::getUsername,sysUser.getUsername());SysUserone=sysUserService.getOne(query);if(one!=null){returnResultUtils.error("賬戶被占用!");}sysUser.setCreateTime(newDate());sysUser.setPassword(passwordEncoder.encode(sysUser.getPassword()));sysUserService.addUser(sysUser);returnResultUtils.success("新增成功!");}SysUserServiceImpl.java的核心代碼部分如下:@Transactional@OverridepublicvoidaddUser(SysUsersysUser){//新增用戶intinsert=this.baseMapper.insert(sysUser);//設(shè)置用戶的角色if(insert>0){SysUserRolesysUserRole=newSysUserRole();sysUserRole.setUserId(sysUser.getUserId());sysUserRole.setRoleId(sysUser.getRoleId());sysUserRoleService.save(sysUserRole);}}角色管理實(shí)現(xiàn)超級(jí)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的系統(tǒng)管理里的角色管理,能出查詢出角色列表,如圖6-6所示。超級(jí)管理員可以對(duì)角色進(jìn)行新增、編輯、刪除操作。除此之外,超級(jí)管理員還可對(duì)角色進(jìn)行權(quán)限分配,如圖6-7所示。為相應(yīng)的角色分配相應(yīng)的權(quán)限后再將角色與用戶綁定,這樣就實(shí)現(xiàn)了系統(tǒng)對(duì)用戶權(quán)限的控制。圖6-6角色管理頁(yè)面圖6-7角色管理權(quán)限分配頁(yè)面系統(tǒng)管理員通過點(diǎn)擊角色管理頁(yè)面的對(duì)應(yīng)按鈕,向SysRoleController中的add、edit、delete、list、getlistSelect、getAsssignTree等接口發(fā)出請(qǐng)求完成用戶的添加、編輯、查詢、導(dǎo)出等操作。以為角色分配權(quán)限為例,管理員點(diǎn)擊分配權(quán)限按鈕,勾選相應(yīng)的權(quán)限后點(diǎn)擊確認(rèn),前端就會(huì)綁定數(shù)據(jù)并發(fā)出assignSaveApi的請(qǐng)求來帶調(diào)用后端SysRoleController中的assignSave()方法,SysRoleController調(diào)用RoleMenuService中的同名方法,RoleMenuService調(diào)用SysRoleMapper中的saveRoleMenu方法。SysRoleController.java的核心代碼部分如下://保存權(quán)限@PostMapping("/assignSave")publicResultVoassignSave(@RequestBodySaveMenuParmparm){roleMenuService.saveMenu(parm);returnResultUtils.success("保存成功!");}sysUser.setCreateTime(newDate());sysUser.setPassword(passwordEncoder.encode(sysUser.getPassword()));sysUserService.addUser(sysUser);returnResultUtils.success("新增成功!")}RoleMenuServiceImpl.java的核心代碼部分如下:@OverridepublicvoidsaveMenu(SaveMenuParmparm){//先刪除角色原來的權(quán)限QueryWrapper<RoleMenu>query=newQueryWrapper<>();query.lambda().eq(RoleMenu::getRoleId,parm.getRoleId());this.baseMapper.delete(query);//重新保存this.baseMapper.saveRoleMenu(parm.getRoleId(),parm.getList());}菜單管理實(shí)現(xiàn)超級(jí)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的系統(tǒng)管理里的菜單管理,能出查詢出菜單列表(權(quán)限列表),如圖6-8所示。超級(jí)管理員可以對(duì)菜單進(jìn)行新增、編輯、刪除操作。在進(jìn)行新增操作時(shí),我們可以選擇新增的類型是目錄還是菜單或者按鈕,類型不同需要填寫的表單也不一樣,如圖6-9為新增菜單目錄的頁(yè)面。圖6-8菜單管理頁(yè)面圖6-9菜單管理新增目錄頁(yè)面超級(jí)管理員通過點(diǎn)擊菜單管理頁(yè)面的對(duì)應(yīng)按鈕,向SysMenuController中的add、edit、delete、list等接口發(fā)出請(qǐng)求完成用戶的添加、編輯、刪除等操作。以為添加為例,管理員點(diǎn)擊新增按鈕,填寫完表單后點(diǎn)擊確認(rèn),前端就會(huì)綁定數(shù)據(jù)并發(fā)出addApi的請(qǐng)求來帶調(diào)用后端SysMenuController中的add()方法,SysMenuController調(diào)用RoleMenuService中的save()方法,調(diào)用成功后在返回給前端頁(yè)面。SysMenuController.java的核心代碼部分如下://新增@PostMappingpublicResultVoadd(@RequestBodySysMenusysMenu){sysMenu.setCreateTime(newDate());if(sysMenuService.save(sysMenu)){returnResultUtils.success("新增成功!");}returnResultUtils.error("新增失敗!");}物資管理模塊物資類型管理的實(shí)現(xiàn)超級(jí)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的物資管理里的物資類型,能出查詢出物資分類的列表。超級(jí)管理員可以對(duì)物資進(jìn)行新增、編輯、刪除操作。在進(jìn)行新增操作時(shí),物資的名稱為必填項(xiàng),且不可與已有的物資類型重復(fù),如圖6-10所示。在進(jìn)行刪除操作時(shí),要確保已沒有該物資分類的物資,不然會(huì)刪除失敗,例如,刪除手套類型的物品,出現(xiàn)該分類仍有物資的提示。在進(jìn)行編輯操作時(shí),修改后的名稱也不可與已有的物資類型重復(fù),重復(fù)會(huì)編輯失敗。圖6-10物資類型新增失敗頁(yè)面物資信息管理模塊的實(shí)現(xiàn)超級(jí)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的物資管理里的物資信息,能出查詢出物資的列表。超級(jí)管理員可以對(duì)物資進(jìn)行新增、編輯、刪除、導(dǎo)出的操作。在進(jìn)行新增操作時(shí),物資的名稱與規(guī)格不能與已有的物資相同,否者會(huì)被認(rèn)為是同一件物資而導(dǎo)致新增失敗,如圖6-11所示。在進(jìn)行刪除操作時(shí),要確保倉(cāng)庫(kù)已沒有該物資的庫(kù)存,不然會(huì)刪除失敗,例如,刪除在倉(cāng)庫(kù)仍有庫(kù)存的kn95防塵口罩時(shí),出現(xiàn)刪除失敗的提示。在進(jìn)行編輯操作時(shí),修改后的名稱與規(guī)格也不可與已有的物資類型重復(fù),重復(fù)會(huì)編輯失敗,把紅色的安全帽修改為物資中已經(jīng)存在的黃色安全帽,提示已有該物資。管理員還可以對(duì)物資的信息進(jìn)行導(dǎo)出操作。圖6-11物資新增失敗頁(yè)面物資發(fā)放管理模塊物資發(fā)放的實(shí)現(xiàn)倉(cāng)庫(kù)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的物資發(fā)放管理的物資發(fā)放,出現(xiàn)一個(gè)物資發(fā)放填寫表單,如圖6-12所示。倉(cāng)庫(kù)管理員先可以填寫左側(cè)的發(fā)放信息表單,然后點(diǎn)擊選擇物資,出現(xiàn)物資的列表,如圖6-13所示,還可以按照物資分類和物資名稱搜索物資。選擇需要發(fā)放的物資,當(dāng)前出庫(kù)數(shù)量小于庫(kù)存數(shù)量,就出庫(kù)成功,否者,就會(huì)出現(xiàn)庫(kù)存不足提示,如圖6-14所示。刪除庫(kù)存不足的物資,點(diǎn)擊發(fā)放,發(fā)放成功,成功跳轉(zhuǎn)到發(fā)放記錄頁(yè)面進(jìn)行審核,如圖6-15。圖6-12物資發(fā)放表單的頁(yè)面圖6-13物資發(fā)放彈出物資列表的頁(yè)面圖6-14物資發(fā)放庫(kù)存不足的頁(yè)面物資發(fā)放記錄管理的實(shí)現(xiàn)倉(cāng)庫(kù)管理員登錄系統(tǒng),進(jìn)入發(fā)放記錄頁(yè)面,出現(xiàn)物資發(fā)放的列表,如圖6-15為剛剛添加的記錄,點(diǎn)擊展開,可以看見發(fā)放詳情,如圖6-16所示。在管理員沒進(jìn)行審核前,審核狀態(tài)為未審核,如圖6-17所示。管理員可以同意發(fā)放或者拒絕發(fā)放,同意發(fā)放后審核狀態(tài)變?yōu)閷徍送ㄟ^,對(duì)應(yīng)的物資減少,如圖6-18所示,拒絕發(fā)放后審核狀態(tài)變?yōu)榫芙^發(fā)放,如圖6-19所示。審核后的記錄不能再重復(fù)審核,如圖6-20所示。管理員還可對(duì)發(fā)放的基本信息和物資信息進(jìn)行打印,如圖6-21所示圖6-15發(fā)放記錄的頁(yè)面圖6-16發(fā)放記錄展開詳情的頁(yè)面圖6-17物資發(fā)放未審核的頁(yè)面圖6-18物資發(fā)放審核通過的頁(yè)面圖6-19物資發(fā)放審核失敗的頁(yè)面圖6-20物資發(fā)放重復(fù)審核的頁(yè)面圖6-21物資發(fā)放打印預(yù)覽的頁(yè)面?zhèn)}庫(kù)管理員通過點(diǎn)擊發(fā)放記錄頁(yè)面的對(duì)應(yīng)按鈕,向MaterialSendController中的apply、getIntoListByName、getIntoList、sendSave等接口發(fā)出請(qǐng)求完成用同意發(fā)放、拒絕發(fā)放、發(fā)放物資保存等操作。以審批發(fā)放物資為例,倉(cāng)庫(kù)管理員點(diǎn)擊同意發(fā)放按鈕,前端就會(huì)綁定發(fā)放id和審核狀態(tài)并發(fā)出intoApplyApi請(qǐng)求,后端接收到請(qǐng)求后,調(diào)用MaterialSendController中的apply()方法,MaterialSendController調(diào)用MaterialSendService中的同名方法,SysUserService調(diào)用他實(shí)現(xiàn)類中的同名方法。在MaterialSendServiceImpl的apply()方法中我們先判斷是同意入庫(kù)還是拒絕入庫(kù),如果為同意入庫(kù)我們要先更新記錄的審核狀態(tài),再更新物資的庫(kù)存,拒絕入庫(kù)就只用更新物資的審核狀態(tài),如下圖6-22為入庫(kù)管理的類圖。圖6-22入庫(kù)管理類圖MaterialSendServiceImpl.java的核心代碼部分如下:publicvoidapply(ApplyParmparm){//審核通過if(parm.getStatus().equals("1")){//更新記錄的審核狀態(tài)//更新記錄的狀態(tài)MaterialSendinto=newMaterialSend();into.setSendId(parm.getIntoId());into.setStatus(parm.getStatus());inti=this.baseMapper.updateById(into);//更新物資的庫(kù)存if(i>0){//根據(jù)記錄的id查詢物資庫(kù)存QueryWrapper<MaterialSendDetail>queryWrapper=newQueryWrapper<>();queryWrapper.lambda().eq(MaterialSendDetail::getSendId,parm.getIntoId());List<MaterialSendDetail>list=materialSendDetailService.list(queryWrapper);List<InfoUpdateParm>upList=newArrayList<>();for(intj=0;j<list.size();j++){InfoUpdateParmupdateParm=newInfoUpdateParm();updateParm.setStore(list.get(j).getNum());updateParm.setInfoId(list.get(j).getInfoId());upList.add(updateParm);}//出庫(kù)處理:批量更新materialInfoService.sendUpdateStore(upList);}}elseif(parm.getStatus().equals("2")){//拒絕//更新記錄的狀態(tài)MaterialSendinto=newMaterialSend();into.setSendId(parm.getIntoId());into.setStatus(parm.getStatus());this.baseMapper.updateById(into);}}物資入庫(kù)管理模塊物資入庫(kù)的實(shí)現(xiàn)倉(cāng)庫(kù)管理員登錄系統(tǒng),點(diǎn)擊右側(cè)導(dǎo)航欄的物資入庫(kù)管理的物資入庫(kù),出現(xiàn)一個(gè)物資入庫(kù)填寫表單,如圖6-23所示。倉(cāng)庫(kù)管理員先可以填寫左側(cè)的入庫(kù)信息表單,然后點(diǎn)擊選擇物資,出現(xiàn)物資的列表,如圖6-24所示,可以按照物資分類和物資名稱搜索物資。選擇需要入庫(kù)的物資,點(diǎn)擊加入,選擇完畢后關(guān)閉物資選擇頁(yè)面,就會(huì)出現(xiàn)如圖6-25所示的頁(yè)面,選擇入庫(kù)數(shù)量,點(diǎn)擊入庫(kù),就會(huì)成功跳轉(zhuǎn)到入庫(kù)記錄頁(yè)面進(jìn)行審核,如圖6-26。圖6-23物資發(fā)放表單的頁(yè)面圖6-24物資入庫(kù)彈出物資列表的頁(yè)面圖6-25物資入庫(kù)選擇物資的頁(yè)面入庫(kù)記錄管理的實(shí)現(xiàn)倉(cāng)庫(kù)管理員登錄系統(tǒng),進(jìn)入入庫(kù)記錄頁(yè)面,出現(xiàn)物資入庫(kù)的列表,可以看見剛剛添加的記錄,點(diǎn)擊展開,可以看見發(fā)放詳情,如圖6-26所示。在管理員沒進(jìn)行審核前,審核狀態(tài)為未審核,如圖6-27所示。管理員可以同意發(fā)放或者拒絕發(fā)放,同意發(fā)放后審核狀態(tài)變?yōu)閷徍送ㄟ^,如圖6-28所示,對(duì)應(yīng)的物資庫(kù)存增加。拒絕發(fā)放后審核狀態(tài)變?yōu)榫芙^發(fā)放,如圖6-29所示。審核后的記錄不能再重復(fù)審核,如圖6-30所示。管理員還可對(duì)發(fā)放的基本信息和物資信息進(jìn)行打印。圖6-26入庫(kù)記錄展開詳情的頁(yè)面圖6-27物資入庫(kù)未審核的頁(yè)面圖6-28物資入庫(kù)審核通過的頁(yè)面圖6-29物資入庫(kù)審核失敗的頁(yè)面圖6-30物資入庫(kù)重復(fù)審核的頁(yè)面公告管理模塊超級(jí)管理員登錄系統(tǒng),進(jìn)入公告管理頁(yè)面,出現(xiàn)公告的列表,如圖6-31所示。管理員可對(duì)公告進(jìn)行新增、編輯、刪除操作。添加成功后,用戶可以在首頁(yè)查看公告,如圖6-32所示。圖6-31公告管理的頁(yè)面圖6-32首頁(yè)展示公告列表的頁(yè)面?zhèn)€人中心模塊用戶登錄,進(jìn)入個(gè)人中心模塊,可以看見個(gè)人的基本信息以及修改密碼,如圖6-33所示。圖6-33個(gè)人中心頁(yè)面系統(tǒng)測(cè)試測(cè)試目的軟件測(cè)試的主要目的是為了評(píng)估軟件的性能、功能、可靠性、安全性等各方面的特性,確保軟件滿足預(yù)定的需求和標(biāo)準(zhǔn),并找出并修復(fù)可能存在的問題。具體來說,軟件測(cè)試目的主要是,確保軟件的功能正常運(yùn)行:測(cè)試軟件的各個(gè)功能模塊是否能按照預(yù)期進(jìn)行工作,是否能滿足用戶需求。測(cè)試軟件在持續(xù)運(yùn)行過程中的穩(wěn)定性,包括異常情況下的行為,以確保軟件能夠穩(wěn)定可靠地運(yùn)行。測(cè)試軟件是否易于使用,是否便于維護(hù)和升級(jí),以及是否具備良好的可擴(kuò)展性。通過軟件測(cè)試,可以為軟件開發(fā)過程提供有價(jià)值的反饋,進(jìn)而不斷改進(jìn)軟件的設(shè)計(jì)和實(shí)現(xiàn),提高軟件的質(zhì)量,減少軟件發(fā)布后的維護(hù)成本,并降低用戶使用中的風(fēng)險(xiǎn)。測(cè)試方法軟件測(cè)試方法是指在軟件測(cè)試過程中采用的具體技術(shù)和方法論,用于有效地發(fā)現(xiàn)軟件中的缺陷和問題。本系統(tǒng)采用了以下方法進(jìn)行測(cè)試單元測(cè)試(Unit
Testing)是對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查,通常由開發(fā)者編寫,用于驗(yàn)證代碼片段的正確性。集成測(cè)試(Integration
Testing):在單元測(cè)試之后進(jìn)行,用于驗(yàn)證不同模塊或服務(wù)之間的接口是否正確,確保各部分能夠正常協(xié)同工作。系統(tǒng)測(cè)試(System
Testing):對(duì)完整集成后的軟件系統(tǒng)進(jìn)行測(cè)試,以評(píng)估系統(tǒng)的性能、可靠性和安全性等。手動(dòng)測(cè)試(Manual
Testing):由測(cè)試人員手動(dòng)執(zhí)行測(cè)試用例,用于發(fā)現(xiàn)自動(dòng)化測(cè)試可能忽略的問題。本系統(tǒng)根據(jù)這些方法進(jìn)行逐一測(cè)試,以確保軟件質(zhì)量達(dá)到預(yù)期的水平測(cè)試內(nèi)容系統(tǒng)管理部分功能測(cè)試系統(tǒng)管理為本系統(tǒng)的重要管理模塊,下面將對(duì)系統(tǒng)管理的角色管理和用戶管理的重要功能進(jìn)行測(cè)試,主要包括添加角色、給角色分配權(quán)限、新增用戶、給用戶分配角色、停用用戶、導(dǎo)出用戶。部分測(cè)試用例如表7-1所示表7-1系統(tǒng)管理測(cè)試用例前置條件操作用戶角色為超級(jí)管理員用例入口系統(tǒng)登陸,點(diǎn)擊系統(tǒng)管理,點(diǎn)擊角色管理、用戶管理編號(hào)用例名稱測(cè)試步驟期望結(jié)果實(shí)際結(jié)果09新增角色點(diǎn)擊角色管理頁(yè)面下的新增按鈕輸入角色名稱:角色test01;備注:測(cè)試1點(diǎn)擊確認(rèn)按鈕彈出新增角色彈框出現(xiàn)新增角色成功提示正常010給角色分配權(quán)限點(diǎn)擊角色管理頁(yè)面下的分配權(quán)限按鈕勾選個(gè)人中心和公告管理點(diǎn)擊確認(rèn)按鈕出現(xiàn)保存成功的提示正常011新增用戶點(diǎn)擊用戶管理頁(yè)面下的新增按鈕填寫基本信息。如,姓名:test01等。選擇角色為剛剛新增的角色test01,狀態(tài)為啟用點(diǎn)擊確定彈出新增用戶彈框出現(xiàn)新增成功提示正常012使用test01的賬號(hào)登錄進(jìn)入登錄頁(yè)面輸入賬號(hào)test01,密碼:test01,和驗(yàn)證碼,點(diǎn)擊登錄(超級(jí)管理員)登錄成功,跳轉(zhuǎn)到首頁(yè)只能看到首頁(yè)、個(gè)人中心和公告管理頁(yè)面正常013停用用戶進(jìn)入用戶管理頁(yè)面選擇test01用戶,點(diǎn)擊編輯按鈕狀態(tài)選擇為禁用進(jìn)入登錄頁(yè)面,使用test01的賬號(hào)登錄出現(xiàn)賬戶被禁用,登錄失敗的提示正常014導(dǎo)出點(diǎn)擊用用管理頁(yè)面的導(dǎo)出按鈕瀏覽器彈出提示框,保存為EXCEL正常圖7-1為給角色test01分配權(quán)限的界面,圖7-2為使用test01用戶登錄的界面。給角色test01分配了公告管理和個(gè)人中心的權(quán)限,再把用戶test01分配角色test01,最后再使用test01來登錄,就得到如圖7-2的頁(yè)面。圖7-1角色test01分配權(quán)限圖圖7-2test01賬號(hào)登錄后的界面圖登錄功能測(cè)試登錄功能是本系統(tǒng)的基礎(chǔ)功能,進(jìn)行登錄功能的測(cè)試是為了確保系統(tǒng)的登錄功能能夠正常運(yùn)行,防止用戶無法正常登錄。登錄功能設(shè)計(jì)的部分測(cè)試用例如表7-2所示:表7-2用戶登錄測(cè)試用例編號(hào)用例名稱測(cè)試步驟期望結(jié)果實(shí)際結(jié)果001正常登錄1.進(jìn)入登錄頁(yè)面2.輸入正確的帳號(hào)和密碼3.點(diǎn)擊登錄或按回車鍵登陸成功,并跳轉(zhuǎn)至首頁(yè)正常002輸入未注冊(cè)的帳號(hào)1.進(jìn)入登錄頁(yè)面2.輸入未注冊(cè)的帳號(hào)及密碼3.點(diǎn)擊登錄或按回提示用戶名或密碼錯(cuò)誤正常003帳號(hào)為空1.進(jìn)入登錄頁(yè)面2.僅輸入密碼3.點(diǎn)擊登錄或按回車鍵提示輸入用戶名正常004密碼為空1.進(jìn)入登錄頁(yè)面2.僅輸入帳號(hào)3.點(diǎn)擊登錄或按回車鍵提示輸入密碼正常005帳號(hào)密碼都為空1.進(jìn)入登錄頁(yè)面2.點(diǎn)擊登錄提示輸入用戶名密碼正常006密碼錯(cuò)誤1.進(jìn)入登錄頁(yè)面2.輸入正確的帳號(hào)和錯(cuò)誤的密碼3.點(diǎn)擊登錄或按回車鍵提示密碼錯(cuò)誤正常007超級(jí)管理員登錄1.進(jìn)入登錄頁(yè)面2.輸入超級(jí)管理員的賬號(hào)和密碼登陸成功,并跳轉(zhuǎn)至首頁(yè),系統(tǒng)展現(xiàn)超級(jí)管理員擁有權(quán)限的頁(yè)面正常008倉(cāng)庫(kù)管理員登錄1.進(jìn)入登錄頁(yè)面2.輸入倉(cāng)庫(kù)管理員的賬號(hào)和密碼登陸成功,并跳轉(zhuǎn)至首頁(yè),系統(tǒng)展現(xiàn)倉(cāng)庫(kù)管理員擁有權(quán)限的頁(yè)面正常物資管理部分功能測(cè)試物資管理為本系統(tǒng)的重要管理模塊,下面將對(duì)系統(tǒng)管理的角色管理和用戶管理的重要功能進(jìn)行測(cè)試,主要包括添加角色、給角色分配權(quán)限、新增用戶、給用戶分配角色、停用用戶、導(dǎo)出用戶。部分測(cè)試用例如表7-2所示。表7-3物資管理測(cè)試用例前置條件操作用戶角色為超級(jí)管理員用例入口系統(tǒng)登陸,點(diǎn)擊物資管理編號(hào)用例名稱測(cè)試步驟期望結(jié)果實(shí)際結(jié)果015新增物資類型點(diǎn)擊物資類型的新增按鈕填寫分類名稱和序號(hào)點(diǎn)擊確定彈出新增物資類型的彈框出現(xiàn)新增物資類型成功的提示正常016新增物資類型分類名稱為空點(diǎn)擊物資類型的新增按鈕填寫序號(hào)點(diǎn)擊確定彈出新增物資類型的彈框出現(xiàn)請(qǐng)?zhí)顚懛诸惷Q的提示正常017新增物資類型分類名稱重復(fù)點(diǎn)擊物資類型的新增按鈕填寫分類名稱和序號(hào)點(diǎn)擊確定彈出新增物資類型的彈框出現(xiàn)已有該物資的提示正常018編輯物資類型點(diǎn)擊物資類型的編輯按鈕修改分類名稱和序號(hào)點(diǎn)擊確定彈出編輯物資類型的彈框出現(xiàn)編輯物資類型成功的提示正常019刪除物資類型點(diǎn)擊物資類型的刪除按鈕出現(xiàn)刪除成功的提示正常020新增物資點(diǎn)擊物資的新增按鈕填寫物資必填信息和選擇分類點(diǎn)擊確定彈出新增物資的彈框出現(xiàn)新增物資成功的提示正常021編輯物資點(diǎn)擊物資的編輯按鈕修改物資信息點(diǎn)擊確定彈出編輯物資的彈框出現(xiàn)編輯物資成功的提示正常022庫(kù)存不為0,刪除物資點(diǎn)擊物資類型的刪除按鈕出現(xiàn)刪除失敗,該物資還有庫(kù)存的提示正常023庫(kù)存為0,刪除物資點(diǎn)擊物資類型的刪除按鈕刪除成功正常物資發(fā)放與入庫(kù)部分功能測(cè)試表7-4物資發(fā)放與入庫(kù)部分測(cè)試用例前置條件操作用戶角色為倉(cāng)庫(kù)管理員用例入口系統(tǒng)登陸,點(diǎn)擊物資發(fā)放、物資入庫(kù)編號(hào)用例名稱測(cè)試步驟期望結(jié)果實(shí)際結(jié)果024新增入庫(kù)單選擇物資入庫(kù)頁(yè)面填寫入庫(kù)信息表選擇物資添加成功,入庫(kù)記錄列表中多出一條待審核的數(shù)據(jù)正常025同意入庫(kù)點(diǎn)擊入庫(kù)記錄選擇一條未審核的數(shù)據(jù)點(diǎn)擊同意入庫(kù)按鈕入庫(kù)成功正常026拒絕入庫(kù)點(diǎn)擊入庫(kù)記錄選擇一條未審核的數(shù)據(jù)點(diǎn)擊同意入庫(kù)按鈕入庫(kù)失敗正常027新增發(fā)放單選擇物資發(fā)放頁(yè)面填寫物資發(fā)放信息表選擇物資添加成功,發(fā)放記錄列表中多出一條待審核的數(shù)據(jù)正常028同意發(fā)放點(diǎn)擊發(fā)放記錄選擇一條未審核的數(shù)據(jù)點(diǎn)擊同意發(fā)放按鈕發(fā)放成功正常029拒絕發(fā)放點(diǎn)擊發(fā)放記錄選擇一條未審核的數(shù)據(jù)點(diǎn)擊拒絕發(fā)放按鈕發(fā)放失敗正常測(cè)試分析軟件測(cè)試是軟件開發(fā)的核心環(huán)節(jié),測(cè)試分析也是軟件測(cè)試的重要內(nèi)容。在以上功能測(cè)試內(nèi)容中,輸入網(wǎng)址進(jìn)入網(wǎng)站后臺(tái),登錄后,點(diǎn)擊入庫(kù)記錄的如圖7-4所示記錄的同意入庫(kù)操作后作出如下測(cè)試分析。同意入庫(kù)前的物資庫(kù)存信息:點(diǎn)擊物資管理的物資信息,查看丁晴勞保線手套的庫(kù)存為100,如下圖7-3所示。圖7-3查看手套庫(kù)存?zhèn)}庫(kù)管理員登錄,選擇如下圖7-4所示記錄,點(diǎn)擊同意入庫(kù)。圖7-4點(diǎn)擊同意入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 路基注漿施工方案(3篇)
- 會(huì)議車輛疫情防控應(yīng)急預(yù)案(3篇)
- 民樂縣金山小學(xué)應(yīng)急預(yù)案(3篇)
- 高低壓柜安裝施工方案(3篇)
- 百事可樂應(yīng)急預(yù)案(3篇)
- 公司化學(xué)品泄露應(yīng)急預(yù)案(3篇)
- 海林市市級(jí)機(jī)關(guān)選調(diào)真題2024
- 寧河區(qū)網(wǎng)絡(luò)優(yōu)化知識(shí)培訓(xùn)課件
- 浙江藥科職業(yè)大學(xué)《數(shù)據(jù)庫(kù)系統(tǒng)概論實(shí)驗(yàn)》2024-2025學(xué)年第一學(xué)期期末試卷
- 福建醫(yī)科大學(xué)《BM建模技術(shù)》2024-2025學(xué)年第一學(xué)期期末試卷
- 新入職醫(yī)生培訓(xùn)
- 2024年度軟件即服務(wù)(SaaS)平臺(tái)租賃合同3篇
- 網(wǎng)絡(luò)攻防原理與技術(shù) 第3版 教案 -第12講 網(wǎng)絡(luò)防火墻
- 2024年新課標(biāo)培訓(xùn)2022年小學(xué)英語新課標(biāo)學(xué)習(xí)培訓(xùn)課件
- 2024小學(xué)語文教學(xué)及說課課件:二年級(jí)上冊(cè)《田家四季歌》
- 2024至2030年中國(guó)聚脲涂料行業(yè)市場(chǎng)發(fā)展調(diào)研及投資前景分析報(bào)告
- 1.1 鴉片戰(zhàn)爭(zhēng) 課件 2024-2025學(xué)年統(tǒng)編版八年級(jí)歷史上冊(cè)
- 2024至2030年中國(guó)演播室行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- DB11∕T 420-2019 電梯安裝、改造、重大修理和維護(hù)保養(yǎng)自檢規(guī)則
- 國(guó)旗臺(tái)施工合同
- 總代理授權(quán)書
評(píng)論
0/150
提交評(píng)論