Browse Source

医保科审核权限修改

lihong 2 years ago
parent
commit
c47a9e9cef

+ 11 - 0
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/AutoUploadBillDao.java

@@ -1,6 +1,7 @@
 package thyyxxk.webserver.dao.his.medicalinsurance;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import thyyxxk.webserver.entity.querydata.AutoUploadBill;
@@ -22,4 +23,14 @@ public interface AutoUploadBillDao extends BaseMapper<AutoUploadBill> {
             " </foreach>" +
             " </script>")
     void batchSaveData(List<AutoUploadBill> list);
+
+    @Delete("<script>" +
+            " delete from t_auto_upload_bill where pat_no + cast(times as varchar) + cast(ledger_sn as varchar) " +
+            " in (" +
+            " <foreach collection='visitIds' item='item'  separator=','>" +
+            " #{item}"+
+            " </foreach>" +
+            " )" +
+            "</script>")
+    void deleteVisitId(List<String> visitIds);
 }

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

@@ -454,11 +454,16 @@ public interface UpIdCollectionDao extends BaseMapper<SetlinfoUpld> {
 
     @Delete("delete zy_dis_diag_yb_modify where inpatient_no = #{patNo} and admiss_times = #{times}; " + "delete batj_ba4_modify where zyh = #{patNo} and zycs = #{times}; " + "delete t_yb_setl_modify_req where pat_no = #{patNo} and times = #{times};")
     void delReq(@Param("patNo") String patNo, @Param("times") Integer times);
-
+    @Delete("delete zy_dis_diag_yb_modify where inpatient_no = #{patNo} and admiss_times = #{times}; " + " delete batj_ba4_modify where zyh = #{patNo} and zycs = #{times}; ")
+    void delDiseAndOprt(@Param("patNo") String patNo, @Param("times") Integer times);
 
     @Insert("insert into t_yb_setl_modify_req (pat_no, times, req_op_id, req_op_name, req_remark) " + "values (#{patNo},#{times},#{opIdCode},#{opIdName},#{reqRemark})")
     void setlModifyReq(@Param("patNo") String patNo, @Param("times") Integer times, @Param("opIdCode") String opIdCode, @Param("opIdName") String opIdName, @Param("reqRemark") String reqRemark);
 
+    @Insert("insert into t_yb_setl_modify_req (pat_no, times, req_op_id, req_op_name, req_op_date, req_remark, audit_staff, audit_name, audit_date, audit_remark, audit_flag) " +
+            "  values (#{patNo}, #{times}, #{reqOpId}, #{reqOpName}, #{reqOpDate}, #{reqRemark}, #{auditStaff}, #{auditName}, #{auditDate}, #{auditRemark}, #{auditFlag})")
+    void insertSetlModifyReq(TYbSetlModifyReq tYbSetlModifyReq);
+
     @Insert("<script>" +
             "insert into ${tableName} (inpatient_no, admiss_times, dis_diag_no, dis_diag_type, dis_diag, dis_diag_comment, " +
             "op_id_code, op_diag_date, dis_diag_bzfx, dis_diag_status, operation, si_diag_type,admiss_cond,dept_code) " +

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/inpatient/ZyInactpatient.java

@@ -857,6 +857,10 @@ public class ZyInactpatient implements Serializable {
      * 申请备注
      */
     private String reqRemark;
+    /**
+     * 保存审核通过标识 1有  0或null无
+     */
+    private String saveAuditPassFlag;
 
     private Integer ledgerSn;
 

+ 9 - 1
src/main/java/thyyxxk/webserver/service/medicalinsurance/AutoUploadBillService.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.medicalinsurance;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,6 +13,7 @@ import thyyxxk.webserver.entity.querydata.AutoUploadBill;
 import thyyxxk.webserver.utils.ListUtil;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -24,7 +26,13 @@ public class AutoUploadBillService extends ServiceImpl<AutoUploadBillDao,AutoUpl
     public void asyncSaveData(List<AutoUploadBill> list){
         baseMapper.batchSaveData(list);
     }
-
+    @Async
+    public void asynDeleteAndbatchSaveData(List<AutoUploadBill> list){
+        if(CollUtil.isEmpty(list)) return;
+        List<String> visitIds = list.stream().map(obj -> obj.getPatNo() + obj.getTimes() + obj.getLedgerSn()).collect(Collectors.toList());
+        baseMapper.deleteVisitId(visitIds);
+        baseMapper.batchSaveData(list);
+    }
 
     public IPage<AutoUploadBill> queryPage(AutoUploadBill autoUploadBill){
         IPage<AutoUploadBill> page = new Page(autoUploadBill.getCurrentPage(),autoUploadBill.getPageSize());

+ 40 - 6
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -1284,11 +1284,35 @@ public class SetlListUpldService {
         if (param.getYbZyDisDiag().size() != zhenDuanBianMa.size()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "不可以有相同的诊断。");
         }
-        dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
-        //发起审核
-        dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(), TokenUtil.getTokenUserId(), param.getOpIdName(), param.getReqRemark());
-        //记录审核日志
-        SetlAuditLog setlAuditLog = cretaSetlAuditLog(param, TokenUtil.getTokenUserId(), 0, 0);
+
+        //表示超级审核权限可以直接保存并申请审核通过
+        SetlAuditLog setlAuditLog ;
+        if("1".equals(param.getSaveAuditPassFlag())){
+            TYbSetlModifyReq tYbSetlModifyReq  =  dao.getSetlModifyReq(param.getInpatientNo(),param.getAdmissTimes());
+            if(tYbSetlModifyReq !=null && tYbSetlModifyReq.getId() !=null){
+                dao.delDiseAndOprt(param.getInpatientNo(),param.getAdmissTimes());
+                dao.updateReq(tYbSetlModifyReq.getId(), "审核通过", TokenUtil.getTokenUserId(), param.getOpIdName());
+                dao.upAuditFlag(tYbSetlModifyReq.getId(), 1);
+            }else {
+                TYbSetlModifyReq insertData = new TYbSetlModifyReq();
+                insertData.setPatNo(param.getInpatientNo());
+                insertData.setTimes(param.getAdmissTimes());
+                insertData.setReqOpId(TokenUtil.getTokenUserId());
+                insertData.setReqOpName(param.getOpIdName());
+                insertData.setReqOpDate(new Date());
+                insertData.setReqRemark(StringUtil.notBlank(param.getReqRemark()) ? param.getReqRemark() : "直接审核通过");
+                insertData.setAuditStaff(TokenUtil.getTokenUserId());
+                insertData.setAuditName(param.getOpIdName());
+                insertData.setAuditDate(new Date());
+                insertData.setAuditRemark("审核通过");
+                insertData.setAuditFlag(1);
+                dao.insertSetlModifyReq(insertData);
+            }
+            //记录审核日志
+            setlAuditLog = cretaSetlAuditLog(param, TokenUtil.getTokenUserId(), 1, 1);
+        }else {
+            setlAuditLog = sendReq(0,0,param);
+        }
         saveAuditLog(setlAuditLog);
         if (ListUtil.notBlank(param.getYbZyDisDiag())) {
             dao.setlModDis(param.getYbZyDisDiag(), "zy_dis_diag_yb_modify");
@@ -1297,7 +1321,17 @@ public class SetlListUpldService {
             dao.setlModBat(param.getBatjBa4(), "batj_ba4_modify");
         }
         dao.shenBao(param.getOperation(), param.getDecType(), param.getInpatientNo(), param.getAdmissTimes());
-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "申请成功,请等待编码员进行审核。");
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "保存成功。");
+    }
+
+    //发起审核 返回日志
+    public SetlAuditLog  sendReq(Integer auditFlag ,Integer auditType,ZyInactpatient param){
+        //发起审核
+        dao.delReq(param.getInpatientNo(), param.getAdmissTimes());
+        dao.setlModifyReq(param.getInpatientNo(), param.getAdmissTimes(), TokenUtil.getTokenUserId(), param.getOpIdName(), param.getReqRemark());
+        //记录审核日志
+        SetlAuditLog setlAuditLog = cretaSetlAuditLog(param, TokenUtil.getTokenUserId(), auditFlag, auditType);
+        return setlAuditLog;
     }
 
     private SetlAuditLog cretaSetlAuditLog(ZyInactpatient param, String tokenUserId, Integer auditFlag, Integer auditType) {