ssm+vue小型企业办公自动化系统源码和论文PPT

这篇具有很好参考价值的文章主要介绍了ssm+vue小型企业办公自动化系统源码和论文PPT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ssm+vue小型企业办公自动化系统源码和论文PPT013

开发工具:idea 

 数据库mysql5.7+(mysql5.7最佳)

 数据库链接工具:navcat,小海豚等

开发技术:java  ssm tomcat8.5

摘  要

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用小型企业办公自动化系统可以有效管理,使信息管理能够更加科学和规范。

小型企业办公自动化系统在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员管理部门经理,管理总经理,管理员工和员工留言以及员工工资,管理内部邮件,管理审批流程,管理离职申请。部门经理给员工发放工资,审核并回复员工留言,管理员工工资,审核员工的离职申请信息,查询和下载内部邮件以及审批流程。总经理查询下载内部邮件和审批流程,审核员工离职申请,查询员工工资,查询员工和部门经理。员工发布留言,发布内部邮件,发布离职申请,查询通知公告和审批流程,查看员工本人工资。

总之,小型企业办公自动化系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。

关键词:小型企业办公自动化系统;Java语言;Mysql

ssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascript

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.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.ChengshitongjiEntity;
import com.entity.view.ChengshitongjiView;

import com.service.ChengshitongjiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 城市统计
 * 后端接口
 * @author 
 * @email 
 * @date 2024-01-14 16:14:50
 */
@RestController
@RequestMapping("/chengshitongji")
public class ChengshitongjiController {
    @Autowired
    private ChengshitongjiService chengshitongjiService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(ChengshitongjiEntity chengshitongji){
        EntityWrapper< ChengshitongjiEntity> ew = new EntityWrapper< ChengshitongjiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( chengshitongji, "chengshitongji")); 
		ChengshitongjiView chengshitongjiView =  chengshitongjiService.selectView(ew);
		return R.ok("查询城市统计成功").put("data", chengshitongjiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        ChengshitongjiEntity chengshitongji = chengshitongjiService.selectById(id);
        return R.ok().put("data", chengshitongji);
    }

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



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

        chengshitongjiService.insert(chengshitongji);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody ChengshitongjiEntity chengshitongji, HttpServletRequest request){
    	chengshitongji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(chengshitongji);

        chengshitongjiService.insert(chengshitongji);
        return R.ok();
    }

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        chengshitongjiService.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<ChengshitongjiEntity> wrapper = new EntityWrapper<ChengshitongjiEntity>();
		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("xuesheng")) {
			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
		}

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


}

 ssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascriptssm+vue小型企业办公自动化系统源码和论文PPT,vue.js,前端,javascript文章来源地址https://www.toymoban.com/news/detail-652524.html

到了这里,关于ssm+vue小型企业办公自动化系统源码和论文PPT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python实现办公自动化

    目录 一 python办公自动化所需类库 二 python操作excel文件 三 python自动发送邮件 四 python操作word文件 五 python操作PPT文件 一 python办公自动化所需类库 python操作excel、word、ppt所需库如下, 二 python操作excel文件 三 python自动发送邮件 四 python操作word文件 五 python操作PPT文件

    2024年02月05日
    浏览(50)
  • python--自动化办公(Word)

    python自动化办公之—Word python-docx库

    2024年02月04日
    浏览(55)
  • Python&Excel办公自动化

    操作工作簿 01 新建一个excel工作簿 02 批量新建多个工作簿 03 打开已有的工作簿 04 打开文件夹下的所有工作簿 05 重命名多个工作簿 06 批量修改工作簿格式 07 拆分一个工作簿变成多个新工作簿 08 将多个工作簿合并为一个工作簿 09 按照扩展名分类工作簿 10 按照日期分类工作簿

    2024年02月08日
    浏览(53)
  • Python办公自动化 – 自动化文本翻译和Oracle数据库操作

    以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动化 – 对Excel文档和数据库的操作运用、设置计划任务 Python办公自动化 – 对

    2024年01月17日
    浏览(74)
  • Python办公自动化 – 操作NoSQL数据库和自动化图像识别

    以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动化 – 对Excel文档和数据库的操作运用、设置计划任务 Python办公自动化 – 对

    2024年02月02日
    浏览(58)
  • python自动化办公--文件整理脚本详解

    今天讲解文件整理脚本的实现过程。这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件。需求如下: 需求内容:给定一个打算整理的文件夹目录,这个脚本可以将该目录下的所有文件都揪出来,并且根据后缀名归类到不同的文件夹里。 python能力:使用python的内

    2024年02月10日
    浏览(68)
  • Python自动化办公之PDF拆分

    今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 需要从 PDF 中取出几页并将其保存为新的 PDF,为了后期使用方便,这个工具需要做成傻瓜式的带有 GUI 页面的形式 选择

    2024年02月02日
    浏览(59)
  • Python办公自动化之Word文档自动化:全网最全,看这一篇就够了

    目录 一、环境安装 1、升级pip 2、python-docx 3、win32com 4、mailmerge 5、matplotlib 二、Python-docx 新建文档 三、Python-docx 编辑已存在文档 四、win32com 将 doc 转为 docx 五、win32com 操作 word 1、打开新的word文档并添加内容 2、打开已存在word文档并添加内容 3、转换word为pdf 六、Python-docx 操作

    2024年02月01日
    浏览(61)
  • Word、Excel、PPT题库——“办公自动化”

    小雅兰期末加油冲冲冲!!! 1. 【单选题】下列文件扩展名,不属于Word模板文件的是( A )。 A. .DOCX B. .DOTM C. .DOTX D. .DOT 本题的考查点是word基本知识的了解。     .DOCX:word文档。     .DOTM:启用宏的word模板。     .DOTX:word模板。     .DOT:word 97-2003模板。     故本题答案为

    2024年02月07日
    浏览(71)
  • Excel自动化办公——Openpyxl的基本使用

    个人感觉,相比Pandas,openpyxl对Excel的操作更为细致,Pandas则更适用于统计计算; 01 基本环境 02 Excel数据读取操作 03 案例 04 向Excel写入数据 05 表数据定向修改 06 单元格样式制定 07 单元格边框样式制定 08 单元格对其方式 09 筛选器 10 公式操作 11 设置行高、列宽 12 单元格拆分

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包