935897f488286052b4cbd28802fea3fab2f07f42.svn-base 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. package UIM;
  2. import java.sql.PreparedStatement;
  3. import java.sql.ResultSet;
  4. import java.sql.SQLException;
  5. import java.util.ArrayList;
  6. import java.util.Iterator;
  7. import java.util.List;
  8. import java.util.Map;
  9. import UIB.COM.ProduceFactory;
  10. import UIB.COM.XmlSqlParsersFactory;
  11. import CoreFS.SA01.CoreIComponent;
  12. import CoreFS.SA06.CoreReturnObject;
  13. /**
  14. * 冷轧原料库出库管理
  15. *
  16. * @author siy
  17. * @date 2010-08-19
  18. */
  19. public class UIM010090 extends CoreIComponent {
  20. // /**
  21. // * 查询酸轧计划
  22. // *
  23. // * @param ordNo
  24. // * 合同号
  25. // * @param ordSeq
  26. // * 订单号
  27. // * @param coilNo
  28. // * 热轧卷号
  29. // * @return CoreReturnObject
  30. // * @throws SQLException
  31. // */
  32. // public CoreReturnObject queryMillPlan(String coilNo) throws SQLException
  33. // {
  34. // CoreReturnObject cro = new CoreReturnObject();
  35. //
  36. // StringBuffer sqlBuffer = new StringBuffer();
  37. //
  38. // sqlBuffer.append("SELECT \n");
  39. // sqlBuffer.append("a.ROLL_MANA_NO --轧制单元号\n");
  40. // sqlBuffer.append(",a.ROLL_COIL_SEQ --单元内序号\n");
  41. // sqlBuffer.append(",a.COIL_EDT_SEQ --轧制序号\n");
  42. // sqlBuffer.append(",a.C_COIL_NO --冷卷号 \n");
  43. // sqlBuffer.append(",a.COIL_NO --热卷号 \n");
  44. // sqlBuffer.append(",a.SPEC_STL_GRD --酸轧牌号 \n");
  45. // sqlBuffer.append(",a.STL_GRD --热轧牌号 \n");
  46. // sqlBuffer.append(",a.STL_GRP_CD --钢号组 \n");
  47. // sqlBuffer.append(",a.COIL_THK --热卷厚度 \n");
  48. // sqlBuffer.append(",a.COIL_WTH --热卷宽度 \n");
  49. // sqlBuffer.append(",a.COIL_WGT --热卷重量 \n");
  50. // sqlBuffer.append(",b.CUR_LOAD_LOC --堆放位置 \n");
  51. // sqlBuffer.append(",a.ORD_NO --合同号 \n");
  52. // sqlBuffer.append(",a.ORD_SEQ --订单号 \n");
  53. // sqlBuffer.append(",a.ORD_THK --订单厚度 \n");
  54. // sqlBuffer.append(",a.ORD_WTH --订单宽度 \n");
  55. // sqlBuffer.append(",a.ORD_WGT --订单重量 \n");
  56. // sqlBuffer.append(",a.ORD_WGT_MIN --订单下限 \n");
  57. // sqlBuffer.append(",a.ORD_WGT_MAX --订单上限 \n");
  58. // sqlBuffer.append(",a.ORD_INDIA --订单内径 \n");
  59. // sqlBuffer.append(",a.ORD_OUTDIA --订单外径 \n");
  60. // sqlBuffer.append("FROM c_tbf03_spec_mill a, \n");
  61. // sqlBuffer.append("c_tbk02_coil_comm b \n");
  62. // sqlBuffer.append("WHERE a.COIL_NO = b.COIL_NO \n");
  63. // sqlBuffer.append("and a.STATUS_CD = 'A' \n");
  64. // sqlBuffer.append("and b.COIL_NO like ?||'%' \n");
  65. // sqlBuffer.append("ORDER BY a.ROLL_MANA_NO,a.ROLL_COIL_SEQ \n");
  66. //
  67. // cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  68. // new Object[] { coilNo });
  69. //
  70. // return cro;
  71. // }
  72. /**
  73. * 查询退回出库卷信息
  74. *
  75. * @param coilNo
  76. * 热轧卷号
  77. * @return CoreReturnObject
  78. */
  79. public CoreReturnObject queryOutCoil(String ordNo, String ordSeq,
  80. String coilNo) throws SQLException {
  81. CoreReturnObject cro = new CoreReturnObject();
  82. String sql = XmlSqlParsersFactory.getSql("UIM010090_01.SELECT");
  83. cro = this.getDao("KgDao").ExcuteQuery(sql,
  84. new Object[] { ordNo, ordSeq, coilNo });
  85. return cro;
  86. }
  87. /**
  88. * 原料库出库
  89. *
  90. * @param coilNo
  91. * @param regID
  92. * @param trnfShift
  93. * @param trnfGroup
  94. * @param trnfDtime
  95. * @param trnfType
  96. * @return
  97. * @throws SQLException
  98. */
  99. public CoreReturnObject saveCoilOut(String coilNo, String regID,
  100. String trnfShift, String trnfGroup, String trnfDtime,
  101. Integer trnfType) throws SQLException {
  102. CoreReturnObject cro = new CoreReturnObject();
  103. boolean crs = false;
  104. if (trnfType.intValue() == 1) {// 退帐面
  105. crs = returnCoil(coilNo, regID, trnfShift,
  106. trnfGroup, trnfDtime);
  107. } else {// 退实物
  108. // 清除原料库垛位表钢卷信息并将原料公共表钢卷垛位信息置为出库
  109. crs = cleanCoil(coilNo, regID, trnfShift,
  110. trnfGroup, trnfDtime);
  111. //调用存货异动点存储过程 20220408退账面不发送退回信息
  112. ProduceFactory PD= new ProduceFactory();
  113. PD.ErpDataCover("HCOIL",coilNo,"55A","0","N",regID,"热轧转出退回");
  114. PD.ErpDataCover("CORICOIL",coilNo,"55A","0","O",regID,"酸轧原料退库");
  115. }
  116. return cro;
  117. }
  118. /**
  119. * 清空钢卷库存信息
  120. *
  121. * @param outType
  122. * 出库类型
  123. * @param coilNo
  124. * 钢卷号
  125. * @param regId
  126. * 出库人
  127. * @param trnfShift
  128. * 出库班次
  129. * @param trnfGroup
  130. * 出库班组
  131. * @param tranTime
  132. * 出库时间
  133. * @return boolean
  134. */
  135. private boolean cleanCoil(String coilNo, String regId,
  136. String trnfShift, String trnfGroup, String trnfTime)
  137. throws SQLException {
  138. Map result = this.getDao("KgDao").CoreBeginTranscation();
  139. try {
  140. // 根据钢卷号查询垛位编号
  141. String sql1 = "select clf_no from c_tbk08_coil_yard where coil_no = '"
  142. + coilNo + "'";
  143. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql1);
  144. long yardNo = 0;
  145. // 如果钢卷在原料库中,查询出相应的垛位编号
  146. if (rs.next()) {
  147. yardNo = Long.parseLong(rs.getObject("clf_no").toString());
  148. } else {
  149. this.getDao("KgDao").closeRs(rs);
  150. return false;
  151. }
  152. //20131014系统连接异常优化
  153. this.getDao("KgDao").closeRs(rs);
  154. // 根据垛位编号清除钢卷信息
  155. String sql2 = "update c_tbk08_coil_yard set coil_no = '' where clf_no = ?";
  156. this.getDao("KgDao").ExcuteNonQuery(sql2, new Object[] { yardNo });
  157. // 修改原料公共表钢卷操作信息
  158. String sql3 = XmlSqlParsersFactory.getSql("UIM010090_01.UPDATE");
  159. this.getDao("KgDao").ExcuteNonQuery(
  160. sql3,
  161. new Object[] { regId, trnfShift, trnfGroup, trnfTime,
  162. coilNo });
  163. //修改原料_D公共表钢卷操作信息,防止退回后降级充当不同合同,导致订单进程统计出问题
  164. // String sql4 = XmlSqlParsersFactory.getSql("UIM010090_04.UPDATE");
  165. // this.getDao("KgDao").ExcuteNonQuery(
  166. // sql4,
  167. // new Object[] { coilNo });
  168. this.getDao("KgDao").CoreCommit(result);
  169. } catch (Exception ex) {
  170. this.getDao("KgDao").CoreRollBack(result);
  171. ex.printStackTrace();
  172. return false;
  173. }
  174. return true;
  175. }
  176. /**
  177. * 退帐面回热轧
  178. *
  179. * @param outType
  180. * @param coilNo
  181. * @param regId
  182. * @param trnfShift
  183. * @param trnfGroup
  184. * @param trnfTime
  185. * @return
  186. * @throws SQLException
  187. */
  188. private boolean returnCoil(String coilNo, String regId,
  189. String trnfShift, String trnfGroup, String trnfTime)
  190. throws SQLException {
  191. Map result = this.getDao("KgDao").CoreBeginTranscation();
  192. try {
  193. // 根据钢卷号查询垛位编号
  194. String sql1 = "select cur_load_loc from c_tbk02_coil_comm where coil_no = '"
  195. + coilNo + "'";
  196. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql1);
  197. String curLoadLoc = "";
  198. // 查询垛位
  199. if (rs.next()) {
  200. curLoadLoc = rs.getObject("CUR_LOAD_LOC").toString();
  201. } else {
  202. this.getDao("KgDao").closeRs(rs);
  203. return false;
  204. }
  205. //20131014系统连接异常优化
  206. this.getDao("KgDao").closeRs(rs);
  207. // 修改原料公共表钢卷操作信息
  208. String sql2 = XmlSqlParsersFactory.getSql("UIM010090_02.UPDATE");
  209. this.getDao("KgDao").ExcuteNonQuery(
  210. sql2,
  211. new Object[] { trnfShift, trnfGroup, regId, trnfTime,
  212. coilNo });
  213. // 修改原料_D表钢卷操作信息
  214. String sql4 = XmlSqlParsersFactory.getSql("UIM010090_04.UPDATE");
  215. this.getDao("KgDao").ExcuteNonQuery(sql4,
  216. new Object[] { coilNo });
  217. // 修改热轧公共表钢卷操作信息
  218. String sql3 = XmlSqlParsersFactory.getSql("UIM010090_03.UPDATE");
  219. this.getDao("KgDao").ExcuteNonQuery(sql3,
  220. new Object[] { curLoadLoc, coilNo });
  221. this.getDao("KgDao").CoreCommit(result);
  222. } catch (Exception ex) {
  223. this.getDao("KgDao").CoreRollBack(result);
  224. ex.printStackTrace();
  225. return false;
  226. }
  227. return true;
  228. }
  229. public CoreReturnObject deletereturn(String coilNo,String regId,
  230. String trnfShift, String trnfGroup, String trnfTime)
  231. throws SQLException {
  232. CoreReturnObject cro = new CoreReturnObject();
  233. Map result = this.getDao("KgDao").CoreBeginTranscation();
  234. try {
  235. String sql = " select * from TBH02_COIL_COMM A WHERE A.OLD_SAMPL_NO= '"
  236. + coilNo + "' AND A.ORD_FL='1' AND A.ORD_NO IS NOT NULL ";
  237. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql);
  238. if (rs.next()) {
  239. this.getDao("KgDao").closeRs(rs);
  240. cro.setV_errCode(new Integer(-1));
  241. cro.setV_errMsg("钢卷已经在热轧进行了充当,无法撤销!");
  242. return cro;
  243. }
  244. else {
  245. this.getDao("KgDao").closeRs(rs);
  246. // 撤销退回的卷入冷轧库
  247. String sql1 = XmlSqlParsersFactory
  248. .getSql("UIM010090_05.UPDATE");
  249. this.getDao("KgDao").ExcuteNonQuery(sql1,
  250. new Object[] {trnfShift, trnfGroup,regId,trnfTime,coilNo});
  251. // 修改热轧库存数据为移送完成并且钢卷出库
  252. String sql2 = XmlSqlParsersFactory
  253. .getSql("UIM010090_06.UPDATE");
  254. this.getDao("KgDao").ExcuteNonQuery(sql2,
  255. new Object[] { coilNo });
  256. }
  257. this.getDao("KgDao").CoreCommit(result);
  258. } catch (SQLException ex) {
  259. this.getDao("KgDao").CoreRollBack(result);
  260. throw ex;
  261. }
  262. return cro;
  263. }
  264. }