package xin.glue.ui.G.G08; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.sql.CallableStatement; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import com.alibaba.fastjson.JSONObject; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; public class Sendmove extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String[] SLAB_NO = (String[])context.get("SLAB_NO"); String[] chk = (String[])context.get("CHK"); String[] SendNUMBER = (String[])context.get("NUMBER"); String[] SendPLAN_ID = (String[])context.get("PLAN_ID"); String[] SendPLT_TRS_WKGROUP = (String[])context.get("PLT_TRS_WKGROUP"); String[] SendPLT_TRS_CAR_NO = (String[])context.get("PLT_TRS_CAR_NO"); String[] SendPLT_TRS_WKSHIFT = (String[])context.get("PLT_TRS_WKSHIFT"); String[] SendPLT_TRS_EMP_ID = (String[])context.get("PLT_TRS_EMP_ID"); String A = new String(); String B = new String(); CallableStatement cstm = null; ArrayList al = new ArrayList(); String msg = sendGet("http://10.90.0.166:8083/api/TqMes/IS_Leave_Factory?forecast_no=",SendPLAN_ID[0]); JSONObject jsonObj = JSONObject.parseObject(msg); if(msg.contains("异常")){ context.put("MESSAGES",msg); return PosBizControlConstants.SUCCESS; } String condition = jsonObj.getString("condition"); if("FALSE".equals(condition.toUpperCase())) { context.put("MESSAGES",SendPLAN_ID[0] + " 已出厂,不可再次进行发运操作! "); return PosBizControlConstants.SUCCESS; } String message = ""; try { message = sendGet("http://10.90.0.166:9093/api/Hbch/IsHbch?cCp=1&cCh=",URLEncoder.encode(SendPLT_TRS_CAR_NO[0].replaceAll(" ",""),"UTF-8")); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } JSONObject hm = JSONObject.parseObject(message); int status = hm.getIntValue("status"); if(status == 0) { context.put("MESSAGES",SendPLT_TRS_CAR_NO[0] + "为非环保车辆,不允许出厂 "); return PosBizControlConstants.SUCCESS; } for(int i = 0 ; i < chk.length ; i++){ if(chk[i].equals("")||chk[i] == null||chk[i].equals("N"))continue; // PosParameter param = new PosParameter(); // param.setWhereClauseParameter(0, SLAB_NO[i]); // param.setWhereClauseParameter(1, SendPLAN_ID[0]); // param.setWhereClauseParameter(2, SendPLT_TRS_CAR_NO[0]); // param.setWhereClauseParameter(3, SendPLT_TRS_WKSHIFT[0]); // param.setWhereClauseParameter(4, SendPLT_TRS_WKGROUP[0]); // param.setWhereClauseParameter(5, SendPLT_TRS_EMP_ID[0]); // //param.setWhereClauseParameter(6, SendNUMBER[0]); // param.setWhereClauseParameter(6, A); // param.setWhereClauseParameter(7, B); // int updtCnt = getDao("mesdao").update("UIG080010_02.CAL", param); ////////////////////////////////////////////////// cstm = dao.getCallableStatement("UIG080010_02.CAL"); try { cstm.setString(1, SLAB_NO[i]); cstm.setString(2, SendPLAN_ID[0]); cstm.setString(3, SendPLT_TRS_CAR_NO[0]); cstm.setString(4, SendPLT_TRS_WKSHIFT[0]); cstm.setString(5, SendPLT_TRS_WKGROUP[0]); cstm.setString(6, SendPLT_TRS_EMP_ID[0]); cstm.registerOutParameter(7, java.sql.Types.VARCHAR); cstm.registerOutParameter(8, java.sql.Types.VARCHAR); cstm.execute(); String err = cstm.getString(8); if(!err.contains("成功")){ context.put("MESSAGES",err); return PosBizControlConstants.SUCCESS; } //财务数据上抛 移入存储过程MES_LG_KC.SENDLIST_BP /*cstm = this.getDao("mesdao").getCallableStatement("UPLOAD_DATA.CAL"); cstm.setString(1, SLAB_NO[i]); cstm.setString(2, "69A"); cstm.setString(3, "N"); cstm.setString(4, "板坯外销"); cstm.setString(5, SendPLT_TRS_EMP_ID[0]); cstm.registerOutParameter(6, java.sql.Types.VARCHAR); cstm.execute(); String err = cstm.getString(6);*/ }catch(Exception ex) { ex.printStackTrace(); context.put("MESSAGES",SendPLAN_ID[0] + ex.getMessage()); return PosBizControlConstants.SUCCESS; } finally { if(cstm != null) { try { al.add(""+SLAB_NO[i]+""+""+cstm.getString(8)+""); cstm.close(); }catch(Exception e) { e.printStackTrace(); } } } context.put("BK", al); System.out.println(al); } //发送电子出门证 cstm = dao.getCallableStatement("UIG080010_04.CAL"); try { cstm.setString(1, SendPLAN_ID[0]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); String err = cstm.getString(3); if(!StringUtils.isBlank(err)){ context.put("MESSAGES",SendPLAN_ID[0] + err); return PosBizControlConstants.SUCCESS; } }catch(Exception ex) { ex.printStackTrace(); } finally { if(cstm != null) { try { cstm.close(); }catch(Exception e) { e.printStackTrace(); } } } return PosBizControlConstants.SUCCESS; } /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 获取所有响应头字段 Map> map = connection.getHeaderFields(); // 遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); } // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream(),"UTF-8")); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); result = "发送GET请求出现异常!" + e.getMessage(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } }