Przeglądaj źródła

结算单上传限制

xiaochan 3 lat temu
rodzic
commit
e9f7155f97

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/UpIdCollectionDao.java

@@ -47,7 +47,7 @@ public interface UpIdCollectionDao {
             "       acct_pay=cast(a.acct_pay as decimal(16,2)), " + // -- 个人账户支出
             "       psnCashpay=cast(a.psn_cash_pay as decimal(16,2)) ,  " + // --  个人现金支付
             "       a.clr_optins as hsorg,  " + // -- 医保机构
-            "       a.insutype as hi_type," +   // -- 枚举 MdcsType
+            "       a.insutype as hi_type," +   // -- 险种类型
             "       a.setl_time as  setl_end_date " +  //结算时间
             "from t_si_setlinfo a, t_si_pat_info b " +
             "where a.pat_no=b.pat_no and a.times=b.times " +

+ 17 - 0
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -37,6 +37,7 @@ import thyyxxk.webserver.utils.*;
 import thyyxxk.webserver.websocket.WebSocketServer;
 
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -83,6 +84,20 @@ public class SetlListUpldService {
         if (upldCollection.getCode() != 200) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, upldCollection.getMessage());
         }
+        BigDecimal age = new BigDecimal(upldCollection.getData().getSetlinfo().getAge());
+        // 年龄在大于 60 和 小于 16 之间联系人不能写 自己
+        if (StringUtil.isBlank(upldCollection.getData().getSetlinfo().getConerName().trim())) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "患者联系人姓名不能为空。");
+        } else if (BigUtils.bigDaYu(age, 60) || BigUtils.bigXiaoYu(age, 16)) {
+            if (upldCollection.getData().getSetlinfo().getPsnName().trim().equals(upldCollection.getData().getSetlinfo().getConerName().trim())) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "年龄在大于 60 和 小于 16 之间联系人不能写自己");
+            }
+        }
+        if (StringUtil.notBlank(upldCollection.getData().getSetlinfo().getHiType()) && upldCollection.getData().getSetlinfo().getHiType().trim().equals("310")) {
+            if (StringUtil.isBlank(upldCollection.getData().getSetlinfo().getEmpAddr()) || StringUtil.isBlank(upldCollection.getData().getSetlinfo().getEmpName())) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "结算清单中职工参保人的单位及地址不能为空。");
+            }
+        }
         for (OprninfoUpld item : upldCollection.getData().getOprninfo()) {
             if (StringUtil.isBlank(item.getOperDrCode())) {
                 return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("医生:【%s】,没有医保编码请去职工字典数据维护中添加", item.getOperDrName()));
@@ -161,6 +176,8 @@ public class SetlListUpldService {
         setlinfoUpld.setOprnOprtCodeCnt(String.valueOf(oprninfoUpld.size()));
 
         EntityCopy.Copy(dao.setlinfo2(patNo), setlinfoUpld);
+
+
         EntityCopy.Copy(dao.setlinfo3(patNo, times), setlinfoUpld);
         EntityCopy.Copy(dao.setlinfo4(patNo, times), setlinfoUpld);