WMS-存储过程调用示例

package jp.co.daifuku.wms.extension.util;

import java.sql.Connection;
import java.sql.SQLException;

import jp.co.daifuku.common.text.StringUtil;
import jp.co.daifuku.wms.base.common.WmsParam;
import jp.co.daifuku.wms.base.common.WmsUserInfo;
import jp.co.daifuku.wms.handler.db.DefaultDDBHandler;
import jp.co.daifuku.wms.handler.db.ProcParameter;

public  class MainSystemData {	
	
	  private static Connection conn = null;
	  private MainSystemData(){}
	  static Connection getConnection() throws SQLException {
	      if(conn==null || conn.isClosed())
	    	  conn= WmsParam.getConnection();
	      return conn;
	  }
	  
	  
		public static String[] getMainSystemData(String productId, String storeId, String palletCode, String productDate, int qty, String factoryId, String lotNo, String ssign, WmsUserInfo ui){
			String[] rValues = null;	
			DefaultDDBHandler dbhanld = null;
			try{				
				dbhanld= new DefaultDDBHandler(getConnection());    	
		    	
		    	ProcParameter pr[]  = new ProcParameter[12];
		    	pr[0]= new ProcParameter();
		    	pr[0].setParamName("storeId");
		    	pr[0].setParamOrder(1);
		    	pr[0].setParamType(ProcParameter.TYPE_IN);
		    	pr[0].setParamValue(storeId);
		    	pr[0].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[1]= new ProcParameter();
		    	pr[1].setParamName("productId");
		    	pr[1].setParamOrder(2);
		    	pr[1].setParamType(ProcParameter.TYPE_IN);
		    	pr[1].setParamValue(productId);
		    	pr[1].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[2]= new ProcParameter();
		    	pr[2].setParamName("factoryId");
		    	pr[2].setParamOrder(3);
		    	pr[2].setParamType(ProcParameter.TYPE_IN);
		    	pr[2].setParamValue(factoryId);
		    	pr[2].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[3]= new ProcParameter();
		    	pr[3].setParamName("productDate");
		    	pr[3].setParamOrder(4);
		    	pr[3].setParamType(ProcParameter.TYPE_IN);
		    	pr[3].setParamValue(productDate);
		    	pr[3].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[4]= new ProcParameter();
		    	pr[4].setParamName("lotNo");
		    	pr[4].setParamOrder(5);
		    	pr[4].setParamValue(lotNo);
		    	pr[4].setParamType(ProcParameter.TYPE_INOUT);
		    	pr[4].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[5]= new ProcParameter();
		    	pr[5].setParamName("qty");
		    	pr[5].setParamOrder(6);
		    	pr[5].setParamType(ProcParameter.TYPE_IN);
		    	pr[5].setParamValue(String.valueOf(qty));
		    	pr[5].setValueType(ProcParameter.VALUES_INT);
		    	
		    	pr[6]= new ProcParameter();
		    	pr[6].setParamName("pcode_l");
		    	pr[6].setParamOrder(7);
		    	pr[6].setParamType(ProcParameter.TYPE_INOUT);
		    	pr[6].setParamValue(palletCode);
		    	pr[6].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[7]= new ProcParameter();
		    	pr[7].setParamName("pcode_o");
		    	pr[7].setParamOrder(8);
		    	pr[7].setParamType(ProcParameter.TYPE_OUT);
		    	pr[7].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[8]= new ProcParameter();
		    	pr[8].setParamName("return_code");
		    	pr[8].setParamOrder(9);
		    	pr[8].setParamType(ProcParameter.TYPE_OUT);
		    	pr[8].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[9]= new ProcParameter();
		    	pr[9].setParamName("ssign");
		    	pr[9].setParamOrder(10);
		    	pr[9].setParamType(ProcParameter.TYPE_IN);
		    	pr[9].setParamValue(ssign);
		    	pr[9].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[10]= new ProcParameter();
		    	pr[10].setParamName("userid");
		    	pr[10].setParamOrder(11);
		    	pr[10].setParamType(ProcParameter.TYPE_IN);
		    	pr[10].setParamValue(ui.getUserId());
		    	pr[10].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	pr[11]= new ProcParameter();
		    	pr[11].setParamName("machineid");
		    	pr[11].setParamOrder(12);
		    	pr[11].setParamType(ProcParameter.TYPE_IN);
		    	pr[11].setParamValue(ui.getTerminalNo());
		    	pr[11].setValueType(ProcParameter.VALUES_STRING);
		    	
		    	String[] strs = dbhanld.executeProc("callMainSystemBatchQuery", pr);
		    	
				
		    	if(strs != null && strs.length == 4){
		    		    rValues = new String[4];
		    		    if(!StringUtil.isBlank(strs[0]))
		    		    	rValues[0] = strs[0].trim();
		    		    if(!StringUtil.isBlank(strs[1]))
		    		    	rValues[1] = strs[1].trim();
		    		    if(!StringUtil.isBlank(strs[2]))
		    		    	rValues[2] = strs[2].trim();
		    			if(!StringUtil.isBlank(strs[3].trim())){
		    				if(strs[3].trim().equals("1")){
		    					rValues[3] = "6023851";
		    				}else if(strs[3].trim().equals("2")){
		    					rValues[3] = "6023852";
		    				}else if(strs[3].trim().equals("3")){
		    					rValues[3] = "6023853";
		    				}else{
		    					rValues[3] = "";
		    				}
		    			}
		    			
		    	}
		    	
		    	getConnection().commit();
		    	return rValues;
			}catch (Exception e) {
				e.printStackTrace();
			}
			finally{
				if(dbhanld != null){
					dbhanld.close();
				}
			}
			return null;
		}
	  
	  
}

你可能感兴趣的:(WMS-存储过程调用示例)