R35-2 审批通知补结构化摘要

这个提交包含在:
2026-03-25 11:38:00 +08:00
父节点 a962f4b074
当前提交 6fba13573e
共修改 12 个文件,包含 1243 行新增和 266 行删除
+24
查看文件
@@ -42,6 +42,8 @@ const leaveListQuerySchema = z.object({
scope: z.enum(["own", "all"]).optional(),
page: z.coerce.number().int().min(1).optional(),
pageSize: z.coerce.number().int().min(1).max(100).optional(),
dateFrom: DATE_ONLY_SCHEMA.optional(),
dateTo: DATE_ONLY_SCHEMA.optional(),
});
const leaveBalanceQuerySchema = z.object({
@@ -107,11 +109,25 @@ function parseLeaveListQuery(query) {
throw buildValidationError(parsed.error.flatten());
}
const dateFrom = parsed.data.dateFrom ? new Date(`${parsed.data.dateFrom}T00:00:00.000Z`) : null;
const dateTo = parsed.data.dateTo ? new Date(`${parsed.data.dateTo}T00:00:00.000Z`) : null;
if (dateFrom && Number.isNaN(dateFrom.getTime())) {
throw buildValidationError({ dateFrom: "invalid" });
}
if (dateTo && Number.isNaN(dateTo.getTime())) {
throw buildValidationError({ dateTo: "invalid" });
}
if (dateFrom && dateTo && dateFrom > dateTo) {
throw buildValidationError({ dateTo: "must_be_after_dateFrom" });
}
return {
status: parsed.data.status,
scope: parsed.data.scope ?? "own",
page: parsed.data.page ?? 1,
pageSize: parsed.data.pageSize ?? 20,
dateFrom,
dateTo,
};
}
@@ -415,6 +431,14 @@ async function leaveRoutes(fastify) {
const where = {
...(query.status ? { status: query.status } : {}),
...(query.scope === "all" && canViewAll ? {} : { owner_id: request.employee.id }),
...(query.dateFrom || query.dateTo
? {
AND: [
...(query.dateFrom ? [{ end_date: { gte: query.dateFrom } }] : []),
...(query.dateTo ? [{ start_date: { lte: query.dateTo } }] : []),
],
}
: {}),
};
const [items, total] = await Promise.all([