0ead5e3d45c66133941d9af157dd6574eaa92019.svn-base 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package xin.glue.ui.J.J01;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.PrintStream;
  4. import java.sql.Connection;
  5. import java.sql.Statement;
  6. import java.text.SimpleDateFormat;
  7. import java.util.ArrayList;
  8. import java.util.Calendar;
  9. import org.apache.commons.lang.StringUtils;
  10. import com.posdata.glue.biz.activity.PosActivity;
  11. import com.posdata.glue.biz.constants.PosBizControlConstants;
  12. import com.posdata.glue.context.PosContext;
  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 FJHModifyShipProgStatusOfCoils extends PosActivity {
  17. public String runActivity(PosContext context) {
  18. //UPDATE TBH02_COIL_COMM
  19. String[] pShipProgCd = (String[]) context.get("SHIP_PROG_CD" ); //SET SHIP_PROG_CD = :1
  20. String[] pCoilNo = (String[]) context.get("COIL_NO" ); //WHERE COIL_NO = :2
  21. // 车辆号
  22. String[] TRANS_CAR_NO = (String[]) context.get("TRANS_CAR_NO" );
  23. String[] COIL_WGT = (String[]) context.get("COIL_WGT" );
  24. //草支垫重量
  25. String[] CZD = (String[]) context.get("CZD");
  26. //钢卷实际规格厚度
  27. String[] COIL_THK = (String[]) context.get("COIL_THK" );
  28. // 运输指示号
  29. String[] pDlivDirNo = (String[]) context.get("DLIV_DIRNO");
  30. // 钢种牌号
  31. String[] SPEC_STL_GRD = (String[]) context.get("SPEC_STL_GRD");
  32. // 发货时间
  33. String[] TRNF_DTIME = (String[]) context.get("TRNF_DTIME");
  34. // 收货单位
  35. String[] ORD_NM = (String[]) context.get("ORD_NM");
  36. // 到站点
  37. String[] DEST_PCD_DESC = (String[]) context.get("DEST_PCD_DESC");
  38. // 合同单位
  39. String[] CUST_NM = (String[]) context.get("CUST_NM");
  40. // 运输公司
  41. String[] SHIP_COMP_CD = (String[]) context.get("SHIP_COMP_CD");
  42. // 运输公司
  43. String[] SHIP_COMP_NM = (String[]) context.get("SHIP_COMP_NM");
  44. // 钢卷号
  45. String[] OLD_SAMPL_NO = (String[]) context.get("OLD_SAMPL_NO");
  46. // 产品名称
  47. String[] SM_CFNM = (String[]) context.get("SM_CFNM");
  48. String[] ORD_CD = (String[]) context.get("ORD_CD");
  49. String[] DLIV_TP = (String[]) context.get("DlivType");
  50. String[] ORD_NO = (String[]) context.get("ORD_NO");
  51. // 登录人
  52. String[] REG_ID = (String[]) context.get("REG_ID");
  53. //保存发货明细状态的同时把钢卷数据保存到货运中国中间表去
  54. PosParameter param2 = null;
  55. PosParameter param5 = null;
  56. PosParameter param4 = null;
  57. Connection conn = null;
  58. Statement sta = null;
  59. PosRow row;
  60. ArrayList<String> list=new ArrayList<String>();
  61. int iCnt = 0;
  62. if( OLD_SAMPL_NO != null ) {
  63. iCnt = OLD_SAMPL_NO.length;
  64. }
  65. try {
  66. for( int i = 0; i < iCnt; i++ ) {
  67. String dlno=pDlivDirNo[i];
  68. param4 = new PosParameter();
  69. param4.setWhereClauseParameter(0, pDlivDirNo[i]);
  70. PosRowSet rows2 = getDao("mesdao").find("UIJ010060_cargocn_01.select", param4);
  71. while (rows2.hasNext()) {
  72. row = rows2.next();
  73. dlno = (String)row.getAttribute("COIL_NO");
  74. if(i==0)
  75. {
  76. PosParameter param = new PosParameter();
  77. param.setWhereClauseParameter(0, pDlivDirNo[i]);
  78. getDao("mesdao").update("UIJ010060_cargocn_02.update", param);
  79. }
  80. list.add(i, dlno);
  81. param2 = new PosParameter();
  82. param2.setWhereClauseParameter(0, dlno);
  83. this.getDao("mesdao").delete("UIJ010060_cargocn.delete", param2);
  84. }
  85. }
  86. for( int i = 0; i < iCnt; i++ ) {
  87. logger.logError("HUOYUN INSERT START COILNO="
  88. + OLD_SAMPL_NO[i]);
  89. param2 = new PosParameter();
  90. String flat = "1";
  91. param2.setWhereClauseParameter(0, OLD_SAMPL_NO[i]);
  92. PosRowSet rows2 = getDao("mesdao").find("UIJ010060_cargocn.select", param2);
  93. //若表中存在该钢卷则删除
  94. if(rows2.hasNext()){
  95. getDao("mesdao").delete("UIJ010060_cargocn.delete", param2);
  96. flat = "0";
  97. }
  98. param2 = new PosParameter();
  99. param2.setValueParamter(0, OLD_SAMPL_NO[i]); //钢卷号
  100. param2.setValueParamter(1, pDlivDirNo[i]); //发运指示号
  101. param2.setValueParamter(2, SPEC_STL_GRD[i]); //牌号
  102. param2.setValueParamter(3, TRANS_CAR_NO[i]); //车牌号
  103. param2.setValueParamter(4, COIL_WGT[i]); //重量
  104. // SimpleDateFormat formatter2=new SimpleDateFormat("yyyyHHddHHmmss");
  105. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  106. String trnFTime = TRNF_DTIME[i];
  107. if(StringUtils.isEmpty(trnFTime) || "-".equals(trnFTime))
  108. trnFTime = sdf.format(Calendar.getInstance().getTime());
  109. param2.setValueParamter(5, trnFTime); //发货时间
  110. param2.setValueParamter(6, ORD_NM[i]); //收货单位
  111. param2.setValueParamter(7, DEST_PCD_DESC[i]); //到站
  112. param2.setValueParamter(8, CUST_NM[i]); //合同单位
  113. String SHIP_COMP = SHIP_COMP_NM[i];
  114. if(StringUtils.isEmpty(SHIP_COMP))
  115. SHIP_COMP = SHIP_COMP_CD[i];
  116. param2.setValueParamter(9, SHIP_COMP); //承运单位
  117. param2.setValueParamter(10, SM_CFNM[i]); //产品名称
  118. param2.setValueParamter(11, "新余市"); //发货城市
  119. param2.setValueParamter(12, "热卷厂"); //发货地点
  120. param2.setValueParamter(13, 1); //订单类型默认1
  121. //通过到站地点从产销数据库查收货城市、收货人、电话
  122. param5 = new PosParameter();
  123. param5.setWhereClauseParameter(0, pDlivDirNo[i]);
  124. String receiveCity = DEST_PCD_DESC[i];
  125. String receiveNM = "";
  126. String receivePhone = "";
  127. PosRowSet rows5 = getDao("mesdao").find("UIJ010060_cx.select", param5);
  128. if(rows5.hasNext()){
  129. PosRow row5 = rows5.next();
  130. Object receiveCityS = row5.getAttribute("UNLOADDOCK"); //产线系统的收货城市
  131. Object receiveNMS = row5.getAttribute("SHR"); //产线系统的收货人
  132. Object receivePhoneS = row5.getAttribute("SHRDH"); //产线系统的收货人电话
  133. if(null != receiveCityS)
  134. receiveCity = receiveCityS.toString();
  135. if(null != receiveNMS)
  136. receiveNM = receiveNMS.toString();
  137. if(null != receivePhoneS)
  138. receivePhone = receivePhoneS.toString();
  139. }
  140. param2.setValueParamter(14, receiveCity); //收货城市
  141. param2.setValueParamter(15, receiveNM); //收货联系人
  142. param2.setValueParamter(16, receivePhone); //收货联系人电话
  143. param2.setValueParamter(17, "6"); //未发送状态
  144. param2.setValueParamter(18, "xgmes3_UIJ010060"); //保存数据的系统和界面
  145. param2.setValueParamter(19, REG_ID[0]); // 操作人
  146. param2.setValueParamter(20, DLIV_TP[i]); // 运输方式
  147. param2.setValueParamter(21, "A"); // 修改标示
  148. param2.setValueParamter(22, ORD_NO[i]); // 合同号
  149. param2.setValueParamter(23, CZD[0]); // 扣重
  150. getDao("mesdao").insert("UIJ010060_cargocn.insert", param2);
  151. logger.logError("HUOYUN INSERT END COILNO="
  152. + OLD_SAMPL_NO[i]);
  153. //如果重复发送,更新状态
  154. if("0".equals(flat)){
  155. PosParameter param = new PosParameter();
  156. param.setWhereClauseParameter(0, pDlivDirNo[i]);
  157. getDao("mesdao").update("UIJ010060_cargocn_01.update", param);
  158. }
  159. }
  160. if(!list.isEmpty())
  161. {
  162. for (int i = 0; i < list.size(); i++) {
  163. PosParameter param = new PosParameter();
  164. param.setWhereClauseParameter(0, list.get(i));
  165. getDao("mesdao").update("UIJ010060_cargocn_03.update", param);
  166. // String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_01.update");
  167. // this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{list.get(i)});
  168. }
  169. }
  170. } catch (Exception e) {
  171. ByteArrayOutputStream baos = new ByteArrayOutputStream();
  172. e.printStackTrace(new PrintStream(baos));
  173. String exception = baos.toString();
  174. String errStr = "\n异常原因:" + exception;
  175. logger.logError("发运明细保存到货运中国中间表时出错 : " + errStr);
  176. //e.printStackTrace();
  177. }
  178. int Cnt = 0;
  179. if( pCoilNo != null ) {
  180. Cnt = pCoilNo.length;
  181. }
  182. logger.logInfo("iCnt = ["+ Cnt +"]");
  183. PosParameter param = null;
  184. for( int i = 0; i < Cnt; i++ ) {
  185. param = new PosParameter();
  186. param.setValueParamter( 0, "08" );
  187. param.setValueParamter( 1, TRANS_CAR_NO[i] );
  188. param.setValueParamter( 2, COIL_WGT[i] );
  189. param.setValueParamter( 3, CZD[0] );
  190. param.setValueParamter( 4, pCoilNo[i] );
  191. getDao("mesdao").update("UIJ010061.ModifyShipProgStatusOfCoils.Save", param);
  192. }
  193. return PosBizControlConstants.SUCCESS;
  194. }
  195. }