e8e9f535a26f19779ab22fb126636eb0dccf0c91.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. package xin.glue.ui.G.G04;
  2. import com.posdata.glue.biz.activity.PosActivity;
  3. import com.posdata.glue.biz.constants.PosBizControlConstants;
  4. import com.posdata.glue.context.PosContext;
  5. import com.posdata.glue.dao.vo.PosParameter;
  6. import com.posdata.glue.dao.vo.PosRow;
  7. import com.posdata.glue.dao.vo.PosRowSet;
  8. public class PosCmdRollerTable extends PosActivity
  9. {
  10. private String[] sSelYard = new String[10];
  11. private int iIdx = 0;
  12. //private String currDate = null;
  13. private String R_SLAB_RT = null;
  14. //private String R_HCR_CLF = null;
  15. private Number R_SLAB_WTH = null;
  16. private Number R_SLAB_LEN = null;
  17. private String R_ORD_NO = null;
  18. //private String R_PRODNM_CD = null;
  19. private String R_STL_GRD = null;
  20. //private String R_SLAB_INGR_DEC_GRD = null;
  21. private String R_EXTSHAPE_GRD = null;
  22. private String R_CORRECT_RSLT_CD = null;
  23. public String runActivity(PosContext context)
  24. {
  25. logger.logInfo("PosCmdRollerTable START " );
  26. String[] rowStatus = (String[]) context.get("rowStatus");
  27. String[] YARD_ADDR = (String[]) context.get("YARD_ADDR");
  28. String[] SLAB_NO = (String[]) context.get("SLAB_NO");
  29. //String[] ORD_SEQ = (String[]) context.get("ORD_SEQ");
  30. logger.logInfo("PosCmdRollerTable---> rowStatus LEN["+rowStatus.length+"]" );
  31. for(int i=0;i<rowStatus.length;i++){
  32. for ( int j = 0; j < 10 ; j++) {
  33. sSelYard[j] = "";
  34. }
  35. //String RtnCrCmd = null;
  36. PosParameter param1 = new PosParameter();
  37. param1.setWhereClauseParameter(0, SLAB_NO[i]);
  38. PosRowSet SlabComVO = this.getDao("mesdao").find("NIG020640_SLAB_COMM.select", param1);
  39. if (SlabComVO.hasNext()) {
  40. PosRow SlabComROW = SlabComVO.next();
  41. R_SLAB_RT = (String)SlabComROW.getAttribute("SLAB_WAY");
  42. //R_HCR_CLF = (String)SlabComROW.getAttribute("HCR_CLF");
  43. R_SLAB_WTH = (Number)SlabComROW.getAttribute("SLAB_WTH");
  44. R_STL_GRD = (String)SlabComROW.getAttribute("STL_GRD");
  45. R_ORD_NO = (String)SlabComROW.getAttribute("ORD_NO");
  46. //R_SLAB_INGR_DEC_GRD = (String)SlabComROW.getAttribute("SLAB_INGR_DEC_GRD");
  47. R_EXTSHAPE_GRD = (String)SlabComROW.getAttribute("EXTSHAPE_GRD");
  48. R_CORRECT_RSLT_CD = (String)SlabComROW.getAttribute("CORRECT_RSLT_CD");
  49. String LoadAddress = null;
  50. String StoreLay = null;
  51. String Load_SlabNo = null;
  52. String RtnFlg = null;
  53. if (YARD_ADDR[i].equals("A0") || YARD_ADDR[i].equals("C0")) {
  54. sSelYard = SMSYardSearch(R_STL_GRD);
  55. for (int s = 0; s < iIdx;s++ ) {
  56. PosParameter param0 = new PosParameter();
  57. param0.setWhereClauseParameter(0, sSelYard[i]);
  58. param0.setWhereClauseParameter(1, sSelYard[i]);
  59. PosRowSet LoadYardVo = getDao("mesdao").find("UIG040060_LOAD_YARD.select", param0);
  60. while(LoadYardVo.hasNext()) {
  61. PosRow LoadYardROW = LoadYardVo.next();
  62. LoadAddress = (String)LoadYardROW.getAttribute("YARD_ADDR");
  63. StoreLay = (String)LoadYardROW.getAttribute("STORELAY");
  64. Load_SlabNo = (String)LoadYardROW.getAttribute("SLAB_NO");
  65. RtnFlg = chkLoadsms(SLAB_NO[i],LoadAddress,StoreLay,Load_SlabNo);
  66. if (RtnFlg != null && RtnFlg.equals("1")) {
  67. CreCrComand(YARD_ADDR[i],SLAB_NO[i],LoadAddress,StoreLay );
  68. break;
  69. }
  70. }
  71. if (RtnFlg != null && RtnFlg.equals("1")) {
  72. break;
  73. }
  74. }
  75. }
  76. }
  77. }
  78. return PosBizControlConstants.SUCCESS;
  79. }
  80. // This routine is search module for the searching to position for the from address slab
  81. // param : from addres slab STL_GRD
  82. // return: To posiotion addresses
  83. public String[] SMSYardSearch(String R_STL_GRD )
  84. {
  85. logger.logInfo("PosCmdRollerTable compSlab start " );
  86. String sYardAddr = null;
  87. String sFromStlGrd = null;
  88. String sToStlGrd = null;
  89. String sStlGrd1 = null;
  90. String sStlGrd2 = null;
  91. String sStlGrd3 = null;
  92. String sStlGrd4 = null;
  93. String sStlGrd5 = null;
  94. String sStlGrd6 = null;
  95. String sStlGrd7 = null;
  96. String sStlGrd8 = null;
  97. String sStlGrd9 = null;
  98. String sStlGrd10 = null;
  99. String[] SelAddr_G = new String[10];
  100. String FrPos = null;
  101. String ToPos = null;
  102. if (R_SLAB_RT.equals("P")) {
  103. FrPos ="L06";
  104. ToPos ="L08";
  105. } else {
  106. FrPos ="L01";
  107. ToPos ="L05";
  108. }
  109. if ((R_EXTSHAPE_GRD != null && R_EXTSHAPE_GRD.equals("2")) ||
  110. (R_CORRECT_RSLT_CD != null && R_CORRECT_RSLT_CD.equals("1"))) {
  111. SelAddr_G[0]= "L10";
  112. return SelAddr_G;
  113. }
  114. iIdx = 0;
  115. for (int j=0;j < 10;j++) {
  116. SelAddr_G[j]= "";
  117. }
  118. PosParameter param0 = new PosParameter();
  119. param0.setWhereClauseParameter(0, FrPos);
  120. param0.setWhereClauseParameter(1, ToPos);
  121. PosRowSet StdYardVo = getDao("mesdao").find("UIG040060_STD_YARD.select", param0);
  122. while(StdYardVo.hasNext()){
  123. PosRow StdYardROW = StdYardVo.next();
  124. sYardAddr = (String)StdYardROW.getAttribute("YARD_ADDR");
  125. sFromStlGrd = (String)StdYardROW.getAttribute("FROM_STL_GRD");
  126. sToStlGrd = (String)StdYardROW.getAttribute("TO_STL_GRD");
  127. sStlGrd1 = (String)StdYardROW.getAttribute("STL_GRD1");
  128. sStlGrd2 = (String)StdYardROW.getAttribute("STL_GRD2");
  129. sStlGrd3 = (String)StdYardROW.getAttribute("STL_GRD3");
  130. sStlGrd4 = (String)StdYardROW.getAttribute("STL_GRD4");
  131. sStlGrd5 = (String)StdYardROW.getAttribute("STL_GRD5");
  132. sStlGrd6 = (String)StdYardROW.getAttribute("STL_GRD6");
  133. sStlGrd7 = (String)StdYardROW.getAttribute("STL_GRD7");
  134. sStlGrd8 = (String)StdYardROW.getAttribute("STL_GRD8");
  135. sStlGrd9 = (String)StdYardROW.getAttribute("STL_GRD9");
  136. sStlGrd10 = (String)StdYardROW.getAttribute("STL_GRD10");
  137. logger.logInfo("PosCmdRollerTable R_STL_GRD:"+R_STL_GRD );
  138. logger.logInfo("PosCmdRollerTable sFromStlGrd:("+sFromStlGrd+"),sToStlGrd:("+sToStlGrd+")" );
  139. if (R_STL_GRD != null ) {
  140. if (sFromStlGrd != null && !sFromStlGrd.equals("") ) {
  141. if (sFromStlGrd.compareTo(R_STL_GRD) <= 0 && sToStlGrd.compareTo(R_STL_GRD) >= 0 ) {
  142. SelAddr_G[iIdx] = sYardAddr;
  143. iIdx++;
  144. }
  145. } else if (sStlGrd1 != null && sStlGrd1.equals(R_STL_GRD)) {
  146. logger.logInfo("PosCmdRollerTable sStlGrd1:("+sStlGrd1+")" );
  147. SelAddr_G[iIdx] = sYardAddr;
  148. iIdx++;
  149. } else if (sStlGrd2 != null && sStlGrd2.equals(R_STL_GRD)) {
  150. logger.logInfo("PosCmdRollerTable sStlGrd2:("+sStlGrd2+")" );
  151. SelAddr_G[iIdx] = sYardAddr;
  152. iIdx++;
  153. } else if (sStlGrd3 != null && sStlGrd3.equals(R_STL_GRD)) {
  154. logger.logInfo("PosCmdRollerTable sStlGrd3:("+sStlGrd3+")" );
  155. SelAddr_G[iIdx] = sYardAddr;
  156. iIdx++;
  157. } else if (sStlGrd4 != null && sStlGrd4.equals(R_STL_GRD)) {
  158. logger.logInfo("PosCmdRollerTable sStlGrd4:("+sStlGrd4+")" );
  159. SelAddr_G[iIdx] = sYardAddr;
  160. iIdx++;
  161. } else if (sStlGrd5 != null && sStlGrd5.equals(R_STL_GRD)) {
  162. logger.logInfo("PosCmdRollerTable sStlGrd5:("+sStlGrd5+")" );
  163. SelAddr_G[iIdx] = sYardAddr;
  164. iIdx++;
  165. } else if (sStlGrd6 != null && sStlGrd6.equals(R_STL_GRD)) {
  166. logger.logInfo("PosCmdRollerTable sStlGrd6:("+sStlGrd6+")" );
  167. SelAddr_G[iIdx] = sYardAddr;
  168. iIdx++;
  169. } else if (sStlGrd7 != null && sStlGrd7.equals(R_STL_GRD)) {
  170. logger.logInfo("PosCmdRollerTable sStlGrd7:("+sStlGrd7+")" );
  171. SelAddr_G[iIdx] = sYardAddr;
  172. iIdx++;
  173. } else if (sStlGrd8 != null && sStlGrd7.equals(R_STL_GRD)) {
  174. logger.logInfo("PosCmdRollerTable sStlGrd7:("+sStlGrd8+")" );
  175. SelAddr_G[iIdx] = sYardAddr;
  176. iIdx++;
  177. } else if (sStlGrd9 != null && sStlGrd8.equals(R_STL_GRD)) {
  178. logger.logInfo("PosCmdRollerTable sStlGrd7:("+sStlGrd9+")" );
  179. SelAddr_G[iIdx] = sYardAddr;
  180. iIdx++;
  181. } else if (sStlGrd10 != null && sStlGrd9.equals(R_STL_GRD)) {
  182. logger.logInfo("PosCmdRollerTable sStlGrd7:("+sStlGrd10+")" );
  183. SelAddr_G[iIdx] = sYardAddr;
  184. iIdx++;
  185. }
  186. }
  187. }
  188. return SelAddr_G;
  189. }
  190. // This routine is checking module it's the available to-address for the loading from-slab
  191. // param : from-slab, to posiotion address,to posiotion address lay, to-slab
  192. // return: loading possibility or impossibility
  193. public String chkLoadsms(String slabno,String LoadAddress,String StoreLay,String YdSlabNo )
  194. {
  195. if (StoreLay != null && StoreLay.equals("12")) {
  196. return "0";
  197. }
  198. PosParameter param1 = new PosParameter();
  199. param1.setWhereClauseParameter(0, YdSlabNo);
  200. PosRowSet LoadSlabVO = this.getDao("mesdao").find("NIG020640_SLAB_COMM.select", param1);
  201. if (LoadSlabVO.hasNext()) {
  202. PosRow LoadSlabROW =LoadSlabVO.next();
  203. Number YdSlabWth = (Number)LoadSlabROW.getAttribute("SLAB_WTH");
  204. Number YdSlabLen = (Number)LoadSlabROW.getAttribute("SLAB_LEN");
  205. String YdStlGrd = (String)LoadSlabROW.getAttribute("STL_GRD");
  206. String YdOrdNo = (String)LoadSlabROW.getAttribute("ORD_NO");
  207. double tol = 5;
  208. double D_R_SLAB_WTH = R_SLAB_WTH.doubleValue();
  209. logger.logInfo("XinDecToPosition compSlab D_R_SLAB_WTH:"+D_R_SLAB_WTH );
  210. double D_R_SLAB_LEN = R_SLAB_LEN.doubleValue();
  211. logger.logInfo("XinDecToPosition compSlab D_R_SLAB_LEN:"+D_R_SLAB_LEN );
  212. double D_YD_SLAB_LEN = YdSlabLen.doubleValue();
  213. double D_YD_SLAB_WTH = YdSlabWth.doubleValue();
  214. logger.logInfo("XinDecToPosition compSlab D_YD_SLAB_WTH:"+D_YD_SLAB_WTH );
  215. double rem_len = Math.abs(D_YD_SLAB_LEN - D_R_SLAB_LEN);
  216. double rem_wth = Math.abs(D_R_SLAB_WTH - D_YD_SLAB_WTH);
  217. logger.logInfo("XinDecToPosition compSlab rem_wth:"+rem_wth );
  218. logger.logInfo("XinDecToPosition compSlab rem_len:"+rem_len );
  219. String sRChargeNo = slabno.substring(0,10);
  220. String sYChargeNo = YdSlabNo.substring(0,10);
  221. logger.logInfo("XinDecToPosition compSlab sYChargeNo:"+sYChargeNo );
  222. //Number aa = (Number) new Double(rem_len);
  223. if (rem_len > tol ) {
  224. logger.logInfo("XinDecToPosition compSlab rem_len> tol " );
  225. return "";
  226. }
  227. logger.logInfo("XinDecToPosition compSlab rem_len comp " );
  228. if (rem_wth > tol ) {
  229. return "0";
  230. }
  231. if ( R_ORD_NO.equals(YdOrdNo) && R_STL_GRD.equals(YdStlGrd) ) {
  232. return "1";
  233. }
  234. if ( R_ORD_NO.equals(YdOrdNo) ) {
  235. return "1";
  236. }
  237. if ( R_STL_GRD.equals(YdStlGrd) ) {
  238. return "S";
  239. }
  240. if ( sRChargeNo.equals(sYChargeNo)) {
  241. return "1";
  242. }
  243. return "0";
  244. } else {
  245. return "1";
  246. }
  247. }
  248. // This routine is setting crane command to the crane command table
  249. // param : from-address,from address slabno,to to-address,to-address store lay
  250. public void CreCrComand(String FromAddr, String SlabNo,String ToAddr,String Storelay )
  251. {
  252. logger.logInfo("XinDecToPosition--->CreCrComand: start" );
  253. //String nOrdSeq = null;
  254. //int iSeq = 0;
  255. String CrNo = null;
  256. String Areas = ToAddr.substring(1,2);
  257. if ( Areas.equals("1") ) {
  258. CrNo = "1-2";
  259. } else if (Areas.equals("2")) {
  260. CrNo = "1-4";
  261. } else if (Areas.equals("3")) {
  262. CrNo = "1-6";
  263. }
  264. String To_StoreLay = null;
  265. PosParameter param1 = new PosParameter();
  266. param1.setWhereClauseParameter(0, ToAddr);
  267. PosRowSet StoreLayVO = this.getDao("mesdao").find("UIG040060_YARD_LAY.select", param1);
  268. if (StoreLayVO.hasNext()) {
  269. PosRow StoreLayROW = StoreLayVO.next();
  270. To_StoreLay = (String)StoreLayROW.getAttribute("STORELAY");
  271. String ToAddress = ToAddr+To_StoreLay;
  272. logger.logInfo("XinDecToPosition--->CrNo:"+ CrNo );
  273. String sqlCRrOrd = "SELECT SLAB_CRANE_ORDER_SEQ.NEXTVAL SEQ_NO FROM DUAL ";
  274. PosRowSet CrCmdVo = getDao("mesdao").findByQueryStatement(sqlCRrOrd );
  275. if (CrCmdVo.hasNext()) {
  276. PosRow CrCmdROW = CrCmdVo.next();
  277. Number SEQ_NO = (Number)CrCmdROW.getAttribute("SEQ_NO");
  278. PosParameter param2 = new PosParameter();
  279. param2.setValueParamter(0, CrNo );
  280. param2.setValueParamter(1, FromAddr );
  281. param2.setValueParamter(2, ToAddress );
  282. param2.setValueParamter(3, SlabNo );
  283. param2.setValueParamter(4, SEQ_NO );
  284. this.getDao("mesdao").update("UIG040060_YARD_COMMAND.update",param2);
  285. } else {
  286. PosParameter param2 = new PosParameter();
  287. param2.setValueParamter(0, CrNo );
  288. param2.setValueParamter(1, FromAddr );
  289. param2.setValueParamter(2, ToAddress );
  290. param2.setValueParamter(3, SlabNo );
  291. this.getDao("mesdao").update("UIG040060_YARD_COMMAND.insert",param2);
  292. }
  293. PosParameter param4 = new PosParameter();
  294. param4.setValueParamter(0, "1");
  295. param4.setValueParamter(1, "UIG040060");
  296. param4.setValueParamter(2, SlabNo);
  297. param4.setValueParamter(3, FromAddr);
  298. getDao("mesdao").update("UIG040060_SLAB_YARD.update",param4);
  299. }
  300. }
  301. }