zjh
2025-04-18 1630243ed75a92c60d0638e7d14477e4aadcf2b7
ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
@@ -146,90 +146,106 @@
        if (projects != null && !projects.isEmpty()) {
            String dept = configService.selectConfigByKey("request_default_dept");
            String ysbm = configService.selectConfigByKey("request_default_ysbm");
            String ysmc = configService.selectConfigByKey("request_default_ysmc");
            for (TjProject project : projects) {
                if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                    if (null != project.getHisXmbm()) {
                        SavePacsApply savePacsApply = new SavePacsApply();
                        savePacsApply.setExamNo(tjOrder.getCardId());
                        savePacsApply.setName(tjCustomer.getCusName());
                        savePacsApply.setSex(tjCustomer.getCusSex() == 1 ? "2" : "1");
                        AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
                        savePacsApply.setAge(String.valueOf(ageResult.getAge()));
                        savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
                        savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
                        savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
                        savePacsApply.setTel(tjCustomer.getCusPhone());
                        Date date = new Date();
                        String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
                        savePacsApply.setRegNo(regNo);
                        JSONObject jsonObject = JSONUtil.createObj();
                        jsonObject.putOpt("cardId", tjOrder.getCardId());
                        jsonObject.putOpt("regNo", regNo);
                        jsonObject.putOpt("name", tjCustomer.getCusName());
                        array.add(jsonObject);
                        savePacsApply.setCheckItemID(project.getHisXmbm());
                        savePacsApply.setCheckItem(project.getHisXmmc());
                        // TODO 检查部位
                        savePacsApply.setCheckPosition("-");
                        savePacsApply.setAmount(project.getProPrice());
                        savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
                        savePacsApply.setApplyDepment(dept);
                        savePacsApply.setApplyDepmentName("体检中心");
                        savePacsApply.setApplyDoctor(ysbm);
                        savePacsApply.setApplyDoctorName("王健萍");
                        savePacsApply.setExecDepment(dept);
                        savePacsApply.setExecDepmentName("体检中心");
                        savePacsApply.setCreateTime(savePacsApply.getApplyDate());
                        // TODO 检查设备
                        savePacsApply.setDevice("-");
                        // TODO 检查设备类型
                        savePacsApply.setDeviceType("-");
                        log.info("PACS检查申请 ->{}", JSONUtil.toJsonStr(savePacsApply));
                        AjaxResult ajaxResult = savePacsApply(savePacsApply);
                        log.info("返回 ->{}",JSONUtil.toJsonStr(ajaxResult));
                        String result = ajaxResult.get("data").toString();
                        JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
                        log.info("PACS请求返回 ->{}", object);
                        String code = object.getStr("ResultCode");
                        allTotal++;
                        if (code.equals("1")) {
                            successPacsList.add(savePacsApply);
                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                            tree.setCardId(tjOrder.getCardId());
                            tree.setPationid(tjCustomer.getPationId());
                            tree.setSqdh(regNo);
                            tree.setFyhj(String.valueOf(project.getProPrice()));
                            tree.setHisXmdm(project.getHisXmbm());
                            tree.setType("检查");
                            tree.setService("pacs");
                            tree.setTjPrice(String.valueOf(project.getProPrice()));
                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                            if (project.getSfzhfy().equals("Y"))
                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
                                tree.setXmfl(ejjfxmzd.getYjkmdm());
                    if(project.getSfzhfy().equalsIgnoreCase("Y")){
                        allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, project, dept, ysbm, ysmc, allTotal);
                    }else {
                        List<TjProject> bySoneId = projectService.getTjProjectListBySoneId(project.getProId().toString());
                        for (TjProject tjProject : bySoneId) {
                            if(project.getProPrice().compareTo(BigDecimal.ZERO) != 0){
                                allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, tjProject, dept, ysbm, ysmc, allTotal);
                            }
                            tree.setCreateTime(DateUtil.date());
                            ltkjJianchajianyanTreeService.save(tree);
                        } else {
                            errorPacsList.add(savePacsApply);
                        }
                    }
                }
            }
        }
        return allTotal;
    }
    private int getAllTotal(TjOrder tjOrder, TjCustomer tjCustomer, JSONArray array, ArrayList<SavePacsApply> successPacsList, ArrayList<SavePacsApply> errorPacsList, TjProject project, String dept, String ysbm, String ysmc, int allTotal) {
        if (null != project.getHisXmbm()) {
            SavePacsApply savePacsApply = new SavePacsApply();
            savePacsApply.setExamNo(tjOrder.getCardId());
            savePacsApply.setName(tjCustomer.getCusName());
            savePacsApply.setSex(tjCustomer.getCusSex() == 1 ? "2" : "1");
            AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
            savePacsApply.setAge(String.valueOf(ageResult.getAge()));
            savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
            savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
            savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
            savePacsApply.setTel(tjCustomer.getCusPhone());
            Date date = new Date();
            String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
            savePacsApply.setRegNo(regNo);
            JSONObject jsonObject = JSONUtil.createObj();
            jsonObject.putOpt("cardId", tjOrder.getCardId());
            jsonObject.putOpt("regNo", regNo);
            jsonObject.putOpt("name", tjCustomer.getCusName());
            array.add(jsonObject);
            savePacsApply.setCheckItemID(project.getHisXmbm());
            savePacsApply.setCheckItem(project.getHisXmmc());
            // TODO 检查部位
            savePacsApply.setCheckPosition("-");
            savePacsApply.setAmount(project.getProPrice());
            savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
            savePacsApply.setApplyDepment(dept);
            savePacsApply.setApplyDepmentName("体检中心");
            savePacsApply.setApplyDoctor(ysbm);
            savePacsApply.setApplyDoctorName(ysmc);
            savePacsApply.setExecDepment(dept);
            savePacsApply.setExecDepmentName("体检中心");
            savePacsApply.setCreateTime(savePacsApply.getApplyDate());
            // TODO 检查设备
            savePacsApply.setDevice("-");
            // TODO 检查设备类型
            savePacsApply.setDeviceType("-");
            log.info("PACS检查申请 ->{}", JSONUtil.toJsonStr(savePacsApply));
            AjaxResult ajaxResult = savePacsApply(savePacsApply);
            log.info("返回 ->{}",JSONUtil.toJsonStr(ajaxResult));
            String result = ajaxResult.get("data").toString();
            JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
            log.info("PACS请求返回 ->{}", object);
            String code = object.getStr("ResultCode");
            allTotal++;
            if (code.equals("1")) {
                successPacsList.add(savePacsApply);
                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                tree.setCardId(tjOrder.getCardId());
                tree.setPationid(tjCustomer.getPationId());
                tree.setSqdh(regNo);
                tree.setFyhj(String.valueOf(project.getProPrice()));
                tree.setHisXmdm(project.getHisXmbm());
                tree.setType("检查");
                tree.setService("pacs");
                tree.setTjPrice(String.valueOf(project.getProPrice()));
                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                if (project.getSfzhfy().equals("Y"))
                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
                List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                    String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                    LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
                    wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                    LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
                    LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                    wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                    LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
                    tree.setXmfl(ejjfxmzd.getYjkmdm());
                }
                tree.setCreateTime(DateUtil.date());
                ltkjJianchajianyanTreeService.save(tree);
            } else {
                errorPacsList.add(savePacsApply);
            }
        }
        return allTotal;
    }
    /*         查询检查结果、更新查询状态           */
    // 调用返回检验结果:
    // exec usp_tjjk_pacsjg ‘体检号’