gongchunyi
6 小时以前 768b011a17b9e63e4b6570989824152145952eda
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -92,6 +92,25 @@
    @Override
    public Boolean addProductMain(ProductionProductMainDto dto) {
        ProductWorkOrder workOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId());
        if (workOrder == null) {
            throw new ServiceException("报工失败,工单不存在");
        }
        Long currentUserId = dto.getUserId();
        Long workerId = workOrder.getWorkerId();
        Long handoverUserId = workOrder.getHandoverUserId();
        boolean isWorker = workerId != null && workerId.equals(currentUserId);
        boolean isHandover = handoverUserId != null && handoverUserId.equals(currentUserId);
        if (!isWorker) {
            // 不是指派工人
            if (handoverUserId == null) {
                throw new ServiceException("报工失败,当前工单未交接,只有指派工人可以报工");
            }
            if (!isHandover) {
                throw new ServiceException("报工失败,你不是该工单的交接人员");
            }
        }
        SysUser user = userMapper.selectUserById(dto.getUserId());
        ProductionProductMain productionProductMain = new ProductionProductMain();
        //当前工艺路线对应的工序详情
@@ -207,7 +226,7 @@
                                qualityInspectParamMapper.insert(param);
                            });
                }
            }else {
            } else {
                //直接入库
                stockUtils.addStock(productProcessRouteItem.getProductModelId(), productQty, StockInQualifiedRecordTypeEnum.PRODUCTION_REPORT_STOCK_IN.getCode(), productionProductMain.getId());
            }
@@ -264,10 +283,10 @@
    public Boolean removeProductMain(Long id) {
        //判断该条报工是否不合格处理,如果不合格处理了,则不允许删除
        List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(Wrappers.<QualityInspect>lambdaQuery().eq(QualityInspect::getProductMainId, id));
        if (qualityInspects.size() > 0){
        if (qualityInspects.size() > 0) {
            List<QualityUnqualified> qualityUnqualifieds = qualityUnqualifiedMapper.selectList(Wrappers.<QualityUnqualified>lambdaQuery()
                    .in(QualityUnqualified::getInspectId, qualityInspects.stream().map(QualityInspect::getId).collect(Collectors.toList())));
            if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState()==1) {
            if (qualityUnqualifieds.size() > 0 && qualityUnqualifieds.get(0).getInspectState() == 1) {
                throw new ServiceException("该条报工已经不合格处理了,不允许删除");
            }
        }
@@ -321,7 +340,7 @@
                    new LambdaQueryWrapper<QualityInspectParam>()
                            .eq(QualityInspectParam::getInspectId, q.getId()));
            qualityInspectMapper.deleteById(q.getId());
                stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
            stockUtils.deleteStockInRecord(q.getId(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode());
        });
        // 删除产出记录