Example #1
0
 def _get_swap_data(env: str, project_id: str, period: int):
     _data = {
         "period":
         period,
         "current_repayment_plan": [],  # 当前期的还款计划
         "before_repayment_plan": [],  # 已发生的还款计划
         "after_repayment_plan": [],  # 未发生的还款计划
         "current_fee_plan": [],  # 当前期费计划
         "before_fee_plan": [],  # 已发生的费计划
         "after_fee_plan": [],  # 未发生的费计划
         "current_swap_detail": [],  # 当前期债转详情
         "before_swap_detail": [],  # 已发生期的债转详情
         "after_swap_detail": [],  # 未发生期的债转详情
         "maturity":
         GetSqlData.get_maturity(project_id=project_id, environment=env),
         "database_repayment_plan":
         GetSqlData.get_repayment_plan(project_id=project_id,
                                       environment=env),
         "database_fee_plan":
         GetSqlData.get_fee_plan(project_id, env),
         "database_swap_detail":
         GetSqlData.get_swap_detail(project_id, env),
         "asset":
         GetSqlData.get_asset(project_id, env)
     }
     for p in _data["database_repayment_plan"]:
         if p["period"] == period:
             _data["current_repayment_plan"].append(p)
         elif p["period"] < period:
             _data["before_repayment_plan"].append(p)
         else:
             _data["after_repayment_plan"].append(p)
     for f in _data["database_fee_plan"]:
         if f["period"] == period:
             _data["current_fee_plan"].append(f)
         elif f["period"] < period:
             _data["before_fee_plan"].append(f)
         else:
             _data["after_fee_plan"].append(f)
     for s in _data["database_swap_detail"]:
         if s["period"] == period:
             _data["current_swap_detail"].append(s)
         elif s["period"] < period:
             _data["before_swap_detail"].append(s)
         else:
             _data["after_swap_detail"].append(s)
     return _data
Example #2
0
    def check_overdue(period: int, env: str, project_id: str) -> None:
        """
		检查逾期后还款计划与资产
		"""
        fee_plan = GetSqlData.get_fee_plan(project_id, env)
        repayment_plan = GetSqlData.get_repayment_plan(project_id=project_id,
                                                       environment=env)
        _data = {
            "current_fee_plan": [],  # 当前期费计划
            "before_fee_plan": [],  # 已发生的费计划
            "after_fee_plan": [],  # 未发生的费计划
            "current_repayment_plan": [],  # 当前期的还款计划
            "before_repayment_plan": [],  # 已发生的还款计划
            "after_repayment_plan": [],  # 未发生的还款计划
            "asset": GetSqlData.get_asset(project_id, env)
        }
        for f in fee_plan:
            if ["period"] == period:
                _data["current_fee_plan"].append(f)
            elif f["period"] < period:
                _data["before_fee_plan"].append(f)
            else:
                _data["after_fee_plan"].append(f)
        for p in repayment_plan:
            if p["period"] == period:
                _data["current_repayment_plan"].append(p)
            elif p["period"] < period:
                _data["before_repayment_plan"].append(p)
            else:
                _data["after_repayment_plan"].append(p)
        if len(fee_plan) == 0:
            Ulog().logger_().info("无费计划,不需要校验")
        else:
            for fee in _data["current_fee_plan"]:
                assert_that(fee["overdue_status"]).is_equal_to(1)
                assert_that(fee["overdue_days"]).is_greater_than(0)
            Ulog().logger_().info("费计划逾期状态与逾期天数校验通过")
        for plan in _data["current_repayment_plan"]:
            assert_that(plan["overdue_status"]).is_equal_to(1)
            assert_that(plan["overdue_days"]).is_greater_than(0)
        Ulog().logger_().info("还款计划逾期状态与逾期天数校验通过")
        assert_that(_data["asset"]["cur_overdue_days"]).is_greater_than(0)
        Ulog().logger_().info("资产当前逾期天数校验通过")
Example #3
0
    def _get_repay_data(env: str, project_id: str,
                        param: Optional[dict]) -> dict:
        """
		初始化校验需要用到的还款数据
		:param env:
		:param project_id:
		:param param:
		:return:
		"""
        _data = {
            "repay_type":
            param["repayType"],
            "period":
            param["period"],
            "pay_time":
            param["payTime"],
            "repayment_detail":
            param["repaymentDetailList"],
            "repay_principal":
            0,
            "repay_interest":
            0,
            "plan_pay_date":
            None,
            "success_amount":
            param["successAmount"],
            "payment_flow_source":
            param["paymentFlowSource"],
            "source_repayment_id":
            param["sourceRepaymentId"],
            "maturity":
            GetSqlData.get_maturity(project_id=project_id, environment=env),
            "database_repayment_plan":
            GetSqlData.get_repayment_plan(project_id=project_id,
                                          environment=env),
            "database_fee_plan":
            GetSqlData.get_fee_plan(project_id, env),
            "database_repayment":
            GetSqlData.get_repayment(project_id, env)[-1],
            "database_repayment_detail":
            GetSqlData.get_repayment_detail(project_id, env),
            "current_repayment_plan": [],  # 当前期的还款计划
            "before_repayment_plan": [],  # 已发生的还款计划
            "after_repayment_plan": [],  # 未发生的还款计划
            "current_fee_plan": [],  # 当前期费计划
            "before_fee_plan": [],  # 已发生的费计划
            "after_fee_plan": [],  # 未发生的费计划
            "current_repayment_detail": [],  # 当前期还款流水
            "before_repayment_detail": [],  # 已发生的还款流水
            "after_repayment_detail": []  # 未发生的还款流水
        }
        _data["plan_pay_date"] = GetSqlData.get_repayment_plan_date(
            project_id, env, 1, _data["period"])["plan_pay_date"]
        for p in _data["database_repayment_plan"]:
            if p["period"] == _data["period"]:
                _data["current_repayment_plan"].append(p)
            elif p["period"] < _data["period"]:
                _data["before_repayment_plan"].append(p)
            else:
                _data["after_repayment_plan"].append(p)
        for f in _data["database_fee_plan"]:
            if f["period"] == _data["period"]:
                _data["current_fee_plan"].append(f)
            elif f["period"] < _data["period"]:
                _data["before_fee_plan"].append(f)
            else:
                _data["after_fee_plan"].append(f)
        for detail in _data["repayment_detail"]:
            if detail["planCategory"] == 1:
                _data["repay_principal"] += detail["payAmount"]
            elif detail["planCategory"] == 2:
                _data["repay_interest"] += detail["payAmount"]
        for repayment_detail in _data["database_repayment_detail"]:
            if repayment_detail["period"] < _data["period"]:
                _data["before_repayment_detail"].append(repayment_detail)
            elif repayment_detail["period"] == _data["period"]:
                _data["current_repayment_detail"].append(repayment_detail)
            elif repayment_detail["period"] > _data["period"]:
                _data["after_repayment_detail"].append(repayment_detail)
        return _data