com.allinfinance.bo.impl.mchnt.TblMchntServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.allinfinance.bo.impl.mchnt.TblMchntServiceImpl.java

Source

/* @(#)
 *
 * Project:PFConsole
 *
 * Modify Information:
 * =============================================================================
 *   Author         Date           Description
 *   ------------ ---------- ---------------------------------------------------
 *   Gavin      2011-6-17       first release
 *
 *
 * Copyright Notice:
 * =============================================================================
 *       Copyright 2011 allinfinance, Inc. All rights reserved.
 *
 *       This software is the confidential and proprietary information of
 *       Shanghai allinfinance Co., Ltd. ("Confidential Information").
 *       You shall not disclose such Confidential Information and shall use it
 *       only in accordance with the terms of the license agreement you entered
 *       into with allinfinance.
 *
 * Warning:
 * =============================================================================
 *
 */
package com.allinfinance.bo.impl.mchnt;

import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.BeanUtils;

import com.allinfinance.bo.impl.daytrade.FrontMcht;
import com.allinfinance.common.Constants;
import com.allinfinance.common.Operator;
import com.allinfinance.common.StringUtil;
import com.allinfinance.common.SysParamConstants;
import com.allinfinance.common.TblMchntInfoConstants;
import com.allinfinance.common.TblOprInfoConstants;
import com.allinfinance.common.msg.Msg;
import com.allinfinance.common.msg.MsgEntity;
import com.allinfinance.commquery.dao.ICommQueryDAO;
import com.allinfinance.dao.iface.base.TblBrhInfoDAO;
import com.allinfinance.dao.iface.daytrade.WebFrontTxnLogDAO;
import com.allinfinance.dao.iface.mchnt.ITblGroupMchtInfDAO;
import com.allinfinance.dao.iface.mchnt.ITblGroupMchtSettleInfDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtBaseInfDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtBaseInfTmpDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtBaseInfTmpLogDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtBaseInfTmpTmpDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtCashInfDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtCashInfTmpDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtCashInfTmpTmpDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtSettleInfDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtSettleInfTmpDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtSettleInfTmpHistDAO;
import com.allinfinance.dao.iface.mchnt.ShTblOprInfoDAO;
import com.allinfinance.dao.iface.mchnt.TblMchntRefuseDAO;
import com.allinfinance.dao.iface.risk.TblRiskParamMngDAO;
import com.allinfinance.dao.iface.term.TblTermInfDAO;
import com.allinfinance.dao.iface.term.TblTermInfTmpDAO;
import com.allinfinance.dao.iface.term.TblTermKeyDAO;
import com.allinfinance.dao.iface.mchnt.ITblMchtBaseInfTmpHistDAO;
import com.allinfinance.po.ShTblOprInfo;
import com.allinfinance.po.ShTblOprInfoPk;
import com.allinfinance.po.TblBrhInfo;
import com.allinfinance.po.TblMchntRefuse;
import com.allinfinance.po.TblMchntRefusePK;
import com.allinfinance.po.TblMchtBaseInfTmpLog;
import com.allinfinance.po.TblTermInf;
import com.allinfinance.po.TblTermInfTmp;
import com.allinfinance.po.mchnt.TblGroupMchtInf;
import com.allinfinance.po.mchnt.TblGroupMchtSettleInf;
import com.allinfinance.po.mchnt.TblMchtBaseInf;
import com.allinfinance.po.mchnt.TblMchtBaseInfTmp;
import com.allinfinance.po.mchnt.TblMchtBaseInfTmpHist;
import com.allinfinance.po.mchnt.TblMchtBaseInfTmpHistPK;
import com.allinfinance.po.mchnt.TblMchtBaseInfTmpTmp;
import com.allinfinance.po.mchnt.TblMchtCashInf;
import com.allinfinance.po.mchnt.TblMchtCashInfTmp;
import com.allinfinance.po.mchnt.TblMchtCashInfTmpTmp;
import com.allinfinance.po.mchnt.TblMchtSettleInf;
import com.allinfinance.po.mchnt.TblMchtSettleInfTmp;
import com.allinfinance.po.mchnt.TblMchtSettleInfTmpHist;
import com.allinfinance.po.mchnt.TblMchtSettleInfTmpHistPK;
import com.allinfinance.po.mchnt.TblMchtSettleInfTmpTmp;
import com.allinfinance.po.risk.TblRiskParamMng;
import com.allinfinance.po.risk.TblRiskParamMngPK;
import com.allinfinance.struts.pos.EposMisc;
import com.allinfinance.system.util.CommonFunction;
import com.allinfinance.system.util.ContextUtil;
import com.allinfinance.system.util.Encryption;
import com.allinfinance.system.util.FileFilter;
import com.allinfinance.system.util.GenerateNextId;
import com.allinfinance.system.util.StatusUtil;
import com.allinfinance.system.util.SysParamUtil;

/**
 * Title:
 * 
 * Description:
 * 
 * Copyright: Copyright (c) 2011-6-17
 * 
 * Company: Shanghai allinfinance Co., Ltd.
 * 
 * @author Gavin
 * 
 * @version 1.0
 */
public class TblMchntServiceImpl implements TblMchntService {
    private ITblMchtSettleInfTmpHistDAO tblMchtSettleInfTmpHistDAO;
    private ITblMchtBaseInfTmpHistDAO tblMchtBaseInfTmpHistDAO;
    private TblRiskParamMngDAO tblRiskParamMngDAO;
    private static Logger log = Logger.getLogger(TblMchntServiceImpl.class);
    private ITblMchtCashInfTmpTmpDAO cashInfTmpTmpDAO;
    private ITblMchtCashInfTmpDAO cashInfTmpDAO;
    private ITblMchtCashInfDAO cashInfDAO;

    /**
     * @return the cashInfTmpTmpDAO
     */
    public ITblMchtCashInfTmpTmpDAO getCashInfTmpTmpDAO() {
        return cashInfTmpTmpDAO;
    }

    /**
     * @param cashInfTmpTmpDAO the cashInfTmpTmpDAO to set
     */
    public void setCashInfTmpTmpDAO(ITblMchtCashInfTmpTmpDAO cashInfTmpTmpDAO) {
        this.cashInfTmpTmpDAO = cashInfTmpTmpDAO;
    }

    /**
     * @return the cashInfTmpDAO
     */
    public ITblMchtCashInfTmpDAO getCashInfTmpDAO() {
        return cashInfTmpDAO;
    }

    /**
     * @param cashInfTmpDAO the cashInfTmpDAO to set
     */
    public void setCashInfTmpDAO(ITblMchtCashInfTmpDAO cashInfTmpDAO) {
        this.cashInfTmpDAO = cashInfTmpDAO;
    }

    /**
     * @return the cashInfDAO
     */
    public ITblMchtCashInfDAO getCashInfDAO() {
        return cashInfDAO;
    }

    /**
     * @param cashInfDAO the cashInfDAO to set
     */
    public void setCashInfDAO(ITblMchtCashInfDAO cashInfDAO) {
        this.cashInfDAO = cashInfDAO;
    }

    public TblTermKeyDAO tblTermKeyDAO;

    /**
     * @return the tblTermKeyDAO
     */
    public TblTermKeyDAO getTblTermKeyDAO() {
        return tblTermKeyDAO;
    }

    /**
     * @param tblTermKeyDAO the tblTermKeyDAO to set
     */
    public void setTblTermKeyDAO(TblTermKeyDAO tblTermKeyDAO) {
        this.tblTermKeyDAO = tblTermKeyDAO;
    }

    public ITblMchtBaseInfTmpDAO getTblMchtBaseInfTmpDAO() {
        return tblMchtBaseInfTmpDAO;
    }

    public void setTblMchtBaseInfTmpDAO(ITblMchtBaseInfTmpDAO tblMchtBaseInfTmpDAO) {
        this.tblMchtBaseInfTmpDAO = tblMchtBaseInfTmpDAO;
    }

    public ITblMchtBaseInfDAO getTblMchtBaseInfDAO() {
        return tblMchtBaseInfDAO;
    }

    public void setTblMchtBaseInfDAO(ITblMchtBaseInfDAO tblMchtBaseInfDAO) {
        this.tblMchtBaseInfDAO = tblMchtBaseInfDAO;
    }

    public ITblMchtSettleInfTmpDAO getTblMchtSettleInfTmpDAO() {
        return tblMchtSettleInfTmpDAO;
    }

    public void setTblMchtSettleInfTmpDAO(ITblMchtSettleInfTmpDAO tblMchtSettleInfTmpDAO) {
        this.tblMchtSettleInfTmpDAO = tblMchtSettleInfTmpDAO;
    }

    public ITblMchtSettleInfDAO getTblMchtSettleInfDAO() {
        return tblMchtSettleInfDAO;
    }

    public void setTblMchtSettleInfDAO(ITblMchtSettleInfDAO tblMchtSettleInfDAO) {
        this.tblMchtSettleInfDAO = tblMchtSettleInfDAO;
    }

    public TblMchntRefuseDAO getTblMchntRefuseDAO() {
        return tblMchntRefuseDAO;
    }

    public void setTblMchntRefuseDAO(TblMchntRefuseDAO tblMchntRefuseDAO) {
        this.tblMchntRefuseDAO = tblMchntRefuseDAO;
    }

    public ITblGroupMchtInfDAO getTblGroupMchtInfDAO() {
        return tblGroupMchtInfDAO;
    }

    public void setTblGroupMchtInfDAO(ITblGroupMchtInfDAO tblGroupMchtInfDAO) {
        this.tblGroupMchtInfDAO = tblGroupMchtInfDAO;
    }

    public ITblGroupMchtSettleInfDAO getTblGroupMchtSettleInfDAO() {
        return tblGroupMchtSettleInfDAO;
    }

    public void setTblGroupMchtSettleInfDAO(ITblGroupMchtSettleInfDAO tblGroupMchtSettleInfDAO) {
        this.tblGroupMchtSettleInfDAO = tblGroupMchtSettleInfDAO;
    }

    /**
     * @return the shTblOprInfoDAO
     */
    public ShTblOprInfoDAO getShTblOprInfoDAO() {
        return shTblOprInfoDAO;
    }

    /**
     * @param shTblOprInfoDAO the shTblOprInfoDAO to set
     */
    public void setShTblOprInfoDAO(ShTblOprInfoDAO shTblOprInfoDAO) {
        this.shTblOprInfoDAO = shTblOprInfoDAO;
    }

    public ITblMchtBaseInfTmpLogDAO getiTblMchtBaseInfTmpLogDAO() {
        return iTblMchtBaseInfTmpLogDAO;
    }

    public void setiTblMchtBaseInfTmpLogDAO(ITblMchtBaseInfTmpLogDAO iTblMchtBaseInfTmpLogDAO) {
        this.iTblMchtBaseInfTmpLogDAO = iTblMchtBaseInfTmpLogDAO;
    }

    public ITblMchtBaseInfTmpDAO tblMchtBaseInfTmpDAO;

    public ITblMchtBaseInfDAO tblMchtBaseInfDAO;

    public ITblMchtSettleInfTmpDAO tblMchtSettleInfTmpDAO;

    public ITblMchtBaseInfTmpTmpDAO tblMchtBaseInfTmpTmpDAO;

    public ITblMchtSettleInfDAO tblMchtSettleInfDAO;

    public TblMchntRefuseDAO tblMchntRefuseDAO;

    public ITblGroupMchtInfDAO tblGroupMchtInfDAO;

    public ITblGroupMchtSettleInfDAO tblGroupMchtSettleInfDAO;

    public ShTblOprInfoDAO shTblOprInfoDAO;
    public ITblMchtBaseInfTmpLogDAO iTblMchtBaseInfTmpLogDAO;

    public WebFrontTxnLogDAO webFrontTxnLogDAO;
    public ICommQueryDAO commQueryDAO;

    public TblTermInfDAO tblTermInfDAO;
    public TblTermInfTmpDAO tblTermInfTmpDAO;

    /**
     * @return the webFrontTxnLogDAO
     */
    public WebFrontTxnLogDAO getWebFrontTxnLogDAO() {
        return webFrontTxnLogDAO;
    }

    /**
     * @param webFrontTxnLogDAO the webFrontTxnLogDAO to set
     */
    public void setWebFrontTxnLogDAO(WebFrontTxnLogDAO webFrontTxnLogDAO) {
        this.webFrontTxnLogDAO = webFrontTxnLogDAO;
    }

    /**
     * @return the commQueryDAO
     */
    public ICommQueryDAO getCommQueryDAO() {
        return commQueryDAO;
    }

    /**
     * @param commQueryDAO the commQueryDAO to set
     */
    public void setCommQueryDAO(ICommQueryDAO commQueryDAO) {
        this.commQueryDAO = commQueryDAO;
    }

    /*
     * ??
     * 
     * @see
     * com.allinfinance.bo.impl.mchnt.TblMchntService#saveTmp(com.allinfinance.po.mchnt
     * .TblMchtBaseInfTmp, as.allinfinance.po.management.mer.TblMchtSettleInfTmp)
     */
    public String saveTmp(TblMchtBaseInfTmp tblMchtBaseInfTmp, TblMchtSettleInfTmp tblMchtSettleInfTmp) {

        if (tblMchtBaseInfTmpDAO.get(tblMchtBaseInfTmp.getMchtNo()) != null) {
            return "??";
        }
        tblMchtBaseInfTmpDAO.save(tblMchtBaseInfTmp);
        tblMchtSettleInfTmpDAO.save(tblMchtSettleInfTmp);

        return Constants.SUCCESS_CODE;
    }

    /*
     * ?
     * 
     * @see
     * com.allinfinance.bo.impl.mchnt.TblMchntService#updateTmp(com.allinfinance.po.mchnt
     * .TblMchtBaseInfTmp, com.allinfinance.po.mchnt.TblMchtSettleInfTmp)
     */
    public String updateTmp(TblMchtBaseInfTmp tblMchtBaseInfTmp, TblMchtSettleInfTmp tblMchtSettleInfTmp) {

        tblMchtBaseInfTmpDAO.update(tblMchtBaseInfTmp);
        tblMchtSettleInfTmpDAO.update(tblMchtSettleInfTmp);

        return Constants.SUCCESS_CODE;
    }

    /*
     * 
     * 
     * @see com.allinfinance.bo.impl.mchnt.TblMchntService#accept(java.lang.String)
     */
    public String accept(String mchntId, TblMchtBaseInfTmp tmp, TblMchtSettleInfTmp tmpSettle, TblMchtBaseInf inf,
            TblMchtSettleInf infSettle, TblRiskParamMng tblRiskParamMng) throws Exception {

        //      TblMchtBaseInfTmp tmp = tblMchtBaseInfTmpDAO.get(mchntId);
        //      TblMchtSettleInfTmp tmpSettle = tblMchtSettleInfTmpDAO.get(mchntId);
        //      if (null == tmp || null == tmpSettle) {
        //         return "??";
        //      }
        //??
        String newMchtNo;
        if (mchntId.contains("AAA")) {
            String idStr = "848" + tmp.getAreaNo().trim() + tmp.getMcc().trim();
            newMchtNo = GenerateNextId.getMchntId(idStr);
            newMchtNo = StringUtils.trim(newMchtNo);

        } else {
            newMchtNo = mchntId;
        }
        System.out.println("?" + newMchtNo);

        //??
        String status = tmp.getMchtStatus();
        //cre
        //      String crtDateTmp= tmp.getRecCrtTs();
        //?
        String upDateTmp = tmp.getRecUpdTs();
        //?
        String oprid = tmp.getUpdOprId();
        if (null == oprid) {
            oprid = tmp.getCrtOprId();
        }

        // ??
        //      TblMchtBaseInf inf = tblMchtBaseInfDAO.get(newMchtNo);
        //      TblMchtSettleInf infSettle = tblMchtSettleInfDAO.get(newMchtNo);
        //?cre
        String crtDate = "0";

        if (null != inf) {
            inf.setMchtStatus("0");
            crtDate = inf.getRecCrtTs();
        }
        if (null == inf) {
            inf = new TblMchtBaseInf();
        }
        if (null == infSettle) {
            infSettle = new TblMchtSettleInf();
        }

        // 
        tmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
        Operator opr = (Operator) ServletActionContext.getRequest().getSession()
                .getAttribute(Constants.OPERATOR_INFO);
        tmp.setUpdOprId(opr.getOprId());
        tmpSettle.setRecUpdTs(CommonFunction.getCurrentDateTime());

        // ?
        tmp.setMchtStatus(StatusUtil.getNextStatus("A." + status));

        // ?
        TblMchntRefuse refuse = new TblMchntRefuse();
        TblMchntRefusePK tblMchntRefusePK = new TblMchntRefusePK(newMchtNo, CommonFunction.getCurrentDateTime());
        refuse.setId(tblMchntRefusePK);
        refuse.setRefuseInfo("");
        refuse.setBrhId(tmp.getBankNo());
        refuse.setOprId(opr.getOprId());

        // ?
        refuse.setRefuseType("");

        //?
        Object[] ret = insertTblMchtBaseInfTmpLog(tmp, inf, tmpSettle, infSettle, status, upDateTmp, oprid);
        String retMsg = Constants.SUCCESS_CODE;
        /*
         * ?
            
         */
        String txnCode = "";
        boolean isOpen = (Boolean) ret[1];
        if (TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(status)
                || TblMchntInfoConstants.MCHNT_ST_NEW_FIRST_UNCK.equals(status)) {
            txnCode = FrontMcht.TXN_CODE_ADDACCT;
            isOpen = true;
        }
        if (!TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(status)
                && !TblMchntInfoConstants.MCHNT_ST_NEW_FIRST_UNCK.equals(status)) {
            if (TblMchntInfoConstants.MCHNT_ST_MODI_UNCK.equals(status)) {
                txnCode = FrontMcht.TXN_CODE_UPDACCT;
            } else if (TblMchntInfoConstants.MCHNT_ST_DEL_UNCK.equals(status)) {
                txnCode = FrontMcht.TXN_CODE_DELACCT;
                isOpen = true;
            }
        }
        if (isOpen) {
            retMsg = optMchtAcct(inf, infSettle, txnCode);
        }

        //======================

        log.info("????");
        retMsg = this.sendMessage(newMchtNo, tmp, inf, tmpSettle, infSettle);
        log.info(":" + retMsg);
        if (!Constants.SUCCESS_CODE.equals(retMsg)) {
            return retMsg;
        }
        log.info("?????");
        //?
        TblRiskParamMngPK key = new TblRiskParamMngPK();
        key.setMchtId(newMchtNo);
        key.setTermId(CommonFunction.fillString("00000000", ' ', 12, true));
        key.setRiskType("0");
        tblRiskParamMng.setId(key);
        tblRiskParamMngDAO.saveOrUpdate(tblRiskParamMng);
        //=============================

        // ????clone??clone???
        //      if(mchntId.contains("AAA")){
        BeanUtils.copyProperties(tmp, inf);
        BeanUtils.copyProperties(tmpSettle, infSettle);
        //      }
        log.info("???" + inf.getCashFlag());
        //??
        if ("1".equals(inf.getCashFlag())) {
            if (mchntId.contains("AAA")) {
                TblMchtCashInfTmpTmp tblMchtCashInfTmpTmp = cashInfTmpTmpDAO.get(mchntId);
                TblMchtCashInfTmp tblMchtCashInfTmp = cashInfTmpDAO.get(mchntId);
                if (tblMchtCashInfTmp != null && tblMchtCashInfTmpTmp != null) {
                    tblMchtCashInfTmp.setUpdOpr(inf.getUpdOprId());
                    tblMchtCashInfTmp.setUpdTime(CommonFunction.getCurrentDateTime());
                    TblMchtCashInf cashInf = new TblMchtCashInf(newMchtNo);
                    TblMchtCashInfTmp cashInfTmp = new TblMchtCashInfTmp(newMchtNo);
                    TblMchtCashInfTmpTmp cashInfTmpTmp = new TblMchtCashInfTmpTmp(newMchtNo);
                    BeanUtils.copyProperties(tblMchtCashInfTmp, cashInf, new String[] { "mchtId" });
                    BeanUtils.copyProperties(tblMchtCashInfTmp, cashInfTmp, new String[] { "mchtId" });
                    BeanUtils.copyProperties(tblMchtCashInfTmp, cashInfTmpTmp, new String[] { "mchtId" });
                    cashInfTmpDAO.delete(tblMchtCashInfTmp);
                    cashInfTmpTmpDAO.delete(tblMchtCashInfTmpTmp);
                    cashInfDAO.saveOrUpdate(cashInf);
                    cashInfTmpDAO.saveOrUpdate(cashInfTmp);
                    cashInfTmpTmpDAO.saveOrUpdate(cashInfTmpTmp);
                }
            } else {
                TblMchtCashInfTmp tblMchtCashInfTmp = cashInfTmpDAO.get(mchntId);
                if (tblMchtCashInfTmp != null) {
                    tblMchtCashInfTmp.setUpdOpr(inf.getUpdOprId());
                    tblMchtCashInfTmp.setUpdTime(CommonFunction.getCurrentDateTime());
                    TblMchtCashInf cashInf = new TblMchtCashInf(newMchtNo);
                    BeanUtils.copyProperties(tblMchtCashInfTmp, cashInf);
                    cashInfDAO.saveOrUpdate(cashInf);
                }
            }
        }
        //
        if (TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(status)
                || TblMchntInfoConstants.MCHNT_ST_NEW_FIRST_UNCK.equals(status)) {
            inf.setRecCrtTs(CommonFunction.getCurrentDateTime());//
        }
        //?crt??
        if (!TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(status)
                && !TblMchntInfoConstants.MCHNT_ST_NEW_FIRST_UNCK.equals(status)) {
            inf.setRecCrtTs(crtDate);
        }

        if (Constants.SUCCESS_CODE.equals(retMsg)) {

            if (status.equals(TblMchntInfoConstants.MCHNT_ST_DEL_UNCK)) {//?
                String update0 = "update tbl_term_inf set TERM_STA = '7' where MCHT_CD = '" + tmp.getMchtNo() + "'";
                String update1 = "update tbl_term_inf_tmp set TERM_STA = '7' where MCHT_CD = '" + tmp.getMchtNo()
                        + "'";
                commQueryDAO.excute(update0);
                commQueryDAO.excute(update1);
            } else if (status.equals(TblMchntInfoConstants.MCHNT_ST_STOP_UNCK)) {//??
                String update0 = "update tbl_term_inf set TERM_STA = '4' where MCHT_CD = '" + tmp.getMchtNo() + "'";
                String update1 = "update tbl_term_inf_tmp set TERM_STA = '4' where MCHT_CD = '" + tmp.getMchtNo()
                        + "'";
                String update2 = "update TBL_ALARM_MCHT set BLOCK_MCHT_FLAG='1' where CARD_ACCP_ID='"
                        + tmp.getMchtNo() + "' ";
                commQueryDAO.excute(update0);
                commQueryDAO.excute(update1);
                commQueryDAO.excute(update2);
            } else if (status.equals(TblMchntInfoConstants.MCHNT_ST_MODI_UNCK)) {//
                if (!tmp.getBankNo().equals(inf.getBankNo())) {
                    String update0 = "update BTH_CHK_TXN_SUSPS set stlm_inst='" + tmp.getBankNo()
                            + "' where card_accp_id='" + tmp.getMchtNo() + "'";
                    String update1 = "update BTH_CHK_TXN set stlm_inst='" + tmp.getBankNo()
                            + "' where card_accp_id = '" + tmp.getMchtNo() + "'";
                    String update2 = "update tbl_mchnt_infile_dtl set brh_code='" + tmp.getBankNo()
                            + "' where mcht_no = '" + tmp.getMchtNo() + "'";
                    String update3 = "update tbl_algo_dtl set brh_ins_id_cd='" + tmp.getBankNo()
                            + "' where mcht_cd = '" + tmp.getMchtNo() + "'";
                    String update4 = "update tbl_term_algo_sum set brh_ins_id_cd='" + tmp.getBankNo()
                            + "' where mcht_cd = '" + tmp.getMchtNo() + "'";
                    String update5 = "update TBL_TERM_INF set TERM_BRANCH='" + tmp.getBankNo()
                            + "' where mcht_cd = '" + tmp.getMchtNo() + "'";
                    String update6 = "update TBL_TERM_INF_TMP set TERM_BRANCH='" + tmp.getBankNo()
                            + "' where mcht_cd = '" + tmp.getMchtNo() + "'";
                    commQueryDAO.excute(update0);
                    commQueryDAO.excute(update1);
                    commQueryDAO.excute(update2);
                    commQueryDAO.excute(update3);
                    commQueryDAO.excute(update4);
                    commQueryDAO.excute(update5);
                    commQueryDAO.excute(update6);
                }
            } else if (status.equals(TblMchntInfoConstants.MCHNT_ST_RCV_UNCK)) {//??? 
                String update0 = "update TBL_ALARM_MCHT set BLOCK_MCHT_FLAG='0' where CARD_ACCP_ID='"
                        + tmp.getMchtNo() + "' ";
                commQueryDAO.excute(update0);
            }

            // ID?ID?
            if (mchntId.contains("AAA")) {
                String updateRefuse = "update tbl_Mchnt_Refuse set mchnt_id='" + newMchtNo + "' where mchnt_id='"
                        + mchntId + "'";
                commQueryDAO.excute(updateRefuse);
            }
            //TBL_INF_DISC_CD.DISC_NM
            String updateDiscCd = "UPDATE TBL_INF_DISC_CD SET DISC_NM='" + tmp.getMchtFunction().trim()
                    + "',REC_UPD_TS='" + CommonFunction.getCurrentDateTime() + "' WHERE DISC_CD='"
                    + tmpSettle.getFeeRate().trim() + "'";
            commQueryDAO.excute(updateDiscCd);
            String updateHisDisc = "UPDATE TBL_HIS_DISC_ALGO A SET A.REC_UPD_TS='"
                    + CommonFunction.getCurrentDateTime() + "' WHERE A.DISC_ID='" + tmpSettle.getFeeRate().trim()
                    + "'";
            commQueryDAO.excute(updateHisDisc);
            if (TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(status)) {
                //?TBL_INF_DISC_CD_MIRROR,TBL_HIS_DISC_ALGO_MIRROR??
                String updateDiscMirror = "INSERT INTO TBL_INF_DISC_CD_MIRROR A SELECT * FROM TBL_INF_DISC_CD B WHERE B.DISC_CD='"
                        + tmpSettle.getFeeRate().trim() + "'";
                commQueryDAO.excute(updateDiscMirror);
                String updateHisDiscMirror = "INSERT INTO TBL_HIS_DISC_ALGO_MIRROR A SELECT * FROM TBL_HIS_DISC_ALGO B WHERE B.DISC_ID='"
                        + tmpSettle.getFeeRate().trim() + "'";
                commQueryDAO.excute(updateHisDiscMirror);
            }

            //?
            iTblMchtBaseInfTmpLogDAO.saveOrUpdate((TblMchtBaseInfTmpLog) ret[0]);
            if (FrontMcht.TXN_CODE_ADDACCT.equals(txnCode)) {// ??
                addOprInfo(newMchtNo);
            }

            //List<TblTermKey> termKeyList=tblTermKeyDAO.getByMchnt(mchntId);
            //         if(termKeyList!=null&&termKeyList.size()!=0){

            //            for (TblTermKey tblTermKey : termKeyList) {
            //? 
            List<TblTermInfTmp> list = null;
            String currentDateTime = CommonFunction.getCurrentDateTime();
            if (!"4".equals(status)) {
                list = tblTermInfTmpDAO.getByMchntAll(mchntId);
                tblTermKeyDAO.updateByTremId(mchntId, newMchtNo, currentDateTime);
            }
            //               String termId = tblTermKey.getId().getTermId();
            //               tblTermKey.setRecUpdTs(CommonFunction.getCurrentDateTime());
            //            }
            //         }
            //termkey
            // 
            if (list != null && list.size() != 0) {
                for (TblTermInfTmp tblTermInfTmp : list) {

                    TblTermInf termInf;

                    //??
                    TblTermInf tblTermInfOld = tblTermInfDAO.get(tblTermInfTmp.getId().getTermId());
                    if (tblTermInfOld != null) {
                        tblTermInfOld = (TblTermInf) tblTermInfTmp.cloneHasExists(tblTermInfOld);
                        termInf = tblTermInfOld;
                        tblTermInfTmp.setMisc1(tblTermInfOld.getMisc1());
                        tblTermInfTmp.setProductCd(tblTermInfOld.getProductCd());
                    } else {
                        termInf = new TblTermInf();
                        termInf = (TblTermInf) tblTermInfTmp.clone();
                    }
                    termInf.setTermSerialNum(tblTermInfTmp.getTermSerialNum());
                    termInf.setTermPara(tblTermInfTmp.getTermPara().replaceAll("\\|", ""));
                    if (tblTermInfTmp.getMisc2() != null && !tblTermInfTmp.getMisc2().equals("")) {
                        EposMisc epos = new EposMisc(termInf.getMisc2());
                        epos.setVersion(tblTermInfTmp.getMisc2());
                        termInf.setMisc2(epos.toString());
                    }
                    //814???YYYYMMDD YYYYMMDDHHMMSS
                    //tblTermInf.setRecUpdTs(CommonFunction.getCurrentDate());
                    termInf.setRecUpdTs(CommonFunction.getCurrentDateTime());
                    Operator opra = (Operator) ServletActionContext.getRequest().getSession()
                            .getAttribute(Constants.OPERATOR_INFO);
                    termInf.setRecUpdOpr(opra.getOprId());
                    //mis?7---
                    if (!"7".equals(tblTermInfTmp.getTermSta())) {
                        termInf.setTermSta("1");
                        tblTermInfTmp.setTermSta("1");
                    }

                    tblTermInfTmp.setRecUpdOpr(opra.getOprId());
                    tblTermInfTmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
                    tblTermInfTmp.setMchtCd(newMchtNo);
                    tblTermInfTmpDAO.update(tblTermInfTmp);

                    termInf.setMchtCd(newMchtNo);
                    tblTermInfDAO.saveOrUpdate(termInf);
                    if (mchntId.contains("AAA")) {
                        //?
                        TblRiskParamMng termRiskParamMngNew = new TblRiskParamMng();
                        TblRiskParamMngPK riskParamMngPK = new TblRiskParamMngPK(newMchtNo,
                                tblTermInfTmp.getId().getTermId(), "1");
                        TblRiskParamMng termRiskParamMng = tblRiskParamMngDAO.get(mchntId,
                                CommonFunction.fillString(tblTermInfTmp.getId().getTermId(), ' ', 12, true), "1");
                        if (termRiskParamMng == null) {
                            termRiskParamMngNew.setId(riskParamMngPK);
                            termRiskParamMngNew.setCreditDayAmt(0.0);
                            termRiskParamMngNew.setCreditMonAmt(0.0);
                            termRiskParamMngNew.setCreditSingleAmt(tblRiskParamMng.getCreditSingleAmt());
                            termRiskParamMngNew.setDebitDayAmt(0.0);
                            termRiskParamMngNew.setDebitMonAmt(0.0);
                            termRiskParamMngNew.setDebitSingleAmt(tblRiskParamMng.getDebitSingleAmt());
                            tblRiskParamMngDAO.saveOrUpdate(termRiskParamMngNew);
                        } else {
                            termRiskParamMngNew = (TblRiskParamMng) org.apache.commons.beanutils.BeanUtils
                                    .cloneBean(termRiskParamMng);
                            termRiskParamMngNew.setId(riskParamMngPK);
                            tblRiskParamMngDAO.delete(termRiskParamMng);
                            tblRiskParamMngDAO.saveOrUpdate(termRiskParamMngNew);
                        }
                    }

                }
            } ////

            //??
            if (!mchntId.equals(newMchtNo)) {
                //List<TblMchtBaseInfTmpHist> histList=tblMchtBaseInfTmpHistDAO.getByMchtNo(mchntId);
                tblMchtBaseInfTmpHistDAO.updateByMchtNo(newMchtNo, mchntId);
                tblMchtSettleInfTmpHistDAO.updateByMchtNo(newMchtNo, mchntId);
            }
            // ?
            if (mchntId.contains("AAA")) {
                tblMchtBaseInfTmpDAO.delete(mchntId);
                tblMchtSettleInfTmpDAO.delete(mchntId);
            }
            //         tblMchtBaseInfDAO.delete(mchntId);
            //         tblMchtSettleInfDAO.delete(mchntId);

            if (tmp.getMchtNo().contains("AAA")) {
                String sql1 = "update TBL_MCHT_BASE_INF_TMP_HIST set MCHT_NO='" + inf.getMchtNo()
                        + "' where MCHT_NO = '" + tmp.getMchtNo() + "'";
                String sql2 = "update TBL_MCHT_SETTLE_INF_TMP_HIST set MCHT_NO='" + inf.getMchtNo()
                        + "' where MCHT_NO = '" + tmpSettle.getMchtNo() + "'";
                commQueryDAO.excute(sql1);
                commQueryDAO.excute(sql2);
            }

            if (mchntId.contains("AAA")) { //?
                inf.setOpenVirtualAcctFlag("1");
                tmp.setOpenVirtualAcctFlag("1");
            }
            inf.setMchtNo(newMchtNo);
            infSettle.setMchtNo(newMchtNo);
            tmp.setMchtNo(newMchtNo);
            tmpSettle.setMchtNo(newMchtNo);

            tblMchtSettleInfDAO.saveOrUpdate(infSettle);
            tblMchtBaseInfTmpDAO.saveOrUpdate(tmp);
            tblMchtBaseInfDAO.saveOrUpdate(inf);
            tblMchtSettleInfTmpDAO.saveOrUpdate(tmpSettle);
            tblMchntRefuseDAO.save(refuse);

            // 
            String basePath = SysParamUtil.getParam(SysParamConstants.FILE_UPLOAD_DISK);
            basePath = basePath.replace("\\", "/");
            String basePathOld = basePath + mchntId + "/";
            for (int i = 0; i < 11; i++) {
                String upload = "upload";
                if (i == 0) {
                    upload += "/";
                } else
                    upload = upload + i + "/";
                File deleteFile = new File(basePathOld + upload);
                if (deleteFile.exists()) {
                    String basePathNew = basePath + newMchtNo + "/" + upload;
                    File writeFile = new File(basePathNew);
                    if (!writeFile.exists()) {
                        writeFile.mkdirs();
                    }

                    FileFilter filter = new FileFilter(mchntId);
                    File[] files = deleteFile.listFiles(filter);
                    for (File file : files) {
                        file.renameTo(new File(basePathNew + file.getName().replaceAll(mchntId, newMchtNo)));// 
                    }

                    deleteFile.delete();
                }
                // 

            }
            return Constants.SUCCESS_CODE;
        }
        return retMsg;

    }

    /**
     * @return the tblMchtBaseInfTmpHistDAO
     */
    public ITblMchtBaseInfTmpHistDAO getTblMchtBaseInfTmpHistDAO() {
        return tblMchtBaseInfTmpHistDAO;
    }

    /**
     * @param tblMchtBaseInfTmpHistDAO the tblMchtBaseInfTmpHistDAO to set
     */
    public void setTblMchtBaseInfTmpHistDAO(ITblMchtBaseInfTmpHistDAO tblMchtBaseInfTmpHistDAO) {
        this.tblMchtBaseInfTmpHistDAO = tblMchtBaseInfTmpHistDAO;
    }

    /*
     * 
     * 
     * @see com.allinfinance.bo.impl.mchnt.TblMchntService#back(java.lang.String,
     * java.lang.String)
     */
    public String back(String mchntId, String refuseInfo) throws IllegalAccessException, InvocationTargetException {

        TblMchtBaseInfTmp tmp = tblMchtBaseInfTmpDAO.get(mchntId);
        //
        tmp.setReserved("" + refuseInfo);

        TblMchtSettleInfTmp tmpSettle = tblMchtSettleInfTmpDAO.get(mchntId);
        if (null == tmp || null == tmpSettle) {
            return "??";
        }
        Operator opr = (Operator) ServletActionContext.getRequest().getSession()
                .getAttribute(Constants.OPERATOR_INFO);

        // ?
        TblMchntRefuse refuse = new TblMchntRefuse();
        TblMchntRefusePK tblMchntRefusePK = new TblMchntRefusePK(mchntId, CommonFunction.getCurrentDateTime());
        refuse.setId(tblMchntRefusePK);
        refuse.setRefuseInfo(refuseInfo);
        refuse.setBrhId(tmp.getBankNo());
        refuse.setOprId(opr.getOprId());

        // ?
        refuse.setRefuseType(StatusUtil.getNextStatus("BM." + tmp.getMchtStatus()));
        //?
        List<TblTermInfTmp> list = null;
        if (!"4".equals(tmp.getMchtStatus())) {
            list = tblTermInfTmpDAO.getByMchnt(mchntId);
        }
        // ?
        tmp.setMchtStatus(StatusUtil.getNextStatus("B." + tmp.getMchtStatus()));
        if (list != null && list.size() != 0) {
            for (TblTermInfTmp tblTermInfTmp : list) {
                //814???YYYYMMDD YYYYMMDDHHMMSS
                //tblTermInf.setRecUpdTs(CommonFunction.getCurrentDate());
                Operator opra = (Operator) ServletActionContext.getRequest().getSession()
                        .getAttribute(Constants.OPERATOR_INFO);
                tblTermInfTmp.setRecUpdOpr(opra.getOprId());
                tblTermInfTmp.setTermSta("8");

                if (tblTermInfTmp != null) {
                    tblTermInfTmp.setTermSta("8");
                }
                tblTermInfTmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
                tblTermInfTmpDAO.update(tblTermInfTmp);

            }
        } ////
          // 
        tmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
        tmp.setUpdOprId(opr.getOprId());

        //20160321?277?  --yww 
        TblMchtBaseInfTmpTmp tmptmp = tblMchtBaseInfTmpTmpDAO.get(mchntId);
        tmptmp.setReserved("" + refuseInfo);
        /*tmptmp.setMchtStatus(StatusUtil.getNextStatus("B."+ tmptmp.getMchtStatus()));// ?
        tmptmp.setRecUpdTs(CommonFunction.getCurrentDateTime());// 
        tmptmp.setUpdOprId(opr.getOprId());*/
        // ?
        tblMchtBaseInfTmpTmpDAO.update(tmptmp);

        // ?
        tblMchtBaseInfTmpDAO.update(tmp);
        tblMchntRefuseDAO.save(refuse);
        updHisSta(tmp);
        return Constants.SUCCESS_CODE;
    }

    /**
     * ??
     */
    public void updHisSta(TblMchtBaseInfTmp tmp) {
        Operator opra = (Operator) ServletActionContext.getRequest().getSession()
                .getAttribute(Constants.OPERATOR_INFO);
        String sql = "select MAX(to_number(MCHT_NO_NEW)) from TBL_MCHT_BASE_INF_TMP_HIST where MCHT_NO = '"
                + tmp.getMchtNo() + "' ";
        List<BigDecimal> mchtHistSerail = commQueryDAO.findBySQLQuery(sql);
        String mchtNoNew;
        if (null != mchtHistSerail && mchtHistSerail.get(0) != null && mchtHistSerail.size() > 0) {
            String serail = mchtHistSerail.get(0).toString();
            mchtNoNew = String.valueOf(serail);
            TblMchtBaseInfTmpHistPK key = new TblMchtBaseInfTmpHistPK(tmp.getMchtNo(), mchtNoNew);
            TblMchtBaseInfTmpHist tblMchtBaseInfTmpHist = tblMchtBaseInfTmpHistDAO.get(key);
            if (tblMchtBaseInfTmpHist != null) {
                tblMchtBaseInfTmpHist.setMchtStatus(tmp.getMchtStatus());
                tblMchtBaseInfTmpHist.setUpdOprId(opra.getOprId());
                tblMchtBaseInfTmpHistDAO.update(tblMchtBaseInfTmpHist);
            }
        }
    }

    /*
     * ?
     * 
     * @see com.allinfinance.bo.impl.mchnt.TblMchntService#refuse(java.lang.String,
     * java.lang.String)
     */
    public String refuse(String mchntId, String refuseInfo)
            throws IllegalAccessException, InvocationTargetException {

        TblMchtBaseInfTmp tmp = tblMchtBaseInfTmpDAO.get(mchntId);
        TblMchtSettleInfTmp tmpSettle = tblMchtSettleInfTmpDAO.get(mchntId);

        String crtDateTmp = tmp.getRecCrtTs();
        if (null == tmp || null == tmpSettle) {
            return "??";
        }
        Operator opr = (Operator) ServletActionContext.getRequest().getSession()
                .getAttribute(Constants.OPERATOR_INFO);

        // ??
        TblMchntRefuse refuse = new TblMchntRefuse();
        TblMchntRefusePK tblMchntRefusePK = new TblMchntRefusePK(mchntId, CommonFunction.getCurrentDateTime());
        refuse.setId(tblMchntRefusePK);
        refuse.setRefuseInfo(refuseInfo);
        refuse.setBrhId(tmp.getBankNo());
        refuse.setOprId(opr.getOprId());

        //?
        List<TblTermInfTmp> list = tblTermInfTmpDAO.getByMchnt(mchntId);
        if (list != null && list.size() != 0) {
            for (TblTermInfTmp tblTermInfTmp : list) {
                if (tblTermInfTmp == null) {
                    continue;
                }
                //814???YYYYMMDD YYYYMMDDHHMMSS
                //tblTermInf.setRecUpdTs(CommonFunction.getCurrentDate());
                Operator opra = (Operator) ServletActionContext.getRequest().getSession()
                        .getAttribute(Constants.OPERATOR_INFO);
                tblTermInfTmp.setRecUpdOpr(opra.getOprId());
                tblTermInfTmp.setTermSta("8");
                tblTermInfTmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
                tblTermInfTmpDAO.update(tblTermInfTmp);

            }
        }
        // ??
        refuse.setRefuseType(StatusUtil.getNextStatus("RM." + tmp.getMchtStatus()));

        // ???
        if (TblMchntInfoConstants.MCHNT_ST_NEW_UNCK.equals(tmp.getMchtStatus())
                || TblMchntInfoConstants.MCHNT_ST_NEW_FIRST_UNCK.equals(tmp.getMchtStatus())
                || TblMchntInfoConstants.MCHNT_ST_MODI_UNCK_SECOND.equals(tmp.getMchtStatus())) {
            //         tblMchtBaseInfTmpDAO.delete(tmp);
            //         tblMchtSettleInfTmpDAO.delete(tmpSettle);
            //         tblMchntRefuseDAO.save(refuse);
            //         ICommQueryDAO commQueryDAO = (ICommQueryDAO) ContextUtil.getBean("CommQueryDAO");
            //         commQueryDAO.excute("delete from tbl_term_inf_tmp where mcht_cd='" + mchntId + "'");
            tmp.setMchtStatus("C");
            tmp.setRecUpdTs(CommonFunction.getCurrentDateTime());
            tmp.setUpdOprId(opr.getOprId());
            tmpSettle.setRecUpdTs(CommonFunction.getCurrentDateTime());
            tblMchtBaseInfTmpDAO.update(tmp);
            tblMchtSettleInfTmpDAO.update(tmpSettle);
            tblMchntRefuseDAO.save(refuse);
        } else if (TblMchntInfoConstants.MCHNT_ST_BULK_IPT_UNCK.equals(tmp.getMchtStatus())) {
            tblMchtBaseInfTmpDAO.delete(tmp);
            tblMchtSettleInfTmpDAO.delete(tmpSettle);
            tblMchntRefuseDAO.save(refuse);
        } else {
            // ??
            TblMchtBaseInf inf = tblMchtBaseInfDAO.get(tmp.getMchtNo());
            TblMchtSettleInf infSettle = tblMchtSettleInfDAO.get(tmpSettle.getMchtNo());
            if (null == inf || null == infSettle) {
                return "???";
            } else {
                // 
                inf.setRecUpdTs(CommonFunction.getCurrentDateTime());
                inf.setUpdOprId(opr.getOprId());
                // ??
                BeanUtils.copyProperties(inf, tmp);
                BeanUtils.copyProperties(infSettle, tmpSettle);
                tmp.setRecCrtTs(crtDateTmp);
                // ?
                tblMchtBaseInfTmpDAO.update(tmp);
                tblMchtBaseInfDAO.update(inf);
                tblMchtSettleInfTmpDAO.update(tmpSettle);
                tblMchtSettleInfDAO.update(infSettle);
                tblMchntRefuseDAO.save(refuse);
                updHisSta(tmp);
            }
        }
        return Constants.SUCCESS_CODE;
    }

    /*
     * ??
     * 
     * @see com.allinfinance.bo.impl.mchnt.TblMchntService#saveGroup()
     */
    public String saveGroup(TblGroupMchtInf inf, TblGroupMchtSettleInf acctinf)
            throws IllegalAccessException, InvocationTargetException {

        tblGroupMchtInfDAO.save(inf);

        // ?
        tblGroupMchtSettleInfDAO.save(acctinf);

        return Constants.SUCCESS_CODE;
    }

    public TblMchtBaseInf getMccByMchntId(String mchntId) throws IllegalAccessException, InvocationTargetException {
        if (StringUtil.isNull(mchntId)) {
            return null;
        }
        TblMchtBaseInf inf = tblMchtBaseInfDAO.get(mchntId);
        if (null == inf) {
            return null;
        } else {
            return inf;
        }
    }

    /*
     * ??
     * 
     * @see
     * com.allinfinance.bo.impl.mchnt.TblMchntService#getGroupInf(java.lang.String)
     */
    public TblGroupMchtInf getGroupInf(String mchntId) throws IllegalAccessException, InvocationTargetException {
        TblGroupMchtInf inf = tblGroupMchtInfDAO.get(StringUtil.fillValue(mchntId, 8, ' '));

        return inf;
    }

    /*
     * 
     * 
     * @seecom.allinfinance.bo.impl.mchnt.TblMchntService#updateGroup(as.allinfinance.po.
     * management.mer.TblGroupMchtInf,
     * as.allinfinance.po.management.mer.TblGroupMchtSettleInf)
     */
    public String updateGroup(TblGroupMchtInf inf, TblGroupMchtSettleInf acctinf)
            throws IllegalAccessException, InvocationTargetException {

        try {

            inf.setGroupMchtCd(CommonFunction.fillString(inf.getGroupMchtCd(), ' ', 8, true));

            tblGroupMchtInfDAO.update(inf);
            return Constants.SUCCESS_CODE;
        } catch (Exception e) {
            e.printStackTrace();
            return Constants.DATA_OPR_FAIL;
        }
    }

    /*
     * GET?
     * 
     * @see
     * com.allinfinance.bo.impl.mchnt.TblMchntService#getBaseInfTmp(java.lang.String)
     */
    public TblMchtBaseInfTmp getBaseInfTmp(String mchntId)
            throws IllegalAccessException, InvocationTargetException {

        return tblMchtBaseInfTmpDAO.get(mchntId);
    }

    public TblMchtSettleInfTmp getSettleInfTmp(String mchntId)
            throws IllegalAccessException, InvocationTargetException {

        return tblMchtSettleInfTmpDAO.get(mchntId);
    }

    public TblMchtBaseInf getBaseInf(String mchntId) throws IllegalAccessException, InvocationTargetException {

        return tblMchtBaseInfDAO.get(mchntId);
    }

    public TblMchtSettleInf getSettleInf(String mchntId) throws IllegalAccessException, InvocationTargetException {

        return tblMchtSettleInfDAO.get(mchntId);
    }

    public ITblMchtBaseInfTmpTmpDAO getTblMchtBaseInfTmpTmpDAO() {
        return tblMchtBaseInfTmpTmpDAO;
    }

    public void setTblMchtBaseInfTmpTmpDAO(ITblMchtBaseInfTmpTmpDAO tblMchtBaseInfTmpTmpDAO) {
        this.tblMchtBaseInfTmpTmpDAO = tblMchtBaseInfTmpTmpDAO;
    }

    public String updateBaseInfTmp(TblMchtBaseInfTmp inf) throws IllegalAccessException, InvocationTargetException {

        tblMchtBaseInfTmpDAO.update(inf);

        return Constants.SUCCESS_CODE;
    }

    public boolean getMchntStatus(String mchntId) throws IllegalAccessException, InvocationTargetException {
        TblMchtBaseInf tblMchtBaseInf = tblMchtBaseInfDAO.get(mchntId);
        if (tblMchtBaseInf == null)
            return false;
        if (!tblMchtBaseInf.getMchtStatus().equals(TblMchntInfoConstants.MCHNT_ST_OK))
            return false;
        return true;
    }

    public TblGroupMchtSettleInf getGroupSettleInf(String mchtCd)
            throws IllegalAccessException, InvocationTargetException {

        return tblGroupMchtSettleInfDAO.get(mchtCd);
    }

    // ???
    public void addOprInfo(String mchtNo) throws Exception {
        ShTblOprInfo shTblOprInfo = new ShTblOprInfo();
        ShTblOprInfoPk shTblOprInfoPk = new ShTblOprInfoPk();
        shTblOprInfoPk.setOprId(TblOprInfoConstants.DEFAULT_OPR_NO);
        shTblOprInfoPk.setBrhId("-");
        shTblOprInfoPk.setMchtNo(mchtNo);
        shTblOprInfo.setId(shTblOprInfoPk);
        shTblOprInfo.setOprName(TblOprInfoConstants.DEFAULT_OPR_NAME);
        shTblOprInfo.setMchtBrhFlag("0");
        shTblOprInfo.setCreateTime(CommonFunction.getCurrentDateTime());
        shTblOprInfo.setOprPwd(Encryption.encryptadd(SysParamUtil.getParam(SysParamConstants.OPR_DEFAULT_PWD)));
        shTblOprInfo.setPwdOutDate(CommonFunction.getOffSizeDate(CommonFunction.getCurrentDate(),
                SysParamUtil.getParam(SysParamConstants.OPR_PWD_OUT_DAY)));
        shTblOprInfo.setPwdWrTm(TblOprInfoConstants.PWD_WR_TM);
        shTblOprInfo.setRoleId(TblOprInfoConstants.SUP_MCHT_ROLE);
        shTblOprInfo.setPwdWrTmTotal(TblOprInfoConstants.PWD_WR_TM_TOTAL);
        shTblOprInfo.setOprStatus(TblOprInfoConstants.STATUS_INIT);
        shTblOprInfo.setCurrentLoginTime(TblOprInfoConstants.CURRENT_LOGIN_INFO);
        shTblOprInfo.setCurrentLoginIp(TblOprInfoConstants.CURRENT_LOGIN_INFO);
        shTblOprInfo.setCurrentLoginStatus(TblOprInfoConstants.CURRENT_LOGIN_INFO);
        shTblOprInfo.setPwdWrTmContinue(TblOprInfoConstants.PWD_WR_TM_CONTINUE);
        shTblOprInfoDAO.saveOrUpdate(shTblOprInfo);
    }

    /**
     * 
     * @param tmp
     * @param inf
     * @param tmpSettle
     * @param infSettle
     */

    public Object[] insertTblMchtBaseInfTmpLog(TblMchtBaseInfTmp tmp, TblMchtBaseInf inf,
            TblMchtSettleInfTmp tmpSettle, TblMchtSettleInf infSettle, String status, String date, String oprid) {
        TblMchtBaseInfTmpLog tblMchtBaseInfTmpLog = new TblMchtBaseInfTmpLog();
        tblMchtBaseInfTmpLog.setLId(UUID.randomUUID().toString());
        tblMchtBaseInfTmpLog.setLMchtNo(tmp.getMchtNo());
        tblMchtBaseInfTmpLog.setLCreatedate(CommonFunction.getCurrentDateTime());
        tblMchtBaseInfTmpLog.setLManuAuthFlag(tmp.getManuAuthFlag());
        tblMchtBaseInfTmpLog.setLCreatepeople(tmp.getUpdOprId());
        tblMchtBaseInfTmpLog.setLUpoprid(oprid);
        tblMchtBaseInfTmpLog.setLUpts(date);

        tblMchtBaseInfTmpLog.setBeMchtStatus(status);

        // ??
        boolean acctModiFlag = false;
        // ?
        if ("3".equals(status)) {
            if (!inf.getAddr().equals(tmp.getAddr())) {
                tblMchtBaseInfTmpLog.setBeAddr(inf.getAddr());
                tblMchtBaseInfTmpLog.setAfAddr(tmp.getAddr());
                acctModiFlag = true; // ???
            }
            if (!inf.getAgrBr().equals(tmp.getAgrBr())) {
                tblMchtBaseInfTmpLog.setBeAgrBr(inf.getAgrBr());
                tblMchtBaseInfTmpLog.setAfAgrBr(tmp.getAgrBr());
            }
            if (!inf.getArtifCertifTp().equals(tmp.getArtifCertifTp())) {
                tblMchtBaseInfTmpLog.setBeArtifCertifTp(inf.getArtifCertifTp());
                tblMchtBaseInfTmpLog.setAfArtifCertifTp(tmp.getArtifCertifTp());
            }
            if (!inf.getBankNo().equals(tmp.getBankNo())) {
                tblMchtBaseInfTmpLog.setBeBankNo(inf.getBankNo());
                tblMchtBaseInfTmpLog.setAfBankNo(tmp.getBankNo());
                acctModiFlag = true; // ??
            }
            if (!inf.getContact().equals(tmp.getContact())) {
                tblMchtBaseInfTmpLog.setBeContact(inf.getContact());
                tblMchtBaseInfTmpLog.setAfContact(tmp.getContact());
            }
            if (!inf.getFaxNo().equals(tmp.getFaxNo())) {
                tblMchtBaseInfTmpLog.setBeFaxNo(inf.getFaxNo());
                tblMchtBaseInfTmpLog.setAfFaxNo(tmp.getFaxNo());

            }
            if (!inf.getLicenceNo().equals(tmp.getLicenceNo())) {
                tblMchtBaseInfTmpLog.setBeLicenceNo(inf.getLicenceNo());
                tblMchtBaseInfTmpLog.setAfLicenceNo(tmp.getLicenceNo());
            }
            if (!inf.getManager().equals(tmp.getManager())) {
                tblMchtBaseInfTmpLog.setBeManager(inf.getManager());
                tblMchtBaseInfTmpLog.setAfManager(tmp.getManager());
            }
            if (!inf.getMcc().equals(tmp.getMcc())) {
                tblMchtBaseInfTmpLog.setBeMcc(inf.getMcc());
                tblMchtBaseInfTmpLog.setAfMcc(tmp.getMcc());
            }
            if (!inf.getMchtCnAbbr().equals(tmp.getMchtCnAbbr())) {
                tblMchtBaseInfTmpLog.setBeMchtCnAbbr(inf.getMchtCnAbbr());
                tblMchtBaseInfTmpLog.setAfMchtCnAbbr(tmp.getMchtCnAbbr());
            }

            if (!inf.getMchtNm().equals(tmp.getMchtNm())) {
                tblMchtBaseInfTmpLog.setBeMchtNm(inf.getMchtNm());
                tblMchtBaseInfTmpLog.setAfMchtNm(tmp.getMchtNm());
                acctModiFlag = true; // ????
            }
            if (!inf.getRislLvl().equals(tmp.getRislLvl())) {
                tblMchtBaseInfTmpLog.setBeRislLvl(inf.getRislLvl());
                tblMchtBaseInfTmpLog.setAfRislLvl(tmp.getRislLvl());
            }
            if (!(infSettle.getSettleAcct().substring(1)).equals(tmpSettle.getSettleAcct().substring(1))) {
                tblMchtBaseInfTmpLog.setBeSettleacct(infSettle.getSettleAcct().substring(1));
                tblMchtBaseInfTmpLog.setAfSettleacct(tmpSettle.getSettleAcct().substring(1));
                acctModiFlag = true; // ????
            }

            if (!(infSettle.getSettleAcct().substring(0, 1)).equals(tmpSettle.getSettleAcct().substring(0, 1))) {
                tblMchtBaseInfTmpLog.setBeCleartypenm(infSettle.getSettleAcct().substring(0, 1));
                tblMchtBaseInfTmpLog.setAfCleartypenm(tmpSettle.getSettleAcct().substring(0, 1));
                acctModiFlag = true; // ??
            }
            if (!infSettle.getSettleAcctNm().equals(tmpSettle.getSettleAcctNm())) {
                tblMchtBaseInfTmpLog.setBeSettleacctnm(infSettle.getSettleAcctNm());
                tblMchtBaseInfTmpLog.setAfSettleacctnm(tmpSettle.getSettleAcctNm());
                acctModiFlag = true; // ????
            }
            if (!infSettle.getSettleBankNm().equals(tmpSettle.getSettleBankNm())) {
                tblMchtBaseInfTmpLog.setBeSettlebanknm(infSettle.getSettleBankNm());
                tblMchtBaseInfTmpLog.setAfSettlebanknm(tmpSettle.getSettleBankNm());
                acctModiFlag = true; // ????
            }
            if (!inf.getSignInstId().equals(tmp.getSignInstId())) {
                tblMchtBaseInfTmpLog.setBeSigninstId(inf.getSignInstId());
                tblMchtBaseInfTmpLog.setAfSigninstId(tmp.getSignInstId());
            }
            if (!inf.getCommTel().equals(tmp.getCommTel())) {
                tblMchtBaseInfTmpLog.setBeCommtel(inf.getCommTel());
                tblMchtBaseInfTmpLog.setAfCommtel(tmp.getCommTel());
                acctModiFlag = true; // ????
            }
            if (!inf.getConnType().equals(tmp.getConnType())) {
                tblMchtBaseInfTmpLog.setBeConntype(inf.getConnType());
                tblMchtBaseInfTmpLog.setAfConntype(tmp.getConnType());
            }
            if (!infSettle.getFeeRate().equals(tmpSettle.getFeeRate())) {
                tblMchtBaseInfTmpLog.setBeDisccode(infSettle.getFeeRate());
                tblMchtBaseInfTmpLog.setAfDisccode(tmpSettle.getFeeRate());
            }
            if (!inf.getElectrofax().equals(tmp.getElectrofax())) {
                tblMchtBaseInfTmpLog.setBeElectroFax(inf.getElectrofax());
                tblMchtBaseInfTmpLog.setAfElectroFax(tmp.getElectrofax());
            }
            if (!inf.getIdentityNo().equals(tmp.getIdentityNo())) {
                tblMchtBaseInfTmpLog.setBeEntityNo(inf.getIdentityNo());
                tblMchtBaseInfTmpLog.setAfEntityNo(tmp.getIdentityNo());
            }
            if (!tmpSettle.getOpenStlno().equals(infSettle.getOpenStlno())) {
                tblMchtBaseInfTmpLog.setBeOpenstlno(infSettle.getOpenStlno());
                tblMchtBaseInfTmpLog.setAfOpenstlno(tmpSettle.getOpenStlno());
                acctModiFlag = true; // ???
            }

            if (!inf.getMchtFunction().equals(tmp.getMchtFunction())) {
                // tblMchtBaseInfTmpLog???
                acctModiFlag = true; // ??T+0??
            }

        }
        Object[] ret = new Object[2];
        ret[0] = tblMchtBaseInfTmpLog;
        ret[1] = acctModiFlag;
        return ret;
    };

    //   public static void main(String[] args) {
    //      "1".substring(1,2);
    //   }

    /**
     * ?
     * 
     */
    @Override
    public String saveTblMchtBaseInfTmpLog(TblMchtBaseInfTmpLog tblMchtBaseInfTmpLog) {
        iTblMchtBaseInfTmpLogDAO.saveOrUpdate(tblMchtBaseInfTmpLog);
        return Constants.SUCCESS_CODE;
    }

    /**
     * 
     * 
     */
    public String optMchtAcct(TblMchtBaseInf inf, TblMchtSettleInf infSettle, String txnCode) {

        //      AcctDtlJsonDto acctDtl = new AcctDtlJsonDto();
        //      acctDtl.setWebTime(CommonFunction.getCurrentDateTime());
        //      acctDtl.setWebSeqNum(GenerateNextId.getSeqSysNum());
        //      acctDtl.setAccountBizType(inf.getMchtFunction());
        //      acctDtl.setAcctType(FrontMcht.ACCT_TYPE_PERSON);
        //      acctDtl.setAddress(inf.getAddr());
        //      acctDtl.setBrhId(inf.getBankNo());
        //      acctDtl.setSysBrhId(FrontConstants.ACCT_BRH_ID);
        //      String brhName = "SELECT BRH_NAME FROM TBL_BRH_INFO WHERE BRH_ID = '" +inf.getBankNo()+ "'";
        //      acctDtl.setBrhName(CommonFunction.getCommQueryDAO().findCountBySQLQuery(brhName));
        //      acctDtl.setContactPhone(inf.getCommTel());
        //      acctDtl.setCurrency(FrontMcht.CURRENCY_TYPE_CNY);
        //      acctDtl.setMerchantId(inf.getMchtNo());
        //      acctDtl.setMerchantName(inf.getMchtNm());
        //      acctDtl.setSettleBankNo(infSettle.getOpenStlno());
        //      acctDtl.setSettleBankName(infSettle.getSettleBankNm());
        //      acctDtl.setSettleCardNo(infSettle.getSettleAcct().trim().substring(1));
        //      acctDtl.setSettleName(infSettle.getSettleAcctNm());
        //      acctDtl.setSettleType(infSettle.getSettleAcct().trim().substring(0,1));
        //      
        //      FrontMcht frontMcht = new FrontMcht();
        //      Object[] ret = frontMcht.doTxn(txnCode,acctDtl);
        //      
        //      if(Constants.SUCCESS_CODE.equals(ret[0])){
        //         WebFrontTxnLog webFrontTxnLog = (WebFrontTxnLog) ret[1];
        //         webFrontTxnLogDAO.save(webFrontTxnLog);
        // ??
        return Constants.SUCCESS_CODE;
        //      }else{
        //         return (String) ret[1];
        //      }
    }

    /**
     * 1?POSP????
     *  0??A0100 ??0
     *   1???
     *   2??????
     * 2?POSP?????
     *  0??F0100 ??0
     *   1???
     *   2?????? 
     * @param newMchtNo 
     *
     * @param tmp
     * @param tmpSettle
     * @return
     * @throws Exception 
     */
    public String sendMessage(String newMchtNo, TblMchtBaseInfTmp tmp, TblMchtBaseInf inf,
            TblMchtSettleInfTmp tmpSettle, TblMchtSettleInf settle) throws Exception {
        String retMsg = "00"; //?00-?
        String transCode = "";
        String settleType = "10"; //T+1
        String tnN = "1";
        String weekDay = "";
        String monthDay = "";
        TblBrhInfoDAO tblBrhInfoDAO = (TblBrhInfoDAO) ContextUtil.getBean("BrhInfoDAO");
        TblBrhInfo tblBrhInfo = tblBrhInfoDAO.get(tmp.getBankNo());
        if (tblBrhInfo == null) {
            retMsg = "???";
            log.info(retMsg);
            return retMsg;
        }

        if (tmp.getMchtNo().contains("AAA")) {
            transCode = "A0100";
            log.info("");
        } else {
            if (null == inf || null == settle) {
                log.info("????");
                return "????";
            }
            String newSettleType = tmp.getMchtFunction();
            String oldSettleType = inf.getMchtFunction();
            oldSettleType = (null == oldSettleType) ? "" : oldSettleType.trim();
            newSettleType = (null == newSettleType) ? null : newSettleType.trim();
            if (tmpSettle.getSettleBankNm().equals(settle.getSettleBankNm())
                    && tmpSettle.getSettleAcct().equals(settle.getSettleAcct())
                    && tmpSettle.getSettleAcctNm().equals(settle.getSettleAcctNm())
                    && oldSettleType.equals(newSettleType)) {
                log.info("????");
                return retMsg;
            }
            transCode = "F0100";
            log.info("??");
        }
        // ?---
        if (!"".equals(tmp.getMchtFunction())) {
            String mixStr = tmp.getMchtFunction();
            String type = mixStr.substring(0, 1);
            if ("0".equals(type)) {
                // T+N
                settleType = "10";
                tnN = String.valueOf(Integer.parseInt(mixStr.substring(2, 5)));
                if ("0".equals(tnN)) { //T+0
                    settleType = "03";
                    tnN = "";
                }
            } else if ("1".equals(type)) {
                String periodType = mixStr.substring(1, 2);
                // 
                if ("0".equals(periodType)) {
                    settleType = "11";
                    weekDay = "1";
                    // 
                } else if ("1".equals(periodType)) {
                    settleType = "12";
                    monthDay = "01";
                    // 
                } else if ("2".equals(periodType)) {
                    settleType = "13";
                }
            }
        }
        // ?---?

        Msg reqBody = MsgEntity.genMchtRequestBodyMsg();
        Msg reqHead = MsgEntity.genCommonRequestHeadMsg(transCode, "0");
        //      reqHead.getField(1).setValue("00");               //?
        //      reqHead.getField(2).setValue(transCode);         //?
        reqHead.getField(3).setValue("0"); //??
        //      reqHead.getField(4).setValue(institution);          //?;??
        //      reqHead.getField(5).setValue(CommonFunction.getCurrentDate());         //
        //      reqHead.getField(6).setValue(CommonFunction.getRandomNum(reqHead.getField(6).getLength()));      //??
        //      reqHead.getField(7).setValue(CommonFunction.getCurrentTime());         //
        reqHead.getField(8).setValue("0000000000"); //?
        reqHead.getField(9).setValue(transCode.substring(0, 4) + ""); //+??
        //      reqHead.getField(10).setValue(institution);         //?
        //      reqHead.getField(11).setValue("");               //
        //      reqHead.getField(12).setValue("");               //??
        //      reqHead.getField(13).setValue(institution);         //?;??
        //      reqHead.getField(14).setValue("");               //
        //      reqHead.getField(15).setValue("");               //??
        //      reqHead.getField(16).setValue("");               //
        reqHead.getField(17).setValue(newMchtNo); //?
        //      reqHead.getField(18).setValue("");               //?
        //      reqHead.getField(19).setValue("1");               //??
        //      reqHead.getField(20).setValue("");               //?
        //      reqHead.getField(21).setValue("");               //?
        //      reqHead.getField(22).setValue("");               //?1
        //      reqHead.getField(23).setValue("");               //?2
        //      reqHead.getField(24).setValue("");               //?
        //      reqHead.getField(25).setValue("+");               //??
        //      reqHead.getField(26).setValue("");               //?
        //      reqHead.getField(27).setValue("");               //
        //      reqHead.getField(28).setValue("");               //?
        String sql = "select b.subbranch_id,b.bank_name,b.subbranch_name,b.province,b.city from tbl_subbranch_info b where b.subbranch_id = '"
                + tmpSettle.getOpenStlno() + "'";
        List retList = CommonFunction.getCommQueryDAO().findBySQLQuery(sql);
        Object[] objBank = null;
        if (null == retList || retList != null && retList.size() < 1) {
            retMsg = "??";
            return retMsg;
        } else {
            objBank = (Object[]) retList.get(0);
        }
        reqBody.getField(1).setValue(newMchtNo);
        reqBody.getField(2).setValue(tmp.getEtpsAttr());
        reqBody.getField(3).setValue(tmp.getMchtNm());
        reqBody.getField(4).setValue(tblBrhInfo.getCreateNewNo()); //??
        reqBody.getField(5).setValue(tmp.getRislLvl()); //
        reqBody.getField(6).setValue("0"); //?
        reqBody.getField(7).setValue(tmp.getAddr()); //?
        reqBody.getField(8).setValue(tmp.getPostCode()); //
        reqBody.getField(9).setValue(tmp.getContact()); //???
        reqBody.getField(10).setValue(tmp.getCommMobil()); //??
        reqBody.getField(11).setValue(tmp.getCommTel()); //??
        reqBody.getField(12).setValue(tmp.getCommEmail()); //??
        reqBody.getField(13).setValue(""); //?
        reqBody.getField(14).setValue("1"); //   
        reqBody.getField(15).setValue((String) objBank[1]); //??
        reqBody.getField(16).setValue((String) objBank[0]); //??   
        reqBody.getField(17).setValue((String) objBank[2]); //???
        reqBody.getField(18).setValue(tmpSettle.getSettleAcct().substring(0, 1)); //?
        reqBody.getField(19).setValue(tmpSettle.getSettleAcct().substring(1)); //?
        reqBody.getField(20).setValue(tmpSettle.getSettleAcctNm()); //???
        reqBody.getField(21).setValue(settleType); //?
        reqBody.getField(22).setValue(tnN); //?NT+11?10
        reqBody.getField(23).setValue(weekDay); //17?11
        reqBody.getField(24).setValue(monthDay); //01-28??29.30.31?12
        reqBody.getField(25).setValue((String) objBank[3]); //??
        reqBody.getField(26).setValue((String) objBank[4]); //?
        reqBody.getField(27).setValue("0000"); // ? 100010(N4)
        reqBody.getField(28).setValue("00000000"); //  ??? (N8)
        reqBody.getField(29).setValue("   "); // ???(AN3)

        String secretKey = "1111111111111111";

        String reqStr = MsgEntity.genCompleteRequestMsg(reqHead, reqBody, secretKey);

        Msg respHead = MsgEntity.genCommonResponseHeadMsg();
        Msg respBody = MsgEntity.genCommonResponseBodyMsg();

        log.info(reqStr);
        byte[] bufMsg = MsgEntity.sendMessage(reqStr + " ");
        String strRet = new String(bufMsg, "gb2312");
        log.info(strRet);
        MsgEntity.parseResponseMsg(bufMsg, respHead, respBody);

        String respCode = respHead.getField(28).getRealValue();
        log.info("" + respCode);
        if ("0000".equals(respCode)) { //?
            retMsg = "00";
        } else {
            retMsg = respBody.getField(1).getRealValue();
        }

        return retMsg;

    }

    /**
     * @return the tblTermInfDAO
     */
    public TblTermInfDAO getTblTermInfDAO() {
        return tblTermInfDAO;
    }

    /**
     * @param tblTermInfDAO the tblTermInfDAO to set
     */
    public void setTblTermInfDAO(TblTermInfDAO tblTermInfDAO) {
        this.tblTermInfDAO = tblTermInfDAO;
    }

    /**
     * @return the tblTermInfTmpDAO
     */
    public TblTermInfTmpDAO getTblTermInfTmpDAO() {
        return tblTermInfTmpDAO;
    }

    /**
     * @param tblTermInfTmpDAO the tblTermInfTmpDAO to set
     */
    public void setTblTermInfTmpDAO(TblTermInfTmpDAO tblTermInfTmpDAO) {
        this.tblTermInfTmpDAO = tblTermInfTmpDAO;
    }

    public ITblMchtSettleInfTmpHistDAO getTblMchtSettleInfTmpHistDAO() {
        return tblMchtSettleInfTmpHistDAO;
    }

    public void setTblMchtSettleInfTmpHistDAO(ITblMchtSettleInfTmpHistDAO tblMchtSettleInfTmpHistDAO) {
        this.tblMchtSettleInfTmpHistDAO = tblMchtSettleInfTmpHistDAO;
    }

    @Override
    public void updateHisMcc(TblMchtBaseInfTmpTmp tblMchtBaseInfTmpTmpUpd,
            TblMchtSettleInfTmpTmp tblMchtSettleInfTmpTmpUpd) {
        Operator opr = (Operator) ServletActionContext.getRequest().getSession()
                .getAttribute(Constants.OPERATOR_INFO);
        String sql = "select MAX(to_number(MCHT_NO_NEW)) from TBL_MCHT_BASE_INF_TMP_HIST where MCHT_NO = '"
                + tblMchtBaseInfTmpTmpUpd.getMchtNo() + "' ";
        List<BigDecimal> mchtHistSerail = commQueryDAO.findBySQLQuery(sql);
        String mchtNoNew;
        if (null != mchtHistSerail && mchtHistSerail.get(0) != null && mchtHistSerail.size() > 0) {
            String serail = mchtHistSerail.get(0).toString();
            mchtNoNew = String.valueOf(serail);
        } else
            mchtNoNew = "1";
        TblMchtBaseInfTmpHistPK key = new TblMchtBaseInfTmpHistPK(tblMchtBaseInfTmpTmpUpd.getMchtNo(), mchtNoNew);
        TblMchtSettleInfTmpHistPK settleInfTmpHistPK = new TblMchtSettleInfTmpHistPK(
                tblMchtBaseInfTmpTmpUpd.getMchtNo(), mchtNoNew);
        TblMchtSettleInfTmpHist tblMchtSettleInfTmpHist = tblMchtSettleInfTmpHistDAO.get(settleInfTmpHistPK);
        TblMchtBaseInfTmpHist tblMchtBaseInfTmpHist = tblMchtBaseInfTmpHistDAO.get(key);

        if (tblMchtBaseInfTmpHist != null && tblMchtSettleInfTmpHist != null) {
            tblMchtBaseInfTmpHist.setMchtStatus(tblMchtBaseInfTmpTmpUpd.getMchtStatus());
            tblMchtBaseInfTmpHist.setMcc(tblMchtBaseInfTmpTmpUpd.getMcc());
            tblMchtBaseInfTmpHist.setRislLvl(tblMchtBaseInfTmpTmpUpd.getRislLvl());
            tblMchtBaseInfTmpHist.setMchtGrp(tblMchtBaseInfTmpTmpUpd.getMchtGrp());
            tblMchtSettleInfTmpHist.setCompliance(tblMchtSettleInfTmpTmpUpd.getCompliance());
            tblMchtSettleInfTmpHist.setCountry(tblMchtSettleInfTmpTmpUpd.getCountry());

            tblMchtBaseInfTmpHist.setUpdOprId(opr.getOprId());
            tblMchtBaseInfTmpHist.setRecUpdTs(CommonFunction.getCurrentDateTime());
            tblMchtSettleInfTmpHist.setRecUpdTs(CommonFunction.getCurrentDateTime());

            tblMchtSettleInfTmpHistDAO.update(tblMchtSettleInfTmpHist);
            tblMchtBaseInfTmpHistDAO.update(tblMchtBaseInfTmpHist);
        }
    }

    public TblRiskParamMngDAO getTblRiskParamMngDAO() {
        return tblRiskParamMngDAO;
    }

    public void setTblRiskParamMngDAO(TblRiskParamMngDAO tblRiskParamMngDAO) {
        this.tblRiskParamMngDAO = tblRiskParamMngDAO;
    }
}