9efc3d58d069a2cf993d8ed5d8104a1a52b7dec8.svn-base 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. package UIJ.UIJ03;
  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.Statement;
  8. import java.sql.Types;
  9. import java.util.List;
  10. import java.util.Map;
  11. import UIJ.UIJ03.UIJ030051;
  12. import UIB.COM.ProduceFactory;
  13. import UIB.COM.XmlSqlParsersFactory;
  14. import CoreFS.SA01.CoreIComponent;
  15. import CoreFS.SA06.CoreReturnObject;
  16. /**
  17. * 发运明细回退
  18. *
  19. * @author siy
  20. * @date 2010-9-13
  21. */
  22. public class UIJ030050 extends CoreIComponent {
  23. /**
  24. * 根据发运指示号查询可回退的发运明细
  25. *
  26. * @param dlivDirNo
  27. * 发运指示号
  28. * @return CoreReturnObject
  29. * @throws SQLException
  30. */
  31. public CoreReturnObject queryShipRetRs(String dlivDirNo)
  32. throws SQLException {
  33. String shipProgCd = "08";// 发货明细结束
  34. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  35. return cro;
  36. }
  37. public CoreReturnObject queryShipRetAll(String dlivDirNo)
  38. throws SQLException {
  39. String shipProgCd = "08";// 发货明细结束
  40. CoreReturnObject cro = new CoreReturnObject();
  41. String sql = XmlSqlParsersFactory.getSql("UIJ030050_02.SELECT");
  42. cro = this.getDao("KgDao").ExcuteQuery(sql,
  43. new Object[] { dlivDirNo, dlivDirNo,dlivDirNo });
  44. return cro;
  45. }
  46. /**
  47. * 查询没有车号的发货明细的卷
  48. *
  49. * @param dlivDirNo
  50. * @return
  51. * @throws SQLException
  52. */
  53. public CoreReturnObject queryShipRetRsNoCarNo(String dlivDirNo)
  54. throws SQLException {
  55. String shipProgCd = "03";
  56. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  57. return cro;
  58. }
  59. private CoreReturnObject query(String dlivDirNo, String shipProgCd)
  60. throws SQLException {
  61. CoreReturnObject cro = new CoreReturnObject();
  62. String sql = XmlSqlParsersFactory.getSql("UIJ030050_01.SELECT");
  63. cro = this.getDao("KgDao").ExcuteQuery(sql,
  64. new Object[] { dlivDirNo, shipProgCd });
  65. return cro;
  66. }
  67. public CoreReturnObject update(String dlivDirNo) throws SQLException{
  68. CoreReturnObject cro = new CoreReturnObject();
  69. String sql="";
  70. try {
  71. //20131011
  72. sql ="UPDATE C_TBL02_COIL_COMM T SET t.SHIP_PROG_CD='08' WHERE T.DLIV_DIRNO='"+dlivDirNo+"'";
  73. cro = this.getDao("KgDao").ExcuteQuery(sql);
  74. } catch (Exception e) {
  75. }
  76. return cro;
  77. }
  78. public CoreReturnObject checkDliv(String dlivDirNo,String regid) throws SQLException{
  79. CoreReturnObject cro = new CoreReturnObject();
  80. String sql="";
  81. try {
  82. String sql2 = "select (sysdate - to_date(t.ACPT_DATE, 'yyyymmdd')) chktime from tbj02_coil_comm t where rownum =1 and t.DLIV_DIRNO='"
  83. + dlivDirNo + "'";
  84. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql2);
  85. boolean isClearing = false;// 销售是否已结算
  86. if (rs.next()) {
  87. String isChangeWgt = rs.getString("chktime");
  88. if (Double.valueOf(isChangeWgt)>2) {
  89. cro.setV_errCode(new Integer(-1));
  90. cro.setV_errMsg("已超过48小时,无法审批,请联系管理部门!");
  91. this.getDao("KgDao").closeRs(rs);
  92. return cro;
  93. }
  94. }
  95. //20131011
  96. this.getDao("KgDao").closeRs(rs);
  97. sql ="UPDATE tbj01_dliv_dir T SET t.LAST_MAN='"+regid+"',t.LAST_TIME=to_char(sysdate,'yyyymmddhh24mi') WHERE T.DLIV_DIRNO='"+dlivDirNo+"' ";
  98. cro = this.getDao("KgDao").ExcuteQuery(sql);
  99. } catch (Exception e) {
  100. }
  101. return cro;
  102. }
  103. /**
  104. * 发运明细回退
  105. *
  106. * @param dlivDirNo
  107. * @param regId
  108. * @return
  109. * @throws SQLException
  110. */
  111. public CoreReturnObject returnShipResult(String dlivDirNo, String regId,String return_reson)
  112. throws SQLException {
  113. CoreReturnObject cro = new CoreReturnObject();
  114. Map result = this.getDao("KgDao").CoreBeginTranscation();
  115. Connection conn = null;
  116. PreparedStatement pSta = null;
  117. Statement sta = null;
  118. String strValue;
  119. String url;
  120. String cod1,cod2;
  121. try {
  122. /*String sql = "select A.ISCHANGEWGT from TBJ02_COIL_COMM A WHERE A.DLIV_DIRNO = '"
  123. + dlivDirNo + "'";
  124. ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql);
  125. boolean isClearing = false;// 销售是否已结算
  126. if (rs.next()) {
  127. String isChangeWgt = rs.getString("ISCHANGEWGT");
  128. if (null == isChangeWgt || !"1".equals(isChangeWgt)) {
  129. isClearing = true;
  130. }
  131. }
  132. //20131011
  133. this.getDao("KgDao").closeRs(rs);*/
  134. /*
  135. UIJ030052 uij030052 = new UIJ030052();
  136. url="http://172.16.0.49/xg56/webservice/mesWaybillService/queryIsLock/"+dlivDirNo;
  137. String retr=uij030052.jsonPost(url, dlivDirNo);
  138. int loc=retr.indexOf("IS_LOCK");
  139. int loc1=retr.indexOf("RET_CODE");
  140. cod1=retr.substring(loc1+11, loc1+12);
  141. cod2=retr.substring(loc+10, loc+11);
  142. //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1)))
  143. if("0".equals(cod1)&&"1".equals(cod2))
  144. {
  145. cro.setV_errCode(new Integer(-1));
  146. cro.setV_errMsg("明细数据已经锁定,如要解锁,请联系物流中心!");
  147. }else
  148. {*/
  149. String sqlOut = "select DLIV_DIRNO from tbj01_dliv_dir where DLIV_DIRNO = ? AND LAST_MAN IS NULL";
  150. List listOut = this.getDao("KgDao").ExcuteQueryReturnList(sqlOut,
  151. new Object[] { dlivDirNo });
  152. UIJ030052 uij030052 = new UIJ030052();
  153. url="http://172.16.0.18:9090/TieQianinterface/services/MaterialOutInfo/materialoutinfo/"+dlivDirNo;
  154. String retr=uij030052.jsonPost(url, dlivDirNo);
  155. //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1)))
  156. if(retr.contains("false")&&listOut.size()>0)
  157. {
  158. cro.setV_errCode(new Integer(-1));
  159. cro.setV_errMsg("车辆已出厂,如要退回,请先审批!");
  160. }else
  161. {
  162. conn = this.getDao("KgDao").getConnection();
  163. conn.setAutoCommit(false);
  164. CallableStatement cstmt = conn
  165. .prepareCall("{?=call SqListNumbRollBack(?)}");
  166. cstmt.registerOutParameter(1, Types.VARCHAR);
  167. cstmt.setString(2, dlivDirNo);
  168. //cstmt.registerOutParameter(3, Types.INTEGER);
  169. cstmt.execute();
  170. strValue = cstmt.getString(1);
  171. cstmt.close();
  172. boolean isClearing = false;// 销售是否已结算
  173. if ( !"1".equals(strValue)) {
  174. isClearing = true;
  175. }
  176. if (isClearing) {
  177. cro.setV_errCode(new Integer(-1));
  178. cro.setV_errMsg("明细数据已经发送到销售,请联系销售退明细后成品才能进行明细回退!");
  179. } else {
  180. // 更新钢卷公共表钢卷状态及发运状态,清除质保书号
  181. String sql1 = XmlSqlParsersFactory
  182. .getSql("UIJ030050_01.UPDATE");
  183. this.getDao("KgDao").ExcuteNonQuery(sql1,
  184. new Object[] { regId, dlivDirNo });
  185. // 清除发运表发运信息
  186. String sql2 = XmlSqlParsersFactory
  187. .getSql("UIJ030050_02.UPDATE");
  188. this.getDao("KgDao").ExcuteNonQuery(sql2,
  189. new Object[] { dlivDirNo });
  190. // 更新运送表运送状态
  191. String sql3 = XmlSqlParsersFactory
  192. .getSql("UIJ030050_03.UPDATE");
  193. this.getDao("KgDao").ExcuteNonQuery(sql3,
  194. new Object[] { dlivDirNo });
  195. // 删除结算接口表数据
  196. String sql4 = XmlSqlParsersFactory
  197. .getSql("UIJ030050_01.DELETE");
  198. this.getDao("KgDao").ExcuteNonQuery(sql4,
  199. new Object[] { dlivDirNo });
  200. // 将质保书改为失效
  201. String sql5 = XmlSqlParsersFactory
  202. .getSql("UIJ030050_04.UPDATE");
  203. this.getDao("KgDao").ExcuteNonQuery(sql5,
  204. new Object[] { dlivDirNo });
  205. //铁前明细删除
  206. String sql6 = XmlSqlParsersFactory
  207. .getSql("UIJ030030_09.CALL");
  208. this.getDao("KgDao").ExcuteProcedure(sql6,new String[] {"3",dlivDirNo,"","","","","","","4001LZ1","冷轧线"},
  209. new String[0]);
  210. //更新货运中国标识
  211. String sql7 = XmlSqlParsersFactory
  212. .getSql("UIJ030030_12.CALL");
  213. this.getDao("KgDao").ExcuteProcedure(sql7,new String[] {"3","",dlivDirNo,"","","","","","","C",regId},
  214. new String[0]);
  215. //记录退回日志
  216. String sql8 = XmlSqlParsersFactory
  217. .getSql("UIJ030030_13.CALL");
  218. this.getDao("KgDao").ExcuteProcedure(sql8,new String[] {"3","",dlivDirNo,"","","","","",return_reson,"C",regId},
  219. new String[0]);
  220. //调用存货异动点存储过程
  221. ProduceFactory PD= new ProduceFactory();
  222. PD.ErpDataCover("SZDLIVNO",dlivDirNo,"69A","1","N",regId,"酸轧退货");
  223. PD.ErpDataCover("SZDLIVNO",dlivDirNo,"11AC","0","N",regId,"酸轧退货取消判定");
  224. }
  225. //conn.commit();
  226. this.getDao("KgDao").CoreCommit(result);
  227. }
  228. } catch (SQLException ex) {
  229. this.getDao("KgDao").CoreRollBack(result);
  230. throw ex;
  231. }
  232. finally {
  233. if (conn != null && !conn.isClosed()) {
  234. conn.close();
  235. }
  236. }
  237. return cro;
  238. }
  239. }