1 Star 0 Fork 21

JeffLin/报工系统

forked from mmdz/报工系统 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

报工系统


1、背景

创作背景:公司需要一个记录人员日常工时情况;

开发背景:该系统以 ruoyi 为基础框架做出的二次开发,主要是以人员报工填报为主(以项目维度和非项目的部门维度报工),最终输出不同维度的报表;

Gitee:https://gitee.com/mmdz/Work-Vue


2、内置功能(ruoyi)

?>Ruoyi 的创作文档与项目说明 http://doc.ruoyi.vip/ruoyi-vue/

  1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  3. 岗位管理:配置系统用户所属担任职务。
  4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  7. 参数管理:对系统动态配置常用参数。
  8. 通知公告:系统通知公告信息发布维护。
  9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  10. 登录日志:系统登录日志记录查询包含登录异常。
  11. 在线用户:当前系统中活跃用户状态监控。
  12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
  14. 系统接口:根据业务代码自动生成相关的api接口文档。
  15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  16. 缓存监控:对系统的缓存信息查询,命令统计等。
  17. 在线构建器:拖动表单元素生成相应的HTML代码。
  18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。

3、项目介绍

?>后端结构

com.ruoyi     
├── common            // 工具类
│       └── annotation                    // 自定义注解
│       └── config                        // 全局配置
│       └── constant                      // 通用常量
│       └── core                          // 核心控制
│       └── enums                         // 通用枚举
│       └── exception                     // 通用异常
│       └── filter                        // 过滤器处理
│       └── utils                         // 通用类处理
├── framework         // 框架核心
│       └── aspectj                       // 注解实现
│       └── config                        // 系统配置
│       └── datasource                    // 数据权限
│       └── interceptor                   // 拦截器
│       └── manager                       // 异步处理
│       └── security                      // 权限控制
│       └── web                           // 前端控制
├── ruoyi-generator   // 代码生成(可移除)
├── ruoyi-quartz      // 定时任务(可移除)
├── ruoyi-system      // 系统代码
├── ruoyi-admin       // 后台服务
├── ruoyi-work        // 报工模块
├── ruoyi-recruit     // 招聘模块

?>前端结构

├── build                      // 构建相关  
├── bin                        // 执行脚本
├── public                     // 公共文件
│   ├── favicon.ico            // favicon图标
│   └── index.html             // html模板
│   └── robots.txt             // 反爬虫
├── src                        // 源代码
│   ├── api                    // 所有请求
│   ├── assets                 // 主题 字体等静态资源
│   ├── components             // 全局公用组件
│   ├── directive              // 全局指令
│   ├── layout                 // 布局
│   ├── router                 // 路由
│   ├── store                  // 全局 store管理
│   ├── utils                  // 全局公用方法
│   ├── views                  // view
│   ├── App.vue                // 入口页面
│   ├── main.js                // 入口 加载组件 初始化等
│   ├── permission.js          // 权限管理
│   └── settings.js            // 系统配置
├── .editorconfig              // 编码格式
├── .env.development           // 开发环境配置
├── .env.production            // 生产环境配置
├── .env.staging               // 测试环境配置
├── .eslintignore              // 忽略语法检查
├── .eslintrc.js               // eslint 配置项
├── .gitignore                 // git 忽略项
├── babel.config.js            // babel.config.js
├── package.json               // package.json
└── vue.config.js              // vue.config.js

4、二次开发功能

4.1 报工管理

  1. 用户管理:集成企业微信用户列表,可一键同步用户基础信息等
  2. 部门管理:集成企业微信部门列表,可一键同步
  3. 开发阶段:项目开发阶段(项目的阶段划分)
  4. 事务种类:包含项目和项目外的事务类型划分
  5. 人员配置:作用于确定需要提报的人员,方便用以统计项目工时和项目成本
  6. 项目配置:定位具体项目上的报工以及非项目的部门级别报工(集成ERP的项目代码)
  7. 人力成本:员工成本预算(结合员工职级职等、周薪资、月薪资)
  8. 工时填报:人员工时填报(集成企业微信,可在企业微信自定义应用中填报)
  9. 申报回退:处理项目经理回退的单据(需要员工和项目经理自行商议工时合理性)
  10. 填报记录:个人的填报记录和自己参与的项目(以项目负责人审核通过后的有效公式为主)
  11. 我的工时:包含我的工时,我的项目累计工时报表(以项目负责人审核通过后的有效公式为主)
  12. 工时审核:项目经理对自己项目维度人员工时的审核与回退(集成企业微信,可在企业微信自定义应用中审核)
  13. 提报查询:查看每个填报人员的每天的填报情况,作用于推进报工力度,和查询统计人员填报与审核情况
  14. 数据清除/还原:规范员工填报行为,防止不小心填写错误,汇总上级审核错误,给予已经审核过的错误数据进行7天时间内的清除(时间可自定义),以及数据还原
  15. 总体统计:统计所有人每天的填报情况,已每天的填报、未填报、请假等维度进行统计
  16. 提报功能预警:每天在企业微信上提醒人员提报、审核、处理回退单就
  17. 报表(人员工时清单)
  18. 报表(项目工时清单):以项目和阶段维度,统计项目每个阶段的工时合计(可动态统计阶段数据,支持动态导出)
  19. 报表(部门人力成本统计表):以部门为维度;统计部门人员的人力成本费用(可动态统计项目数据,支持动态导出)
  20. 报表(项目人力成本统计表):以项目代号为维度;统计项目人员的人力成本费用
  21. 报表(人力成本明细)
  22. 报表(人力成本总汇)
  23. 报表(人力成本核算)

4.2 报工功能演示

4.2.1 报工配置

?>报工配置:项目、人员、成本等基础配置情况

4.2.2 任务查询

?>任务查询:人员工时填报、填报回退处理、人员工时审核、填报情况查询等功能,以填报工时和推广填报进度为主

4.2.3 统计报表

?>统计报表: 汇总合计、部门合计、日期合计、项目合计、阶段合计等报表呈现方式
主要作用: 1) 提供数据明细,便于各类目的的加工处理; | 2) 各部门的人力负荷饱和度 ; | 3) 所有项目工作量 | 4) 从项目维度看人力工时投入 ...

4.2.4 企业微信


4.3 招聘管理

!>提示:需要一个招聘系统,但是又不想走流程(太繁琐),只能做一些简单的功能(顺便放在报工里)

招聘管理目前只有人才信息储备,人才资料上传、下载、预览,面试结果追踪等功能。

后续可以做面试岗位分析等功能报表

注意:文件在线预览使用的是 kkfileview 插件,kkfileview官方文档


7、部署系统

!>提示:因为本项目是前后端完全分离的,所以需要前后端都单独部署好,才能进行访问。

服务器(有JDK环境)中需要准备 ngnix、redis、mysql、kkfileview(在线文件预览)

7.1 Nginx配置

# ngnix启动
切换路径: cd /usr/local/nginx/sbin/
启动命令: ./nginx

# ngnix重启
切换路径: cd /usr/local/nginx/sbin/
启动命令: ./nginx -s reload

# ngnix进程
ps -ef|grep nginx
# 杀死进程
kill -QUIT 3905
# 快速停止
kill -TERM 3905
# 或者
kill -INT 3905
# 强制停止
pkill -9 nginx

7.2 Redis配置

# Redis启动
切换路径: cd /usr/local/bin
启动命令: redis-server redis.conf

# 关闭Redis服务 
shutdown

# 查看redis进程
ps -ef|grep redis

7.3 kkfileview配置

kkFileView v4.0.0 安装、启动教程(在线文件预览)

  1. 安装 LibreOffice7.1

    # 安装 LibreOffice7.1
    
    ### 原因:https://gitee.com/kekingcn/file-online-preview/releases 上说,v4.0.0对应LibreOffice7.1(v4.0.0版本发布,LibreOffice7.1底层,兼容性更强,预览效果更好)
    
    ### 步骤
    wget https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz
    
    tar -zxvf LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz
    
    yum install -y LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS/*.rpm
    
    /opt/libreoffice7.1/program/soffice --version
    
    ### 会显示版本号↓
    LibreOffice 7.1.4.2 a529a4fab45b75fefc5b6226684193eb000654f6
  2. 安装 kkFileView(官网下载)

    # 安装 kkFileView
    wget https://kkfileview.keking.cn/kkFileView-4.0.0.tar.gz
    
    tar -zxvf kkFileView-4.0.0.tar.gz
    
    ### 解压出一份目录叫 kkFileView-4.0.0
    ├── bin            // 目录
    │       └──install.sh	安装脚本,startup.sh会调的,但是有问题,安不了Libreoffice
    │       └──kkFileView-4.0.0.jar	主程序,SpringBoot的fat jar
    │       └──showlog.sh	这个就是打开一下log目录的kkFileView.log日志
    │       └──shutdown.sh	用这个停止,但是每次只停一个实例,不如自己杀
    │       └──startup.sh	用这个启动
    ├── config            // 目录
    │       └──application.properties	配置文件,参考官网配置说明,也可以直接打开看,都有注释
    ├── file            // 启动后出现,文件资源路径(默认为打包根路径下的file目录下)
    ├── log            // 目录
    │       └──kkFileView.log	程序日志
  3. 修改配置

    # 修改配置
    vi kkFileView-4.0.0/config/application.properties
    
    ### 把office.home改成自己安装的libreoffice7.1
    office.home = /opt/libreoffice7.1
    
    ### 如果你本来就有其他版本,可以配了试试,比如
    office.home = /opt/libreoffice7.3
    
    ### LibreOffice端口想改的话改这个
    ## office转换服务的进程数,默认开启两个进程
    office.plugin.server.ports = 2001,2002
  4. 启动

    # 注意!启动前需要杀掉已启动的libreoffice,下面提供一些指令
    
    ### 查出所有office进程
    ps -ef|grep office
    kill -9 {pid}
    
    ### 进入kkFileView-4.0.0/config/目录,执行启动脚本
    sh startup.sh
    
    ### 查看日志
    sh showlog.sh
    
    ### 日志不报很大一段错才是成功,并且会告诉你预览地址
    kkFileView 服务启动完成,耗时:3.951797266s,演示页请访问: http://127.0.0.1:8012
  5. 问题

    # 启动起不来,报
    Caused by: java.lang.IllegalStateException: process with acceptString 'socket,host=127.0.0.1,port=2001' started but its pid could not be found
    at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:90) ~[office-plugin-4.0.0.jar!/:na]
    at org.artofsolving.jodconverter.office.OfficeProcess.start(OfficeProcess.java:54) ~[office-plugin-4.0.0.jar!/:na]
    at org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:113) ~[office-plugin-4.0.0.jar!/:na]
    ... 7 common frames omitted
    
    ### 把你连接工具的X11功能关掉

7.4 后端jar部署方式

## 在ruoyi项目的bin目录下执行package.bat打包Web工程,生成war/jar包文件。然后会在项目下生成target文件夹包含war或jar

## 1、jar部署方式
执行脚本:ruoyi/bin/package.bat (target文件夹包含jar)

## 2、war部署方式
ruoyi/pom.xml中的packaging修改为war,放入tomcat服务器webapps

7.5 前端部署

# 打包正式环境
npm run build:prod

# 打包预发布环境
npm run build:stage

# 构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。
# 通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。

The MIT License (MIT) Copyright (c) 2018 RuoYi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

报工系统:员工报工、工时统计 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/iiiiiir/Work-Vue.git
git@gitee.com:iiiiiir/Work-Vue.git
iiiiiir
Work-Vue
报工系统
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891