|  | @@ -0,0 +1,223 @@
 | 
	
		
			
				|  |  | +package nc.ui.obm.ebankpaylog.actions;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.awt.event.ActionEvent;
 | 
	
		
			
				|  |  | +import javax.swing.KeyStroke;
 | 
	
		
			
				|  |  | +import nc.bs.framework.common.NCLocator;
 | 
	
		
			
				|  |  | +import nc.bs.framework.exception.InitException;
 | 
	
		
			
				|  |  | +import nc.desktop.ui.WorkbenchEnvironment;
 | 
	
		
			
				|  |  | +import nc.funcnode.ui.FuncletInitData;
 | 
	
		
			
				|  |  | +import nc.funcnode.ui.FuncletLinkListener;
 | 
	
		
			
				|  |  | +import nc.funcnode.ui.FuncletWindowLauncher;
 | 
	
		
			
				|  |  | +import nc.itf.obm.PayStateVO;
 | 
	
		
			
				|  |  | +import nc.itf.obm.ebanklog.IEbankLogManageService;
 | 
	
		
			
				|  |  | +import nc.itf.uap.IUAPQueryBS;
 | 
	
		
			
				|  |  | +import nc.jdbc.framework.processor.ColumnProcessor;
 | 
	
		
			
				|  |  | +import nc.pubitf.obm.IObmLogManageService;
 | 
	
		
			
				|  |  | +import nc.sfbase.client.ClientToolKit;
 | 
	
		
			
				|  |  | +import nc.ui.ml.NCLangRes;
 | 
	
		
			
				|  |  | +import nc.ui.obm.ebankpaylog.model.PayLogBillManageModel;
 | 
	
		
			
				|  |  | +import nc.ui.obm.ebankpaylog.model.PayLogBillModelManager;
 | 
	
		
			
				|  |  | +import nc.ui.obm.ebankpaylog.view.DfLogConfirmDlg;
 | 
	
		
			
				|  |  | +import nc.ui.obm.ebankpaylog.view.PayLogListView;
 | 
	
		
			
				|  |  | +import nc.ui.pub.beans.MessageDialog;
 | 
	
		
			
				|  |  | +import nc.ui.pub.bill.BillListPanel;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.NCAction;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.ToftPanelAdaptor;
 | 
	
		
			
				|  |  | +import nc.ui.uif2.UIState;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ebankpaylog.EBankPayLogAggVO;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ebankpaylog.EBankPayLogHVO;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ebankpaylog.EBankPayLogVO;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ebankpaylog.FuncEnum;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ml.MLObm;
 | 
	
		
			
				|  |  | +import nc.vo.obm.ml.MLString;
 | 
	
		
			
				|  |  | +import nc.vo.obm.obmvo.PmtconfirmAddVO;
 | 
	
		
			
				|  |  | +import nc.vo.obm.pay.LogMgrRequestVO;
 | 
	
		
			
				|  |  | +import nc.vo.obm.pmtconfirm.linkdata.PmtconfirmLinkAddData;
 | 
	
		
			
				|  |  | +import nc.vo.sm.funcreg.FuncRegisterVO;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class LogStateConfirmAction extends NCAction {
 | 
	
		
			
				|  |  | +	private DfLogConfirmDlg conifrmDlg;
 | 
	
		
			
				|  |  | +	private static final long serialVersionUID = 1L;
 | 
	
		
			
				|  |  | +	private PayLogBillModelManager dataManager;
 | 
	
		
			
				|  |  | +	private PayLogBillManageModel model;
 | 
	
		
			
				|  |  | +	private PayLogListView listview;
 | 
	
		
			
				|  |  | +	boolean openWindFlag = false;
 | 
	
		
			
				|  |  | +	private IUAPQueryBS iuap = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public LogStateConfirmAction() {
 | 
	
		
			
				|  |  | +		this.setCode("EbankLogCreatPmtConfirmAction");
 | 
	
		
			
				|  |  | +		this.setBtnName(MLObm.getStr00129());
 | 
	
		
			
				|  |  | +		this.putValue("ShortDescription", this.getBtnName() + "(Ctrl+M)");
 | 
	
		
			
				|  |  | +		this.putValue("AcceleratorKey", KeyStroke.getKeyStroke(77, 2));
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void doAction(ActionEvent e) throws Exception {
 | 
	
		
			
				|  |  | +		Object[] selectvos = this.getModel().getSelectedOperaDatas();
 | 
	
		
			
				|  |  | +		if (selectvos == null) {
 | 
	
		
			
				|  |  | +			throw new Exception(MLObm.getStr00130());
 | 
	
		
			
				|  |  | +		} else if (selectvos.length > 1) {
 | 
	
		
			
				|  |  | +			throw new Exception(MLObm.getStr00131());
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			EBankPayLogAggVO aggvo = (EBankPayLogAggVO) selectvos[0];
 | 
	
		
			
				|  |  | +			EBankPayLogHVO parentVO = (EBankPayLogHVO) aggvo.getParentVO();
 | 
	
		
			
				|  |  | +			EBankPayLogVO reallogVO = (EBankPayLogVO) aggvo.getChildrenVO()[0];
 | 
	
		
			
				|  |  | +			if(reallogVO.getPaystate() != 0) {
 | 
	
		
			
				|  |  | +				String sql = "select obmdef1 from ebank_paylog_h where pk_ebank_paylog_h = '"+parentVO.getPk_ebank_paylog_h()+"' and dr = 0";
 | 
	
		
			
				|  |  | +				String vdef1 = (String) iuap.executeQuery(sql, new ColumnProcessor());
 | 
	
		
			
				|  |  | +				if(vdef1 == null) {
 | 
	
		
			
				|  |  | +					throw new Exception("支付状态不正确请先下载状态再确认!");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			if (reallogVO != null && !this.openWindFlag) {
 | 
	
		
			
				|  |  | +				try {
 | 
	
		
			
				|  |  | +					this.openWindFlag = true;
 | 
	
		
			
				|  |  | +					this.doConfirmBillAction(parentVO, reallogVO);
 | 
	
		
			
				|  |  | +					Thread.sleep(1000L);
 | 
	
		
			
				|  |  | +				} catch (Exception var10) {
 | 
	
		
			
				|  |  | +					throw var10;
 | 
	
		
			
				|  |  | +				} finally {
 | 
	
		
			
				|  |  | +					this.openWindFlag = false;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	void doConfirmBillAction(EBankPayLogHVO parentVO, EBankPayLogVO selectBodyVO) throws Exception {
 | 
	
		
			
				|  |  | +		BillListPanel billlistcard = this.listview.getBillListPanel();
 | 
	
		
			
				|  |  | +		if (!FuncEnum.PROVIDE_DEDUCT.toStringValue().equals(selectBodyVO.getFunc())
 | 
	
		
			
				|  |  | +				&& (billlistcard.getBodyTable().getSelectedRowCount() == 0
 | 
	
		
			
				|  |  | +						|| billlistcard.getBodyTable().getSelectedRowCount() != 1)) {
 | 
	
		
			
				|  |  | +			throw new Exception(MLObm.getStr00132());
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			int selectRow = billlistcard.getBodyTable().getSelectedRow();
 | 
	
		
			
				|  |  | +			EBankPayLogVO selectvo = null;
 | 
	
		
			
				|  |  | +			if (selectRow == -1) {
 | 
	
		
			
				|  |  | +				selectvo = selectBodyVO;
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				selectvo = (EBankPayLogVO) billlistcard.getBodyBillModel().getBodyValueRowVO(selectRow,
 | 
	
		
			
				|  |  | +						EBankPayLogVO.class.getName());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			String yurref = selectvo.getYurref();
 | 
	
		
			
				|  |  | +			LogMgrRequestVO request = LogMgrRequestVO.createConfirmRequest(yurref);
 | 
	
		
			
				|  |  | +			IObmLogManageService logsev = (IObmLogManageService) NCLocator.getInstance()
 | 
	
		
			
				|  |  | +					.lookup(IObmLogManageService.class.getName());
 | 
	
		
			
				|  |  | +			logsev.checkCanGenNewConfrimBill(request);
 | 
	
		
			
				|  |  | +			PmtconfirmAddVO addvo = new PmtconfirmAddVO();
 | 
	
		
			
				|  |  | +			String funcode = selectBodyVO.getFunc();
 | 
	
		
			
				|  |  | +			if (!FuncEnum.PROVIDE_DEDUCT.toStringValue().equals(funcode)) {
 | 
	
		
			
				|  |  | +				addvo.setYurref(selectvo.getYurref());
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				addvo.setYurref(selectBodyVO.getYurref());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			addvo.setSrcnodecode("36100PZCQ");
 | 
	
		
			
				|  |  | +			if (parentVO.getSrcsystem() != null) {
 | 
	
		
			
				|  |  | +				addvo.setSrcsystem(parentVO.getSrcsystem());
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				addvo.setSrcsystem("OBM");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			if (parentVO.getSrcbilltype() != null) {
 | 
	
		
			
				|  |  | +				addvo.setSrcbilltype(parentVO.getSrcbilltype());
 | 
	
		
			
				|  |  | +				addvo.setSrcbillcode(parentVO.getSrcbillcode());
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				addvo.setSrcbilltype("36C3");
 | 
	
		
			
				|  |  | +				addvo.setSrcbillcode(parentVO.getHeadpackageid());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			PmtconfirmLinkAddData data = new PmtconfirmLinkAddData();
 | 
	
		
			
				|  |  | +			data.setUserObject(addvo);
 | 
	
		
			
				|  |  | +			FuncRegisterVO funRegVo = WorkbenchEnvironment.getInstance().getFuncRegisterVO("36100CONFM");
 | 
	
		
			
				|  |  | +			if (funRegVo != null) {
 | 
	
		
			
				|  |  | +				ToftPanelAdaptor adaptor = (ToftPanelAdaptor) this.getModel().getContext().getEntranceUI();
 | 
	
		
			
				|  |  | +				FuncletWindowLauncher.openFuncNodeInTabbedPane(adaptor, funRegVo, new FuncletInitData(0, data),
 | 
	
		
			
				|  |  | +						(FuncletLinkListener) null, false);
 | 
	
		
			
				|  |  | +			} else {
 | 
	
		
			
				|  |  | +				MessageDialog.showErrorDlg(ClientToolKit.getApplet(),
 | 
	
		
			
				|  |  | +						NCLangRes.getInstance().getStrByID("sysframev5", "UPPsysframev5-000062"), MLObm.getStr00912());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void doDfAction(EBankPayLogAggVO selectAggLog) throws Exception {
 | 
	
		
			
				|  |  | +		String userid = this.model.getContext().getPk_loginUser();
 | 
	
		
			
				|  |  | +		this.getConifrmDlg().initData(selectAggLog);
 | 
	
		
			
				|  |  | +		int var10000 = this.getConifrmDlg().showModal();
 | 
	
		
			
				|  |  | +		DfLogConfirmDlg var10001 = this.conifrmDlg;
 | 
	
		
			
				|  |  | +		if (var10000 == 1) {
 | 
	
		
			
				|  |  | +			EBankPayLogVO[] difvos = this.conifrmDlg.getDoConfirmedSubVOS();
 | 
	
		
			
				|  |  | +			if (difvos != null && difvos.length > 0) {
 | 
	
		
			
				|  |  | +				PayStateVO[] statevos = null;
 | 
	
		
			
				|  |  | +				if (difvos != null && difvos.length > 0) {
 | 
	
		
			
				|  |  | +					statevos = new PayStateVO[difvos.length];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					for (int i = 0; i < difvos.length; ++i) {
 | 
	
		
			
				|  |  | +						statevos[i] = new PayStateVO();
 | 
	
		
			
				|  |  | +						String yurref = difvos[i].getYurref();
 | 
	
		
			
				|  |  | +						statevos[i].setYurref(yurref);
 | 
	
		
			
				|  |  | +						EBankPayLogVO var9 = difvos[i];
 | 
	
		
			
				|  |  | +						var10001 = this.conifrmDlg;
 | 
	
		
			
				|  |  | +						Integer istate = (Integer) var9.getAttributeValue("confrimtranflag");
 | 
	
		
			
				|  |  | +						statevos[i].setPk_user(userid);
 | 
	
		
			
				|  |  | +						statevos[i].setPayState(istate);
 | 
	
		
			
				|  |  | +						statevos[i].setMsg(MLString.getConfirmLogStateMsg(istate));
 | 
	
		
			
				|  |  | +						statevos[i].setExtendAttributeValue(PayStateVO.EXTKEY_BEFORE_TS, difvos[i].getTs());
 | 
	
		
			
				|  |  | +						statevos[i].setExtendAttributeValue(PayStateVO.EXTKEY_BEFORE_STATE, difvos[i].getPaystate());
 | 
	
		
			
				|  |  | +						statevos[i].setAction("zfcx");
 | 
	
		
			
				|  |  | +						statevos[i].setBizDate(WorkbenchEnvironment.getInstance().getBusiDate());
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				IEbankLogManageService logsev = (IEbankLogManageService) NCLocator.getInstance()
 | 
	
		
			
				|  |  | +						.lookup(IEbankLogManageService.class.getName());
 | 
	
		
			
				|  |  | +				logsev.confirmDfLogState(statevos, userid);
 | 
	
		
			
				|  |  | +				this.model.updateUILogDataFromDB(new EBankPayLogAggVO[]{selectAggLog});
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void setConifrmDlg(DfLogConfirmDlg conifrmDlg) {
 | 
	
		
			
				|  |  | +		this.conifrmDlg = conifrmDlg;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public DfLogConfirmDlg getConifrmDlg() {
 | 
	
		
			
				|  |  | +		if (this.conifrmDlg == null) {
 | 
	
		
			
				|  |  | +			throw new InitException(MLObm.getStr00133());
 | 
	
		
			
				|  |  | +		} else {
 | 
	
		
			
				|  |  | +			return this.conifrmDlg;
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	protected boolean isActionEnable() {
 | 
	
		
			
				|  |  | +		return this.model.getUiState() == UIState.NOT_EDIT && this.model.getSelectedData() != null;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public PayLogBillManageModel getModel() {
 | 
	
		
			
				|  |  | +		return this.model;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void setModel(PayLogBillManageModel model) {
 | 
	
		
			
				|  |  | +		this.model = model;
 | 
	
		
			
				|  |  | +		this.getModel().addAppEventListener(this);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public PayLogBillModelManager getDataManager() {
 | 
	
		
			
				|  |  | +		return this.dataManager;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void setDataManager(PayLogBillModelManager dataManager) {
 | 
	
		
			
				|  |  | +		this.dataManager = dataManager;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public PayLogListView getListview() {
 | 
	
		
			
				|  |  | +		return this.listview;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	public void setListview(PayLogListView listview) {
 | 
	
		
			
				|  |  | +		this.listview = listview;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 |