src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -209,12 +209,18 @@
            List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
            /*更新工单和生产订单*/
            productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(productQty));
            if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())) {
                productWorkOrder.setActualStartTime(LocalDateTime.now());//实际开始时间
            // 查询该工单对应的最早上机时间(按上机时间升序,取第一条)
            List<ProductionMachineRecord> machineRecords = productionMachineRecordMapper.selectList(
                    Wrappers.<ProductionMachineRecord>lambdaQuery()
                            .eq(ProductionMachineRecord::getWorkOrderId, productWorkOrder.getId())
                            .isNotNull(ProductionMachineRecord::getMachineStartTime)
                            .orderByAsc(ProductionMachineRecord::getMachineStartTime)
            );
            if (!machineRecords.isEmpty()) {
                productWorkOrder.setActualStartTime(machineRecords.get(0).getMachineStartTime());
            }
            if (productWorkOrder.getCompleteQuantity().compareTo(productWorkOrder.getPlanQuantity()) >= 0) {
                productWorkOrder.setActualEndTime(LocalDateTime.now());//实际结束时间
            }
            // 实际结束时间 = 报工结束时间
            productWorkOrder.setActualEndTime(now);//实际结束时间为报工结束时间
            productWorkOrder.setEndProductTime(now);
            productWorkOrderMapper.updateById(productWorkOrder);
            //生产订单