zhaowenxuan
2025-05-27 20fd61260b51260b99fe485bb718e136f6742976
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -2007,52 +2007,79 @@
        String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request");
        String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
        String isRequestLisAllzx = configService.selectConfigByKey("jcx_is_requestLisAllzx");
        if (mergeRequest.equals("Y")){
            try {
            if (isRequestLisAllzx != null && isRequestLisAllzx.equals("Y")){
                log.info("进入团体根据小项标本合并发送方法");
                LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber());
                List<TjSampling> list = tjSamplingService.list(wrapper);
                log.info("采样数据 ->{}",JSONUtil.toJsonStr(list));
                if (!list.isEmpty()) {
                    Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode));
                List<String> strings = list.stream().map(TjSampling::getProId).collect(Collectors.toList());
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.in(TjProject::getProParentId,strings);
                wrapper1.eq(TjProject::getProStatus,0);
                wrapper1.eq(TjProject::getDeleted,0);
                wrapper1.groupBy(TjProject::getProId);
                List<TjProject> tjProjectList = projectService.list(wrapper1);
                Map<String, List<TjProject>> listMap = tjProjectList.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType));
                log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap));
                    ArrayList<String> ids = new ArrayList<>();
                    for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) {
                    log.info("key ->{},val ->{}",entry.getKey(),entry.getValue());
                        // Lis标本代码
                        String specimenTypeCode = entry.getKey();
                        List<TjSampling> samplings = entry.getValue();
                        if (samplings.size() >= 2) {
                            // 进行合并
                            List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList());
    //                        log.info("提取id ->{}",stringList);
                            for (int i = 0; i < stringList.size(); i++) {
                                String s = stringList.get(i);
                                if (tjSamplingService.isMergeItem(s) != 0) {
                                    stringList.remove(s);
                                    ids.add(s);
                boolean save = lisApiMethod.save(listMap, tjOrder, customer);
                if (!save) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("处理失败");
                }
                for (TjSampling tjSampling : list) {
                    tjSampling.setIsSignFor("0");
                }
                tjSamplingService.updateBatchById(list);
            }else{
                try {
                    LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
                    wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber());
                    List<TjSampling> list = tjSamplingService.list(wrapper);
                    log.info("采样数据 ->{}",JSONUtil.toJsonStr(list));
                    if (!list.isEmpty()) {
                        Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode));
                        log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap));
                        ArrayList<String> ids = new ArrayList<>();
                        for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) {
                            log.info("key ->{},val ->{}",entry.getKey(),entry.getValue());
                            // Lis标本代码
                            String specimenTypeCode = entry.getKey();
                            List<TjSampling> samplings = entry.getValue();
                            if (samplings.size() >= 2) {
                                // 进行合并
                                List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList());
                                //                        log.info("提取id ->{}",stringList);
                                for (int i = 0; i < stringList.size(); i++) {
                                    String s = stringList.get(i);
                                    if (tjSamplingService.isMergeItem(s) != 0) {
                                        stringList.remove(s);
                                        ids.add(s);
                                    }
                                }
                                if (stringList.size() > 1) {
                                    String id = tjSamplingService.mergeCaiYangApi(stringList,lis_tmh_prefix);
                                    ids.add(id);
                                }else {
                                    ids.add(stringList.get(0));
                                }
                            } else {
                                ids.add(samplings.get(0).getId());
                            }
                            if (stringList.size() > 1) {
                                String id = tjSamplingService.mergeCaiYangApi(stringList,lis_tmh_prefix);
                                ids.add(id);
                            }else {
                                ids.add(stringList.get(0));
                            }
                        } else {
                            ids.add(samplings.get(0).getId());
                        }
                        Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
                        if (!confirmed) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return AjaxResult.error("处理失败");
                        }
                    }
                    Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
                    if (!confirmed) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return AjaxResult.error("处理失败");
                    }
                }
            } catch (NoTransactionException e) {
                } catch (NoTransactionException e) {
//                throw new RuntimeException(e);
                log.error(e.getMessage().toString());
                    log.error(String.valueOf(e),e.getMessage());
                }
            }
        }
        //检验申请