zhaowenxuan
2024-10-16 cd6114bf85d19e6bdcd6a17c66f34b8c838870d5
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -65,7 +65,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<>();
@@ -179,6 +181,118 @@
        }
        return true;
    }
    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.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;
    }
    /**
     * 获取检验结果
@@ -202,7 +316,7 @@
    private LtkjJyxmzd getJyxmzd(TjProject project) {
    public LtkjJyxmzd getJyxmzd(TjProject project) {
        String jyxmdm = "";
        if (project.getSfzhfy().equals("Y")){
            LambdaQueryWrapper<LtkjJfzhgljyxmzd> wrapper = new LambdaQueryWrapper<>();