feat: 20260809 系统优化 - 全部28项问题修复(P0×6+P1×16+P2×6)
P0: 福利批量参保/离职证明下载防乱码/考勤模板合并Sheet/补卡修改/附件在线查看删除 P1: 分页pageSize修复/离职导出筛选/撤回删除草稿/加班费自动计算/考勤加班汇总/证据链异常详情/制度催办/模板导入Word/社保封顶保底/校验字段提示/职务字段/社保费用明细/弹窗防误关/身份证查重/证明员工下拉/培训批量 P2: 离职流程去重/社保基数覆盖输入/薪税入口改名/添加员工引导/绩效模板清理
This commit is contained in:
@@ -3,6 +3,7 @@ import { authMiddleware, AuthRequest } from '../middleware/auth'
|
||||
import { auditLog } from '../middleware/auditLog'
|
||||
import { createEvidence } from '../services/evidence.service'
|
||||
import prisma from '../lib/prisma'
|
||||
import { sha256 } from '../lib/crypto'
|
||||
import {
|
||||
createEmployeeSchema,
|
||||
updateEmployeeSchema,
|
||||
@@ -97,6 +98,24 @@ router.get('/:id', authMiddleware, async (req: AuthRequest, res, next) => {
|
||||
}
|
||||
})
|
||||
|
||||
// 身份证查重
|
||||
router.get('/check-id-card', authMiddleware, async (req: AuthRequest, res, next) => {
|
||||
try {
|
||||
const idCard = req.query.idCard as string
|
||||
if (!idCard || idCard.length < 18) {
|
||||
return res.json({ success: true, data: { exists: false } })
|
||||
}
|
||||
const hash = sha256(idCard)
|
||||
const employee = await prisma.employee.findFirst({
|
||||
where: { orgId: req.user!.orgId, idCardHash: hash },
|
||||
select: { id: true, name: true, department: true, status: true },
|
||||
})
|
||||
res.json({ success: true, data: { exists: !!employee, employee } })
|
||||
} catch (err) {
|
||||
next(err)
|
||||
}
|
||||
})
|
||||
|
||||
router.post('/', authMiddleware, async (req: AuthRequest, res, next) => {
|
||||
try {
|
||||
const data = createEmployeeSchema.parse(req.body)
|
||||
|
||||
Reference in New Issue
Block a user