zjh
2024-11-21 27e09a7b8549c5a84891c62b1625adbe81db04fc
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -11,11 +11,14 @@
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.utils.AgeResult;
import com.ltkj.common.utils.DateUtils;
import com.ltkj.common.utils.IdUtils;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
import com.ltkj.hosp.lisDto.LisSaveSqdxxDto;
import com.ltkj.hosp.lisDto.LisSaveSqdxxJyxmlistDto;
import com.ltkj.hosp.mapper.TbTransitionMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.system.service.ISysDeptService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
@@ -23,10 +26,7 @@
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@@ -55,6 +55,18 @@
    private LtkjJfxmgljyxmzdService ltkjJfxmgljyxmzdService;
    @Autowired
    private LtkjJyxmzdService jyxmzdService;
    @Autowired
    private IdUtils idUtils;
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private ITjOrderService orderService;
    @Autowired
    private ITjCustomerService customerService;
    @Autowired
    private TbTransitionMapper tbTransitionMapper;
    @Autowired
    private ITjSamplingService tjSamplingService;
    /**
     * 保存检验单申请信息
@@ -62,7 +74,9 @@
     * @param tjCustomer
     * @param detailList
     * @return
     * @deprecated 修改 不使用List<TbTransition>传参数
     */
    @Deprecated
    public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TbTransition> detailList){
        if (detailList != null && !detailList.isEmpty()) {
            LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
@@ -73,46 +87,18 @@
                // 根据project表的his_xmbm查组合关联表 ltkj_jfzhgljyxmzd 根据字段`zhxmdm`
                // - 查到 使用字段`jyxmdm`查检验项目字典表 ltkj_jyxmzd 根据字段`jyxmdm`
                // - 未查到 查项目关联表ltkj_jfxmgljyxmzd 根据字段`xmdm`
                AtomicInteger xh = new AtomicInteger();
                for (TjProject project : projects) {
                    List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
                    if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                        if (null != project.getHisXmbm()) {
                            LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
                            LtkjJyxmzd jyxmzd = getGetYbDm(project);
                            BigDecimal allPrice = new BigDecimal("0");
                            detailList.stream().filter(item -> Objects.equals(item.getParentProId(), project.getProId()))
                                    .forEach(item -> allPrice.add(item.getNowPrice()));
                            LtkjJyxmzd jyxmzd = getJyxmzd(project);
                            if (jyxmzd != null) {
                                ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
                                AtomicInteger xh = new AtomicInteger();
                                detailList.stream().filter(detail -> detail.getParentProId().equals(project.getProId()))
                                        .forEach(item -> {
                                            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                                            dto.setXh(String.valueOf(xh.getAndIncrement()));
                                            dto.setJyxm(item.getProName());
                                            TjProject project1 = projectService.getById(item.getProId());
                                            LtkjJyxmzd jyxmzd1 = getGetYbDm(project1);
                                            dto.setXmmc(jyxmzd1.getJyxmdm());
                                            dtos.add(dto);
                                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                                            detailsDto.setMxfyxmbm(project.getHisXmbm());
                                            if (project.getSfzhfy().equals("Y")) {
                                                detailsDto.setSfzhfy("1");
                                            } else {
                                                detailsDto.setSfzhfy("0");
                                            }
                                            detailsDto.setSl(project.getSl());
                                            detailsDto.setProjg(project.getProPrice());
                                            detailsDtos.add(detailsDto);
                                        });
                                String yyyyMMdd = DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyyMMdd");
                                String sqdh = "3"+yyyyMMdd.substring(2)+ RandomUtil.randomString(String.valueOf(System.currentTimeMillis()), 3);
                                lisSaveSqdxxDto.setJyxh(sqdh);
                                LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
                                String jyxh = idUtils.generateLisID();
                                lisSaveSqdxxDto.setJyxh(jyxh);
                                lisSaveSqdxxDto.setBah(tjOrder.getCardId());
                                lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
                                lisSaveSqdxxDto.setBrdm(PinyinUtil.getPinyin(tjCustomer.getCusName()));
                                lisSaveSqdxxDto.setBrdm(PinyinUtil.getFirstLetter(tjCustomer.getCusName(),""));
                                lisSaveSqdxxDto.setXb(tjCustomer.getCusSex()==1?"2":"1");
                                lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
                                AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
@@ -123,55 +109,321 @@
                                lisSaveSqdxxDto.setJtzz("");
                                Date date = new Date();
                                lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
                                lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
                                lisSaveSqdxxDto.setCyrq("");
                                lisSaveSqdxxDto.setLczd("");
                                lisSaveSqdxxDto.setFyje(allPrice.toString());
                                lisSaveSqdxxDto.setBz("");
                                lisSaveSqdxxDto.setKsbm("0101");
                                lisSaveSqdxxDto.setSqys("00029");
                                lisSaveSqdxxDto.setJyxmlistDtoList(dtos);
                                System.out.println(JSONUtil.toJsonStr(lisSaveSqdxxDto));
                                // TODO 暂不发出请求
                                if (!detailsDtos.isEmpty() && false) {
                                    AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
                                    String result = ajaxResult.get("data").toString();
                                    JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response"));
                                    log.info("请求返回 ->{}",object);
                                    String code = object.getStr("ResultCode");
                                    if(code.equals("0")){
                                        for (OutpintestapplyDetailsDto detail : detailsDtos) {
                                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                                            tree.setCardId(tjOrder.getCardId());
                                            tree.setPationid(tjCustomer.getPationId());
                                            tree.setSqdh(sqdh);
                                            tree.setFyhj(allPrice.toString());
                                            String mxfyxmbm = detail.getMxfyxmbm();
                                            tree.setHisXmdm(mxfyxmbm);
                                            tree.setType("检验");
                                            tree.setTjPrice(String.valueOf(detail.getProjg()));
                                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                                            if (detail.getSfzhfy().equals("1"))
                                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
                                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
                                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                                                wrapper3.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper3);
                                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper4 = new LambdaQueryWrapper<>();
                                                wrapper4.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper4);
                                                tree.setXmfl(ejjfxmzd.getYjkmdm());
                                            }
                                            tree.setCreateTime(DateUtil.date());
                                            ltkjJianchajianyanTreeService.save(tree);
                                        }
                                    }else {
                                        log.error("请求失败 ->{}",lisSaveSqdxxDto);
                                    }
                                lisSaveSqdxxDto.setKfbz("1");
                                List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
                                ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
                                BigDecimal allPrice = new BigDecimal("0");
                                for (TbTransition transition : detailList.stream().filter(item -> Objects.equals(item.getParentProId(), project.getProId()))
                                        .collect(Collectors.toList())) {
                                    allPrice = allPrice.add(transition.getNowPrice());
                                }
                                lisSaveSqdxxDto.setFyje(allPrice.toString());
                                lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
                                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                                dto.setJyxm(jyxmzd.getJyxmdm());
                                dto.setXmmc(jyxmzd.getJyxmmc());
                                dtos.add(dto);
                                OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                                detailsDto.setMxfyxmbm(project.getHisXmbm());
                                if (project.getSfzhfy().equals("Y")) {
                                    detailsDto.setSfzhfy("1");
                                } else {
                                    detailsDto.setSfzhfy("0");
                                }
                                detailsDto.setSl(project.getSl());
                                detailsDto.setProjg(project.getProPrice());
                                detailsDtos.add(detailsDto);
                                lisSaveSqdxxDto.setJyxmlist(dtos);
                                log.info("检验申请参数 ->{}",JSONUtil.toJsonStr(lisSaveSqdxxDto));
                                AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
                                // Lis请求返回 ->{"msg":"操作失败","code":500,"result":{"Response":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}}
                                // {"msg":"操作成功","code":200,"data":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}
                                log.info("Lis请求返回 ->{}",JSONUtil.toJsonStr(ajaxResult));
                                String result = ajaxResult.get("data").toString();
                                JSONObject object = JSONUtil.parseObj(result);
                                String code = object.getStr("ResultCode");
                                if(code.equals("1")){
                                    for (OutpintestapplyDetailsDto detail : detailsDtos) {
                                        LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                                        tree.setCardId(tjOrder.getCardId());
                                        tree.setPationid(tjCustomer.getPationId());
                                        tree.setSqdh(jyxh);
                                        tree.setFyhj(allPrice.toString());
                                        String mxfyxmbm = detail.getMxfyxmbm();
                                        tree.setHisXmdm(mxfyxmbm);
                                        tree.setType("检验");
                                        tree.setService("lis");
                                        tree.setTjPrice(String.valueOf(detail.getProjg()));
                                        LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                                        if (detail.getSfzhfy().equals("1"))
                                            wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
                                        else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
                                        List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                                        if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                                            String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                                            LambdaQueryWrapper<LtkjMxjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                                            wrapper3.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                                            LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper3);
                                            LambdaQueryWrapper<LtkjEjjfxmzd> wrapper4 = new LambdaQueryWrapper<>();
                                            wrapper4.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                                            LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper4);
                                            tree.setXmfl(ejjfxmzd.getYjkmdm());
                                        }
                                        tree.setCreateTime(DateUtil.date());
                                        ltkjJianchajianyanTreeService.save(tree);
                                    }
                                }else {
                                    log.error("请求失败 ->{}",lisSaveSqdxxDto);
                                }
                            }
                        }
                    }
                }
            }
        }
        return true;
    }
    public Boolean save(TjSampling sampling,TjOrder tjOrder,TjCustomer tjCustomer){
        AtomicInteger xh = new AtomicInteger();
        LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
//        String jyxh = idUtils.generateLisID();
        lisSaveSqdxxDto.setJyxh(sampling.getJyxh());
        lisSaveSqdxxDto.setBah(tjOrder.getCardId());
        lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
        lisSaveSqdxxDto.setBrdm(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), ""));
        lisSaveSqdxxDto.setXb(tjCustomer.getCusSex() == 1 ? "2" : "1");
        lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
        AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
        lisSaveSqdxxDto.setNl(String.valueOf(ageResult.getAge()));
        lisSaveSqdxxDto.setNldw(String.valueOf(ageResult.getUnit()));
        lisSaveSqdxxDto.setSfzh(tjCustomer.getCusIdcard());
        lisSaveSqdxxDto.setLxdh(tjCustomer.getCusPhone());
        lisSaveSqdxxDto.setJtzz("");
        Date date = new Date();
        lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
        lisSaveSqdxxDto.setCyrq("");
        lisSaveSqdxxDto.setLczd("");
        lisSaveSqdxxDto.setBz("");
        lisSaveSqdxxDto.setKsbm("0101");
        lisSaveSqdxxDto.setSqys("00029");
        lisSaveSqdxxDto.setKfbz("1");
        List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
        ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
        BigDecimal allPrice;
        if (sampling.getProId().contains(",")){
            allPrice = tbTransitionMapper.getLisPriceByTjNumAndInParentProId(tjOrder.getTjNumber(), Arrays.asList(sampling.getProId().split(",")));
        }else {
            allPrice = tbTransitionMapper.getLisPriceByTjNumAndParentProId(tjOrder.getTjNumber(), sampling.getProId());
        }
        lisSaveSqdxxDto.setFyje(allPrice.toString());
        lisSaveSqdxxDto.setYbbm(sampling.getSpecimenTypeCode());
        if (sampling.getIsMerge() == 1){
            LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjSampling::getParentId, sampling.getId());
            List<TjSampling> list = tjSamplingService.list(wrapper);
            for (TjSampling tjSampling : list) {
                TjProject project = projectService.getById(tjSampling.getProId());
                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                dto.setJyxm(tjSampling.getJyxmdm());
                dto.setXmmc(tjSampling.getProName());
                dtos.add(dto);
                OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                detailsDto.setMxfyxmbm(project.getHisXmbm());
                if (project.getSfzhfy().equals("Y")) {
                    detailsDto.setSfzhfy("1");
                } else {
                    detailsDto.setSfzhfy("0");
                }
                detailsDto.setSl(project.getSl());
                detailsDto.setProjg(project.getProPrice());
                detailsDtos.add(detailsDto);
            }
        }else {
            TjProject project = projectService.getById(sampling.getProId());
            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
            dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
            dto.setJyxm(sampling.getJyxmdm());
            dto.setXmmc(sampling.getProName());
            dtos.add(dto);
            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
            detailsDto.setMxfyxmbm(project.getHisXmbm());
            if (project.getSfzhfy().equals("Y")) {
                detailsDto.setSfzhfy("1");
            } else {
                detailsDto.setSfzhfy("0");
            }
            detailsDto.setSl(project.getSl());
            detailsDto.setProjg(project.getProPrice());
            detailsDtos.add(detailsDto);
        }
        lisSaveSqdxxDto.setJyxmlist(dtos);
        log.info("检验申请参数 ->{}", JSONUtil.toJsonStr(lisSaveSqdxxDto));
//        if (true)
//            return true;
        AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
        // Lis请求返回 ->{"msg":"操作失败","code":500,"result":{"Response":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}}
        // {"msg":"操作成功","code":200,"data":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}
        log.info("Lis请求返回 ->{}", JSONUtil.toJsonStr(ajaxResult));
        String result = ajaxResult.get("data").toString();
        JSONObject object = JSONUtil.parseObj(result);
        String code = object.getStr("ResultCode");
        if (code.equals("1")) {
            for (OutpintestapplyDetailsDto detail : detailsDtos) {
                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                tree.setCardId(tjOrder.getCardId());
                tree.setPationid(tjCustomer.getPationId());
                tree.setSqdh(sampling.getJyxh());
                tree.setFyhj(allPrice.toString());
                String mxfyxmbm = detail.getMxfyxmbm();
                tree.setHisXmdm(mxfyxmbm);
                tree.setType("检验");
                tree.setService("lis");
                tree.setTjPrice(String.valueOf(detail.getProjg()));
                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                if (detail.getSfzhfy().equals("1"))
                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
                List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                    String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                    LambdaQueryWrapper<LtkjMxjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                    wrapper3.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                    LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper3);
                    LambdaQueryWrapper<LtkjEjjfxmzd> wrapper4 = new LambdaQueryWrapper<>();
                    wrapper4.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                    LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper4);
                    tree.setXmfl(ejjfxmzd.getYjkmdm());
                }
                tree.setCreateTime(DateUtil.date());
                tree.setJxbz(sampling.getJxbz());
                ltkjJianchajianyanTreeService.save(tree);
            }
            return true;
        } else {
            log.error("请求失败 ->{}", lisSaveSqdxxDto);
            return false;
        }
    }
    public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TjProject> projects,List<TbTransition> detailList) {
//            LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
//            wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
//            wq.in(TjProject::getDeptId,deptService.getJyDeptIds());
//            List<TjProject> projects = projectService.list(wq);
        if (projects != null && !projects.isEmpty()) {
            // 根据project表的his_xmbm查组合关联表 ltkj_jfzhgljyxmzd 根据字段`zhxmdm`
            // - 查到 使用字段`jyxmdm`查检验项目字典表 ltkj_jyxmzd 根据字段`jyxmdm`
            // - 未查到 查项目关联表ltkj_jfxmgljyxmzd 根据字段`xmdm`
            AtomicInteger xh = new AtomicInteger();
            for (TjProject project : projects) {
                if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                    if (null != project.getHisXmbm()) {
                        LtkjJyxmzd jyxmzd = getJyxmzd(project);
                        if (jyxmzd != null) {
                            LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
                            String jyxh = idUtils.generateLisID();
                            lisSaveSqdxxDto.setJyxh(jyxh);
                            lisSaveSqdxxDto.setBah(tjOrder.getCardId());
                            lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
                            lisSaveSqdxxDto.setBrdm(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), ""));
                            lisSaveSqdxxDto.setXb(tjCustomer.getCusSex() == 1 ? "2" : "1");
                            lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
                            AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
                            lisSaveSqdxxDto.setNl(String.valueOf(ageResult.getAge()));
                            lisSaveSqdxxDto.setNldw(String.valueOf(ageResult.getUnit()));
                            lisSaveSqdxxDto.setSfzh(tjCustomer.getCusIdcard());
                            lisSaveSqdxxDto.setLxdh(tjCustomer.getCusPhone());
                            lisSaveSqdxxDto.setJtzz("");
                            Date date = new Date();
                            lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
                            lisSaveSqdxxDto.setCyrq("");
                            lisSaveSqdxxDto.setLczd("");
                            lisSaveSqdxxDto.setBz("");
                            lisSaveSqdxxDto.setKsbm("0101");
                            lisSaveSqdxxDto.setSqys("00029");
                            lisSaveSqdxxDto.setKfbz("1");
                            List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
                            ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
                            BigDecimal allPrice = new BigDecimal("0");
                            for (TbTransition transition : detailList.stream().filter(item -> Objects.equals(item.getParentProId(), project.getProId()))
                                    .collect(Collectors.toList())) {
                                allPrice = allPrice.add(transition.getNowPrice());
                            }
                            lisSaveSqdxxDto.setFyje(allPrice.toString());
                            lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
                            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                            dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                            dto.setJyxm(jyxmzd.getJyxmdm());
                            dto.setXmmc(jyxmzd.getJyxmmc());
                            dtos.add(dto);
                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
                            detailsDto.setMxfyxmbm(project.getHisXmbm());
                            if (project.getSfzhfy().equals("Y")) {
                                detailsDto.setSfzhfy("1");
                            } else {
                                detailsDto.setSfzhfy("0");
                            }
                            detailsDto.setSl(project.getSl());
                            detailsDto.setProjg(project.getProPrice());
                            detailsDtos.add(detailsDto);
                            lisSaveSqdxxDto.setJyxmlist(dtos);
                            log.info("检验申请参数 ->{}", JSONUtil.toJsonStr(lisSaveSqdxxDto));
                            AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
                            // Lis请求返回 ->{"msg":"操作失败","code":500,"result":{"Response":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}}
                            // {"msg":"操作成功","code":200,"data":{"ResultContent":"成功","ResultData":null,"ResultCode":"1"}}
                            log.info("Lis请求返回 ->{}", JSONUtil.toJsonStr(ajaxResult));
                            String result = ajaxResult.get("data").toString();
                            JSONObject object = JSONUtil.parseObj(result);
                            String code = object.getStr("ResultCode");
                            if (code.equals("1")) {
                                for (OutpintestapplyDetailsDto detail : detailsDtos) {
                                    LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                                    tree.setCardId(tjOrder.getCardId());
                                    tree.setPationid(tjCustomer.getPationId());
                                    tree.setSqdh(jyxh);
                                    tree.setFyhj(allPrice.toString());
                                    String mxfyxmbm = detail.getMxfyxmbm();
                                    tree.setHisXmdm(mxfyxmbm);
                                    tree.setType("检验");
                                    tree.setService("lis");
                                    tree.setTjPrice(String.valueOf(detail.getProjg()));
                                    LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                                    if (detail.getSfzhfy().equals("1"))
                                        wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
                                    else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
                                    List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                                    if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                                        String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                                        LambdaQueryWrapper<LtkjMxjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                                        wrapper3.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                                        LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper3);
                                        LambdaQueryWrapper<LtkjEjjfxmzd> wrapper4 = new LambdaQueryWrapper<>();
                                        wrapper4.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                                        LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper4);
                                        tree.setXmfl(ejjfxmzd.getYjkmdm());
                                    }
                                    tree.setCreateTime(DateUtil.date());
                                    ltkjJianchajianyanTreeService.save(tree);
                                }
                            } else {
                                log.error("请求失败 ->{}", lisSaveSqdxxDto);
                            }
                        }
                    }
@@ -203,23 +455,46 @@
    private LtkjJyxmzd getGetYbDm(TjProject project) {
    public LtkjJyxmzd getJyxmzd(TjProject project) {
        String jyxmdm = "";
        LambdaQueryWrapper<LtkjJfzhgljyxmzd> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(LtkjJfzhgljyxmzd::getZhxmdm, project.getHisXmbm());
        LtkjJfzhgljyxmzd jfzhgljyxmzd = ltkjJfzhgljyxmzdService.getOne(wrapper);
        if (jfzhgljyxmzd != null) jyxmdm = jfzhgljyxmzd.getJyxmdm();
        else {
        if (project.getSfzhfy().equals("Y")){
            LambdaQueryWrapper<LtkjJfzhgljyxmzd> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(LtkjJfzhgljyxmzd::getZhxmdm, project.getHisXmbm());
            LtkjJfzhgljyxmzd jfzhgljyxmzd = ltkjJfzhgljyxmzdService.getOne(wrapper);
            if (jfzhgljyxmzd != null) jyxmdm = jfzhgljyxmzd.getJyxmdm();
        } else {
            LambdaQueryWrapper<LtkjJfxmgljyxmzd> wrapper1 = new LambdaQueryWrapper<>();
            wrapper1.eq(LtkjJfxmgljyxmzd::getXmdm, project.getHisXmbm());
            LtkjJfxmgljyxmzd jfxmgljyxmzd = ltkjJfxmgljyxmzdService.getOne(wrapper1);
            if (jfxmgljyxmzd != null) jyxmdm = jfxmgljyxmzd.getJyxmdm();
        }
        if (StrUtil.isBlank(jyxmdm)) log.error("获取检验项目代码为空 ->{}", project);
        LambdaQueryWrapper<LtkjJyxmzd> wrapper2 = new LambdaQueryWrapper<>();
        wrapper2.eq(LtkjJyxmzd::getJyxmdm,jyxmdm);
        LtkjJyxmzd jyxmzd = jyxmzdService.getOne(wrapper2);
        if (jyxmzd != null) return jyxmzd;
        return null;
    }
    /**
     * 根据体检类型判断是否需要直接从Lis、pacs直接申请
     */
    public Boolean isUseLisAndPacsRegister(TjOrder tjOrder) {
        try {
            String useLisAndPacsRegisterDictTeam = configService.selectConfigByKey("use_lis_and_pacs_register_dict_team");
            String[] split = useLisAndPacsRegisterDictTeam.split(",");
            List<String> list = Arrays.asList(split);
            return list.contains(tjOrder.getTjType());
        } catch (Exception e) {
            return false;
        }
    }
    /**
     * 检验项目字典的检验分类代码不能存在于该接口返回中,如果存在则不能合并
     * 获取检验分类合并信息字典 存在才能合并发送 不存在则只能单次发送
     * @return
     */
    public AjaxResult getJyFlHb(){
        return lisApiMethodService.getJyflhbxx();
    }
}