0f12cc3527f2c5d5065527d3afcd36dde9922f82.svn-base 20 KB

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