java编程中if else多层嵌套的优化

时间:2025-02-14 20:59:07
@Override public Result occUdhDupliCheck(UdhMissionApply udhMissionApply) { /** * 一、查询相同身份证号(查询状态不包括【自动完结】和【取消】和【待发起】并且创建人不是自己) * 1.没有相同: * { * (1)查房产证号是否相同 * 《1》有相同:判断对应授信申请是否为空 * -------<1>为空:不允许发起下户(说明在7天保护期内) * -------<2>不为空:查看授信发起日期,如果发起如果发起时间小于7天可下户申请,否则不允许发起下户申请(说明在7天保护期内)。 * 《2》没有相同:可以下户 * } *2.有相同:{ * 直接判断对应授信申请是否为空 * -------<1>为空:不允许发起下户(说明在7天保护期内) * -------<2>不为空:查看授信发起日期,如果发起如果发起时间小于7天可下户申请,否则不允许发起下户申请(说明在7天保护期内)。 *} **/ //查询相同身份证号 List<UdhMissionApply> udhMissionApplyList = udhMissionApplyExtMapper.selectByCerNoSelfAndUnderHouseStatus(udhMissionApply.getCertNoSelf(),udhMissionApply.getCreateUser()); //判断有相同身份证号 if (udhMissionApplyList == null || udhMissionApplyList.size() == 0) { //没有相同身份证的情况,查询相同房产证 udhMissionApplyList = udhMissionApplyExtMapper.selectByHousePropCertificateAndUnderHouseStatus(udhMissionApply.getHousePropCertificate(),udhMissionApply.getCreateUser()); //身份证和房产证都不存在的情况可以提交下户申请 if (udhMissionApplyList == null || udhMissionApplyList.size() == 0){ return Result.success(); } } //有相同身份证或者有相同身份证并且有相同房产证时,判断授信申请 if (this.method(udhMissionApplyList)){ return Result.success(); }else { return Result.fail("下户申请失败"); } } /** * 下户撞单对授信申请的验证,是否超过有效期 * @param * @return */ private boolean method(List<UdhMissionApply> udhMissionApplyList) { for (UdhMissionApply missionApply : udhMissionApplyList) { //获取对应的授信数据 LmtGrtApply lmtGrtApply = lmtGrtApplyExtMapper.selectByUnderhouseNum(missionApply.getUnderhouseNum()); if (ObjectUtils.isEmpty(lmtGrtApply)) { //如果授信申请为空,则授信申请正在进行中,不能进行下户申请, return false; } //如果授信申请不为为空,获取授信申请开始时间 String startTime = lmtGrtApply.getCreateTime(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime dateTime = LocalDateTime.parse(startTime, formatter); //算出现在与授信申请开始的时间差是否超过有效期天数 Duration duration = Duration.between(dateTime, LocalDateTime.now()); long days = duration.toDays(); String day = configExtMapper.selectValidParamValueByParamCode(CommConstant.MAXIMUM_LENGTH_OF_CREDIT_EXTENSION_APPLICATION); //小于有效期,不能下户申请 if (days <= Integer.parseInt(day)) { return false; } //当授信时间超过有效期,判断授信状态是否还在授信审批,如果还在授信审批,可以进行下户申请,否则不可以 if (! (DictConstant.LMT_GRT_STATUS_1).equals(lmtGrtApply.getApproveStatus())) { return false; } } return true; }