- 博客(25)
- 资源 (4)
- 收藏
- 关注
原创 数智人事系统(十九):分片上传、秒传与断点续传
本文实现数智人事系统分片上传功能,通过 init、chunks、complete 三阶段协议支持秒传、断点续传与大文件上传。基于 MinIO 的 composeObject 实现零拷贝合并,结合 file_upload_session 与 file_upload_chunk 表管理会话状态与分片进度,确保幂等性与容错性。前端按 5MB 切片并校验哈希,有效提升上传效率与稳定性。
2026-11-02 09:12:36
142
原创 数智人事系统(十八):MinIO 对象存储与文件读写链路
本期将文件存储迁移至MinIO对象存储,通过S3协议实现高可用、可扩展的文件管理。应用启动时自动创建桶并校验配置,文件上传采用流式分片写入,下载时根据魔数判断是否需解压,并由服务端合并分片,避免内存溢出。文本类文件(如txt、json)经zstd压缩后存储,压缩结果覆盖原对象键。sys_docs表仅记录对象键、原始大小与实际占用大小,彻底脱离本地磁盘依赖,提升系统可靠性与可维护性。
2026-10-26 11:03:12
44
原创 17-加班核算与薪资构成
本期实现数智人事系统加班核算与薪资构成功能:通过部门配置决定加班计费类型、倍数及是否调休;员工加班记录按四时段计算时长,依日期判定类型(工作日、节假日、休息日),仅休息日且满8小时可转为调休;未转调休则按小时或天数计薪,结合基础工资、奖金、补贴等汇总月工资,并扣除考勤扣款、社保与公积金。加班数据独立于审批流程,直接由模块核算写入。
2026-10-21 00:29:06
158
原创 16-审批通过后的考勤写入与站内通知
请假审批通过后,系统通过 ManagerApproveListener 逐日写入考勤并扣减调休工时,仅在经理通过节点执行业务逻辑,确保流程控制与数据更新分离。考勤记录按工作日生成,调休按加班日期升序优先抵扣。站内通知由 LeaveNotifier 构造,经 NotificationService 落库并同步推送 SSE,实现提交、人事通过、终审三节点的精准通知。
2026-10-18 23:59:00
167
原创 数智人事系统(十五):基于Flowable流程引擎实现请假审批
本文基于Flowable流程引擎实现请假审批功能,通过BPMN定义文件配置两级审批流程(人事→经理),利用业务键(单据ID)关联流程实例与业务数据。独立部署流程引擎库,配置多数据源并启用自动建表。通过拾取、完成、撤销等API实现审批操作,结合条件表达式与执行监听器完成动态路由与业务联动,提升流程可维护性与灵活性。
2026-10-15 22:01:17
188
原创 数智人事系统(十四):请假额度配置与单据两层校验
本文设计数智人事系统请假模块的两张核心表:att_leave(部门假期额度配置)与att_staff_leave(请假单据),实现类型与状态枚举管理、提交前校验(部门上限、调休余额折算)、状态机流转及撤销机制。通过LeaveEnum统一假期类型,AuditStatusEnum控制审核流程,前端动态校验确保合规性,支持调休按工作日精准扣减,保障系统灵活性与业务准确性。
2026-10-15 12:46:40
566
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:07-认证双Token与httpOnly-Cookie
上一期理清了 84 张表的分工,本期进入认证。本系统的认证采用组合:一个 15 分钟的 Access Token 用于日常请求,一个 7 天的 Refresh Token 用于续期,两个 token 分别存放在不同 Path 的 Cookie 中。单 Token 存在一组难以兼顾的矛盾:有效期短则用户体验差(每 15 分钟需重新登录),有效期长则泄露风险大(被盗后可使用 7 天)。
2026-10-13 10:50:54
386
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:06-表结构设计与三库分工
本文解析数智人事系统84张表的三库分工与命名规范:基于数据生命周期,将表分置于MySQL(hrm、hrm_flowable)与PostgreSQL(hrm_kb)三库,实现业务、流程、知识库分离。表名前缀明确模块归属,如att_、per_等,提升可维护性;摒弃物理外键,改用应用层逻辑约束,适应逻辑删除与批量导入场景;仅保留两个联合唯一索引,分别防止员工重复打卡与知识库文档重复上传,兼顾数据一致性与系统灵活性。
2026-10-13 10:49:01
144
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:05-公共层统一响应与枚举约定
本期完成数智人事系统公共层三大核心建设:统一响应结构({code, message, data})、异常全局收口(三档处理:业务异常、权限异常、未知异常)及枚举一致性约定。所有接口返回标准化,前端仅需一套逻辑处理;异常通过 @ControllerAdvice 与 Security 过滤器链集中捕获,确保错误码精准透出;枚举在数据库存数字、接口返中文,提升可读性与维护性。通过 curl 验证,实现前后端协同的稳定契约。
2026-10-13 10:46:44
237
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:04-前端骨架与开发代理调通
本项目基于 Vue 2.6 + Element UI 搭建前端骨架,通过 .env 变量统一管理前后端地址,利用 devServer 代理实现跨域请求转发,解决 Cookie 携带问题。前端使用 Axios 统一请求,配置 withCredentials: true 自动携带 httpOnly Cookie,响应拦截器处理错误与静默刷新。接口按资源分文件管理,状态由五个 Vuex 模块(token、staff、menu、permission、tag)职责分离,持久化策略清晰。最终实现登录页验证码加载、账号密
2026-10-13 10:42:56
159
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:03-后端工程骨架与配置分层
本期基于Spring Boot 3.4.4搭建数智人事系统后端骨架,采用父POM与BOM统一管理依赖,避免版本冲突。通过spring.config.import实现配置分层,本地配置写入application.yml,敏感信息(如API密钥、JWT密钥)收敛至.env文件并加入gitignore。集成测试使用surefire与failsafe插件隔离单元与集成测试,确保开发效率与安全性。最终成功启动服务并验证Swagger接口连通性。
2026-10-13 10:40:51
188
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:02-环境一键起中间件
本文介绍数智人事系统本地环境搭建,通过一条 docker compose up -d 命令启动 MySQL、PostgreSQL(含 pgvector)、Redis 与 MinIO 四个中间件。采用 Docker 编排实现版本对齐、环境一致与快速重置,配置直接写入 yml,无需 .env。导入三库共 84 张表:业务主库(25 表)、Flowable 流程库(55 表)及知识库(4 表),分库设计避免耦合,利用 pgvector 实现向量检索。服务通过健康检查确保可用,环境即开即用。
2026-10-12 16:50:24
212
原创 基于Flowable 审批流 + RAG 知识库 + 智能问答的数字人事系统:01-项目介绍与技术选型
数智人事系统是一套前后端分离的人力资源管理平台,融合传统人事业务与生成式AI能力。系统覆盖组织架构、员工全生命周期管理、考勤审批、薪资社保等核心功能,并基于RAG技术实现智能问答,支持上下文感知的政策咨询。采用Spring Boot 3 + Flowable 8.0驱动请假审批流程,通过混合检索(向量+关键词)与大模型生成实现伪流式问答输出。技术架构上,多库分离、微服务化设计,结合MinIO、pgvector、Redis等组件,保障高可用与可扩展性。
2026-10-12 16:48:41
260
原创 数智人事系统:Flowable 审批流 + RAG 知识库 + 智能问答
数智人事是一款基于Spring Boot 3.4与Vue 2.6的现代化人力资源管理系统,深度融合Flowable工作流引擎、RAG企业知识库与智能问答。系统实现员工全生命周期管理、精细化考勤薪资核算及无感双Token鉴权,通过纯函数领域模型保障业务稳定性;结合PostgreSQL/pgvector向量库与大模型,打造政策制度“即问即答”的智能服务,显著提升人效与员工自主服务能力。
2022-05-21 22:58:15
6776
18
原创 使用Ajax完成注册和登录
简介完成用户的登录和注册,以及个人信息的查询,并使用Ajax向后端提交JSON格式的数据。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。而JSON是一种轻量级的数据交换格式, 易于人阅读和编写,同时也易于机器解析和生成。实现控制器@Autowired注解负责完成服务层成员变量的自动装配。@RequestBody注解负责将前端发送过来的JSON数据封装到用户对象之中,以方便后端获取数据。@ResponseBody注解负责给前端返回JSON数据对象。package com
2022-05-21 22:51:08
10064
原创 MyBatis-plus代码生成器
简介MyBatis-Plus在MyBatis的基础上进行了进一步的封装,提供了常用的crud方法,舍弃了Mapper.xml文件的配置的环节,开箱即用,大大提高了开发效率。而MyBatis-Plus代码生成器在此基础上,直接生成常用的代码文件,使开发者只专注于业务层。示例依赖因为MyBatis-Plus代码生成器默认使用Velocity模板引擎(可选模板引擎 Beetl 或 Freemarker),需要引入相关依赖。<dependency> <groupId>
2022-05-21 22:45:24
548
原创 FileUpload实现多文件上传与下载
FileUpload实现文件上传与下载简介1. FileUpload2. 准备工作代码1. 文件上传(UploadFile.java)2. 文件上传 (upload_file.jsp)3. 获取文件名列表 (ListFile.java)4. 文件下载 (DownloadFile.java)5. 文件下载 (download_file.jsp)结果演示1. 文件上传2. 文件下载简介1. FileUpload FileUpload 是 Apache commons下面的一个子项目,用来实现Java环境
2020-12-18 10:33:53
1182
1
原创 shell计算器
shell计算器if else类型计算器case in 类型计算器if else类型计算器1、在shell中并不支持计算操作,需要借助如expr之类的计算工具进行计算2、在shell脚本中,进行计算的expr语句需要放在反引号中#!/bin/bash#完成加减乘除的操作read -p '请输入第一个数字:' aread -p '请输入运算符:' bread -p '请输入第二个数字:' cif [ "$b" == '+' ] then echo "$
2020-10-02 21:01:39
1275
原创 vim在末行模式下使用:X对文件加密
Linux中关于使用:X对文件加密文件的保存并退出使用:X对文件加密文件的保存并退出使用:wq 时,无论文件的内容是否改变,都会对文件重新写入,并改变文件的修改时间使用:x时,当文件内容未被修改时,只是退出文件,文件的修改时间不会改变。当文件内容被修改时,保存文件并退出,文件的修改时间会改变使用:X对文件加密使用vim打开文件,并进入末行模式,输入命令:X,回车,输入两次密码回车,此时需要进入末行模式,使用:wq保存文件并退出时,加密才会生效。此处,对文件加密,默认是没有改变文件内
2020-09-11 12:07:26
1175
原创 音乐播放器android-1.0
音乐播放的基本功能都已实现1、概述2、功能2.1、登录1、概述本播放器是通过Service实现自定义的MusicService完成音乐播放器的基本功能,实现了登录注册,提示用户是否注册成功或登录成功,记住用户,本地音乐搜索,进度条拖动,自动播放下一首等功能。2、功能2.1、登录通过SQLiteOpenHelper实现自定义的MyHelper完成user表的创建,通过用户输入的密码和账号在数据库进行查询,判断用户是否存在,用户的密码是否输入错误,。...
2020-06-16 22:13:19
896
1
原创 Android-掷骰子
掷骰子------- 利用handler接受子线程的消息完成骰子点数的不断更替主界面START:开始游戏STOP:停止游戏RECOVER:重置色子到初始状态
2020-05-19 08:19:13
1932
2
原创 android简易用户信息管理系统
使用SQLiteOpenHelper实现自定义的MyHelper实现用户信息的增、删、查、改1 功能1.1 登录1.2 注册1.3 用户管理2 代码2.1 自定义的MyHelper2.2 主界面2.3 注册界面2.4 用户管理2.5 主界面布局2.6 注册界面布局2.7 用户管理界面布局2.8 自定义对话框布局希望大家能给我提出一些建议,欢迎多多交流。如果各位看官很满意,求赏一个????,不胜感激!...
2020-05-06 17:01:56
6757
17
原创 Android简易电话簿
记录登录次数通过SharedPreferences保存一个变量count记录登录次数,每当进入一次电话簿时,count加1并显示到屏幕上修改联系人信息删除联系人
2020-04-22 20:50:03
1659
2
原创 Android Studio新建项目时,Gradle加载失败
轻松解决新建Android项目时,Android Studio出现“Gradle sync failed”的问题方法一(调整gradle版本)方法二(在配置文件里,直接指定本地已下载的gradle)总结造成此类错误的绝大多数原因是项目所需的gradle版本与正在使用的gradle插件版本没有对应。因为gradle版本越高,兼容性越好,所以gradle的版本要尽可能升到最新版(如下图,左边代表g...
2020-04-16 16:58:56
3918
原创 android十大常用对话框
Android十大常用对话框最近老师叫我们整理android常用的对话框,我整理了十种对话框,用于分享交流,希望指正!1.将所有的对话框方法封装在DialogBox类中package com.example.homeworkfour;import android.app.Activity;import android.app.AlertDialog;import android.app...
2020-04-07 20:42:40
3608
一个简单的Android用户管理
2020-07-03
android音乐播放器
2020-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅