package thyyxxk.webserver.service.zhuyuanyisheng; 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 org.springframework.transaction.annotation.Transactional; import thyyxxk.webserver.config.exception.ExceptionEnum; import thyyxxk.webserver.dao.his.zhuyuanyisheng.JianChaShenQingDao; import thyyxxk.webserver.entity.ResultVo; import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.JcZdClass; import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq; import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshZdYjTemplate; import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.query.ChaXunJianCha; import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp; import thyyxxk.webserver.service.PublicServer; import thyyxxk.webserver.utils.*; import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 描述: 住院医生,检查申请 *

* * @author xc * @date 2022-02-10 15:37 */ @Service @Slf4j public class JianChaShenQingServer { private final JianChaShenQingDao dao; private final PublicServer publicServer; public JianChaShenQingServer(JianChaShenQingDao dao, PublicServer publicServer) { this.dao = dao; this.publicServer = publicServer; } public ResultVo>> huoQuHuanZheJianChaMing(String name, String patNo, Integer times, String bedNo) { return ResultVoUtil.success(dao.huoQuHuanZheJianChaMing(patNo, times, bedNo, StringUtil.isContainChinese(name))); } public ResultVo> huoQuJianChaShenQing(ChaXunJianCha param) { IPage page = new Page<>(param.getCurrentPage(), param.getPageSize(), param.getTotal() == 0); page = dao.huoQuJianChaShenQing(page, param.getPatNo(), param.getTimes(), param.getOrderName(), param.getStartTime(), param.getEndTime()); return ResultVoUtil.success(page); } public ResultVo> huoQuShengQingXiangQing(Integer reqNo) { YshYjReq req = dao.huoQuShengQingXiangQing(reqNo); if (req == null) { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, "没有查询到有效信息,可能已经被删除了。"); } Map map = new HashMap<>(); StringBuilder zhuYiShiXiang = new StringBuilder(); JcZdClass jc = dao.daYingXiangQing(req.getOrderType()); // 获取患者的住址和性别 PatientTemp patient = dao.huoQuHuanZheXinXi(req.getInpatientNo()); req.setSex(patient.getSex()); // 地址 req.setHomeStreet(patient.getHomeStreet()); //联系电话 req.setHomeTel(patient.getHomeTel()); // 医保身份 req.setResponceTypeName(dao.huoQuHuanZheShenFen(req.getInpatientNo())); map.put("biaoTi", jc.getComm()); Field[] fields = jc.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); // 输出属性名和属性值 try { String key = field.getName(); Object value = EntityStringTrim.getFieldValue(jc, key); if (key.startsWith("comment") && StringUtil.notBlank((String) value)) { zhuYiShiXiang.append(((String) value).trim()).append("\n"); } } catch (Exception e) { e.printStackTrace(); } } map.put("zhuYiShiXiang", zhuYiShiXiang.toString()); map.put("shuJu", req); return ResultVoUtil.success(map); } public ResultVo> huoQuJianChaMing(long total, long currentPage, Integer leiXing) { IPage page = new Page<>(); if (leiXing == 1) { if (total == 0) { page.setTotal(dao.jianChaMingTiaoShu()); } page.setRecords(dao.jianChaMing(currentPage)); } else { page = new Page<>(currentPage, 20, total == 0); page = dao.huoQuMuBan(page, leiXing, TokenUtil.getTokenUserId()); } return ResultVoUtil.success(page); } public ResultVo>> chaKanFenLeiXiangQing(String code, String bwCode) { if (StringUtil.notBlank(bwCode) && bwCode.equals("mb")) { return ResultVoUtil.success(dao.chaKanMuBanNeiRong(code)); } return ResultVoUtil.success(dao.chaKanFenLeiXiangQing(code, bwCode)); } public ResultVo> huoMuShuoMingMuBan(String name, Integer fenLei, long total, long currentPage) { Page page = new Page<>(currentPage, 20, total == 0); page = dao.huoQuShuoMingMuBan(page, StringUtil.isContainChinese(name), fenLei, TokenUtil.getTokenUserId()); return ResultVoUtil.success(page); } @Transactional(rollbackFor = Exception.class) public ResultVo shouMingMuBanChaoZuo(YshZdYjTemplate param) { switch (param.getLeiXing()) { case "修改": return xiuGaiMuBan(param, dao.muBanShuJu(param.getCode())); case "删除": return shanChuMuBan(dao.muBanShuJu(param.getCode())); case "新增": return xinZengShouMingMuBan(param); } return ResultVoUtil.success(); } private ResultVo xinZengShouMingMuBan(YshZdYjTemplate param) { if (param.getWhFlag().trim().equals("3") && publicServer.needRule(new int[]{38})) { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "您没有权限创建全院模板。"); } else if (param.getWhFlag().trim().equals("2") && publicServer.needRule(new int[]{11})) { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "科主任才可以创建科室模板。"); } param.setCode(publicServer.getYjTemplateNo().toString()); param.setPyCode(PingYinUtils.pyShouZiMuDaXie(param.getName())); param.setDCode(PingYinUtils.getWBCode(param.getName())); param.setOpId(TokenUtil.getTokenUserId()); dao.xinZengShouMingMuBan(param); return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION); } public ResultVo xiuGaiMuBan(YshZdYjTemplate param, YshZdYjTemplate mb) { ResultVo jiaoYan = muBanJiaoYan(mb.getOpId()); if (jiaoYan != null) return jiaoYan; dao.genXingShouMingMuBan(param.getJcText(), param.getName(), PingYinUtils.pyShouZiMuDaXie(param.getName()), PingYinUtils.getWBCode(param.getName()), param.getCode()); return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION); } public ResultVo shanChuMuBan(YshZdYjTemplate mb) { ResultVo jiaoYan = muBanJiaoYan(mb.getOpId()); if (jiaoYan != null) return jiaoYan; dao.shanChuShouMingMuBan(mb.getCode()); return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION); } /** * 模板的校验 * * @param opID 录入人 * @return 提示信息 */ public ResultVo muBanJiaoYan(String opID) { if (publicServer.needRule(new int[]{38})) { if (!TokenUtil.getTokenUserId().equals(opID)) { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "该模板创建人不是你,无法操作。"); } } return null; } }