基于微信小程序的企业职工薪资查询系统小程序
开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 小程序框架:uniapp 小程序开发软件:HBuilder X
一、前言介绍
二、系统总体结构设计
一个好的设计不止是功能完整,操作流畅,还要符合用户的审美和界面的友好。在进入正式系统实施前,不可缺少的步骤为系统的总体结构设计,本系统为实用性的系统,所以开发的功能都是针对工资信息相关的。本系统的结构可以分为管理员界面和员工功能界面。本系统的总体结构图如下图
三、小程序端
3.1首页
首页界面是最直接的展示,用户可以对系统进行最直接的了解。在本功能界面里可以看到背景图片、功能导航栏以及时间、当前用户等。首页界面的运行效果界面如下图
3.2我的功能实现界面
在我的界面里可以查询工资信息、工作安排信息、考勤信息、我发布的帖子和发布帖子。我的功能实现界面如下图
3.3工资信息界面
四、管理员功能模块
4.1登录功能模块的实现
登录功能包括员工登录和管理员登录,在登录界面设计中包括用户名和密码的检验。用户名和密码的检验过程由数据库自动完成,此过程需要1秒左右。首先由用户填写账号和密码,然后点击登录系统,数据库自行对用户名和密码进行对比,所填写数据正确方能进行登录,所填写数据错误则需要返回登录界面重新登录。用户登录界面的设计运行界面效果如下图
4.2工作安排管理信息模块实现
工作安排信息是工资的重要组成部分,管理员可以添加工作安排信息,员工可以查询工作安排信息,工作安排管理信息功能的界面实现效果如下图
4.3 员工信息管理功能的实现
员工信息管理功能分为管理员管理员工信息和员工自己管理自己的信息两种,管理员可以看到员工的各项基本信息,可以删除员工的基本信息。添加员工信息功能的界面实现效果如下图
4.4工资信息管理功能的实现
系统里展示的工资信息都是由管理员在系统进行添加和维护的,管理员可以上新工资信息,也可以修改工资信息,当工资信息被淘汰时也可以直接进行删除,工资信息管理功能的界面实现效果如下图
4.5部门管理功能的界面设计实现
部门信息功能为员工查询管理员添加管理,管理员可以根据部门的名称进行查询搜素。部门管理信息功能的界面实现效果如下图
4.6考勤功能的界面设计
考勤信息也是由管理员负责管理,员工可以查看考勤信息,管理员添加考勤信息的实现界面如下图
五、部分核心代码
5.1登录系统主要代码
/** * 登录 */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username)); if(user==null || !user.getMima().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(user.getId(), username,"yonghu", "用户" ); return R.ok().put("token", token); }
5.2上传文件关键代码
@RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { if (file.isEmpty()) { throw new EIException("上传文件不能为空"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } String fileName = new Date().getTime()+"."+fileExt; File dest = new File(upload.getAbsolutePath()+"/"+fileName); file.transferTo(dest); /** * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开 * 请将以下的"D:\springbootq33sd\src\main\resources\static\upload"替换成你本地项目的upload路径, * 并且项目路径不能存在中文、空格等特殊字符 */ // FileUtils.copyFile(dest, new File("D:\springbootq33sd\src\main\resources\static\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/ if(StringUtils.isNotBlank(type) && type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); }