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; /** *

* 描述: 门急诊费用转入 *

* * @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 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> getSerialNo(String serialNo, Integer liShiFlag) { log.info("根据机制号查找信息:{},是否查看历史 0:不查看 1:查看 --> {}", serialNo, liShiFlag); List 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> getZyJiMenZhenZhuangRuFeiYong(String inpatientNo, String chargeCodeMX, long currentPage, long pageSize) { log.info("查看患者是通过门急诊转入的费用项目 --> 住院号:{},收费编码:{},当前页:{},页数:{}", inpatientNo, chargeCodeMX, currentPage, pageSize); IPage page = new Page<>(currentPage, pageSize); List list = dao.getZyJiMenZhenZhuangRuFeiYong(page, inpatientNo, chargeCodeMX); Map 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 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 baoCunHuanZheZhuYuanFeiYong(ZyActpatient param) { param.setStaffId(TokenUtil.getTokenUserId()); List 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> queryEntryName(String pyCode) { IPage page = new Page<>(1, 20); return ResultVoUtil.success(dao.queryEntryName(page, pyCode.toUpperCase() + "%")); } }