zss
2025-02-18 bcc80a6833abe9f24abdb978f7c7f01b664a574f
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -354,7 +354,7 @@
                dianLuUtils.readDianLuFile1(sampleId, insOrderFile);
            } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("电路试验") && split[split.length - 1].equals("csv") && filename.contains("驻波")) {
                dianLuUtils.readDianLuFile2(sampleId, insOrderFile);
            }else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("电路试验") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("无源器件")) {
            } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("电路试验") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("无源器件")) {
                dianLuUtils.readDianLuFile3(sampleId, insOrderFile);
            }
        } catch (Exception e) {
@@ -891,7 +891,7 @@
        for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) {
            saveInsContext2(insProductResultDto);
        }
       return  1;
        return 1;
    }
    //温湿度试验+功率试验的保存检验内容
@@ -1061,16 +1061,9 @@
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId));
                    //如果订单类型是原理样机,则该订单直接闭环
                    if (insOrder.getFormType().equals("原理样机")) {
                        //出库
                        try {
                            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
                            for (InsSample sample : insSamples) {
                                outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
                            }
                        } catch (Exception e) {
                        }
                    List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
                    for (InsSample sample : insSamples) {
                        outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
                    }
                    insOrder.setState(4);
                    insOrderMapper.updateById(insOrder);
@@ -1080,7 +1073,98 @@
        return 1;
    }
    private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) {
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        InsSample insSample = insSampleMapper.selectById(sampleId);
        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
        /*type=0  再次试验; type=1 继续试验 ; type=2 结束试验*/
        // 查询根据 id 倒序排列的第一条记录
        InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, sampleId)
                .eq(InsOrderState::getLaboratory, laboratory)
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1")); // 确保只取一条记录
        if (record != null) {
            //更新记录
            insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate()
                    .eq(InsOrderUser::getInsOrderStateId, record.getId())
                    .eq(InsOrderUser::getNum, record.getNum())
                    .set(InsOrderUser::getTell, tell));
            switch (type) {
                case 0:
                    //再次试验:该单子退回到检验状态(排序改成当前的最后),次数递增(保留以前的数据);
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getId, record.getId())
                            .set(InsOrderState::getInsTime, LocalDateTime.now())
                            .set(InsOrderState::getInsState, 4)
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId)
                            .set(InsOrderState::getNum, record.getNum() + 1)//次数加1
                            .set(InsOrderState::getCreateTime, LocalDateTime.now()));
                    insOrder.setState(3);
                    break;
                case 1:
                    //继续试验:该样品该站点任务结束(可以再次扫码检验);
                    //先判断上一个复核是什么结论
                    if (record.getInsState()==4){
                        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 6)
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getNum, record.getNum() - 1)//次数-1
                                .set(InsOrderState::getVerifyUser, userId));
                    }else {
                        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 6)
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getVerifyUser, userId));
                    }
                    insOrder.setState(3);
                    break;
                case 2:
                    //结束试验:此委托单停止试验(无法再次检验)。
                    //先判断上一个复核是什么结论
                    if (record.getInsState()==4){
                        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 5)
                                .set(InsOrderState::getNum, record.getNum() - 1)//次数-1
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getVerifyUser, userId));
                    }else {
                        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                                .eq(InsOrderState::getInsSampleId, sampleId)
                                .eq(InsOrderState::getLaboratory, laboratory)
                                .set(InsOrderState::getInsState, 5)
                                .set(InsOrderState::getVerifyTell, tell)
                                .set(InsOrderState::getVerifyUser, userId));
                    }
                    //出库
                    List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
                    for (InsSample sample : insSamples) {
                        outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
                    }
                    insOrder.setState(4);
                    break;
            }
            insOrderMapper.updateById(insOrder);
        }
        return 1;
    }
    private void getTemplateThing
            (Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) {
        for (InsProduct product : insProducts) {
            if (product.getTemplateId() == null) {
                product.setTemplate(new ArrayList<>());
@@ -1194,7 +1278,7 @@
        if (submitPlanDto.getLaboratory().equals("电路试验")) {
            if (!insOrder.getSampleType().equals("无源器件")) {
                wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
            }else {
            } else {
                wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
            }
            //todo 电路站点报告 正式库部署放开
@@ -1283,8 +1367,8 @@
        InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId());
        /*删除记录检验任务每次的备注信息*/
        insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery()
        .eq(InsOrderUser::getInsOrderStateId,orderState.getId())
        .eq(InsOrderUser::getNum,orderState.getNum()));
                .eq(InsOrderUser::getInsOrderStateId, orderState.getId())
                .eq(InsOrderUser::getNum, orderState.getNum()));
        //撤销提交
        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                .eq(InsOrderState::getInsOrderId, orderState.getInsOrderId())
@@ -1305,15 +1389,15 @@
        informationNotificationService.addInformationNotification(info);
        //删除复核人--检验单相关负责人
        insSampleUserMapper.delete(Wrappers.<InsSampleUser>lambdaQuery()
        .eq(InsSampleUser::getState,1)
        .eq(InsSampleUser::getSonLaboratory,orderState.getLaboratory())
        .eq(InsSampleUser::getUserId,orderState.getVerifyUser())
        .eq(InsSampleUser::getInsSampleId,orderState.getInsSampleId()));
                .eq(InsSampleUser::getState, 1)
                .eq(InsSampleUser::getSonLaboratory, orderState.getLaboratory())
                .eq(InsSampleUser::getUserId, orderState.getVerifyUser())
                .eq(InsSampleUser::getInsSampleId, orderState.getInsSampleId()));
        //删除生成的报告
        if (orderState.getLaboratory().equals("电路试验")) {
            List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                    .eq(InsOrderFile::getType, 2)
                    .like(InsOrderFile::getFileName,"电路参数.docx")
                    .like(InsOrderFile::getFileName, "电路参数.docx")
                    .eq(InsOrderFile::getInsOrderId, insOrder.getId())
                    .eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId())
                    .eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory()));
@@ -1328,9 +1412,9 @@
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()));
        List<Integer> productIds = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
        auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                .eq(AuxiliaryOutputWorkingHours::getSample,insSample.getSampleCode())
                .in(AuxiliaryOutputWorkingHours::getInsProductId,productIds)
                .eq(AuxiliaryOutputWorkingHours::getNum,orderState.getNum()));
                .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode())
                .in(AuxiliaryOutputWorkingHours::getInsProductId, productIds)
                .eq(AuxiliaryOutputWorkingHours::getNum, orderState.getNum()));
        //  todo 企业微信消息推送@zss
        HashMap<String, Object> map = new HashMap<>();