lighter 2 years ago
parent
commit
e72b7f4be4

+ 11 - 1
src/main/java/thyyxxk/wxservice_server/constant/Constants.java

@@ -20,7 +20,17 @@ public class Constants {
     }
 
     public static class MzDept {
-        public static final String PEDIATRICS = "1040000";
+        public static final String[] PEDIATRICS =
+                new String[] {"1040000","1040100","1040200","1700001","1700002"};
+
+        public static boolean isPediatrics(String deptCode) {
+            for (String pediatric : PEDIATRICS) {
+                if (deptCode.equals(pediatric)) {
+                    return true;
+                }
+            }
+            return false;
+        }
     }
 
     public static class Exception {

+ 2 - 2
src/main/java/thyyxxk/wxservice_server/dao/InpatientDao.java

@@ -35,7 +35,7 @@ public interface InpatientDao {
 
     @Select("select rtrim(inpatient_no) from a_patient_mi where social_no=" +
             "(select social_no from mz_patient_mi where patient_id=#{patientId})")
-    String selectInpatientNoBySocialNo(@Param("patientId") String patientId);
+    List<String> selectInpatientNoBySocialNo(@Param("patientId") String patientId);
 
     @Select("select social_no from a_patient_mi where inpatient_no=#{inpatientNo}")
     String selectSocialNoByInpatientNo(@Param("inpatientNo") String inpatientNo);
@@ -45,7 +45,7 @@ public interface InpatientDao {
     String selectPatientIdBySocialNo(@Param("socialNo") String socialNo);
 
     @Select("select rtrim(inpatient_no) from a_patient_mi where mz_no=#{patientId}")
-    String selectInpatientNoByPatientId(@Param("patientId") String patientId);
+    List<String> selectInpatientNoByPatientId(@Param("patientId") String patientId);
 
     @Update("execute zy_receive_drug #{inpatientNo} , #{admissTimes} , 1 , '0'")
     void receiveMedicineFees(@Param("inpatientNo") String inpatientNo,

+ 4 - 0
src/main/java/thyyxxk/wxservice_server/entity/inspections/ExamIndexResult.java

@@ -35,4 +35,8 @@ public class ExamIndexResult {
     private String IC_CARD;
     // 检查目的
     private String APLY_CTNT;
+
+    public String getORDR_CREATE_DATE() {
+        return null == ORDR_CREATE_DATE ? "" : ORDR_CREATE_DATE;
+    }
 }

+ 2 - 2
src/main/java/thyyxxk/wxservice_server/service/AppointmentService.java

@@ -295,9 +295,9 @@ public class AppointmentService {
                 return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "男性无法在妇产科挂号,请选择其他科室。");
             }
         }
-        if (Constants.MzDept.PEDIATRICS.equals(deptCode)) {
+        if (Constants.MzDept.isPediatrics(deptCode)) {
             if (IdCardUtil.getAgeByIdCard(idCard) >= 18) {
-                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "成年人无法在儿科挂号,请选择其他科室。");
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "成年人无法在儿科相关科室挂号,请选择其他科室。");
             }
         }
         return ResultVoUtil.success();

+ 15 - 12
src/main/java/thyyxxk/wxservice_server/service/InpatientService.java

@@ -30,15 +30,18 @@ public class InpatientService {
     }
 
     public ResultVo<InpatientInfo> getInpatientInfo(String patientId) {
-        String inpatientNo = getInpatientNoByPatientId(patientId);
-        if (StringUtil.isBlank(inpatientNo)) {
+        List<String> inpatientNos = getInpatientNoByPatientId(patientId);
+        if (inpatientNos.isEmpty()) {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有找到此卡号对应的住院号。");
         }
-        InpatientInfo info = dao.getInpatientInfo(inpatientNo);
-        if (null == info) {
-            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有找到此卡号的在院信息。");
+        InpatientInfo info;
+        for (String inpatientNo : inpatientNos) {
+            info = dao.getInpatientInfo(inpatientNo);
+            if (null != info) {
+                return ResultVoUtil.success(info);
+            }
         }
-        return ResultVoUtil.success(info);
+        return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "没有找到此卡号的在院信息。");
     }
 
     public ResultVo<InpatientInfo> getInpatientBaseInfo(String inpatientNo) {
@@ -83,12 +86,12 @@ public class InpatientService {
         return ResultVoUtil.success(map);
     }
 
-    private String getInpatientNoByPatientId(String patientId) {
-        log.info("getInpatientNoByPatientId:{}", patientId);
-        String inpatientNo = dao.selectInpatientNoByPatientId(patientId);
-        if (StringUtil.isBlank(inpatientNo)) {
-            inpatientNo = dao.selectInpatientNoBySocialNo(patientId);
+    private List<String> getInpatientNoByPatientId(String patientId) {
+        List<String> inpatientNos = dao.selectInpatientNoByPatientId(patientId);
+        if (inpatientNos.isEmpty()) {
+            inpatientNos = dao.selectInpatientNoBySocialNo(patientId);
         }
-        return inpatientNo;
+        log.info("getInpatientNoByPatientId:{}, {}", patientId, inpatientNos);
+        return inpatientNos;
     }
 }

+ 1 - 0
src/main/java/thyyxxk/wxservice_server/service/InspectionsService.java

@@ -75,6 +75,7 @@ public class InspectionsService {
             }
         }
         list.removeIf(item -> item.getPATIENT_TYPE().equals("3"));
+        list.sort(Comparator.comparing(ExamIndexResult::getORDR_CREATE_DATE).reversed());
         return ResultVoUtil.success(list);
     }