c06a79448f5dff37358d04441635ac8cd7e4d492.svn-base 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. package xin.glue.nui.H.H02;
  2. import java.text.DateFormat;
  3. import java.text.NumberFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Calendar;
  6. import java.util.Date;
  7. import java.math.*;
  8. import java.text.*;
  9. import com.posdata.glue.biz.activity.PosActivity;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.biz.control.PosBizControlIF;
  12. import com.posdata.glue.biz.control.PosBizProvider;
  13. import com.posdata.glue.context.PosContext;
  14. import com.posdata.glue.dao.PosGenericDao;
  15. import com.posdata.glue.dao.vo.PosRowSet;
  16. import com.posdata.glue.dao.vo.PosRow;
  17. import com.posdata.glue.dao.vo.PosParameter;
  18. import com.posdata.glue.msg.PosMESMessageImpl;
  19. import com.posdata.glue.msg.PosMessage;
  20. //import com.sun.org.apache.xpath.internal.operations.Number;
  21. public class XinCoilYardDecPos extends PosActivity {
  22. private String[] sSelYard = new String[10];
  23. private int iIdx = 0;
  24. public String runActivity(PosContext context) {
  25. logger.logInfo("XinCoilYardDecPos runActivity START...");
  26. PosMessage message = context.getMessage();
  27. String MSG_COIL_NO = (String) message.get("COIL_NO" );
  28. String MSG_CURR_POS = (String) message.get("CURR_POS" );
  29. String RtnCrCmd = null;
  30. for ( int j = 0; j < 10 ; j++) {
  31. sSelYard[j] = "";
  32. }
  33. try
  34. {
  35. // PosRowSet SlabSpecVo = (PosRowSet) context.get("SlabSpec");
  36. PosRowSet RsltCoilCommVo = (PosRowSet) context.get("RsltCoilComm");
  37. RsltCoilCommVo.reset();
  38. // SlabSpecVo.reset();
  39. if (RsltCoilCommVo.hasNext() )
  40. {
  41. logger.logInfo("XinCoilYardDecPos---> SpecVo " );
  42. PosRow RsltCoilCommRow = RsltCoilCommVo.next();
  43. String R_SPM_YN = (String)RsltCoilCommRow.getAttribute("SPM_YN");
  44. String R_STL_GRD = (String)RsltCoilCommRow.getAttribute("STL_GRD");
  45. Number R_COIL_WTH = (Number)RsltCoilCommRow.getAttribute("COIL_WTH");
  46. Number R_COIL_OUT_DIA = (Number)RsltCoilCommRow.getAttribute("COIL_OUTDIA");
  47. String R_PRODNM_CD = (String)RsltCoilCommRow.getAttribute("PRODNM_CD");
  48. String R_ORD_FL = (String)RsltCoilCommRow.getAttribute("ORD_FL");
  49. String R_SCRAP_CAUSE_CD = (String)RsltCoilCommRow.getAttribute("SCRAP_CAUSE_CD");
  50. String R_RTN_CAU_CD = (String)RsltCoilCommRow.getAttribute("RTN_CAU_CD");
  51. if (R_SPM_YN != null && R_SPM_YN.equals("1") ) {
  52. sSelYard = YardSearch("D",R_STL_GRD);
  53. } else if (R_SPM_YN != null && R_SPM_YN.equals("2")) {
  54. sSelYard = YardSearch("E",R_STL_GRD);
  55. } else if (R_PRODNM_CD != null && R_PRODNM_CD.substring(0,1).equals("C")){
  56. sSelYard = YardSearch("C",R_STL_GRD);
  57. } else if (R_RTN_CAU_CD != null && !R_RTN_CAU_CD.equals("") ){
  58. sSelYard = YardSearch("B",R_STL_GRD);
  59. } else if (R_SCRAP_CAUSE_CD != null && !R_SCRAP_CAUSE_CD.equals("") ){
  60. sSelYard = YardSearch("A",R_STL_GRD);
  61. } else if (R_ORD_FL != null && R_ORD_FL.equals("2") ){
  62. sSelYard = YardSearch("F",R_STL_GRD);
  63. } else {
  64. sSelYard = YardSearch("G",R_STL_GRD);
  65. }
  66. logger.logInfo("XinCoilYardDecPos---> sSelYard:"+sSelYard );
  67. String LoadAddress = null;
  68. String RtnChk = null;
  69. for (int i = 0; i < iIdx;i++ ) {
  70. logger.logInfo("XinCoilYardDecPos---> sSelYard["+i+"]:"+sSelYard[i] );
  71. PosParameter param0 = new PosParameter();
  72. param0.setWhereClauseParameter(0, sSelYard[i]);
  73. PosRowSet LoadYardVo = getDao("mesdao").find("NIH050010_LOAD_YARD.select", param0);
  74. while(LoadYardVo.hasNext()) {
  75. PosRow LoadYardROW = LoadYardVo.next();
  76. LoadAddress = (String)LoadYardROW.getAttribute("YARD_ADDR");
  77. logger.logInfo("XinCoilYardDecPos---> LoadAddress:"+LoadAddress );
  78. String StoreLay = LoadAddress.substring(7,8);
  79. String StoreSeq = LoadAddress.substring(8,9);
  80. if (StoreLay.equals("2")) {
  81. RtnChk = chkLoadCom(LoadAddress,R_COIL_WTH );
  82. } else {
  83. RtnChk = "1";
  84. }
  85. logger.logInfo("XinCoilYardDecPos---> RtnChk:"+RtnChk );
  86. if (RtnChk.equals("1") ) {
  87. String CurrPos = null;
  88. String route = null;
  89. if (MSG_CURR_POS.equals("B")) {
  90. if(LoadAddress.substring(0,2).equals("C1")) {
  91. CurrPos = "B0704";
  92. route = "1";
  93. } else if (LoadAddress.substring(0,2).equals("C2")) {
  94. CurrPos = "B0602";
  95. route = "2";
  96. } else if (LoadAddress.substring(0,2).equals("C3")) {
  97. CurrPos = "B0402";
  98. route = "3";
  99. }
  100. } else {
  101. CurrPos = MSG_CURR_POS;
  102. }
  103. RtnCrCmd = CreCrComand(CurrPos,LoadAddress,MSG_COIL_NO);
  104. routeUpdate(MSG_COIL_NO,route);
  105. break;
  106. }
  107. }
  108. if (RtnChk.equals("1") ) {
  109. break;
  110. }
  111. }
  112. if (RtnCrCmd == null ) {
  113. logger.logInfo("XinCoilYardDecPos:--> there have not Crane Command " );
  114. }
  115. }
  116. }
  117. catch (Exception ex)
  118. {
  119. logger.logError(ex.getMessage(), ex);
  120. }
  121. // chemical decision call
  122. return PosBizControlConstants.SUCCESS;
  123. }
  124. public String[] YardSearch(String AreaKind,String R_STL_GRD )
  125. {
  126. logger.logInfo("XinCoilYardDecPos compSlab start " );
  127. String sYardAddr = null;
  128. String sFromStlGrd = null;
  129. String sToStlGrd = null;
  130. String sStlGrd1 = null;
  131. String sStlGrd2 = null;
  132. String sStlGrd3 = null;
  133. String sStlGrd4 = null;
  134. String sStlGrd5 = null;
  135. String sStlGrd6 = null;
  136. String sStlGrd7 = null;
  137. String[] SelAddr_G = new String[10];
  138. iIdx = 0;
  139. for (int j=0;j < 10;j++) {
  140. SelAddr_G[j]= "";
  141. }
  142. PosParameter param0 = new PosParameter();
  143. param0.setWhereClauseParameter(0, AreaKind);
  144. PosRowSet StdYardVo = getDao("mesdao").find("NIH050010_STD_YARD.select", param0);
  145. while(StdYardVo.hasNext()){
  146. PosRow StdYardROW = StdYardVo.next();
  147. sYardAddr = (String)StdYardROW.getAttribute("YARD_ADDR");
  148. sFromStlGrd = (String)StdYardROW.getAttribute("FROM_STL_GRD");
  149. sToStlGrd = (String)StdYardROW.getAttribute("TO_STL_GRD");
  150. sStlGrd1 = (String)StdYardROW.getAttribute("STL_GRD1");
  151. sStlGrd2 = (String)StdYardROW.getAttribute("STL_GRD2");
  152. sStlGrd3 = (String)StdYardROW.getAttribute("STL_GRD3");
  153. sStlGrd4 = (String)StdYardROW.getAttribute("STL_GRD4");
  154. sStlGrd5 = (String)StdYardROW.getAttribute("STL_GRD5");
  155. sStlGrd6 = (String)StdYardROW.getAttribute("STL_GRD6");
  156. sStlGrd7 = (String)StdYardROW.getAttribute("STL_GRD7");
  157. logger.logInfo("XinCoilYardDecPos R_STL_GRD:"+R_STL_GRD );
  158. logger.logInfo("XinCoilYardDecPos sFromStlGrd:("+sFromStlGrd+"),sToStlGrd:("+sToStlGrd+")" );
  159. if (sFromStlGrd != null && !sFromStlGrd.equals("") ) {
  160. if (sFromStlGrd.compareTo(R_STL_GRD) <= 0 && sToStlGrd.compareTo(R_STL_GRD) >= 0 ) {
  161. SelAddr_G[iIdx] = sYardAddr;
  162. iIdx++;
  163. }
  164. } else if (sStlGrd1 != null && sStlGrd1.equals(R_STL_GRD)) {
  165. logger.logInfo("XinCoilYardDecPos sStlGrd1:("+sStlGrd1+")" );
  166. SelAddr_G[iIdx] = sYardAddr;
  167. iIdx++;
  168. } else if (sStlGrd2 != null && sStlGrd2.equals(R_STL_GRD)) {
  169. logger.logInfo("XinCoilYardDecPos sStlGrd2:("+sStlGrd2+")" );
  170. SelAddr_G[iIdx] = sYardAddr;
  171. iIdx++;
  172. } else if (sStlGrd3 != null && sStlGrd3.equals(R_STL_GRD)) {
  173. logger.logInfo("XinCoilYardDecPos sStlGrd3:("+sStlGrd3+")" );
  174. SelAddr_G[iIdx] = sYardAddr;
  175. iIdx++;
  176. } else if (sStlGrd4 != null && sStlGrd4.equals(R_STL_GRD)) {
  177. logger.logInfo("XinCoilYardDecPos sStlGrd4:("+sStlGrd4+")" );
  178. SelAddr_G[iIdx] = sYardAddr;
  179. iIdx++;
  180. } else if (sStlGrd5 != null && sStlGrd5.equals(R_STL_GRD)) {
  181. logger.logInfo("XinCoilYardDecPos sStlGrd5:("+sStlGrd5+")" );
  182. SelAddr_G[iIdx] = sYardAddr;
  183. iIdx++;
  184. } else if (sStlGrd6 != null && sStlGrd6.equals(R_STL_GRD)) {
  185. logger.logInfo("XinCoilYardDecPos sStlGrd6:("+sStlGrd6+")" );
  186. SelAddr_G[iIdx] = sYardAddr;
  187. iIdx++;
  188. } else if (sStlGrd7 != null && sStlGrd7.equals(R_STL_GRD)) {
  189. logger.logInfo("XinCoilYardDecPos sStlGrd7:("+sStlGrd7+")" );
  190. SelAddr_G[iIdx] = sYardAddr;
  191. iIdx++;
  192. }
  193. }
  194. return SelAddr_G;
  195. }
  196. public String chkLoadCom(String LoadAddress,Number R_COIL_WTH )
  197. {
  198. logger.logInfo("XinCoilYardDecPos chkLoadCom start " );
  199. String StoreSeq = LoadAddress.substring(8,9);
  200. String ComAddr = null;
  201. String StepClf = null;
  202. String NewStepClf = null;
  203. String NewAddress = null;
  204. StepClf = LoadAddress.substring(5,7);
  205. logger.logInfo("XinCoilYardDecPos chkLoadCom StepClf:"+StepClf );
  206. if (StoreSeq.equals("2") ) {
  207. int intStep = Integer.parseInt(StepClf);
  208. intStep++;
  209. if (intStep < 10) {
  210. NewStepClf = "0"+String.valueOf(intStep);
  211. } else {
  212. NewStepClf = String.valueOf(intStep);
  213. }
  214. NewAddress = LoadAddress.substring(0,5)+NewStepClf+"1"+"1";
  215. logger.logInfo(" 2 NewAddress "+NewAddress );
  216. } else {
  217. NewAddress = LoadAddress.substring(0,7)+"1"+"2";;
  218. logger.logInfo(" 1 NewAddress "+NewAddress );
  219. }
  220. PosParameter param0 = new PosParameter();
  221. param0.setWhereClauseParameter(0, NewAddress);
  222. PosRowSet NewYardVo = getDao("mesdao").find("NIH050010_NEW_ADDR.select", param0);
  223. if (NewYardVo.hasNext()) {
  224. return "1";
  225. } else {
  226. return "2";
  227. }
  228. }
  229. public String CreCrComand( String FromAddr,String ToAddr,String CoilNo)
  230. {
  231. logger.logInfo("XinCoilYardDecPos--->CreCrComand: start" );
  232. Number nOrdSeq = null;
  233. String YardArea = ToAddr.substring(0,3);
  234. logger.logInfo("XinCoilYardDecPos--->YardArea:"+YardArea );
  235. String CrNo = CranNoSel(YardArea);
  236. logger.logInfo("XinCoilYardDecPos--->CrNo:"+CrNo );
  237. PosParameter param1 = new PosParameter();
  238. PosParameter param2 = new PosParameter();
  239. PosParameter param3 = new PosParameter();
  240. param1.setWhereClauseParameter(0, FromAddr);
  241. param1.setWhereClauseParameter(1, ToAddr);
  242. param1.setWhereClauseParameter(2, CoilNo);
  243. PosRowSet YardVo = getDao("mesdao").find("NIH050010_CR_COMM.select", param1);
  244. if ( YardVo.hasNext() ) {
  245. PosRow YardROW = YardVo.next();
  246. Number OrdSeq = (Number)YardROW.getAttribute("ORD_SEQ");
  247. param2.setValueParamter(0, CrNo);
  248. param2.setValueParamter(1, CoilNo);
  249. param2.setValueParamter(2, FromAddr);
  250. param2.setValueParamter(3, ToAddr);
  251. param2.setValueParamter(4, OrdSeq);
  252. getDao("mesdao").update("NIH050010_CR_COMM.update",param2);
  253. } else {
  254. param2.setValueParamter(0, ToAddr.substring(0,2));
  255. param2.setValueParamter(1, CrNo);
  256. param2.setValueParamter(2, FromAddr);
  257. param2.setValueParamter(3, ToAddr);
  258. param2.setValueParamter(4, CoilNo);
  259. getDao("mesdao").update("NIH050010_CR_COMM.insert",param2);
  260. param3.setValueParamter(0, "1");
  261. param3.setValueParamter(1, ToAddr);
  262. getDao("mesdao").update("NIH050010_RES_YARD.update",param3);
  263. }
  264. return "1";
  265. }
  266. public String CranNoSel( String Addr)
  267. {
  268. String CrNo = null;
  269. if ( Addr.equals("C31") ) {
  270. CrNo = "3-1";
  271. } else if(Addr.equals("C32") || Addr.equals("C33")) {
  272. CrNo = "3-2";
  273. } else if(Addr.equals("C34")) {
  274. CrNo = "3-3";
  275. } else if(Addr.equals("C21") || Addr.equals("C22") ) {
  276. CrNo = "3-4";
  277. } else if(Addr.equals("C23") || Addr.equals("C24") ) {
  278. CrNo = "3-5";
  279. } else if(Addr.equals("C25") || Addr.equals("C26") ) {
  280. CrNo = "3-6";
  281. } else if(Addr.equals("C11") || Addr.equals("C12") ) {
  282. CrNo = "3-7";
  283. } else if(Addr.equals("C13") || Addr.equals("C14") ) {
  284. CrNo = "3-8";
  285. } else if(Addr.equals("C15") || Addr.equals("C16") ) {
  286. CrNo = "3-9";
  287. }
  288. return CrNo;
  289. }
  290. public void routeUpdate( String coilno,String route)
  291. {
  292. PosParameter param1 = new PosParameter();
  293. param1.setValueParamter(0, route);
  294. param1.setValueParamter(1, coilno);
  295. getDao("mesdao").update("NIH050010_COIL_COMM.update",param1);
  296. }
  297. }