package xin.glue.nui.F.F01; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import xin.glue.user.common.GlobalConstants; import xin.glue.user.common.LogGpError; import xin.glue.user.common.StringUtils; import com.posdata.glue.PosException; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; 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 java.lang.Long; /* Program Name SMSPrcChange (NIF012150) * Description SMS WORK INSTRUCTION PRC LINE CHANGING * Write By KIM SUNG HO * Date 2008-11-06 */ public class SMSPrcChange extends PosActivity implements GlobalConstants { public String runActivity(PosContext context) { long V_CAST_CHARGE_SEQ = 0 ; long V_CHARGE_EDT_SEQ = 0 ; long V_L2_ERR_CNT = 0 ; long V_STS_CNT = 0 ; long V_CHG_SEQ = 0 ; long V_ORG_SEQ = 0 ; long V_ST_SEQ = 0 ; long V_EN_SEQ = 0 ; String V_CAST_MANA_NO = "" ; String V_CAST_MANA_ST = "" ; String V_CAST_MANA_EN = "" ; String V_CAST_MANA_NO_T = "" ; String V_CHARGE_MANA_NO = "" ; String V_CHARGE_MANA_IC = "" ; String V_BEF_PROC_CD = "" ; String V_AFT_PROC_CD = "" ; String V_LINE_PROC_CD = "" ; String V_TABLE_ID = "" ; String V_TABLE_MODE = "" ; String V_ERR_DESC = "" ; String V_RTN_NAME = "" ; PosMessage message = context.getMessage(); String P_CHARGE_MANA_NO_ST = (String)message.get("CHARGE_MANA_NO_ST"); String P_CHARGE_MANA_NO_EN = (String)message.get("CHARGE_MANA_NO_EN"); String P_REG_ID = (String)message.get("REG_ID"); //String PRC_LINE_ST = P_CHARGE_MANA_NO_ST.substring(3, 4); //String PRC_LINE_EN = P_CHARGE_MANA_NO_EN.substring(3, 4); String PRC_LINE_ST = P_CHARGE_MANA_NO_ST.substring(2, 3); String PRC_LINE_EN = P_CHARGE_MANA_NO_EN.substring(2, 3); // try { DateFormat formatter = new SimpleDateFormat("yyyyMMdd"); String currDate = formatter.format(new Date()); //NULL CHECK P_CHARGE_MANA_NO_ST, P_CHARGE_MANA_NO_EN if (P_CHARGE_MANA_NO_ST == null || P_CHARGE_MANA_NO_ST.equals("") || P_CHARGE_MANA_NO_EN == null || P_CHARGE_MANA_NO_EN.equals("")) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..CHARGE_MANA_NO IS NULL.."); } //BOF LINE CHECK P_CHARGE_MANA_NO_ST, P_CHARGE_MANA_NO_EN if (!PRC_LINE_ST.equals(PRC_LINE_EN)) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..BOF LINE DIFF.."); } //BEFORE BOF LINE --> AFTER BOF LINE V_BEF_PROC_CD = PRC_LINE_ST; if (V_BEF_PROC_CD.equals("1")) { V_AFT_PROC_CD = "2"; } else { V_AFT_PROC_CD = "1"; } //SELECT P_CHARGE_MANA_NO_ST --> CHG_SEQ, P_CHARGE_MANA_NO_EN --> CHG_SEQ PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0, V_BEF_PROC_CD); param0.setWhereClauseParameter(1, P_CHARGE_MANA_NO_ST); param0.setWhereClauseParameter(2, V_BEF_PROC_CD); param0.setWhereClauseParameter(3, P_CHARGE_MANA_NO_EN); PosRowSet SelSeqSTNoVO = getDao("mesdao").find("NIF012150_ChgSeqSel.select",param0); SelSeqSTNoVO.reset(); if (SelSeqSTNoVO.hasNext()) { PosRow SelSeqSTNoRow = SelSeqSTNoVO.next(); V_ST_SEQ = Long.parseLong((SelSeqSTNoRow.getAttribute("CHG_SEQ_ST")==null? "0":SelSeqSTNoRow.getAttribute("CHG_SEQ_ST")).toString()); V_EN_SEQ = Long.parseLong((SelSeqSTNoRow.getAttribute("CHG_SEQ_EN")==null? "0":SelSeqSTNoRow.getAttribute("CHG_SEQ_EN")).toString()); } else { V_ST_SEQ = 0; V_EN_SEQ = 0; } if (V_ST_SEQ == 0 || V_EN_SEQ == 0) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..ST_SEQ OR EN_SEQ IS ZERO.."); } if (V_EN_SEQ < V_ST_SEQ) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..EN_SEQ < ST_SEQ.."); } //SELECT COUNT(L2_SEND="Y"), COUNT(STATUS_CD="B") PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, V_BEF_PROC_CD); param2.setWhereClauseParameter(1, String.valueOf(V_ST_SEQ)); param2.setWhereClauseParameter(2, String.valueOf(V_EN_SEQ)); PosRowSet ChgCntChkVO = getDao("mesdao").find("NIF012150_ChgCntChk.select",param2); ChgCntChkVO.reset(); if (ChgCntChkVO.hasNext()) { PosRow ChgCntChkRow = ChgCntChkVO.next(); V_L2_ERR_CNT = Long.parseLong((ChgCntChkRow.getAttribute("L2_CNT")==null? "0":ChgCntChkRow.getAttribute("L2_CNT")).toString()); V_STS_CNT = Long.parseLong((ChgCntChkRow.getAttribute("STATUS_CNT")==null? "0":ChgCntChkRow.getAttribute("STATUS_CNT")).toString()); if (V_L2_ERR_CNT != 0) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..L2 SEND = 'Y'.."); } if (V_STS_CNT != 0) { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..STATUS_CD = 'B'.."); } } //SELECT CAST_MANA_NO ST/EN PosParameter param8 = new PosParameter(); param8.setWhereClauseParameter(0, P_CHARGE_MANA_NO_ST); param8.setWhereClauseParameter(1, P_CHARGE_MANA_NO_EN); PosRowSet ChgManaSelVO = getDao("mesdao").find("NIF012150_ChgManaSel.select",param8); ChgManaSelVO.reset(); if (ChgManaSelVO.hasNext()) { PosRow ChgManaSelRow = ChgManaSelVO.next(); V_CAST_MANA_ST = (String)ChgManaSelRow.getAttribute("CAST_MANA_NO_ST"); V_CAST_MANA_EN = (String)ChgManaSelRow.getAttribute("CAST_MANA_NO_EN"); } else { //MESSAGE ERROR --> PROGRAM EXIT throw new PosException("SMSPrcChange..NOT FOUND CAST_MANA_NO.."); } //LAST SELECT CHG_SEQ, CHARGE_MANA_NO WHERE V_AFT_PROC_CD PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, V_AFT_PROC_CD); param3.setWhereClauseParameter(1, V_AFT_PROC_CD); PosRowSet ChgNoLastVO = getDao("mesdao").find("NIF012150_ChgNoLast.select",param3); ChgNoLastVO.reset(); if (ChgNoLastVO.hasNext()) { PosRow ChgNoLastRow = ChgNoLastVO.next(); V_CHG_SEQ = Long.parseLong((ChgNoLastRow.getAttribute("CHG_SEQ")==null? "0":ChgNoLastRow.getAttribute("CHG_SEQ")).toString()); V_CHARGE_MANA_NO = (String)ChgNoLastRow.getAttribute("CHARGE_MANA_NO"); } else { V_CHG_SEQ = 0; //CHARGE_NO INIT V_CHARGE_MANA_NO = new StringBuffer(10).append("3").append(currDate.substring(3, 4)).append(V_AFT_PROC_CD).append("-00000A").toString(); } //SELECT TBF01_CHARGE_IDX PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, V_BEF_PROC_CD); param4.setWhereClauseParameter(1, String.valueOf(V_ST_SEQ)); param4.setWhereClauseParameter(2, String.valueOf(V_EN_SEQ)); PosRowSet ChgIdxVO = getDao("mesdao").find("NIF012150_ChgIdx.select",param4); ChgIdxVO.reset(); while(ChgIdxVO.hasNext()) { PosRow ChgIdxRow = ChgIdxVO.next(); V_ORG_SEQ = Long.parseLong((ChgIdxRow.getAttribute("ORG_SEQ")==null? "0":ChgIdxRow.getAttribute("ORG_SEQ")).toString()); V_CHARGE_EDT_SEQ = Long.parseLong((ChgIdxRow.getAttribute("CHARGE_EDT_SEQ")==null? "0":ChgIdxRow.getAttribute("CHARGE_EDT_SEQ")).toString()); V_LINE_PROC_CD = (String)ChgIdxRow.getAttribute("LINE_PROC_CD"); //CHG_SEQ + 1, CHARGE_MANA_NO + 1 ---------------------------------------------- V_CHARGE_MANA_IC = StringUtils.calculateIntegerStringValue(V_CHARGE_MANA_NO.substring(4, 9), 1); V_CHARGE_MANA_NO = new StringBuffer(10).append(V_CHARGE_MANA_NO.substring(0, 4)).append(V_CHARGE_MANA_IC).append(V_CHARGE_MANA_NO.substring(9, 10)).toString(); V_CHG_SEQ = V_CHG_SEQ + 1; if (V_BEF_PROC_CD.equals("1")) { V_LINE_PROC_CD = V_LINE_PROC_CD.replaceAll("B1C1", "B2C2"); } else { V_LINE_PROC_CD = V_LINE_PROC_CD.replaceAll("B2C2", "B1C1"); } //UPDATE TBF01_CHARGE_IDX PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, String.valueOf(V_CHG_SEQ)); param5.setWhereClauseParameter(1, V_CHARGE_MANA_NO); param5.setWhereClauseParameter(2, V_CHARGE_MANA_NO); param5.setWhereClauseParameter(3, V_AFT_PROC_CD); param5.setWhereClauseParameter(4, String.valueOf(V_ORG_SEQ)); int UpdCnt1 = getDao("mesdao").update("NIF012150_ChgIdxUpd.update",param5); if (UpdCnt1 == 0) { V_TABLE_ID = "TBF01_CHARGE_IDX"; V_TABLE_MODE = "U"; V_ERR_DESC = "TBF01_CHARGE_IDX UPDATE COUNT IS ZERO"; V_RTN_NAME = "SMSPrcChange TBF01_CHARGE_IDX UPDATE1 " + String.valueOf(V_ORG_SEQ); LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME); throw new PosException(V_RTN_NAME); } //UPDATE TBF01_SPEC_CHARGE PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, V_CHARGE_MANA_NO); param6.setWhereClauseParameter(1, V_LINE_PROC_CD); param6.setWhereClauseParameter(2, V_LINE_PROC_CD); param6.setWhereClauseParameter(3, V_AFT_PROC_CD); param6.setWhereClauseParameter(4, String.valueOf(V_CHARGE_EDT_SEQ)); int UpdCnt2 = getDao("mesdao").update("NIF012150_SpecChgUpd.update",param6); if (UpdCnt2 == 0) { V_TABLE_ID = "TBF01_SPEC_CHARGE"; V_TABLE_MODE = "U"; V_ERR_DESC = "TBF01_SPEC_CHARGE UPDATE COUNT IS ZERO"; V_RTN_NAME = "SMSPrcChange TBF01_SPEC_CHARGE UPDATE2 " + String.valueOf(V_CHARGE_EDT_SEQ); LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME); throw new PosException(V_RTN_NAME); } //UPDATE TBF01_SPEC_SLAB PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, V_CHARGE_MANA_NO); param7.setWhereClauseParameter(1, V_CHARGE_MANA_NO); param7.setWhereClauseParameter(2, String.valueOf(V_CHARGE_EDT_SEQ)); int UpdCnt3 = getDao("mesdao").update("NIF012150_SpecSlabUpd.update",param7); if (UpdCnt3 == 0) { V_TABLE_ID = "TBF01_SPEC_SLAB"; V_TABLE_MODE = "U"; V_ERR_DESC = "TBF01_SPEC_SLAB UPDATE COUNT IS ZERO"; V_RTN_NAME = "SMSPrcChange TBF01_SPEC_SLAB UPDATE3 " + String.valueOf(V_CHARGE_EDT_SEQ); LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME); throw new PosException(V_RTN_NAME); } } //ChgIdxVO while END //-------------------------------------------------------------------------------------- //CALL NIF012180_SMSSchTme NIF012180_CALL(P_REG_ID); //SELECT NOT SEND L2 CAST_CHARGE_SEQ PosParameter param9 = new PosParameter(); param9.setWhereClauseParameter(0, V_CAST_MANA_ST); PosRowSet ChgManaLastVO = getDao("mesdao").find("NIF012150_ChgManaLast.select",param9); ChgManaLastVO.reset(); if (ChgManaLastVO.hasNext()) { PosRow ChgManaLastRow = ChgManaLastVO.next(); V_CAST_CHARGE_SEQ = Long.parseLong((ChgManaLastRow.getAttribute("CAST_CHARGE_SEQ")==null? "0":ChgManaLastRow.getAttribute("CAST_CHARGE_SEQ")).toString()); } else { V_CAST_CHARGE_SEQ = 0; } V_CAST_MANA_NO_T = V_CAST_MANA_ST; //RE_ARRANGE UPDATE TBF01_SPEC_CHARGE -> CAST_CHARGE_SEQ PosParameter param10 = new PosParameter(); param10.setWhereClauseParameter(0, V_CAST_MANA_ST); param10.setWhereClauseParameter(1, V_CAST_MANA_EN); PosRowSet CastManaNoSeqVO = getDao("mesdao").find("NIF012150_CastManaNoSeq.select",param10); CastManaNoSeqVO.reset(); while(CastManaNoSeqVO.hasNext()) { PosRow CastManaNoSeqRow = CastManaNoSeqVO.next(); V_CAST_MANA_NO = (String)CastManaNoSeqRow.getAttribute("CAST_MANA_NO"); V_CHARGE_EDT_SEQ = Long.parseLong((CastManaNoSeqRow.getAttribute("CHARGE_EDT_SEQ")==null? "0":CastManaNoSeqRow.getAttribute("CHARGE_EDT_SEQ")).toString()); //CAST_MANA_NO DIFFER if (V_CAST_MANA_NO_T.equals("") || !V_CAST_MANA_NO_T.equals(V_CAST_MANA_NO)) { V_CAST_CHARGE_SEQ = 0; V_CAST_MANA_NO_T = V_CAST_MANA_NO; } ++V_CAST_CHARGE_SEQ; //UPDATE TBF01_SPEC_CHARGE -> CAST_CHARGE_SEQ PosParameter param11 = new PosParameter(); param11.setWhereClauseParameter(0, String.valueOf(V_CAST_CHARGE_SEQ)); param11.setWhereClauseParameter(1, String.valueOf(V_CHARGE_EDT_SEQ)); int UpdCnt11 = getDao("mesdao").update("NIF012150_ChargeSeqNo.update",param11); if (UpdCnt11 == 0) { V_TABLE_ID = "TBF01_SPEC_CHARGE"; V_TABLE_MODE = "U"; V_ERR_DESC = "TBF01_SPEC_CHARGE UPDATE COUNT IS ZERO"; V_RTN_NAME = "SMSSeqChange TBF01_SPEC_CHARGE UPDATE9 " + String.valueOf(V_CHARGE_EDT_SEQ); LogGpError.logMessageToDB("SMSSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME); throw new PosException(V_RTN_NAME); } } //ChgManaNoVO while END // } // catch (PosException ex) // { // context.put(SERVICE_ERR_MSG, ex.getMessage()); // throw ex; // } // catch (Throwable t) // { // context.put(SERVICE_ERR_MSG, t.getMessage()); // throw new PosException(t.getMessage(), t); // } return PosBizControlConstants.SUCCESS; } public PosContext NIF012180_CALL(String V_REG_ID) { PosContext context = new PosContext(); PosMessage message = new PosMESMessageImpl(); //SMSSchTme String TcId = "NIF012180"; message.setTCID(TcId); message.setObject("MSG_ID", TcId); message.setObject("PRC_LINE", "3"); message.setObject("L2_SEND", "N"); message.setObject("CHARGE_MANA_NO", ""); message.setObject("REG_ID", V_REG_ID); context.setMessage(message); message.setTCID(TcId); String SERVICE_POSTFIX = "-service"; context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX); PosBizProvider.getController().doSubController(context, false); String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG"); if (SERVICE_ERR_MSG != null) { throw new PosException(SERVICE_ERR_MSG); } return context; } }