huminmin
9 天以前 721593e4047b71fd592341e7f27702307db62be2
生产报工更新实际开始时间和结束时间
已修改1个文件
14 ■■■■ 文件已修改
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -209,11 +209,19 @@
            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);