zjh
2025-06-05 2c19fa65dc87ea8f3d81f84154f4eeabff7f8d00
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -2002,64 +2002,86 @@
            log.error("pacs申请失败 该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
            return AjaxResult.error("挂号失败!" + result.get("msg").toString());
        }
//        LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
//        wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
//        wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
//        wq2.eq(TjOrderDetail::getIsSampling, 0);
//        List<TjOrderDetail> detailList1 = tjOrderDetailService.list(wq2);
        List<TjOrderDetail> detailList1 = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
//        log.info("TjOrderDetail ->{}",JSONUtil.toJsonStr(detailList1));
        tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, sysUser,null);
        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));
                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());
                        }
                    }
                    Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
                    if (!confirmed) {
                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.groupBy(TjProject::getProId);
                List<TjProject> tjProjectList = projectService.list(wrapper1);
                if(null !=  tjProjectList && !tjProjectList.isEmpty()){
                    Map<String, List<TjProject>> listMap = tjProjectList.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType));
                    log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap));
                    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);
                }
            } catch (NoTransactionException e) {
            }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());
                            }
                        }
                        Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
                        if (!confirmed) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return AjaxResult.error("处理失败");
                        }
                    }
                } catch (NoTransactionException e) {
//                throw new RuntimeException(e);
                log.error(e.getMessage().toString());
                    log.error(String.valueOf(e),e.getMessage());
                }
            }
        }
        //检验申请
@@ -2225,6 +2247,93 @@
        return AjaxResult.success();
    }
    public AjaxResult tijianBlshenqing(TjCustomer customer,TjOrder tjOrder, SysUser sysUser,String jxbz) {
        List<TbTransition> detailList = tbTransitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(), tjOrder.getCardId(),jxbz);
        pacsApiMethodService.save(tjOrder, customer, detailList);
        List<TjOrderDetail> detailList1 = tjOrderDetailService.getCaiYangDengJiJxbz(tjOrder.getOrderId(), jxbz);
        tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, sysUser,null);
        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")){
            if (isRequestLisAllzx != null && isRequestLisAllzx.equals("Y")){
                log.info("进入团体根据小项标本合并发送方法");
                LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber());
                wrapper.eq(TjSampling::getJxbz,jxbz);
                List<TjSampling> list = tjSamplingService.list(wrapper);
                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));
                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());
                    wrapper.eq(TjSampling::getJxbz,jxbz);
                    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());
                            }
                        }
                        Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N");
                        if (!confirmed) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return AjaxResult.error("处理失败");
                        }
                    }
                } catch (NoTransactionException e) {
                    log.error(String.valueOf(e),e.getMessage());
                }
            }
        }
        return AjaxResult.success();
    }
    //退费后取消接诊作废申请单等操作
    @Transactional
    public boolean ZfHisApiMethods(TjCustomer customer, TjOrder order,Boolean isUseLisAndPacsRegister) {