New file |
| | |
| | | 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; |
| | | } |
| | | } |