dac98642b0408d416cad52e16c2fbcd2aefcb63b.svn-base 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package UIM;
  2. import java.io.StringWriter;
  3. import java.sql.Connection;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import javax.xml.parsers.DocumentBuilder;
  10. import javax.xml.parsers.DocumentBuilderFactory;
  11. import javax.xml.parsers.ParserConfigurationException;
  12. import javax.xml.transform.OutputKeys;
  13. import javax.xml.transform.Transformer;
  14. import javax.xml.transform.TransformerException;
  15. import javax.xml.transform.TransformerFactory;
  16. import javax.xml.transform.dom.DOMSource;
  17. import javax.xml.transform.stream.StreamResult;
  18. import org.w3c.dom.Document;
  19. import org.w3c.dom.Element;
  20. import UIB.COM.XmlSqlParsersFactory;
  21. import UIM.UIM01.BEANS.YardArea;
  22. import CoreFS.SA01.CoreIComponent;
  23. import CoreFS.SA06.CoreReturnObject;
  24. /**
  25. * 冷轧中间库库存现况查询
  26. *
  27. * @author siy
  28. * @date 2010-09-02
  29. */
  30. public class UIM010150 extends CoreIComponent {
  31. /**
  32. * 查询库存区域信息
  33. *
  34. * @param areaType
  35. * @return
  36. * @throws SQLException
  37. */
  38. public CoreReturnObject queryYardArea() throws SQLException {
  39. CoreReturnObject cro = new CoreReturnObject();
  40. // 查询区域信息
  41. String sql = XmlSqlParsersFactory.getSql("UIM010150_01.SELECT");
  42. PreparedStatement prepStat = this.getDao("KgDao").getPreparedStatement(
  43. sql);
  44. ResultSet rs = prepStat.executeQuery();
  45. List<YardArea> list = new ArrayList<YardArea>();
  46. YardArea area = null;
  47. while (rs.next()) {
  48. area = new YardArea();
  49. area.setAreaName(rs.getString("area_name"));
  50. // 查询区域下列信息
  51. sql = XmlSqlParsersFactory.getSql("UIM010150_02.SELECT");
  52. PreparedStatement prepStat2 = this.getDao("KgDao")
  53. .getPreparedStatement(sql.toString());
  54. prepStat2.setInt(1, Integer.parseInt(
  55. area.getAreaName().split(" ")[0].split("-")[0], 10));
  56. prepStat2.setInt(2, Integer.parseInt(
  57. area.getAreaName().split(" ")[0].split("-")[1], 10));
  58. ResultSet rs2 = prepStat2.executeQuery();
  59. List<String> cols = new ArrayList<String>();
  60. while (rs2.next()) {
  61. cols.add(rs2.getString("clf_name"));
  62. }
  63. area.setYardCols(cols.toArray());
  64. rs2.close();
  65. Connection con2 = prepStat2.getConnection();
  66. prepStat2.close();
  67. con2.close();
  68. list.add(area);
  69. }
  70. rs.close();
  71. Connection con = prepStat.getConnection();
  72. prepStat.close();
  73. con.close();
  74. String xmlStr = areaToXMLString(list);
  75. cro.setResult(xmlStr);
  76. return cro;
  77. }
  78. /**
  79. * 区域列信息转换成XML字符串
  80. *
  81. * @param list
  82. * @return
  83. */
  84. private String areaToXMLString(List<YardArea> list) {
  85. String xmlStr = null;
  86. if (null != list && 0 < list.size()) {
  87. try {
  88. DocumentBuilderFactory dbf = DocumentBuilderFactory
  89. .newInstance();
  90. DocumentBuilder db = dbf.newDocumentBuilder();
  91. Document doc = db.newDocument();
  92. Element root = doc.createElement("areas");
  93. doc.appendChild(root);
  94. for (int i = 0; i < list.size(); i++) {
  95. YardArea area = list.get(i);
  96. Element areaEle = doc.createElement("area");
  97. areaEle.setAttribute("name", area.getAreaName());
  98. root.appendChild(areaEle);
  99. Object[] cols = area.getYardCols();
  100. if (null != cols) {
  101. for (int j = 0; j < cols.length; j++) {
  102. Element colElement = doc.createElement("row");
  103. colElement.setAttribute("name", cols[j].toString());
  104. areaEle.appendChild(colElement);
  105. }
  106. }
  107. }
  108. TransformerFactory transFactory = TransformerFactory
  109. .newInstance();
  110. Transformer transFormer = transFactory.newTransformer();
  111. transFormer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
  112. DOMSource domSource = new DOMSource(doc);
  113. StringWriter sw = new StringWriter();
  114. StreamResult xmlResult = new StreamResult(sw);
  115. transFormer.transform(domSource, xmlResult);
  116. xmlStr = sw.toString();
  117. } catch (ParserConfigurationException e) {
  118. // TODO Auto-generated catch block
  119. e.printStackTrace();
  120. } catch (TransformerException te) {
  121. te.printStackTrace();
  122. }
  123. }
  124. return xmlStr;
  125. }
  126. /**
  127. * 查询每行垛位数及钢卷数
  128. *
  129. * @param areaType
  130. * @return
  131. * @throws SQLException
  132. */
  133. public CoreReturnObject queryColCoils(Integer areaType) throws SQLException {
  134. CoreReturnObject cro = new CoreReturnObject();
  135. String sql = XmlSqlParsersFactory.getSql("UIM010150_03.SELECT");
  136. cro = this.getDao("KgDao").ExcuteQuery(sql,
  137. new Object[] { areaType.intValue() });
  138. return cro;
  139. }
  140. /**
  141. * 查询钢卷总数及综合判定总数
  142. *
  143. * @param areaType
  144. * @return
  145. * @throws SQLException
  146. */
  147. public CoreReturnObject queryCoilCount(Integer areaType)
  148. throws SQLException {
  149. CoreReturnObject cro = new CoreReturnObject();
  150. String sql = XmlSqlParsersFactory.getSql("UIM010150_04.SELECT");
  151. cro = this.getDao("KgDao").ExcuteQuery(sql,
  152. new Object[] { areaType.intValue() });
  153. return cro;
  154. }
  155. public CoreReturnObject queryYardCols(Integer areaType, String coilRow) {
  156. CoreReturnObject cro = new CoreReturnObject();
  157. String sql = XmlSqlParsersFactory.getSql("UIM010150_05.SELECT");
  158. cro = this.getDao("KgDao").ExcuteQuery(sql,
  159. new Object[] { areaType.intValue(), coilRow });
  160. return cro;
  161. }
  162. /**
  163. * 查询区域下一行的垛位中钢卷信息
  164. *
  165. * @param areaType
  166. * @param coilCol
  167. * @return
  168. */
  169. public CoreReturnObject queryYardColCoils(Integer areaType, String coilRow) {
  170. CoreReturnObject cro = new CoreReturnObject();
  171. String sql = XmlSqlParsersFactory.getSql("UIM010150_06.SELECT");
  172. cro = this.getDao("KgDao").ExcuteQuery(sql,
  173. new Object[] { areaType.intValue(), coilRow });
  174. return cro;
  175. }
  176. /**
  177. * 查询一行中编号最小的列
  178. *
  179. * @param areaType
  180. * @param areaNo
  181. * @param coilCol
  182. * @return
  183. * @throws SQLException
  184. */
  185. public CoreReturnObject queryMinYardCol(Integer areaType, String coilCol)
  186. throws SQLException {
  187. CoreReturnObject cro = new CoreReturnObject();
  188. String sql = XmlSqlParsersFactory.getSql("UIM010150_07.SELECT");
  189. PreparedStatement pSta = this.getDao("KgDao").getPreparedStatement(sql);
  190. pSta.setInt(1, areaType.intValue());
  191. pSta.setString(2, coilCol);
  192. ResultSet rs = pSta.executeQuery();
  193. int minRow = 1;
  194. if (rs.next()) {
  195. minRow = rs.getInt("CLF_COL");
  196. }
  197. cro.setResult(minRow);
  198. rs.close();
  199. Connection con = pSta.getConnection();
  200. pSta.close();
  201. con.close();
  202. return cro;
  203. }
  204. }