Browse Source

门诊项目确认中现在就可以确认没有执行科室的了,以及对外的接口。

xiaochan 3 years ago
parent
commit
e7e6160506

+ 89 - 1
src/main/java/thyyxxk/webserver/controller/jiekou/DuiWaiJieKouController.java

@@ -1,16 +1,27 @@
 package thyyxxk.webserver.controller.jiekou;
 
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import thyyxxk.webserver.config.auth.PassToken;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
 import thyyxxk.webserver.entity.jiekou.PatientInformation;
 import thyyxxk.webserver.entity.jiekou.getPatientInformationParam;
+import thyyxxk.webserver.entity.login.UserInfo;
+import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.jiekou.DuiWaiJieKouService;
+import thyyxxk.webserver.service.zhuyuanyiji.MenZhengXiangMuServer;
+import thyyxxk.webserver.utils.ListUtil;
+import thyyxxk.webserver.utils.ResultVoUtil;
+import thyyxxk.webserver.utils.StringUtil;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -23,12 +34,17 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/thyy")
+@Slf4j
 public class DuiWaiJieKouController {
     private final DuiWaiJieKouService service;
+    private final PublicServer publicServer;
+    private final MenZhengXiangMuServer mzServer;
 
     @Autowired
-    public DuiWaiJieKouController(DuiWaiJieKouService service) {
+    public DuiWaiJieKouController(DuiWaiJieKouService service, PublicServer publicServer, MenZhengXiangMuServer mzServer) {
         this.service = service;
+        this.publicServer = publicServer;
+        this.mzServer = mzServer;
     }
 
 
@@ -37,4 +53,76 @@ public class DuiWaiJieKouController {
     public ResultVo<List<PatientInformation>> getPatientInformation(@RequestBody getPatientInformationParam param) {
         return service.getPatientInformation(param);
     }
+
+    /**
+     * 门诊项目确认
+     *
+     * @param mz reqNos 可多个申请号 confirmId 操作人 execDept  执行科室
+     * @return 操作提示
+     */
+    @PassToken
+    @PostMapping("/mzProjectConfirm")
+    public ResultVo<String> mzProjectConfirm(@RequestBody MzChargeDetail mz) {
+        log.info("门诊项目确认接口调用:{}", JSON.toJSONString(mz));
+        if (ListUtil.isBlank(mz.getReqNos())) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "申请号不能为空。");
+        }
+        if (StringUtil.isBlank(mz.getConfirmId())) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "操作人不能为空");
+        }
+        UserInfo userInfo = publicServer.huoQuYuanGongXinXi(mz.getConfirmId());
+        MzChargeDetail mzChargeDetail = new MzChargeDetail();
+        mzChargeDetail.setSource("接口");
+        if (userInfo != null) {
+            if (mz.getExecDept() == null) {
+                mzChargeDetail.setExecDept(userInfo.getDeptCode());
+            } else {
+                mzChargeDetail.setExecDept(mz.getExecDept());
+            }
+            mzChargeDetail.setConfirmId(userInfo.getCode());
+        } else {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有找到对应的操作人信息。");
+        }
+        mzChargeDetail.setXiangMuZhuangTai(0);
+        for (Integer reqNo : mz.getReqNos()) {
+            if (mzChargeDetail.getList() == null) {
+                mzChargeDetail.setList(new ArrayList<>());
+            }
+            MzChargeDetail chargeDetail = new MzChargeDetail();
+            chargeDetail.setReqNo(reqNo);
+            chargeDetail.setConfirmFlag(1);
+            mzChargeDetail.getList().add(chargeDetail);
+        }
+        ResultVo<String> fanHui = mzServer.menZhenXiangMuQueXiaoHuoQueRen(mzChargeDetail);
+        if (fanHui.getCode() == 201) {
+            return ResultVoUtil.success();
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, fanHui.getMessage());
+    }
+
+    @PassToken
+    @PostMapping("/mzProjectCancel")
+    public ResultVo<String> mzProjectCancel(@RequestBody MzChargeDetail mz) {
+        log.info("门诊项目确认接口调用:{}", JSON.toJSONString(mz));
+        if (ListUtil.isBlank(mz.getReqNos())) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "申请号不能为空。");
+        }
+        MzChargeDetail mzChargeDetail = new MzChargeDetail();
+        mzChargeDetail.setSource("接口");
+        for (Integer reqNo : mz.getReqNos()) {
+            if (mzChargeDetail.getList() == null) {
+                mzChargeDetail.setList(new ArrayList<>());
+            }
+            MzChargeDetail chargeDetail = new MzChargeDetail();
+            chargeDetail.setReqNo(reqNo);
+            chargeDetail.setConfirmFlag(3);
+            mzChargeDetail.getList().add(chargeDetail);
+        }
+        ResultVo<String> fanHui = mzServer.menZhenXiangMuQueXiaoHuoQueRen(mzChargeDetail);
+        if (fanHui.getCode() == 201) {
+            return ResultVoUtil.success();
+        }
+        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, fanHui.getMessage());
+    }
+
 }

+ 1 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyiji/MenZhengXiangMuController.java

@@ -49,6 +49,7 @@ public class MenZhengXiangMuController {
 
     @PostMapping("/queRenOrQuXiao")
     public ResultVo<String> menZhenXiangMuQueXiaoHuoQueRen(@RequestBody MzChargeDetail mzChargeDetail) {
+        mzChargeDetail.setSource("本院");
         return server.menZhenXiangMuQueXiaoHuoQueRen(mzChargeDetail);
     }
 

+ 3 - 0
src/main/java/thyyxxk/webserver/dao/his/PublicDao.java

@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.yibao.ZyActpatient;
 
 import java.util.List;
@@ -127,5 +128,7 @@ public interface PublicDao {
                                  @Param("admissTimes") Integer admissTimes,
                                  @Param("ledgerSn") Integer ledgerSn);
 
+    @Select("select top(1) code,dept_code,name,code_rs from a_employee_mi where (code = #{code}  or code_rs = #{code}) and isnull(del_flag,0) = 0 ")
+    UserInfo huoQuYuanGongXinXi(String code);
 
 }

+ 2 - 1
src/main/java/thyyxxk/webserver/dao/his/yibao/XiangMuLuRuDao.java

@@ -761,10 +761,11 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
      * @return 返回list 费用集合
      */
     @Select("select charge_date,charge_fee,charge_amount,charge_code_mx,detail_sn,ori_detail_sn,ABS(order_no),order_no,ledger_sn,exec_unit " +
-            "from zy_detail_charge where  inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and  ledger_sn > 0 " +
+            "from zy_detail_charge where  inpatient_no = #{inpatientNo} and admiss_times = #{admissTimes} and  ledger_sn = #{ledgerSn}  " +
             "and ori_detail_sn is null and charge_amount ${ZF} 0 and charge_fee ${ZF} 0 and ledger_sn > 0 and infant_flag = #{infantFlag} and trans_flag_yb <> 2")
     List<ZyDetailCharge> getYiZhuFeiYong(@Param("inpatientNo") String inpatientNo,
                                          @Param("admissTimes") Integer admissTimes,
+                                         @Param("ledgerSn") Integer ledgerSn,
                                          @Param("ZF") String ZF,
                                          @Param("infantFlag") int infantFlag);
 

+ 36 - 17
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyiji/MenZhengXiangMuDao.java

@@ -1,6 +1,9 @@
 package thyyxxk.webserver.dao.his.zhuyuanyiji;
 
-import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
 
 import java.util.List;
@@ -33,7 +36,7 @@ public interface MenZhengXiangMuDao {
             "       contract_code=contract_code, " +
             "       charge_type " +
             "FROM mz_patient_mi " +
-            "where patient_id=#{patientId}")
+            "where patient_id=#{patientId} or ic_card_no = #{patientId}")
     MzChargeDetail getMzPatient(String patientId);
 
 
@@ -158,7 +161,12 @@ public interface MenZhengXiangMuDao {
             "group by a.req_no")
     List<MzChargeDetail> piPiJingEr(@Param("serialNo") Integer serialNo);
 
-
+    /**
+     * @param patientId 门诊号
+     * @param times     次数
+     * @param reqNo     申请号
+     * @return 缴费的详细信息
+     */
     @Select("SELECT patient_id=a.patient_id, " +
             "       times=a.times, " +
             "       receipt_no=a.receipt_no, " +
@@ -183,12 +191,36 @@ public interface MenZhengXiangMuDao {
                                    @Param("times") Integer times,
                                    @Param("reqNo") Integer reqNo);
 
+    @Select("<script>" +
+            "select req_no,confirm_flag,charge_item_code,bill_item_code,patient_id,times,charge_date from mz_charge_detail where req_no in" +
+            "<foreach collection='list' item='item' index='index' open='(' close=')' separator=','>" +
+            "#{item}" +
+            "</foreach>" +
+            "<if test=\"patientId != null and patientId != '' \">" +
+            " and patient_id = #{patientId} " +
+            "</if>" +
+            "<if test=\"times !=null and times != '' \">" +
+            " and times = #{times}" +
+            "</if>" +
+            "</script>")
+    List<MzChargeDetail> genJuShenQingHuoQuMingXi(@Param("patientId") String patientId,
+                                                  @Param("times") Integer times,
+                                                  @Param("list") List<Integer> reqNos);
+
 
     @Update("<script>" +
             "<foreach collection='list' item='item' separator=';'> " +
             "update ${tableName} " +
             "<set>" +
-            " confirm_flag = #{item.confirmFlag} , confirm_id =#{confirmId} , confirm_time =getdate() , exec_dept =#{execDept}" +
+            " confirm_flag = #{item.confirmFlag} , receive_flag = #{item.confirmFlag}  " +
+            "<choose>" +
+            "<when test=\"item.confirmFlag == 1\">" +
+            ",confirm_time =getdate() , exec_dept =#{execDept},confirm_id =#{confirmId}" +
+            "</when>" +
+            "<otherwise>" +
+            ",confirm_time = null , exec_dept = null,confirm_id = null" +
+            "</otherwise>" +
+            "</choose>" +
             "</set>" +
             "where " +
             "patient_id = #{item.patientId} and times =#{item.times} and req_no =#{item.reqNo}" +
@@ -199,18 +231,5 @@ public interface MenZhengXiangMuDao {
                                 @Param("execDept") String execDept,
                                 @Param("tableName") String tableName);
 
-    @Insert("<script>" +
-            "insert into yj_confirm_record_log ( patient_id , times , serial_no , order_no , item_no , item_name , req_no , confirm_flag , " +
-            "confirm_id , confirm_date , charge_date , name , item_je ) values " +
-            "<foreach collection='list' item='item' separator=','>" +
-            "( #{item.patientId} , #{item.times} , #{item.serialNo} , #{item.orderNo} , #{item.itemNo} , " +
-            "#{item.chargeName} , #{item.reqNo} , #{item.confirmFlag} , #{confirmId} , getdate() , " +
-            " #{chargeDateString} , #{name} , cast(#{item.je,jdbcType=DECIMAL} as decimal(14,5)) )" +
-            "</foreach>" +
-            "</script>")
-    void insertYjConfirmRecordLog(@Param("list") List<MzChargeDetail> list,
-                                  @Param("confirmId") String confirmId,
-                                  @Param("chargeDateString") String chargeDateString,
-                                  @Param("name") String name);
 
 }

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyiji/QueRenYiZhuShouFeiDao.java

@@ -175,7 +175,7 @@ public interface QueRenYiZhuShouFeiDao {
             " charge_status = #{item.chargeStatus}, op_id = #{code}, op_date = GETDATE() " +
             "</set>" +
             "WHERE act_order_no = #{item.actOrderNo} " +
-            "AND inpatient_no = #{item.inpatientNo} AND admiss_times = #{item.admissTimes} and occ_time = #{item.occTime} " +
+            "AND inpatient_no = #{item.inpatientNo} AND admiss_times = #{item.admissTimes} and occ_time = #{item.occTime} and act_order_no = #{item.actOrderNo}" +
             "</foreach>" +
             "</script>")
     void baoCunYiZhuQueFei(@Param("list") List<YzActOrder> list,

+ 7 - 0
src/main/java/thyyxxk/webserver/entity/datamodify/MzChargeDetail.java

@@ -548,4 +548,11 @@ public class MzChargeDetail implements Serializable {
 
 
     private List<MzChargeDetail> list;
+
+    private List<Integer> reqNos;
+    
+    /**
+     * 来源
+     */
+    private String source;
 }

+ 17 - 1
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -6,6 +6,7 @@ import thyyxxk.webserver.dao.his.PublicDao;
 import thyyxxk.webserver.dao.his.yibao.TransferInOfExpensesDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
@@ -157,7 +158,13 @@ public class PublicServer {
         return dao.getLedgerSn(inpatientNo, admissTimes);
     }
 
-
+    /**
+     * 更新患者的退费对应的正流水号
+     *
+     * @param inpatientNo 住院号
+     * @param admissTimes 住院次数
+     * @param ledger      账页号
+     */
     public void genXingYuanLiuShuiBiaoZhi(String inpatientNo, Integer admissTimes, Integer ledger) {
         if (!dao.tuiFeiYiPiPei(inpatientNo, admissTimes, ledger).equals(dao.beiPiPeiZhenShu(inpatientNo, admissTimes, ledger))) {
             log.info("更新正数的流水号 ==> 流水号:{},住院次数:{},账页号:{}", inpatientNo, admissTimes, ledger);
@@ -165,5 +172,14 @@ public class PublicServer {
         }
     }
 
+    public UserInfo huoQuYuanGongXinXi(String code) {
+        if (StringUtil.isBlank(code)) {
+            return new UserInfo();
+        }
+        return dao.huoQuYuanGongXinXi(code);
+
+    }
+
+
 }
 

+ 9 - 8
src/main/java/thyyxxk/webserver/service/yibao/XiangMuLuRuService.java

@@ -54,8 +54,10 @@ public class XiangMuLuRuService {
         if (StringUtil.isBlank(param.getInpatientNo()) || param.getAdmissTimes() == null) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "住院号或住院次数为空 <br/>๑乛◡乛๑");
         }
-        log.info("查询患者费用==》住院号{},住院次数:{},项目名称:{},费用类型:{},科室:{},当前页:{},页大小:{},退费:{},总数:{}", param.getInpatientNo(), param.getAdmissTimes(),
-                param.getChargeCode(), param.getOrderNo(), param.getDept(), param.getCurrentPage(), param.getPageSize(), param.getTuiFeiFlag(), param.getTotal());
+        Integer ledgerSn = publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes());
+
+        log.info("查询患者费用==》住院号{},住院次数:{},项目名称:{},费用类型:{},科室:{},当前页:{},页大小:{},退费:{},总数:{},账页号:{}", param.getInpatientNo(), param.getAdmissTimes(),
+                param.getChargeCode(), param.getOrderNo(), param.getDept(), param.getCurrentPage(), param.getPageSize(), param.getTuiFeiFlag(), param.getTotal(), ledgerSn);
         int infantFlag = 0;
         // 如果是婴儿的话那么就需要截取 字符串了 在通过婴儿标识来判断
         if (param.getInpatientNo().contains("$")) {
@@ -66,10 +68,6 @@ public class XiangMuLuRuService {
             param.setTuiFeiFlag(2);
         }
         Page<ZyDetailCharge> page = new Page<>();
-        Integer ledgerSn = publicServer.getLedgerSn(param.getInpatientNo(), param.getAdmissTimes());
-        if (param.getTotal() == 0) {
-            publicServer.genXingYuanLiuShuiBiaoZhi(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn);
-        }
 
         if (param.getFeiYongLeiXingCode() == 0) {
             if (param.getTotal() == 0) {
@@ -401,10 +399,13 @@ public class XiangMuLuRuService {
     public ResultVo<String> yiZhuTuiFeiPiPei(String inpatientNo, Integer admissTimes) {
         inpatientNo = publicServer.getInpatientNo(inpatientNo);
         int infantFlag = publicServer.getInfantFlag(inpatientNo);
+        Integer ledgerSn = publicServer.getLedgerSn(inpatientNo, admissTimes);
+
+        publicServer.genXingYuanLiuShuiBiaoZhi(inpatientNo, admissTimes, ledgerSn);
         // 获取正的医嘱费用
-        List<ZyDetailCharge> getYiZhuFeiYongZhenShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, ">", infantFlag);
+        List<ZyDetailCharge> getYiZhuFeiYongZhenShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, ledgerSn, ">", infantFlag);
         // 获取负的医嘱费用
-        List<ZyDetailCharge> getYiZhuFeiYongFuShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, "<", infantFlag);
+        List<ZyDetailCharge> getYiZhuFeiYongFuShu = dao.getYiZhuFeiYong(inpatientNo, admissTimes, ledgerSn, "<", infantFlag);
         // 获取负数的退费数据 主要是用来判断 这一条正的是否退费了。
         List<ZyDetailCharge> tuiFeiList = dao.tuiFeiList(inpatientNo, admissTimes, infantFlag);
         if (!tuiFeiList.isEmpty()) {

+ 56 - 15
src/main/java/thyyxxk/webserver/service/zhuyuanyiji/MenZhengXiangMuServer.java

@@ -8,11 +8,13 @@ import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.zhuyuanyiji.MenZhengXiangMuDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
+import thyyxxk.webserver.utils.ListUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -84,27 +86,66 @@ public class MenZhengXiangMuServer {
      */
     @Transactional(rollbackFor = Exception.class)
     public ResultVo<String> menZhenXiangMuQueXiaoHuoQueRen(MzChargeDetail mzChargeDetail) {
+        if (ListUtil.notBlank(mzChargeDetail.getList()) && mzChargeDetail.getList().size() > 100) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "一次性操作不能大于 100 条,且不能为空。");
+        }
         List<MzChargeDetail> mz = new ArrayList<>();
-        if (mzChargeDetail.getXiangMuZhuangTai().equals(0)) {
-            mzChargeDetail.getList().forEach(item -> {
-                if (item.getConfirmFlag() == 1) {
-                    mz.add(item);
+        MzChargeDetail mzcd = new MzChargeDetail();
+        Map<Integer, String> cuoWuXinXi = new HashMap<>();
+        String confirmId = mzChargeDetail.getConfirmId() == null ? TokenUtil.getTokenUserId() : mzChargeDetail.getConfirmId();
+        for (MzChargeDetail item : mzChargeDetail.getList()) {
+            if (item.getConfirmFlag() != 0) {
+                if (mzChargeDetail.getSource().equals("接口")) {
+                    if (item.getReqNo() <= 0) {
+                        return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "申请号必须大于 0 且非空");
+                    }
                 }
-            });
-        } else {
-            mzChargeDetail.getList().forEach(item -> {
-                if (item.getConfirmFlag() == 3) {
-                    mz.add(item);
+                mzcd.setPatientId(item.getPatientId());
+                mzcd.setTimes(item.getTimes());
+                if (mzcd.getReqNos() == null) {
+                    mzcd.setReqNos(new ArrayList<>());
                 }
-            });
+                mzcd.getReqNos().add(item.getReqNo());
+            }
+        }
+        if (ListUtil.isBlank(mzcd.getReqNos())) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请选择需要操作的数据。");
+        }
+        Map<Integer, List<MzChargeDetail>> buYaoChongFuChaoZuo = dao.genJuShenQingHuoQuMingXi(mzcd.getPatientId(), mzcd.getTimes(), mzcd.getReqNos()).stream()
+                .collect(Collectors.groupingBy(MzChargeDetail::getReqNo));
+
+        if (buYaoChongFuChaoZuo.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有查询到对应的申请号信息");
         }
+        // 这个是 判断操作的是 已确认的 还是未确认的
+        mzChargeDetail.getList().forEach(item -> {
+            Integer key = item.getReqNo();
+            // 不能改成为确认
+            if (buYaoChongFuChaoZuo.containsKey(key)) {
+                for (MzChargeDetail chargeDetail : buYaoChongFuChaoZuo.get(key)) {
+                    // 这里判断不要重复操作
+                    if (!chargeDetail.getConfirmFlag().equals(item.getConfirmFlag())) {
+                        if (item.getConfirmFlag() == 1 || item.getConfirmFlag() == 3) {
+                            chargeDetail.setConfirmFlag(item.getConfirmFlag());
+                            mz.add(chargeDetail);
+                        }
+                    } else if (item.getConfirmFlag() != 0 && mzChargeDetail.getSource().equals("接口")) {
+                        cuoWuXinXi.put(key, String.format("申请号为:【%s】,请勿重复操作。", key));
+                    }
+                }
+            } else if (item.getConfirmFlag() != 0) {
+                cuoWuXinXi.put(key, String.format("申请号为:【%s】,在数据库中没有查询到对应信息。", key));
+            }
+        });
         if (mz.isEmpty()) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请先选择数据");
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请勿重复操作。");
         } else {
-            log.info("门诊项目确认或取消 操作人:{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONString(mz));
-            dao.xiangMuQueRenHuoQuXiao(mz, TokenUtil.getTokenUserId(), mzChargeDetail.getExecDept(), "mz_charge_detail");
-            dao.xiangMuQueRenHuoQuXiao(mz, TokenUtil.getTokenUserId(), mzChargeDetail.getExecDept(), "mz_yj_req");
-            dao.insertYjConfirmRecordLog(mz, TokenUtil.getTokenUserId(), mzChargeDetail.getChargeDateString(), mzChargeDetail.getName());
+            log.info("门诊项目确认或取消 操作人:{},数据:{}", confirmId, JSON.toJSONString(mz));
+            dao.xiangMuQueRenHuoQuXiao(mz, confirmId, mzChargeDetail.getExecDept(), "mz_charge_detail");
+            dao.xiangMuQueRenHuoQuXiao(mz, confirmId, mzChargeDetail.getExecDept(), "mz_yj_req");
+        }
+        if (!cuoWuXinXi.isEmpty()) {
+            return ResultVoUtil.success(ExceptionEnum.LOGICAL_ERROR, cuoWuXinXi.toString());
         }
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "操作成功 L('ω')┘三└('ω')」");
     }