ef363ef8d7fc949a6d794e9a7cf2553dc61fbdd1.svn-base 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. package UIM.UIM02;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.sql.CallableStatement;
  6. import java.sql.Connection;
  7. import UIB.COM.XmlSqlParsersFactory;
  8. import CoreFS.SA01.CoreIComponent;
  9. import CoreFS.SA06.CoreReturnObject;
  10. /**
  11. * 重卷上料管理
  12. *
  13. * @author siy
  14. * @date 2011-8-2
  15. */
  16. public class UIM020050 extends CoreIComponent {
  17. /**
  18. * 查询重卷作业计划
  19. *
  20. * @return
  21. * @throws SQLException
  22. */
  23. public CoreReturnObject queryReelPlan(String coilno) throws SQLException {
  24. String sql = XmlSqlParsersFactory.getSql("UIM020050_01.SELECT");
  25. return this.getDao("KgDao").ExcuteQuery(sql,new Object[] {coilno});
  26. }
  27. public CoreReturnObject queryAddClassInf() throws SQLException {
  28. String sql = XmlSqlParsersFactory.getSql("UIM020050_02.SELECT");
  29. return this.getDao("KgDao").ExcuteQuery(sql);
  30. }
  31. public CoreReturnObject queryReelPltcmPlan() throws SQLException {
  32. String sql = XmlSqlParsersFactory.getSql("UIM020050_04.SELECT");
  33. return this.getDao("KgDao").ExcuteQuery(sql);
  34. }
  35. public CoreReturnObject queryPltcmAddClassInf() throws SQLException {
  36. String sql = XmlSqlParsersFactory.getSql("UIM020050_05.SELECT");
  37. return this.getDao("KgDao").ExcuteQuery(sql);
  38. }
  39. /**
  40. * 当前垛位上层是否存在钢卷
  41. *
  42. * @param yardAddrs
  43. * @return
  44. * @throws SQLException
  45. */
  46. public CoreReturnObject hasCoilOnYardAddr(String yardAddrs)
  47. throws SQLException {
  48. CoreReturnObject cro = new CoreReturnObject();
  49. int count = 0;
  50. // if (null != yardAddrs && yardAddrs.length() > 8) {
  51. // String clfName = yardAddrs.substring(0, 1);
  52. // String clfRow = yardAddrs.substring(2, 4);
  53. // String clfCol = yardAddrs.substring(6);
  54. // String clfFl = yardAddrs.substring(4, 5);
  55. //
  56. // String yard1 = clfName
  57. // + "-"
  58. // + clfCol
  59. // + String
  60. // .valueOf((char) ((int) (clfFl.toCharArray()[0]) + 1))
  61. // + "-" + (Integer.parseInt(clfRow, 10) - 1);
  62. // String yard2 = clfName
  63. // + "-"
  64. // + clfCol
  65. // + String
  66. // .valueOf((char) ((int) (clfFl.toCharArray()[0]) + 1))
  67. // + "-" + (Integer.parseInt(clfRow, 10));
  68. //
  69. // StringBuffer sqlBuffer = new StringBuffer();
  70. // sqlBuffer
  71. // .append("select count(coil_no) count from c_tbk08_coil_yard where clf_no = C_PKG_UIM.GET_FINALYARDNO_BYYARDFLAG(?) or clf_no = C_PKG_UIM.GET_FINALYARDNO_BYYARDFLAG(?)");
  72. //
  73. // ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(
  74. // sqlBuffer.toString(), new Object[] { yardAddrs });
  75. //
  76. // if (rs.next()) {
  77. // count = rs.getInt("COUNT");
  78. // }
  79. // }
  80. cro.setResult(count);
  81. return cro;
  82. }
  83. /**
  84. * 重卷上料
  85. *
  86. * @param coilNo
  87. * @param l_coilNo
  88. * @param millSeqCd
  89. * @param trnfReg
  90. * @param trnfShift
  91. * @param trnfGroup
  92. * @param trnfDTime
  93. * @return
  94. * @throws SQLException
  95. * @throws SQLException
  96. */
  97. public CoreReturnObject outStockByReel(String coilNo, String l_coilNo,
  98. String millSeqCd, String trnfReg, String trnfShift,
  99. String trnfGroup, String trnfDTime) throws SQLException// throws
  100. // SQLException
  101. {
  102. CoreReturnObject cro = new CoreReturnObject();
  103. Connection conn = null;
  104. PreparedStatement pSta1 = null;
  105. StringBuffer sqlBuffer = new StringBuffer();
  106. try {
  107. conn = this.getDao("KgDao").getConnection();
  108. conn.setAutoCommit(false);
  109. // 判断钢卷是否在轧制计划中
  110. String sql = "SELECT A.STATUS_CD FROM L_TBF03_SPEC_REEL A WHERE A.C_COIL_NO = '"
  111. + coilNo + "' AND A.STATUS_CD = 'A'\n";
  112. PreparedStatement pSta = conn.prepareStatement(sql);
  113. ResultSet rs = pSta.executeQuery();
  114. if (rs.next()) {
  115. // 修改钢卷公共表钢卷状态,清除垛位,生成出库记录
  116. String befProgCd = "";
  117. String befProgCdTime = "";
  118. String befProgCdPgm = "";
  119. String V_ACT_WGT = "";
  120. String ordNo = "", ordSeq = "";
  121. String curLoadLoc = "";
  122. String qSql = "select cur_prog_cd,cur_prog_cd_dtime,cur_prog_cd_pgm,ACT_WGT,ord_no,ord_seq,cur_load_loc from c_tbc02_coil_comm where OLD_SAMPL_NO = '"
  123. + coilNo + "'\n";
  124. pSta1 = conn.prepareStatement(qSql);
  125. ResultSet rs2 = pSta1.executeQuery();
  126. if (rs2.next()) {
  127. befProgCd = rs2.getString("CUR_PROG_CD");
  128. befProgCdTime = rs2.getString("CUR_PROG_CD_DTIME");
  129. befProgCdPgm = rs2.getString("CUR_PROG_CD_PGM");
  130. V_ACT_WGT = rs2.getString("ACT_WGT");
  131. ordNo = rs2.getString("ORD_NO");
  132. ordSeq = rs2.getString("ORD_SEQ");
  133. curLoadLoc = rs2.getString("CUR_LOAD_LOC");
  134. }
  135. rs2.close();
  136. pSta1.close();
  137. String sqlMove = "insert into c_tbk08_coil_move T(T.ROLL_SEQ,T.CUR_LOAD_LOC_F,T.CUR_LOAD_LOC_T,T.COIL_NO,T.REG_ID,T.REG_SHIFT,T.REG_GROUP,T.REG_DTIME,T.REG_USE_ID,T.REG_USE_DTIME,T.MOVE_TYPE)"
  138. + "VALUES((SELECT MAX(ROLL_SEQ)+1 ROLL_SEQ FROM C_TBK08_COIL_MOVE),?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'11')";
  139. pSta1 = conn.prepareStatement(sqlMove);
  140. pSta1.setString(1, curLoadLoc);
  141. pSta1.setString(2, "");
  142. pSta1.setString(3, coilNo);
  143. pSta1.setString(4, trnfReg);
  144. pSta1.setString(5, trnfShift);
  145. pSta1.setString(6, trnfGroup);
  146. pSta1.setString(7, trnfDTime);
  147. pSta1.setString(8, trnfReg);
  148. pSta1.executeUpdate();
  149. try{
  150. pSta1.close(); //添加了关闭pSta1
  151. } catch (Exception e) {
  152. }
  153. sqlBuffer = new StringBuffer();
  154. sqlBuffer
  155. .append("update c_tbc02_coil_comm set coil_stat = '3',cur_prog_cd = 'DBC'\n");// 取消状态位
  156. sqlBuffer
  157. .append(" ,cur_prog_cd_dtime = to_char(sysdate,'YYYYMMDDHH24MISS')\n");
  158. sqlBuffer.append(" ,cur_prog_cd_pgm = 'UIM020050'\n");
  159. sqlBuffer.append(" ,bef_prog_cd = ?\n");
  160. sqlBuffer.append(" ,bef_prog_cd_dtime = ?\n");
  161. sqlBuffer.append(" ,bef_prog_cd_pgm = ?\n");
  162. sqlBuffer.append(" ,cur_load_loc = ''\n");
  163. sqlBuffer.append(" ,trnf_reg = ?\n");
  164. sqlBuffer.append(" ,trnf_shift=?\n");
  165. sqlBuffer.append(" ,trnf_group=?\n");
  166. sqlBuffer
  167. .append(" ,trnf_use_time=to_char(sysdate,'YYYYMMDDHH24MISS')\n");
  168. sqlBuffer.append(" ,trnf_dtime=?\n");
  169. sqlBuffer.append(" where old_sampl_no = ?\n");
  170. pSta1 = conn.prepareStatement(sqlBuffer.toString());
  171. pSta1.setString(1, befProgCd);
  172. pSta1.setString(2, befProgCdTime);
  173. pSta1.setString(3, befProgCdPgm);
  174. pSta1.setString(4, trnfReg);
  175. pSta1.setString(5, trnfShift);
  176. pSta1.setString(6, trnfGroup);
  177. pSta1.setString(7, trnfDTime);
  178. pSta1.setString(8, coilNo);
  179. pSta1.executeUpdate();
  180. pSta1.close();
  181. // 修改重卷计划表计划状态
  182. sqlBuffer = new StringBuffer();
  183. sqlBuffer.append("update l_tbf03_spec_reel \n");
  184. sqlBuffer.append(" set \n");
  185. sqlBuffer.append(" STATUS_CD = 'B' \n");
  186. sqlBuffer.append(" where \n");
  187. sqlBuffer.append(" c_coil_no = ?\n");
  188. sqlBuffer.append(" and STATUS_CD = 'A'\n");
  189. pSta1 = conn.prepareStatement(sqlBuffer.toString());
  190. pSta1.setString(1, coilNo);
  191. pSta1.executeUpdate();
  192. pSta1.close();
  193. // 清除垛位表钢卷
  194. String sql1 = "select CLF_NO from c_tbk08_coil_yard where coil_no = '"
  195. + coilNo + "'\n";
  196. pSta1 = conn.prepareStatement(sql1);
  197. ResultSet rs3 = pSta1.executeQuery();
  198. if (rs3.next()) {
  199. String clfNo = rs3.getString("CLF_NO");
  200. sqlBuffer = new StringBuffer();
  201. sqlBuffer
  202. .append("update c_tbk08_coil_yard set coil_no = '' where CLF_NO = ?");
  203. PreparedStatement pSta3 = conn.prepareStatement(sqlBuffer
  204. .toString());
  205. pSta3.setString(1, clfNo);
  206. pSta3.executeUpdate();
  207. pSta3.close();
  208. }
  209. rs3.close();
  210. pSta1.close();
  211. // 冷轧卷信息 插入成品库C_TBC02_COIL_COMM
  212. String ssql = "SELECT A.R_COIL_NO FROM L_TBF03_SPEC_REEL A WHERE A.C_COIL_NO ='"
  213. + coilNo + "' and R_COIL_NO = '" + l_coilNo + "'";
  214. pSta1 = conn.prepareStatement(ssql);
  215. ResultSet rrs1 = pSta1.executeQuery();
  216. if (rrs1.next()) {
  217. String sqlQ = XmlSqlParsersFactory
  218. .getSql("UIM020050_03.SELECT");
  219. PreparedStatement pStaQ = conn.prepareStatement(sqlQ);
  220. pStaQ.setString(1, l_coilNo);
  221. ResultSet rsQ = pStaQ.executeQuery();
  222. if (!rsQ.next()) {
  223. // 插入钢卷成品表
  224. String sqlI = XmlSqlParsersFactory
  225. .getSql("UIM020050_01.INSERT");
  226. PreparedStatement pStaI = conn.prepareStatement(sqlI);
  227. pStaI.setString(1, coilNo);
  228. pStaI.executeUpdate();
  229. pStaI.close();
  230. } else {
  231. // 更新成品公共表
  232. }
  233. rsQ.close();
  234. pStaQ.close();
  235. // 删除钢卷成品_D表
  236. String sqlD = XmlSqlParsersFactory
  237. .getSql("UIM020050_01.DELETE");
  238. PreparedStatement pStaD = conn.prepareStatement(sqlD);
  239. pStaD.setString(1, l_coilNo);
  240. pStaD.executeUpdate();
  241. pStaD.close();
  242. // 插入钢卷成品_D表
  243. String sqlI = XmlSqlParsersFactory
  244. .getSql("UIM020050_02.INSERT");
  245. PreparedStatement pStaI = conn.prepareStatement(sqlI);
  246. pStaI.setString(1, coilNo);
  247. pStaI.executeUpdate();
  248. pStaI.close();
  249. // 订单标记
  250. this.SAVE_ORD_STS("", "", ordNo, ordSeq, befProgCd, "DBC",
  251. "CR", coilNo, V_ACT_WGT, "UIM020050", trnfReg);
  252. // 订单整理
  253. this.ORD_STS_MAIN("UIM020050", trnfReg);
  254. }
  255. rrs1.close();
  256. pSta1.close();
  257. conn.commit();
  258. } else {
  259. cro.setV_errCode(-1);
  260. cro.setV_errMsg("输入的钢卷号不在重卷计划中,请重新查询后再进行上料操作!");
  261. }
  262. rs.close();
  263. pSta.close();
  264. } catch (SQLException ex) {
  265. if (conn != null) {
  266. conn.rollback();
  267. }
  268. cro.setV_errCode(-1);
  269. cro.setV_errMsg("上料失败!");
  270. } finally {
  271. if (conn != null && !conn.isClosed()) {
  272. conn.close();
  273. }
  274. }
  275. return cro;
  276. }
  277. public CoreReturnObject outStockBypltcmReel(String coilNo, String l_coilNo,
  278. String millSeqCd, String trnfReg, String trnfShift,
  279. String trnfGroup, String trnfDTime) throws SQLException// throws
  280. // SQLException
  281. {
  282. CoreReturnObject cro = new CoreReturnObject();
  283. Connection conn = null;
  284. PreparedStatement pSta1 = null;
  285. StringBuffer sqlBuffer = new StringBuffer();
  286. try {
  287. conn = this.getDao("KgDao").getConnection();
  288. conn.setAutoCommit(false);
  289. // 判断钢卷是否在轧制计划中
  290. String sql = "SELECT A.STATUS_CD FROM L_TBF03_SPEC_REEL A WHERE A.C_COIL_NO = '"
  291. + coilNo + "' AND A.STATUS_CD = 'A'\n";
  292. PreparedStatement pSta = conn.prepareStatement(sql);
  293. ResultSet rs = pSta.executeQuery();
  294. if (rs.next()) {
  295. // 修改钢卷公共表钢卷状态,清除垛位,生成出库记录
  296. String befProgCd = "";
  297. String befProgCdTime = "";
  298. String befProgCdPgm = "";
  299. String V_ACT_WGT = "";
  300. String ordNo = "", ordSeq = "";
  301. String curLoadLoc = "";
  302. String qSql = "select cur_prog_cd,cur_prog_cd_dtime,cur_prog_cd_pgm,ACT_WGT,ord_no,ord_seq,cur_load_loc from c_tbl02_coil_comm where OLD_SAMPL_NO = '"
  303. + coilNo + "'\n";
  304. pSta1 = conn.prepareStatement(qSql);
  305. ResultSet rs2 = pSta1.executeQuery();
  306. if (rs2.next()) {
  307. befProgCd = rs2.getString("CUR_PROG_CD");
  308. befProgCdTime = rs2.getString("CUR_PROG_CD_DTIME");
  309. befProgCdPgm = rs2.getString("CUR_PROG_CD_PGM");
  310. V_ACT_WGT = rs2.getString("ACT_WGT");
  311. ordNo = rs2.getString("ORD_NO");
  312. ordSeq = rs2.getString("ORD_SEQ");
  313. curLoadLoc = rs2.getString("CUR_LOAD_LOC");
  314. }
  315. rs2.close();
  316. pSta1.close();
  317. String sqlMove = "insert into c_tbk08_coil_move T(T.ROLL_SEQ,T.CUR_LOAD_LOC_F,T.CUR_LOAD_LOC_T,T.COIL_NO,T.REG_ID,T.REG_SHIFT,T.REG_GROUP,T.REG_DTIME,T.REG_USE_ID,T.REG_USE_DTIME,T.MOVE_TYPE)"
  318. + "VALUES((SELECT MAX(ROLL_SEQ)+1 ROLL_SEQ FROM C_TBK08_COIL_MOVE),?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'11')";
  319. pSta1 = conn.prepareStatement(sqlMove);
  320. pSta1.setString(1, curLoadLoc);
  321. pSta1.setString(2, "");
  322. pSta1.setString(3, coilNo);
  323. pSta1.setString(4, trnfReg);
  324. pSta1.setString(5, trnfShift);
  325. pSta1.setString(6, trnfGroup);
  326. pSta1.setString(7, trnfDTime);
  327. pSta1.setString(8, trnfReg);
  328. pSta1.executeUpdate();
  329. try{
  330. pSta1.close(); //添加了关闭pSta1
  331. } catch (Exception e) {
  332. }
  333. sqlBuffer = new StringBuffer();
  334. sqlBuffer
  335. .append("update c_tbl02_coil_comm set coil_stat = '3',cur_prog_cd = 'DBC'\n");// 取消状态位
  336. sqlBuffer
  337. .append(" ,cur_prog_cd_dtime = to_char(sysdate,'YYYYMMDDHH24MISS')\n");
  338. sqlBuffer.append(" ,cur_prog_cd_pgm = 'UIM020050'\n");
  339. sqlBuffer.append(" ,bef_prog_cd = ?\n");
  340. sqlBuffer.append(" ,bef_prog_cd_dtime = ?\n");
  341. sqlBuffer.append(" ,bef_prog_cd_pgm = ?\n");
  342. sqlBuffer.append(" ,cur_load_loc = ''\n");
  343. sqlBuffer.append(" ,trnf_reg = ?\n");
  344. sqlBuffer.append(" ,trnf_shift=?\n");
  345. sqlBuffer.append(" ,trnf_group=?\n");
  346. sqlBuffer
  347. .append(" ,trnf_use_time=to_char(sysdate,'YYYYMMDDHH24MISS')\n");
  348. sqlBuffer.append(" ,trnf_dtime=?\n");
  349. sqlBuffer.append(" where old_sampl_no = ?\n");
  350. pSta1 = conn.prepareStatement(sqlBuffer.toString());
  351. pSta1.setString(1, befProgCd);
  352. pSta1.setString(2, befProgCdTime);
  353. pSta1.setString(3, befProgCdPgm);
  354. pSta1.setString(4, trnfReg);
  355. pSta1.setString(5, trnfShift);
  356. pSta1.setString(6, trnfGroup);
  357. pSta1.setString(7, trnfDTime);
  358. pSta1.setString(8, coilNo);
  359. pSta1.executeUpdate();
  360. pSta1.close();
  361. // 修改重卷计划表计划状态
  362. sqlBuffer = new StringBuffer();
  363. sqlBuffer.append("update l_tbf03_spec_reel \n");
  364. sqlBuffer.append(" set \n");
  365. sqlBuffer.append(" STATUS_CD = 'B' \n");
  366. sqlBuffer.append(" where \n");
  367. sqlBuffer.append(" c_coil_no = ?\n");
  368. sqlBuffer.append(" and STATUS_CD = 'A'\n");
  369. pSta1 = conn.prepareStatement(sqlBuffer.toString());
  370. pSta1.setString(1, coilNo);
  371. pSta1.executeUpdate();
  372. pSta1.close();
  373. // 清除垛位表钢卷
  374. String sql1 = "select CLF_NO from c_tbk08_coil_yard where coil_no = '"
  375. + coilNo + "'\n";
  376. pSta1 = conn.prepareStatement(sql1);
  377. ResultSet rs3 = pSta1.executeQuery();
  378. if (rs3.next()) {
  379. String clfNo = rs3.getString("CLF_NO");
  380. sqlBuffer = new StringBuffer();
  381. sqlBuffer
  382. .append("update c_tbk08_coil_yard set coil_no = '' where CLF_NO = ?");
  383. PreparedStatement pSta3 = conn.prepareStatement(sqlBuffer
  384. .toString());
  385. pSta3.setString(1, clfNo);
  386. pSta3.executeUpdate();
  387. pSta3.close();
  388. }
  389. rs3.close();
  390. pSta1.close();
  391. // 冷轧卷信息 插入成品库C_TBC02_COIL_COMM
  392. String ssql = "SELECT A.R_COIL_NO FROM L_TBF03_SPEC_REEL A WHERE A.C_COIL_NO ='"
  393. + coilNo + "' and R_COIL_NO = '" + l_coilNo + "'";
  394. pSta1 = conn.prepareStatement(ssql);
  395. ResultSet rrs1 = pSta1.executeQuery();
  396. if (rrs1.next()) {
  397. String sqlQ = XmlSqlParsersFactory
  398. .getSql("UIM020050_06.SELECT");
  399. PreparedStatement pStaQ = conn.prepareStatement(sqlQ);
  400. pStaQ.setString(1, l_coilNo);
  401. ResultSet rsQ = pStaQ.executeQuery();
  402. if (!rsQ.next()) {
  403. // 插入钢卷成品表
  404. String sqlI = XmlSqlParsersFactory
  405. .getSql("UIM020050_03.INSERT");
  406. PreparedStatement pStaI = conn.prepareStatement(sqlI);
  407. pStaI.setString(1, coilNo);
  408. pStaI.executeUpdate();
  409. pStaI.close();
  410. } else {
  411. // 更新成品公共表
  412. }
  413. rsQ.close();
  414. pStaQ.close();
  415. // 删除钢卷成品_D表
  416. String sqlD = XmlSqlParsersFactory
  417. .getSql("UIM020050_03.DELETE");
  418. PreparedStatement pStaD = conn.prepareStatement(sqlD);
  419. pStaD.setString(1, l_coilNo);
  420. pStaD.executeUpdate();
  421. pStaD.close();
  422. // 插入钢卷成品_D表
  423. String sqlI = XmlSqlParsersFactory
  424. .getSql("UIM020050_04.INSERT");
  425. PreparedStatement pStaI = conn.prepareStatement(sqlI);
  426. pStaI.setString(1, coilNo);
  427. pStaI.executeUpdate();
  428. pStaI.close();
  429. // 订单标记
  430. this.SAVE_ORD_STS("", "", ordNo, ordSeq, befProgCd, "DBC",
  431. "CR", coilNo, V_ACT_WGT, "UIM020050", trnfReg);
  432. // 订单整理
  433. this.ORD_STS_MAIN("UIM020050", trnfReg);
  434. }
  435. rrs1.close();
  436. pSta1.close();
  437. conn.commit();
  438. } else {
  439. cro.setV_errCode(-1);
  440. cro.setV_errMsg("输入的钢卷号不在重卷计划中,请重新查询后再进行上料操作!");
  441. }
  442. rs.close();
  443. pSta.close();
  444. } catch (SQLException ex) {
  445. if (conn != null) {
  446. conn.rollback();
  447. }
  448. cro.setV_errCode(-1);
  449. cro.setV_errMsg("上料失败!");
  450. } finally {
  451. try{
  452. //添加了出现异常时关闭pSta1
  453. if (pSta1 != null) {
  454. pSta1.close();
  455. }
  456. if (conn != null && !conn.isClosed()) {
  457. conn.close();
  458. }
  459. } catch (Exception e) {
  460. }
  461. }
  462. return cro;
  463. }
  464. /**
  465. * 查询钢卷是否已经上料了
  466. */
  467. public CoreReturnObject isReceivedL2(String coilNo) throws SQLException {
  468. String sqlQuery = "select C_COIL_NO from L_TBF03_SPEC_REEL L where L.STATUS_CD ='B' AND L.C_COIL_NO = ?";
  469. return this.getDao("KgDao").ExcuteQuery(sqlQuery,
  470. new Object[] { coilNo });
  471. }
  472. /*
  473. * 电文修改后,插入操作人,操作时间,操作班组
  474. */
  475. public CoreReturnObject insertInformation(String trnfRegId,
  476. String trnfShift, String trnfGroup, String trnfDTime, String coilNo)
  477. throws SQLException {
  478. String sqlQuery = "update c_tbC02_coil_comm set TRNF_REG =?, TRNF_SHIFT=?, TRNF_GROUP=?, TRNF_DTIME=? ,OUT_YARD_KIND='1',TRNF_USE_TIME=TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') where OLD_SAMPL_NO = ? ";
  479. Object[] obj = new Object[] { trnfRegId, trnfShift, trnfGroup,
  480. trnfDTime, coilNo };
  481. return this.getDao("KgDao").ExcuteNonQuery(sqlQuery, obj);
  482. }
  483. public CoreReturnObject insertPltcmInformation(String trnfRegId,
  484. String trnfShift, String trnfGroup, String trnfDTime, String coilNo)
  485. throws SQLException {
  486. String sqlQuery = "update c_tbl02_coil_comm set TRNF_REG =?, TRNF_SHIFT=?, TRNF_GROUP=?, TRNF_DTIME=? ,OUT_YARD_KIND='1',TRNF_USE_TIME=TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') where OLD_SAMPL_NO = ? ";
  487. Object[] obj = new Object[] { trnfRegId, trnfShift, trnfGroup,
  488. trnfDTime, coilNo };
  489. return this.getDao("KgDao").ExcuteNonQuery(sqlQuery, obj);
  490. }
  491. /**
  492. * 钢卷吊销入库
  493. *
  494. * @param coilNo
  495. * @param yardAddr
  496. * @param millSeqCd
  497. * @param trnfReg
  498. * @param trnfShift
  499. * @param trnfGroup
  500. * @param trnfDTime
  501. * @return
  502. * @throws SQLException
  503. */
  504. public CoreReturnObject selectCoilYard(String yardAddr) throws SQLException {
  505. String sqlQuery = "select coil_no from c_tbk08_coil_yard where clf_no = C_PKG_UIM.GET_MIDDLEYARDNO_BYYARDFLAG(?)";
  506. // cro = this.getDao("KgDao").ExcuteQuery(sqlQuery);
  507. return this.getDao("KgDao").ExcuteQuery(sqlQuery,
  508. new Object[] { yardAddr });
  509. }
  510. public CoreReturnObject saveCoilYard(String coilNo, String yardAddr,
  511. String entryShift, String entryGroup, String entryDtime,
  512. String reg_id, String millSeqCd) throws SQLException {
  513. CoreReturnObject cro = new CoreReturnObject();
  514. Connection conn = null;
  515. PreparedStatement pSta1 = null;
  516. StringBuffer sqlBuff = new StringBuffer();
  517. try {
  518. conn = this.getDao("KgDao").getConnection();
  519. conn.setAutoCommit(false);
  520. // 判断垛位是否存在
  521. String sqlYard = "select 1 from c_tbk08_coil_yard t where t.clf_no = C_PKG_UIM.GET_FINALYARDNO_BYYARDFLAG(?)";
  522. PreparedStatement pStaYard = conn.prepareStatement(sqlYard);
  523. pStaYard.setString(1, yardAddr);
  524. ResultSet rsYard = pStaYard.executeQuery();
  525. if (rsYard.next()) {
  526. // 修改公共表信息
  527. sqlBuff = new StringBuffer();
  528. sqlBuff.append("update c_tbC02_coil_comm set COIL_STAT = ?\n");
  529. sqlBuff.append(",CUR_PROG_CD = ?\n");
  530. sqlBuff.append(",CUR_PROG_CD_PGM = 'UIM020050'\n");
  531. sqlBuff.append(",CUR_PROG_CD_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  532. sqlBuff.append(",CUR_LOAD_LOC = ?\n");
  533. sqlBuff.append(",FL = ?\n");
  534. sqlBuff.append(",MISSNO_CLF_CD = 'E'\n");//返修标记
  535. sqlBuff.append(",IN_YARD_KIND = ?\n");
  536. sqlBuff
  537. .append(",CUR_LOAD_LOC_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  538. sqlBuff.append(",YARD_ENTRY_SHIFT = ?\n");
  539. sqlBuff.append(",YARD_ENTRY_GROUP = ?\n");
  540. sqlBuff.append(",YARD_ENTRY_REG = ?\n");
  541. sqlBuff.append(",bef_prog_cd = ?\n");
  542. sqlBuff.append(",YARD_ENTRY_DTIME = ?\n");
  543. sqlBuff
  544. .append(",YARD_ENTRY_USE_TIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  545. sqlBuff.append("WHERE OLD_SAMPL_NO = ?\n");
  546. System.out.print(sqlBuff.toString());
  547. pSta1 = conn.prepareStatement(sqlBuff.toString());
  548. pSta1.setString(1, "2");
  549. pSta1.setString(2, "DBA");
  550. pSta1.setString(3, yardAddr);
  551. pSta1.setString(4, "0");
  552. pSta1.setString(5, "4");
  553. pSta1.setString(6, entryShift);
  554. pSta1.setString(7, entryGroup);
  555. pSta1.setString(8, reg_id);
  556. pSta1.setString(9, "");
  557. pSta1.setString(10, entryDtime);
  558. pSta1.setString(11, coilNo);
  559. pSta1.executeUpdate();
  560. pSta1.close();
  561. // 将信息插入移垛表
  562. long seq = 0;
  563. String sqlqmaxseq = "select max(ROLL_SEQ) ROLL_SEQ from c_tbk08_coil_move\n";
  564. pSta1 = conn.prepareStatement(sqlqmaxseq);
  565. ResultSet rs = pSta1.executeQuery();
  566. if (rs.next()) {
  567. seq = rs.getLong("ROLL_SEQ");
  568. }
  569. rs.close();
  570. pSta1.close();
  571. sqlBuff = new StringBuffer();
  572. sqlBuff
  573. .append("insert into c_tbk08_coil_move T(T.ROLL_SEQ,T.CUR_LOAD_LOC_F,T.CUR_LOAD_LOC_T,T.COIL_NO,T.REG_ID,T.REG_SHIFT,T.REG_GROUP,T.REG_DTIME,T.REG_USE_ID,T.REG_USE_DTIME,MOVE_TYPE)" +
  574. " VALUES(?,?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'05')\n");
  575. pSta1 = conn.prepareStatement(sqlBuff.toString());
  576. pSta1.setLong(1, seq + 1);
  577. pSta1.setString(2, "");
  578. pSta1.setString(3, yardAddr);
  579. pSta1.setString(4, coilNo);
  580. pSta1.setString(5, reg_id);
  581. pSta1.setString(6, entryShift);
  582. pSta1.setString(7, entryGroup);
  583. pSta1.setString(8, entryDtime);
  584. pSta1.setString(9, reg_id);
  585. pSta1.executeUpdate();
  586. pSta1.close();
  587. // 吊销后删除成品表数据
  588. String sql = XmlSqlParsersFactory.getSql("UIM020050_02.DELETE");
  589. pSta1 = conn.prepareStatement(sql);
  590. pSta1.setString(1, coilNo);
  591. pSta1.executeUpdate();
  592. pSta1.close();
  593. // 修改重卷计划状态
  594. sqlBuff = new StringBuffer();
  595. sqlBuff.append("update l_tbf03_spec_REEl set STATUS_CD = ?\n");
  596. sqlBuff.append("where c_coil_no = ? and STATUS_CD <> 'E'\n");
  597. pSta1 = conn.prepareStatement(sqlBuff.toString());
  598. pSta1.setString(1, "E");
  599. pSta1.setString(2, coilNo);
  600. pSta1.executeUpdate();
  601. pSta1.close();
  602. } else {
  603. cro.setV_errCode(new Integer(3));
  604. cro.setV_errMsg("垛位不存在!");
  605. }
  606. rsYard.close();
  607. pStaYard.close();
  608. conn.commit();
  609. } catch (Exception ex) {
  610. System.out.print(ex.toString());
  611. if (conn != null) {
  612. conn.rollback();
  613. }
  614. cro.setV_errCode(-1);
  615. cro.setV_errMsg("吊销失败!");
  616. } finally {
  617. if (conn != null && !conn.isClosed()) {
  618. conn.close();
  619. }
  620. }
  621. return cro;
  622. }
  623. // 调用计划重新下发函数
  624. private String rePlan(Connection conn) throws SQLException {
  625. String rtMsg = "";
  626. String sql = XmlSqlParsersFactory.getSql("UIK050010_01.CALL");
  627. CallableStatement cstm = conn.prepareCall(sql);
  628. cstm.registerOutParameter(1, java.sql.Types.VARCHAR);
  629. cstm.execute();
  630. rtMsg = cstm.getString(1);
  631. cstm.close();
  632. return rtMsg;
  633. }
  634. /**
  635. * 订单进程标记
  636. *
  637. * @param P_BEF_ORD_NO
  638. * 前合同号
  639. * @param P_BEF_ORD_SEQ
  640. * 前订单号
  641. * @param P_ORD_NO
  642. * 合同号
  643. * @param P_ORD_SEQ
  644. * 订单号
  645. * @param P_BEF_PROG_CD
  646. * 前进程状态
  647. * @param P_PROG_CD
  648. * 进程状态
  649. * @param P_MAT_TYPE
  650. * 物料类型
  651. * @param P_MAT_NO
  652. * 物料号
  653. * @param P_WGT
  654. * 物料重量
  655. * @param P_REG_PRGM
  656. * 程序名
  657. * @param P_REG_ID
  658. * 操作人
  659. * @return
  660. */
  661. private void SAVE_ORD_STS(String P_BEF_ORD_NO, String P_BEF_ORD_SEQ,
  662. String P_ORD_NO, String P_ORD_SEQ, String P_BEF_PROG_CD,
  663. String P_PROG_CD, String P_MAT_TYPE, String P_MAT_NO, String P_WGT,
  664. String P_REG_PRGM, String P_REG_ID) throws SQLException {
  665. this.getDao("KgDao").ExcuteProcedure(
  666. XmlSqlParsersFactory.getSql("UIJ030020_03.CALL"),
  667. new String[] { P_BEF_ORD_NO, P_BEF_ORD_SEQ, P_ORD_NO,
  668. P_ORD_SEQ, P_BEF_PROG_CD, P_PROG_CD, P_MAT_TYPE,
  669. P_MAT_NO, P_WGT, P_REG_PRGM, P_REG_ID }, new String[0]);
  670. }
  671. /**
  672. * 订单进程整理 regId 操作人
  673. *
  674. * @return
  675. */
  676. private boolean ORD_STS_MAIN(String pgmId, String regId)
  677. throws SQLException {
  678. boolean flag = true;
  679. String retMsg = "";
  680. this.getDao("KgDao").ExcuteProcedure(
  681. XmlSqlParsersFactory.getSql("UIJ030020_02.CALL"),
  682. new String[] { pgmId, regId }, new String[] { retMsg });
  683. if (retMsg != null && !retMsg.equals("")) {
  684. flag = false;
  685. }
  686. return flag;
  687. }
  688. }