package UIJ.UIJ03; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.util.List; import java.util.Map; import UIJ.UIJ03.UIJ030051; import UIB.COM.ProduceFactory; import UIB.COM.XmlSqlParsersFactory; import CoreFS.SA01.CoreIComponent; import CoreFS.SA06.CoreReturnObject; /** * 发运明细回退 * * @author siy * @date 2010-9-13 */ public class UIJ030050 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; } public CoreReturnObject queryShipRetAll(String dlivDirNo) throws SQLException { String shipProgCd = "08";// 发货明细结束 CoreReturnObject cro = new CoreReturnObject(); String sql = XmlSqlParsersFactory.getSql("UIJ030050_02.SELECT"); cro = this.getDao("KgDao").ExcuteQuery(sql, new Object[] { dlivDirNo, dlivDirNo,dlivDirNo }); 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("UIJ030050_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; } public CoreReturnObject checkDliv(String dlivDirNo,String regid) throws SQLException{ CoreReturnObject cro = new CoreReturnObject(); String sql=""; try { String sql2 = "select (sysdate - to_date(t.ACPT_DATE, 'yyyymmdd')) chktime from tbj02_coil_comm t where rownum =1 and t.DLIV_DIRNO='" + dlivDirNo + "'"; ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql2); boolean isClearing = false;// 销售是否已结算 if (rs.next()) { String isChangeWgt = rs.getString("chktime"); if (Double.valueOf(isChangeWgt)>2) { cro.setV_errCode(new Integer(-1)); cro.setV_errMsg("已超过48小时,无法审批,请联系管理部门!"); this.getDao("KgDao").closeRs(rs); return cro; } } //20131011 this.getDao("KgDao").closeRs(rs); sql ="UPDATE tbj01_dliv_dir T SET t.LAST_MAN='"+regid+"',t.LAST_TIME=to_char(sysdate,'yyyymmddhh24mi') 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,String return_reson) throws SQLException { CoreReturnObject cro = new CoreReturnObject(); Map result = this.getDao("KgDao").CoreBeginTranscation(); Connection conn = null; PreparedStatement pSta = null; Statement sta = null; String strValue; String url; String cod1,cod2; try { /*String sql = "select A.ISCHANGEWGT from TBJ02_COIL_COMM A WHERE A.DLIV_DIRNO = '" + dlivDirNo + "'"; ResultSet rs = this.getDao("KgDao").ExceuteQueryForResultSet(sql); boolean isClearing = false;// 销售是否已结算 if (rs.next()) { String isChangeWgt = rs.getString("ISCHANGEWGT"); if (null == isChangeWgt || !"1".equals(isChangeWgt)) { isClearing = true; } } //20131011 this.getDao("KgDao").closeRs(rs);*/ /* UIJ030052 uij030052 = new UIJ030052(); url="http://172.16.0.49/xg56/webservice/mesWaybillService/queryIsLock/"+dlivDirNo; String retr=uij030052.jsonPost(url, dlivDirNo); int loc=retr.indexOf("IS_LOCK"); int loc1=retr.indexOf("RET_CODE"); cod1=retr.substring(loc1+11, loc1+12); cod2=retr.substring(loc+10, loc+11); //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1))) if("0".equals(cod1)&&"1".equals(cod2)) { cro.setV_errCode(new Integer(-1)); cro.setV_errMsg("明细数据已经锁定,如要解锁,请联系物流中心!"); }else {*/ String sqlOut = "select DLIV_DIRNO from tbj01_dliv_dir where DLIV_DIRNO = ? AND LAST_MAN IS NULL"; List listOut = this.getDao("KgDao").ExcuteQueryReturnList(sqlOut, new Object[] { dlivDirNo }); UIJ030052 uij030052 = new UIJ030052(); url="http://172.16.0.18:9090/TieQianinterface/services/MaterialOutInfo/materialoutinfo/"+dlivDirNo; String retr=uij030052.jsonPost(url, dlivDirNo); //if("9".equals(cod2) ||("0".equals(cod2)&&"0".equals(cod1))) if(retr.contains("false")&&listOut.size()>0) { cro.setV_errCode(new Integer(-1)); cro.setV_errMsg("车辆已出厂,如要退回,请先审批!"); }else { conn = this.getDao("KgDao").getConnection(); conn.setAutoCommit(false); CallableStatement cstmt = conn .prepareCall("{?=call SqListNumbRollBack(?)}"); cstmt.registerOutParameter(1, Types.VARCHAR); cstmt.setString(2, dlivDirNo); //cstmt.registerOutParameter(3, Types.INTEGER); 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("UIJ030050_01.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql1, new Object[] { regId, dlivDirNo }); // 清除发运表发运信息 String sql2 = XmlSqlParsersFactory .getSql("UIJ030050_02.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql2, new Object[] { dlivDirNo }); // 更新运送表运送状态 String sql3 = XmlSqlParsersFactory .getSql("UIJ030050_03.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql3, new Object[] { dlivDirNo }); // 删除结算接口表数据 String sql4 = XmlSqlParsersFactory .getSql("UIJ030050_01.DELETE"); this.getDao("KgDao").ExcuteNonQuery(sql4, new Object[] { dlivDirNo }); // 将质保书改为失效 String sql5 = XmlSqlParsersFactory .getSql("UIJ030050_04.UPDATE"); this.getDao("KgDao").ExcuteNonQuery(sql5, new Object[] { dlivDirNo }); //铁前明细删除 String sql6 = XmlSqlParsersFactory .getSql("UIJ030030_09.CALL"); this.getDao("KgDao").ExcuteProcedure(sql6,new String[] {"3",dlivDirNo,"","","","","","","4001LZ1","冷轧线"}, new String[0]); //更新货运中国标识 String sql7 = XmlSqlParsersFactory .getSql("UIJ030030_12.CALL"); this.getDao("KgDao").ExcuteProcedure(sql7,new String[] {"3","",dlivDirNo,"","","","","","","C",regId}, new String[0]); //记录退回日志 String sql8 = XmlSqlParsersFactory .getSql("UIJ030030_13.CALL"); this.getDao("KgDao").ExcuteProcedure(sql8,new String[] {"3","",dlivDirNo,"","","","","",return_reson,"C",regId}, new String[0]); //调用存货异动点存储过程 ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("SZDLIVNO",dlivDirNo,"69A","1","N",regId,"酸轧退货"); PD.ErpDataCover("SZDLIVNO",dlivDirNo,"11AC","0","N",regId,"酸轧退货取消判定"); } //conn.commit(); 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; } }