package xin.glue.ui.G.G06; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; 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.component.PosJobScheduler; import com.posdata.glue.component.layout.PosMessageLayoutIF; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; 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.msg.PosMessageAttributeDefinition; import com.posdata.glue.msg.PosMessageDefinition; import com.posdata.glue.util.log.PosLog; import com.posdata.glue.util.log.PosLogFactory; public class XinSaveDataLevel2 extends PosActivity { private final PosLog log = PosLogFactory.getLogger(getClass()); public String runActivity(PosContext context) { List MsgList = new ArrayList(); String[] TC_ID = (String[]) context.get("TC_ID"); String[] MAT_NO = (String[]) context.get("MAT_NO"); log.logInfo("======== XinSaveDataLevel2 start TC_ID:"+TC_ID[0] ); if (TC_ID[0] != null) { String TC_HD = TC_ID[0].substring(0,3); if (TC_HD.equals("NIG")) { MsgList = SMS_SEND(TC_ID[0],MAT_NO[0]); } else { MsgList = MILL_SEND(TC_ID[0],MAT_NO[0]); } } log.logInfo("======== XinSaveDataLevel2 context put :" ); context.put("MessageEdit",MsgList); return PosBizControlConstants.SUCCESS; } public List SMS_SEND(String TcId ,String MatNo ) { PosContext context = new PosContext(); List list = new ArrayList(); String KEY_LEN = null ; String TC_HD = TcId.substring(0,3) ; if ( (TC_HD.equals("NIG") && TcId.equals("NIG020610")) ) { KEY_LEN = "13"; } else { KEY_LEN = "10"; } PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, KEY_LEN); param1.setWhereClauseParameter(1, MatNo); param1.setWhereClauseParameter(2, TcId); PosRowSet msgVO = this.getDao("mesdao").find("UIG060010_L2_DATA_EDIT.select", param1); if(msgVO.hasNext()) { PosRow msgROW = msgVO.next(); BigDecimal MSG_LEN = (BigDecimal)msgROW.getAttribute("MSG_LEN"); String MSG_ID = (String)msgROW.getAttribute("MSG_ID"); String MSG_DATA = (String)msgROW.getAttribute("MSG_DATA"); String TRAN_DTIME = (String)msgROW.getAttribute("TRAN_DTIME"); String sSeqNo = null; String sMsgid = null; String sMsgName = null; String sMsgType = null; String sDataValue = null; String EditData = null; String MsgData = MSG_ID+TRAN_DTIME+MSG_DATA; int tot_len = 0; int init_len = 0; PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, MSG_ID); PosRowSet editVO = this.getDao("mesdao").find("UIG060010_MSG_EDIT.select", param2); while(editVO.hasNext()) { sDataValue = null; EditData = null; PosRow editROW = editVO.next(); sSeqNo = (String)editROW.getAttribute("SEQ_NO"); sMsgid = (String)editROW.getAttribute("MSG_ID"); sMsgName = (String)editROW.getAttribute("MSG_NAME"); sMsgType = (String)editROW.getAttribute("DATA_TYPE"); String sMsgLen = (String)editROW.getAttribute("DATA_LEN"); int Len = Integer.parseInt(sMsgLen); tot_len = tot_len+Len; log.logInfo("======== XinSaveDataLevel2 MsgData["+MsgData+"] ,init_len["+init_len+"], tot_len["+tot_len+"]" ); EditData = MsgData.substring(init_len,tot_len); init_len = init_len+Len; sDataValue = EditData; HashMap map = new HashMap(50,6) ; list.add(map); map.put("SEQ_NO" , sSeqNo ); map.put("MSG_ID" , sMsgid ); map.put("MSG_NAME" , sMsgName ); map.put("DATA_TYPE" , sMsgType ); map.put("DATA_LEN" , sMsgLen ); map.put("DATA_VALUE", sDataValue); } } return list; //context.put("MessageEdit",list); } public List MILL_SEND(String TcId ,String MatNo ) { PosContext context = new PosContext(); List list = new ArrayList(); String KEY_LEN = null ; PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, TcId); PosRowSet msgVO = this.getDao("mesdao").find("NIH060100_L2_DATA_EDIT.select", param1); if(msgVO.hasNext()) { PosRow msgROW = msgVO.next(); String MSG_ID = (String)msgROW.getAttribute("MSG_ID"); String MSG_DATA = (String)msgROW.getAttribute("MSG_DATA"); String TRAN_DTIME = (String)msgROW.getAttribute("TRAN_DTIME"); log.logInfo("======== XinSaveDataLevel2 MSG_ID["+MSG_ID+"]" ); log.logInfo("======== XinSaveDataLevel2 MSG_DATA["+MSG_DATA+"]" ); String sSeqNo = null; String sMsgid = null; String sMsgName = null; String sMsgType = null; String sDataValue = null; String MsgData = MSG_ID+TRAN_DTIME+MSG_DATA; int tot_len = 0; int init_len = 0; PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, MSG_ID); PosRowSet editVO = this.getDao("mesdao").find("UIG060010_MSG_EDIT.select", param2); if ( editVO.hasNext() ) { while(editVO.hasNext()) { PosRow editROW = editVO.next(); sSeqNo = (String)editROW.getAttribute("SEQ_NO"); sMsgid = (String)editROW.getAttribute("MSG_ID"); sMsgName = (String)editROW.getAttribute("MSG_NAME"); sMsgType = (String)editROW.getAttribute("DATA_TYPE"); String sMsgLen = (String)editROW.getAttribute("DATA_LEN"); int Len = Integer.parseInt(sMsgLen); tot_len = tot_len+Len; String EditData = MsgData.substring(init_len,tot_len); init_len = init_len+Len; sDataValue = EditData; HashMap map = new HashMap(50,6) ; list.add(map); map.put("SEQ_NO" , sSeqNo ); map.put("MSG_ID" , sMsgid ); map.put("MSG_NAME" , sMsgName ); map.put("DATA_TYPE" , sMsgType ); map.put("DATA_LEN" , sMsgLen ); map.put("DATA_VALUE", sDataValue); } } } return list; // context.put("MessageEdit",list); } }