diff --git a/backend/src/routes/payroll2.routes.ts b/backend/src/routes/payroll2.routes.ts index fa9bd2f..9821d40 100644 --- a/backend/src/routes/payroll2.routes.ts +++ b/backend/src/routes/payroll2.routes.ts @@ -358,12 +358,15 @@ router.post('/batches', async (req: AuthRequest, res: Response, next: NextFuncti // 试用期且 probationSalary > 0 → 用试用期工资;否则用转正工资 const batchMonthEnd = new Date(`${month}-28T23:59:59`) // 月末近似 const latestContract = emp.contracts?.[0] - if (isInProbation(latestContract, batchMonthEnd) && latestContract.probationSalary > 0) { + const inProbation = isInProbation(latestContract, batchMonthEnd) + if (inProbation && latestContract.probationSalary > 0) { baseSalary = latestContract.probationSalary + } else if (prevPayslip) { + // 非试用期:优先用上月工资条的基本工资(保持薪资连续性) + baseSalary = prevPayslip.baseSalary } else if (emp.monthlySalary) { try { baseSalary = Number(decrypt(emp.monthlySalary)) || 0 } catch { baseSalary = Number(emp.monthlySalary) || 0 } } - if (prevPayslip) baseSalary = prevPayslip.baseSalary overtimePay = overtime?.totalPay || 0 allowance = prevPayslip?.allowance || 0 deduction = prevPayslip?.deduction || 0