0887e537e02c04c8561799993b26da62a3e84cf8.svn-base 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package xin.glue.ui.G.G04;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import com.posdata.glue.biz.activity.PosActivity;
  5. import com.posdata.glue.biz.constants.PosBizControlConstants;
  6. import com.posdata.glue.context.PosContext;
  7. import com.posdata.glue.dao.vo.PosParameter;
  8. import com.posdata.glue.dao.vo.PosRow;
  9. import com.posdata.glue.dao.vo.PosRowSet;
  10. /*
  11. * desc:
  12. * author:王小炎
  13. * date:2008-9-20
  14. */
  15. public class XinSaveCraneOrder extends PosActivity
  16. {
  17. public String runActivity(PosContext context)
  18. {
  19. // 从页面获取参数数据,供更新页面使用
  20. // 制定行车命令所需: 原位置;目的位置;移动块数,行车编号
  21. String[] fromAddress = (String[])context.get("FROM_ADDR");
  22. String[] slabCnt = (String[])context.get("SLAB_CNT");
  23. String[] craneNo = (String[])context.get("CRANE_NO");
  24. String[] toAddress = (String[])context.get("TO_ADDR");
  25. //String ordStat = "1";
  26. //BigDecimal ordSeq = null;
  27. Map map = new HashMap(2);
  28. // 记录要移动的板坯的数组
  29. String[] ArrSlabNo = new String[4];
  30. // 记录要移动的板坯的数组
  31. String[] ArrStorlay = new String[4];
  32. // 行车命令选定移动的板坯块数
  33. int intCnt = Integer.parseInt(slabCnt[0]);
  34. int i = 0;
  35. int j = 0;
  36. String OrdFlag ="0";
  37. PosParameter param1 = new PosParameter();
  38. param1.setWhereClauseParameter(0, fromAddress[0]);
  39. PosRowSet YardVO = getDao("mesdao").find("UIG040043_03.select", param1);
  40. // 获得要移动的板坯,一个跺位从上到下获取 intCnt 块板坯数
  41. while(YardVO.hasNext()) {
  42. PosRow YardROW = YardVO.next();
  43. ArrSlabNo[i] = (String)YardROW.getAttribute("SLAB_NO");
  44. i++;
  45. if ( i == intCnt ) break;
  46. }
  47. param1 = new PosParameter();
  48. param1.setWhereClauseParameter(0, toAddress[0]);
  49. YardVO = getDao("mesdao").find("UIG040043_toAddr_UPDATE.select", param1);
  50. //获得要放置板坯的层,一个跺位从下往上获取 inCnt 个层位置
  51. while(YardVO.hasNext()) {
  52. PosRow YardROW = YardVO.next();
  53. ArrStorlay[j] = (String)YardROW.getAttribute("STORELAY");
  54. j++;
  55. if ( j == intCnt ) break;
  56. }
  57. for (int ii = 0; ii < intCnt; ii++) {
  58. PosParameter param0 = new PosParameter();
  59. param0.setWhereClauseParameter(0, ArrSlabNo[ii]);
  60. param0.setWhereClauseParameter(1, fromAddress[0]);
  61. // 查询板坯库 fromAddress 位置 ArrSlabNo 板坯 行车命令状态为 ‘1’ 的记录是否存在,存在则不能编制记录
  62. PosRowSet ChkOrdVO = getDao("mesdao").find("UIG040043_04.select", param0);
  63. if (ChkOrdVO.hasNext() ) {
  64. map.put("MSG_CON", "1");
  65. OrdFlag = "1";
  66. break;
  67. }
  68. }
  69. if (OrdFlag.equals("0")) {
  70. // 增加一条行车命令记录,则其序号加一,下面这段代码就是获得当前行车命令记录的最大序号
  71. /*
  72. String sql2 = " select max(SEQ_NO) SEQ_NO from tbg04_slab_crane_order ";
  73. PosParameter param2 = new PosParameter();
  74. PosRowSet rowset1 = getDao("mesdao").findByQueryStatement(sql2,param2);
  75. if(rowset1.hasNext())
  76. {
  77. PosRow row0 = (PosRow)rowset1.next();
  78. ordSeq = (BigDecimal)row0.getAttribute("SEQ_NO");
  79. }else
  80. {
  81. ordSeq = new BigDecimal(0);
  82. }
  83. // 行车命令记录序号加一
  84. int ordSeq2 = (ordSeq.intValue() + 1);
  85. BigDecimal ordSeq3 = new BigDecimal(ordSeq2);
  86. */
  87. // 插入一条新命令
  88. // param1.setValueParamter(0,ordSeq3);
  89. param1.setValueParamter(0,craneNo[0]);
  90. param1.setValueParamter(1,fromAddress[0]);
  91. param1.setValueParamter(2,toAddress[0]);
  92. param1.setValueParamter(3,slabCnt[0]);
  93. param1.setValueParamter(4,ArrSlabNo[0]);
  94. param1.setValueParamter(5,ArrSlabNo[1]);
  95. param1.setValueParamter(6,ArrSlabNo[2]);
  96. param1.setValueParamter(7,ArrSlabNo[3]);
  97. getDao("mesdao").insert("UIG040043_01.insert",param1);
  98. // 到上面为止,一条行车命令已经制定完成,下面对制定命令涉及到的 板坯原位置,目的位置 进行控制 制定行车命令,则状态为1
  99. for ( int jj = 0; jj < intCnt ; jj++) {
  100. PosParameter param3 = new PosParameter();
  101. param3.setValueParamter(0, "1");
  102. param3.setValueParamter(1, ArrSlabNo[jj]);
  103. param3.setValueParamter(2, fromAddress[0]);
  104. getDao("mesdao").update("UIG040041_01.update", param3);
  105. param3 = new PosParameter();
  106. param3.setValueParamter(0, "4");
  107. param3.setValueParamter(1, ArrStorlay[jj]);
  108. param3.setValueParamter(2, toAddress[0]);
  109. getDao("mesdao").update("UIG040041_02.update", param3);
  110. }
  111. }
  112. context.put("ConfMsg",map);
  113. return PosBizControlConstants.SUCCESS;
  114. }
  115. }