e3108bfc9b8f1132e26d44ec8dfc89ebae7edb1b.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. package xin.glue.nui.G.G02;
  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. /*
  22. * 连铸实绩的插入与保存
  23. * @author 王小炎
  24. * @data 2008.12.20
  25. * @desc 切割完成 板坯入库行车命令自动制定
  26. * 堆垛原则:首先按同炉号堆放 其次 按同规格(范围)同牌号 再次随机选择一个空的垛位
  27. */
  28. public class XinDecToPosition extends PosActivity {
  29. private String currDate = null;
  30. private String R_SLAB_RT = null;
  31. private String R_HCR_CLF = null;
  32. private Number R_SLAB_WTH = null;
  33. private Number R_SLAB_LEN = null;
  34. private String R_ORD_NO = null;
  35. private String R_PRODNM_CD = null;
  36. private String R_NONORD_CAUSE_CD = null;
  37. private String YD_SLAB_NO = null;
  38. private String YD_STL_GRD = null;
  39. private String YD_PRODNM_CD = null;
  40. private String YD_ORD_NO = null;
  41. private Number YD_SLAB_LEN = null;
  42. private Number YD_SLAB_WTH = null;
  43. private String YD_YARD_ADDR = null;
  44. private String YD_STORELAY = null;
  45. public String runActivity(PosContext context) {
  46. logger.logInfo("XinDecToPosition runActivity START...");
  47. PosGenericDao dao = this.getDao("mesdao");
  48. PosMessage message = context.getMessage();
  49. DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
  50. currDate = formatter.format(new Date());
  51. String MSG_SLAB_NO = (String) message.get("SLAB_NO" );
  52. String MSG_STL_GRD = (String) message.get("STL_GRD" );
  53. String SLAB_LOC = (String) message.get("SLAB_LOC" );
  54. String sEmpLoc = null;
  55. String sEmpClf = null;
  56. String sTrue = null;
  57. // PosRowSet SlabSpecVo = (PosRowSet) context.get("SlabSpec");
  58. PosParameter param = new PosParameter();
  59. PosRowSet RsltSlabCommVo = (PosRowSet) context.get("RsltSlabComm");
  60. RsltSlabCommVo.reset();
  61. // SlabSpecVo.reset();
  62. logger.logInfo("XinDecToPosition---> RsltSlabCommVo:"+RsltSlabCommVo );
  63. if (RsltSlabCommVo.hasNext() )
  64. {
  65. logger.logInfo("XinDecToPosition---> SpecVo HASnext " );
  66. PosRow RsltSlabCommRow = RsltSlabCommVo.next();
  67. R_SLAB_RT = (String)RsltSlabCommRow.getAttribute("SLAB_RT");
  68. R_HCR_CLF = (String)RsltSlabCommRow.getAttribute("HCR_CLF");
  69. R_SLAB_WTH = (Number)RsltSlabCommRow.getAttribute("SLAB_WTH");
  70. R_SLAB_LEN = (Number)RsltSlabCommRow.getAttribute("SLAB_LEN");
  71. R_ORD_NO = (String)RsltSlabCommRow.getAttribute("ORD_NO");
  72. R_PRODNM_CD = (String)RsltSlabCommRow.getAttribute("PRODNM_CD");
  73. R_NONORD_CAUSE_CD = (String)RsltSlabCommRow.getAttribute("NONORD_CAUSE_CD");
  74. logger.logInfo("XinDecToPosition--->R_SLAB_RT:"+R_SLAB_RT );
  75. String Sel_YARD = null;
  76. // 中厚板的坯料 余材(nonord_cause_cd is not null)
  77. if ((R_SLAB_RT != null && (R_SLAB_RT.equals("P") || R_SLAB_RT.equals("Z"))) ||
  78. (R_NONORD_CAUSE_CD != null && !R_NONORD_CAUSE_CD.equals("")) ||
  79. SLAB_LOC.equals("5") ) {
  80. Sel_YARD = SMS_YARD(MSG_SLAB_NO,MSG_STL_GRD,R_SLAB_WTH ,R_SLAB_LEN);
  81. CreCrComand("A001",Sel_YARD,MSG_SLAB_NO);
  82. } else {
  83. // 热轧坯料
  84. Sel_YARD = HM_YARD(MSG_SLAB_NO,MSG_STL_GRD,R_SLAB_WTH ,R_SLAB_LEN);
  85. CreCrComand("A001",Sel_YARD,MSG_SLAB_NO);
  86. }
  87. }
  88. return PosBizControlConstants.SUCCESS;
  89. }
  90. // 查询库存地址
  91. public String SMS_YARD(String sSlabNo,String StlGrd ,Number SlabWth,Number SlabLen)
  92. {
  93. String YardAddr = null;
  94. String StoreLay = null;
  95. PosParameter param1 = new PosParameter();
  96. param1.setWhereClauseParameter(0, sSlabNo.substring(0,10));
  97. param1.setWhereClauseParameter(1, "L");
  98. PosRowSet SmsYardVo = getDao("mesdao").find("NIG020640_SMS_YARD.select", param1);
  99. if (SmsYardVo.hasNext()) {
  100. PosRow SmsYardROW = SmsYardVo.next();
  101. YardAddr = (String)SmsYardROW.getAttribute("YARD_ADDR");
  102. }
  103. if (YardAddr != null) return YardAddr;
  104. PosParameter param2 = new PosParameter();
  105. param2.setWhereClauseParameter(0, SlabWth);
  106. param2.setWhereClauseParameter(1, SlabLen);
  107. param2.setWhereClauseParameter(2, "L");
  108. param2.setWhereClauseParameter(3, StlGrd);
  109. PosRowSet SameGrdVo = getDao("mesdao").find("NIG020640_SAME_GRD.select", param2);
  110. if (SameGrdVo.hasNext()) {
  111. PosRow SameGrdROW = SameGrdVo.next();
  112. YardAddr = (String)SameGrdROW.getAttribute("YARD_ADDR");
  113. }
  114. if (YardAddr != null) return YardAddr;
  115. PosParameter param3 = new PosParameter();
  116. param3.setWhereClauseParameter(0, "L");
  117. PosRowSet EmpGrdVo = getDao("mesdao").find("NIG020640_EMPTY_YARD.select",param3 );
  118. if (EmpGrdVo.hasNext()) {
  119. PosRow EmpGrdVoROW = EmpGrdVo.next();
  120. YardAddr = (String)EmpGrdVoROW.getAttribute("YARD_ADDR");
  121. }
  122. return YardAddr;
  123. }
  124. public String HM_YARD(String sSlabNo,String StlGrd ,Number SlabWth,Number SlabLen)
  125. {
  126. String YardAddr = null;
  127. String StoreLay = null;
  128. PosParameter param1 = new PosParameter();
  129. param1.setWhereClauseParameter(0, sSlabNo.substring(0,10));
  130. param1.setWhereClauseParameter(1, "Z");
  131. PosRowSet SmsYardVo = getDao("mesdao").find("NIG020640_SMS_YARD.select", param1);
  132. if (SmsYardVo.hasNext()) {
  133. PosRow SmsYardROW = SmsYardVo.next();
  134. YardAddr = (String)SmsYardROW.getAttribute("YARD_ADDR");
  135. }
  136. if (YardAddr != null) return YardAddr;
  137. PosParameter param2 = new PosParameter();
  138. param2.setWhereClauseParameter(0, SlabWth);
  139. param2.setWhereClauseParameter(1, SlabLen);
  140. param2.setWhereClauseParameter(2, "Z");
  141. param2.setWhereClauseParameter(3, StlGrd);
  142. PosRowSet SameGrdVo = getDao("mesdao").find("NIG020640_SAME_GRD.select", param2);
  143. if (SameGrdVo.hasNext()) {
  144. PosRow SameGrdROW = SameGrdVo.next();
  145. YardAddr = (String)SameGrdROW.getAttribute("YARD_ADDR");
  146. }
  147. if (YardAddr != null) return YardAddr;
  148. PosParameter param3 = new PosParameter();
  149. param3.setWhereClauseParameter(0, "Z");
  150. PosRowSet EmpGrdVo = getDao("mesdao").find("NIG020640_EMPTY_YARD.select",param3 );
  151. if (EmpGrdVo.hasNext()) {
  152. PosRow EmpGrdVoROW = EmpGrdVo.next();
  153. YardAddr = (String)EmpGrdVoROW.getAttribute("YARD_ADDR");
  154. }
  155. return YardAddr;
  156. }
  157. public void CreCrComand( String FrYardAddr ,String ToYardAddr,String SlabNo )
  158. {
  159. logger.logInfo("XinDecToPosition--->CreCrComand: start" );
  160. String nOrdSeq = null;
  161. int iSeq = 0;
  162. PosParameter param1 = new PosParameter();
  163. param1.setWhereClauseParameter(0, FrYardAddr);
  164. param1.setWhereClauseParameter(1, ToYardAddr);
  165. param1.setWhereClauseParameter(2, SlabNo);
  166. PosRowSet CrCmdVo = getDao("mesdao").find("NIG020640_CR_CMD.select", param1);
  167. if (CrCmdVo.hasNext()) {
  168. PosRow CrCmdROW = CrCmdVo.next();
  169. Number SeqNo = (Number)CrCmdROW.getAttribute("SEQ_NO");
  170. PosParameter param2 = new PosParameter();
  171. param2.setValueParamter(0, SeqNo );
  172. this.getDao("mesdao").update("NIG020640_CR_CMD.delete", param2);
  173. }
  174. PosParameter param3 = new PosParameter();
  175. param3.setValueParamter(0, FrYardAddr );
  176. param3.setValueParamter(1, ToYardAddr );
  177. param3.setValueParamter(2, SlabNo );
  178. this.getDao("mesdao").update("NIG020640_CR_CMD.insert", param3);
  179. }
  180. public void SlabWayUpd(String SlabWay)
  181. {
  182. String LineArea = SlabWay.substring(1,2);
  183. PosParameter param3 = new PosParameter();
  184. param3.setValueParamter(0, LineArea );
  185. getDao("mesdao").update("NIG020610_SLAB_WAY.update",param3);
  186. }
  187. }