5e19d48c73124824d43741992d857fa6fd7ad3dd.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. package xin.glue.nui.F.F01;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import xin.glue.user.common.GlobalConstants;
  6. import xin.glue.user.common.LogGpError;
  7. import xin.glue.user.common.StringUtils;
  8. import com.posdata.glue.PosException;
  9. import com.posdata.glue.biz.activity.PosActivity;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.biz.control.PosBizProvider;
  12. import com.posdata.glue.context.PosContext;
  13. import com.posdata.glue.dao.vo.PosParameter;
  14. import com.posdata.glue.dao.vo.PosRow;
  15. import com.posdata.glue.dao.vo.PosRowSet;
  16. import com.posdata.glue.msg.PosMESMessageImpl;
  17. import com.posdata.glue.msg.PosMessage;
  18. //import java.lang.Long;
  19. /* Program Name SMSPrcChange (NIF012150)
  20. * Description SMS WORK INSTRUCTION PRC LINE CHANGING
  21. * Write By KIM SUNG HO
  22. * Date 2008-11-06
  23. */
  24. public class SMSPrcChange extends PosActivity implements GlobalConstants {
  25. public String runActivity(PosContext context) {
  26. long V_CAST_CHARGE_SEQ = 0 ;
  27. long V_CHARGE_EDT_SEQ = 0 ;
  28. long V_L2_ERR_CNT = 0 ;
  29. long V_STS_CNT = 0 ;
  30. long V_CHG_SEQ = 0 ;
  31. long V_ORG_SEQ = 0 ;
  32. long V_ST_SEQ = 0 ;
  33. long V_EN_SEQ = 0 ;
  34. String V_CAST_MANA_NO = "" ;
  35. String V_CAST_MANA_ST = "" ;
  36. String V_CAST_MANA_EN = "" ;
  37. String V_CAST_MANA_NO_T = "" ;
  38. String V_CHARGE_MANA_NO = "" ;
  39. String V_CHARGE_MANA_IC = "" ;
  40. String V_BEF_PROC_CD = "" ;
  41. String V_AFT_PROC_CD = "" ;
  42. String V_LINE_PROC_CD = "" ;
  43. String V_TABLE_ID = "" ;
  44. String V_TABLE_MODE = "" ;
  45. String V_ERR_DESC = "" ;
  46. String V_RTN_NAME = "" ;
  47. PosMessage message = context.getMessage();
  48. String P_CHARGE_MANA_NO_ST = (String)message.get("CHARGE_MANA_NO_ST");
  49. String P_CHARGE_MANA_NO_EN = (String)message.get("CHARGE_MANA_NO_EN");
  50. String P_REG_ID = (String)message.get("REG_ID");
  51. //String PRC_LINE_ST = P_CHARGE_MANA_NO_ST.substring(3, 4);
  52. //String PRC_LINE_EN = P_CHARGE_MANA_NO_EN.substring(3, 4);
  53. String PRC_LINE_ST = P_CHARGE_MANA_NO_ST.substring(2, 3);
  54. String PRC_LINE_EN = P_CHARGE_MANA_NO_EN.substring(2, 3);
  55. // try {
  56. DateFormat formatter = new SimpleDateFormat("yyyyMMdd");
  57. String currDate = formatter.format(new Date());
  58. //NULL CHECK P_CHARGE_MANA_NO_ST, P_CHARGE_MANA_NO_EN
  59. if (P_CHARGE_MANA_NO_ST == null || P_CHARGE_MANA_NO_ST.equals("") ||
  60. P_CHARGE_MANA_NO_EN == null || P_CHARGE_MANA_NO_EN.equals("")) {
  61. //MESSAGE ERROR --> PROGRAM EXIT
  62. throw new PosException("SMSPrcChange..CHARGE_MANA_NO IS NULL..");
  63. }
  64. //BOF LINE CHECK P_CHARGE_MANA_NO_ST, P_CHARGE_MANA_NO_EN
  65. if (!PRC_LINE_ST.equals(PRC_LINE_EN)) {
  66. //MESSAGE ERROR --> PROGRAM EXIT
  67. throw new PosException("SMSPrcChange..BOF LINE DIFF..");
  68. }
  69. //BEFORE BOF LINE --> AFTER BOF LINE
  70. V_BEF_PROC_CD = PRC_LINE_ST;
  71. if (V_BEF_PROC_CD.equals("1")) {
  72. V_AFT_PROC_CD = "2";
  73. } else {
  74. V_AFT_PROC_CD = "1";
  75. }
  76. //SELECT P_CHARGE_MANA_NO_ST --> CHG_SEQ, P_CHARGE_MANA_NO_EN --> CHG_SEQ
  77. PosParameter param0 = new PosParameter();
  78. param0.setWhereClauseParameter(0, V_BEF_PROC_CD);
  79. param0.setWhereClauseParameter(1, P_CHARGE_MANA_NO_ST);
  80. param0.setWhereClauseParameter(2, V_BEF_PROC_CD);
  81. param0.setWhereClauseParameter(3, P_CHARGE_MANA_NO_EN);
  82. PosRowSet SelSeqSTNoVO = getDao("mesdao").find("NIF012150_ChgSeqSel.select",param0);
  83. SelSeqSTNoVO.reset();
  84. if (SelSeqSTNoVO.hasNext()) {
  85. PosRow SelSeqSTNoRow = SelSeqSTNoVO.next();
  86. V_ST_SEQ = Long.parseLong((SelSeqSTNoRow.getAttribute("CHG_SEQ_ST")==null? "0":SelSeqSTNoRow.getAttribute("CHG_SEQ_ST")).toString());
  87. V_EN_SEQ = Long.parseLong((SelSeqSTNoRow.getAttribute("CHG_SEQ_EN")==null? "0":SelSeqSTNoRow.getAttribute("CHG_SEQ_EN")).toString());
  88. } else {
  89. V_ST_SEQ = 0;
  90. V_EN_SEQ = 0;
  91. }
  92. if (V_ST_SEQ == 0 || V_EN_SEQ == 0) {
  93. //MESSAGE ERROR --> PROGRAM EXIT
  94. throw new PosException("SMSPrcChange..ST_SEQ OR EN_SEQ IS ZERO..");
  95. }
  96. if (V_EN_SEQ < V_ST_SEQ) {
  97. //MESSAGE ERROR --> PROGRAM EXIT
  98. throw new PosException("SMSPrcChange..EN_SEQ < ST_SEQ..");
  99. }
  100. //SELECT COUNT(L2_SEND="Y"), COUNT(STATUS_CD="B")
  101. PosParameter param2 = new PosParameter();
  102. param2.setWhereClauseParameter(0, V_BEF_PROC_CD);
  103. param2.setWhereClauseParameter(1, String.valueOf(V_ST_SEQ));
  104. param2.setWhereClauseParameter(2, String.valueOf(V_EN_SEQ));
  105. PosRowSet ChgCntChkVO = getDao("mesdao").find("NIF012150_ChgCntChk.select",param2);
  106. ChgCntChkVO.reset();
  107. if (ChgCntChkVO.hasNext()) {
  108. PosRow ChgCntChkRow = ChgCntChkVO.next();
  109. V_L2_ERR_CNT = Long.parseLong((ChgCntChkRow.getAttribute("L2_CNT")==null? "0":ChgCntChkRow.getAttribute("L2_CNT")).toString());
  110. V_STS_CNT = Long.parseLong((ChgCntChkRow.getAttribute("STATUS_CNT")==null? "0":ChgCntChkRow.getAttribute("STATUS_CNT")).toString());
  111. if (V_L2_ERR_CNT != 0) {
  112. //MESSAGE ERROR --> PROGRAM EXIT
  113. throw new PosException("SMSPrcChange..L2 SEND = 'Y'..");
  114. }
  115. if (V_STS_CNT != 0) {
  116. //MESSAGE ERROR --> PROGRAM EXIT
  117. throw new PosException("SMSPrcChange..STATUS_CD = 'B'..");
  118. }
  119. }
  120. //SELECT CAST_MANA_NO ST/EN
  121. PosParameter param8 = new PosParameter();
  122. param8.setWhereClauseParameter(0, P_CHARGE_MANA_NO_ST);
  123. param8.setWhereClauseParameter(1, P_CHARGE_MANA_NO_EN);
  124. PosRowSet ChgManaSelVO = getDao("mesdao").find("NIF012150_ChgManaSel.select",param8);
  125. ChgManaSelVO.reset();
  126. if (ChgManaSelVO.hasNext()) {
  127. PosRow ChgManaSelRow = ChgManaSelVO.next();
  128. V_CAST_MANA_ST = (String)ChgManaSelRow.getAttribute("CAST_MANA_NO_ST");
  129. V_CAST_MANA_EN = (String)ChgManaSelRow.getAttribute("CAST_MANA_NO_EN");
  130. } else {
  131. //MESSAGE ERROR --> PROGRAM EXIT
  132. throw new PosException("SMSPrcChange..NOT FOUND CAST_MANA_NO..");
  133. }
  134. //LAST SELECT CHG_SEQ, CHARGE_MANA_NO WHERE V_AFT_PROC_CD
  135. PosParameter param3 = new PosParameter();
  136. param3.setWhereClauseParameter(0, V_AFT_PROC_CD);
  137. param3.setWhereClauseParameter(1, V_AFT_PROC_CD);
  138. PosRowSet ChgNoLastVO = getDao("mesdao").find("NIF012150_ChgNoLast.select",param3);
  139. ChgNoLastVO.reset();
  140. if (ChgNoLastVO.hasNext()) {
  141. PosRow ChgNoLastRow = ChgNoLastVO.next();
  142. V_CHG_SEQ = Long.parseLong((ChgNoLastRow.getAttribute("CHG_SEQ")==null? "0":ChgNoLastRow.getAttribute("CHG_SEQ")).toString());
  143. V_CHARGE_MANA_NO = (String)ChgNoLastRow.getAttribute("CHARGE_MANA_NO");
  144. } else {
  145. V_CHG_SEQ = 0;
  146. //CHARGE_NO INIT
  147. V_CHARGE_MANA_NO = new StringBuffer(10).append("3").append(currDate.substring(3, 4)).append(V_AFT_PROC_CD).append("-00000A").toString();
  148. }
  149. //SELECT TBF01_CHARGE_IDX
  150. PosParameter param4 = new PosParameter();
  151. param4.setWhereClauseParameter(0, V_BEF_PROC_CD);
  152. param4.setWhereClauseParameter(1, String.valueOf(V_ST_SEQ));
  153. param4.setWhereClauseParameter(2, String.valueOf(V_EN_SEQ));
  154. PosRowSet ChgIdxVO = getDao("mesdao").find("NIF012150_ChgIdx.select",param4);
  155. ChgIdxVO.reset();
  156. while(ChgIdxVO.hasNext()) {
  157. PosRow ChgIdxRow = ChgIdxVO.next();
  158. V_ORG_SEQ = Long.parseLong((ChgIdxRow.getAttribute("ORG_SEQ")==null? "0":ChgIdxRow.getAttribute("ORG_SEQ")).toString());
  159. V_CHARGE_EDT_SEQ = Long.parseLong((ChgIdxRow.getAttribute("CHARGE_EDT_SEQ")==null? "0":ChgIdxRow.getAttribute("CHARGE_EDT_SEQ")).toString());
  160. V_LINE_PROC_CD = (String)ChgIdxRow.getAttribute("LINE_PROC_CD");
  161. //CHG_SEQ + 1, CHARGE_MANA_NO + 1 ----------------------------------------------
  162. V_CHARGE_MANA_IC = StringUtils.calculateIntegerStringValue(V_CHARGE_MANA_NO.substring(4, 9), 1);
  163. 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();
  164. V_CHG_SEQ = V_CHG_SEQ + 1;
  165. if (V_BEF_PROC_CD.equals("1")) {
  166. V_LINE_PROC_CD = V_LINE_PROC_CD.replaceAll("B1C1", "B2C2");
  167. } else {
  168. V_LINE_PROC_CD = V_LINE_PROC_CD.replaceAll("B2C2", "B1C1");
  169. }
  170. //UPDATE TBF01_CHARGE_IDX
  171. PosParameter param5 = new PosParameter();
  172. param5.setWhereClauseParameter(0, String.valueOf(V_CHG_SEQ));
  173. param5.setWhereClauseParameter(1, V_CHARGE_MANA_NO);
  174. param5.setWhereClauseParameter(2, V_CHARGE_MANA_NO);
  175. param5.setWhereClauseParameter(3, V_AFT_PROC_CD);
  176. param5.setWhereClauseParameter(4, String.valueOf(V_ORG_SEQ));
  177. int UpdCnt1 = getDao("mesdao").update("NIF012150_ChgIdxUpd.update",param5);
  178. if (UpdCnt1 == 0) {
  179. V_TABLE_ID = "TBF01_CHARGE_IDX";
  180. V_TABLE_MODE = "U";
  181. V_ERR_DESC = "TBF01_CHARGE_IDX UPDATE COUNT IS ZERO";
  182. V_RTN_NAME = "SMSPrcChange TBF01_CHARGE_IDX UPDATE1 " + String.valueOf(V_ORG_SEQ);
  183. LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
  184. throw new PosException(V_RTN_NAME);
  185. }
  186. //UPDATE TBF01_SPEC_CHARGE
  187. PosParameter param6 = new PosParameter();
  188. param6.setWhereClauseParameter(0, V_CHARGE_MANA_NO);
  189. param6.setWhereClauseParameter(1, V_LINE_PROC_CD);
  190. param6.setWhereClauseParameter(2, V_LINE_PROC_CD);
  191. param6.setWhereClauseParameter(3, V_AFT_PROC_CD);
  192. param6.setWhereClauseParameter(4, String.valueOf(V_CHARGE_EDT_SEQ));
  193. int UpdCnt2 = getDao("mesdao").update("NIF012150_SpecChgUpd.update",param6);
  194. if (UpdCnt2 == 0) {
  195. V_TABLE_ID = "TBF01_SPEC_CHARGE";
  196. V_TABLE_MODE = "U";
  197. V_ERR_DESC = "TBF01_SPEC_CHARGE UPDATE COUNT IS ZERO";
  198. V_RTN_NAME = "SMSPrcChange TBF01_SPEC_CHARGE UPDATE2 " + String.valueOf(V_CHARGE_EDT_SEQ);
  199. LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
  200. throw new PosException(V_RTN_NAME);
  201. }
  202. //UPDATE TBF01_SPEC_SLAB
  203. PosParameter param7 = new PosParameter();
  204. param7.setWhereClauseParameter(0, V_CHARGE_MANA_NO);
  205. param7.setWhereClauseParameter(1, V_CHARGE_MANA_NO);
  206. param7.setWhereClauseParameter(2, String.valueOf(V_CHARGE_EDT_SEQ));
  207. int UpdCnt3 = getDao("mesdao").update("NIF012150_SpecSlabUpd.update",param7);
  208. if (UpdCnt3 == 0) {
  209. V_TABLE_ID = "TBF01_SPEC_SLAB";
  210. V_TABLE_MODE = "U";
  211. V_ERR_DESC = "TBF01_SPEC_SLAB UPDATE COUNT IS ZERO";
  212. V_RTN_NAME = "SMSPrcChange TBF01_SPEC_SLAB UPDATE3 " + String.valueOf(V_CHARGE_EDT_SEQ);
  213. LogGpError.logMessageToDB("SMSPrcChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
  214. throw new PosException(V_RTN_NAME);
  215. }
  216. } //ChgIdxVO while END
  217. //--------------------------------------------------------------------------------------
  218. //CALL NIF012180_SMSSchTme
  219. NIF012180_CALL(P_REG_ID);
  220. //SELECT NOT SEND L2 CAST_CHARGE_SEQ
  221. PosParameter param9 = new PosParameter();
  222. param9.setWhereClauseParameter(0, V_CAST_MANA_ST);
  223. PosRowSet ChgManaLastVO = getDao("mesdao").find("NIF012150_ChgManaLast.select",param9);
  224. ChgManaLastVO.reset();
  225. if (ChgManaLastVO.hasNext()) {
  226. PosRow ChgManaLastRow = ChgManaLastVO.next();
  227. V_CAST_CHARGE_SEQ = Long.parseLong((ChgManaLastRow.getAttribute("CAST_CHARGE_SEQ")==null? "0":ChgManaLastRow.getAttribute("CAST_CHARGE_SEQ")).toString());
  228. } else {
  229. V_CAST_CHARGE_SEQ = 0;
  230. }
  231. V_CAST_MANA_NO_T = V_CAST_MANA_ST;
  232. //RE_ARRANGE UPDATE TBF01_SPEC_CHARGE -> CAST_CHARGE_SEQ
  233. PosParameter param10 = new PosParameter();
  234. param10.setWhereClauseParameter(0, V_CAST_MANA_ST);
  235. param10.setWhereClauseParameter(1, V_CAST_MANA_EN);
  236. PosRowSet CastManaNoSeqVO = getDao("mesdao").find("NIF012150_CastManaNoSeq.select",param10);
  237. CastManaNoSeqVO.reset();
  238. while(CastManaNoSeqVO.hasNext()) {
  239. PosRow CastManaNoSeqRow = CastManaNoSeqVO.next();
  240. V_CAST_MANA_NO = (String)CastManaNoSeqRow.getAttribute("CAST_MANA_NO");
  241. V_CHARGE_EDT_SEQ = Long.parseLong((CastManaNoSeqRow.getAttribute("CHARGE_EDT_SEQ")==null? "0":CastManaNoSeqRow.getAttribute("CHARGE_EDT_SEQ")).toString());
  242. //CAST_MANA_NO DIFFER
  243. if (V_CAST_MANA_NO_T.equals("") || !V_CAST_MANA_NO_T.equals(V_CAST_MANA_NO)) {
  244. V_CAST_CHARGE_SEQ = 0;
  245. V_CAST_MANA_NO_T = V_CAST_MANA_NO;
  246. }
  247. ++V_CAST_CHARGE_SEQ;
  248. //UPDATE TBF01_SPEC_CHARGE -> CAST_CHARGE_SEQ
  249. PosParameter param11 = new PosParameter();
  250. param11.setWhereClauseParameter(0, String.valueOf(V_CAST_CHARGE_SEQ));
  251. param11.setWhereClauseParameter(1, String.valueOf(V_CHARGE_EDT_SEQ));
  252. int UpdCnt11 = getDao("mesdao").update("NIF012150_ChargeSeqNo.update",param11);
  253. if (UpdCnt11 == 0) {
  254. V_TABLE_ID = "TBF01_SPEC_CHARGE";
  255. V_TABLE_MODE = "U";
  256. V_ERR_DESC = "TBF01_SPEC_CHARGE UPDATE COUNT IS ZERO";
  257. V_RTN_NAME = "SMSSeqChange TBF01_SPEC_CHARGE UPDATE9 " + String.valueOf(V_CHARGE_EDT_SEQ);
  258. LogGpError.logMessageToDB("SMSSeqChange", V_TABLE_ID, V_TABLE_MODE, V_ERR_DESC, V_RTN_NAME);
  259. throw new PosException(V_RTN_NAME);
  260. }
  261. } //ChgManaNoVO while END
  262. // }
  263. // catch (PosException ex)
  264. // {
  265. // context.put(SERVICE_ERR_MSG, ex.getMessage());
  266. // throw ex;
  267. // }
  268. // catch (Throwable t)
  269. // {
  270. // context.put(SERVICE_ERR_MSG, t.getMessage());
  271. // throw new PosException(t.getMessage(), t);
  272. // }
  273. return PosBizControlConstants.SUCCESS;
  274. }
  275. public PosContext NIF012180_CALL(String V_REG_ID)
  276. {
  277. PosContext context = new PosContext();
  278. PosMessage message = new PosMESMessageImpl();
  279. //SMSSchTme
  280. String TcId = "NIF012180";
  281. message.setTCID(TcId);
  282. message.setObject("MSG_ID", TcId);
  283. message.setObject("PRC_LINE", "3");
  284. message.setObject("L2_SEND", "N");
  285. message.setObject("CHARGE_MANA_NO", "");
  286. message.setObject("REG_ID", V_REG_ID);
  287. context.setMessage(message);
  288. message.setTCID(TcId);
  289. String SERVICE_POSTFIX = "-service";
  290. context.put(PosBizControlConstants.SERVICE_NAME, TcId + SERVICE_POSTFIX);
  291. PosBizProvider.getController().doSubController(context, false);
  292. String SERVICE_ERR_MSG = (String) context.get("SERVICE_ERR_MSG");
  293. if (SERVICE_ERR_MSG != null)
  294. {
  295. throw new PosException(SERVICE_ERR_MSG);
  296. }
  297. return context;
  298. }
  299. }