博主主页:猫头鹰源码
博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
文末联系获取
项目介绍:
该系统创作于2022年4月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:资产、公司OA、企业资产等。
项目功能:
管理员功能:
登录功能
用户管理:增加、修改、删除,查询员工信息
财务人员管理:增加、修改、删除,查询财务人员信息
资产管理:
资产购置:新增资产购置记录,修改或者删除记录
资产录入:进行录入,修改或者删除
资产库存管理:维护库存信息
资产领用管理:查询领用信息,审核领用信息
资产归还管理:查询归还记录
资产盘点:
资产盘点:查询资产情况,建议使用图表方式(比如折线图、饼状图等),展示资产的使用和利用情况
资产维修管理:新增维护记录,修改,删除,查询记录
资产折旧管理:新增折旧记录,修改,删除,查询记录
资产报废管理:新增报废记录,修改,删除,查询记录
财务人员功能:
登录功能
资产管理:
资产购置:新增资产购置记录,修改或者删除记录
资产录入:进行录入,修改或者删除
资产库存管理:维护库存信息
资产领用管理:查询领用信息,审核领用信息
资产归还管理:查询归还记录
资产盘点:
资产盘点:查询资产情况,建议使用图表方式(比如折线图、饼状图等),展示资产的使用和利用情况
资产维修管理:新增维护记录,修改,删除,查询记录
资产折旧管理:新增折旧记录,修改,删除,查询记录
资产报废管理:新增报废记录,修改,删除,查询记录
用户功能:
登录功能
资产信息:查询所有已录入的资产信息,已经库存状况,可以提交领用申请
资产领用管理:查询自己的领用申请,删除申请,已领用的可进行归还
资产归还管理:查看归还信息
物资借用申请:申请物资信息(比如打印机、固定资产等),修改、删除,查询信息
用户设备管理:管理设备信息
以上有修改,下面是修改部分:
资产管理员
1.资产库存、资产购置、资产领用、资产归还、资产维修、资产折旧、资产报废等都加入导出到表格的小功能点(同资产录入)
资产管理领导(新增的角色)
1.审批:之前的资产购置审批流程为资产管理员提出购置申请,系统管理员在资产管理进行审批,现在取消系统管理员的那个功能,再新增一个叫做资产管理领导的角色,由这个领导进行对资产购置的审批,以及折旧、维修、报废的二次审批(之前是由员工提出资产管理员审批,或是资产管理员直接提出,现再后边加入资产管理领导的角色进行第二轮审批)
2.资产管理领导进行审批,同时也具有部分资产管理员的功能,比如:资产购置、资产折旧、资产报废和资产维修
系统管理员
系统管理员不再有资产管理的审批功能,下属功能只有员工管理、资产管理员管理、资产管理领导管理、管理员管理
数据库表结构文档:
系统包含技术:
后端:springboot、mybatis
前端:layui,js,css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是登录注册
系统管理员-首页
系统管理员对员工管理
系统管理员管理资产管理领导
资产管理领导资产购置
资产管理领导对资产维修管理
资产管理领导对资产折旧维护
资产管理员对资产库存维护
资产管理员-资产盘点
员工查看个人信息
部分代码:
拦截器
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session.getAttribute("ad") != null){
return true;
}
// 不符合条件的给出提示信息,并转发到主页面
request.setAttribute("msg", "您还没有登录,请先登录!");
request.getRequestDispatcher("/gologin.jsp").forward(request, response);
//返回true通过,返回false拦截
return false;
}
资产操作
/**
* 分页查询
* pageIndex 当前页码
* pageSize 显示条数
*/
@RequestMapping(value = "/findAssets")
public String findAssets(Integer pageIndex, Integer pageSize,String no,String name, Model model,HttpServletRequest request) {
HttpSession session = request.getSession();
if(session.getAttribute("ad") == null){
session.setAttribute("msg", "对不起,请登录!");
return "login";
}
Map mp = new HashMap();
String type = (String)session.getAttribute("type");
if(type.equals("02")){
Manage manage = (Manage)session.getAttribute("ad");
mp.put("mid",manage.getId());
}
mp.put("no",no);
mp.put("name",name);
PageInfo<Assets> pageList = assetsService.findPageInfo(pageIndex,pageSize,mp);
model.addAttribute("pageList",pageList);
return "AssetsList";
}
/**
* 分页查询
* pageIndex 当前页码
* pageSize 显示条数
*/
@RequestMapping(value = "/findAssets2")
public String findAssets2(Integer pageIndex, Integer pageSize,String no,String name, Model model,HttpServletRequest request) {
HttpSession session = request.getSession();
if(session.getAttribute("ad") == null){
session.setAttribute("msg", "对不起,请登录!");
return "login";
}
Map mp = new HashMap();
String type = (String)session.getAttribute("type");
if(type.equals("02")){
Manage manage = (Manage)session.getAttribute("ad");
mp.put("mid",manage.getId());
}
mp.put("no",no);
mp.put("name",name);
PageInfo<Assets> pageList = assetsService.findPageInfo(pageIndex,pageSize,mp);
model.addAttribute("pageList",pageList);
return "AssetsList2";
}
/**
* 添加
*/
@RequestMapping(value = "/addAssets" ,method = RequestMethod.POST)
@ResponseBody
public String addAssets( @RequestBody Assets assets,HttpServletRequest request) {
try{
HttpSession session = request.getSession();
if(session.getAttribute("ad") == null){
session.setAttribute("msg", "对不起,请登录!");
return "login";
}
List<Assets> all = assetsService.getAll();
for(int i=0;i<all.size();i++){
if(all.get(i).getNo().equals(assets.getNo())){
return "202";
}
}
Manage manage = (Manage)session.getAttribute("ad");
assets.setMid(manage.getId());
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
assets.setCreateTime(sf.format(new Date()));
assetsService.addAssets(assets);
return "200";
}catch (Exception e){
e.printStackTrace();
return "201";
}
}
/**
* 导出excel
*/
@RequestMapping("/downExcel")
public void downExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{
HttpSession session = request.getSession();
String type = (String)session.getAttribute("type");
List<Assets> assetsList = new ArrayList<>();
if(type.equals("02")){
Manage manage = (Manage)session.getAttribute("ad");
Map mp = new HashMap();
mp.put("mid",manage.getId());
assetsList = assetsService.queryFilter(mp);
for(int i=0;i<assetsList.size();i++){
if(assetsList.get(i).getMid()!=null){
Manage manageById = manageService.findManageById(assetsList.get(i).getMid());
assetsList.get(i).setMname(manageById.getName());
}
if(assetsList.get(i).getStatus().equals("01")){
assetsList.get(i).setStatus("已申请");
}
if(assetsList.get(i).getStatus().equals("02")){
assetsList.get(i).setStatus("已同意");
}
if(assetsList.get(i).getStatus().equals("03")){
assetsList.get(i).setStatus("已拒绝");
}
}
}
String[] columnNames = { "ID","资产编号","资产型号","资产名称","单价", "生产厂商", "生产日期", "入库时间", "购买人", "购买人", "资产类型", "状态", "创建时间"};
String fileName = "资产信息表";
ExportExcelUtil exportExcelUtil = new ExportExcelUtil();
exportExcelUtil.mtyExcel(fileName, fileName, columnNames, assetsList, response, ExportExcelUtil.EXCEL_FILE_2003);
}
/**
* 删除
*/
@RequestMapping( "/deleteAssets")
@ResponseBody
public String deleteAssets(String id) {
int d = assetsService.deleteAssets(id);
return "AssetsList";
}
/**
* 修改
*/
@RequestMapping( "/updateAssets")
@ResponseBody
public String updateAssets(@RequestBody Assets assets) {
try{
List<Assets> all = assetsService.getAll();
for(int i=0;i<all.size();i++){
if(all.get(i).getNo().equals(assets.getNo()) && !all.get(i).getId().equals(assets.getId())){
return "202";
}
}
assetsService.updateAssets(assets);
return "200";
}catch (Exception e){
e.printStackTrace();
return "201";
}
}
/**
* 按照ID查询
*/
@RequestMapping( "/findAssetsById")
@ResponseBody
public Assets findAssetsById(String id,Model model,HttpServletRequest request) {
Assets assets= assetsService.findAssetsById(id);
return assets;
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~