diff --git a/backend/src/routes/payroll.routes.ts b/backend/src/routes/payroll.routes.ts index 49f8799..1a24138 100644 --- a/backend/src/routes/payroll.routes.ts +++ b/backend/src/routes/payroll.routes.ts @@ -596,8 +596,8 @@ router.post('/tax-preview', async (req: AuthRequest, res: Response, next: NextFu ]) const emp = employee || { socialInsBase: baseSalary, housingFundBase: baseSalary } - const socialBase = emp.socialInsBase || baseSalary - const housingBase = emp.housingFundBase || baseSalary + const socialBase = emp.socialInsBase != null ? emp.socialInsBase : baseSalary + const housingBase = emp.housingFundBase != null ? emp.housingFundBase : baseSalary // 计算社保公积金 let socialEmp = 0, housingEmp = 0 diff --git a/backend/src/services/payroll.service.ts b/backend/src/services/payroll.service.ts index a1c384c..698359f 100644 --- a/backend/src/services/payroll.service.ts +++ b/backend/src/services/payroll.service.ts @@ -233,9 +233,9 @@ export async function calcBatchEntry( }) } - // 社保基数:优先用员工核定基数,否则用基本工资 - const socialBase = employee.socialInsBase || inputs.baseSalary - const housingBase = employee.housingFundBase || inputs.baseSalary + // 社保基数:优先用员工核定基数(含0,劳务协议人员基数为0不交社保),未设置时回退到基本工资 + const socialBase = employee.socialInsBase != null ? employee.socialInsBase : inputs.baseSalary + const housingBase = employee.housingFundBase != null ? employee.housingFundBase : inputs.baseSalary let socialEmp = 0, socialOrg = 0, housingEmp = 0, housingOrg = 0 @@ -689,7 +689,7 @@ export async function prePayrollCheck(orgId: string, batchId: string): Promise

socialConfig.baseMax) { checks.push({ code: 'SOCIAL_BASE_OUT_OF_RANGE', @@ -707,7 +707,7 @@ export async function prePayrollCheck(orgId: string, batchId: string): Promise

housingConfig.baseMax) { checks.push({ code: 'HOUSING_BASE_OUT_OF_RANGE',