76878b735e118ff3e777a547344d2e12f300a99c.svn-base 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
  1. package UIK.UIK02;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.Map;
  7. import java.sql.CallableStatement;
  8. import java.sql.Connection;
  9. import java.util.List;
  10. import org.springframework.jdbc.support.rowset.SqlRowSet;
  11. import UIB.COM.XmlSqlParsersFactory;
  12. import CoreFS.SA01.CoreIComponent;
  13. import CoreFS.SA06.CoreReturnObject;
  14. import CoreFS.SA06.CoreSqlType;
  15. /**
  16. * 酸轧上料管理
  17. *
  18. * @author siy
  19. * @date 2010-9-14
  20. */
  21. public class UIK020010 extends CoreIComponent {
  22. /**
  23. * 查询酸轧轧制计划
  24. *
  25. * @return
  26. * @throws SQLException
  27. */
  28. public CoreReturnObject queryAcidRollingPlan() throws SQLException {
  29. CoreReturnObject cro = new CoreReturnObject();
  30. String sql = XmlSqlParsersFactory.getSql("UIK020010_01.SELECT");
  31. cro = this.getDao("KgDao").ExcuteQuery(sql);
  32. return cro;
  33. }
  34. public CoreReturnObject queryAddClassInf() throws SQLException {
  35. CoreReturnObject cro = new CoreReturnObject();
  36. String sql = XmlSqlParsersFactory.getSql("UIK020010_02.SELECT");
  37. cro = this.getDao("KgDao").ExcuteQuery(sql);
  38. return cro;
  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 clfCol = yardAddrs.substring(2, 4);
  54. String clfRow = 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_col = ");
  63. sqlBuffer.append(Integer.parseInt(clfCol, 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_row in (");
  69. sqlBuffer.append(Integer.parseInt(clfRow, 10) - 1);
  70. sqlBuffer.append(",");
  71. sqlBuffer.append(Integer.parseInt(clfRow, 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 c_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 saveAcidRolling(String coilNo, String c_coilNo,
  99. String millSeqCd, String trnfReg, String trnfShift,
  100. String trnfGroup, String trnfDTime) throws SQLException// throws
  101. // SQLException
  102. {
  103. CoreReturnObject cro = new CoreReturnObject();
  104. Connection conn = null;
  105. PreparedStatement pSta1 = null;
  106. StringBuffer sqlBuffer = new StringBuffer();
  107. try {
  108. conn = this.getDao("KgDao").getConnection();
  109. conn.setAutoCommit(false);
  110. // 判断钢卷是否在轧制计划中
  111. String sql = "SELECT A.STATUS_CD FROM C_TBF03_SPEC_MILL A WHERE A.COIL_NO = '"
  112. + coilNo + "' AND A.STATUS_CD = 'A'\n";
  113. System.out.print(sql);
  114. PreparedStatement pSta = conn.prepareStatement(sql);
  115. ResultSet rs = pSta.executeQuery();
  116. if (rs.next()) {
  117. // 修改钢卷公共表钢卷状态,清除垛位,生成出库记录
  118. String befProgCd = "";
  119. String befProgCdTime = "";
  120. String befProgCdPgm = "";
  121. String V_ACT_WGT = "";
  122. String curLoadLoc = "";
  123. // String V_BEF_PROG_CD ="";
  124. String qSql = "select cur_prog_cd,cur_prog_cd_dtime,cur_prog_cd_pgm,ACT_WGT,cur_load_loc from c_tbk02_coil_comm where OLD_SAMPL_NO = '"
  125. + coilNo + "'\n";
  126. System.out.print(qSql);
  127. pSta1 = conn.prepareStatement(qSql);
  128. ResultSet rs2 = pSta1.executeQuery();
  129. if (rs2.next()) {
  130. befProgCd = rs2.getString("CUR_PROG_CD");
  131. befProgCdTime = rs2.getString("CUR_PROG_CD_DTIME");
  132. befProgCdPgm = rs2.getString("CUR_PROG_CD_PGM");
  133. V_ACT_WGT = rs2.getString("ACT_WGT").toString();
  134. curLoadLoc = rs2.getString("CUR_LOAD_LOC");
  135. // V_BEF_PROG_CD = rs2.getString("BEF_PROG_CD");
  136. }
  137. rs2.close();
  138. pSta1.close();
  139. 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)"
  140. + "VALUES((SELECT MAX(ROLL_SEQ)+1 ROLL_SEQ FROM C_TBK08_COIL_MOVE),?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'11')";
  141. pSta1 = conn.prepareStatement(sqlMove);
  142. pSta1.setString(1, curLoadLoc);
  143. pSta1.setString(2, "");
  144. pSta1.setString(3, coilNo);
  145. pSta1.setString(4, trnfReg);
  146. pSta1.setString(5, trnfShift);
  147. pSta1.setString(6, trnfGroup);
  148. pSta1.setString(7, trnfDTime);
  149. pSta1.setString(8, trnfReg);
  150. pSta1.executeUpdate();
  151. pSta1.close();
  152. sqlBuffer = new StringBuffer();
  153. // sqlBuffer.append("update c_tbk02_coil_comm set coil_stat =
  154. // '3',cur_prog_cd = 'PCC'\n");
  155. sqlBuffer
  156. .append("update c_tbk02_coil_comm set coil_stat='3', cur_prog_cd = 'PCB'\n");// 取消状态位 20121214coil_stat修改
  157. // modified
  158. // by
  159. // 张正
  160. // time:2011-01-18
  161. // 9:35
  162. sqlBuffer
  163. .append(" ,cur_prog_cd_dtime = to_char(sysdate,'YYYYMMDDHH24MISS')\n");
  164. sqlBuffer.append(" ,cur_prog_cd_pgm = 'UIK020010'\n");
  165. sqlBuffer.append(" ,bef_prog_cd = ?\n");
  166. sqlBuffer.append(" ,bef_prog_cd_dtime = ?\n");
  167. sqlBuffer.append(" ,bef_prog_cd_pgm = ?\n");
  168. sqlBuffer.append(" ,cur_load_loc = ''\n");
  169. sqlBuffer.append(" ,trnf_reg = ?\n");
  170. sqlBuffer.append(" ,trnf_shift=?\n");
  171. sqlBuffer.append(" ,trnf_group=?\n");
  172. sqlBuffer.append(" ,OUT_YARD_KIND = '1'\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 c_tbf03_spec_mill \n");
  191. sqlBuffer.append(" set \n");
  192. sqlBuffer.append(" STATUS_CD = 'B' \n");
  193. sqlBuffer.append(" where \n");
  194. sqlBuffer.append(" coil_no = ?\n");
  195. sqlBuffer.append(" and STATUS_CD = 'A'\n");
  196. pSta1 = conn.prepareStatement(sqlBuffer.toString());
  197. pSta1.setString(1, coilNo);
  198. pSta1.executeUpdate();
  199. pSta1.close();
  200. // 清除垛位表钢卷
  201. String sql1 = "select clf_name,clf_col,clf_row,clf_fl from c_tbk08_coil_yard where coil_no = '"
  202. + coilNo + "'\n";
  203. System.out.print(sql1);
  204. pSta1 = conn.prepareStatement(sql1);
  205. ResultSet rs3 = pSta1.executeQuery();
  206. if (rs3.next()) {
  207. String clf_name = rs3.getString("CLF_NAME");
  208. String clf_col = rs3.getString("CLF_COL");
  209. String clf_row = rs3.getString("CLF_ROW");
  210. String clf_fl = rs3.getString("CLF_FL");
  211. sqlBuffer = new StringBuffer();
  212. sqlBuffer.append("update c_tbk08_coil_yard \n");
  213. sqlBuffer.append(" set \n");
  214. sqlBuffer.append(" coil_no = ''\n");
  215. sqlBuffer.append(" where \n");
  216. sqlBuffer.append(" clf_name = '");
  217. sqlBuffer.append(clf_name);
  218. sqlBuffer.append("'\n");
  219. sqlBuffer.append("and\n");
  220. sqlBuffer.append(" clf_col = '");
  221. sqlBuffer.append(clf_col);
  222. sqlBuffer.append("'\n");
  223. sqlBuffer.append("and\n");
  224. sqlBuffer.append("clf_row = '");
  225. sqlBuffer.append(clf_row);
  226. sqlBuffer.append("'\n");
  227. sqlBuffer.append("and\n");
  228. sqlBuffer.append(" clf_fl = '");
  229. sqlBuffer.append(clf_fl);
  230. sqlBuffer.append("'\n");
  231. PreparedStatement pSta3 = conn.prepareStatement(sqlBuffer
  232. .toString());
  233. pSta3.executeUpdate();
  234. pSta3.close();
  235. }
  236. rs3.close();
  237. pSta1.close();
  238. // 冷轧卷信息 插入酸扎C_TBL02_COIL_COMM
  239. String ssql = "SELECT A.C_COIL_NO FROM C_TBF03_SPEC_MILL A WHERE A.COIL_NO ='"
  240. + coilNo + "' and C_COIL_NO = '" + c_coilNo + "'";
  241. pSta1 = conn.prepareStatement(ssql);
  242. ResultSet rrs1 = pSta1.executeQuery();
  243. if (rrs1.next()) {
  244. // 修改钢卷公共表钢卷状态,清除垛位,生成出库记录
  245. String V_ORD_NO = "";
  246. String V_ORD_SEQ = "";
  247. String V_PRODNM_CD = "";
  248. String V_C_SPEC_ABBSYM = "";
  249. String V_SPEC_STL_GRD = "";
  250. String V_C_ORD_USEAGE_CD = "";
  251. String V_ORD_THK = "";
  252. String V_ORD_WTH = "";
  253. String V_SLAB_NO = "";
  254. String V_SMP_NO = "";
  255. String V_SMP_CUT_LOC = "";
  256. String V_SMP_DIR_PIC_YN = "";
  257. String V_INGR_ONLY_TP = "";
  258. String V_MATLQLTY_DEC_GRD = "";
  259. String V_BEF_PROG_CD = "";
  260. String V_CUR_PROG_CD = "";
  261. String V_COIL_CUT_SEQ1 = ""; // C_TBF03_SPEC_MILL_D.COIL_CUT_SEQ%TYPE;
  262. String V_ORD_THK1 = ""; // C_TBF03_SPEC_MILL_D.ORD_THK%TYPE;
  263. String V_ORD_WTH1 = ""; // C_TBF03_SPEC_MILL_D.ORD_WTH%TYPE;
  264. String V_ORD_LEN1 = ""; // C_TBF03_SPEC_MILL_D.ORD_LEN%TYPE;
  265. String V_ORD_WGT1 = ""; // C_TBF03_SPEC_MILL_D.ORD_WGT%TYPE;
  266. String V_ORD_WGT_MIN1 = ""; // C_TBF03_SPEC_MILL_D.ORD_WGT_MIN%TYPE;
  267. String V_ORD_WGT_MAX1 = ""; // C_TBF03_SPEC_MILL_D.ORD_WGT_MAX%TYPE;
  268. String V_ORD_INDIA1 = ""; // C_TBF03_SPEC_MILL_D.ORD_INDIA%TYPE;
  269. String V_ORD_OUTDIA1 = ""; // C_TBF03_SPEC_MILL_D.ORD_OUTDIA%TYPE;
  270. String V_ORD_FL1 = ""; // C_TBF03_SPEC_MILL_D.ORD_FL%TYPE;
  271. String qs = "select SLAB_NO FROM TBH02_COIL_COMM where OLD_SAMPL_NO = '"
  272. + coilNo + "'\n";
  273. PreparedStatement pSta2 = conn.prepareStatement(qs);
  274. ResultSet rx = pSta2.executeQuery();
  275. if (rx.next()) {
  276. V_SLAB_NO = rx.getString("SLAB_NO");
  277. }
  278. rx.close();
  279. pSta2.close();
  280. String qqSql = "select ORD_NO,ORD_SEQ,PRODNM_CD,C_SPEC_ABBSYM,SPEC_STL_GRD,C_ORD_USEAGE_CD,ORD_THK,ORD_WTH,SMP_NO,SMP_CUT_LOC,SMP_DIR_PIC_YN,INGR_ONLY_TP,MATLQLTY_DEC_GRD FROM c_tbf03_spec_mill where coil_no = '"
  281. + coilNo + "'";
  282. pSta2 = conn.prepareStatement(qqSql);
  283. ResultSet rrs2 = pSta2.executeQuery();
  284. if (rrs2.next()) {
  285. V_ORD_NO = rrs2.getString("ORD_NO");
  286. V_ORD_SEQ = rrs2.getString("ORD_SEQ");
  287. V_PRODNM_CD = rrs2.getString("PRODNM_CD");
  288. V_C_SPEC_ABBSYM = rrs2.getString("C_SPEC_ABBSYM");
  289. V_SPEC_STL_GRD = rrs2.getString("SPEC_STL_GRD");
  290. V_C_ORD_USEAGE_CD = rrs2.getString("C_ORD_USEAGE_CD");
  291. V_ORD_THK = rrs2.getString("ORD_THK");
  292. V_ORD_WTH = rrs2.getString("ORD_WTH");
  293. V_SMP_NO = rrs2.getString("SMP_NO");
  294. V_SMP_CUT_LOC = rrs2.getString("SMP_CUT_LOC");
  295. V_SMP_DIR_PIC_YN = rrs2.getString("SMP_DIR_PIC_YN");
  296. V_INGR_ONLY_TP = rrs2.getString("INGR_ONLY_TP");
  297. V_MATLQLTY_DEC_GRD = rrs2.getString("MATLQLTY_DEC_GRD");
  298. }
  299. rrs2.close();
  300. pSta2.close();
  301. System.out.print(V_C_ORD_USEAGE_CD);
  302. String qqSqll = "select H_COIL_NO1 FROM C_TBL02_COIL_COMM where H_COIL_NO1 = '"
  303. + coilNo + "'";
  304. pSta2 = conn.prepareStatement(qqSqll);
  305. ResultSet rrs22 = pSta2.executeQuery();
  306. if (rrs22.next()) {
  307. // sqlBuffer = new StringBuffer();
  308. // sqlBuffer.append("update C_TBL02_COIL_COMM set
  309. // ORD_SEQ =?\n");
  310. // sqlBuffer.append(" ,ORD_NO = ?\n");
  311. // sqlBuffer.append(" ,PRODNM_CD = ?\n");
  312. // sqlBuffer.append(" ,SPEC_ABBSYM = ?\n");
  313. // sqlBuffer.append(" ,SPEC_STL_GRD = ?\n");
  314. // sqlBuffer.append(" ,ORD_USE_CD = ?\n");
  315. // sqlBuffer.append(" ,INSTR_COIL_THK = ?\n");
  316. // sqlBuffer.append(" ,INSTR_COIL_WTH = ?\n");
  317. // sqlBuffer.append(" ,SLAB_NO = ?\n");
  318. // sqlBuffer.append(" ,COIL_NO = ?\n");
  319. // sqlBuffer.append(" ,COIL_STAT = ?\n");
  320. // sqlBuffer.append(" ,SMP_NO = ?\n");
  321. // sqlBuffer.append(" ,SMP_CUT_LOC = ?\n");
  322. // sqlBuffer.append(" ,SMP_DIR_PIC_YN = ?\n");
  323. // sqlBuffer.append(" ,INGR_ONLY_TP = ?\n");
  324. // sqlBuffer.append(" ,MATLQLTY_DEC_GRD = ?\n");
  325. // sqlBuffer.append(" where H_COIL_NO1 = ?\n");
  326. // PreparedStatement pSta4 =
  327. // conn.prepareStatement(sqlBuffer.toString());
  328. // pSta4.setString(1, V_ORD_SEQ);
  329. // pSta4.setString(2, V_ORD_NO);
  330. // pSta4.setString(3, V_PRODNM_CD);
  331. // pSta4.setString(4, V_C_SPEC_ABBSYM);
  332. // pSta4.setString(5, V_SPEC_STL_GRD);
  333. // pSta4.setString(6, V_C_ORD_USEAGE_CD);
  334. // pSta4.setString(7, V_ORD_THK);
  335. // pSta4.setString(8, V_ORD_WTH);
  336. // pSta4.setString(9, V_SLAB_NO);
  337. // pSta4.setString(10, c_coilNo);
  338. // pSta4.setString(11, "1");
  339. //
  340. // pSta4.setString(12, V_SMP_NO);
  341. // pSta4.setString(13, V_SMP_CUT_LOC);
  342. // pSta4.setString(14, V_SMP_DIR_PIC_YN);
  343. // pSta4.setString(15, V_INGR_ONLY_TP);
  344. // pSta4.setString(16, V_MATLQLTY_DEC_GRD);
  345. //
  346. // pSta4.setString(17, coilNo);
  347. // pSta4.executeUpdate();
  348. // pSta4.close();
  349. sqlBuffer = new StringBuffer();
  350. sqlBuffer
  351. .append("INSERT INTO C_TBL02_COIL_COMM(ORD_SEQ ,ORD_NO,PRODNM_CD,SPEC_ABBSYM,SPEC_STL_GRD,ORD_USE_CD,INSTR_COIL_THK,INSTR_COIL_WTH,SLAB_NO,H_COIL_NO1,COIL_STAT,COIL_NO,SMP_NO,SMP_CUT_LOC,SMP_DIR_PIC_YN,INGR_ONLY_TP,MATLQLTY_DEC_GRD,BEF_STL_GRD) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)\n");
  352. PreparedStatement pSta4 = conn
  353. .prepareStatement(sqlBuffer.toString());
  354. pSta4.setString(1, V_ORD_SEQ);
  355. pSta4.setString(2, V_ORD_NO);
  356. pSta4.setString(3, V_PRODNM_CD);
  357. pSta4.setString(4, V_C_SPEC_ABBSYM);
  358. pSta4.setString(5, V_SPEC_STL_GRD);
  359. pSta4.setString(6, V_C_ORD_USEAGE_CD);
  360. pSta4.setString(7, V_ORD_THK);
  361. pSta4.setString(8, V_ORD_WTH);
  362. pSta4.setString(9, V_SLAB_NO);
  363. pSta4.setString(10, coilNo);
  364. pSta4.setString(11, "1");
  365. pSta4.setString(12, c_coilNo);
  366. pSta4.setString(13, V_SMP_NO);
  367. pSta4.setString(14, V_SMP_CUT_LOC);
  368. pSta4.setString(15, V_SMP_DIR_PIC_YN);
  369. pSta4.setString(16, V_INGR_ONLY_TP);
  370. pSta4.setString(17, V_MATLQLTY_DEC_GRD);
  371. pSta4.setString(18, V_SPEC_STL_GRD);
  372. pSta4.executeUpdate();
  373. pSta4.close();
  374. } else {
  375. sqlBuffer = new StringBuffer();
  376. sqlBuffer
  377. .append("INSERT INTO C_TBL02_COIL_COMM(ORD_SEQ ,ORD_NO,PRODNM_CD,SPEC_ABBSYM,SPEC_STL_GRD,ORD_USE_CD,INSTR_COIL_THK,INSTR_COIL_WTH,SLAB_NO,H_COIL_NO1,COIL_STAT,COIL_NO,SMP_NO,SMP_CUT_LOC,SMP_DIR_PIC_YN,INGR_ONLY_TP,MATLQLTY_DEC_GRD,BEF_STL_GRD) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)\n");
  378. PreparedStatement pSta4 = conn
  379. .prepareStatement(sqlBuffer.toString());
  380. pSta4.setString(1, V_ORD_SEQ);
  381. pSta4.setString(2, V_ORD_NO);
  382. pSta4.setString(3, V_PRODNM_CD);
  383. pSta4.setString(4, V_C_SPEC_ABBSYM);
  384. pSta4.setString(5, V_SPEC_STL_GRD);
  385. pSta4.setString(6, V_C_ORD_USEAGE_CD);
  386. pSta4.setString(7, V_ORD_THK);
  387. pSta4.setString(8, V_ORD_WTH);
  388. pSta4.setString(9, V_SLAB_NO);
  389. pSta4.setString(10, coilNo);
  390. pSta4.setString(11, "1");
  391. pSta4.setString(12, c_coilNo);
  392. pSta4.setString(13, V_SMP_NO);
  393. pSta4.setString(14, V_SMP_CUT_LOC);
  394. pSta4.setString(15, V_SMP_DIR_PIC_YN);
  395. pSta4.setString(16, V_INGR_ONLY_TP);
  396. pSta4.setString(17, V_MATLQLTY_DEC_GRD);
  397. pSta4.setString(18, V_SPEC_STL_GRD);
  398. pSta4.executeUpdate();
  399. pSta4.close();
  400. }
  401. rrs22.close();
  402. pSta2.close();
  403. // 修改c_tbl02_coil_comm_d
  404. String tbl02d = " SELECT COIL_CUT_SEQ,ORD_THK,ORD_WTH,ORD_LEN,ORD_WGT,ORD_WGT_MIN,ORD_WGT_MAX,ORD_INDIA,ORD_OUTDIA,ORD_FL from C_TBF03_SPEC_MILL_D WHERE ORD_NO = '"
  405. + V_ORD_NO + "' AND ORD_SEQ = '" + V_ORD_SEQ + "'";
  406. pSta2 = conn.prepareStatement(tbl02d);
  407. ResultSet rtbl02d = pSta2.executeQuery();
  408. System.out.print(tbl02d);
  409. if (rtbl02d.next()) {
  410. V_COIL_CUT_SEQ1 = rtbl02d.getString("COIL_CUT_SEQ");
  411. V_ORD_THK1 = rtbl02d.getString("ORD_THK");
  412. V_ORD_WTH1 = rtbl02d.getString("ORD_WTH");
  413. V_ORD_LEN1 = rtbl02d.getString("ORD_LEN");
  414. V_ORD_WGT1 = rtbl02d.getString("ORD_WGT");
  415. V_ORD_WGT_MIN1 = rtbl02d.getString("ORD_WGT_MIN");
  416. V_ORD_WGT_MAX1 = rtbl02d.getString("ORD_WGT_MAX");
  417. V_ORD_INDIA1 = rtbl02d.getString("ORD_INDIA");
  418. V_ORD_OUTDIA1 = rtbl02d.getString("ORD_OUTDIA");
  419. V_ORD_FL1 = rtbl02d.getString("ORD_FL");
  420. }
  421. rtbl02d.close();
  422. pSta2.close();
  423. String tbl02ds = "SELECT L_COIL_NO FROM C_TBL02_COIL_COMM_D WHERE L_COIL_NO ='"
  424. + c_coilNo + "'";
  425. pSta2 = conn.prepareStatement(tbl02ds);
  426. ResultSet rtbl02ds = pSta2.executeQuery();
  427. if (rtbl02ds.next()) {
  428. sqlBuffer = new StringBuffer();
  429. sqlBuffer
  430. .append("UPDATE C_TBL02_COIL_COMM_D SET CUT_SEQ = ?\n");
  431. sqlBuffer.append(" ,ORD_THK = ?\n");
  432. sqlBuffer.append(" ,ORD_WTH = ?\n");
  433. sqlBuffer.append(" ,ORD_LEN = ?\n");
  434. sqlBuffer.append(" ,ORD_WGT = ?\n");
  435. sqlBuffer.append(" ,ORD_WGT_MIN = ?\n");
  436. sqlBuffer.append(" ,ORD_WGT_MAX = ?\n");
  437. sqlBuffer.append(" ,ORD_INDIA = ?\n");
  438. sqlBuffer.append(" ,ORD_OUTDIA = ?\n");
  439. sqlBuffer.append(" ,ORD_NO = ?\n");
  440. sqlBuffer.append(" ,ORD_SEQ = ?\n");
  441. sqlBuffer.append(" ,ORD_FL = ?\n");
  442. sqlBuffer.append(" where L_COIL_NO = ?\n");
  443. PreparedStatement pSta7 = conn
  444. .prepareStatement(sqlBuffer.toString());
  445. pSta7.setString(1, V_COIL_CUT_SEQ1);
  446. pSta7.setString(2, V_ORD_THK1);
  447. pSta7.setString(3, V_ORD_WTH1);
  448. pSta7.setString(4, V_ORD_LEN1);
  449. pSta7.setString(5, V_ORD_WGT1);
  450. pSta7.setString(6, V_ORD_WGT_MIN1);
  451. pSta7.setString(7, V_ORD_WGT_MAX1);
  452. pSta7.setString(8, V_ORD_INDIA1);
  453. pSta7.setString(9, V_ORD_OUTDIA1);
  454. pSta7.setString(10, V_ORD_NO);
  455. pSta7.setString(11, V_ORD_SEQ);
  456. pSta7.setString(12, V_ORD_FL1);
  457. pSta7.setString(13, c_coilNo);
  458. pSta7.executeUpdate();
  459. pSta7.close();
  460. } else {
  461. sqlBuffer = new StringBuffer();
  462. sqlBuffer
  463. .append("INSERT INTO C_TBL02_COIL_COMM_D(L_COIL_NO,CUT_SEQ,ORD_THK,ORD_WTH,ORD_LEN,ORD_WGT,ORD_WGT_MIN,ORD_WGT_MAX,ORD_INDIA,ORD_OUTDIA,ORD_NO,ORD_SEQ,ORD_FL) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)\n");
  464. System.out.print(sqlBuffer.toString());
  465. PreparedStatement pSta5 = conn
  466. .prepareStatement(sqlBuffer.toString());
  467. pSta5.setString(1, c_coilNo);
  468. pSta5.setString(2, V_COIL_CUT_SEQ1);
  469. pSta5.setString(3, V_ORD_THK1);
  470. pSta5.setString(4, V_ORD_WTH1);
  471. pSta5.setString(5, V_ORD_LEN1);
  472. pSta5.setString(6, V_ORD_WGT1);
  473. pSta5.setString(7, V_ORD_WGT_MIN1);
  474. pSta5.setString(8, V_ORD_WGT_MAX1);
  475. pSta5.setString(9, V_ORD_INDIA1);
  476. pSta5.setString(10, V_ORD_OUTDIA1);
  477. pSta5.setString(11, V_ORD_NO);
  478. pSta5.setString(12, V_ORD_SEQ);
  479. pSta5.setString(13, V_ORD_FL1);
  480. pSta5.executeUpdate();
  481. pSta5.close();
  482. }
  483. rtbl02ds.close();
  484. pSta2.close();
  485. // 订单标记
  486. this.SAVE_ORD_STS("", "", V_ORD_NO, V_ORD_SEQ, befProgCd,
  487. "PCC", "CR", coilNo, V_ACT_WGT, "UIK020010",
  488. trnfReg);
  489. // 订单整理
  490. this.ORD_STS_MAIN("UIK020010", trnfReg);
  491. }
  492. rs.close();
  493. pSta.close();
  494. // 调用取样存储过程
  495. // String strx = createCretNo(conn,c_coilNo, millSeqCd);
  496. // System.out.println("=====================================>>>"+strx);
  497. // if("YY".equals(strx) )
  498. // {
  499. // conn.commit();
  500. // }
  501. // else
  502. // {
  503. // conn.rollback();
  504. // cro.setV_errCode(-1);
  505. // cro.setV_errMsg("上料失败!");
  506. // }
  507. conn.commit();
  508. } else {
  509. cro.setV_errCode(-1);
  510. cro.setV_errMsg("输入的钢卷号不在轧制计划中,请重新查询后再进行上料操作!");
  511. }
  512. } catch (Exception ex) {
  513. System.out.print(ex);
  514. if (conn != null) {
  515. conn.rollback();
  516. }
  517. cro.setV_errCode(-1);
  518. cro.setV_errMsg("上料失败!");
  519. } finally {
  520. if (conn != null && !conn.isClosed()) {
  521. conn.close();
  522. }
  523. }
  524. return cro;
  525. }
  526. /*
  527. * 上料调用存储过程
  528. */
  529. // private String createCretNo(Connection conn,String c_coilNo,String
  530. // millSeqCd) throws SQLException
  531. // {
  532. // String rtMsg = "";
  533. // String sql = XmlSqlParsersFactory.getSql("UIK050010_01.CALL");
  534. // CallableStatement cstm = conn.prepareCall(sql);
  535. // cstm.setString(1, c_coilNo);
  536. // cstm.setString(2, millSeqCd);
  537. // cstm.registerOutParameter(3, java.sql.Types.VARCHAR);
  538. // cstm.execute();
  539. // rtMsg = cstm.getString(3);
  540. // cstm.close();
  541. // return rtMsg;
  542. // }
  543. /*
  544. * 查询钢卷是否已经上料了
  545. */
  546. public CoreReturnObject SelectSTATUS_CD(String coilNo) throws SQLException {
  547. CoreReturnObject cro = new CoreReturnObject();
  548. String sqlQuery = "select COIL_EDT_SEQ from C_TBF03_SPEC_MILL where STATUS_CD ='B' AND COIL_NO = ?";
  549. // cro = this.getDao("KgDao").ExcuteQuery(sqlQuery);
  550. cro = this.getDao("KgDao").ExcuteQuery(sqlQuery,
  551. new Object[] { coilNo });
  552. return cro;
  553. }
  554. /*
  555. * 电文修改后,插入操作人,操作时间,操作班组
  556. */
  557. public CoreReturnObject InsertInformation(String trnfRegId,
  558. String trnfShift, String trnfGroup, String trnfDTime, String coilNo)
  559. throws SQLException {
  560. CoreReturnObject cro = new CoreReturnObject();
  561. String sqlQuery = "update c_tbk02_coil_comm set TRNF_REG =?, TRNF_SHIFT=?, TRNF_GROUP=?, TRNF_DTIME=? where OLD_SAMPL_NO = ? ";
  562. Object[] obj = new Object[] { trnfRegId, trnfShift, trnfGroup,
  563. trnfDTime, coilNo };
  564. cro = this.getDao("KgDao").ExcuteNonQuery(sqlQuery, obj);
  565. return cro;
  566. }
  567. /**
  568. * 钢卷吊销入库
  569. *
  570. * @param coilNo
  571. * @param yardAddr
  572. * @param millSeqCd
  573. * @param trnfReg
  574. * @param trnfShift
  575. * @param trnfGroup
  576. * @param trnfDTime
  577. * @return
  578. * @throws SQLException
  579. */
  580. public CoreReturnObject SelectCoilYard(String yardAddr) throws SQLException {
  581. CoreReturnObject cro = new CoreReturnObject();
  582. String sqlQuery = "select coil_no from c_tbk02_coil_comm where CUR_LOAD_LOC =? ";
  583. // cro = this.getDao("KgDao").ExcuteQuery(sqlQuery);
  584. cro = this.getDao("KgDao").ExcuteQuery(sqlQuery,
  585. new Object[] { yardAddr });
  586. return cro;
  587. }
  588. public CoreReturnObject saveCoilYard(String coilNo, String yardAddr,
  589. String entryShift, String entryGroup, String entryDtime,
  590. String reg_id, String millSeqCd) throws SQLException {
  591. CoreReturnObject cro = new CoreReturnObject();
  592. Connection conn = null;
  593. PreparedStatement pSta1 = null;
  594. StringBuffer sqlBuff = new StringBuffer();
  595. try {
  596. conn = this.getDao("KgDao").getConnection();
  597. conn.setAutoCommit(false);
  598. // 钢卷是否已上料
  599. boolean flag = false;
  600. sqlBuff = new StringBuffer();
  601. sqlBuff.append("select 1 from c_tbf03_spec_mill t \n");
  602. sqlBuff.append("where t.COIL_NO = ? \n");
  603. sqlBuff
  604. .append("and t.ROLL_MANA_NO = (select max(roll_mana_no) from c_tbf03_spec_mill where coil_no = ?)\n");
  605. sqlBuff.append("and t.STATUS_CD = 'A'\n");
  606. pSta1 = conn.prepareStatement(sqlBuff.toString());
  607. pSta1.setString(1, coilNo);
  608. pSta1.setString(2, coilNo);
  609. ResultSet rs1 = pSta1.executeQuery();
  610. if (rs1.next()) {
  611. flag = true;
  612. }
  613. rs1.close();
  614. pSta1.close();
  615. if (flag) {
  616. conn.rollback();
  617. cro.setV_errCode(-2);
  618. cro.setV_errMsg("请先将钢卷上料出库后再进行吊销操作!");
  619. return cro;
  620. }
  621. // 修改公共表信息
  622. sqlBuff = new StringBuffer();
  623. sqlBuff.append("update c_tbk02_coil_comm set COIL_STAT = ?\n");
  624. sqlBuff.append(",CUR_PROG_CD = ?\n");
  625. sqlBuff.append(",CUR_LOAD_LOC = ? ,ORD_FL='2',ORD_NO='',ORD_SEQ='' \n");
  626. sqlBuff.append(",FL = ?\n");
  627. sqlBuff.append(",IN_YARD_KIND = ?\n");
  628. sqlBuff
  629. .append(",CUR_LOAD_LOC_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  630. sqlBuff.append(",YARD_ENTRY_SHIFT = ?\n");
  631. sqlBuff.append(",YARD_ENTRY_GROUP = ?\n");
  632. sqlBuff.append(",YARD_ENTRY_REG = ?\n");
  633. sqlBuff.append(",bef_prog_cd = ?\n");
  634. sqlBuff.append(",YARD_ENTRY_DTIME = ?\n");
  635. sqlBuff
  636. .append(",YARD_ENTRY_USE_TIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  637. sqlBuff.append("WHERE OLD_SAMPL_NO = ?\n");
  638. System.out.print(sqlBuff.toString());
  639. pSta1 = conn.prepareStatement(sqlBuff.toString());
  640. pSta1.setString(1, "2");
  641. pSta1.setString(2, "PRC");
  642. pSta1.setString(3, yardAddr);
  643. pSta1.setString(4, "0");
  644. pSta1.setString(5, "2");
  645. pSta1.setString(6, entryShift);
  646. pSta1.setString(7, entryGroup);
  647. pSta1.setString(8, reg_id);
  648. pSta1.setString(9, "");
  649. pSta1.setString(10, entryDtime);
  650. pSta1.setString(11, coilNo);
  651. pSta1.executeUpdate();
  652. pSta1.close();
  653. // 修改酸扎计划状态
  654. sqlBuff = new StringBuffer();
  655. sqlBuff.append("update c_tbf03_spec_mill set STATUS_CD = ?\n");
  656. sqlBuff.append("where coil_no = ?\n");
  657. pSta1 = conn.prepareStatement(sqlBuff.toString());
  658. pSta1.setString(1, "E");
  659. pSta1.setString(2, coilNo);
  660. pSta1.executeUpdate();
  661. pSta1.close();
  662. // 将钢卷号重新绑定到剁位上
  663. sqlBuff = new StringBuffer();
  664. sqlBuff.append("update c_tbk08_coil_yard set COIL_NO = ?\n");
  665. sqlBuff.append(",COIL_SOURCE = ?\n");
  666. sqlBuff.append(",MOD_ID = ?\n");
  667. sqlBuff.append(",MOD_TIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  668. sqlBuff.append("where CLF_NAME = substr(?,0,1)\n");
  669. sqlBuff.append("AND CLF_COL = substr(?,3,2)\n");
  670. // sqlBuff.append("AND CLF_NAME = substr(?,0,1)\n");
  671. sqlBuff.append("AND CLF_ROW = substr(?,7,2)\n");
  672. sqlBuff
  673. .append("AND CLF_FL = DECODE(substr(?,5,1),'A','1','B','2','C','3','1')\n");
  674. System.out.print(sqlBuff.toString());
  675. pSta1 = conn.prepareStatement(sqlBuff.toString());
  676. pSta1.setString(1, coilNo);
  677. pSta1.setString(2, "2");
  678. pSta1.setString(3, reg_id);
  679. pSta1.setString(4, yardAddr);
  680. pSta1.setString(5, yardAddr);
  681. pSta1.setString(6, yardAddr);
  682. pSta1.setString(7, yardAddr);
  683. // pSta1.setString(8,yardAddr);
  684. pSta1.executeUpdate();
  685. pSta1.close();
  686. // 将信息插入移剁表
  687. long seq = 0;
  688. String sqlqmaxseq = "select max(ROLL_SEQ) ROLL_SEQ from c_tbk08_coil_move\n";
  689. pSta1 = conn.prepareStatement(sqlqmaxseq);
  690. ResultSet rs = pSta1.executeQuery();
  691. if (rs.next()) {
  692. seq = rs.getLong("ROLL_SEQ");
  693. }
  694. rs.close();
  695. pSta1.close();
  696. sqlBuff = new StringBuffer();
  697. sqlBuff
  698. .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) " +
  699. "VALUES(?,?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'05')\n");
  700. pSta1 = conn.prepareStatement(sqlBuff.toString());
  701. pSta1.setLong(1, seq + 1);
  702. pSta1.setString(2, "");
  703. pSta1.setString(3, yardAddr);
  704. pSta1.setString(4, coilNo);
  705. pSta1.setString(5, reg_id);
  706. pSta1.setString(6, entryShift);
  707. pSta1.setString(7, entryGroup);
  708. pSta1.setString(8, entryDtime);
  709. pSta1.setString(9, reg_id);
  710. pSta1.executeUpdate();
  711. pSta1.close();
  712. // 分析c_tbf03_spec_roll
  713. String tbfrollno = "";
  714. String sqlTBFSM = "select max(ROLL_NO) ROLL_NO from c_tbf03_spec_mill where coil_no ='"
  715. + coilNo + "'";
  716. pSta1 = conn.prepareStatement(sqlTBFSM);
  717. ResultSet rsTBF = pSta1.executeQuery();
  718. if (rsTBF.next()) {
  719. tbfrollno = rsTBF.getString("ROLL_NO");
  720. }
  721. rsTBF.close();
  722. pSta1.close();
  723. sqlBuff = new StringBuffer();
  724. sqlBuff.append("update c_tbf03_spec_roll set STATUS_CD = ?\n");
  725. sqlBuff.append(" where roll_no = ?\n");
  726. sqlBuff
  727. .append(" AND STATUS_CD <> 'D' and (select count(c_coil_no) from c_tbf03_spec_mill where roll_no = ?\n");
  728. sqlBuff
  729. .append(" ) =(select count(c_coil_no) from c_tbf03_spec_mill where roll_no = ?\n");
  730. sqlBuff.append(" and (STATUS_CD = 'D' OR STATUS_CD = 'E'))\n");
  731. pSta1 = conn.prepareStatement(sqlBuff.toString());
  732. pSta1.setString(1, "D");
  733. pSta1.setString(2, tbfrollno);
  734. pSta1.setString(3, tbfrollno);
  735. pSta1.setString(4, tbfrollno);
  736. pSta1.executeUpdate();
  737. pSta1.close();
  738. // 吊销钢卷后重新下发计划
  739. String strx = rePlan(conn);
  740. System.out.println("=====================================>>>"
  741. + strx);
  742. if ("1".equals(strx)) {
  743. conn.commit();
  744. } else {
  745. conn.rollback();
  746. cro.setV_errCode(-1);
  747. cro.setV_errMsg("吊销失败!");
  748. }
  749. } catch (Exception ex) {
  750. System.out.print(ex.toString());
  751. if (conn != null) {
  752. conn.rollback();
  753. }
  754. cro.setV_errCode(-1);
  755. cro.setV_errMsg("吊销失败!");
  756. } finally {
  757. try {
  758. //添加了出现异常时关闭pSta1
  759. if (pSta1 != null) {
  760. pSta1.close();
  761. }
  762. if (conn != null && !conn.isClosed()) {
  763. conn.close();
  764. }
  765. } catch (Exception e) {
  766. // TODO: handle exception
  767. }
  768. }
  769. return cro;
  770. }
  771. // 调用计划重新下发函数
  772. private String rePlan(Connection conn) throws SQLException {
  773. String rtMsg = "";
  774. String sql = XmlSqlParsersFactory.getSql("UIK050010_01.CALL");
  775. CallableStatement cstm = conn.prepareCall(sql);
  776. cstm.registerOutParameter(1, java.sql.Types.VARCHAR);
  777. cstm.execute();
  778. rtMsg = cstm.getString(1);
  779. cstm.close();
  780. return rtMsg;
  781. }
  782. /**
  783. * 订单进程标记
  784. *
  785. * @param P_BEF_ORD_NO
  786. * 前合同号
  787. * @param P_BEF_ORD_SEQ
  788. * 前订单号
  789. * @param P_ORD_NO
  790. * 合同号
  791. * @param P_ORD_SEQ
  792. * 订单号
  793. * @param P_BEF_PROG_CD
  794. * 前进程状态
  795. * @param P_PROG_CD
  796. * 进程状态
  797. * @param P_MAT_TYPE
  798. * 物料类型
  799. * @param P_MAT_NO
  800. * 物料号
  801. * @param P_WGT
  802. * 物料重量
  803. * @param P_REG_PRGM
  804. * 程序名
  805. * @param P_REG_ID
  806. * 操作人
  807. * @return
  808. */
  809. private void SAVE_ORD_STS(String P_BEF_ORD_NO, String P_BEF_ORD_SEQ,
  810. String P_ORD_NO, String P_ORD_SEQ, String P_BEF_PROG_CD,
  811. String P_PROG_CD, String P_MAT_TYPE, String P_MAT_NO, String P_WGT,
  812. String P_REG_PRGM, String P_REG_ID) throws SQLException {
  813. this.getDao("KgDao").ExcuteProcedure(
  814. XmlSqlParsersFactory.getSql("UIJ030020_03.CALL"),
  815. new String[] { P_BEF_ORD_NO, P_BEF_ORD_SEQ, P_ORD_NO,
  816. P_ORD_SEQ, P_BEF_PROG_CD, P_PROG_CD, P_MAT_TYPE,
  817. P_MAT_NO, P_WGT, P_REG_PRGM, P_REG_ID }, new String[0]);
  818. }
  819. /**
  820. * 订单进程整理 regId 操作人
  821. *
  822. * @return
  823. */
  824. private boolean ORD_STS_MAIN(String pgmId, String regId)
  825. throws SQLException {
  826. boolean flag = true;
  827. String retMsg = "";
  828. this.getDao("KgDao").ExcuteProcedure(
  829. XmlSqlParsersFactory.getSql("UIJ030020_02.CALL"),
  830. new String[] { pgmId, regId }, new String[] { retMsg });
  831. if (retMsg != null && !retMsg.equals("")) {
  832. flag = false;
  833. }
  834. return flag;
  835. }
  836. }