59 lines
1.5 KiB
TypeScript

#!/usr/bin/env tsx
import { prisma } from '@/lib/prisma'
import { oaBoardDingtalkTodoDispatchService } from '@/server/services/oa-board-dingtalk-todo-dispatch.service'
import { oaBrandPlanningShipmentTodoService } from '@/server/services/oa-brand-planning-shipment-todo.service'
function readArg(name: string) {
const index = process.argv.findIndex((arg) => arg === `--${name}`)
if (index < 0) return null
return process.argv[index + 1] ?? null
}
async function main() {
const openingCode = readArg('opening-code')?.trim() || undefined
const owner = readArg('owner')?.trim() || undefined
const approvalStage = readArg('approval-stage')?.trim() || undefined
const [overtime, shipmentReminder] = await Promise.all([
oaBoardDingtalkTodoDispatchService.syncDashboard({
approvalNumber: openingCode,
owner,
approvalStage,
}),
oaBrandPlanningShipmentTodoService.sync(),
])
console.log(
JSON.stringify(
{
ok: true,
summary: { overtime, shipmentReminder },
},
null,
2,
),
)
}
main()
.catch((error) => {
console.error(
JSON.stringify(
{
ok: false,
message: error instanceof Error ? error.message : '同步 OA 看板钉钉待办失败',
},
null,
2,
),
)
process.exitCode = 1
})
.finally(async () => {
await Promise.allSettled([
oaBoardDingtalkTodoDispatchService.dispose(),
prisma.$disconnect(),
])
})