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