| | |
| | | import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsCreateReqDTO; |
| | | import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsRespDTO; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | */ |
| | | Boolean checkCanCreateSalesNotice(List<Long> saleOrderItemIds); |
| | | |
| | | /** |
| | | * 检查销售订单的所有 MPS 是否已完成生产 |
| | | * |
| | | * 完成条件: |
| | | * 1. 已生产数量 >= 计划数量 |
| | | * 2. 所有报工单状态为 FINISHED(确保质检完成) |
| | | * |
| | | * @param saleOrderId 销售订单ID |
| | | * @return true=全部完成,false=未全部完成 |
| | | */ |
| | | Boolean checkSaleOrderProductionFinished(Long saleOrderId); |
| | | |
| | | /** |
| | | * 根据工单ID获取 MPS |
| | | * |
| | | * @param workOrderId 工单ID |
| | | * @return MPS 信息 |
| | | */ |
| | | MesProMpsRespDTO getMpsByWorkOrderId(Long workOrderId); |
| | | |
| | | /** |
| | | * 更新 MPS 的已生产数量(累加) |
| | | * |
| | | * @param mpsId MPS 编号 |
| | | * @param quantity 增加的数量 |
| | | */ |
| | | void updateMpsProducedQuantity(Long mpsId, BigDecimal quantity); |
| | | |
| | | /** |
| | | * 检查并自动完成 MPS |
| | | * |
| | | * 如果 MPS 满足完成条件(已生产数量 >= 计划数量 且 所有报工已完成), |
| | | * 则自动将 MPS 状态更新为已完成 |
| | | * |
| | | * @param mpsId MPS 编号 |
| | | * @return true=已完成或本次自动完成,false=未完成 |
| | | */ |
| | | Boolean checkAndFinishMps(Long mpsId); |
| | | |
| | | } |