44e3d1e1ff49b4636395fd2941793a27c7de06c3.svn-base 20 KB

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