fix(c1): elder 建档日期字段转 Date 落库(修复 50000)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0cbdb7f825
commit
a949acbc3b
@ -132,7 +132,7 @@ describe('ElderService', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('create 待遇有效期覆盖今天 → treatStatus = active,且出生日期由身份证带出', async () => {
|
it('create 待遇有效期覆盖今天 → treatStatus = active,且出生日期由身份证带出为 Date', async () => {
|
||||||
const { service, elderCreate } = makeService();
|
const { service, elderCreate } = makeService();
|
||||||
|
|
||||||
await runWithRequestContext(ctx, () =>
|
await runWithRequestContext(ctx, () =>
|
||||||
@ -140,7 +140,35 @@ describe('ElderService', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect(elderCreate).toHaveBeenCalledWith({
|
expect(elderCreate).toHaveBeenCalledWith({
|
||||||
data: expect.objectContaining({ treatStatus: 'active', birthDate: '1990-01-01' }),
|
data: expect.objectContaining({ treatStatus: 'active', birthDate: expect.any(Date) }),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('合法建档(含日期字段)成功创建,日期字段转为 Date', async () => {
|
||||||
|
const { service, elderCreate } = makeService();
|
||||||
|
|
||||||
|
await runWithRequestContext(ctx, () =>
|
||||||
|
service.createElder({
|
||||||
|
...baseDto,
|
||||||
|
benefitStart: '2025-01-01',
|
||||||
|
benefitEnd: '2025-12-31',
|
||||||
|
assessDate: '2025-01-15',
|
||||||
|
insurVerifyDate: '2025-01-10',
|
||||||
|
hospStart: '2025-02-01',
|
||||||
|
hospEnd: '2025-02-05',
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(elderCreate).toHaveBeenCalledWith({
|
||||||
|
data: expect.objectContaining({
|
||||||
|
birthDate: expect.any(Date),
|
||||||
|
benefitStart: expect.any(Date),
|
||||||
|
benefitEnd: expect.any(Date),
|
||||||
|
assessDate: expect.any(Date),
|
||||||
|
insurVerifyDate: expect.any(Date),
|
||||||
|
hospStart: expect.any(Date),
|
||||||
|
hospEnd: expect.any(Date),
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -52,6 +52,12 @@ function resolveInitialStatus(benefitStart?: string, benefitEnd?: string): strin
|
|||||||
return 'waiting_period';
|
return 'waiting_period';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** YYYY-MM-DD → 本地零点 Date(供 Prisma DateTime @db.Date 列写入);空值返回 undefined。 */
|
||||||
|
function toDateOnly(v?: string): Date | undefined {
|
||||||
|
if (!v) return undefined;
|
||||||
|
return new Date(`${v}T00:00:00`);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 老人档案(elder)业务服务。elder 是租户级软删模型,读写经 Prisma 扩展自动注入
|
* 老人档案(elder)业务服务。elder 是租户级软删模型,读写经 Prisma 扩展自动注入
|
||||||
* tenantCode / deletedAt 过滤;创建时 tenantCode/createdBy 由 BaseCrudService 注入。
|
* tenantCode / deletedAt 过滤;创建时 tenantCode/createdBy 由 BaseCrudService 注入。
|
||||||
@ -101,9 +107,15 @@ export class ElderService extends BaseCrudService {
|
|||||||
return super.create({
|
return super.create({
|
||||||
...dto,
|
...dto,
|
||||||
idCardNo,
|
idCardNo,
|
||||||
birthDate,
|
birthDate: toDateOnly(birthDate),
|
||||||
treatStatus,
|
treatStatus,
|
||||||
statusSource: 'manual',
|
statusSource: 'manual',
|
||||||
|
benefitStart: toDateOnly(dto.benefitStart),
|
||||||
|
benefitEnd: toDateOnly(dto.benefitEnd),
|
||||||
|
assessDate: toDateOnly(dto.assessDate),
|
||||||
|
insurVerifyDate: toDateOnly(dto.insurVerifyDate),
|
||||||
|
hospStart: toDateOnly(dto.hospStart),
|
||||||
|
hospEnd: toDateOnly(dto.hospEnd),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user