Przeglądaj źródła

结算单 审核排序,以及在驳回时提示。医生

xiaochan 4 lat temu
rodzic
commit
e03ec6f364

+ 1 - 1
src/main/java/thyyxxk/webserver/controller/medicalinsurance/SetlListUpldController.java

@@ -106,7 +106,7 @@ public class SetlListUpldController {
     }
 
     @PostMapping("/setlModifyReq")
-    public ResultVo<String> setlModifyReq(@RequestBody ZyInactpatient param) {
+    public ResultVo<String> setlModifyReq(@Validated @RequestBody ZyInactpatient param) {
         return service.setlModifyReq(param);
     }
 

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

@@ -504,9 +504,12 @@ public interface UpIdCollectionDao {
                  @Param("patNo") String patNo,
                  @Param("times") Integer times);
 
-    @Select("select * from t_yb_setl_modify_req where id = #{id}")
+    @Select("select pat_name = (select top 1 rtrim(name) from zy_inactpatient where inpatient_no = pat_no),* from t_yb_setl_modify_req where id = #{id}")
     TYbSetlModifyReq shenHeXinXi(Integer id);
 
+    @Select("select rtrim(code_rs) from a_employee_mi where code = #{code}")
+    String yuanGongGongHao(String code);
+
     @Update("update t_yb_setl_modify_req set audit_flag = #{auditFlag} where id = #{id}")
     void upAuditFlag(@Param("id") Integer id,
                      @Param("auditFlag") Integer auditFlag);

+ 6 - 0
src/main/java/thyyxxk/webserver/entity/datamodify/TYbSetlModifyReq.java

@@ -20,6 +20,12 @@ public class TYbSetlModifyReq implements Serializable {
      */
     private String patNo;
 
+
+    /**
+     * 住院 姓名
+     */
+    private String patName;
+
     /**
      * 住院次数
      */

+ 2 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/inpatient/YbZyDisDiag.java

@@ -13,7 +13,9 @@ import java.util.Date;
 public class YbZyDisDiag {
     private String inpatientNo;
     private Integer admissTimes;
+
     private Integer disDiagNo;
+
     private String disDiagType;
     private String disDiag;
     private String disDiagComment;

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

@@ -29,6 +29,7 @@ import thyyxxk.webserver.entity.medicalinsurance.setllistupldTemp.*;
 import thyyxxk.webserver.entity.querydata.JieSuanDanChaXun;
 import thyyxxk.webserver.entity.querydata.SiSetlinfoTemp;
 import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.service.wxapi.SendWxInfoService;
 import thyyxxk.webserver.utils.*;
 import thyyxxk.webserver.websocket.WebSocketServer;
 
@@ -55,13 +56,15 @@ public class SetlListUpldService {
     private final DismissDao dismissDao;
 
     private final PublicServer publicServer;
+    private final SendWxInfoService sendWxInfoService;
 
-    public SetlListUpldService(ExecService exec, SiQueryDao queryDao, UpIdCollectionDao upIdCollectionDao, DismissDao dismissDao, PublicServer publicServer) {
+    public SetlListUpldService(ExecService exec, SiQueryDao queryDao, UpIdCollectionDao upIdCollectionDao, DismissDao dismissDao, PublicServer publicServer, SendWxInfoService sendWxInfoService) {
         this.exec = exec;
         this.queryDao = queryDao;
         this.dao = upIdCollectionDao;
         this.dismissDao = dismissDao;
         this.publicServer = publicServer;
+        this.sendWxInfoService = sendWxInfoService;
     }
 
 
@@ -678,14 +681,13 @@ public class SetlListUpldService {
 
     @Transactional(rollbackFor = Exception.class)
     public ResultVo<String> setlModifyReq(ZyInactpatient param) {
-//        log.info("申请入参:{}", JSONObject.toJSONStringWithDateFormat(param, DateUtil.DEFAULT_PATTERN));
         param.setLedgerSn(publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes()));
         Set<String> zhenDuanBianMa = new HashSet<>();
         Set<String> shouShuBianMa = new HashSet<>();
-
-        log.info("诊断:{}", JSON.toJSONString(param.getYbZyDisDiag()));
-
         for (YbZyDisDiag item : param.getYbZyDisDiag()) {
+            if (item.getDisDiagNo() == null || item.getDisDiagNo() <= 0) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "诊断排序不能为空,且最小值为 1 。");
+            }
             zhenDuanBianMa.add(item.getDisDiag());
             if (item.getNewData()) {
                 item.setInpatientNo(param.getInpatientNo());
@@ -704,12 +706,13 @@ public class SetlListUpldService {
                 }
             }
         }
-        int ssxh = 0;
         for (BatjBa4 item : param.getBatjBa4()) {
+            if (item.getSsxh() == null || item.getSsxh() <= 0) {
+                return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术排序不能为空,且最小值为 1。");
+            }
             shouShuBianMa.add(item.getSsbm());
             item.setZyh(param.getInpatientNo());
             item.setZycs(param.getAdmissTimes());
-            item.setSsxh(ssxh += 1);
             if (!item.getNewData()) {
                 if (item.getSsrq() == null) {
                     return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "手术日期不能为空。");
@@ -731,22 +734,24 @@ public class SetlListUpldService {
                 }
             }
         }
+        param.getYbZyDisDiag().sort(Comparator.comparingInt(YbZyDisDiag::getDisDiagNo));
+        param.getBatjBa4().sort(Comparator.comparingInt(BatjBa4::getSsxh));
         if (param.getYbZyDisDiag().size() != zhenDuanBianMa.size()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "不可以有相同的诊断。");
         }
         if (param.getBatjBa4().size() != shouShuBianMa.size()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "不可以有相同的手术编码。");
         }
-//        dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
-//        dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(),
-//                param.getOpIdCode(), param.getOpIdName(), param.getReqRemark());
-//        if (ListUtil.notBlank(param.getYbZyDisDiag())) {
-//            dao.setlModDis(param.getYbZyDisDiag(), "zy_dis_diag_yb_modify");
-//        }
-//        if (ListUtil.notBlank(param.getBatjBa4())) {
-//            dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
-//        }
-//        dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
+        dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
+        dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(),
+                TokenUtil.getTokenUserId(), param.getOpIdName(), param.getReqRemark());
+        if (ListUtil.notBlank(param.getYbZyDisDiag())) {
+            dao.setlModDis(param.getYbZyDisDiag(), "zy_dis_diag_yb_modify");
+        }
+        if (ListUtil.notBlank(param.getBatjBa4())) {
+            dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
+        }
+        dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "申请成功,请等待医保科审核。");
     }
 
@@ -773,6 +778,9 @@ public class SetlListUpldService {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "驳回信息不能为空。");
         }
         dao.upAuditFlag(id, auditFlag);
+        sendWxInfoService.sendCorpWxMsg(dao.yuanGongGongHao(req.getReqOpId()),
+                String.format("医保结算单上传:申请已驳回 患者姓名:【%s】, 住院号:【%s】, 原因:【%s】,审核人:【%s】",
+                        req.getPatName(), req.getPatNo(), remark, auditName));
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "审核已驳回 (╯﹏╰)b");
     }