2a09793852a9eb0c6c000514319d99ae6aec9f56.svn-base 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. package UIJ.UIJ03;
  2. import java.sql.CallableStatement;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.Map;
  10. import java.sql.Connection;
  11. import java.text.SimpleDateFormat;
  12. import org.apache.commons.lang.StringUtils;
  13. import UIB.COM.ProduceFactory;
  14. import UIB.COM.XmlSqlParsersFactory;
  15. import CoreFS.SA01.CoreIComponent;
  16. import CoreFS.SA06.CoreReturnObject;
  17. /**
  18. * 发货实绩录入与发行装车明细
  19. *
  20. * @author siy
  21. * @date 2010-9-10
  22. */
  23. public class UIJ030070 extends CoreIComponent {
  24. /**
  25. * 查询发货实绩信息
  26. *
  27. * @param dlivTp
  28. * @param curProgCd
  29. * @param transCarNo
  30. * @param dlivDirNo
  31. * @param shipProgCd
  32. * @param tranfDTime
  33. * @return
  34. * @throws SQLException
  35. */
  36. public CoreReturnObject queryShippingResult(
  37. String dlivDirNo,String tranfDTime,
  38. String shipProgCd ) throws SQLException {
  39. CoreReturnObject cro = new CoreReturnObject();
  40. String sql = XmlSqlParsersFactory.getSql("UIJ030070_01.SELECT");
  41. cro = this.getDao("KgDao").ExcuteQuery(
  42. sql,
  43. new Object[] { dlivDirNo, tranfDTime,
  44. shipProgCd });
  45. System.out.println(cro);
  46. return cro;
  47. }
  48. /**
  49. * 生成发货实绩
  50. *
  51. * @param trnfShift
  52. * @param trnfGroup
  53. * @param trnfRegId
  54. * @param trnfDTime
  55. * @param czdWgt
  56. * @param params
  57. * @return
  58. * @throws SQLException
  59. */
  60. public CoreReturnObject saveYtgResult(String trnfShift,
  61. String trnfGroup, String trnfRegId, String trnfDTime,
  62. String czdWgt, ArrayList<String[]> params) throws SQLException {
  63. CoreReturnObject cro = new CoreReturnObject();
  64. Connection conn = null;
  65. Statement sta = null;
  66. ArrayList<String> list=new ArrayList<String>();
  67. ArrayList<String[]> params1 = new ArrayList<String[]>();
  68. // Map result = this.getDao("KgDao").CoreBeginTranscation();
  69. try {
  70. conn = this.getDao("KgDao").getConnection();
  71. UIJ030060 uij030060 = new UIJ030060();
  72. conn.setAutoCommit(false);
  73. //数据发送到优特钢
  74. for (int i = 0; i < params.size(); i++) {
  75. String[] param = params.get(i);
  76. if("".equals(param[32])) {
  77. params1.add(params.get(i));
  78. }
  79. }
  80. uij030060.saveYouTeTblData(params);
  81. updateCoilYtg(conn,trnfShift, trnfGroup, trnfRegId, trnfDTime,params);
  82. conn.commit();
  83. } catch (Exception ex) {
  84. if(conn != null){
  85. conn.rollback();
  86. }
  87. cro.setV_errCode(-1);
  88. cro.setV_errMsg("发运明细生成失败!");
  89. } finally{
  90. if(conn != null && !conn.isClosed()){
  91. conn.close();
  92. }
  93. }
  94. return cro;
  95. }
  96. public CoreReturnObject hasCoilINTBJ(String coil)
  97. throws SQLException {
  98. CoreReturnObject cro = new CoreReturnObject();
  99. int count = 0;
  100. String clfName = coil;
  101. StringBuffer sqlBuffer = new StringBuffer();
  102. sqlBuffer.append("select count(coil_no) count from tbj02_coil_comm \n");
  103. sqlBuffer.append(" where OLD_SAMPL_NO = '");
  104. sqlBuffer.append(clfName);
  105. sqlBuffer.append("'\n");
  106. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(
  107. sqlBuffer.toString());
  108. if (rs.next()) {
  109. count = rs.getInt("COUNT");
  110. }
  111. //20131014系统连接异常优化
  112. this.getDao("KgDao").closeRs(rs);
  113. cro.setResult(count);
  114. return cro;
  115. }
  116. /**
  117. * 修改钢卷发运状态
  118. *
  119. * @param trnfShift
  120. * @param trnfGroup
  121. * @param trnfRegId
  122. * @param trnfDTime
  123. * @param params
  124. * @return
  125. * @throws SQLException
  126. */
  127. private void updateCoilProgStatus(Connection conn,String trnfShift, String trnfGroup,
  128. String trnfRegId, String trnfDTime, ArrayList<String[]> params)
  129. throws SQLException {
  130. PreparedStatement pSta = null;
  131. PreparedStatement pSta1 = null;
  132. String trnftime ;
  133. Date d = new Date();
  134. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
  135. trnftime = sdf.format(d);
  136. for (int i = 0; i < params.size(); i++) {
  137. String[] param = params.get(i);
  138. // 更新钢卷公共表发货状态
  139. String sql1 = XmlSqlParsersFactory.getSql("UIJ030030_01.UPDATE");
  140. pSta = conn.prepareStatement(sql1);
  141. pSta.setString(1, param[25]);
  142. pSta.setString(2, param[26]);
  143. pSta.setString(3, param[27]);
  144. pSta.setString(4, param[19]);
  145. pSta.setString(5, param[20]);
  146. pSta.setString(6, param[21]);
  147. pSta.setString(7, param[2]);
  148. pSta.setString(8, trnfShift);
  149. pSta.setString(9, trnfGroup);
  150. pSta.setString(10, trnfRegId);
  151. pSta.setString(11, trnfDTime);
  152. // pSta.setString(12, trnftime);
  153. pSta.setString(12, param[10]);
  154. pSta.executeUpdate();
  155. pSta.close();
  156. //保持同一车号下面操作时间一致 20190411 wl
  157. String sql3 = XmlSqlParsersFactory.getSql("UIJ030030_time.UPDATE");
  158. pSta1 = conn.prepareStatement(sql3);
  159. pSta1.setString(1, trnftime);
  160. pSta1.setString(2, param[1]);
  161. pSta1.executeUpdate();
  162. //conn.commit();
  163. pSta1.close();
  164. // this.getDao("KgDao").ExcuteNonQuery(
  165. // sql1,
  166. // new Object[] { param[25], param[26], param[27], param[19],
  167. // param[20], param[21], param[2], trnfShift,
  168. // trnfGroup, trnfRegId, trnfDTime, param[10] });
  169. // 更新发运表车辆号
  170. String sql2 = XmlSqlParsersFactory.getSql("UIJ030030_02.UPDATE");
  171. pSta = conn.prepareStatement(sql2);
  172. pSta.setString(1, param[2]);
  173. pSta.setString(2, param[1]);
  174. pSta.executeUpdate();
  175. pSta.close();
  176. // this.getDao("KgDao").ExcuteNonQuery(sql2,
  177. // new Object[] { param[2], param[1] });
  178. }
  179. }
  180. private void updateCoilYtg(Connection conn,String trnfShift, String trnfGroup,
  181. String trnfRegId, String trnfDTime, ArrayList<String[]> params)
  182. throws SQLException {
  183. PreparedStatement pSta = null;
  184. PreparedStatement pSta1 = null;
  185. String trnftime ;
  186. Date d = new Date();
  187. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
  188. trnftime = sdf.format(d);
  189. for (int i = 0; i < params.size(); i++) {
  190. String[] param = params.get(i);
  191. // 更新钢卷公共表发货状态
  192. String sql1 = XmlSqlParsersFactory.getSql("UIJ030070_01.UPDATE");
  193. pSta = conn.prepareStatement(sql1);
  194. pSta.setString(1, trnfShift);
  195. pSta.setString(2, trnfGroup);
  196. pSta.setString(3, trnfRegId);
  197. pSta.setString(4, trnfDTime);
  198. pSta.setString(5, param[10]);
  199. pSta.executeUpdate();
  200. pSta.close();
  201. }
  202. }
  203. private void saveCoilIni(Connection conn,String trnfShift, String trnfGroup,
  204. String trnfRegId, String trnfDTime, ArrayList<String[]> params)
  205. throws SQLException {
  206. PreparedStatement pSta = null;
  207. PreparedStatement pSta1 = null;
  208. String trnftime ;
  209. Date d = new Date();
  210. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
  211. trnftime = sdf.format(d);
  212. for (int i = 0; i < params.size(); i++) {
  213. String[] param = params.get(i);
  214. // 更新钢卷公共表发货状态
  215. String sql1 = XmlSqlParsersFactory.getSql("UIJ030070_02.UPDATE");
  216. pSta = conn.prepareStatement(sql1);
  217. pSta.setString(1, param[10]);
  218. pSta.executeUpdate();
  219. pSta.close();
  220. }
  221. }
  222. public CoreReturnObject saveCoilIn(String trnfShift,
  223. String trnfGroup, String trnfRegId, String trnfDTime,
  224. ArrayList<String[]> params) throws SQLException {
  225. CoreReturnObject cro = new CoreReturnObject();
  226. Connection conn = null;
  227. Statement sta = null;
  228. ArrayList<String> list=new ArrayList<String>();
  229. ArrayList<String[]> params1 = new ArrayList<String[]>();
  230. // Map result = this.getDao("KgDao").CoreBeginTranscation();
  231. try {
  232. conn = this.getDao("KgDao").getConnection();
  233. conn.setAutoCommit(false);
  234. saveCoilIni(conn,trnfShift, trnfGroup, trnfRegId, trnfDTime,params);
  235. conn.commit();
  236. } catch (Exception ex) {
  237. if(conn != null){
  238. conn.rollback();
  239. }
  240. cro.setV_errCode(-1);
  241. cro.setV_errMsg("接收优特钢回库失败!");
  242. } finally{
  243. if(conn != null && !conn.isClosed()){
  244. conn.close();
  245. }
  246. }
  247. return cro;
  248. }
  249. /**
  250. * 修改钢卷表发运状态及发运相关信息
  251. *
  252. * @param czdWgt
  253. * @param params
  254. * @throws SQLException
  255. */
  256. private void updateShipProgStatus(Connection conn,String czdWgt,ArrayList<String[]> params)
  257. throws SQLException {
  258. PreparedStatement pSta = null;
  259. Statement sta = null;
  260. for (int i = 0; i < params.size(); i++) {
  261. String[] param = params.get(i);
  262. // 更新钢卷公共表发运状态及发运相关信息
  263. String sql1 = XmlSqlParsersFactory.getSql("UIJ030030_03.UPDATE");
  264. pSta = conn.prepareStatement(sql1);
  265. pSta.setString(1, param[17]);
  266. pSta.setString(2, param[2]);
  267. pSta.setString(3, czdWgt);
  268. pSta.setString(4, param[10]);
  269. pSta.executeUpdate();
  270. pSta.close();
  271. }
  272. for (int i = 0; i < params.size(); i++) {
  273. String[] param = params.get(i);
  274. // 查询钢卷公共表中SHIP_PROG_CD状态,看是否全部改变
  275. boolean flag = true;
  276. String sql2 = "select a.SHIP_PROG_CD from C_TBL02_COIL_COMM a where a.ship_dirno = '"
  277. + param[0] + "' ";
  278. sta = conn.createStatement();
  279. ResultSet rs = sta.executeQuery(sql2);
  280. // ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql2);
  281. while (rs.next()) {
  282. String shipProgCd = rs.getString("SHIP_PROG_CD");
  283. //&& !"09".equals(shipProgCd)
  284. if (!"07".equals(shipProgCd) && !"08".equals(shipProgCd)
  285. ) {
  286. flag = false;
  287. }
  288. }
  289. rs.close();
  290. sta.close();
  291. //20131012
  292. // this.getDao("KgDao").closeRs(rs);
  293. // 判断同一发货指示下的钢卷是否全部保存,如果没有的话不能改变发货指示的状态
  294. if (flag) {
  295. String sql3 = XmlSqlParsersFactory.getSql("UIJ030030_04.UPDATE");
  296. pSta = conn.prepareStatement(sql3);
  297. pSta.setString(1, param[17]);
  298. pSta.setString(2, param[0]);
  299. pSta.executeUpdate();
  300. pSta.close();
  301. // this.getDao("KgDao").ExcuteNonQuery(sql3,
  302. // new Object[] { param[17], param[0] });
  303. }
  304. }
  305. }
  306. /**
  307. * 保存发货明细状态的同时把钢卷数据保存到货运中国中间表去
  308. * @param params
  309. public void saveCargocnData(ArrayList<String[]> params,String czdWgt,String trnfDTime,ArrayList<String> list) {
  310. try {
  311. for (int i = 0; i < params.size(); i++) {
  312. String[] param = params.get(i);
  313. String sql3 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.select");
  314. String flat="1";
  315. ArrayList coilList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sql3,new Object[]{param[31]});
  316. //若表中存在该钢卷则删除
  317. if(null != coilList && 0 != coilList.size()){
  318. String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.delete");
  319. this.getDao("KgDao").ExcuteNonQuery(sql4, new Object[]{param[31]});
  320. flat="0";
  321. }
  322. String sql2 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.insert");
  323. Object[] param2 = new Object[25];
  324. param2[0] = param[10]; //真实钢卷号
  325. param2[1] = param[1]; //发运指示号
  326. param2[2] = param[18]; //牌号
  327. param2[3] = param[2]; //车牌号
  328. param2[4] = param[12]; //重量
  329. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  330. // String trnFTime = param[16];
  331. // if(StringUtils.isEmpty(trnFTime) || "-".equals(trnFTime))
  332. // trnFTime = sdf.format(Calendar.getInstance().getTime());
  333. param2[5] = trnfDTime; //发货时间
  334. param2[6] = param[33]; //收货单位
  335. param2[7] = param[34]; //到站
  336. param2[8] = param[32]; //合同单位
  337. String SHIP_COMP = param[35];
  338. if(StringUtils.isEmpty(SHIP_COMP))
  339. SHIP_COMP = param[24];
  340. param2[9] = SHIP_COMP; //运输公司
  341. param2[10] = param[36]; //产品名称
  342. param2[11] = "新余市"; //发货城市
  343. param2[12] = "冷轧厂"; //发货地点
  344. param2[13] = 1; //订单类型
  345. //通过到站地点从产销数据库查收货城市、收货人、电话
  346. String receiveCity = param[34];
  347. String dlivno = param[1];
  348. // String sql5 = "SELECT CX.UNLOADDOCK,CX.SHR,CX.SHRDH FROM SEL_STATIONINFO@XGCX CX WHERE CX.STATIONNAME LIKE '"
  349. // + receiveCity + "%' ";
  350. String sql5="select a.UNLOADDOCK, a.SHR, a.SHRDH from sel_stationinfo a where a.STATIONCODE = (select DEST_PCD from tbj01_dliv_dir b where b.DLIV_DIRNO='"+dlivno+"' and rownum = 1)";
  351. String receiveNM = "";
  352. String receivePhone = "";
  353. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql5);
  354. if (rs.next()) {
  355. receiveNM = rs.getString("SHR"); //收货人
  356. receivePhone = rs.getString("SHRDH"); //收货人电话
  357. if(StringUtils.isEmpty(receiveNM))
  358. receiveNM="";
  359. if(StringUtils.isEmpty(receivePhone))
  360. receivePhone="";
  361. if(!StringUtils.isEmpty(rs.getString("UNLOADDOCK")))
  362. receiveCity = rs.getString("UNLOADDOCK"); //收货城市
  363. }
  364. this.getDao("KgDao").closeRs(rs);
  365. param2[14] = receiveCity; //收货城市
  366. param2[15] = receiveNM; //收货联系人
  367. param2[16] = receivePhone; //收货联系人电话
  368. param2[17] = "6"; //未发送状态
  369. param2[18] = "LZMES_UIJ030030"; //程序id
  370. param2[19] = param[28]; //操作人
  371. param2[20]= param[29]; // 运输方式
  372. param2[21]= "A"; // 修改标示
  373. param2[22]= param[22]; // 合同号
  374. String sql4 = XmlSqlParsersFactory.getSql("UIJ030030_cargocn.dlivselect");
  375. ArrayList dlivList = (ArrayList) this.getDao("KgDao").ExcuteQueryReturnList(sql4,new Object[]{param[1]});
  376. //若表中存在该钢卷则删除
  377. if(null != dlivList && 0 != dlivList.size())
  378. {
  379. param2[23]="0";
  380. }
  381. else
  382. {
  383. param2[23]= czdWgt; // 草支垫扣重
  384. }
  385. param2[24]= param[37]; // 包装重量
  386. this.getDao("KgDao").ExcuteNonQuery(sql2, param2);
  387. if("0".equals(flat)){
  388. String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_01.update");
  389. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{param2[1]});
  390. }
  391. }
  392. if(!list.isEmpty())
  393. {
  394. for (int i = 0; i < list.size(); i++) {
  395. String sql = XmlSqlParsersFactory.getSql("UIJ030030_cargocn_02.update");
  396. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{list.get(i)});
  397. }
  398. }
  399. } catch (Exception e) {
  400. e.printStackTrace();
  401. }
  402. }
  403. */
  404. public void saveCargocnData(Connection conn,ArrayList<String[]> params,String czdWgt,String trnfDTime,ArrayList<String> list) {
  405. try {
  406. for (int i = 0; i < params.size(); i++) {
  407. String[] param = params.get(i);
  408. Double wgt=Double.parseDouble(param[12]);
  409. String sql = XmlSqlParsersFactory.getSql("UIJ030030_12.CALL");
  410. CallableStatement cstm = conn.prepareCall(sql);
  411. cstm.setString(1, "1");//标志
  412. cstm.setString(2, param[10]);
  413. cstm.setString(3, param[1]);
  414. cstm.setString(4, param[18]);
  415. cstm.setString(5, param[2]);
  416. cstm.setString(6, wgt.toString());
  417. cstm.setString(7, trnfDTime);
  418. cstm.setString(8, czdWgt);
  419. cstm.setString(9, param[37]);
  420. cstm.setString(10, "C");
  421. cstm.setString(11, param[28]);
  422. cstm.execute();
  423. cstm.close();
  424. }
  425. } catch (Exception e) {
  426. e.printStackTrace();
  427. }
  428. }
  429. /**
  430. * 打印发货明细后修改相关状态
  431. *
  432. * @param trnfShift
  433. * @param trnfGroup
  434. * @param trnfRegId
  435. * @param trnfDTime
  436. * @param czdWgt
  437. * @param params
  438. * @return
  439. * @throws SQLException
  440. */
  441. public CoreReturnObject printShippingResult(String trnfShift,
  442. String trnfGroup, String trnfRegId, String trnfDTime,
  443. String czdWgt, ArrayList<String[]> params) throws SQLException {
  444. CoreReturnObject cro = new CoreReturnObject();
  445. // Map result = this.getDao("KgDao").CoreBeginTranscation();
  446. Connection conn = null;
  447. Statement sta = null;
  448. ArrayList<String> list=new ArrayList<String>();
  449. //优特钢数据集合
  450. ArrayList<String[]> params1 = new ArrayList<String[]>();
  451. double sumCzdWgt = 0;
  452. int a=0;
  453. if(params != null){
  454. sumCzdWgt = params.size()*25;//草支垫重量修改为每卷25KG
  455. }
  456. try {
  457. conn = this.getDao("KgDao").getConnection();
  458. conn.setAutoCommit(false);
  459. updateInvoiceInfoOfDelivery(conn,params);
  460. UIJ030060 uij030060 = new UIJ030060();
  461. for (int i = 0; i < params.size(); i++) {
  462. String[] param = params.get(i);
  463. String coilno = param[10];
  464. String sql2 = "select * from TBB01_CARGOCN_DATA a where COIL_NO = '"
  465. + param[10] + "' ";
  466. sta = conn.createStatement();
  467. if("新余新钢优特钢带有限公司".equals(param[32])) {
  468. params1.add(params.get(i));
  469. }
  470. sta.close();
  471. //调用存货异动点存储过程
  472. ProduceFactory PD= new ProduceFactory();
  473. PD.ErpDataCover("CCOIL",coilno,"11AC","1","O",trnfRegId,"酸轧综判");
  474. PD.ErpDataCover("CCOIL",coilno,"69A","1","O",trnfRegId,"酸轧发货");
  475. }
  476. uij030060.saveYouTeTblData(params1);
  477. saveCargocnData(conn,params,czdWgt,trnfDTime,list);
  478. // 修改钢卷表发运状态及发运相关信息 、发运表发运状态
  479. updateShipProgStatus(conn,String.valueOf(sumCzdWgt), params);
  480. updateShipProgStatusOfPrint(conn,String.valueOf(sumCzdWgt), params);
  481. addshipdetail(conn,String.valueOf(sumCzdWgt),params);
  482. addzycoil(conn,params);
  483. conn.commit();
  484. } catch (Exception ex) {
  485. if(conn != null){
  486. conn.rollback();
  487. }
  488. cro.setV_errCode(-2);
  489. cro.setV_errMsg("发运明细打印失败!");
  490. ex.printStackTrace();
  491. } finally{
  492. if(conn != null && !conn.isClosed()){
  493. conn.close();
  494. }
  495. }
  496. return cro;
  497. }
  498. private void addshipdetail(Connection conn,String czdWgt,ArrayList<String[]> params)
  499. throws SQLException {
  500. //boolean flag = true;
  501. for (int i = 0; i < params.size(); i++) {
  502. String[] param = params.get(i);
  503. String rtMsg = "";
  504. Double wgt=Double.parseDouble(param[12])/1000;
  505. String sql = XmlSqlParsersFactory.getSql("UIJ030030_09.CALL");
  506. CallableStatement cstm = conn.prepareCall(sql);
  507. cstm.setString(1, "1");//标志
  508. cstm.setString(2, param[1]);
  509. cstm.setString(3, param[2]);
  510. cstm.setString(4, param[18]);
  511. cstm.setString(5, param[30]);
  512. cstm.setString(6, "1");
  513. cstm.setString(7, wgt.toString());
  514. cstm.setString(8, czdWgt);
  515. cstm.setString(9, "4001LZ1");
  516. cstm.setString(10, "冷轧线");
  517. //cstm.registerOutParameter(10, java.sql.Types.VARCHAR);
  518. cstm.execute();
  519. //rtMsg = cstm.getString(10);
  520. cstm.close();
  521. // return rtMsg;
  522. }
  523. }
  524. private void addzycoil(Connection conn,ArrayList<String[]> params)
  525. throws SQLException {
  526. //boolean flag = true;
  527. for (int i = 0; i < params.size(); i++) {
  528. String[] param = params.get(i);
  529. String rtMsg = "";
  530. if(param[31].equals("224902")||param[31].equals("243187")){ //中冶新材客户代码
  531. String sql = XmlSqlParsersFactory.getSql("UIJ030030_10.CALL");
  532. CallableStatement cstm = conn.prepareCall(sql);
  533. cstm.setString(1, param[10]);//钢卷号
  534. cstm.execute();
  535. cstm.close();
  536. }
  537. }
  538. }
  539. /**
  540. * 修改车辆号
  541. * @param dlivDirNo
  542. * @param carNo
  543. * @return
  544. * @throws SQLException
  545. */
  546. public CoreReturnObject updateCarNo(String dlivDirNo,String carNo) throws SQLException {
  547. CoreReturnObject cro = new CoreReturnObject();
  548. Map result = this.getDao("KgDao").CoreBeginTranscation();
  549. String sql = XmlSqlParsersFactory.getSql("UIJ030030_07.UPDATE");
  550. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  551. sql = XmlSqlParsersFactory.getSql("UIJ030030_08.UPDATE");
  552. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  553. sql = XmlSqlParsersFactory.getSql("UIJ030030_09.UPDATE");
  554. this.getDao("KgDao").ExcuteNonQuery(sql, new Object[]{carNo,dlivDirNo});
  555. this.getDao("KgDao").CoreCommit(result);
  556. return cro;
  557. }
  558. private void updateInvoiceInfoOfDelivery(Connection conn,ArrayList<String[]> params)
  559. throws SQLException {
  560. PreparedStatement pSta = null;
  561. String sql = XmlSqlParsersFactory.getSql("UIJ030030_05.UPDATE");
  562. String dlivDirNo = "";
  563. for (int i = 0; i < params.size(); i++) {
  564. String[] param = params.get(i);
  565. if (i > 0) {
  566. if (dlivDirNo.equals(param[1])) {
  567. continue;
  568. } else {
  569. pSta = conn.prepareStatement(sql);
  570. pSta.setString(1, param[2]);
  571. pSta.setString(2, param[1]);
  572. pSta.executeUpdate();
  573. pSta.close();
  574. // this.getDao("KgDao").ExcuteNonQuery(sql,
  575. // new Object[] { param[2], param[1] });
  576. }
  577. } else {
  578. pSta = conn.prepareStatement(sql);
  579. pSta.setString(1, param[2]);
  580. pSta.setString(2, param[1]);
  581. pSta.executeUpdate();
  582. pSta.close();
  583. // this.getDao("KgDao").ExcuteNonQuery(sql,
  584. // new Object[] { param[2], param[1] });
  585. }
  586. dlivDirNo = param[1];
  587. }
  588. }
  589. /**
  590. * 修改钢卷表发运状态及发运相关信息
  591. *
  592. * @param czdWgt
  593. * @param params
  594. * @throws SQLException
  595. */
  596. private void updateShipProgStatusOfPrint(Connection conn,String czdWgt,
  597. ArrayList<String[]> params) throws SQLException {
  598. PreparedStatement pSta = null;
  599. Statement sta = null;
  600. for (int i = 0; i < params.size(); i++) {
  601. String[] param = params.get(i);
  602. // 更新钢卷公共表发运状态及发运相关信息
  603. String sql1 = XmlSqlParsersFactory.getSql("UIJ030030_06.UPDATE");
  604. pSta = conn.prepareStatement(sql1);
  605. pSta.setString(1, param[17]);
  606. pSta.setString(2, param[2]);
  607. pSta.setString(3, czdWgt);
  608. pSta.setString(4, param[10]);
  609. pSta.executeUpdate();
  610. pSta.close();
  611. // this.getDao("KgDao").ExcuteNonQuery(sql1,
  612. // new Object[] { param[17], param[2], czdWgt, param[10] });// ,
  613. }
  614. for (int i = 0; i < params.size(); i++) {
  615. String[] param = params.get(i);
  616. // 查询钢卷公共表中SHIP_PROG_CD状态,看是否全部改变
  617. boolean flag = true;
  618. String sql = "select a.SHIP_PROG_CD from C_TBL02_COIL_COMM a where a.ship_dirno = '"
  619. + param[0] + "' ";
  620. sta = conn.createStatement();
  621. ResultSet rs = sta.executeQuery(sql);
  622. // ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql);
  623. while (rs.next()) {
  624. String shipProgCd = rs.getString("SHIP_PROG_CD");
  625. //&& !"09".equals(shipProgCd)
  626. if (!"08".equals(shipProgCd)) {
  627. flag = false;
  628. }
  629. }
  630. rs.close();
  631. sta.close();
  632. //20131012
  633. // this.getDao("KgDao").closeRs(rs);
  634. // 判断同一发货指示下的钢卷是否全部保存,如果没有的话不能改变发货指示的状态
  635. if (flag) {
  636. String sql2 = XmlSqlParsersFactory.getSql("UIJ030030_04.UPDATE");
  637. pSta = conn.prepareStatement(sql2);
  638. pSta.setString(1, param[17]);
  639. pSta.setString(2, param[0]);
  640. pSta.executeUpdate();
  641. pSta.close();
  642. // this.getDao("KgDao").ExcuteNonQuery(sql2,
  643. // new Object[] { param[17], param[0] });
  644. }
  645. }
  646. }
  647. /**
  648. * 生成质保书
  649. *
  650. * @param dlivDirNo
  651. * @param ordNo
  652. * @param ordSeq
  653. * @return
  654. */
  655. private boolean createQltyBook(ArrayList<String[]> params)
  656. throws SQLException {
  657. boolean flag = true;
  658. for (int i = 0; i < params.size(); i++) {
  659. String[] param = params.get(i);
  660. CoreReturnObject cro = new CoreReturnObject();
  661. String proName = XmlSqlParsersFactory.getSql("UIJ030030_01.CALL");
  662. String QltyBookNo = "";
  663. String retMsg = "";
  664. String[] inparams = new String[] { param[0], param[22], param[23] };
  665. String[] outparams = new String[] { QltyBookNo, retMsg };
  666. cro = this.getDao("KgDao").ExcuteProcedure(proName, inparams,
  667. outparams);
  668. System.out.println("createQltyBook QltyBookNo = " + QltyBookNo
  669. + " retMsg = " + retMsg + " cro = "
  670. + cro.getResult());
  671. }
  672. return flag;
  673. }
  674. }