浏览代码

修复作废费用问题

xiaochan 2 年之前
父节点
当前提交
5848e98a94

+ 16 - 0
src/main/java/thyyxxk/webserver/controller/reports/ReportQueryCenterController.java

@@ -36,4 +36,20 @@ public class ReportQueryCenterController {
         return service.getReportTree();
     }
 
+    @GetMapping("/updateParentById")
+    public ResultVo<String> updateParentById(@RequestParam("id") String id,
+                                             @RequestParam("parentId") String parentId) {
+        return service.updateParentById(id, parentId);
+    }
+
+    @GetMapping("/getRulesByCode")
+    public ResultVo<List<String>> getRulesByCode(@RequestParam("userCode") String userCode) {
+        return service.getRulesByCode(userCode);
+    }
+
+    @PostMapping("/saveThePersonRoleCode")
+    public ResultVo<String> saveThePersonRoleCode(@RequestBody ReportQueryCenterService.PersonRoleCode data) {
+        return service.saveThePersonRoleCode(data);
+    }
+
 }

+ 23 - 2
src/main/java/thyyxxk/webserver/dao/his/reports/ReportQueryCenterDao.java

@@ -1,6 +1,7 @@
 package thyyxxk.webserver.dao.his.reports;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
@@ -11,11 +12,31 @@ import java.util.List;
 @Mapper
 public interface ReportQueryCenterDao extends BaseMapper<ReportForms> {
 
-    @Select("select id, name, page_json, type, parent_id from report_forms where del_flag = 0 ")
-    List<ReportForms> selectReportForms();
+    @Select("select a.id, name, page_json, type, parent_id from " +
+            "report_forms a, report_forms_rules b  " +
+            "where del_flag = 0 and a.id = b.rule_id ")
+    List<ReportForms> selectReportForms(String userCode);
+
+    @Select("select  id, name, page_json, type, parent_id from " +
+            " report_forms " +
+            " where del_flag = 0   ")
+    List<ReportForms> selectReportFormsAll();
+
 
     @Update("update report_forms set del_flag = 1 where id = #{id};" +
             "update report_forms set del_flag = 1 where parent_id = #{id}")
     void del(String id);
 
+    @Update("update report_forms set parent_id = #{parentId} where id = #{id} ")
+    void updateParentById(String id, String parentId);
+
+    @Select("delete  report_forms_rules where user_code = #{userCode} ")
+    void delRules(String userCode);
+
+    @Insert("insert into report_forms_rules (user_code, rule_id)  values (#{code} , #{id})")
+    void insertRules(String code, String id);
+
+    @Select("select rule_id from report_forms_rules where user_code = #{userCode}")
+    List<String> getRulesByCode(String userCode);
+
 }

+ 4 - 3
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/OrderQuashDao.java

@@ -16,14 +16,15 @@ public interface OrderQuashDao extends BaseMapper<ReqOrderQuash> {
     @Select("select start_time from yz_act_order where act_order_no = #{orderNo}")
     Date selectOrderStartTime(BigDecimal orderNo);
 
-    @Select("select count(1) from yz_yp_zy_order where act_order_no = #{orderNo}")
+    @Select("select count(1) from yz_yp_zy_order where act_order_no = #{orderNo} and status_flag = '1' ")
     int selectYpOrder(BigDecimal orderNo);
 
     @Select("select count(1) from yz_zy_patient_fee where act_order_no = #{orderNo}")
     int selectZyPatientFee(BigDecimal orderNo);
 
-    @Select("select count(1) from yz_zy_patient_fee where act_order_no = #{orderNo} and inpatient_no = #{patNo} and admiss_times = #{times}")
-    int selectzyDetailCharge(BigDecimal orderNo,
+    @Select("select count(1) from zy_detail_charge where order_no = #{orderNo} " +
+            "and inpatient_no = #{patNo} and admiss_times = #{times} and trans_flag_yb <> '2' ")
+    int selectZyDetailCharge(BigDecimal orderNo,
                              String patNo,
                              Integer times);
 

+ 39 - 5
src/main/java/thyyxxk/webserver/service/reports/ReportQueryCenterService.java

@@ -1,14 +1,14 @@
 package thyyxxk.webserver.service.reports;
 
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.reports.ReportQueryCenterDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.reports.reportQueryCenter.ReportForms;
-import thyyxxk.webserver.utils.ResultVoUtil;
-import thyyxxk.webserver.utils.SnowFlakeId;
-import thyyxxk.webserver.utils.StringUtil;
+import thyyxxk.webserver.service.PublicServer;
+import thyyxxk.webserver.utils.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -19,10 +19,18 @@ import java.util.Map;
 @Slf4j
 public class ReportQueryCenterService {
 
+    @Data
+    public static class PersonRoleCode {
+        private String userCode;
+        private List<String> list;
+    }
+
     private final ReportQueryCenterDao dao;
+    private final PublicServer publicServer;
 
-    public ReportQueryCenterService(ReportQueryCenterDao dao) {
+    public ReportQueryCenterService(ReportQueryCenterDao dao, PublicServer publicServer) {
         this.dao = dao;
+        this.publicServer = publicServer;
     }
 
     public ResultVo<String> addReportQueryCenter(ReportForms param) {
@@ -35,7 +43,12 @@ public class ReportQueryCenterService {
     }
 
     public ResultVo<List<ReportForms>> getReportTree() {
-        List<ReportForms> list = dao.selectReportForms();
+        List<ReportForms> list;
+        if (publicServer.needRule()) {
+            list = dao.selectReportFormsAll();
+        } else {
+            list = dao.selectReportForms(TokenUtil.getInstance().getTokenUserId());
+        }
         return ResultVoUtil.success(toTree(list));
     }
 
@@ -73,4 +86,25 @@ public class ReportQueryCenterService {
         return tree;
     }
 
+    public ResultVo<List<String>> getRulesByCode(String userCode) {
+        return ResultVoUtil.success(dao.getRulesByCode(userCode));
+    }
+
+    public ResultVo<String> updateParentById(String id, String parentId) {
+        if (StringUtil.isBlank(parentId)) {
+            parentId = null;
+        }
+        dao.updateParentById(id, parentId);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "操作成功。");
+    }
+
+    public ResultVo<String> saveThePersonRoleCode(PersonRoleCode data) {
+        dao.delRules(data.getUserCode());
+        ListUtil.batchList(data.getList(), ReportQueryCenterDao.class, (mapper, item) -> {
+            mapper.insertRules(data.getUserCode(), item);
+        });
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "操作成功。");
+    }
+
+
 }

+ 11 - 7
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/OrderQuashService.java

@@ -30,6 +30,12 @@ public class OrderQuashService {
         this.publicServer = publicServer;
     }
 
+    /**
+     * 作废医嘱
+     *
+     * @param param
+     * @return
+     */
     public ResultVo<Integer> applicationForRevocation(ReqOrderQuash param) {
         Date orderDate = dao.selectOrderStartTime(param.getActOrderNo());
         if (orderDate == null) {
@@ -51,7 +57,7 @@ public class OrderQuashService {
         }
 
         // 有费用要申请
-        if (dao.selectzyDetailCharge(param.getActOrderNo(), param.getPatNo(), param.getTimes()) > 0) {
+        if (dao.selectZyDetailCharge(param.getActOrderNo(), param.getPatNo(), param.getTimes()) > 0) {
             return insertTheRequest(param);
         }
 
@@ -70,10 +76,7 @@ public class OrderQuashService {
         dao.deleteById(param.getActOrderNo());
         // 插入申请表数据
         dao.insert(param);
-        // 没有产生费用也没有超过 24 小时可以直接撤销
-        dao.eraseOrder(param.getActOrderNo());
-        dao.delYzOrder(param.getActOrderNo());
-
+        revocationOfMedicalOrders(param);
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, 1);
     }
 
@@ -121,6 +124,7 @@ public class OrderQuashService {
             for (ReqOrderQuash item : list) {
                 item.setApproverId(code);
                 item.setApproverDatatime(now);
+                dao.updateReqOrderQuash(item);
                 revocationOfMedicalOrders(item);
             }
             return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
@@ -129,13 +133,12 @@ public class OrderQuashService {
     }
 
     /**
-     * 撤销医嘱
+     * 删除费用等信息
      *
      * @param item 数据
      */
     public void revocationOfMedicalOrders(ReqOrderQuash item) {
         BigDecimal order = item.getActOrderNo();
-        dao.updateReqOrderQuash(item);
         // 删除费用中间表
         dao.delPatientFee(order);
         // 删除药品表
@@ -143,6 +146,7 @@ public class OrderQuashService {
         dao.eraseOrder(order);
         dao.upErase(order);
         dao.delYzOrder(order);
+        log.info("撤销医嘱, 医嘱号:{}, 操作人:{}", order, TokenUtil.getInstance().getTokenUserId());
     }