package xin.glue.ui.G.G06; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizControlIF; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.msg.PosMESMessageImpl; import com.posdata.glue.msg.PosMessage; import com.posdata.glue.util.log.PosLog; import com.posdata.glue.util.log.PosLogFactory; public class XinMessageSend extends PosActivity{ private final PosLog log = PosLogFactory.getLogger(getClass()); public String runActivity(PosContext context) { log.logInfo("======== XinMessageSend START " ); String TC_ID = null; int iSeqLen = 0; int iTcIdLen = 0; String[] status = (String[])context.get("rowStatus"); String[] SEQ_NO = (String[]) context.get("SEQ_NO"); String[] MSG_ID = (String[]) context.get("MSG_ID"); String[] MSG_NAME = (String[]) context.get("MSG_NAME"); String[] DATA_TYPE = (String[]) context.get("DATA_TYPE"); String[] DATA_LEN = (String[]) context.get("DATA_LEN"); String[] DATA_VALUE = (String[]) context.get("DATA_VALUE"); TC_ID = DATA_VALUE[0]; log.logInfo("======== XinMessageSend TC_ID:"+TC_ID ); log.logInfo("======== XinMessageSend MSG_ID length:"+MSG_ID.length ); StringBuffer sMsgData = new StringBuffer(); iSeqLen = SEQ_NO.length; iTcIdLen = TC_ID.length(); String sMsgLen = null; int iMsgLen = 0; int iLen = 0; log.logInfo("======== XinMessageSend iSeqLen:"+iSeqLen ); PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, TC_ID); PosRowSet TcLenVO = this.getDao("mesdao").find("UIG060010_TC_LEN.select", param1); String sTC_LEN = null; if (TcLenVO.hasNext() ) { PosRow TcLenROW = TcLenVO.next(); sTC_LEN = (String)TcLenROW.getAttribute("TC_LEN"); } sMsgData.append((String)sTC_LEN);iLen = iLen+4;sMsgData.setLength(iLen); for ( int i = 0; i < iSeqLen ; i++) { sMsgLen = DATA_LEN[i]; iMsgLen = Integer.parseInt(sMsgLen); // logger.logInfo("XinMessageSend LEN["+sMsgLen+"] , DATA_VALUE["+i+"]:("+DATA_VALUE[i]+")" ); sMsgData.append(DATA_VALUE[i]);iLen = iLen+iMsgLen;sMsgData.setLength(iLen); System.out.println("***************sMsgData = " + sMsgData + "###################iLen = " + iLen); } logger.logInfo("XinMessageSend sMsgData["+sMsgData+"]" ); TC_SEND(sMsgData.toString(),sTC_LEN); return PosBizControlConstants.SUCCESS; } public void TC_SEND(String sMsg ,String sTC_LEN) { log.logInfo("XinMessageSend TC_SEND " ); PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); int TcLen =0; TcLen = sMsg.length(); String MSG_ID = sMsg.substring(4,13); String TC_MSG = sMsg.substring(4,TcLen); message.setTC(TC_MSG); message.setTCID(MSG_ID); context.setMessage(message); String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, MSG_ID + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(context, false); //PosBizControlIF controller = PosBizProvider.getController(); log.logInfo("controller context: "+context ); //controller.doSubController(context,false); } }