package builder; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import ng.db.DBHelper; import ng.db.DBSession; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.sql.ResultSet; public class HttpApi { public static String Ip="192.168.30.111"; public static void main(String[] args) { JSONObject jsonObject=new JSONObject(); jsonObject.put("thickness", 4); jsonObject.put("width", 3660); jsonObject.put("height", 2440); jsonObject.put("sameCount", 4); jsonObject.put("glassType", "CFL"); // JSONObject C=shelfTaskApi(jsonObject); // System.out.println(C); JSONObject C2=thisShelfTaskApi(); System.out.println(C2); //¼õÉÙÉÏÆ¬ÊýÁ¿ //JSONObject b=loadRackReduction(); //²éѯÉÏÆ¬Î»ÐÅÏ¢ JSONObject a=selectLoadRack(); if(a!=null){ double width=Double.valueOf(a.get("width").toString()); double height=Double.valueOf(a.get("height").toString()); double thickness=Double.valueOf(a.get("thickness").toString()); int sameCount=Integer.valueOf(a.get("sameCount").toString()); System.out.println(width+","+height+","+thickness+","+sameCount); } } //·¢ËͲִ¢ÈÎÎñ public static boolean sendShelfTask(){ DBSession sn=null; try{ //¶ÁÈ¡É豸Áбí DBHelper db=DBHelper.getDBHelper("mes"); sn=DBHelper.getDBHelper("mes").createSession(false); sn.createSql("select o.id,o.largeglass_length,o.largeglass_width,o.largeglass_no,o.largeglass_completed,r.thickness,r.color\n" + "\t from `order` as o INNER JOIN recipe as r on o.recipe_no=r.id\n" + "\twhere o.order_status=2 LIMIT 0,1;"); ResultSet set= sn.query().getCurrentResult(); //²éѯ½á¹û while(set.next()){ Integer id= Integer.valueOf(set.getString(1)) ; double largeglass_length=set.getDouble(2);//¶©µ¥Ô­Æ¬³¤ double largeglass_width=set.getDouble(3);//¶©µ¥Ô­Æ¬¿í int largeglass_no=set.getInt(4);//¶©µ¥Ô­Æ¬ÈÎÎñÊý int largeglass_completed=set.getInt(5);//¶©µ¥Ô­Æ¬Íê³ÉÊý int not_completed=largeglass_no-largeglass_completed;//¶©µ¥Ô­Æ¬Î´Íê³ÉÊý int thickness=set.getInt(6);//¶©µ¥Ô­Æ¬ºñ String color=set.getString(7);//¶©µ¥Ô­Æ¬Ä¤Ïµ if(not_completed>0){ //ÓÐδÍê³ÉµÄԭƬÈÎÎñ JSONObject thisShelfTask = HttpApi.thisShelfTaskApi();//²éѯ²Ö´¢µ±Ç°ÈÎÎñ JSONObject jsonObject=new JSONObject(); jsonObject.put("thickness", thickness); jsonObject.put("width", largeglass_length); jsonObject.put("height", largeglass_width); jsonObject.put("sameCount", not_completed); jsonObject.put("glassType", color); if (thisShelfTask != null) { double width_shelf = Double.valueOf(thisShelfTask.get("width").toString()); double height_shelf = Double.valueOf(thisShelfTask.get("height").toString()); int thickness_shelf = Integer.valueOf(thisShelfTask.get("thickness").toString()); int sameCount_shelf = Integer.valueOf(thisShelfTask.get("sameCount").toString()); String glassType_shelf = thisShelfTask.get("glassType").toString(); if(largeglass_length!=width_shelf||largeglass_width!=height_shelf||thickness!=thickness_shelf||!color.equals(glassType_shelf)||sameCount_shelf==0){ JSONObject shelfJosn=shelfTaskApi(jsonObject); } return true; }else{ JSONObject shelfJosn=shelfTaskApi(jsonObject); return false; } } } } catch(Exception e){ } finally{ if(sn!=null){ sn.close(); } } return false; } //·¢ËͲִ¢ÈÎÎñ public static JSONObject shelfTaskApi(JSONObject params){ try { String requestURL="http://"+Ip+":5000/GlassInfo"; String requestBody =params.toString(); JSONObject resultJSON= httpApi(requestURL,"POST",requestBody); return resultJSON; } catch (Exception e) { // TODO: handle exception System.out.println("HTTP ERROR:http://39.105.110.179:5000/GlassInfo POST"); } return null; } //MESµ±Ç°ÈÎÎñ public static JSONObject thisShelfTaskApi(){ try { String requestURL="http://"+Ip+":5000/GlassInfo"; JSONObject resultJSON= httpApi(requestURL,"GET",null); JSONArray jsonArray=resultJSON.getJSONArray("data"); if(jsonArray.size()>0){ JSONObject thisShelfJson=jsonArray.getJSONObject(0); return thisShelfJson; } return null; } catch (Exception e) { // TODO: handle exception System.out.println("HTTP ERROR:http://39.105.110.179:5000/GlassInfo GET"); } return null; } //²éѯÉÏÆ¬Î»ÐÅÏ¢ public static JSONObject selectLoadRack(){ try { String requestURL="http://"+Ip+":5000/GlassInfo/getReady"; JSONObject resultJSON= httpApi(requestURL,"GET",null); JSONArray jsonArray=resultJSON.getJSONObject("data").getJSONArray("stocklist"); if(jsonArray.size()>0){ JSONObject loadRack=jsonArray.getJSONObject(0); String isPackages=loadRack.get("packages").toString(); if("false".equals(isPackages) ){ return loadRack; } } return null; } catch (Exception e) { // TODO: handle exception System.out.println("HTTP ERROR:http://"+Ip+":5000/GlassInfo GET"); } return null; } //ÉÏÆ¬Î»²£Á§-1 public static JSONObject loadRackReduction(){ try { String requestURL="http://"+Ip+":5000/GlassInfo/finishGet"; JSONObject resultJSON= httpApi(requestURL,"GET",null); return resultJSON; } catch (Exception e) { // TODO: handle exception System.out.println("HTTP ERROR:http://"+Ip+":5000/GlassInfo/finishGet GET"); } return null; } //¿âÄÚ²£Á§ÐÅÏ¢²éѯ public static JSONObject storageRackInfo(){ try { String requestURL="http://"+Ip+":5000/GlassInfo"; JSONObject resultJSON= httpApi(requestURL,"GET",null); return resultJSON; } catch (Exception e) { // TODO: handle exception System.out.println("HTTP ERROR:http://39.105.110.179:5000/GlassInfo GET"); } return null; } public static JSONObject httpApi(String requestURL,String requestMethod,String requestBody){ JSONObject jsonObject = null; try { //"http://192.168.112:8081/deviceInteraction/account/selectAccount" URL url = new URL(requestURL); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(requestMethod); connection.setDoOutput(true); connection.setDoInput(true); // ÉèÖøÃÁ¬½Ó¿ÉÊäÈë connection.setDoOutput(true); // ÉèÖøÃÁ¬½Ó¿ÉÊä³ö connection.setUseCaches(false); connection.setInstanceFollowRedirects(true); //connection.setRequestProperty("Charsert", "UTF-8"); connection.setRequestProperty("Content-type", "application/json; charset=UTF-8"); System.out.println(requestBody); if(requestBody!=null){ try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) { byte requestBodyByte[]=requestBody.getBytes("UTF-8"); outputStream.write(requestBodyByte); outputStream.flush(); } } int responseCode = connection.getResponseCode(); if (responseCode==200){ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String line; StringBuilder response = new StringBuilder(); while ((line = reader.readLine()) != null) { response.append(line); } reader.close(); String resultStr = response.toString(); if (resultStr!=null&&resultStr.length()>0) { jsonObject =JSONObject.parseObject(resultStr); } //System.out.println(jsonObject); }else{ System.out.println("Response Code: " + responseCode); } connection.disconnect(); } catch (IOException e) { e.printStackTrace(); } return jsonObject; } }