6e4d485e3a004eb043bec2620622538e8f19977f.svn-base 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package xin.glue.ui.G.G02;
  2. import java.math.BigDecimal;
  3. import java.sql.CallableStatement;
  4. import java.text.ParseException;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Calendar;
  7. import org.apache.commons.lang.StringUtils;
  8. import xin.glue.ui.G.G01.XTBGCreateMaterial;
  9. import com.posdata.glue.biz.activity.PosActivity;
  10. import com.posdata.glue.biz.constants.PosBizControlConstants;
  11. import com.posdata.glue.context.PosContext;
  12. import com.posdata.glue.dao.PosGenericDao;
  13. import com.posdata.glue.dao.vo.PosParameter;
  14. import com.posdata.glue.dao.vo.PosRow;
  15. import com.posdata.glue.dao.vo.PosRowSet;
  16. public class PosSaveSlabRecut extends PosActivity {
  17. public String runActivity(PosContext context) {
  18. String[] RegId = (String[]) context.get("CUT_EMP_ID"); //作业人
  19. PosGenericDao dao = getDao("mesdao");
  20. PosParameter param = new PosParameter();
  21. PosRowSet rowset = null;
  22. PosRow row = null;
  23. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  24. XTBGCreateMaterial xtbcm = new XTBGCreateMaterial(dao);
  25. //XTBGCOMM xtbgcomm = new XTBGCOMM(dao);
  26. String CUR_PROG_CD = "";
  27. String SAMPLINGID = "";
  28. String[] chargeNo = (String[]) context.get("CHARGE_NO"); //班次
  29. if(chargeNo == null || StringUtils.isBlank(chargeNo[0])){
  30. context.put("MESSAGES", " 炉次号为空! ");
  31. return PosBizControlConstants.SUCCESS;
  32. }
  33. chargeNo[0] = "J"+chargeNo[0].substring(1, 10);
  34. //获取当前日期
  35. Calendar nowCal = Calendar.getInstance();
  36. int nowMonth = nowCal.get(Calendar.MONTH) + 1;
  37. //实例化切割日期日历
  38. Calendar cutCal = Calendar.getInstance();
  39. String sql = "SELECT T.*,TO_CHAR(TO_DATE(T.SLAB_CUT_DTIME,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') SLAB_CUT_DTIME1 FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO LIKE ?||'%'";
  40. param = new PosParameter();
  41. param.setWhereClauseParameter(0, chargeNo[0]);
  42. rowset = dao.findByQueryStatement(sql, param);
  43. while(rowset.hasNext()){
  44. row = rowset.next();
  45. try {
  46. cutCal.setTime(sdf.parse((String)row.getAttribute("SLAB_CUT_DTIME1")));
  47. } catch (ParseException e) {
  48. // TODO Auto-generated catch block
  49. e.printStackTrace();
  50. }
  51. int cutMonth = cutCal.get(Calendar.MONTH) + 1;
  52. if(nowMonth > cutMonth){
  53. context.put("MESSAGES", chargeNo[0] + "中有板坯已关帐,不允许撤销板坯实绩");
  54. return PosBizControlConstants.SUCCESS;
  55. }
  56. CUR_PROG_CD = (String)row.getAttribute("CUR_PROG_CD");
  57. SAMPLINGID = (String)row.getAttribute("SAMPLINGID");
  58. if("RCB".equals(CUR_PROG_CD) || "RBB".equals(CUR_PROG_CD) || "RBA".equals(CUR_PROG_CD) || "RGF".equals(CUR_PROG_CD)
  59. || "RGC".equals(CUR_PROG_CD)){
  60. context.put("MESSAGES", " 坯料为订单材需降余材后操作或则已经中厚板移送通知撤销移送! ");
  61. return PosBizControlConstants.SUCCESS;
  62. }
  63. if(!StringUtils.isBlank(SAMPLINGID)){
  64. context.put("MESSAGES", " 坯料已经进行重量匹配,请到匹配界面取消匹配之后再清空流号! ");
  65. return PosBizControlConstants.SUCCESS;
  66. }
  67. }
  68. sql = "select count(1) CHARGE_CNT from tbg02_charge_comm_d t where t.SUB_CHARGE_NO = ?";
  69. param = new PosParameter();
  70. param.setWhereClauseParameter(0, chargeNo[0]);
  71. rowset = dao.findByQueryStatement(sql, param);
  72. if(rowset.hasNext()){
  73. row = rowset.next();
  74. BigDecimal chargecnt = (BigDecimal)row.getAttribute("CHARGE_CNT");
  75. if((chargecnt.compareTo(new BigDecimal(1)) > 0)){
  76. context.put("MESSAGES", " 已经分炉,不可删除板坯实绩! ");
  77. return PosBizControlConstants.SUCCESS;
  78. }
  79. }
  80. /*财务数据上抛*/
  81. sql = "SELECT T.SLAB_NO FROM TBG02_SLAB_COMM T WHERE T.SLAB_NO LIKE ?||'%'";
  82. param = new PosParameter();
  83. param.setWhereClauseParameter(0, chargeNo[0]);
  84. rowset = dao.findByQueryStatement(sql, param);
  85. CallableStatement cstm = null;
  86. while(rowset.hasNext()){
  87. cstm = null;
  88. row = rowset.next();
  89. try
  90. {
  91. cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
  92. cstm.setString(1, (String)row.getAttribute("SLAB_NO"));
  93. cstm.setString(2, "11A");
  94. cstm.setString(3, "D");
  95. cstm.setString(4, "板坯切割实绩录入撤销");
  96. cstm.setString(5, RegId == null?"Xg3qUser":RegId[0]);
  97. cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
  98. cstm.execute();
  99. String err = cstm.getString(6);
  100. }catch(Exception ex){
  101. ex.printStackTrace();
  102. }
  103. }
  104. if(cstm != null){
  105. try{
  106. cstm.close();
  107. }catch(Exception e)
  108. {
  109. e.printStackTrace();
  110. }
  111. }
  112. param = new PosParameter();
  113. param.setWhereClauseParameter(0, chargeNo[0]);
  114. dao.delete("UIG020060_SLAB_RECUT.delete", param);
  115. dao.delete("UIG020060_SLAB_RECUT_02.delete", param);
  116. param = new PosParameter();
  117. param.setWhereClauseParameter(0, chargeNo[0]);
  118. rowset = dao.find("UIG020060_SLAB_RECUT.select", param);
  119. while(rowset.hasNext()){
  120. row = rowset.next();
  121. xtbcm.CreateSlab((String)row.getAttribute("SLAB_MANA_NO"));
  122. }
  123. param = new PosParameter();
  124. param.setWhereClauseParameter(0, chargeNo[0]);
  125. dao.delete("UIG020060_SLAB_RECUT_03.delete", param);
  126. dao.delete("UIG020060_SLAB_RECUT_04.delete", param);
  127. xtbcm.CreateCharge("3"+chargeNo[0].substring(1, 10));
  128. param = new PosParameter();
  129. param.setWhereClauseParameter(0, chargeNo[0]);
  130. //CLEAR YARD ADDR
  131. dao.update("UIG020060_SLAB_RECUT_02.update", param);
  132. context.put("MESSAGES","操作成功!");
  133. return PosBizControlConstants.SUCCESS;
  134. }
  135. }