浏览代码

做重复登记的校验

lighter 2 年之前
父节点
当前提交
fa63128684

+ 4 - 0
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/SiZyDao.java

@@ -67,6 +67,10 @@ public interface SiZyDao {
     AdmMdtrtinfo selectAdmMdtrtinfo(@Param("inpatientNo") String inpatientNo,
                                     @Param("ledgerSn") int ledgerSn);
 
+    @Select("select endtime from t_si_setlinfo where pat_no=#{patNo} and times=#{times} and ledger_sn=1 and revoked=0")
+    Date selectSetlEndTime(@Param("patNo") String patNo,
+                           @Param("times") int times);
+
     /**
      * 获取当前患者最大账页号
      *

+ 5 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SiZyService.java

@@ -79,6 +79,11 @@ public class SiZyService {
         if (null == admMdtrtinfo) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "此患者没有有效的参保信息!");
         }
+        Date setlEndTime = dao.selectSetlEndTime(p.getInpatientNo(), p.getAdmissTimes());
+        if (null != setlEndTime && setlEndTime.after(admMdtrtinfo.getBegntime())) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "此患者有 " +
+                    DateUtil.formatDatetime(setlEndTime, "yyyy-MM-dd") + " 的医保结算条目,不可重复登记。");
+        }
         if (StringUtil.isBlank(admMdtrtinfo.getChfpdrName())) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "管床医生不能为空!");
         }