zjh
2025-06-05 2c19fa65dc87ea8f3d81f84154f4eeabff7f8d00
zjh20250605
7个文件已修改
286 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjDwDeptController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjExamJcsqdService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjExamJcsqdServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java
@@ -111,6 +111,7 @@
    /**
     * 获取pacs检查数据
     *
     * @param json
     * @return
     */
@@ -142,6 +143,7 @@
    /**
     * 获取Lis检验数据
     *
     * @param json
     * @return
     */
@@ -186,7 +188,7 @@
        }
        List<CsProVo> proVos = tjCheckController.getCsProVos(order.getTjNumber(),true);
        return AjaxResult.success(proVos);
//        String json = "[{\"deptName\":\"CT室\",\"proName\":\"(tj)胸部CT平扫\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"},{\"deptName\":\"彩超室\",\"proName\":\"(tj)泌尿系前列腺\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2024-11-06 10:47:15\",\"bcupdateTime\":\"2024-11-06 10:47:15\",\"bcdoctorName\":null,\"zhupdateTime\":\"2024-11-06 10:47:15\"}]";
//        String json = "[{\"proId\":\"1870371396991955206\",\"deptName\":\"DR室\",\"proName\":\"胸部DR正位\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2025-06-05 10:55:43\",\"bcupdateTime\":\"2025-06-05 10:55:43\",\"bcdoctorName\":null,\"imageUrl\":null,\"zhupdateTime\":\"2025-06-05 10:55:43\",\"deptId\":599},{\"proId\":\"1878964342340526298\",\"deptName\":\"彩超室\",\"proName\":\"肝胆脾胰肾彩超\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2025-06-05 10:55:43\",\"bcupdateTime\":\"2025-06-05 10:55:43\",\"bcdoctorName\":null,\"imageUrl\":null,\"zhupdateTime\":\"2025-06-05 10:55:43\",\"deptId\":609},{\"proId\":\"1878964342340526330\",\"deptName\":\"彩超室\",\"proName\":\"膀胱前列腺彩超\",\"type\":0,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2025-06-05 10:55:43\",\"bcupdateTime\":\"2025-06-05 10:55:43\",\"bcdoctorName\":null,\"imageUrl\":null,\"zhupdateTime\":\"2025-06-05 10:55:43\",\"deptId\":609},{\"proId\":\"1870371396991955336\",\"deptName\":\"心电图\",\"proName\":\"心电图检查\",\"type\":1,\"doctorName\":null,\"sffs\":\"统收\",\"isPay\":\"已收费\",\"qdcreateTime\":\"2025-06-05 10:55:43\",\"bcupdateTime\":\"2025-06-05 11:12:50\",\"bcdoctorName\":null,\"imageUrl\":null,\"zhupdateTime\":\"2025-06-05 11:12:50\",\"deptId\":601}]";
//        return AjaxResult.success(JSONUtil.parseArray(json));
    }
@@ -387,7 +389,265 @@
                    cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) o;
                    if (StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) tmh = jsonObject.getStr("jyxh");
                    if (StrUtil.isNotBlank(jsonObject.getStr("shys"))) shys = jsonObject.getStr("shys");
                    if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) break;
                    if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh")))
                        break;
                }
                hysqd.setTmh(tmh);
                //            if (StrUtil.isNotBlank(xmdm)) {
                //                hysqd.setXmid(xmdm);
                //                hysqd.setXmmc(project.getHisXmmc());
                //            }else {
                //                hysqd.setXmid(String.valueOf(project.getProId()));
                //                hysqd.setXmmc(project.getProName());
                //            }
                hysqd.setXmid(project.getProId().toString());
                hysqd.setXmmc(project.getProName());
                hysqd.setSqsj(format.format(tree.getCreateTime()));
                hysqd.setJgsj(format.format(new Date()));
                hysqd.setShrxm(shys);
                hysqd.setCreateTime(new Date());
                //            hysqd.setBbmc();
                hysqdService.deletedByTjhAndXmId(hysqd.getTjh(), hysqd.getXmid());
                hybgdService.deletedLtkjHybgdByTjhAndTmh(tmh);
                hysqdService.save(hysqd);
                for (Object object : lis) {
                    cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) object;
                    LtkjHybgd hybgd = new LtkjHybgd();
                    hybgd.setTmh(tmh);
                    hybgd.setJcxmid(jsonObject.getStr("jcxmid"));
                    hybgd.setJcxm(jsonObject.getStr("proName"));
                    hybgd.setJyjg(jsonObject.getStr("proResult"));
                    hybgd.setJgdw(jsonObject.getStr("company"));
                    String tjStandardGtValue = jsonObject.getStr("tjStandardGtValue");
                    String zdz = "";
                    String zxz = "";
                    if (tjStandardGtValue.contains("-")) {
                        String[] split = tjStandardGtValue.split("-");
                        zxz = split[0].trim();
                        zdz = split[1].trim();
                    }
                    hybgd.setFwzdz(zdz);
                    hybgd.setFwzgz(zxz);
                    hybgd.setFwz(tjStandardGtValue);
                    hybgd.setJysj(jsonObject.getStr("examinationDate"));
                    hybgd.setShsj(jsonObject.getStr("examinationDate"));
                    hybgd.setJyys(jsonObject.getStr("checkDoctorName"));
                    hybgd.setShysmc(shys);
                    hybgd.setYcbz(jsonObject.getStr("ycbz"));
                    hybgd.setCreateTime(new Date());
                    hybgdService.save(hybgd);
                }
                try {
                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                } catch (Exception e) {
                    log.error(String.valueOf(e));
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("同步失败请重试");
                }
                return AjaxResult.success();
            }
        } catch (NoTransactionException e) {
            log.error(String.valueOf(e));
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return AjaxResult.error("同步失败请重试");
        }
    }
    @Transactional
    @PostMapping("/newasyncPacs")
    public AjaxResult newasyncPacs(@RequestBody String json) {
        try {
            log.info("合并检测同步参数 ->{}", json);
//        try {
//            Thread.sleep(2000);
//        } catch (InterruptedException ignored) {
//
//        }
//        if (true)
//            return AjaxResult.error("同步失败请重试");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(json);
            cn.hutool.json.JSONArray pacss = parseObj.getJSONArray("pacs");
            cn.hutool.json.JSONArray lis = parseObj.getJSONArray("lis");
            cn.hutool.json.JSONObject tj = parseObj.getJSONObject("tj");
            if (pacss != null && !pacss.isEmpty()) {
                cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) pacss.get(0);
                String tjNum = entries.getStr("tjNum");
                LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjOrder::getTjNumber, tjNum);
                TjOrder order = tjOrderService.getOne(wrapper1);
                for (Object o : pacss) {
                    cn.hutool.json.JSONObject pacs = (cn.hutool.json.JSONObject) o;
                    if (pacs != null && !pacs.isEmpty()) {
                        LtkjExamJcsqd ltkjExamJcsqd = new LtkjExamJcsqd();
                        ltkjExamJcsqd.setTjh(order.getCardId());
                        LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
                        queryWrapper.eq(LtkjJianchajianyanTree::getCardId, order.getCardId());
                        TjProject project = projectService.getById(tj.getStr("proId"));
                        String xmdm = project.getHisXmbm();
                        if (project.getSfzhfy().equals("N")) {
                            LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
                            wrapper.eq(TjProject::getProParentId, project.getProId());
                            List<TjProject> list = projectService.list(wrapper);
                            for (TjProject tjProject : list) {
                                if (StrUtil.isNotBlank(tjProject.getHisXmbm())) {
                                    xmdm = tjProject.getHisXmbm();
                                    break;
                                }
                            }
                        }
                        queryWrapper.eq(LtkjJianchajianyanTree::getType, "检查");
                        queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm, xmdm);
                        LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
                        String brid = pacs.getStr("brid");
                        ltkjExamJcsqd.setTmh(brid + tree.getHisXmdm());
                        ltkjExamJcsqd.setBgys(pacs.getStr("checkDoctorName"));
                        ltkjExamJcsqd.setBgysid(pacs.getStr("checkDoctorCode"));
                        ltkjExamJcsqd.setSqsj(format.format(tree.getCreateTime()));
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
                        Date reportDate = null;
                        try {
                            reportDate = dateFormat.parse(pacs.getStr("reportDate"));
                            ltkjExamJcsqd.setJgsj(format.format(reportDate));
                        } catch (ParseException ignored) {
                            ltkjExamJcsqd.setJgsj(format.format(new Date()));
                        }
                        String checkParts = pacs.getStr("checkParts");
                        //            ltkjExamJcsqd.setJcxmmc(checkParts);
                        //            ltkjExamJcsqd.setJcxmid(xmdm);
                        ltkjExamJcsqd.setJcxmmc(project.getProName());
                        ltkjExamJcsqd.setJcxmid(project.getProId().toString());
                        ltkjExamJcsqd.setBw(checkParts);
                        ltkjExamJcsqd.setJgzt(pacs.getStr("diagnosis"));
                        ltkjExamJcsqd.setJgbx(pacs.getStr("examination"));
                        ltkjExamJcsqd.setSgorzd("1");
                        ltkjExamJcsqd.setCreateTime(new Date());
//                        ltkjExamJcsqdService.deletedLtkjJcsqdByTjhAndXmId(ltkjExamJcsqd.getTjh(), ltkjExamJcsqd.getJcxmid());
                        ltkjExamJcsqdService.sdtbdeletedLtkjJcsqdByTjhandtmh(ltkjExamJcsqd.getTjh(), ltkjExamJcsqd.getTmh());
                        boolean save1 = ltkjExamJcsqdService.save(ltkjExamJcsqd);
                        log.info("手动同步检查结果状态 ->{}", ltkjExamJcsqd.getJgzt());
                        if (StringUtil.isNotBlank(ltkjExamJcsqd.getJgzt())) {
                            jcycxmService.deletedByTjh(order.getTjNumber());
                            String[] split = ltkjExamJcsqd.getJgzt().replaceAll("\n", "").split("。|;|;|,|,");
                            log.info("进入检查结果异常提取分割方法体 ->{}->{}", order.getTjNumber(), split);
                            for (String jg : split) {
                                if (StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                        && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                                        && !jg.contains("未见明显") && !jg.contains("正常") && !jg.contains("双侧椎间孔无狭窄")) {
                                    TjJcycxm jcycxm = new TjJcycxm();
                                    jcycxm.setTjh(order.getTjNumber());
                                    jcycxm.setYqid("jczyy");
                                    String[] split1 = ltkjExamJcsqd.getJcxmid().split(";");
                                    jcycxm.setProId(split1[0]);
                                    jcycxm.setProName(ltkjExamJcsqd.getJcxmmc());
                                    jcycxm.setCreateTime(new Date());
                                    jcycxm.setJcjg(jg);
                                    jcycxmService.save(jcycxm);
                                }
                            }
                        }
                        LtkjExamJcbgd ltkjExamJcbgd = new LtkjExamJcbgd();
                        ltkjExamJcbgd.setTjh(ltkjExamJcsqd.getTjh());
                        ltkjExamJcbgd.setTmh(ltkjExamJcsqd.getTmh());
                        //            ltkjExamJcbgd.setXmdm(ltkjExamJcsqd.getJcxmid());
                        //            ltkjExamJcbgd.setXmmc(ltkjExamJcsqd.getJcxmmc());
                        ltkjExamJcbgd.setXmdm(project.getProId().toString());
                        ltkjExamJcbgd.setXmmc(project.getProName());
                        ltkjExamJcbgd.setBgUrl("");
                        ltkjExamJcbgd.setShysxm(pacs.getStr("reportDoctorName"));
                        ltkjExamJcbgd.setShysdm(pacs.getStr("reportDoctorCode"));
                        //            ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt());
                        //            ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgbx());
                        ltkjExamJcbgd.setZdsj(ltkjExamJcsqd.getJgsj());
                        ltkjExamJcbgd.setSqsj(ltkjExamJcsqd.getSqsj());
                        ltkjExamJcbgd.setJcbw(ltkjExamJcsqd.getJcxmmc());
                        ltkjExamJcbgd.setBgNr(ltkjExamJcsqd.getJgbx());
                        ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgzt());
                        ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt());
                        ltkjExamJcbgd.setSgorzd("1");
                        ltkjExamJcsqd.setCreateTime(new Date());
                        ltkjExamJcbgdService.deletedLtkjJcbgdByTjhAndTmhA(ltkjExamJcsqd.getTjh(), ltkjExamJcsqd.getTmh());
                        boolean save2 = ltkjExamJcbgdService.save(ltkjExamJcbgd);
                        if (save1 && save2) {
                            try {
                                testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                            } catch (Exception e) {
                                log.error(String.valueOf(e));
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return AjaxResult.error("同步失败请重试");
                            }
                        } else {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            return AjaxResult.error("同步失败请重试");
                        }
                    }
                }
                return AjaxResult.success();
            } else {
                cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) lis.get(0);
                String tjNum = entries.getStr("tjNum");
                LtkjHysqd hysqd = new LtkjHysqd();
                TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
                hysqd.setTjh(order.getCardId());
                String mzh = order.getCardId();
                LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(LtkjJianchajianyanTree::getCardId, mzh);
                TjProject project = projectService.getById(tj.getStr("proId"));
                String xmdm = project.getHisXmbm();
                queryWrapper.eq(LtkjJianchajianyanTree::getType, "检验");
                queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm, xmdm);
                LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
                String tmh;
                if (tree == null) {
                    tree = new LtkjJianchajianyanTree();
                    tree.setHisXmdm(xmdm);
                    tree.setCreateTime(new Date());
                    String sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                    queryWrapper = new LambdaQueryWrapper<>();
                    queryWrapper.eq(LtkjJianchajianyanTree::getSqdh, sqdh);
                    if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                        tree.setSqdh(sqdh);
                    } else {
                        while (true) {
                            sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                            queryWrapper = new LambdaQueryWrapper<>();
                            queryWrapper.eq(LtkjJianchajianyanTree::getSqdh, sqdh);
                            if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                                tree.setSqdh(sqdh);
                                break;
                            }
                        }
                    }
                    tmh = tree.getSqdh() + "_" + tree.getHisXmdm();
                } else {
                    tmh = tree.getSqdh();
                }
                String shys = "";
                for (Object o : lis) {
                    cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) o;
                    if (StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) tmh = jsonObject.getStr("jyxh");
                    if (StrUtil.isNotBlank(jsonObject.getStr("shys"))) shys = jsonObject.getStr("shys");
                    if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh")))
                        break;
                }
                hysqd.setTmh(tmh);
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -2018,9 +2018,9 @@
                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);
                if(null !=  tjProjectList && !tjProjectList.isEmpty()){
                Map<String, List<TjProject>> listMap = tjProjectList.stream().collect(Collectors.groupingBy(TjProject::getSpecimenType));
                log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap));
                boolean save = lisApiMethod.save(listMap, tjOrder, customer);
@@ -2032,6 +2032,8 @@
                    tjSampling.setIsSignFor("0");
                }
                tjSamplingService.updateBatchById(list);
                }
            }else{
                try {
                    LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjDwDeptController.java
@@ -117,6 +117,9 @@
    @DeleteMapping("/{ids}")
    @ApiOperation(value = "删除单位部门信息")
    public AjaxResult remove(@PathVariable String[] ids) {
        if (!dwGroupingService.list(new LambdaQueryWrapper<TjDwGrouping>().in(TjDwGrouping::getDwDeptId,Arrays.asList(ids))).isEmpty()){
            return AjaxResult.error("该部门下有分组信息,请先删除分组信息!");
        }
        return toAjax(dwDeptService.removeByIds(Arrays.asList(ids)));
    }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1416,8 +1416,8 @@
                        remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                        List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                        xdPictureService.saveBatch(xdPictureList);
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
//                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
//                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                        log.info("调用his开启 进入不收费方法 该方法执行完毕");
                    } else {
                        log.info("调用his开启 进入收费方法 该体检人员收费:"+tjOrder.getTjNumber());
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjExamJcsqdMapper.java
@@ -31,6 +31,9 @@
    @Delete ("DELETE FROM ltkj_exam_jcsqd WHERE tjh=#{tjh} and tmh=#{tmh}   and lx=1 ")
    void  deletedLtkjJcsqdByTjhandtmh(@Param("tjh") String tjh,@Param("tmh") String tmh);
    @Delete ("DELETE FROM ltkj_exam_jcsqd WHERE tjh=#{tjh} and tmh=#{tmh}   and lx=0 ")
    void  sdtbdeletedLtkjJcsqdByTjhandtmh(@Param("tjh") String tjh,@Param("tmh") String tmh);
    @Delete ("DELETE FROM ltkj_exam_jcsqd WHERE tjh=#{tjh} and lx=1 ")
    void  deletedLtkjJcsqdByTjhandtmh1(@Param("tjh") String tjh);
ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjExamJcsqdService.java
@@ -25,6 +25,9 @@
    void  deletedLtkjJcsqdByTjhandtmh(String tjh,String tmh);
    void  sdtbdeletedLtkjJcsqdByTjhandtmh(String tjh,String tmh);
    void  deletedLtkjJcsqdByTjhandtmh1(String tjh);
    List<LtkjExamJcsqd> getLtkjJcsqdByTjh(String tjh);
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjExamJcsqdServiceImpl.java
@@ -62,6 +62,11 @@
    }
    @Override
    public void sdtbdeletedLtkjJcsqdByTjhandtmh(String tjh, String tmh) {
        mapper.sdtbdeletedLtkjJcsqdByTjhandtmh(tjh,tmh);
    }
    @Override
    public void deletedLtkjJcsqdByTjhandtmh1(String tjh) {
        mapper.deletedLtkjJcsqdByTjhandtmh1(tjh);
    }