# 定期盘点自动调度 - 前端联调方案 ## 涉及页面 - 盘点方案列表页(`wls/stocktaking/plan`) - 盘点方案编辑表单(`wls/stocktaking/plan` 新建/编辑弹窗) ## 业务流程与数据带入 1. 盘点方案开启「定期自动生成」并配置生成周期 cron 后,后台定时任务(每周期扫描、默认每分钟一次)按各方案「上次生成时间 + cron」判断是否到期。 2. 到期则系统自动按方案创建盘点任务(草稿态,名称取方案名,沿方案的类型/盲盘/冻结/动态盘点时间段),并立即按方案生成盘点明细行。 3. 方案首次开启后系统会记录基线时间,从下一个周期起开始生成,不会开启当天立即生成。 ## API | 方法 | 路径 | 说明 | |------|------|------| | POST | /mes/wm/stocktaking-plan/create | 创建盘点方案 | | PUT | /mes/wm/stocktaking-plan/update | 修改盘点方案 | | GET | /mes/wm/stocktaking-plan/get | 获得盘点方案详情 | | GET | /mes/wm/stocktaking-plan/page | 获得盘点方案分页 | **请求参数新增(创建/修改 ReqVO):** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | autoGenerate | Boolean | 否 | 是否定期自动生成盘点任务(默认 false) | | generateCron | String | autoGenerate=true 时必填 | 自动生成周期 cron 表达式(Quartz 6 段),如 `0 0 8 * * ?` 表示每天 8 点 | **响应字段新增(详情/分页 RespVO):** | 字段 | 类型 | 说明 | |------|------|------| | autoGenerate | Boolean | 是否定期自动生成盘点任务 | | generateCron | String | 自动生成周期 cron 表达式 | | lastGenerateTime | LocalDateTime | 上次自动生成时间(后端回写,仅展示) | ## 字段展示规则 | 字段 | 展示位置 | 说明 | |------|----------|------| | autoGenerate | 列表、表单 | 开关/复选框 | | generateCron | 表单 | autoGenerate 开启时必填并显示;不合法时后端报错「生成周期 cron 表达式不合法」 | | lastGenerateTime | 列表、详情 | 只读展示,前端不可编辑 | ## 业务规则说明 | 场景 | 规则 | |------|------| | 开启自动生成 | autoGenerate=true 时 generateCron 必填(否则报错「开启定期自动生成时必须配置生成周期 cron」) | | 未开启 | autoGenerate=false 时忽略 generateCron | | cron 校验 | 使用 Quartz 6 段 cron,不合法给「生成周期 cron 表达式不合法」错误 | | 生成范围 | 仅「启用状态 + 开启自动生成 + 已配置 cron」的方案参与扫描 | | 防重复 | 生成任务成功后同事务回写上次生成时间,避免同周期重复生成 | | 首次启用 | 首次扫描仅记录基线时间不生成,从下一周期开始 | | 部分失败 | 单个方案生成失败不影响其它方案 | | 任务查看 | 自动生成的任务可在盘点任务列表查看,来源方案编码/名称自动带入 | ## 注意事项 - 自动生成是后台定时任务行为,前端无需触发;联调时验证方案字段保存/回显正确即可。 - 若需验证生成效果,可将 cron 配置为短周期(如每分钟 `0 */1 * * * ?`),保存启用后在盘点任务列表观察自动出现草稿任务。 - 后续若在 WMS(mom-pro2-before)盘点方案表单中增加以上两个字段,仅需随方案保存与回显;无新增页面。