package com.brilliance.isc.common.transaction.newcheck.bopset.rmbbop;

import com.brilliance.isc.common.cache.pty.PtyCacheService;
import com.brilliance.isc.common.component.PtsptaToolComponent;
import com.brilliance.isc.common.rmbbop.vo.Rmb2101;
import com.brilliance.isc.common.transaction.newcheck.AbstractModuleValidator;
import com.brilliance.isc.common.transaction.newcheck.ValidResult;
import com.brilliance.isc.common.transaction.newcheck.Validate;
import com.brilliance.isc.common.util.RmbbopUtils;
import com.brilliance.mda.runtime.mda.util.MdaUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class Rmb2101Validator extends AbstractModuleValidator<Rmb2101> {

    @Autowired
    private PtsptaToolComponent ptsptaToolComponent;

    @Autowired
    private PtyCacheService ptyCacheService;

    @Validate(path = "rmbbop.rmb2101.recgrp.ads.bankorgcode")
    public ValidResult checkrmb2101VoRecgrpAdsBankorgcode(Rmb2101 rmb2101) {
        if (MdaUtils.isEmpty(rmb2101.getRecgrp().getAds().getBankorgcode())) {
            return ValidResult.build(false, "必输项");
        }
        return null;
    }


    @Validate(path = "rmbbop.rmb2101.recgrp.ads.payeeattr")
    public ValidResult checkRecgrpAdsPayeeattrN1001(Rmb2101 rmb2101) {
        String tranRol = RmbbopUtils.getTranRol();
        //        if (StringUtils.isNotEmpty(rmb2101.getRecgrp().getAds().getPayeeattr())) {
//            switch (SettleContext.getTransName().toUpperCase()) {
//                case "GITSET":
//                    tranRol = "APL";
//                    break;
//                case "GETSET":
//                    tranRol = "BEN";
//                    break;
//            }
//        RmbbopRequest rmbbopRequest = (RmbbopRequest) getParent();

//            PtsptaVo apl = ptsptaToolComponent.getPtsFromListByRol(rmbbopRequest.getPtsList(), "APL");
//            if (MdaUtils.isEmpty(apl)) {
//                apl = new PtsptaVo();
//                apl.reset();
//            }
//            PtsptaVo ben = ptsptaToolComponent.getPtsFromListByRol(rmbbopRequest.getPtsList(), "BEN");
//            if (MdaUtils.isEmpty(ben)) {
//                ben = new PtsptaVo();
//                ben.reset();
//            }

//            Pty pty = new Pty();
//            if (MdaUtils.compareTo(tranRol, "APL") == 0) {
//                if (!MdaUtils.isEmpty(apl.getPtyinr())) {
//                    pty = ptyCacheService.getPtyById(apl.getPtyinr());
//                }
//            }
//
//            if (MdaUtils.compareTo(tranRol, "BEN") == 0) {
//                if (!MdaUtils.isEmpty(ben.getPtyinr())) {
//                    pty = ptyCacheService.getPtyById(ben.getPtyinr());
//                }
//            }
//
//            if (!MdaUtils.isEmpty(pty)) {
//                fieldVal2 = pty.getIdtype();
//            }
        String idtype = RmbbopUtils.getPty(tranRol).getIdtype();
        String payeeattr = rmb2101.getRecgrp().getAds().getPayeeattr();
        if ("2".equals(idtype)) {
            if (StringUtils.isNotEmpty(payeeattr)) {
                if (!"2001".equals(payeeattr) && !"2002".equals(payeeattr)) {
                    return ValidResult.build(false, "收款人属性错误，请修改");
                }
            }
        } else if ("1".equals(idtype)) {
            if (!"2003".equals(payeeattr)) {
                return ValidResult.build(false, "收款人属性错误，请修改");
            }
        }
//        }

        return null;
    }


}
