631dc15ddfe65111aee8c9501b31bb969218b90b.svn-base 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. package xin.glue.ui.G.G04;
  2. import java.sql.CallableStatement;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import org.apache.commons.lang.StringUtils;
  6. import com.alibaba.fastjson.JSONArray;
  7. import com.alibaba.fastjson.JSONObject;
  8. import com.posdata.glue.biz.activity.PosActivity;
  9. import com.posdata.glue.biz.constants.PosBizControlConstants;
  10. import com.posdata.glue.context.PosContext;
  11. import com.posdata.glue.dao.PosGenericDao;
  12. import com.posdata.glue.dao.vo.PosParameter;
  13. import com.posdata.glue.dao.vo.PosRow;
  14. import com.posdata.glue.dao.vo.PosRowSet;
  15. public class XinForceMoveSalb extends PosActivity {
  16. public String runActivity(PosContext context) {
  17. YardHandle yardhand = new YardHandle(getDao("mesdao"));
  18. String[]fromAddr = (String[])context.get("fromAddr");
  19. String[]toAddr = (String[])context.get("toAddr");
  20. String[]slabNo = (String[])context.get("fstSlab");
  21. JSONObject hm = new JSONObject();
  22. JSONArray hmList = new JSONArray();
  23. if(fromAddr[0].equals("")||toAddr[0].equals("")||slabNo[0].equals("")){
  24. context.put("MESSAGES", " 板坯号,地址不能为空 ");
  25. return PosBizControlConstants.SUCCESS;
  26. }
  27. String storelay = null;
  28. int lay = 0;
  29. if(yardhand.chekStorelay(toAddr[0])){
  30. lay = yardhand.getStorelay(toAddr[0]);
  31. }else{
  32. context.put("MESSAGES"," 垛位错误 或则已经放满,不能超过16块! ");
  33. return PosBizControlConstants.SUCCESS;
  34. }
  35. if(lay > 6){
  36. context.put("MESSAGES", " 台车垛位层数最大不得超过6层,移库失败");
  37. return PosBizControlConstants.SUCCESS;
  38. }
  39. PosParameter param1 = new PosParameter();
  40. param1 = new PosParameter();
  41. param1.setWhereClauseParameter(0, slabNo[0]);
  42. PosRowSet rowSet = getDao("mesdao").find("UIG040061_MOVEALBE_SLAB.select", param1);
  43. while(rowSet.hasNext()){
  44. PosRow row = rowSet.next();
  45. String slabStat = (String)row.getAttribute("SLAB_STAT");
  46. String missionClf = (String)row.getAttribute("MISSNO_CLF");
  47. String lstIngrCd = (String)row.getAttribute("LST_INGR_CD");
  48. String slabIngrGrd = (String)row.getAttribute("SLAB_INGR_DEC_GRD");
  49. String slabTotDecGrd = (String)row.getAttribute("SLAB_TOT_DEC_GRD");
  50. if(slabStat.equals("3")){
  51. context.put("MESSAGES", " 板坯状态已经结束! ");
  52. return PosBizControlConstants.SUCCESS;
  53. }
  54. if(!(missionClf == null)&&(missionClf.equals("3") || missionClf.equals("2"))){
  55. context.put("MESSAGES", " 加回,轧回,吊销坯不能在此入库! ");
  56. return PosBizControlConstants.SUCCESS;
  57. }
  58. if(lstIngrCd == null){
  59. context.put("MESSAGES", " 无成份实绩,不能入库! ");
  60. return PosBizControlConstants.SUCCESS;
  61. }
  62. System.out.println(toAddr[0].substring(0,1));
  63. if((slabIngrGrd == null || (!slabIngrGrd.equals("1"))) && toAddr[0].substring(0,1).equals("Z")){
  64. if(slabTotDecGrd == null || !(slabTotDecGrd.equals("1") ||slabTotDecGrd.equals("3") ||slabTotDecGrd.equals("4") ||slabTotDecGrd.equals("9"))){
  65. context.put("MESSAGES", " 成份等级不合格,不能入库! ");
  66. return PosBizControlConstants.SUCCESS;
  67. }
  68. }
  69. if((StringUtils.isBlank(slabTotDecGrd))){
  70. context.put("MESSAGES", " 板坯未进行综合判定,不能出库! ");
  71. return PosBizControlConstants.SUCCESS;
  72. }
  73. }
  74. hm.put("SLAB_NO", slabNo[0]);
  75. hm.put("LAYER", lay);
  76. hmList.add(hm);
  77. if(lay < 10){
  78. storelay = "0" + lay;
  79. }else{
  80. storelay = "" + lay;
  81. }
  82. int updateCnt = yardhand.clearFromAddrBySlabNo(slabNo[0]);
  83. int updateCnt2 = yardhand.setToAddr(slabNo[0],fromAddr[0],"",toAddr[0],storelay,"","");
  84. int updateCnt3 = yardhand.setEntSlabComm(slabNo[0], toAddr[0], storelay,"2");
  85. logger.logDebug("---------" + updateCnt + " updateCnt2= " + updateCnt2 + " uddateCnt3 = " + updateCnt3);
  86. String activityId = "",AppId = "",Exeejob = "";
  87. int flag = 1;
  88. PosParameter param = new PosParameter();
  89. PosGenericDao dao = getDao("mesdao");
  90. //入热轧原料库
  91. if( (fromAddr[0].substring(0,1).equals("L") || (fromAddr[0].substring(0,1).equals("H") && !fromAddr[0].equals("H516"))
  92. || fromAddr[0].substring(0,2).equals("A0") || fromAddr[0].substring(0,2).equals("C0"))//在库跺位
  93. //出库跺位
  94. && (toAddr[0].substring(0,1).equals("Z") || toAddr[0].substring(0,1).equals("T") || toAddr[0].equals("H516"))
  95. ){
  96. activityId = "55A";
  97. AppId = "板坯入热轧库";
  98. Exeejob = "N";
  99. flag = 0;
  100. //配重自动审核
  101. CallableStatement cstm = null;
  102. try
  103. {
  104. cstm = this.getDao("mesdao").getCallableStatement("WEIGHT_CHECK.CAL");
  105. cstm.setString(1, slabNo[0]);
  106. cstm.registerOutParameter(2, java.sql.Types.VARCHAR);
  107. cstm.execute();
  108. //String err = cstm.getString(2);
  109. }catch(Exception ex){
  110. ex.printStackTrace();
  111. }
  112. finally{
  113. if(cstm != null){
  114. try{
  115. cstm.close();
  116. }catch(Exception e)
  117. {
  118. e.printStackTrace();
  119. }
  120. }
  121. }
  122. }
  123. //退库
  124. if( (fromAddr[0].substring(0,1).equals("T") || fromAddr[0].equals("H516") || fromAddr[0].substring(0,1).equals("Z"))
  125. && ((toAddr[0].substring(0,1).equals("L") || (toAddr[0].substring(0,1).equals("H") && !toAddr[0].substring(0,1).equals("H516"))
  126. || toAddr[0].substring(0,2).equals("A0") || toAddr[0].substring(0,2).equals("C0"))) ){
  127. activityId = "55A";
  128. AppId = "板坯退热轧库";
  129. Exeejob = "D";
  130. flag = 0;
  131. }
  132. if(flag == 0){
  133. /*财务数据上抛*/
  134. CallableStatement cstm = null;
  135. try
  136. {
  137. cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL");
  138. cstm.setString(1, slabNo[0]);
  139. cstm.setString(2, activityId);
  140. cstm.setString(3, Exeejob);
  141. cstm.setString(4, AppId);
  142. cstm.setString(5, "3qrlzbp003_new");
  143. cstm.registerOutParameter(6, java.sql.Types.VARCHAR);
  144. cstm.execute();
  145. String err = cstm.getString(6);
  146. if(!org.apache.commons.lang.StringUtils.isBlank(cstm.getString(6))){
  147. context.put("MESSAGES","数据上传失败:" + err);
  148. return PosBizControlConstants.SUCCESS;
  149. }
  150. }catch(Exception ex){
  151. ex.printStackTrace();
  152. context.put("MESSAGES","Exception:" + ex.getMessage());
  153. return PosBizControlConstants.SUCCESS;
  154. }
  155. finally{
  156. if(cstm != null){
  157. try{
  158. cstm.close();
  159. }catch(Exception e)
  160. {
  161. e.printStackTrace();
  162. }
  163. }
  164. }
  165. }
  166. //将数据发给1580系统
  167. //Z跺位回台车发送O
  168. if( fromAddr[0].substring(0,1).equals("Z") && toAddr[0].substring(0,1).equals("T")){
  169. Exeejob = "D";
  170. }
  171. param = new PosParameter();
  172. param.setWhereClauseParameter(0, Exeejob.equals("N")?"I":"O");//SLAB_NO
  173. param.setWhereClauseParameter(1, hmList.toString());
  174. param.setWhereClauseParameter(2, new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
  175. dao.update("UIG04COMM_MEWM02.insert", param);
  176. context.put("MESSAGES", " 移送成功! ");
  177. return PosBizControlConstants.SUCCESS;
  178. }
  179. }