This commit is contained in:
zwgczx committed 2026-03-03 16:16:16 +08:00
1 parent 62546bc937
commit 33913c29d2
9 files changed
+1153 -239

No files matched your search

+18 -4
View File
@@ -22,6 +22,7 @@ interface WorkloadRow {
id: string
conversion: number | null
workload: number | null
basicFee: number | null
budgetAdoptedUnitPrice: number | null
consultCategoryFactor: number | null
}
@@ -159,6 +160,7 @@ const buildDefaultWorkloadRows = (serviceId: string | number): WorkloadRow[] =>
id: `task-${taskId}-${order}`,
conversion: toFiniteNumberOrNull(task.conversion),
workload: null,
basicFee: null,
budgetAdoptedUnitPrice: toFiniteNumberOrNull(task.defPrice),
consultCategoryFactor: defaultConsultCategoryFactor
}))
@@ -177,23 +179,35 @@ const mergeWorkloadRows = (
return {
...row,
workload: toFiniteNumberOrNull(fromDb.workload),
basicFee: toFiniteNumberOrNull(fromDb.basicFee),
budgetAdoptedUnitPrice: toFiniteNumberOrNull(fromDb.budgetAdoptedUnitPrice),
consultCategoryFactor: toFiniteNumberOrNull(fromDb.consultCategoryFactor)
}
})
}
const calcWorkloadServiceFee = (row: WorkloadRow) => {
const calcWorkloadBasicFee = (row: WorkloadRow) => {
if (
row.budgetAdoptedUnitPrice == null ||
row.conversion == null ||
row.workload == null ||
row.consultCategoryFactor == null
row.workload == null
) {
return null
}
return roundTo(
toDecimal(row.budgetAdoptedUnitPrice).mul(row.conversion).mul(row.workload).mul(row.consultCategoryFactor),
toDecimal(row.budgetAdoptedUnitPrice).mul(row.conversion).mul(row.workload),
2
)
}
const calcWorkloadServiceFee = (row: WorkloadRow) => {
if (row.consultCategoryFactor == null) {
return null
}
const basicFee = row.basicFee ?? calcWorkloadBasicFee(row)
if (basicFee == null) return null
return roundTo(
toDecimal(basicFee).mul(row.consultCategoryFactor),
2
)
}