033fb80042dbd5ce3bcd041a2381d2b9ccf9ddc9.svn-base 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. package UIM.UIM06;
  2. import java.sql.CallableStatement;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Types;
  8. import java.util.ArrayList;
  9. import java.util.Map;
  10. import CoreFS.SA01.CoreIComponent;
  11. import CoreFS.SA06.CoreReturnObject;
  12. public class UIM060020 extends CoreIComponent {
  13. /**
  14. * 外购卷入库
  15. *
  16. * @param coilNo
  17. * @param entryInfo
  18. * @param coilInfo
  19. * @param qltyList
  20. * @param chemList
  21. * @return
  22. * @throws SQLException
  23. */
  24. public CoreReturnObject saveCoilYard(String coilNo, String[] entryInfo,
  25. String[] coilInfo, ArrayList<String[]> qltyList,
  26. ArrayList<String[]> chemList) throws SQLException {
  27. CoreReturnObject cro = new CoreReturnObject();
  28. Map result = this.getDao("KgDao").CoreBeginTranscation();
  29. try {
  30. // 将入库操作信息和垛位信息加入冷轧原料公共表
  31. StringBuffer sqlucomm = new StringBuffer();
  32. sqlucomm
  33. .append("insert into c_tbk02_coil_comm (coil_no,coil_stat,cur_prog_cd,cur_prog_cd_dtime\n");
  34. sqlucomm
  35. .append(" ,cur_prog_cd_pgm,coil_len,coil_india,coil_outdia,coil_thk,coil_wth,act_wgt\n");
  36. sqlucomm
  37. .append(" ,ord_fl,prodnm_cd,spec_abbsym,ord_use_cd,stl_grd,cur_load_loc,cur_load_loc_dtime\n");
  38. sqlucomm
  39. .append(" ,yard_entry_reg,yard_entry_shift,yard_entry_group,yard_entry_dtime,yard_entry_use_time\n");
  40. sqlucomm
  41. .append(" ,old_sampl_no) values(?,2,'PRC',TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'UIM060020'\n");
  42. sqlucomm
  43. .append(" ,?,?,?,?,?,?,'2',?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),?)\n");
  44. this.getDao("KgDao").ExcuteNonQuery(
  45. sqlucomm.toString(),
  46. new Object[] { coilNo, coilInfo[6], coilInfo[9],
  47. coilInfo[8], coilInfo[4], coilInfo[5], coilInfo[7],
  48. coilInfo[3], coilInfo[8], coilInfo[2], coilInfo[1],
  49. entryInfo[0], entryInfo[4], entryInfo[1],
  50. entryInfo[2], entryInfo[3], coilNo });
  51. // 将钢卷信息加入垛位表
  52. String sqluyard = "update c_tbk08_coil_yard set COIL_NO = ?,COIL_SOURCE = 1, "
  53. + "MOD_ID = ?, MOD_TIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')"
  54. + " where CLF_NAME = substr(?,1,1) and CLF_COL = substr(?,3,2)"
  55. + " and CLF_ROW = substr(?,7,2) and CLF_FL = DECODE(substr(?,5,1),'A','1','B','2','C','3','1')";
  56. this.getDao("KgDao").ExcuteNonQuery(
  57. sqluyard,
  58. new Object[] { coilNo, entryInfo[4], entryInfo[0],
  59. entryInfo[0], entryInfo[0], entryInfo[0] });
  60. // 入库完成后将入库记录加入移垛记录,便于跟踪钢卷移动记录
  61. long seq = 0;// 移垛记录表主键
  62. String sqlqmaxseq = "select max(ROLL_SEQ) ROLL_SEQ from c_tbk08_coil_move";
  63. PreparedStatement pSta = this.getDao("KgDao").getPreparedStatement(
  64. sqlqmaxseq);
  65. ResultSet rs = pSta.executeQuery();
  66. if (rs.next()) {
  67. seq = rs.getLong("ROLL_SEQ");
  68. }
  69. try{
  70. rs.close();
  71. Connection con = pSta.getConnection(); //目前未发现有什么作用,暂时屏蔽
  72. pSta.close();
  73. con.close();
  74. } catch (Exception e) {
  75. }
  76. String sqlimove = "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)VALUES(?,?,?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'))";
  77. this.getDao("KgDao").ExcuteNonQuery(
  78. sqlimove,
  79. new Object[] { seq + 1, "", entryInfo[0], coilNo,
  80. entryInfo[4], entryInfo[1], entryInfo[2],
  81. entryInfo[3], entryInfo[4] });
  82. // 成份信息
  83. String chargeNo = coilInfo[10];// 炉号
  84. String procCd = "JJ";// 工序
  85. String chemSeq = "01";// 次数
  86. String chemValTp = "L";// 实绩编码
  87. String chemL2ProcCd = "CP";
  88. int chemSize = chemList.size();
  89. for (int i = 0; i < chemSize; i++) {
  90. String[] param = chemList.get(i);
  91. String chemCd = param[0];// 元素名
  92. String chemVal = param[1];// 实际值
  93. String remark = param[2];// 备注
  94. StringBuffer chemBuffer = new StringBuffer();
  95. chemBuffer
  96. .append(" insert into tbb02_work_ingr(charge_no,proc_cd,chem_seq,chem_cd\n");
  97. chemBuffer
  98. .append(" ,chem_val_tp,chem_val,reg_id,reg_dtime,reg_pgm_id,chem_l2_proc_cd,chem_l2_val,ingr_rmk)\n");
  99. chemBuffer
  100. .append(" values(?,?,?,?,?,?,?,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),?,?,?,?)\n");
  101. this.getDao("KgDao").ExcuteNonQuery(
  102. chemBuffer.toString(),
  103. new Object[] { chargeNo, procCd, chemSeq, chemCd,
  104. chemValTp, chemVal, entryInfo[4],
  105. "UIM060020", chemL2ProcCd, chemVal, remark });
  106. }
  107. // 性能信息
  108. String proName = "{call ACID_QLTY_DCS.ACID_OUT_SOURCING(?,?,?,?,?,?,?)}";
  109. Connection proConn = null;
  110. CallableStatement cs = null;
  111. try{
  112. proConn = this.getDao("KgDao").getConnection();
  113. int qltySize = qltyList.size();
  114. for (int i = 0; i < qltySize; i++) {
  115. String[] param = qltyList.get(i);
  116. cs = proConn.prepareCall(proName);
  117. cs.setString(1, coilNo);
  118. cs.setString(2, param[0]);
  119. cs.setString(3, param[1]);
  120. cs.setString(4, param[2]);
  121. cs.setString(5, param[3]);
  122. cs.setString(6, param[4]);
  123. cs.registerOutParameter(7,Types.VARCHAR);
  124. cs.execute();
  125. String rtMsg = cs.getString(7);
  126. cs.close();
  127. if(!rtMsg.equals("YY")){
  128. cro.setV_errCode(-1);
  129. cro.setV_errMsg("生成冷轧外购卷试样号及性能失败!");
  130. proConn.close();
  131. this.getDao("KgDao").CoreRollBack(result);// 回滚
  132. return cro;
  133. }
  134. }
  135. proConn.close();
  136. }catch(Exception exp){
  137. exp.printStackTrace();
  138. if(cs != null){
  139. cs.close();
  140. }
  141. if(proConn != null){
  142. proConn.close();
  143. }
  144. this.getDao("KgDao").CoreRollBack(result);// 回滚
  145. return cro;
  146. }
  147. this.getDao("KgDao").CoreCommit(result);// 提交
  148. } catch (Exception ex) {
  149. ex.printStackTrace();
  150. this.getDao("KgDao").CoreRollBack(result);// 回滚
  151. }
  152. return cro;
  153. }
  154. /**
  155. * 查询所有标准号
  156. *
  157. * @return
  158. * @throws SQLException
  159. */
  160. public CoreReturnObject querySpecAbbsymList() throws SQLException {
  161. CoreReturnObject cro = new CoreReturnObject();
  162. String sql = "SELECT DISTINCT T.SPEC_ABBSYM FROM TBB01_KEY_PROD T";
  163. cro = this.getDao("KgDao").ExcuteQuery(sql);
  164. return cro;
  165. }
  166. /**
  167. * 查询所有牌号
  168. *
  169. * @return
  170. * @throws SQLException
  171. */
  172. public CoreReturnObject querySpecStlGrdList() throws SQLException {
  173. CoreReturnObject cro = new CoreReturnObject();
  174. String sql = "SELECT DISTINCT T.SPEC_STL_GRD FROM TBB01_KEY_PROD T";
  175. cro = this.getDao("KgDao").ExcuteQuery(sql);
  176. return cro;
  177. }
  178. /**
  179. * 查询所有交货状态
  180. *
  181. * @return
  182. * @throws SQLException
  183. */
  184. public CoreReturnObject queryProdNmList() throws SQLException {
  185. CoreReturnObject cro = new CoreReturnObject();
  186. String sql = "SELECT DISTINCT T.PRDNM_CD FROM TBB01_KEY_PROD T";
  187. cro = this.getDao("KgDao").ExcuteQuery(sql);
  188. return cro;
  189. }
  190. /**
  191. * 查询所有订单用途
  192. *
  193. * @return
  194. * @throws SQLException
  195. */
  196. public CoreReturnObject queryOrdUseTyList() throws SQLException {
  197. CoreReturnObject cro = new CoreReturnObject();
  198. String sql = "SELECT T.SM_CD , T.SM_CFNM FROM TBZ00_COMMCD T WHERE T.LG_CD = 'A01007' AND UPPER(USED_YN) = 'Y' ORDER BY SM_CFNM";
  199. cro = this.getDao("KgDao").ExcuteQuery(sql);
  200. return cro;
  201. }
  202. /**
  203. * 查询所有成份信息
  204. *
  205. * @return
  206. * @throws SQLException
  207. */
  208. public CoreReturnObject queryChemList() throws SQLException {
  209. CoreReturnObject cro = new CoreReturnObject();
  210. StringBuffer sqlBuffer = new StringBuffer();
  211. sqlBuffer.append(" SELECT \n");
  212. sqlBuffer.append(" T1.CHEM_CD \n");
  213. sqlBuffer
  214. .append(" ,( CASE WHEN T1.COMP_YN = 'Y' THEN (CASE WHEN T1.COMP_DETAIL='复合元素' THEN T1.COMP_CAL ELSE T1.COMP_DETAIL END ) ELSE T1.CHEM_CD END ) CHEM_DIS \n");
  215. sqlBuffer
  216. .append(" FROM TBB01_SEQ_INGR T1 ORDER BY T1.COMP_YN,T1.DISPLAY_SEQ \n");
  217. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString());
  218. return cro;
  219. }
  220. /**
  221. * 查询材质信息
  222. *
  223. * @param prdNmCd
  224. * @param specAbbsym
  225. * @param specStlGrd
  226. * @param ordUseTp
  227. * @param thk
  228. * @return
  229. * @throws SQLException
  230. */
  231. public CoreReturnObject queryQltyList(String prdNmCd, String specAbbsym,
  232. String specStlGrd, String ordUseTp, Double thk) throws SQLException {
  233. CoreReturnObject cro = new CoreReturnObject();
  234. StringBuffer sqlBuffer = new StringBuffer();
  235. sqlBuffer
  236. .append("SELECT t1.QLTY_CD_CFNM , T2.QLTY_MIN , T2.QLTY_MAX FROM TBB01_SEQ_QLTY T1 , TBB01_SPEC_QLTY T2\n");
  237. sqlBuffer
  238. .append(" WHERE T1.QLTY_CD = T2.QLTY_CD(+)\n");
  239. sqlBuffer.append(" AND T2.PRDNM_CD(+) = ? --交货状态\n");
  240. sqlBuffer.append(" AND T2.SPEC_ABBSYM(+) = ? --标准号\n");
  241. sqlBuffer.append(" AND T2.SPEC_STL_GRD(+) = ? --标准牌号\n");
  242. sqlBuffer.append(" AND T2.ORD_USE_TP(+) = ? --订单用途\n");
  243. sqlBuffer.append(" AND T2.THK_MIN(+) <= ? --厚度\n");
  244. sqlBuffer.append(" AND T2.THK_MAX(+) >= ? --厚度\n");
  245. cro = this.getDao("KgDao").ExcuteQuery(
  246. sqlBuffer.toString(),
  247. new Object[] { prdNmCd, specAbbsym, specAbbsym, ordUseTp, thk,
  248. thk });
  249. return cro;
  250. }
  251. public CoreReturnObject queryColdCoilNo(String coilNo) throws SQLException {
  252. CoreReturnObject cro = new CoreReturnObject();
  253. int haveCoil = 0;
  254. String sql = "select count(coil_no) count from c_tbk02_coil_comm where coil_no = '"
  255. + coilNo + "'";
  256. PreparedStatement pretStat = this.getDao("KgDao").getPreparedStatement(sql);
  257. ResultSet rs = pretStat.executeQuery();
  258. if (rs.next()) {
  259. haveCoil = rs.getInt("COUNT");
  260. }
  261. cro.setResult(haveCoil);
  262. try{
  263. rs.close();
  264. Connection con = pretStat.getConnection(); //关闭连接
  265. pretStat.close();
  266. con.close();
  267. } catch (Exception e) {
  268. }
  269. return cro;
  270. }
  271. }