package UIJ.UIJ06; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.util.Map; import UIB.COM.XmlSqlParsersFactory; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; /** * 发运明细回退 * * @author zsx * @date 2017-8-4 */ public class UIJ060030 extends CoreIComponent { /** * 根据发运指示号查询可回退的发运明细 * * @param dlivDirNo * 发运指示号 * @return CoreReturnObject * @throws SQLException */ public CoreReturnObject queryShipRetRs(String dlivDirNo) throws SQLException { String shipProgCd = "08";// 发货明细结束 CoreReturnObject cro = this.query(dlivDirNo, shipProgCd); return cro; } /** * 查询没有车号的发货明细的卷 * * @param dlivDirNo * @return * @throws SQLException */ public CoreReturnObject queryShipRetRsNoCarNo(String dlivDirNo) throws SQLException { String shipProgCd = "03"; CoreReturnObject cro = this.query(dlivDirNo, shipProgCd); return cro; } private CoreReturnObject query(String dlivDirNo, String shipProgCd) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); String sql = XmlSqlParsersFactory.getSql("UIJ060030_01.SELECT"); cro = this.getDao("KgDao").ExcuteQuery(sql, new Object[] { dlivDirNo, shipProgCd }); return cro; } public CoreReturnObject update(String dlivDirNo) throws SQLException{ CoreReturnObject cro = new CoreReturnObject(); String sql=""; try { //20131011 sql ="UPDATE C_TBL02_COIL_COMM T SET t.SHIP_PROG_CD='08' WHERE T.DLIV_DIRNO='"+dlivDirNo+"'"; cro = this.getDao("KgDao").ExcuteQuery(sql); } catch (Exception e) { } return cro; } /** * 发运明细回退 * * @param dlivDirNo * @param regId * @return * @throws SQLException */ public CoreReturnObject returnShipResult(String dlivDirNo, String regId) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); Map result = this.getDao("KgDao").CoreBeginTranscation(); Connection conn = null; PreparedStatement pSta = null; Statement sta = null; String strValue; try { conn = this.getDao("KgDao").getConnection(); conn.setAutoCommit(false); CallableStatement cstmt = conn .prepareCall("{?=call SqListNumbRollBack(?)}"); cstmt.registerOutParameter(1, Types.VARCHAR); cstmt.setString(2, dlivDirNo); cstmt.execute(); strValue = cstmt.getString(1); cstmt.close(); boolean isClearing = false;// 销售是否已结算 if ( !"1".equals(strValue)) { isClearing = true; } if (isClearing) { cro.setV_errCode(new Integer(-1)); cro.setV_errMsg("明细数据已经发送到销售,请联系销售退明细后成品才能进行明细回退!"); } else { // 更新钢卷公共表钢卷状态及发运状态,清除质保书号 String sql1 = XmlSqlParsersFactory .getSql("UIJ060030_01.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql1, new Object[] { regId, dlivDirNo }); // 清除发运表发运信息 String sql2 = XmlSqlParsersFactory .getSql("UIJ060030_02.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql2, new Object[] { dlivDirNo }); // 更新运送表运送状态 String sql3 = XmlSqlParsersFactory .getSql("UIJ060030_03.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql3, new Object[] { dlivDirNo }); // 删除结算接口表数据 String sql4 = XmlSqlParsersFactory .getSql("UIJ060030_01.DELETE"); this.getDao("KgDao").ExcuteNonQuery(sql4, new Object[] { dlivDirNo }); // 将质保书改为失效 String sql5 = XmlSqlParsersFactory .getSql("UIJ060030_04.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql5, new Object[] { dlivDirNo }); //销售明细删除 String sql6 = XmlSqlParsersFactory .getSql("UIJ060020_09.CALL"); this.getDao("KgDao").ExcuteProcedure(sql6,new String[] {"3",dlivDirNo,"","","","","","","4001LZ1","冷轧线"}, new String[0]); } this.getDao("KgDao").CoreCommit(result); } catch (SQLException ex) { this.getDao("KgDao").CoreRollBack(result); throw ex; } finally { if (conn != null && !conn.isClosed()) { conn.close(); } } return cro; } }