123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package thyyxxk.webserver.service.yibao;
- import com.alibaba.fastjson.JSON;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.stereotype.Service;
- import thyyxxk.webserver.config.exception.ExceptionEnum;
- import thyyxxk.webserver.constants.Capacity;
- import thyyxxk.webserver.constants.GetDateFormat;
- import thyyxxk.webserver.dao.his.yibao.TransferInOfExpensesDao;
- import thyyxxk.webserver.entity.ResultVo;
- import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
- import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
- import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
- import thyyxxk.webserver.entity.yibao.ZyActpatient;
- import thyyxxk.webserver.utils.ResultVoUtil;
- import thyyxxk.webserver.utils.TokenUtil;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * <p>
- * 描述: 门急诊费用转入
- * </p>
- *
- * @author xc
- * @date 2021-05-25 17:35
- */
- @Service
- @Slf4j
- public class TransferInOfExpensesService {
- private final TransferInOfExpensesDao dao;
- public TransferInOfExpensesService(TransferInOfExpensesDao dao) {
- this.dao = dao;
- }
- /**
- * 查询再远患者信息
- *
- * @param inpatientNo 住院号
- * @return 返回一个信息
- */
- public ResultVo<ZyActpatient> queryHuanZhe(String inpatientNo) {
- log.info("查询患者信息-->住院号:{}", inpatientNo);
- ZyActpatient pojo = dao.queryHuanZhe(inpatientNo);
- if (pojo != null) {
- return ResultVoUtil.success(dao.queryHuanZhe(inpatientNo));
- }
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "没有找到该患者可能已出院,╮(╯▽╰)╭");
- }
- /**
- * 通过机制号来查找信息
- *
- * @param serialNo 机制号
- * @param liShiFlag 是否查看历史 0:不查看 1:查看
- * @return 返回信息
- */
- public ResultVo<List<MzChargeDetail>> getSerialNo(String serialNo, Integer liShiFlag) {
- log.info("根据机制号查找信息:{},是否查看历史 0:不查看 1:查看 --> {}", serialNo, liShiFlag);
- List<MzChargeDetail> list;
- if (liShiFlag == 0) {
- list = dao.getSerialNo("mz_charge_detail", serialNo);
- } else {
- list = dao.getSerialNo("mz_charge_detail_b", serialNo);
- }
- if (list.size() > 0) {
- return ResultVoUtil.success(list);
- } else {
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
- }
- }
- /**
- * 查看患者是通过门急诊转入的费用项目
- *
- * @param inpatientNo 住院号
- * @param currentPage 当前页
- * @param pageSize 页数
- * @return 返回项目
- */
- public ResultVo<Map<String, Object>> getZyJiMenZhenZhuangRuFeiYong(String inpatientNo, String chargeCodeMX, long currentPage, long pageSize) {
- log.info("查看患者是通过门急诊转入的费用项目 --> 住院号:{},收费编码:{},当前页:{},页数:{}", inpatientNo, chargeCodeMX, currentPage, pageSize);
- IPage<ZyDetailCharge> page = new Page<>(currentPage, pageSize);
- List<ZyDetailCharge> list = dao.getZyJiMenZhenZhuangRuFeiYong(page, inpatientNo, chargeCodeMX);
- Map<String, Object> map = new HashMap<>(Capacity.TWO);
- if (page.getTotal() > 0 || list.size() > 0) {
- map.put("data", list);
- map.put("total", page.getTotal());
- return ResultVoUtil.success(map);
- }
- return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
- }
- /**
- * 删除病人通过急门诊转入的费用 数据
- *
- * @param param 删除的条件
- * @return 返回是否成功
- */
- public ResultVo<String> shanChuFeiYong(ZyDetailCharge param) {
- log.info("删除该患者通过急门诊转入的费用 --> 操作员:{}, 通过主键来删除数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
- dao.shanChuFeiYong(param);
- return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功 φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′");
- }
- /**
- * 插入 通过急门诊转入的费用
- *
- * @param param 要插入的数据
- * @return 返回通知
- */
- public ResultVo<String> baoCunHuanZheZhuYuanFeiYong(ZyActpatient param) {
- param.setStaffId(TokenUtil.getTokenUserId());
- List<MzChargeDetail> list = param.getList();
- //查询流水号
- Integer maxDetailSn = dao.getMaxDetailSn(param.getInpatientNo(), param.getAdmissTimes());
- if (maxDetailSn == null) {
- maxDetailSn = 0;
- }
- // 流水号要加一
- for (MzChargeDetail mzChargeDetail : list) {
- mzChargeDetail.setDetailSn(maxDetailSn += 1);
- }
- dao.insertInfoZyDetailCharge(param, list);
- log.info("急门诊费用插入数据:{}", JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
- return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "添加成功");
- }
- /**
- * 远程搜索 项目名称
- *
- * @param pyCode 拼音码 大写的
- * @return 返回多个项目的名称
- */
- public ResultVo<List<GetDropdownBox>> queryEntryName(String pyCode) {
- IPage<GetDropdownBox> page = new Page<>(1, 20);
- return ResultVoUtil.success(dao.queryEntryName(page, pyCode.toUpperCase() + "%"));
- }
- }
|