TransferInOfExpensesService.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package thyyxxk.webserver.service.yibao;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import lombok.extern.slf4j.Slf4j;
  6. import org.springframework.stereotype.Service;
  7. import thyyxxk.webserver.config.exception.ExceptionEnum;
  8. import thyyxxk.webserver.constants.Capacity;
  9. import thyyxxk.webserver.constants.GetDateFormat;
  10. import thyyxxk.webserver.dao.his.yibao.TransferInOfExpensesDao;
  11. import thyyxxk.webserver.entity.ResultVo;
  12. import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
  13. import thyyxxk.webserver.entity.datamodify.MzChargeDetail;
  14. import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
  15. import thyyxxk.webserver.entity.yibao.ZyActpatient;
  16. import thyyxxk.webserver.utils.ResultVoUtil;
  17. import thyyxxk.webserver.utils.TokenUtil;
  18. import java.util.HashMap;
  19. import java.util.List;
  20. import java.util.Map;
  21. /**
  22. * <p>
  23. * 描述: 门急诊费用转入
  24. * </p>
  25. *
  26. * @author xc
  27. * @date 2021-05-25 17:35
  28. */
  29. @Service
  30. @Slf4j
  31. public class TransferInOfExpensesService {
  32. private final TransferInOfExpensesDao dao;
  33. public TransferInOfExpensesService(TransferInOfExpensesDao dao) {
  34. this.dao = dao;
  35. }
  36. /**
  37. * 查询再远患者信息
  38. *
  39. * @param inpatientNo 住院号
  40. * @return 返回一个信息
  41. */
  42. public ResultVo<ZyActpatient> queryHuanZhe(String inpatientNo) {
  43. log.info("查询患者信息-->住院号:{}", inpatientNo);
  44. ZyActpatient pojo = dao.queryHuanZhe(inpatientNo);
  45. if (pojo != null) {
  46. return ResultVoUtil.success(dao.queryHuanZhe(inpatientNo));
  47. }
  48. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "没有找到该患者可能已出院,╮(╯▽╰)╭");
  49. }
  50. /**
  51. * 通过机制号来查找信息
  52. *
  53. * @param serialNo 机制号
  54. * @param liShiFlag 是否查看历史 0:不查看 1:查看
  55. * @return 返回信息
  56. */
  57. public ResultVo<List<MzChargeDetail>> getSerialNo(String serialNo, Integer liShiFlag) {
  58. log.info("根据机制号查找信息:{},是否查看历史 0:不查看 1:查看 --> {}", serialNo, liShiFlag);
  59. List<MzChargeDetail> list;
  60. if (liShiFlag == 0) {
  61. list = dao.getSerialNo("mz_charge_detail", serialNo);
  62. } else {
  63. list = dao.getSerialNo("mz_charge_detail_b", serialNo);
  64. }
  65. if (list.size() > 0) {
  66. return ResultVoUtil.success(list);
  67. } else {
  68. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  69. }
  70. }
  71. /**
  72. * 查看患者是通过门急诊转入的费用项目
  73. *
  74. * @param inpatientNo 住院号
  75. * @param currentPage 当前页
  76. * @param pageSize 页数
  77. * @return 返回项目
  78. */
  79. public ResultVo<Map<String, Object>> getZyJiMenZhenZhuangRuFeiYong(String inpatientNo, String chargeCodeMX, long currentPage, long pageSize) {
  80. log.info("查看患者是通过门急诊转入的费用项目 --> 住院号:{},收费编码:{},当前页:{},页数:{}", inpatientNo, chargeCodeMX, currentPage, pageSize);
  81. IPage<ZyDetailCharge> page = new Page<>(currentPage, pageSize);
  82. List<ZyDetailCharge> list = dao.getZyJiMenZhenZhuangRuFeiYong(page, inpatientNo, chargeCodeMX);
  83. Map<String, Object> map = new HashMap<>(Capacity.TWO);
  84. if (page.getTotal() > 0 || list.size() > 0) {
  85. map.put("data", list);
  86. map.put("total", page.getTotal());
  87. return ResultVoUtil.success(map);
  88. }
  89. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  90. }
  91. /**
  92. * 删除病人通过急门诊转入的费用 数据
  93. *
  94. * @param param 删除的条件
  95. * @return 返回是否成功
  96. */
  97. public ResultVo<String> shanChuFeiYong(ZyDetailCharge param) {
  98. log.info("删除该患者通过急门诊转入的费用 --> 操作员:{}, 通过主键来删除数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
  99. dao.shanChuFeiYong(param);
  100. return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功 φ(0 ̄*)啦啦啦_φ(* ̄0 ̄)′");
  101. }
  102. /**
  103. * 插入 通过急门诊转入的费用
  104. *
  105. * @param param 要插入的数据
  106. * @return 返回通知
  107. */
  108. public ResultVo<String> baoCunHuanZheZhuYuanFeiYong(ZyActpatient param) {
  109. param.setStaffId(TokenUtil.getTokenUserId());
  110. List<MzChargeDetail> list = param.getList();
  111. //查询流水号
  112. Integer maxDetailSn = dao.getMaxDetailSn(param.getInpatientNo(), param.getAdmissTimes());
  113. if (maxDetailSn == null) {
  114. maxDetailSn = 0;
  115. }
  116. // 流水号要加一
  117. for (MzChargeDetail mzChargeDetail : list) {
  118. mzChargeDetail.setDetailSn(maxDetailSn += 1);
  119. }
  120. dao.insertInfoZyDetailCharge(param, list);
  121. log.info("急门诊费用插入数据:{}", JSON.toJSONStringWithDateFormat(param, GetDateFormat.DATE_TIME));
  122. return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "添加成功");
  123. }
  124. /**
  125. * 远程搜索 项目名称
  126. *
  127. * @param pyCode 拼音码 大写的
  128. * @return 返回多个项目的名称
  129. */
  130. public ResultVo<List<GetDropdownBox>> queryEntryName(String pyCode) {
  131. IPage<GetDropdownBox> page = new Page<>(1, 20);
  132. return ResultVoUtil.success(dao.queryEntryName(page, pyCode.toUpperCase() + "%"));
  133. }
  134. }