b4f1b55503a8030716d8f4a54124c9f99603bbcf.svn-base 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package UIJ.UIJ04;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. import CoreFS.SA01.CoreIComponent;
  5. import CoreFS.SA06.CoreReturnObject;
  6. /**
  7. * 发运明细回退
  8. *
  9. * @author siy
  10. * @date 2010-9-13
  11. */
  12. public class UIJ040050 extends CoreIComponent {
  13. /**
  14. * 根据发运指示号查询可回退的发运明细
  15. *
  16. * @param dlivDirNo
  17. * 发运指示号
  18. * @return CoreReturnObject
  19. * @throws SQLException
  20. */
  21. public CoreReturnObject queryShipRetRs(String dlivDirNo)
  22. throws SQLException {
  23. String shipProgCd = "08";// 发货明细结束
  24. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  25. return cro;
  26. }
  27. /**
  28. * 查询没有车号的发货明细的卷
  29. *
  30. * @param dlivDirNo
  31. * @return
  32. * @throws SQLException
  33. */
  34. public CoreReturnObject queryShipRetRsNoCarNo(String dlivDirNo)
  35. throws SQLException {
  36. String shipProgCd = "03";
  37. CoreReturnObject cro = this.query(dlivDirNo, shipProgCd);
  38. return cro;
  39. }
  40. private CoreReturnObject query(String dlivDirNo, String shipProgCd)
  41. throws SQLException {
  42. CoreReturnObject cro = new CoreReturnObject();
  43. StringBuffer sqlBuffer = new StringBuffer();
  44. sqlBuffer.append("SELECT A.OLD_SAMPL_NO\n");
  45. sqlBuffer.append(" ,A.DLIV_DIRNO\n");
  46. sqlBuffer.append(" ,A.SHIP_DIRNO\n");
  47. sqlBuffer.append(" ,A.SHIP_INVNO\n");
  48. sqlBuffer.append(" ,A.CUR_PROG_CD\n");
  49. sqlBuffer.append(" ,A.COIL_STAT\n");
  50. sqlBuffer.append(" ,A.SHIP_PROG_CD\n");
  51. sqlBuffer.append(" ,A.TRNF_DTIME\n");
  52. sqlBuffer.append(" ,DECODE(C.DLIV_TP,'C','汽运','T','火运') DLIV_TP \n");
  53. sqlBuffer.append(" ,A.TRANS_CAR_NO\n");
  54. sqlBuffer.append(" ,A.TRNF_REG\n");
  55. sqlBuffer.append(" ,A.ORD_NO\n");
  56. sqlBuffer.append(" ,A.ORD_SEQ\n");
  57. sqlBuffer
  58. .append(" ,DECODE(A.TRNF_SHIFT,'1','早','2','中','3','晚') TRNF_SHIFT\n");
  59. sqlBuffer
  60. .append(" ,DECODE(A.TRNF_GROUP,'A','甲','B','乙','C','丙','D','丁') TRNF_GROUP\n");
  61. sqlBuffer.append(" ,A.TRNF_USE_TIME\n");
  62. sqlBuffer
  63. .append(" ,(select CUST_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = (SELECT CUST_CD FROM TBA01_ORD_COMM WHERE ORD_NO = A.ORD_NO) and REC_TP='01') CUST_NM \n");
  64. sqlBuffer
  65. .append(" ,(select CUST_NM ORD_NM FROM TBZ00_CUSTOMER WHERE CUST_CD = C.ORD_CUST_CD and REC_TP='02') ORD_NM\n");
  66. sqlBuffer
  67. .append(" ,(SELECT A.SM_CFNM FROM TBZ00_COMMCD A WHERE A.LG_CD = 'A01009' AND A.SM_CD = C.DEST_PCD) DEST_PCD_DESC\n");
  68. sqlBuffer.append(" FROM TBH02_COIL_COMM A,TBJ01_DLIV_DIR C \n");
  69. sqlBuffer.append(" WHERE A.DLIV_DIRNO = C.DLIV_DIRNO \n");
  70. sqlBuffer.append(" AND A.DLIV_DIRNO = ? \n");
  71. sqlBuffer.append(" AND A.COIL_STAT = '3' \n");
  72. sqlBuffer.append(" AND A.CUR_PROG_CD = 'SFF'\n");
  73. sqlBuffer.append(" AND A.SHIP_PROG_CD = ?\n");
  74. sqlBuffer.append(" AND A.TRNF_DTIME IS NOT NULL\n");
  75. cro = this.getDao("KgDao").ExcuteQuery(sqlBuffer.toString(),
  76. new Object[] { dlivDirNo, shipProgCd });
  77. return cro;
  78. }
  79. /**
  80. * 发运明细回退
  81. * @param dlivDirNo
  82. * @param regId
  83. * @return
  84. * @throws SQLException
  85. */
  86. public CoreReturnObject returnShipResult(String dlivDirNo, String regId)
  87. throws SQLException {
  88. CoreReturnObject cro = new CoreReturnObject();
  89. String sql = "select A.ISCHANGEWGT from TBJ02_COIL_COMM A WHERE A.DLIV_DIRNO = '"
  90. + dlivDirNo + "'";
  91. ResultSet rs = this.getDao("KgDapo").ExceuteQueryForResultSet(sql);
  92. boolean isClearing = false;// 销售是否已结算
  93. if (rs.next()) {
  94. String isChangeWgt = rs.getString("ISCHANGEWGT");
  95. if (null == isChangeWgt || !"1".equals(isChangeWgt)) {
  96. isClearing = true;
  97. }
  98. }
  99. if (isClearing) {
  100. cro.setV_errCode(new Integer(-1));
  101. cro.setV_errMsg("明细数据已经发送到销售,请联系销售退明细后成品才能进行明细回退!");
  102. } else {
  103. // 更新钢卷公共表钢卷状态及发运状态
  104. StringBuffer sqlBuffer = new StringBuffer();
  105. sqlBuffer.append("UPDATE TBH02_COIL_COMM A SET \n");
  106. sqlBuffer.append(" A.COIL_STAT = '2'\n");
  107. sqlBuffer.append(" ,A.CUR_PROG_CD = 'SFB'\n");
  108. sqlBuffer.append(" ,A.SHIP_PROG_CD = '03'\n");
  109. sqlBuffer.append(" ,A.TRNF_DTIME = ''\n");
  110. sqlBuffer.append(" ,A.TRANS_CAR_NO = ''\n");
  111. sqlBuffer.append(" ,A.TRNF_REG = ''\n");
  112. sqlBuffer.append(" ,A.TRNF_SHIFT = ''\n");
  113. sqlBuffer.append(" ,A.TRNF_GROUP = ''\n");
  114. sqlBuffer.append(" ,A.TRNF_USE_TIME = ''\n");
  115. sqlBuffer.append(" ,A.BEF_SHIP_INVNO = A.SHIP_INVNO\n");
  116. sqlBuffer.append(" ,A.BEF_CRET_NO = A.CRET_NO\n");
  117. sqlBuffer.append(" ,A.RETURN_SHIP_REG = ?\n");
  118. sqlBuffer
  119. .append(" ,A.RETURN_SHIP_DTIME = TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')\n");
  120. sqlBuffer.append(" WHERE A.DLIV_DIRNO = ?\n");
  121. this.getDao("KgDao").ExcuteNonQuery(sqlBuffer.toString(),
  122. new Object[] { regId, dlivDirNo });
  123. // 清除发运表发运信息
  124. sqlBuffer = new StringBuffer();
  125. sqlBuffer.append("UPDATE TBJ01_DLIV_DIR A SET \n");
  126. sqlBuffer.append(" A.LANE_TP = ''\n");
  127. sqlBuffer.append(" ,A.ENTERANCE_SEQ = ''\n");
  128. sqlBuffer.append(" ,A.ALLOC_SEQ = ''\n");
  129. sqlBuffer.append(" ,a.TRANS_CAR_NO = ''\n");
  130. sqlBuffer.append(" WHERE A.DLIV_DIRNO = ?\n");
  131. this.getDao("KgDao").ExcuteNonQuery(sqlBuffer.toString(),
  132. new Object[] { dlivDirNo });
  133. // 更新运送表运送状态
  134. sqlBuffer = new StringBuffer();
  135. sqlBuffer.append("UPDATE TBJ01_SHIP_DIR A SET \n");
  136. sqlBuffer.append(" A.SHIP_PROG_CD = '03'\n");
  137. sqlBuffer
  138. .append(" WHERE A.SHIP_DIRNO = (SELECT T.SHIP_DIRNO FROM TBJ01_DLIV_DIR T WHERE T.DLIV_DIRNO = ?)\n");
  139. this.getDao("KgDao").ExcuteNonQuery(sqlBuffer.toString(),
  140. new Object[] { dlivDirNo });
  141. // 删除结算接口表数据
  142. sqlBuffer = new StringBuffer();
  143. sqlBuffer
  144. .append("DELETE TBJ02_COIL_COMM A WHERE A.DLIV_DIRNO = ? AND A.ISCHANGEWGT = '1'\n");
  145. this.getDao("KgDao").ExcuteNonQuery(sqlBuffer.toString(),
  146. new Object[] { dlivDirNo });
  147. }
  148. return cro;
  149. }
  150. }