zouyu
2026-05-09 e9e88eefcc8abd2b1e187d28c7666e80307e97cc
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -49,6 +49,7 @@
import org.springframework.core.io.ClassPathResource;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -448,8 +449,12 @@
        }
        Integer insOrderId = insReportMapper.selectById(id).getInsOrderId();
        InsOrder order = insOrderMapper.selectById(insOrderId);
        boolean isRawMater = order.getTypeSource() != null && order.getTypeSource().equals(1);
        IfsInventoryQuantity ifsInventoryQuantity = null;
        if(ObjectUtils.isNotEmpty(order.getIfsInventoryId())){
            ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
        }
        boolean isRawMater = order.getTypeSource() != null && !order.getTypeSource().equals(-1);
        String contract = ObjectUtils.isNotEmpty(ifsInventoryQuantity)?ifsInventoryQuantity.getContract():order.getContract();//ifs域
        //获取场所的报告专用章
        String sealUrl;
        String laboratory = insOrderMapper.selectById(insReport.getInsOrderId()).getLaboratory();
@@ -460,7 +465,7 @@
            } else {
                type = "委托报告";
            }
            sealUrl = insReportMapper.getLaboratoryByName(laboratory, type);
            sealUrl = insReportMapper.getLaboratoryByName(laboratory, type,contract);
        } catch (Exception e) {
            throw new ErrorException(laboratory + "找不到报告专用章");
        }
@@ -796,12 +801,12 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
    public void isRawMaterial(InsOrder insOrder,Boolean registerInsResults,Boolean hasExemption) {
        IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectOne(new LambdaQueryWrapper<IfsInventoryQuantity>()
                .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
        if (Objects.isNull(one)) {
            throw new ErrorException("找不到原材料信息");
            throw new ErrorException("找不到销售订单信息");
        }
        // 判断是否有不合格信息
        Long count = insUnqualifiedHandlerMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
@@ -816,15 +821,15 @@
            //如果是拆分的订单,则把拆分的所有批次都移库
            if(one.getIsSplitOrder()==1 && !hasExemption){
                //查询拆分订单详情
                List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo());
                List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo(),one.getContract());
                for (IfsInventoryQuantityVO vo : ifsInventoryQuantityVOS) {
                    //如果有委托单信息且合格,走登记后移库;如果没有,则走免检;不合格不做处理
                    if(Objects.isNull(vo.getInsOrderId())){
                        rawMaterialOrderService.rawOrderRelease(vo.getId(), vo.getPartDesc());
                    }else if(Objects.equals(vo.getInsOrderId(),insOrder.getId())){
                        toLocation = insOrderService.moveRawMaterial(one);
                        toLocation = insOrderService.moveRawMaterial(vo);
                    }else if(Objects.nonNull(vo.getInsResult()) && 1 == vo.getInsResult()){
                        toLocation = insOrderService.moveRawMaterial(one);
                        toLocation = insOrderService.moveRawMaterial(vo);
                    }
                }
            }else{
@@ -855,27 +860,26 @@
                        .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
            }
//            threadPoolTaskExecutor.execute(() -> {
//                // 企业微信通知
//                String message = "";
//                message += "检测结果提交通知";
//                message += "\n批次号: " + one.getUpdateBatchNo();
//                message += "\n零件号: " + one.getPartNo();
//                message += "\n零件描述: " + one.getPartDesc();
//                message += "\n供应商名称: " + one.getSupplierName();
//                message += "\n抵达数量: " + one.getQtyArrived().stripTrailingZeros().toPlainString() + one.getBuyUnitMeas();
//                // 发送企业inspectStatus信通知
//                if (inspectStatus == 1) {
//                    message += "\n检测结果: 合格";
//                } else {
//                    message += "\n检测结果: 不合格";
//                }
//                WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
//            });
            threadPoolTaskExecutor.execute(() -> {
                // 企业微信通知
                String message = "";
                message += "检测结果提交通知";
                message += "\nIFS域: " + one.getContract();
                message += "\n批次号: " + one.getUpdateBatchNo();
                message += "\n零件号: " + one.getPartNo();
                message += "\n零件描述: " + one.getPartDesc();
                message += "\n供应商名称: " + one.getSupplierName();
                message += "\n抵达数量: " + one.getQtyArrived().stripTrailingZeros().toPlainString() + one.getBuyUnitMeas();
                // 发送企业inspectStatus信通知
                if (inspectStatus == 1) {
                    message += "\n检测结果: 合格";
                } else {
                    message += "\n检测结果: 不合格";
                }
                WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
            });
        }
    }
    /**