package thyyxxk.webserver.service.yibao; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import thyyxxk.webserver.config.exception.ExceptionEnum; import thyyxxk.webserver.constants.ResponceType; import thyyxxk.webserver.dao.his.yibao.YbVerifyDao; import thyyxxk.webserver.entity.ResultVo; import thyyxxk.webserver.entity.yibao.patient.Patient; import thyyxxk.webserver.entity.yibao.ybverify.CancelRegisterRequest; import thyyxxk.webserver.entity.yibao.ybverify.IdCardUpload; import thyyxxk.webserver.utils.FilterUtil; import thyyxxk.webserver.utils.ResultVoUtil; import thyyxxk.webserver.utils.TokenUtil; import java.util.List; import java.util.Map; import static thyyxxk.webserver.utils.YibaoHttpUtil.httpPost; /** * @author dj */ @Slf4j @Service public class YbVerifyService { private final YbVerifyDao dao; public YbVerifyService(YbVerifyDao dao) { this.dao = dao; } public ResultVo approveYbsf(Patient param) { log.info("医保身份审核通过 => 操作员:{},住院号:{},住院次数:{}", TokenUtil.getTokenUserId(), param.getInpatientNo(), param.getAdmissTimes()); if (param.getResponceType().equals(ResponceType.NEW_RURAL_COOPERATIVE_MEDICAL_INSURANCE)) { ResultVo resultVo = httpPost("getFamilyMember", param, "04"); if (resultVo.getCode() == ExceptionEnum.SUCCESS.getCode()) { Map obj = FilterUtil.cast(resultVo.getData()); Map members = FilterUtil.cast(obj.get("members")); if (members.get("name").trim().equals(param.getName().trim())) { String memberSysNo = members.get("memberNo"); param.setXnhMembersysno(memberSysNo); dao.updateMemberSysNo(param.getInpatientNo(), memberSysNo); } resultVo = httpPost("register", param, "04"); if (resultVo.getCode() == ExceptionEnum.SUCCESS.getCode()) { IdCardUpload info = dao.getSfzInfo(param.getInpatientNo(), param.getAdmissTimes()); if (info == null || info.getFileSfz() == null) { resultVo = httpPost("uploadScanFile", param, "04"); } else { resultVo = httpPost("uploadIdCard", param, "04"); } log.info("上传证件到新农合结果:{}", resultVo); if (resultVo.getCode() == ExceptionEnum.SUCCESS.getCode()) { dao.approveYbsf(param.getInpatientNo(), param.getAdmissTimes(), TokenUtil.getTokenUserId(), param.getYbRemark()); dao.updateZyActpatient(param.getInpatientNo(), param.getAdmissTimes()); return ResultVoUtil.success(); } else { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, resultVo.getMessage()); } } else { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, resultVo.getMessage()); } } else { return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, resultVo.getMessage()); } } else { dao.approveYbsf(param.getInpatientNo(), param.getAdmissTimes(), TokenUtil.getTokenUserId(), param.getYbRemark()); dao.updateZyActpatient(param.getInpatientNo(), param.getAdmissTimes()); return ResultVoUtil.success(); } } public ResultVo rejectYbsf(Patient param) { dao.rejectYbsf(param.getInpatientNo(), param.getAdmissTimes(), param.getYbRemark()); return ResultVoUtil.success(); } public ResultVo> getUnhandledRequests(Integer requestType) { return ResultVoUtil.success(dao.getUnhandledRequests(requestType)); } public ResultVo handleRequests(CancelRegisterRequest param) { String verifyName = dao.getVerifyName(param.getVerifyId()); param.setVerifyName(verifyName); log.info("取消医保入院登记审核>>> {}", param); dao.handleRequests(param); return ResultVoUtil.success(); } }