guoyuji
2024-09-03 a7a9d55c91a35e273885dfae0402362628d782e7
自动报工,副表没有数据则进行插入,有则更新
1个文件已修改
35 ■■■■ 已修改文件
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -653,11 +653,12 @@
                            .eq(ReportingWork::getDeviceName,reportingWork.getDeviceName())
                            .eq(ReportingWork::getReviewedState,0)//审核状态等于0,未删除
                            .eq(ReportingWork::getThisWornQuantity,0)
                            .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
                            .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
                            .orderByDesc(ReportingWork::getId)
            );
            //判断报工表是否存在,不存在则新增报工主副表数据,存在则修改副表数据
            if(ReportingWorks.isEmpty()){
                //获取当前最大报工单号生成报工单号
@@ -674,20 +675,34 @@
                reportingWorkMapper.insert(reportingWork);
                reportingWorkDetailMapper.insert(reportingWorkDetail);
            }else{
                ReportingWorkDetail reportingWorkDetail1 = reportingWorkDetailMapper.selectOne(
                        new LambdaQueryWrapper<ReportingWorkDetail>()
                                .eq(ReportingWorkDetail::getReportingWorkId,ReportingWorks.get(0).getReportingWorkId())
                                .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
                                .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
                );
                if(reportingWorkDetail1 == null){
                    reportingWorkDetail.setReportingWorkId(ReportingWorks.get(0).getReportingWorkId());
                    reportingWorkDetailMapper.insert(reportingWorkDetail);
                }else{
                    LambdaUpdateWrapper<ReportingWorkDetail> detailLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
                    detailLambdaUpdateWrapper.eq(ReportingWorkDetail::getReportingWorkId, ReportingWorks.get(0).getReportingWorkId() )
                            .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
                            .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
                            .setSql("completed_quantity = completed_quantity+" + reportingWorkDetail.getCompletedQuantity());
                    reportingWorkDetailMapper.update(null, detailLambdaUpdateWrapper);
                }
                LambdaUpdateWrapper<ReportingWork> reportingWorkLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
                reportingWorkLambdaUpdateWrapper
                        .eq(ReportingWork::getReportingWorkId, ReportingWorks.get(0).getReportingWorkId() )
                        .setSql("this_completed_quantity = this_completed_quantity+" + reportingWorkDetail.getCompletedQuantity());
                reportingWorkMapper.update(null, reportingWorkLambdaUpdateWrapper);
                LambdaUpdateWrapper<ReportingWorkDetail> detailLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
                detailLambdaUpdateWrapper.eq(ReportingWorkDetail::getReportingWorkId, ReportingWorks.get(0).getReportingWorkId() )
                        .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
                        .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
                        .setSql("completed_quantity = completed_quantity+" + reportingWorkDetail.getCompletedQuantity());
                reportingWorkDetailMapper.update(null, detailLambdaUpdateWrapper);
            }