NC65接口事例

来源:互联网 发布:影音嗅探软件 编辑:程序博客网 时间:2024/05/17 04:34
package nc.bs.gl.ds;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;














import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.bs.logging.Logger;
import nc.bs.pub.pa.PreAlertObject;
import nc.bs.pub.taskcenter.BgWorkingContext;
import nc.bs.pub.taskcenter.IBackgroundWorkPlugin;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.ArrayListProcessor;
import nc.vo.pub.BusinessException;


public class PersonInfo implements IBackgroundWorkPlugin {


private BaseDAO dao;


private BaseDAO getDao() {
if (dao == null) {
dao = new BaseDAO();
}
return dao;
}


public PreAlertObject executeTask(BgWorkingContext bgwc)
throws BusinessException {
System.out.println("");
String isSuccess="0";
try {
String sqlQueryUrl = "select * from GL_URLCOM where code='Person'";
String apiUrl = "";
IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);
List<Object> listUU = (List<Object>) bs.executeQuery(
sqlQueryUrl.toString(), new ArrayListProcessor());
if (listUU != null && listUU.size() > 0) {


Object[] objs1 = (Object[]) listUU.get(0);
apiUrl = (String) objs1[2];
}



URL url = new URL(apiUrl);
            HttpURLConnection connection = (HttpURLConnection) url
                    .openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);
            connection.setRequestProperty("Content-Type","application/json; charset=utf-8;");


            connection.connect();


            SimpleDateFormat formatter = new SimpleDateFormat(
"yyyyMMddHHmmssSSS");
// 得到系统当前时间,转换对应的格式并返回
String time = formatter.format(new Date());

//接收数据并且相应信息返回
PrintWriter outprint = new PrintWriter(new OutputStreamWriter(
connection.getOutputStream(), "UTF-8"));
JSONObject obj = new JSONObject();

obj.element("protocolVersion", "V0.11");
obj.element("token", "2222222222222222222222");
obj.element("msgId", time);
obj.element("osType", "1");
String jsonString = obj.toString();
System.out.println(jsonString);
outprint.write(jsonString);
outprint.flush();
outprint.close();
            //读取连接的数据
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    connection.getInputStream(), "UTF-8"));
            String lines;
            StringBuffer sbs = new StringBuffer("");
            while ((lines = reader.readLine()) != null) {
                sbs.append(lines);
            }
            System.out.println(sbs);
            reader.close();
            connection.disconnect();
//读取的数据进行json转换
org.codehaus.jettison.json.JSONObject myJsonObject =new org.codehaus.jettison.json.JSONObject(sbs.toString());
org.codehaus.jettison.json.JSONArray list=myJsonObject.getJSONObject("outData").getJSONArray("jsonArray");

list.get(0);
System.out.print(list.get(0));


if (list != null && list.length() > 0) {


for (int i = 0; i < list.length(); i++) {
StringBuffer sql = new StringBuffer();
StringBuffer sql1 = new StringBuffer();
org.codehaus.jettison.json.JSONObject array = (org.codehaus.jettison.json.JSONObject) list.get(i);
String unitName = array.getString("unitName");
String name = array.getString("name");
String workNo = array.getString("workNo");
String operateTag = array.getString("operateTag");
String unitCode = array.getString("unitCode");
String no = "~";
String one ="0";
String org = "A";
String group  ="0001Q110000000000417";

String sqlQuery = "select * from bd_psncomp where GKCODE='"+workNo+"'";
List<Object> listaa = (List<Object>) bs.executeQuery(sqlQuery.toString(),new ArrayListProcessor());
if(listaa!=null&&listaa.size()>0){
Object[] objs = (Object[])listaa.get(0);
workNo= (String) objs[1] ==null ?"":(String) objs[1];

}

String sqlQueryDept = "select a.code,a.pk_org,a.pk_group from org_dept a left join org_deptcomp b "
+ "on a.code=b.nccode where a.code = '"+unitCode+"' or b.gkcode='"+unitCode+"'";
List<Object> listbb = (List<Object>) bs.executeQuery(sqlQueryDept.toString(),new ArrayListProcessor());
if(listbb!=null&&listbb.size()>0){
Object[] aaList = (Object[])listbb.get(0);
org = aaList[1]==null?"":aaList[1].toString();
group = aaList[2]==null?"":aaList[2].toString();
unitCode = aaList[0]==null?"":aaList[0].toString();
}

if(operateTag.equals("0")){
sql.append(" insert into bd_psndoc(code,name,pk_org,pk_psndoc,pk_group)  values (");
sql.append("'" + workNo + "'");
sql.append(",'" + name + "'");
sql.append(",'" + org + "'");
sql.append(",'" +workNo+"'");
sql.append(",'" +group+"'");
sql.append(")");



sql1.append("insert into hi_psnjob(pk_psnjob,pk_psndoc,pk_dept,pk_psnorg,clerkcode,ismainjob,lastflag,pk_org,psntype,recordnum,assgid,pk_group) values (");
sql1.append("'" + workNo + "'");
sql1.append(",'" + workNo + "'");
sql1.append(",'" + unitCode + "'");
sql1.append(",'" + one + "'");
sql1.append(",'" + no + "'");
sql1.append(",'" + no + "'");
sql1.append(",'" + no + "'");
sql1.append(",'" + org + "'");
sql1.append(",'" + one + "'");
sql1.append(",'" + one + "'");
sql1.append(",'" + one + "'");
sql1.append(",'" + group + "'");
sql1.append(")");
getDao().executeUpdate(sql.toString());
getDao().executeUpdate(sql1.toString());



}else if(operateTag.equals("1")){
sql.append(" update bd_psndoc set ");
sql.append(" name='" + name + "'");
sql.append(",pk_org='" + org + "'");
sql.append(",pk_group='" + group + "'");
sql.append(" where code='" + workNo + "'");

sql1.append("update hi_psnjob set");
sql1.append(" pk_psnorg='" + org + "'");
sql1.append(",pk_dept='" + unitCode + "'");
sql1.append(",pk_org='" + org + "'");
sql1.append(" where pk_psndoc='" + workNo + "'");
getDao().executeUpdate(sql.toString());
getDao().executeUpdate(sql1.toString());


}else if(operateTag.equals("2")){
sql.append("delete from bd_psndoc where code=");
sql.append("'"+workNo+"'");

sql1.append("delete from hi_psnjob where pk_psndoc=");
sql1.append("'"+workNo+"'");

int a= getDao().executeUpdate(sql.toString());
int b= getDao().executeUpdate(sql1.toString());


}

}
}


} catch (Exception e) {
isSuccess="1";
e.printStackTrace();
Logger.error(e.getMessage(), e);
}


setJSON(isSuccess);
return null;
}

//操作成功再给另一个地址发送相应信息
private  String setJSON (String isSuccess) {
StringBuilder json = new StringBuilder();
try {
String sqlQueryUrl = "select * from GL_URLCOM where code='PersonDelete'";
String apiUrl = "";
IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);
List<Object> listUU = (List<Object>) bs.executeQuery(
sqlQueryUrl.toString(), new ArrayListProcessor());
if (listUU != null && listUU.size() > 0) {


Object[] objs1 = (Object[]) listUU.get(0);
apiUrl = (String) objs1[2];
}




URL url = new URL(apiUrl);
        HttpURLConnection connection = (HttpURLConnection) url
                .openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        connection.setUseCaches(false);
        connection.setInstanceFollowRedirects(true);
        connection.setRequestProperty("Content-Type",
                "application/json; charset=utf-8;");


        connection.connect();


        PrintWriter outprint = new PrintWriter(new OutputStreamWriter(
        connection.getOutputStream(), "UTF-8"));
        SimpleDateFormat formatter = new SimpleDateFormat(
"yyyyMMddHHmmssSSS");
// 得到系统当前时间,转换对应的格式并返回
String time = formatter.format(new Date());
JSONObject obj = new JSONObject();
JSONObject j2=new JSONObject();
j2.element("isSuccess", isSuccess);
obj.element("protocolVersion", "V0.12");
obj.element("token", "人员操作成功");
obj.element("msgId", time);
obj.element("osType", "1");

obj.element("inData", j2);
        String jsonString = obj.toString();
        System.out.println(jsonString);
        outprint.write(jsonString);
        outprint.flush();
        outprint.close();
        
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                connection.getInputStream(), "UTF-8"));
        String lines;
        StringBuffer sbs = new StringBuffer("");
        while ((lines = reader.readLine()) != null) {
            lines = new String(lines.getBytes(), "utf-8");
            sbs.append(lines);
        }
        System.out.println(sbs);
        reader.close();
        connection.disconnect();
        
        
} catch (Exception e) {
}
return json.toString();
}









}
0 0