b98a72fd458db850f8600f00d8701628092045dd.svn-base 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package xin.glue.ui.H.H05;
  2. import xin.glue.ui.common.PosGridSave;
  3. //import xin.glue.ui.common.component.PosSiteConfig;
  4. import xin.glue.ui.common.component.PosSiteLog;
  5. import com.posdata.glue.biz.activity.PosActivity;
  6. import com.posdata.glue.biz.constants.PosBizControlConstants;
  7. import com.posdata.glue.context.PosContext;
  8. import com.posdata.glue.dao.vo.PosParameter;
  9. import com.posdata.glue.dao.vo.PosRow;
  10. import com.posdata.glue.dao.vo.PosRowSet;
  11. public class PosSaveWkBeam extends PosActivity{
  12. public String runActivity(PosContext context)
  13. {
  14. String[] rowStatus = (String[]) context.get("rowStatus");
  15. String[] WK_BEAM = (String[]) context.get("WK_BEAM");
  16. //应该使用批次号
  17. String[] COIL_NO = (String[]) context.get("OLD_SAMPL_NO");
  18. String[] TO_ADDR = (String[]) context.get("TO_ADDR");
  19. String[] CR_NO = (String[]) context.get("CR_NO");
  20. String[] ORD_SEQ = (String[]) context.get("ORD_SEQ");
  21. //登录人
  22. String[] REG_ID = (String[])context.get("REG_ID");
  23. logger.logInfo("PosSaveWkBeam---> rowStatus["+ rowStatus.length+"]" );
  24. if(rowStatus != null){
  25. for(int i=0;i<rowStatus.length;i++){
  26. if (ORD_SEQ[i] != null && !ORD_SEQ[i].equals("") ) {
  27. logger.logInfo("PosSaveWkBeam---> ORD_SEQ["+ ORD_SEQ[i]+"]" );
  28. PosParameter param1 = new PosParameter();
  29. param1.setWhereClauseParameter(0, ORD_SEQ[i]);
  30. PosRowSet CrOrdVO = this.getDao("mesdao").find("UIH050050_CR_ORD.select", param1);
  31. if(CrOrdVO.hasNext()) {
  32. //这里做个限制,库内已经存在的卷不能再次进行入库操作
  33. String sql1 = "SELECT A.COIL_NO FROM TBH05_COIL_YARD A WHERE A.COIL_NO = ?";
  34. PosParameter paramAA = new PosParameter();
  35. paramAA.setWhereClauseParameter(0, COIL_NO[i]);
  36. PosRowSet YardCoil = getDao("mesdao").findByQueryStatement(sql1, paramAA);
  37. if(!YardCoil.hasNext()){
  38. //这里必须先判断新的去向位置是否已经上锁,如果已经被别的行车命令占用就不能制订相应的命令并且抛出异常
  39. String sql = "SELECT RESERV_FL FROM tbh05_coil_yard WHERE YARD_CLF||STEP_CLF||STORELAY||STORE_SEQ = ?";
  40. PosParameter paramA = new PosParameter();
  41. paramA.setWhereClauseParameter(0, TO_ADDR[i]);
  42. PosRowSet YardReservFl = getDao("mesdao").findByQueryStatement(sql, paramA);
  43. if(YardReservFl.hasNext()){
  44. //如果锁定结果存在抛出异常
  45. PosRow YardReservFlRow = YardReservFl.next();
  46. String RESERV_FL = (String)YardReservFlRow.getAttribute("RESERV_FL");
  47. if(RESERV_FL !=null){
  48. if(RESERV_FL.equals("1")){
  49. //去向位置锁定的情况
  50. logger.logDebug("PosSaveWkBeam 在辊道入库制定行车命令的时候,去向位置已经锁定! ");
  51. String vtemp="RESERV_FL1";
  52. context.put("rs", vtemp);
  53. }else{
  54. //去向位置锁定的情况
  55. logger.logDebug("PosSaveWkBeam 未知的异常锁定情况! ");
  56. String vtemp="error";
  57. context.put("rs", vtemp);
  58. }
  59. }else{
  60. //没有锁定的情况才可以执行相应的更新操作
  61. //这里取出第一次制定命令的去向位置,解除锁定状态
  62. PosRow CrOrdROW = CrOrdVO.next();
  63. String To_add_old = (String)CrOrdROW.getAttribute("TO_ADDR");
  64. PosParameter param3 = new PosParameter();
  65. param3.setValueParamter(0, "");
  66. param3.setValueParamter(1, To_add_old);
  67. getDao("mesdao").update("NIH050010_RES_YARD.update",param3);
  68. //这里在更新命令的去向位置
  69. PosParameter param2 = new PosParameter();
  70. param2.setValueParamter(0, CR_NO[i]);
  71. param2.setValueParamter(1, COIL_NO[i]);
  72. param2.setValueParamter(2, WK_BEAM[i]);
  73. param2.setValueParamter(3, TO_ADDR[i]);
  74. param2.setValueParamter(4, REG_ID[0]);
  75. param2.setValueParamter(5, "1");
  76. param2.setValueParamter(6, ORD_SEQ[i]);
  77. getDao("mesdao").update("UIH050050_CR_ORD.update",param2);
  78. //把命令的去向位置锁定起来
  79. PosParameter param4 = new PosParameter();
  80. param4.setValueParamter(0, "1");
  81. param4.setValueParamter(1, TO_ADDR[i]);
  82. getDao("mesdao").update("NIH050010_RES_YARD.update",param4);
  83. }
  84. }else{
  85. logger.logDebug("PosSaveWkBeam 锁定标志不存在 ");
  86. }
  87. }else{
  88. //入库的钢卷在库内已经存在
  89. logger.logDebug("PosSaveWkBeam 入库的钢卷在库存已经存在! "+COIL_NO[i]);
  90. String vtemp="COIL_NO";
  91. context.put("rs", vtemp);
  92. }
  93. }
  94. } else {
  95. //这里做个限制,库内已经存在的卷不能再次进行入库操作
  96. String sql1 = "SELECT A.COIL_NO FROM TBH05_COIL_YARD A WHERE A.COIL_NO = ?";
  97. PosParameter paramAA = new PosParameter();
  98. paramAA.setWhereClauseParameter(0, COIL_NO[i]);
  99. PosRowSet YardCoil = getDao("mesdao").findByQueryStatement(sql1, paramAA);
  100. if(!YardCoil.hasNext()){
  101. //这里必须先判断新的去向位置是否已经上锁,如果已经被别的行车命令占用就不能制订相应的命令并且抛出异常
  102. String sql = "SELECT RESERV_FL FROM tbh05_coil_yard WHERE YARD_CLF||STEP_CLF||STORELAY||STORE_SEQ = ?";
  103. PosParameter paramA = new PosParameter();
  104. paramA.setWhereClauseParameter(0, TO_ADDR[i]);
  105. PosRowSet YardReservFl = getDao("mesdao").findByQueryStatement(sql, paramA);
  106. if(YardReservFl.hasNext()){
  107. //如果锁定结果存在抛出异常
  108. PosRow YardReservFlRow = YardReservFl.next();
  109. String RESERV_FL = (String)YardReservFlRow.getAttribute("RESERV_FL");
  110. if(RESERV_FL != null){
  111. if(RESERV_FL.equals("1")){
  112. //去向位置锁定的情况
  113. logger.logDebug("PosSaveWkBeam 在辊道入库制定行车命令的时候,去向位置已经锁定! ");
  114. String vtemp="RESERV_FL1";
  115. context.put("rs", vtemp);
  116. }else{
  117. //去向位置锁定的情况
  118. logger.logDebug("PosSaveWkBeam 未知的异常锁定情况! ");
  119. String vtemp="error";
  120. context.put("rs", vtemp);
  121. }
  122. }else{
  123. //没有锁定的情况才可以执行相应的插入操作
  124. PosParameter param2 = new PosParameter();
  125. param2.setValueParamter(0, CR_NO[i]);
  126. param2.setValueParamter(1, COIL_NO[i]);
  127. param2.setValueParamter(2, WK_BEAM[i]);
  128. param2.setValueParamter(3, TO_ADDR[i]);
  129. param2.setValueParamter(4, TO_ADDR[i].substring(0,2));
  130. param2.setValueParamter(5, REG_ID[0]);
  131. getDao("mesdao").update("UIH050050_CR_ORD.insert",param2);
  132. PosParameter param3 = new PosParameter();
  133. param3.setValueParamter(0, "1");
  134. param3.setValueParamter(1, TO_ADDR[i]);
  135. getDao("mesdao").update("NIH050010_RES_YARD.update",param3);
  136. PosParameter param4 = new PosParameter();
  137. param4.setValueParamter(0, "1");
  138. param4.setValueParamter(1, REG_ID[0]);
  139. param4.setValueParamter(2, WK_BEAM[i]);
  140. getDao("mesdao").update("UIH050050_WKBEAM_RESV.update",param4);
  141. }
  142. }else{
  143. logger.logDebug("PosSaveWkBeam 锁定标志不存在 ");
  144. }
  145. }else{
  146. //入库的钢卷在库内已经存在
  147. logger.logDebug("PosSaveWkBeam 入库的钢卷在库存已经存在! "+COIL_NO[i]);
  148. String vtemp="COIL_NO";
  149. context.put("rs", vtemp);
  150. return PosBizControlConstants.SUCCESS;
  151. }
  152. }
  153. }
  154. }
  155. return PosBizControlConstants.SUCCESS;
  156. }
  157. }