23160c541f770cb38d5459b0119847f8e7236b2b.svn-base 28 KB

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