4.7 KiB
4.7 KiB
嘉恒智能报工小程序接口边界
小程序端不能直连 MySQL。生产环境需要一个 HTTPS 后端服务,使用环境变量读取数据库连接信息,并调用微信服务端接口完成手机号解密、订阅通知和小程序码生成。
Excel 字段
本次读取到的 /Users/souplearn/Downloads/产品清单.xlsx 表头为:
项目号、型材号、产品名称、物料编码、物料名称、使用设备、工序、冲压方式、操作人数、不包含物料转运节拍、标准节拍
导入产品时:
型材号保存到products.profile_no。使用设备保存到products.device_no。不包含物料转运节拍忽略,不进入小程序业务。标准工作量如果 Excel 没有提供,由后端按28800 / 标准节拍生成 8 小时日标准量。- Excel 中空白
项目号建议沿用上一行项目号,导入前端也应展示导入预览和错误行。
推荐接口
登录
POST /api/auth/wechat-loginGET /api/auth/me:获取当前账号和同一手机号下的所有角色。POST /api/auth/switch-role:已登录账号切换当前角色,返回新的 token。- 入参:
code、encryptedData、iv或新版本手机号授权凭证。 - 逻辑:获取手机号后,在
personnel表匹配;多个手机号时返回人员表中存在的手机号供用户选择。 - 返回:当前人员、角色、token。
产品
POST /api/products/import:上传《产品清单》Excel,解析并 upsert。GET /api/products:分页、关键词、设备号筛选。POST /api/products:新增或修改产品。DELETE /api/products:按project_no + product_name + device_no + process_name删除产品。
产品唯一键为:项目号 + 产品名称 + 使用设备号 + 工序。
人员
POST /api/people/import:上传《人员清单》Excel,字段为电话号、姓名、角色。GET /api/people:分页和关键词筛选。POST /api/people:新增或修改人员。DELETE /api/people/:phone?role=worker:删除手机号下的某个角色。
人员口径:一个手机号绑定一个姓名,同一手机号可以有多个角色;登录时如果该手机号只有一个角色,直接登录,如果有多个角色,小程序会要求选择本次登录角色。
设备二维码
POST /api/devices/:deviceNo/qrcode- 后端调用微信
getUnlimitedQRCode,scene 建议为deviceNo=20%23,page 为pages/clock/clock。 - 返回可打印的小程序码图片地址。
扫码报工
GET /api/clock/state?deviceNo=20%23POST /api/clock/startPOST /api/clock/switch-devicePOST /api/clock/finish
状态规则:
- 没有 active session:只返回
开始上班。 - 有 active session 且设备没出现过:只返回
换设备。 - 有 active session 且设备出现过:只返回
下班报工。 - 点击
下班报工后进入 reporting session,30 分钟内返回继续报工,员工可继续填写原报工。 - 超过 30 分钟未提交时返回
重新报工,员工点击后更新下班时间为重新报工时间,再重新填写报工。
报工提交
GET /api/reports/draft?sessionId=...:按设备号拉取产品候选项。POST /api/reports:员工确认提交,report_date使用确认提交当天日期。- 报工草稿和提交都会校验 30 分钟填写有效期;超时必须重新扫码点击
重新报工。 GET /api/reports/mine:员工按日期查看自己的报工记录。
审核
GET /api/reviews/pending:管理员待审核报工。POST /api/reviews/:reportId/approve:管理员通过,或修正明细后通过。POST /api/reviews/:reportId/reject:管理员驳回并写原因。PATCH /api/reports/:reportId/break-minutes:仅经理可修改休息间隔,必须写report_audit_logs。GET /api/reviews/mine:管理员自己的审核记录,支持日期筛选。
经理看板
GET /api/dashboard/reports?startDate=YYYY-MM-DD&endDate=YYYY-MM-DD&page=1- 后端只统计
approved报工,并按report_date + employee_phone合并。 - 返回实际节拍、标准节拍、节拍正负百分比、报工数量、标准工作量、工作量正负百分比。
关键计算口径
- 报工日期:员工点击提交后再确认的日期。
- 有效工时:
下班时间 - 上班时间 - 休息间隔,休息间隔只能经理修改。 - 实际节拍:
有效工时秒数 / (成品数量 + 不良数量),报废计入不良数量。 - 标准节拍:按明细产出数量加权平均。
- 标准工作量:使用产品表导入或手动维护的
标准工作量,多条明细时累加。 - 工作量对比:
(成品数量 - 标准工作量) / 标准工作量。