zhaowenxuan
2024-10-12 f0cca3a055f5fc8dd62a96f599ab2cf9cc0a9cf7
修改lis检验申请单逻辑
1个文件已修改
90 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -76,29 +76,47 @@
                // 根据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()) {
                            LtkjJyxmzd jyxmzd = getJyxmzd(project);
                            if (jyxmzd != null) {
                            LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
                            LtkjJyxmzd jyxmzd = getGetYbDm(project);
                                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());
                            }
                            if (jyxmzd != null) {
                                ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
                                AtomicInteger xh = new AtomicInteger();
                                detailList.stream().filter(detail -> detail.getParentProId().equals(project.getProId()))
                                        .forEach(item -> {
                                lisSaveSqdxxDto.setFyje(allPrice.toString());
                                lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
                                            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                                            dto.setXh(String.valueOf(xh.getAndIncrement()));
                                            TjProject project1 = projectService.getById(item.getProId());
                                            LtkjJyxmzd jyxmzd1 = getGetYbDm(project1);
                                            if (jyxmzd1 == null) dto.setJyxm(project1.getHisXmbm());
                                            else dto.setJyxm(jyxmzd1.getJyxmdm());
                                            dto.setXmmc(project1.getProName());
                                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                                dto.setJyxm(jyxmzd.getJyxmdm());
                                dto.setXmmc(jyxmzd.getJyxmmc());
                                            dtos.add(dto);
                                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
@@ -111,42 +129,17 @@
                                            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);
                                String jyxh = idUtils.generateID();
                                lisSaveSqdxxDto.setJyxh(jyxh);
                                lisSaveSqdxxDto.setBah(tjOrder.getCardId());
                                lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
                                lisSaveSqdxxDto.setBrdm(PinyinUtil.getPinyin(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.setYbbm(jyxmzd.getJybbdm());
                                lisSaveSqdxxDto.setCyrq("");
                                lisSaveSqdxxDto.setLczd("");
                                lisSaveSqdxxDto.setFyje(allPrice.toString());
                                lisSaveSqdxxDto.setBz("");
                                lisSaveSqdxxDto.setKsbm("0101");
                                lisSaveSqdxxDto.setSqys("00029");
                                lisSaveSqdxxDto.setJyxmlistDtoList(dtos);
                                log.info("检验申请 ->{}",JSONUtil.toJsonStr(lisSaveSqdxxDto));
                                // TODO 暂不发出请求
                                if (!detailsDtos.isEmpty() && false) {
                                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(JSONUtil.parseObj(result).getStr("Response"));
                                    log.info("请求返回 ->{}",object);
                                JSONObject object = JSONUtil.parseObj(result);
                                    String code = object.getStr("ResultCode");
                                    if(code.equals("0")){
                                if(code.equals("1")){
                                        for (OutpintestapplyDetailsDto detail : detailsDtos) {
                                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                                            tree.setCardId(tjOrder.getCardId());
@@ -184,7 +177,6 @@
                    }
                }
            }
        }
        return true;
    }
@@ -210,19 +202,19 @@
    private LtkjJyxmzd getGetYbDm(TjProject project) {
    private LtkjJyxmzd getJyxmzd(TjProject project) {
        String jyxmdm = "";
        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 {
        } 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);