소스 검색

门急诊转入出院时间限制。

DESKTOP-0GD05B0\Administrator 2 년 전
부모
커밋
94f325be14

+ 4 - 2
src/main/java/thyyxxk/webserver/dao/his/inpatient/TransferInOfExpensesDao.java

@@ -6,6 +6,8 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
+import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
+import thyyxxk.webserver.entity.mzpayqrcode.PatInfo;
 
 import java.util.Date;
 import java.util.List;
@@ -192,9 +194,9 @@ public interface TransferInOfExpensesDao {
     void insertInfoZyDetailCharge(@Param("info") ZyActpatient info,
                                   @Param("list") List<MzChargeDetail> zyFees);
 
-    @Select("select admiss_date " +
+    @Select("select admiss_date,dis_date " +
             "from zy_actpatient where inpatient_no = #{patNo}")
-    Date getPatientHospitalStay(String patNo);
+    ZyPatientInfo getPatientHospitalStay(String patNo);
 
 
     /**

+ 0 - 1
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -45,7 +45,6 @@ import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * <p>

+ 13 - 6
src/main/java/thyyxxk/webserver/service/inpatient/TransferInOfExpensesService.java

@@ -15,6 +15,7 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
+import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.utils.DateUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
@@ -118,8 +119,7 @@ public class TransferInOfExpensesService {
      * @return 返回是否成功
      */
     public ResultVo<String> shanChuFeiYong(ZyDetailCharge param) {
-        log.info("删除该患者通过急门诊转入的费用 --> 操作员:{}, 通过主键来删除数据:{}",
-                TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
+        log.info("删除该患者通过急门诊转入的费用 --> 操作员:{}, 通过主键来删除数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
         dao.shanChuFeiYong(param);
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功 ୧(๑•̀◡•́๑)૭");
     }
@@ -135,13 +135,20 @@ public class TransferInOfExpensesService {
         List<MzChargeDetail> list = param.getList();
         //查询流水号
         Integer maxDetailSn = dao.getMaxDetailSn(param.getInpatientNo(), param.getAdmissTimes());
-        Date admissDate = dao.getPatientHospitalStay(param.getInpatientNo());
-        if (admissDate == null) {
+        ZyPatientInfo patInfo = dao.getPatientHospitalStay(param.getInpatientNo());
+        if (patInfo == null) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有找到患者信息");
         }
-        if (DateUtil.shiJianDaXiao(param.getChargeDate(), admissDate, "<")) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "费用发生时间不能小于入院时间.");
+        if (DateUtil.shiJianDaXiao(param.getChargeDate(), patInfo.getAdmissDate(), "<")) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "费用发生时间不能小于入院时间");
         }
+
+        if (patInfo.getDisDate() != null) {
+            if (DateUtil.shiJianDaXiao(param.getChargeDate(), patInfo.getDisDate(), ">")) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "费用发生时间不能大于出院时间,患者出院时间为:" + DateUtil.formatDatetime(param.getDisDate()));
+            }
+        }
+
         // 流水号取出这个患者流水值的最大值 在加 1
         // 同时计算 出患者的总金额 以及 费用的类型
         list.removeIf(item -> "BILL99".equals(item.getChargeCodeMx()));