zjh
2025-04-10 6d09c6301492d3095ff64dba2336f0d0b69638e6
zjh20250410
14个文件已修改
783 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAdviceController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 535 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjDwGroupingController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProAdvicerulesController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjRulesController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/test/java/zjhTest.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java
@@ -133,10 +133,10 @@
            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper1);
            name = tjCustomer.getCusName();
        }
//        List<Map<String, Object>> jcList = testMapper.getPacsJcList(name, mzh, start, end);
//        return AjaxResult.success(jcList);
        String json1 = "[{\"reportDoctorCode\":114,\"deptName\":\"体检中心\",\"checkDoctorCode\":114,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆泌尿系前列腺\",\"zyh\":\"-\",\"diagnosis\":\"前列腺增生\",\"checkDoctorName\":\"李霞\",\"F_MACHINE_NAME_LIST\":\"GE-P6\",\"reportDate\":\"2024.11.06 11:49:20\",\"examinationDate\":\"2024.11.06 11:54:58\",\"examination\":\"双肾大小、形态正常,包膜光滑平整,实质回声分布均匀,皮髓界限清晰,集合系统未见分离。rnCDFI:双肾血流呈“树枝状”分布,灌注良好;双侧输尿管未见扩张。rn膀胱充盈佳,壁厚度正常,内壁光整,腔内未探及异常回声。rn经腹部前列腺大小约34mm×35mm×30mm,形态饱满,包膜完整,实质回声欠均匀,内腺稍增大。rnCDFI:腺体内未探及异常血流信号。\",\"name\":\"张小兵\",\"patientAge\":\"53岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.204.1730864961.484.897.557\",\"reportDoctorName\":\"李霞\",\"studyReport\":525696,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"}]";
        return AjaxResult.success(JSONUtil.parseArray(json1));
        List<Map<String, Object>> jcList = testMapper.getPacsJcList(name, mzh, start, end);
        return AjaxResult.success(jcList);
//        String json1 = "[{\"reportDoctorCode\":114,\"deptName\":\"体检中心\",\"checkDoctorCode\":114,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆泌尿系前列腺\",\"zyh\":\"-\",\"diagnosis\":\"前列腺增生\",\"checkDoctorName\":\"李霞\",\"F_MACHINE_NAME_LIST\":\"GE-P6\",\"reportDate\":\"2024.11.06 11:49:20\",\"examinationDate\":\"2024.11.06 11:54:58\",\"examination\":\"双肾大小、形态正常,包膜光滑平整,实质回声分布均匀,皮髓界限清晰,集合系统未见分离。rnCDFI:双肾血流呈“树枝状”分布,灌注良好;双侧输尿管未见扩张。rn膀胱充盈佳,壁厚度正常,内壁光整,腔内未探及异常回声。rn经腹部前列腺大小约34mm×35mm×30mm,形态饱满,包膜完整,实质回声欠均匀,内腺稍增大。rnCDFI:腺体内未探及异常血流信号。\",\"name\":\"张小兵\",\"patientAge\":\"53岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.204.1730864961.484.897.557\",\"reportDoctorName\":\"李霞\",\"studyReport\":525696,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"}]";
//        return AjaxResult.success(JSONUtil.parseArray(json1));
    }
    /**
@@ -166,10 +166,10 @@
            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper1);
            name = tjCustomer.getCusName();
        }
//        List<Map<String, Object>> jcList = testMapper.getLisJyList(name, mzh, start, end);
//        return AjaxResult.success(jcList);
        String json1 = "[{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四1\",\"patientAge\":\"20\",\"mzh\":\"810001246120745\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\",\"conclusion\":\"异常\",\"tjStandardGtValue\":\"1 - 5\",\"company\":\"毫克\",\"checkDoctorName\":\"检测医师\",\"jcxmid\":\"123\",\"shys\":\"审核医师\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四2\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"}]";
        return AjaxResult.success(JSONUtil.parseArray(json1));
        List<Map<String, Object>> jcList = testMapper.getLisJyList(name, mzh, start, end);
        return AjaxResult.success(jcList);
//        String json1 = "[{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四1\",\"patientAge\":\"20\",\"mzh\":\"810001246120745\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\",\"conclusion\":\"异常\",\"tjStandardGtValue\":\"1 - 5\",\"company\":\"毫克\",\"checkDoctorName\":\"检测医师\",\"jcxmid\":\"123\",\"shys\":\"审核医师\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四2\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"}]";
//        return AjaxResult.success(JSONUtil.parseArray(json1));
    }
    @GetMapping("/getTjList")
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAdviceController.java
@@ -147,7 +147,6 @@
            if (null != list && !list.isEmpty()) {
                List<Long> longs = list.stream().map(TjUserAdvice::getAdviceId).collect(Collectors.toList());
                wq.in(TjAdvice::getId,longs);
//                wq.last("and (ad_sex=1 OR ad_sex=2)");
                Page<TjAdvice> kjbqPage = tjAdviceService.page(page1,wq);
                return AjaxResult.success(kjbqPage);
            }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -66,8 +66,8 @@
 * @Date: 2022/12/6 14:29
 */
@RestController
@RequestMapping ("/check")
@Api (tags = "AAAAAAAAAAAA总检医师相关接口")
@RequestMapping("/check")
@Api(tags = "AAAAAAAAAAAA总检医师相关接口")
@Slf4j
public class TjCheckController {
    @Resource
@@ -139,24 +139,23 @@
    @Resource
    private TjXdPictureController pictureController;
    @GetMapping ("/ceshicc")
    @ApiOperation (value = "测试调用存储过程耗时接口")
    @GetMapping("/ceshicc")
    @ApiOperation(value = "测试调用存储过程耗时接口")
    @RepeatSubmit
//    @Transactional
    public AjaxResult ceshicc() {
        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd1("8003241206085556");
        if(null !=jcsqdList && !jcsqdList.isEmpty()){
        if (null != jcsqdList && !jcsqdList.isEmpty()) {
            jcsqdService.deletedLtkjJcsqdByTjhAndTmh("8003241206085556");
            jcbgdService.deletedLtkjJcbgdByTjhAndTmh("8003241206085556");
            jcsqdService.saveBatch(jcsqdList);
            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd1("8003241206085556");
            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
            if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList);
            DynamicDataSourceContextHolder.clearDataSourceType();
        }
        return AjaxResult.success();
    }
//    @GetMapping ("/ceshi")
@@ -187,11 +186,9 @@
//    }
    @GetMapping ("/getOperationPermissionsByTjNum")
    @ApiOperation (value = "(初审页面  和 医生页面)根据体检号获取是否可操作权限接口  true可操作  反之不可")
    public AjaxResult getOperationPermissionsByTjNum(@ApiParam (value = "体检号") @RequestParam String tjNumber) {
    @GetMapping("/getOperationPermissionsByTjNum")
    @ApiOperation(value = "(初审页面  和 医生页面)根据体检号获取是否可操作权限接口  true可操作  反之不可")
    public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "体检号") @RequestParam String tjNumber) {
        TjOrder order = orderService.getOrderByTjNum(tjNumber);
        if (null != order) {
            Integer status = order.getStatus();
@@ -206,18 +203,18 @@
    }
    @GetMapping ("/getCsList")
    @ApiOperation (value = "初审查询体检记录客户列表")//0待1已
    @GetMapping("/getCsList")
    @ApiOperation(value = "初审查询体检记录客户列表")//0待1已
    @Transactional
    public AjaxResult getCsList(@ApiParam (value = "审核状态  0待审核  1已审核") @RequestParam (required = false) Integer checkStatus,
                                @ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer page,
                                @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                @ApiParam (value = "体检单号") @RequestParam (required = false) String tjNumber,
                                @ApiParam (value = "单位") @RequestParam (required = false) Long compId,
                                @ApiParam (value = "姓名)") @RequestParam (required = false) String name,
                                @ApiParam (value = "套餐名)") @RequestParam (required = false) String tcm,
                                @ApiParam (value = "开始时间") @RequestParam (required = false) String beginTime,
                                @ApiParam (value = "结束时间") @RequestParam (required = false) String endTime) {
    public AjaxResult getCsList(@ApiParam(value = "审核状态  0待审核  1已审核") @RequestParam(required = false) Integer checkStatus,
                                @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
                                @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
                                @ApiParam(value = "单位") @RequestParam(required = false) Long compId,
                                @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                @ApiParam(value = "套餐名)") @RequestParam(required = false) String tcm,
                                @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime,
                                @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) {
//        DateTime beginTimes = null;
//        DateTime endTimes = null;
@@ -302,16 +299,16 @@
        if (beginTime == null) beginTime = "";
        if (endTime == null) endTime = "";
        if (tcm == null) tcm = "";
        return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name,tcm));
        return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name, tcm));
    }
    /**
     * 初审
     */
    @GetMapping ("/cSWebGetProByTjNumAndOrderId")
    @ApiOperation (value = "(初审页面)点击体检人员展示体检项目接口")
    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam (value = "体检号") @RequestParam String tjNumber) {
    @GetMapping("/cSWebGetProByTjNumAndOrderId")
    @ApiOperation(value = "(初审页面)点击体检人员展示体检项目接口")
    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam(value = "体检号") @RequestParam String tjNumber) {
//        List<TjOrderRemark> orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber);
//        List<CsProVo> list = new ArrayList<>();
//        if (null != orderRemarkList && orderRemarkList.size() > 0) {
@@ -340,12 +337,12 @@
//            });
//        }
        List<CsProVo> list = getCsProVos(tjNumber,false);
        List<CsProVo> list = getCsProVos(tjNumber, false);
        return AjaxResult.success(list);
    }
    public List<CsProVo> getCsProVos(String tjNumber,boolean sfzpacs) {
        List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber,sfzpacs);
    public List<CsProVo> getCsProVos(String tjNumber, boolean sfzpacs) {
        List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber, sfzpacs);
        if (null != list && !list.isEmpty()) {
            list.sort(new Comparator<CsProVo>() {
                @Override
@@ -361,12 +358,12 @@
    /**
     * 初审
     */
    @GetMapping ("/confirmOrder")
    @ApiOperation (value = "初审(并修改状态)接口")
    @GetMapping("/confirmOrder")
    @ApiOperation(value = "初审(并修改状态)接口")
    @Transactional
    public AjaxResult confirmOrder(@ApiParam (value = "tjNumber") @RequestParam String tjNumber,
                                   @ApiParam (value = "状态 0同意 1拒绝 默认同意") @RequestParam (defaultValue = "0") Integer status,
                                   @ApiParam (value = "驳回理由") @RequestParam (required = false) String remark) {
    public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber,
                                   @ApiParam(value = "状态 0同意 1拒绝 默认同意") @RequestParam(defaultValue = "0") Integer status,
                                   @ApiParam(value = "驳回理由") @RequestParam(required = false) String remark) {
        int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if (num > 0) return AjaxResult.error("请检查是否存在未检或延期项目");
        if (null != tjNumber) {
@@ -404,8 +401,8 @@
    /**
     * 同步sql server数据到本地数据库数据接口
     */
    @GetMapping ("/dataSynchronization")
    @ApiOperation (value = "同步sql server数据到本地数据库数据接口")
    @GetMapping("/dataSynchronization")
    @ApiOperation(value = "同步sql server数据到本地数据库数据接口")
    @RepeatSubmit
//    @Transactional
    public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
@@ -413,7 +410,7 @@
        RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber);
        try {
            boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS);
            if (tryLock){
            if (tryLock) {
                //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
                final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
@@ -580,10 +577,10 @@
                            /*同步检查 his存储过程*/
                            String jctbfs = configService.selectConfigByKey("jctbfs");
                            AjaxResult results =null;
                            if (jctbfs.equalsIgnoreCase("Y")){
                            AjaxResult results = null;
                            if (jctbfs.equalsIgnoreCase("Y")) {
                                results = service.getHISDataNew("Getexamreportinfo", maps);
                            }else{
                            } else {
                                results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'");
                            }
@@ -650,14 +647,14 @@
                                    }
                                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
                                    int maxRetries=3;
                                    int maxRetries = 3;
                                    for (int attempt = 0; attempt < maxRetries; attempt++) {
                                        try {
                                            testMapper.updateDetailByTjJcCall(order.getCardId(),
                                                    String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                                            break;
                                        } catch (Exception e) {
                                            if (attempt==maxRetries-1){
                                            if (attempt == maxRetries - 1) {
                                                throw e;
                                            }
                                            try {
@@ -666,20 +663,19 @@
                                            }
                                        }
                                    }
                                }else {
                                } else {
                                    return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!");
                                }
                            }
                        }
                        return AjaxResult.success("同步成功");
                    }
                    else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")){
                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(),dqyyyqbm);
                        if(null != hysqdList && !hysqdList.isEmpty()){
                    } else if (null != sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")) {
                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(), dqyyyqbm);
                        if (null != hysqdList && !hysqdList.isEmpty()) {
                            for (LtkjHysqd hysqd : hysqdList) {
                                LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
                                LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh());
                                if (null != jybgid) {
                                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
                                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh());
                                    ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh());
                                }
                                if (ltkjHysqdService.save(hysqd)) {
@@ -689,58 +685,56 @@
                            }
                            DynamicDataSourceContextHolder.clearDataSourceType();
                        }
                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(),dqyyyqbm);
                        if(null !=jcsqdList && !jcsqdList.isEmpty()){
                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(), dqyyyqbm);
                        if (null != jcsqdList && !jcsqdList.isEmpty()) {
                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
                            jcsqdService.saveBatch(jcsqdList);
                            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId());
                            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
                            if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList);
                            DynamicDataSourceContextHolder.clearDataSourceType();
                        }
//                        String tjNumber1 = order.getTjNumber();
//                        log.info("查询出来的体检号是: " + tjNumber1);
//                        log.info("传过来的的体检号是: "+tjNumber);
                        Map<String,Object> map=new HashMap<>();
                        map.put("tjnum",tjNumber);
                        Map<String, Object> map = new HashMap<>();
                        map.put("tjnum", tjNumber);
                        testMapper.tjUpdateDetatilByVi(map);
                    }else {
                    } else {
                        //化验
                        testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                    }
                  //检查
                    orderService.tjLispacstongbujianyi(null,null,null,null);
                    //检查
                    orderService.tjLispacstongbujianyi(null, null, null, null);
                    return AjaxResult.success("同步成功");
                }
                return AjaxResult.error("未查到该人员体检记录");
            }
            return AjaxResult.error("该人员数据正在同步中,请稍等");
        } catch (InterruptedException e) {
            log.error(String.valueOf(e),e.getMessage());
            log.error(String.valueOf(e), e.getMessage());
            return AjaxResult.error("该人员数据正在同步中,请稍等");
        }finally {
        } finally {
            lock.unlock();
        }
    }
    /**
     * 同步sql server数据到本地数据库数据接口
     */
    @GetMapping ("/dataSynchronizationApi")
    @ApiOperation (value = "同步sql server数据到本地数据库数据接口")
    @GetMapping("/dataSynchronizationApi")
    @ApiOperation(value = "同步sql server数据到本地数据库数据接口")
    @RepeatSubmit
//    @Transactional
    public AjaxResult dataSynchronizationApi(@RequestParam String tjNumber) {
        RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber);
        try {
            boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS);
            if (tryLock){
            if (tryLock) {
                String doctorId = configService.selectConfigByKey("request_default_check_doctorId");
                //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
                final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
                String dqyyyqbm = configService.selectConfigByKey("dqyyyqbm");
                final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
                TjOrder order = orderService.getOrderByTjNum(tjNumber);
                if (null != order) {
@@ -748,16 +742,9 @@
                    //开启字典弹窗
                    if ("Y".equals(getInfoFromSqlData)) {
                        tbhyxm(order);
                        //同步化验项目
//                        testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                        //同步检查项目
//                        testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                        asyncService.updateCheckType(order.getTjNumber());
                    }
                    // 11:42:04.617 [http-nio-5000-exec-72] ERROR c.a.d.p.DruidDataSource - [init,905] - init datasource error, url: jdbc:sqlserver://192.168.10.2:1433;DatabaseName=hospital;&characterEncoding=utf8
                    //com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“No appropriate protocol (protocol is disabled or cipher suites are inappropriate)”。
                    //
                    //开启和his对接
                    if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
                        List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId());
@@ -778,10 +765,7 @@
                            String result1 = getAjaxResult(result);
                            JSONObject object = getJSONObject(result1);
                            String code = object.getStr("ResultCode");
//                            if (null == code || !code.equals("0")) {
//                                return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!");
//                            }
                            if(null != code && code.equals("0")) {
                            if (null != code && code.equals("0")) {
                                JSONArray data = object.getJSONArray("ResultData");
                                for (Object datum : data) {
                                    JSONObject jsonObject = (JSONObject) datum;
@@ -817,7 +801,7 @@
                                        saveHybgd(hysqd);
                                    }
                                }
                            }else{
                            } else {
                                resultMsg = "化验项目暂时未出结果,请稍后同步!!!";
                            }
                            //同步化验项目
@@ -835,10 +819,10 @@
                            HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
                            /*同步检查 his存储过程*/
                            String jctbfs = configService.selectConfigByKey("jctbfs");
                            AjaxResult results =null;
                            if (jctbfs.equalsIgnoreCase("Y")){
                            AjaxResult results = null;
                            if (jctbfs.equalsIgnoreCase("Y")) {
                                results = service.getHISDataNew("Getexamreportinfo", maps);
                            }else{
                            } else {
                                results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'");
                                DynamicDataSourceContextHolder.clearDataSourceType();
                            }
@@ -887,59 +871,31 @@
                                    }
                                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
                        /*            List<LtkjExamJcsqd> jcsqdList = jcsqdService.getLtkjJcsqdByTjh(order.getCardId());
                                    if(null !=jcsqdList && !jcsqdList.isEmpty()) {
                                        for (LtkjExamJcsqd jcsqd : jcsqdList) {
                                            if (StringUtil.isNotBlank(jcsqd.getJgzt())) {
                                                String[] split = jcsqd.getJgzt().replaceAll("\n", "").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(dqyyyqbm);
                                                        String[] split1 = jcsqd.getJcxmid().split(";");
                                                        jcycxm.setProId(split1[0]);
                                                        jcycxm.setProName(jcsqd.getJcxmmc());
                                                        jcycxm.setCreateTime(new Date());
                                                        jcycxm.setJcjg(jg);
                                                        jcycxmService.save(jcycxm);
                                                    }
                                                }
                                            }
                                        }
                                    }*/
                                    testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                                }else {
//                                    return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!");
                                    resultMsg+="\n检查项目暂时未出结果,请稍后同步!!!";
                                } else {
                                    resultMsg += "\n检查项目暂时未出结果,请稍后同步!!!";
                                }
                            }
                        }
                                LambdaQueryWrapper<TjXdtgmdjg> wq=new LambdaQueryWrapper<>();
                                wq.eq(TjXdtgmdjg::getTjh,tjNumber);
                                List<TjXdtgmdjg> list = xdtgmdjgService.list(wq);
                                if(null !=list && !list.isEmpty()){
                                    for (TjXdtgmdjg xdtgmdjg : list) {
                                        pictureController.saveTjXdtgmdjgByJcbgd(xdtgmdjg);
                                    }
                                }
                        LambdaQueryWrapper<TjXdtgmdjg> wq = new LambdaQueryWrapper<>();
                        wq.eq(TjXdtgmdjg::getTjh, tjNumber);
                        List<TjXdtgmdjg> list = xdtgmdjgService.list(wq);
                        if (null != list && !list.isEmpty()) {
                            for (TjXdtgmdjg xdtgmdjg : list) {
                                pictureController.saveTjXdtgmdjgByJcbgd(xdtgmdjg);
                            }
                        }
                        if (StrUtil.isBlank(resultMsg))
                            return AjaxResult.success("同步成功");
                        else return AjaxResult.error(resultMsg);
                    }
                    //化验
//                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                    //检查
//                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
                    return AjaxResult.success("同步成功");
                }
                return AjaxResult.error("未查到该人员体检记录");
            }
            return AjaxResult.error("该人员数据正在同步中,请稍等");
        } catch (InterruptedException e) {
            log.error(String.valueOf(e),e.getMessage());
            log.error(String.valueOf(e), e.getMessage());
            return AjaxResult.error("该人员数据正在同步中,请稍等");
        } finally {
            lock.unlock();
@@ -1059,17 +1015,17 @@
    /**
     * 查询体检记录客户列表
     */
    @GetMapping ("/getList")
    @ApiOperation (value = "查询体检记录客户列表")//0待1已
    @GetMapping("/getList")
    @ApiOperation(value = "查询体检记录客户列表")//0待1已
//    @PreAuthorize("@ss.hasPermi('check:check:getList')")
    public AjaxResult getList(@ApiParam (value = "审核状态0待审核1已审核") @RequestParam (required = false) Integer checkStatus,
                              @ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer page,
                              @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                              @ApiParam (value = "体检单号") @RequestParam (required = false) String tjNumber,
                              @ApiParam (value = "单位") @RequestParam (required = false) Long compId,
                              @ApiParam (value = "姓名)") @RequestParam (required = false) String name,
                              @ApiParam (value = "开始时间") @RequestParam (required = false) String beginTime,
                              @ApiParam (value = "结束时间") @RequestParam (required = false) String endTime) {
    public AjaxResult getList(@ApiParam(value = "审核状态0待审核1已审核") @RequestParam(required = false) Integer checkStatus,
                              @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
                              @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                              @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
                              @ApiParam(value = "单位") @RequestParam(required = false) Long compId,
                              @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                              @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime,
                              @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) {
        //        String config = configService.selectConfigByKey("tj_confirm");
//        DateTime beginTimes = null;
//        DateTime endTimes = null;
@@ -1170,17 +1126,16 @@
    }
    @GetMapping ("/getBghsList")
    @ApiOperation (value = "报告核收页面查询接口")//0待1已
    @GetMapping("/getBghsList")
    @ApiOperation(value = "报告核收页面查询接口")//0待1已
//    @PreAuthorize("@ss.hasPermi('check:check:getList')")
    public AjaxResult getBghsList(@ApiParam (value = "页码数(默认1)") @RequestParam (defaultValue = "1") Integer page,
                              @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                              @ApiParam (value = "体检单号") @RequestParam (required = false) String tjNumber,
                              @ApiParam (value = "单位") @RequestParam (required = false) Long compId,
                              @ApiParam (value = "姓名)") @RequestParam (required = false) String name,
                              @ApiParam (value = "开始时间") @RequestParam (required = false) String beginTime,
                              @ApiParam (value = "结束时间") @RequestParam (required = false) String endTime) {
    public AjaxResult getBghsList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
                                  @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                  @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber,
                                  @ApiParam(value = "单位") @RequestParam(required = false) Long compId,
                                  @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                  @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime,
                                  @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) {
        //        String config = configService.selectConfigByKey("tj_confirm");
//        DateTime beginTimes = null;
//        DateTime endTimes = null;
@@ -1281,7 +1236,6 @@
    }
    /**
     * 根据体检订单号获取体检详情信息接口
     *
@@ -1290,15 +1244,15 @@
     * @param checkStatus
     * @return
     */
    @PutMapping ("/getTjdetailList")
    @ApiOperation (value = "根据体检订单号获取体检详情信息(并修改状态)接口")
    @PutMapping("/getTjdetailList")
    @ApiOperation(value = "根据体检订单号获取体检详情信息(并修改状态)接口")
//    @PreAuthorize("@ss.hasPermi('check:check:getTjdetailList')")
    public AjaxResult getTjdetailList(@ApiParam (value = "体检tjNumber") @RequestParam String tjNumber,
                                      @ApiParam (value = "总检建议") @RequestParam (required = false) String advice,
                                      @ApiParam (value = "审核状态0待审核1已审核") @RequestParam Integer checkStatus) {
    public AjaxResult getTjdetailList(@ApiParam(value = "体检tjNumber") @RequestParam String tjNumber,
                                      @ApiParam(value = "总检建议") @RequestParam(required = false) String advice,
                                      @ApiParam(value = "审核状态0待审核1已审核") @RequestParam Integer checkStatus) {
        String config = configService.selectConfigByKey("sfjcwjhyqxm");
        if(null != config && config.equalsIgnoreCase("Y")){
        if (null != config && config.equalsIgnoreCase("Y")) {
            int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
            if (num > 0) return AjaxResult.error("存在未检或延期项目暂不能生成报告!!!");
        }
@@ -1343,9 +1297,9 @@
     * @param tjNumber
     * @return
     */
    @GetMapping ("/updateCheckType")
    @ApiOperation (value = "总检点击体检信息详情————非化验项目")
    public AjaxResult updateCheckType(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
    @GetMapping("/updateCheckType")
    @ApiOperation(value = "总检点击体检信息详情————非化验项目")
    public AjaxResult updateCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
//        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
//            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
//            return AjaxResult.success(cacheMapValue);
@@ -1452,9 +1406,9 @@
     * @param tjNumber
     * @return
     */
    @GetMapping ("/updateCheckTypeHuaYan")
    @ApiOperation (value = "总检点击体检信息详情————化验项目")
    public AjaxResult updateCheckTypeHuaYan(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
    @GetMapping("/updateCheckTypeHuaYan")
    @ApiOperation(value = "总检点击体检信息详情————化验项目")
    public AjaxResult updateCheckTypeHuaYan(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
//        asyncService.updateCheckType(tjNumber);
        List<Map<String, Object>> list = new ArrayList<>();
        TjOrder one = orderService.getOrderByTjNum(tjNumber);
@@ -1536,9 +1490,9 @@
    }
    @GetMapping ("/updateHYANDCGCheckType")
    @ApiOperation (value = "总检点击体检信息详情————常规和化验项目")
    public AjaxResult updateHYANDCGCheckType(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
    @GetMapping("/updateHYANDCGCheckType")
    @ApiOperation(value = "总检点击体检信息详情————常规和化验项目")
    public AjaxResult updateHYANDCGCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
        return getResult(tjNumber);
    }
@@ -1571,47 +1525,49 @@
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                            String ckfw = tjOrderDetail.getStanId();
                            if (null !=ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
                            if (null != ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
                                ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), "");
                            }
                            if (StrUtil.isNotBlank(ckfw)) {
                                try {
                                    if (ckfw != null && ckfw.contains("-")) {
                                    Integer.parseInt(tjOrderDetail.getYcbz());
                                    String[] split = ckfw.split("-");
                                    BigDecimal min = new BigDecimal(split[0]);
                                    BigDecimal max = new BigDecimal(split[1]);
                                    String proResult = tjOrderDetail.getProResult();
                                    if(null !=proResult){
                                        BigDecimal jyjgval = new BigDecimal(proResult);
                                        if (jyjgval.compareTo(min) < 0) {
                                            tjOrderDetail.setYcbz("↓");
                                        } else if (jyjgval.compareTo(max) > 0) {
                                            tjOrderDetail.setYcbz("↑");
                                        } else if(proResult.contains("阴")) {
                                            tjOrderDetail.setYcbz("");
                                        }else {
                                        Integer.parseInt(tjOrderDetail.getYcbz());
                                        String[] split = ckfw.split("-");
                                        BigDecimal min = new BigDecimal(split[0]);
                                        BigDecimal max = new BigDecimal(split[1]);
                                        String proResult = tjOrderDetail.getProResult();
                                        if (null != proResult) {
                                            BigDecimal jyjgval = new BigDecimal(proResult);
                                            if (jyjgval.compareTo(min) < 0) {
                                                tjOrderDetail.setYcbz("↓");
                                            } else if (jyjgval.compareTo(max) > 0) {
                                                tjOrderDetail.setYcbz("↑");
                                            } else if (proResult.contains("阴")) {
                                                tjOrderDetail.setYcbz("");
                                            } else {
                                                tjOrderDetail.setYcbz("");
                                            }
                                            if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) {
                                                tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
                                            }
                                        } else {
                                            tjOrderDetail.setYcbz("");
                                        }
                                        if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) {
                                            tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
                                        }
                                    }else {
                                        tjOrderDetail.setYcbz("");
                                    }
                                    }else {
                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阴")) tjOrderDetail.setYcbz("");
                                    } else {
                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阴"))
                                            tjOrderDetail.setYcbz("");
                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阳")) tjOrderDetail.setYcbz("↑");
                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阳"))
                                            tjOrderDetail.setYcbz("↑");
                                    }
                                } catch (NumberFormatException ignored) {
                                }
                            }else {
                            } else {
                                tjOrderDetail.setYcbz("");
                                tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                            }
                            if(remark.getOrgType().equals(tjOrderDetail.getOrgType())){
                            if (remark.getOrgType().equals(tjOrderDetail.getOrgType())) {
                                dels.add(tjOrderDetail);
                            }
                        }
@@ -1626,12 +1582,12 @@
                    if (dels.isEmpty()) {
                        continue;
                    }
                    dels=dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
                    dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
                    dels = dels.stream()
                                .sorted(Comparator.comparingInt(
                                        tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序
                                ))
                                .collect(Collectors.toList());
                            .sorted(Comparator.comparingInt(
                                    tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序
                            ))
                            .collect(Collectors.toList());
                    parent.put("sons", dels);
                    parent.put("remark", remark.getRemark());
                    parent.put("jgbx", remark.getJgbx());
@@ -1650,10 +1606,10 @@
    }
    @GetMapping ("/getTm")
    @ApiOperation (value = "获取条码")
    @GetMapping("/getTm")
    @ApiOperation(value = "获取条码")
//    @PreAuthorize("@ss.hasPermi('check:check:getTm')")
    public AjaxResult getTm(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
    public AjaxResult getTm(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
        return AjaxResult.success(tjNumber);
    }
@@ -1662,8 +1618,8 @@
     *
     * @return
     */
    @PostMapping ("/checkUpdateOrderRemark")
    @ApiOperation (value = "总检修改备注接口")
    @PostMapping("/checkUpdateOrderRemark")
    @ApiOperation(value = "总检修改备注接口")
    public AjaxResult checkUpdateOrderRemark(@RequestBody List<UpdateOrderRemarkVo> updateOrderRemarkVos) {
        if (null != updateOrderRemarkVos && !updateOrderRemarkVos.isEmpty()) {
            for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) {
@@ -1716,9 +1672,8 @@
    }
    @GetMapping ("/getzongjianyishengchakanyichangxiangmu")
    @ApiOperation (value = "总检查看异常项目接口")
    @GetMapping("/getzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检查看异常项目接口")
    public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
        long l = System.currentTimeMillis();
        if (StrUtil.isNotBlank(tjNum)) {
@@ -1729,79 +1684,77 @@
            }
            String yqbm = configService.selectConfigByKey("common_api_service_hospbm");
            jcycxmService.deletedByTjh(tjNum);
            configController.zongjianshengchengyichangxiangmu(tjNum,yqbm);
            configController.zongjianshengchengyichangxiangmu(tjNum, yqbm);
        LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>();
        wq.eq(TjOrderYcxm::getTjh,tjNum);
        List<TjOrderYcxm> list = ycxmService.list(wq);
        if(null !=list && !list.isEmpty()){
            Collections.reverse(list);
            Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
            List<Map<String, Object>> maps = new ArrayList<>();
            for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
                Map<String, Object> parent = new HashMap<>();
                List<TjOrderDetail> dels = new ArrayList<>();
                for (TjOrderYcxm ycxm : entry.getValue()) {
                    TjOrderDetail detail=new TjOrderDetail();
                    detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
                    detail.setProName(ycxm.getJcxm());
                    detail.setProResult(ycxm.getJcjg());
                    detail.setStanId(ycxm.getCkfw());
                    detail.setProAdvice(ycxm.getDw());
                    List<Map<String,Object>> btnrlist=new ArrayList<>();
                    String jynr = ycxm.getJynr();
                    JSONArray array = JSONUtil.parseArray(jynr);
                    for (Object object : array) {
                        Map<String,Object> objectMap=new HashMap<>();
                        JSONObject jsonObject = (JSONObject) object;
                        String bt = jsonObject.getStr("bt");
                        String nr = jsonObject.getStr("nr");
                        objectMap.put("bt",bt);
                        objectMap.put("nr",nr);
                        if(null !=bt || null !=nr) btnrlist.add(objectMap);
            LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
            wq.eq(TjOrderYcxm::getTjh, tjNum);
            List<TjOrderYcxm> list = ycxmService.list(wq);
            if (null != list && !list.isEmpty()) {
                Collections.reverse(list);
                Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
                List<Map<String, Object>> maps = new ArrayList<>();
                for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
                    Map<String, Object> parent = new HashMap<>();
                    List<TjOrderDetail> dels = new ArrayList<>();
                    for (TjOrderYcxm ycxm : entry.getValue()) {
                        TjOrderDetail detail = new TjOrderDetail();
                        detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
                        detail.setProName(ycxm.getJcxm());
                        detail.setProResult(ycxm.getJcjg());
                        detail.setStanId(ycxm.getCkfw());
                        detail.setProAdvice(ycxm.getDw());
                        List<Map<String, Object>> btnrlist = new ArrayList<>();
                        String jynr = ycxm.getJynr();
                        JSONArray array = JSONUtil.parseArray(jynr);
                        for (Object object : array) {
                            Map<String, Object> objectMap = new HashMap<>();
                            JSONObject jsonObject = (JSONObject) object;
                            String bt = jsonObject.getStr("bt");
                            String nr = jsonObject.getStr("nr");
                            objectMap.put("bt", bt);
                            objectMap.put("nr", nr);
                            if (null != bt || null != nr) btnrlist.add(objectMap);
                        }
                        detail.setAdvices(btnrlist);
                        dels.add(detail);
                    }
                    detail.setAdvices(btnrlist);
                    dels.add(detail);
                }
                    parent.put("proName",entry.getKey());
                    parent.put("jyjc",entry.getValue().get(0).getJyjc());
                    parent.put("sone",dels);
                    parent.put("proName", entry.getKey());
                    parent.put("jyjc", entry.getValue().get(0).getJyjc());
                    parent.put("sone", dels);
                    maps.add(parent);
            }
            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
                }
                List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
            List<Map<String, Object>> collect = mapList.stream()
                    .filter(b -> maps.stream()
                            .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 过滤掉在 maps 中存在的相同元素
                    .collect(Collectors.toList());
            if(!collect.isEmpty()){
                maps.addAll(collect);
            }
            if(!maps.isEmpty()){
                List<Map<String, Object>> collect1 = maps.stream()
                        .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
                List<Map<String, Object>> collect = mapList.stream()
                        .filter(b -> maps.stream()
                                .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 过滤掉在 maps 中存在的相同元素
                        .collect(Collectors.toList());
                System.out.println("总耗时:"+(System.currentTimeMillis()-l));
                return AjaxResult.success(collect1);
                if (!collect.isEmpty()) {
                    maps.addAll(collect);
                }
                if (!maps.isEmpty()) {
                    List<Map<String, Object>> collect1 = maps.stream()
                            .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
                            .collect(Collectors.toList());
                    System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                    return AjaxResult.success(collect1);
                }
                System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                return AjaxResult.success(maps);
            } else {
                List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
                System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                return AjaxResult.success(mapList);
            }
            System.out.println("总耗时:"+(System.currentTimeMillis()-l));
            return AjaxResult.success(maps);
        }else {
            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
            System.out.println("总耗时:"+(System.currentTimeMillis()-l));
            return AjaxResult.success(mapList);
        }
//            return zongjianyishengchakanyichangxiangmu(tjNum);
        }
        return AjaxResult.error();
    }
    @GetMapping ("/delzongjianyishengchakanyichangxiangmu")
    @ApiOperation (value = "总检删除异常项目接口")
    @GetMapping("/delzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检删除异常项目接口")
    public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) {
        ycxmService.removeById(id);
        return AjaxResult.success();
@@ -1877,32 +1830,32 @@
                    List<TjOrderDetail> dels = new ArrayList<>();
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                            if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){
                                if(!tjOrderDetail.getDeptId().equals("2")){
                                    List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                            ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]","").replaceAll("\\[.*?\\]", "")
                                            ,tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber
                                            ,tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]","").replaceAll("\\[.*?\\]", "")
                                            ,tjOrderDetail.getProResult());
                            if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
                                if (!tjOrderDetail.getDeptId().equals("2")) {
                                    List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                            , tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]", "").replaceAll("\\[.*?\\]", "")
                                            , tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
                                            , tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]", "").replaceAll("\\[.*?\\]", "")
                                            , tjOrderDetail.getProResult());
                                    if(null !=maps && !maps.isEmpty()){
                                    if (null != maps && !maps.isEmpty()) {
                                        tjOrderDetail.setAdvices(maps);
                                    }
                                }else {
                                } else {
                                    String[] split = tjOrderDetail.getProResult().split("。|,|,");
                                    List<Map<String,Object>> mapList=new ArrayList<>();
                                    List<Map<String, Object>> mapList = new ArrayList<>();
                                    for (String s : split) {
                                        s = s.replaceAll("\n", "");
//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
                                        Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0");
                                        if(null !=maps && !maps.isEmpty()){
                                        Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0");
                                        if (null != maps && !maps.isEmpty()) {
                                            Object bt = maps.get("bt");
                                            Object nr = maps.get("nr");
                                            if(null !=bt || null !=nr) mapList.add(maps);
                                            if (null != bt || null != nr) mapList.add(maps);
                                        }
                                    }
                                    tjOrderDetail.setAdvices(mapList);
@@ -1913,10 +1866,10 @@
                            dels.add(tjOrderDetail);
                        }
                    }
                    if(!dels.isEmpty()){
                        parent.put("proName",remark.getProName());
                        parent.put("jyjc",remark.getJyjc());
                        parent.put("sone",dels);
                    if (!dels.isEmpty()) {
                        parent.put("proName", remark.getProName());
                        parent.put("jyjc", remark.getJyjc());
                        parent.put("sone", dels);
                        list.add(parent);
                    }
                }
@@ -1926,27 +1879,27 @@
        return list;
    }
    @GetMapping ("/chushenyemianchakanxiangmujieguo")
    @ApiOperation (value = "初审页面查看项目结果接口")
    public AjaxResult chushenyemianchakanxiangmujieguo(@RequestParam String proId,@RequestParam String tjNum) {
        List<Map<String,Object>> maps = projectService.tjCsXmjgcx(tjNum,proId);
    @GetMapping("/chushenyemianchakanxiangmujieguo")
    @ApiOperation(value = "初审页面查看项目结果接口")
    public AjaxResult chushenyemianchakanxiangmujieguo(@RequestParam String proId, @RequestParam String tjNum) {
        List<Map<String, Object>> maps = projectService.tjCsXmjgcx(tjNum, proId);
        return AjaxResult.success(maps);
    }
    @GetMapping ("/panduaniscunzaiweijian")
    @ApiOperation (value = "初审页面查看项目前判断是否全部未检接口")
    @GetMapping("/panduaniscunzaiweijian")
    @ApiOperation(value = "初审页面查看项目前判断是否全部未检接口")
    public AjaxResult panduaniscunzaiweijian(@RequestParam String tjNum) {
        int a = orderRemarkService.panduaniscunzaiweijian(tjNum);
        return AjaxResult.success(a);
    }
    @PostMapping ("/addOrderYcXmByTjh")
    @ApiOperation (value = "总检医生页面新增异常项目建议")
    @PostMapping("/addOrderYcXmByTjh")
    @ApiOperation(value = "总检医生页面新增异常项目建议")
    public AjaxResult addOrderYcXmJyByTjh(@RequestBody List<TjOrderYcxm> ycxms) {
        if(null !=ycxms && !ycxms.isEmpty()){
        if (null != ycxms && !ycxms.isEmpty()) {
            String tjh = ycxms.get(0).getTjh();
            if(StringUtils.isNotBlank(tjh)){
            if (StringUtils.isNotBlank(tjh)) {
                ycxmService.delOrderYcXmJyByTjh(tjh);
                for (TjOrderYcxm ycxm : ycxms) {
@@ -1961,13 +1914,11 @@
    }
    /**
     * 同步sql server数据到本地数据库数据接口
     */
    @GetMapping ("/newdataSynchronization")
    @ApiOperation (value = "最新公共同步sql server数据到本地数据库数据接口")
    @GetMapping("/newdataSynchronization")
    @ApiOperation(value = "最新公共同步sql server数据到本地数据库数据接口")
    @RepeatSubmit
    public AjaxResult newdataSynchronization(@RequestParam String tjNumber) {
        try {
@@ -1977,20 +1928,18 @@
            if (null != order) {
                if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
                    dataSynchronizationApi(tjNumber);
                }else {
                    configController.shoudongtbjyjcwsxmjg("jyjc",tjNumber);
                } else {
                    configController.shoudongtbjyjcwsxmjg("jyjc", tjNumber);
                }
                return AjaxResult.success("同步成功");
            }
            return AjaxResult.error("未查到该人员体检记录");
        } catch (Exception e) {
//            throw new RuntimeException(ex);
            log.error(String.valueOf(e),e.getMessage());
            log.error(String.valueOf(e), e.getMessage());
            return AjaxResult.error("该人员数据正在同步中,请稍等");
        }
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjDwGroupingController.java
@@ -275,13 +275,18 @@
     */
    @GetMapping("/getTjParentProjectList")
    @ApiOperation(value = "获取体检单项项目信息")
    public AjaxResult getTjParentProjectList(@RequestParam(required = false) @ApiParam(value = "单项名") String proName) {
    public AjaxResult getTjParentProjectList(@RequestParam(required = false) @ApiParam(value = "单项名") String proName,
                                             @RequestParam(required = false) @ApiParam(value = "拼音码") String pym) {
        LambdaQueryWrapper<TjProject> wq =new LambdaQueryWrapper<>();
        wq.eq(TjProject::getProParentId,0);
        wq.eq(TjProject::getProStatus,0);
        if(null !=proName && !proName.isEmpty()){
            wq.like(TjProject::getProName,proName);
        }
        if(null !=pym && !pym.isEmpty()){
            wq.apply("LOWER(pro_eng_name) LIKE {0}", "%" + pym.toLowerCase() + "%");
        }
         List<TjProject> tjProjectList = projectService.list(wq);
        return success(tjProjectList);
    }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjProAdvicerulesController.java
@@ -45,7 +45,7 @@
    /**
     * 查询体检项目建议规则新表列表
     */
    @PreAuthorize("@ss.hasPermi('hosp:advicerules:list')")
//    @PreAuthorize("@ss.hasPermi('hosp:advicerules:list')")
    @GetMapping("/list")
    @ApiOperation(value = "查询体检项目建议规则新表列表")
    public TableDataInfo list(TjProAdvicerules tjProAdvicerules) {
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjRulesController.java
@@ -2,6 +2,7 @@
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@@ -61,7 +62,14 @@
        startPage();
        LambdaQueryWrapper<TjRules> wq = new LambdaQueryWrapper<>();
        if (tjRules.getProId() != null) {
            wq.eq(TjRules::getProId, tjRules.getProId());
            List<TjProject> projects = projectService.getTjProjectListBySoneId(tjRules.getProId());
            if(null !=projects && !projects.isEmpty()){
                wq.and(w-> w.eq(TjRules::getProId, tjRules.getProId())
                        .or().in(TjRules::getProId,projects.stream().map(TjProject::getProId).collect(Collectors.toList())));
            }else {
                wq.eq(TjRules::getProId, tjRules.getProId());
            }
        }
        if (tjRules.getProName() != null) {
            wq.like(TjRules::getProName, tjRules.getProName());
@@ -83,14 +91,7 @@
        }
        wq.orderByAsc(TjRules::getSort);
        List<TjRules> list = tjRulesService.list(wq);
//        if (list != null) {
//            for (TjRules rules : list) {
//                LambdaQueryWrapper<TjRuleAdvice> wq1 = new LambdaQueryWrapper<>();
//                wq1.eq(TjRuleAdvice::getBz, rules.getAid());
//                final List<TjRuleAdvice> list1 = tjRuleAdviceService.list(wq1);
//                rules.setRuleAdvices(list1);
//            }
//        }
        return getDataTable(list);
    }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java
@@ -1,5 +1,6 @@
package com.ltkj.web.controller.system;
import java.security.Security;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -21,9 +22,13 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import com.ltkj.common.annotation.Log;
import com.ltkj.common.core.controller.BaseController;
@@ -41,6 +46,7 @@
@RestController
@RequestMapping("/picture/picture")
@Api(tags = "体检心电图管理")
@Slf4j
public class TjXdPictureController extends BaseController {
    @Resource
    private ITjXdPictureService tjXdPictureService;
@@ -291,6 +297,8 @@
//            orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
//            return getResult(page, pageSize, orderList, customerList, map);
//        }
        Long deptId = SecurityUtils.getDeptId();
        log.info("影像检查列表(骨密度和心电图)接口 当前登录人科室"+deptId);
        String value = String.valueOf(compId);
        if (tjNumber == null) tjNumber = "";
        if (compId == null) value = "";
@@ -298,88 +306,100 @@
        if (beginTime == null) beginTime = "";
        if (endTime == null) endTime = "";
        if (tcm == null) tcm = "";
        return AjaxResult.success(orderService.getYxJcList(checkStatus,tjNumber, page, pageSize, value, beginTime, endTime, name,tcm));
        return AjaxResult.success(orderService.getYxJcList(checkStatus,tjNumber, page, pageSize, value, beginTime, endTime, name,tcm,deptId.toString()));
    }
    @GetMapping ("/getYxJcXx")
    @ApiOperation (value = "影像检查骨密度心电图页面点击体检人员展示体检项目接口")
    public AjaxResult getYxJcXx(@ApiParam (value = "体检号") @RequestParam String tjNumber) {
        List<CsProVo> list = remarkService.getYxJcXx(tjNumber);
        Long deptId = SecurityUtils.getDeptId();
        log.info("影像检查骨密度心电图页面点击体检人员展示体检项目接口当前登录人科室"+deptId);
        List<CsProVo> list = remarkService.getYxJcXx(tjNumber,deptId.toString());
        return AjaxResult.success(list);
    }
    @GetMapping ("/addYxJcXx")
    @ApiOperation (value = "提交影像检查骨密度心电图结果接口")
    @Transactional
    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
    public AjaxResult addYxJcXx(@ApiParam (value = "体检号") @RequestParam String tjNumber,
                                @ApiParam (value = "项目id") @RequestParam String proId,
                                @ApiParam (value = "检查所见") @RequestParam String jcsj,
                                @ApiParam (value = "检查结论") @RequestParam String jcjl) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        TjOrder order = orderService.getOrderByTjNum(tjNumber);
        if(null !=order){
            TjProject project = projectService.getById(proId);
            if(null !=project){
                List<TjProject> projects = projectService.getTjProjectListBySoneId(proId);
                LambdaQueryWrapper<TjOrderDetail>wq1=new LambdaQueryWrapper<>();
                wq1.eq(TjOrderDetail::getProId,projects.get(0).getProParentId());
                wq1.eq(TjOrderDetail::getOrderId,order.getOrderId());
                TjOrderDetail detail = detailService.getOne(wq1);
                if(null !=detail){
                    detail.setProResult(jcjl+"。"+jcsj);
                    detail.setTjStatus(1L);
                    detailService.updateById(detail);
                    LambdaQueryWrapper<TjOrderRemark>wq2=new LambdaQueryWrapper<>();
                    wq2.eq(TjOrderRemark::getProId,proId);
                    wq2.eq(TjOrderRemark::getTjNumber,tjNumber);
                    TjOrderRemark orderRemark = remarkService.getOne(wq2);
                    if(null !=orderRemark){
                        orderRemark.setType(1);
                        remarkService.updateById(orderRemark);
                        xdtgmdjgService.deletedByTJhAndProId(tjNumber, proId);
                        TjXdtgmdjg xdtgmdjg=new TjXdtgmdjg();
                        xdtgmdjg.setTjh(tjNumber);
                        xdtgmdjg.setCardId(order.getCardId());
                        xdtgmdjg.setProId(proId);
                        xdtgmdjg.setProName(project.getProName());
                        xdtgmdjg.setJcsj(jcsj);
                        xdtgmdjg.setJcjl(jcjl);
                        xdtgmdjg.setCreateBy(user.getNickName());
                        xdtgmdjg.setCreateId(user.getUserId().toString());
                        xdtgmdjgService.save(xdtgmdjg);
                        saveTjXdtgmdjgByJcbgd(xdtgmdjg);
        try {
            SysUser user = SecurityUtils.getLoginUser().getUser();
            TjOrder order = orderService.getOrderByTjNum(tjNumber);
            if(null !=order){
                TjProject project = projectService.getById(proId);
                if(null !=project){
                    List<TjProject> projects = projectService.getTjProjectListBySoneId(proId);
                    LambdaQueryWrapper<TjOrderDetail>wq1=new LambdaQueryWrapper<>();
                    wq1.eq(TjOrderDetail::getProId,projects.get(0).getProParentId());
                    wq1.eq(TjOrderDetail::getOrderId,order.getOrderId());
                    TjOrderDetail detail = detailService.getOne(wq1);
                    if(null !=detail){
                        detail.setProResult(jcjl+"。"+jcsj);
                        detail.setTjStatus(1L);
                        detailService.updateById(detail);
                        LambdaQueryWrapper<TjOrderRemark>wq2=new LambdaQueryWrapper<>();
                        wq2.eq(TjOrderRemark::getProId,proId);
                        wq2.eq(TjOrderRemark::getTjNumber,tjNumber);
                        TjOrderRemark orderRemark = remarkService.getOne(wq2);
                        if(null !=orderRemark){
                            orderRemark.setType(1);
                            remarkService.updateById(orderRemark);
                            xdtgmdjgService.deletedByTJhAndProId(tjNumber, proId);
                            TjXdtgmdjg xdtgmdjg=new TjXdtgmdjg();
                            xdtgmdjg.setTjh(tjNumber);
                            xdtgmdjg.setCardId(order.getCardId());
                            xdtgmdjg.setProId(proId);
                            xdtgmdjg.setProName(project.getProName());
                            xdtgmdjg.setJcsj(jcsj);
                            xdtgmdjg.setJcjl(jcjl);
                            xdtgmdjg.setCreateBy(user.getNickName());
                            xdtgmdjg.setCreateId(user.getUserId().toString());
                            xdtgmdjgService.save(xdtgmdjg);
                            saveTjXdtgmdjgByJcbgd(xdtgmdjg);
                        }
                    }
                }
                return AjaxResult.success();
            }
            return AjaxResult.success();
            return AjaxResult.error("暂无体检记录");
        } catch (Exception e) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            log.error("提交影像检查骨密度心电图结果接口"+e.getMessage());
            throw new RuntimeException("提交影像检查骨密度心电图结果接口");
        }
        return AjaxResult.error("暂无体检记录");
    }
    @Transactional(propagation = Propagation.REQUIRED) // 共享事务
    public void saveTjXdtgmdjgByJcbgd(TjXdtgmdjg xdtgmdjg) {
        int length = xdtgmdjg.getProId().length();
        // 确保字符串长度至少为6
        String last6 = length >= 6 ? xdtgmdjg.getProId().substring(length - 6) : xdtgmdjg.getProId();
        LtkjExamJcbgd jcbgd=new LtkjExamJcbgd();
        jcsqdService.deletedLtkjJcsqdByTjhandtmh(xdtgmdjg.getCardId(),xdtgmdjg.getTjh()+last6);
        jcbgdService.deletedLtkjJcbgdByTjhandtmh(xdtgmdjg.getCardId(),xdtgmdjg.getTjh()+last6);
        jcbgd.setTjh(xdtgmdjg.getCardId());
        jcbgd.setTmh(xdtgmdjg.getTjh()+last6);
        jcbgd.setXmdm(xdtgmdjg.getProId());
        jcbgd.setXmmc(xdtgmdjg.getProName());
        jcbgd.setBgNr(xdtgmdjg.getJcsj());
        jcbgd.setBgUrl("");
        jcbgd.setShysxm(xdtgmdjg.getCreateBy());
        jcbgd.setShysdm(xdtgmdjg.getCreateId());
        jcbgd.setYxzd(xdtgmdjg.getJcjl());
        jcbgd.setYxbx("未见异常");
        jcbgd.setZdsj(DateUtil.format(new Date(),"yyyy-MM-dd"));
        jcbgd.setJcbw("");
        jcbgd.setSqsj(DateUtil.format(new Date(),"yyyy-MM-dd"));
        jcbgd.setCreateTime(new Date());
        jcbgdService.save(jcbgd);
        jcsqdService.saveLtkjExamJcsqd(xdtgmdjg.getCardId());
        try {
            int length = xdtgmdjg.getProId().length();
            // 确保字符串长度至少为6
            String last6 = length >= 6 ? xdtgmdjg.getProId().substring(length - 6) : xdtgmdjg.getProId();
            Date date = new Date();
            LtkjExamJcbgd jcbgd=new LtkjExamJcbgd();
            jcsqdService.deletedLtkjJcsqdByTjhandtmh(xdtgmdjg.getCardId(),xdtgmdjg.getTjh()+last6);
            jcbgdService.deletedLtkjJcbgdByTjhandtmh(xdtgmdjg.getCardId(),xdtgmdjg.getTjh()+last6);
            jcbgd.setTjh(xdtgmdjg.getCardId());
            jcbgd.setTmh(xdtgmdjg.getTjh()+last6);
            jcbgd.setXmdm(xdtgmdjg.getProId());
            jcbgd.setXmmc(xdtgmdjg.getProName());
            jcbgd.setBgNr(xdtgmdjg.getJcsj());
            jcbgd.setBgUrl("");
            jcbgd.setShysxm(xdtgmdjg.getCreateBy());
            jcbgd.setShysdm(xdtgmdjg.getCreateId());
            jcbgd.setYxzd(xdtgmdjg.getJcjl());
            jcbgd.setYxbx("未见异常");
            jcbgd.setZdsj(DateUtil.format(date,"yyyy-MM-dd"));
            jcbgd.setJcbw("");
            jcbgd.setSqsj(DateUtil.format(date,"yyyy-MM-dd"));
            jcbgd.setCreateTime(date);
            jcbgdService.save(jcbgd);
            jcsqdService.saveLtkjExamJcsqd(xdtgmdjg.getCardId());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
ltkj-admin/src/test/java/zjhTest.java
@@ -1,6 +1,7 @@
import cn.hutool.core.io.FileUtil;
import com.ltkj.LtkjApplication;
import com.ltkj.framework.config.MatchUtils;
import com.ltkj.hosp.idutil.IdUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@@ -68,42 +69,9 @@
        public static void main(String[] args) throws Exception {
            List<String> numbers = Arrays.asList(
                    "25032800283", "25032800284", "25032800285", "25032800286",
                    "25032800287", "25032800288", "25032800289", "25032800290",
                    "25032800291", "25032800292", "25032800293", "25032800294",
                    "25032800295", "25032800296", "25032800297", "25032800298",
                    "25032800299", "25032800300", "25032800301", "25032800302",
                    "25032800303", "25032800304", "25032800305", "25032800306",
                    "25032800307", "25032800308", "25032800309", "25032800310",
                    "25032800311", "25032800312", "25032800313", "25032800314",
                    "25032800315", "25032800316", "25032800317", "25032800318",
                    "25032800319", "25032800320", "25032800321", "25032800322",
                    "25032800323", "25032800324", "25032800325", "25032800326",
                    "25032800327", "25032800328", "25032800329", "25032800330",
                    "25032800331", "25032800332", "25032800333", "25032800334",
                    "25032800335", "25032800336", "25032800337", "25032800338",
                    "25032800339", "25032800340", "25032800341", "25032800342",
                    "25032800343", "25032800344", "25032800345", "25032800346",
                    "25032800347", "25032800348", "25032800349", "25032800350",
                    "25032800351", "25032800352", "25032800353", "25032800354",
                    "25032800355", "25032800356", "25032800357", "25032800358",
                    "25032800359", "25032800360", "25032800361", "25032800362",
                    "25032800363", "25032800364", "25032800365", "25032800366",
                    "25032800367", "25032800368", "25032800369", "25032800370",
                    "25032800371", "25032800372", "25032800373", "25032800374"
            );
            Set<String> uniqueNumbers = new HashSet<>(numbers);
            if (uniqueNumbers.size() == numbers.size()) {
                System.out.println("✅ 没有重复编号!");
            } else {
                System.out.println("❌ 发现重复编号!");
                numbers.stream()
                        .filter(n -> Collections.frequency(numbers, n) > 1)
                        .distinct()
                        .forEach(n -> System.out.println("重复的编号:" + n));
            }
            System.out.println(MatchUtils.isIdCard("622723197401030409"));
            System.out.println(MatchUtils.isMobileNO("15346732733"));
        }
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
@@ -293,6 +293,6 @@
    @Update("UPDATE tj_order_remark a SET a.deleted=1 WHERE a.remark_id=#{remarkId}")
    void updateTjOrderRemarkdel(@Param("remarkId")String remarkId);
    @Select("call tj_yxjcymxx(#{tjh,mode=IN})")
    List<CsProVo> getYxJcXx(@Param("tjh")String tjNumber);
    @Select("call tj_yxjcymxx(#{tjh,mode=IN},#{ks,mode=IN})")
    List<CsProVo> getYxJcXx(@Param("tjh")String tjNumber,@Param("ks")String ks);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
@@ -97,5 +97,5 @@
    List<TjOrderRemark> shoufeiyemianweishoufei(String tjNumber,String jxbz);
    List<CsProVo> getYxJcXx(String tjNumber);
    List<CsProVo> getYxJcXx(String tjNumber,String ks);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
@@ -193,5 +193,6 @@
    //存储过程专用接口(初审)
    Map<String,Object> getYxJcList(Integer checkStatus ,String tjNumber,Integer page,Integer pageSize, String compId, String beginTime, String endTime,String tjname,String tcm);
    Map<String,Object> getYxJcList(Integer checkStatus ,String tjNumber,Integer page,Integer pageSize,
                                   String compId, String beginTime, String endTime,String tjname,String tcm,String deptId);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
@@ -194,8 +194,8 @@
    }
    @Override
    public List<CsProVo> getYxJcXx(String tjNumber) {
        List<CsProVo> yxJcXx = mapper.getYxJcXx(tjNumber);
    public List<CsProVo> getYxJcXx(String tjNumber,String ks) {
        List<CsProVo> yxJcXx = mapper.getYxJcXx(tjNumber,ks);
        return yxJcXx;
    }
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -438,7 +438,8 @@
    }
    @Override
    public Map<String, Object> getTjBgdyList(Integer pageNum, Integer pageSize, Integer dyzt, String tjNum, String name, String dw, String djbeginTime, String djendTime) {
    public Map<String, Object> getTjBgdyList(Integer pageNum, Integer pageSize, Integer dyzt,
                                             String tjNum, String name, String dw, String djbeginTime, String djendTime) {
        Map<String, Object> map = new HashMap<>();
        map.put("page",pageNum);
@@ -458,7 +459,8 @@
    }
    @Override
    public Map<String, Object> getYxJcList(Integer checkStatus ,String tjNumber, Integer page, Integer pageSize, String compId, String beginTime, String endTime, String tjname,String tcm) {
    public Map<String, Object> getYxJcList(Integer checkStatus ,String tjNumber, Integer page, Integer pageSize,
                                           String compId, String beginTime, String endTime, String tjname,String tcm,String deptId) {
        Map<String, Object> map = new HashMap<>();
        map.put("checkStatus",checkStatus);
        map.put("page",page);
@@ -469,6 +471,7 @@
        map.put("tcm",tcm);
        map.put("beginTime",beginTime);
        map.put("endTime",endTime);
        map.put("ks",deptId);
        List<List<?>> list = tjOrderMapper.getYxJcList(map);
        Map<String,Object> map1=new HashMap<>();
        map1.put("customers",list);
ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
@@ -425,6 +425,7 @@
                #{beginTime,mode=IN,jdbcType=VARCHAR},
                #{endTime,mode=IN,jdbcType=VARCHAR},
                #{tcm,mode=IN,jdbcType=VARCHAR},
                #{ks,mode=IN,jdbcType=VARCHAR},
                #{total,mode=OUT,jdbcType=INTEGER}
              )}
    </select>