| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- const http = require('http')
- const BASE_URL = 'http://localhost:8080/api'
- const TOKENS = {
- sales: 'mock-token-mp-21',
- dispatch: 'mock-token-mp-13',
- construction: 'mock-token-mp-15',
- }
- function formatDate(date) {
- const y = date.getFullYear()
- const m = String(date.getMonth() + 1).padStart(2, '0')
- const d = String(date.getDate()).padStart(2, '0')
- return `${y}-${m}-${d}`
- }
- const today = formatDate(new Date())
- const tomorrowDate = new Date()
- tomorrowDate.setDate(tomorrowDate.getDate() + 1)
- const tomorrow = formatDate(tomorrowDate)
- function request(method, path, token, data) {
- return new Promise((resolve, reject) => {
- const options = {
- hostname: 'localhost',
- port: 8080,
- path: '/api' + path,
- method,
- headers: {
- 'Content-Type': 'application/json',
- 'Authorization': `Bearer ${token}`,
- },
- }
- const req = http.request(options, (res) => {
- let body = ''
- res.on('data', (chunk) => (body += chunk))
- res.on('end', () => {
- try {
- resolve(JSON.parse(body))
- } catch (e) {
- resolve(body)
- }
- })
- })
- req.on('error', reject)
- if (data) req.write(JSON.stringify(data))
- req.end()
- })
- }
- function countByStatus(tasks, statuses) {
- return tasks.filter(t => statuses.includes(t.status)).length
- }
- function countByDate(tasks, date) {
- return tasks.filter(t => {
- if (t.planDate === date) return true
- if (t.planDate && t.planEndDate && date >= t.planDate && date <= t.planEndDate) return true
- if (t.scheduleDate === date) return true
- if (t.serviceDate === date) return true
- return false
- }).length
- }
- async function main() {
- // 销售端:项目总数、待确认(auditing)、进行中(in_progress)
- const projectRes = await request('GET', '/project/list?pageNum=1&pageSize=1', TOKENS.sales)
- const salesTaskRes = await request('GET', '/task/list?pageNum=1&pageSize=100', TOKENS.sales)
- const salesTasks = salesTaskRes.data?.rows || []
- console.log('=== 销售端首页 ===')
- console.log('本月项目:', projectRes.data?.total || 0)
- console.log('待确认 (status=auditing):', countByStatus(salesTasks, ['auditing']))
- console.log('进行中 (status=in_progress):', countByStatus(salesTasks, ['in_progress']))
- console.log('任务状态分布:', salesTasks.reduce((acc, t) => {
- acc[t.status] = (acc[t.status] || 0) + 1
- return acc
- }, {}))
- // 调度端:今日任务、待审核(auditing)、待安排(approved)
- const dispatchMyRes = await request('GET', `/task/my?planDate=${today}`, TOKENS.dispatch)
- const dispatchTasks = dispatchMyRes.data || dispatchMyRes || []
- console.log('\n=== 调度端首页 ===')
- console.log('今日任务 (planDate/scheduleDate/serviceDate = today):', countByDate(dispatchTasks, today), '/', dispatchTasks.length)
- console.log('待审核 (status=auditing):', countByStatus(dispatchTasks, ['auditing']))
- console.log('待安排 (status=approved):', countByStatus(dispatchTasks, ['approved']))
- console.log('任务状态分布:', dispatchTasks.reduce((acc, t) => {
- acc[t.status] = (acc[t.status] || 0) + 1
- return acc
- }, {}))
- // 施工端:已完成(completed)、进行中(in_progress)、待确认(assigned)
- const constructionMyRes = await request('GET', '/task/my', TOKENS.construction)
- const constructionTasks = constructionMyRes.data || constructionMyRes || []
- console.log('\n=== 施工端首页 ===')
- console.log('已完成 (status=completed):', countByStatus(constructionTasks, ['completed']))
- console.log('进行中 (status=in_progress):', countByStatus(constructionTasks, ['in_progress']))
- console.log('待确认 (status=assigned):', countByStatus(constructionTasks, ['assigned']))
- console.log('任务状态分布:', constructionTasks.reduce((acc, t) => {
- acc[t.status] = (acc[t.status] || 0) + 1
- return acc
- }, {}))
- }
- main().catch(err => {
- console.error('验证失败:', err)
- process.exit(1)
- })
|