基于ssm+vue的OA办公系统源码和论文

本文介绍了一种基于HTML5的OA办公系统,使用SSM框架和MySQL数据库,涵盖了管理员和员工的功能,如考勤打卡管理。详述了开发过程和关键接口,如考勤提醒功能。

基于ssm+vue的OA办公系统源码和论文235

 开发工具:idea 或eclipse
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

基于HTML5的OA办公系统

摘要

随着信息技术在管理上越来越深入而广泛的应用,作为一个一般的企业都开始注重与自己的信息展示平台,实现基于HTML5的OA办公系统在技术上已成熟。本文介绍了基于HTML5的OA办公系统的开发全过程。通过分析企业对于博客网站的需求,创建了一个计算机管理基于HTML5的OA办公系统的方案。文章介绍了基于HTML5的OA办公系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。

本基于HTML5的OA办公系统管理员和员工,员工可以注册。管理员功能有个人中心,员工管理,部门信息管理,岗位信息管理,公告通知管理,人事档案管理,考勤打卡管理,考勤记录管理,我的邮件过来,新建工作模板管理,待办工作管理。员工功能有个人中心,公告通知管理,人事档案管理,考勤打卡管理,考勤记录管理,我的邮件过来,新建工作模板管理,待办工作管理,因而具有一定的实用性。

本站是一个B/S模式系统,采用Java的SSM框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于HTML5的OA办公系统管理工作系统化、规范化。

关键词:基于HTML5的OA办公系统;SSM框架;MYSQL数据库

Abstract

With the more and more in-depth and extensive application of information technology in management, as a general enterprise, it has begun to focus on its own information display platform, and the realization of an OA office system based on HTML5 is technically mature. This article introduces the whole development process of OA office system based on HTML5. By analyzing the needs of enterprises for blog sites, a computer management scheme based on HTML5 OA office system was created. The article introduces the system analysis part of OA office system based on HTML5, including feasibility analysis, etc. The system design part mainly introduces the system function design and database design.

This HTML5-based OA office system administrators and employees, employees can register. The administrator functions include personal center, employee management, department information management, job information management, announcement notification management, personnel file management, attendance check-in management, attendance record management, my email, new job template management, and to-do work management. Employee functions include personal center, announcement notification management, personnel file management, attendance check-in management, attendance record management, my email is over, new job template management, to-do job management, so it has a certain practicability.

This site is a B/S model system, using Java's SSM framework as the development technology, and MYSQL database design and development, which fully guarantees the stability of the system. The system has the characteristics of clear interface, simple operation and complete functions, which makes the management of OA office system based on HTML5 systematized and standardized.

Keywords: OA office system based on HTML5; SSM framework; MYSQL database

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.KaoqindakaEntity;
import com.entity.view.KaoqindakaView;

import com.service.KaoqindakaService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 考勤打卡
 * 后端接口
 * @author 
 * @email 
 * @date 2021-04-16 19:04:01
 */
@RestController
@RequestMapping("/kaoqindaka")
public class KaoqindakaController {
    @Autowired
    private KaoqindakaService kaoqindakaService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,KaoqindakaEntity kaoqindaka, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			kaoqindaka.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<KaoqindakaEntity> ew = new EntityWrapper<KaoqindakaEntity>();
		PageUtils page = kaoqindakaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kaoqindaka), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,KaoqindakaEntity kaoqindaka, HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			kaoqindaka.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<KaoqindakaEntity> ew = new EntityWrapper<KaoqindakaEntity>();
		PageUtils page = kaoqindakaService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kaoqindaka), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( KaoqindakaEntity kaoqindaka){
       	EntityWrapper<KaoqindakaEntity> ew = new EntityWrapper<KaoqindakaEntity>();
      	ew.allEq(MPUtil.allEQMapPre( kaoqindaka, "kaoqindaka")); 
        return R.ok().put("data", kaoqindakaService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(KaoqindakaEntity kaoqindaka){
        EntityWrapper< KaoqindakaEntity> ew = new EntityWrapper< KaoqindakaEntity>();
 		ew.allEq(MPUtil.allEQMapPre( kaoqindaka, "kaoqindaka")); 
		KaoqindakaView kaoqindakaView =  kaoqindakaService.selectView(ew);
		return R.ok("查询考勤打卡成功").put("data", kaoqindakaView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        KaoqindakaEntity kaoqindaka = kaoqindakaService.selectById(id);
        return R.ok().put("data", kaoqindaka);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        KaoqindakaEntity kaoqindaka = kaoqindakaService.selectById(id);
        return R.ok().put("data", kaoqindaka);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody KaoqindakaEntity kaoqindaka, HttpServletRequest request){
    	kaoqindaka.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(kaoqindaka);

        kaoqindakaService.insert(kaoqindaka);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody KaoqindakaEntity kaoqindaka, HttpServletRequest request){
    	kaoqindaka.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(kaoqindaka);
    	kaoqindaka.setUserid((Long)request.getSession().getAttribute("userId"));

        kaoqindakaService.insert(kaoqindaka);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody KaoqindakaEntity kaoqindaka, HttpServletRequest request){
        //ValidatorUtils.validateEntity(kaoqindaka);
        kaoqindakaService.updateById(kaoqindaka);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        kaoqindakaService.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<KaoqindakaEntity> wrapper = new EntityWrapper<KaoqindakaEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username"));
		}

		int count = kaoqindakaService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

 

除了具有传统OA的邮件、工作流、文档等功能外,还引进了项目管理知识管理的思想,更加注重工作任务的分解、协同监督;知识的积累、沉淀分享,多条件跳转的分支流更为特色,有效为企业构筑协同工作平台 我的任务:今天未完成任务列表 我的邮件:最新收到的邮件列表 我的文档:最新归档的项目文档 我的审批:待我审批的项目文档 考勤:成员上下班的考勤 全文检索:对系统中项目文档的全文检索,并有权限过滤机制 系统设置各类接点:系统的权限中心配置中心 人员管理:系统账户;由系统管理员添加、修改;可以定义新增、离职、调职还可自定义查询 职位管理:组织内的职位结构树,是权限的基本结构 角色管理:权力的集合,可以自由定义。系统默认的有组长、组员系统成员。 修改口令:成员修改自己的口令(系统管理员在成员模块中修改口令) 考勤查询:查询包括自己在内的考勤纪录,或系统指定的成员如人事助理可查全部成员 考勤设置:考勤日考勤时间的设置 公司论坛:包括公司公告各版块BBS;有BBS管理权可以添加桌面公告版块公告,版主可以自由添加版块版块公告。BBS的功能同常见的,但无须登录; 客户管理(客户接触点的管理) 我的客户:显示由我负责的客户信息,并添加接触纪录(电话、拜访等) 查询、统计:客户资料的统计分析,销售人员的业绩管理 我的联系人 公司内部联系人:系统成员列表中获得 公司外部联系人:等同于公司客户的联系人 自定义联系人:管理私人的联系人 我的任务:(含任务协同、任务指派、任务查询) 待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不执行的指派任务 订阅/查询任务:显示我不参加的任务,查询他人的任务 我的邮件 收件箱:我收到的邮件,全部显示 发件箱 :我曾经发送的邮件,全部显示 废件箱 :我删除的收到过的的邮件 撰写新邮件:可以有项目属性,并可归档 公文流转 待批文档:流程走到我这里的文档,等待我处理 我的申请:我发起的流转申请 已批文档:从我这里过的,被我处理过的文档 流程管理:由我创建管理的流程,需要制定环节绑定角色 拟稿箱:我可以发起的文档流转的入口,凡流程的第一环节有我的,都显示;并可以对流程有条件查询 我的文档 已归档:我可以查看的已归档项目文档 待审批:正等待我审批的项目文档;审批权包括角色指定,或是项目组长。 公司项目:项目树的管理,每人看到自己参与的项目内容或权限赋予的内容 投递文档:对该项目投递相关的文档 撰写邮件:对该项目组成员发送邮件 项目管理:项目的创建、删除、修改、移动 成员管理:项目成员的添加、删除;组长的标记;组员权限的变更 项目订阅:显示我关心的项目内容(本人并不是项目成员,但有权查看) 目录管理:创建项目文档库,并有严格权限限制,文档目录可扩展 短信管理: 站内短信:系统内的消息机制 站外手机短讯:发送多个附加手机号码 USB_Key 设置:对硬件加密的设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿毕业分享网

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值