zjh
2025-05-30 b7d7d80a8a9e9ac145a05b5e1d545b6b61fc0cc4
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -2245,6 +2245,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) {