708a2d9a8cb46f461bd08e11e845abf5ad5ba239.svn-base 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package xin.glue.ui.J.J01;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.PrintStream;
  4. import java.sql.CallableStatement;
  5. import java.sql.Connection;
  6. import java.sql.ResultSet;
  7. import java.sql.Statement;
  8. import java.text.SimpleDateFormat;
  9. import java.util.ArrayList;
  10. import java.util.Calendar;
  11. import org.apache.commons.lang.StringUtils;
  12. import xin.glue.ui.common.ProduceFactory;
  13. import com.posdata.glue.biz.activity.PosActivity;
  14. import com.posdata.glue.biz.constants.PosBizControlConstants;
  15. import com.posdata.glue.context.PosContext;
  16. import com.posdata.glue.dao.vo.PosParameter;
  17. import com.posdata.glue.dao.vo.PosRow;
  18. import com.posdata.glue.dao.vo.PosRowSet;
  19. /**
  20. * 明细发送结束的同时将明细数据保存到货运中国、铁前数据库中去
  21. * @author KangMiao
  22. * @Date 2015-6-30 下午05:46:27
  23. *
  24. */
  25. public class SendOtherTableOfCoils extends PosActivity {
  26. public String runActivity(PosContext context) {
  27. //钢卷实际规格厚度
  28. String[] COIL_THK = (String[]) context.get("COIL_THK" );
  29. //车辆号加入
  30. String[] TRANS_CAR_NO = (String[]) context.get("TRANS_CAR_NO");
  31. // 运输指示号
  32. String[] pDlivDirNo = (String[]) context.get("DLIV_DIRNO");
  33. // 钢种牌号
  34. String[] SPEC_STL_GRD = (String[]) context.get("SPEC_STL_GRD");
  35. // 重量
  36. String[] COIL_WGT = (String[]) context.get("COIL_WGT");
  37. // 发货时间
  38. String[] TRNF_DTIME = (String[]) context.get("TRNF_DTIME");
  39. // 收货单位
  40. String[] ORD_NM = (String[]) context.get("ORD_NM");
  41. // 到站点
  42. String[] DEST_PCD_DESC = (String[]) context.get("DEST_PCD_DESC");
  43. // 合同单位
  44. String[] CUST_NM = (String[]) context.get("CUST_NM");
  45. // 运输公司
  46. String[] SHIP_COMP_CD = (String[]) context.get("SHIP_COMP_CD");
  47. // 运输公司
  48. String[] SHIP_COMP_NM = (String[]) context.get("SHIP_COMP_NM");
  49. // 钢卷号
  50. String[] OLD_SAMPL_NO = (String[]) context.get("OLD_SAMPL_NO");
  51. // 产品名称
  52. String[] SM_CFNM = (String[]) context.get("SM_CFNM");
  53. String[] ORD_CD = (String[]) context.get("ORD_CD");
  54. String[] DLIV_TP = (String[]) context.get("DlivType");
  55. String[] ORD_NO = (String[]) context.get("ORD_NO");
  56. String[] CZD = (String[]) context.get("CZD" );
  57. // 登录人
  58. String[] REG_ID = (String[]) context.get("REG_ID");
  59. //明细发送结束的同时将明细数据发送到铁前数据库中去;火车的不发预报
  60. //if(!DLIV_TP[0].equals("T"))
  61. //{
  62. saveXgcxTable(pDlivDirNo, TRANS_CAR_NO, SPEC_STL_GRD, COIL_THK, COIL_WGT,CZD);
  63. //}
  64. //明细发送到中冶新材
  65. SENDZYCOIL(OLD_SAMPL_NO,ORD_CD);
  66. //调用存货异动点存储过程
  67. SENDERP(OLD_SAMPL_NO,ORD_CD,REG_ID[0]);
  68. return PosBizControlConstants.SUCCESS;
  69. }
  70. /**
  71. * @description 明细发送结束的同时将明细数据保存到铁前数据库中去;
  72. * 调用存储过程KCH_StorageManagerX_K.SET_TQMX@xgcx('1',vLoadInfo(2),vLoadInfo(1),vSteel,vPly,vtmpCount,vtmpAddWeight,'4001HB1','厚板线');
  73. * @param 对应参数:操作模式(确认1,撤消3),pDlivDirNo运输指示号DLIV_DIRNO(预报号),TRANS_CAR_NO车号,SPEC_STL_GRD牌号,
  74. * COIL_THK钢卷实际规格(厚度),数量1,COIL_WGT钢卷实际重量(ACT_WGT),装车ID,装车产线 (默认4001RZ1 '热轧线' )
  75. * @author KangMiao
  76. * @Date 2015-6-30 下午05:46:27
  77. */
  78. public void saveXgcxTable(String[] pDlivDirNo,String[] TRANS_CAR_NO,String[] SPEC_STL_GRD,String[] COIL_THK,String[] COIL_WGT,String[] CZD) {
  79. int iCnt = 0;
  80. if (pDlivDirNo != null) {
  81. iCnt = pDlivDirNo.length;
  82. }
  83. CallableStatement cstm = null;
  84. for (int i = 0; i < iCnt; i++) {
  85. try {
  86. Double COIL_WGT_double = 0.0;
  87. if(COIL_WGT[i] != null) {
  88. COIL_WGT_double = Double.valueOf(COIL_WGT[i])/1000;
  89. }
  90. cstm = getDao("mesdao").getCallableStatement("UIJ010060_01.CALL");
  91. cstm.setString(1, "1");
  92. cstm.setString(2, pDlivDirNo[i]);
  93. cstm.setString(3, TRANS_CAR_NO[i]);
  94. cstm.setString(4, SPEC_STL_GRD[i]);
  95. cstm.setString(5, COIL_THK[i]);
  96. cstm.setString(6, "1");
  97. cstm.setString(7, COIL_WGT_double.toString());
  98. cstm.setString(8, CZD[0]);
  99. cstm.setString(9, "4001RZ1");
  100. cstm.setString(10, "热轧线");
  101. cstm.execute();
  102. logger.logInfo(pDlivDirNo[i] + "明细数据发送到铁前数据库成功执行UIJ010060_01.CALL-------------------");
  103. } catch (Exception ex) {
  104. //System.out.println(pDlivDirNo[i] + "明细数据发送到铁前数据库执行失败UIJ010060_01.CALL**********");
  105. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  106. ex.printStackTrace(new PrintStream(baos));
  107. String exception = baos.toString();
  108. String errStr = "\n异常原因:" + exception;
  109. logger.logInfo(pDlivDirNo[i] + "明细数据发送到铁前数据库执行失败UIJ010060_01.CALL;" + errStr);
  110. //ex.printStackTrace();
  111. }
  112. }
  113. if (cstm != null) {
  114. try {
  115. cstm.close();
  116. } catch (Exception e) {
  117. }
  118. }
  119. }
  120. public void SENDZYCOIL(String[] OLD_SAMPL_NO,String[] ORD_CD) {
  121. int iCnt = 0;
  122. if (OLD_SAMPL_NO != null) {
  123. iCnt = OLD_SAMPL_NO.length;
  124. }
  125. CallableStatement cstm = null;
  126. for (int i = 0; i < iCnt; i++) {
  127. try {
  128. String ordcd=ORD_CD[i];
  129. if("224902".equals(ordcd)||"243187".equals(ordcd)){
  130. cstm = getDao("mesdao").getCallableStatement("UIJ010060_02.CALL");
  131. cstm.setString(1, OLD_SAMPL_NO[i]);
  132. cstm.execute();
  133. }
  134. } catch (Exception ex) {
  135. ex.printStackTrace();
  136. System.out.println("明细数据发送到中冶接口表数据库执行失败UIJ010060_02.CALL**********");
  137. } finally {
  138. if (cstm != null)
  139. try {
  140. cstm.close();
  141. System.out.println("明细数据发送到中冶接口表数据库成功执行UIJ010060_02.CALL-------------------");
  142. } catch (Exception e) {
  143. e.printStackTrace();
  144. }
  145. }
  146. }
  147. }
  148. public void SENDERP(String[] OLD_SAMPL_NO,String[] ORD_CD,String REGID) {
  149. int iCnt = 0;
  150. if (OLD_SAMPL_NO != null) {
  151. iCnt = OLD_SAMPL_NO.length;
  152. }
  153. CallableStatement cstm = null;
  154. for (int i = 0; i < iCnt; i++) {
  155. try {
  156. //调用存货异动点存储过程
  157. ProduceFactory PD= new ProduceFactory();
  158. // PD.ErpDataCover("HCOIL",OLD_SAMPL_NO[i],"11AC","1","O",REGID,"热轧综判");//根据一体化要求,发货之前都为在制品 20220223
  159. PD.ErpDataCover("HCOIL",OLD_SAMPL_NO[i],"69A","1","O",REGID,"热轧发货");
  160. } catch (Exception ex) {
  161. ex.printStackTrace();
  162. System.out.println("明细数据发送到一体化失败*******");
  163. } finally {
  164. if (cstm != null)
  165. try {
  166. cstm.close();
  167. System.out.println("明细数据发送到一体化成功*------------------");
  168. } catch (Exception e) {
  169. e.printStackTrace();
  170. }
  171. }
  172. }
  173. }
  174. }