package com.jqyd.son; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.jqyd.adapter.MyAdapter; import com.jqyd.app.MyApp; import com.jqyd.app.VirtualData; import com.jqyd.manager.R; import com.jqyd.model.CustomShortModel; import com.jqyd.model.DbsxLcgzModel; import com.jqyd.model.OrderDetailModel; import com.jqyd.model.OrderMxDetailModel; import com.jqyd.model.YjxxModel; import com.jqyd.shareInterface.Optdb_interfce; import com.jqyd.shareInterface.Optsharepre_interface; import com.jqyd.shareInterface.UpdataToServer; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.AdapterView.OnItemClickListener; public class PubList extends Activity{ private ListView listView; private MyApp myApp; private MyAdapter adapter; private ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>(); private Optdb_interfce db = null; private HashMap<String,String> map = null; private ArrayList<Bundle> listBundle = new ArrayList<Bundle>(); String moduleName = ""; private String dbType = "0"; private String dbNum = "-1"; private int num = -1; private String spcs = "0"; private String processInfo = "";//保存流程跟踪信息 private int againReq = -1;//0、初此请求1、再次请求 private OrderDetailModel orderinfo = new OrderDetailModel(); private ArrayList<OrderMxDetailModel> list_ordermx = new ArrayList<OrderMxDetailModel>(); private Bundle bundle = null; public final static String SER_KEY = "com.jqyd.ser"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.gztlist); myApp = (MyApp) this.getApplication(); moduleName = myApp.getModuleName(); listView = (ListView) this.findViewById(R.id.list); cxFromDb(); if(moduleName.equals("yjxx")){ this.setTitle("预警信息"); }if(myApp.getModuleName().equals("dbsx")){ this.setTitle("待办事项"); }if(moduleName.equals("lcgz")){ this.setTitle("流程跟踪"); } //new CxThread().start(); } //设置界面显示 public void setShow(){ adapter=new MyAdapter(list, this,1); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub HashMap<String,String> map = list.get(position); dbNum = map.get("dbNum"); dbType = map.get("dbType"); num = position; new CxThread().start(); } }); } /** * 获得待办事项信息 */ public void getDbsxInfo(Optdb_interfce db){ ArrayList<DbsxLcgzModel> li = db.getProcessBySelect(1,""); for(int i=0;i<li.size();i++){ DbsxLcgzModel process = (DbsxLcgzModel) li.get(i); map = new HashMap<String,String>(); map.put("textView1", process.getSptm()); map.put("dbType", process.getSplb()); map.put("dbNum", process.getSpid()); spcs = process.getSpcs(); list.add(map); } if(list.size()>0){ setShow(); }else{ showToast("暂无待办事项!"); } } /** * 获得流程跟踪信息 */ public void getLcgzInfo(Optdb_interfce db){ ArrayList<DbsxLcgzModel> li = db.getProcessBySelect(2,""); for(int i=0;i<li.size();i++){ DbsxLcgzModel process = li.get(i); map = new HashMap<String,String>(); //组装流程跟踪标题 String lcInfo = ""; if(process.getSplb().equals("1")){ lcInfo+="请假"; }else if(process.getSplb().equals("2")){ lcInfo+="订单"; }else if(process.getSplb().equals("3")){ lcInfo+="计划"; }else if(process.getSplb().equals("4")){ lcInfo+="差旅"; } lcInfo += "申请("+process.getSpid()+")等待审批"; map.put("textView1", lcInfo); map.put("dbType", process.getSplb()); map.put("dbNum", process.getSpid()); list.add(map); } if(list.size()>0){ setShow(); }else{ showToast("暂无数据!"); } } /** * 获得预警信息 */ public void getYjxxInfo(Optdb_interfce db){ ArrayList<YjxxModel> li = db.getYjxxInfo(""); for(int i=0;i<li.size();i++){ YjxxModel yjxx = (YjxxModel) li.get(i); map = new HashMap<String,String>(); map.put("textView1", yjxx.getMs()); map.put("dbType", yjxx.getLb()); map.put("dbNum",yjxx.getSpid()); list.add(map); } if(list.size()>0){ setShow(); }else{ showToast("暂无预警信息!"); } } /** * 查询服务 */ public void cxFromDb(){ list.clear(); db = new Optdb_interfce(PubList.this); if(moduleName.equals("yjxx")){ this.setTitle("预警信息"); getYjxxInfo(db); }if(myApp.getModuleName().equals("dbsx")){ this.setTitle("待办事项"); getDbsxInfo(db); }if(moduleName.equals("lcgz")){ this.setTitle("流程跟踪"); getLcgzInfo(db); }if(moduleName.equals("jygk")){ list = VirtualData.getPubInfo("jygk"); }if(moduleName.equals("jhgl")){ list = VirtualData.getPubInfo("jhgl"); } db.close_SqlDb(); } public String cxFirstFromServer(int type){ String mgs = ""; Optsharepre_interface share_obj = new Optsharepre_interface(PubList.this); JSONObject object = new JSONObject(); try { object.put("guid", share_obj.getDataFromPres("GUID")); object.put("gguid", share_obj.getDataFromPres("GGUID")); object.put("type", type); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } String result = new UpdataToServer(PubList.this).searchFromServer("DBLC", object);//查询待办、流程、预警等信息 if(!result.equals("") && !result.equals("-1") && !result.equals("500")){ JSONObject obj = null; try { obj = new JSONObject(result); } catch (JSONException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } try { JSONObject jg = (JSONObject) obj.get("cxjg"); if(jg.getString("result").equals("0")){//有数据 JSONArray arr = (JSONArray) obj.get("dblcinfo"); for(int i=0;i<arr.length();i++){ map = new HashMap<String,String>(); String dbNum = ((JSONObject)arr.get(i)).getString("spid"); String dbType = ((JSONObject)arr.get(i)).getString("splb"); String ms = ((JSONObject)arr.get(i)).getString("sptm"); map.put("textView1", ms); map.put("dbType", dbType); map.put("dbNum",dbNum); list.add(map); } if(list.size()<=0){ map = new HashMap<String,String>(); map.put("textView1", "暂无信息!"); list.add(map); } mgs = "0";//成功获得数据 }else{ mgs = jg.getString("detail"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); mgs = "查询失败,请联系你的管理员!"; } }else if(result.equals("-1")){ mgs = "抱歉,网络连接失败!"; }else{ mgs = "查询失败,请联系你的管理员!"; } System.out.println("msg:"+mgs); return mgs; } /** * 查询流程跟踪 * @return */ public String cxProcessFromServer(){ String mgs = ""; Optsharepre_interface share_obj = new Optsharepre_interface(PubList.this); JSONObject object = new JSONObject(); try { object.put("spid", dbNum); object.put("splb", dbType); object.put("gguid", share_obj.getDataFromPres("GGUID")); object.put("type", "2"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } String result = new UpdataToServer(PubList.this).searchFromServer("LCGZ", object); if(!result.equals("") && !result.equals("-1") && !result.equals("500")){ JSONObject obj = null; try { obj = new JSONObject(result); } catch (JSONException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } try { JSONObject jg = (JSONObject) obj.get("cxjg"); if(jg.getString("result").equals("0")){//有数据 processInfo = obj.getString("lcinfo"); mgs = "0";//成功获得数据 }else{ mgs = jg.getString("detail"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); mgs = "查询失败,请联系你的管理员!"; } }else if(result.equals("-1")){ mgs = "抱歉,网络连接失败!"; }else{ mgs = "查询失败,请联系你的管理员!"; } System.out.println("msg:"+mgs); return mgs; } /** * 待办事项查询服务 */ public String cxFromServer(){ String mgs = ""; list_ordermx.clear(); Optsharepre_interface share_obj = new Optsharepre_interface(PubList.this); JSONObject object = new JSONObject(); try { object.put("spid", dbNum); object.put("splb", dbType); object.put("gguid", share_obj.getDataFromPres("GGUID")); object.put("type", "1"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } String result = new UpdataToServer(PubList.this).searchFromServer("DBCX", object); if(!result.equals("") && !result.equals("-1") && !result.equals("500")){ JSONObject obj = null; try { obj = new JSONObject(result); } catch (JSONException e3) { // TODO Auto-generated catch block e3.printStackTrace(); } try { JSONObject jg = (JSONObject) obj.get("cxjg"); if(jg.getString("result").equals("0")){//有数据 //审批类别(1、请假、2、订单、3、计划 4、差旅) if(dbType.equals("1")){ //请假------------ //请假事由,1事假、2公休假、3工伤假、4病假、5婚假、6丧假、7产假、 //是否审核,0未审核,1已审核 try { JSONObject obj_qj = (JSONObject) obj.get("qjinfo"); String qjlb = obj_qj.getString("qjlb"); String qjzt = obj_qj.getString("sqzt"); if(qjlb.equals("1")){ qjlb = "事假"; }else if(qjlb.equals("2")){ qjlb = "公休假"; }else if(qjlb.equals("3")){ qjlb = "工伤假"; }else if(qjlb.equals("4")){ qjlb = "病假"; }else if(qjlb.equals("5")){ qjlb = "婚假"; }else if(qjlb.equals("6")){ qjlb = "丧假"; }else if(qjlb.equals("7")){ qjlb = "产假"; } if(qjzt.equals("0")){ qjzt = "未审核"; }else{ qjzt = "已审核"; } bundle = new Bundle(); bundle.putString("spid", obj_qj.getString("qid")); bundle.putString("qjlb", qjlb); bundle.putString("ksrq", obj_qj.getString("ksrq")); bundle.putString("jsrq", obj_qj.getString("jsrq")); bundle.putString("addtime", obj_qj.getString("addtime")); bundle.putString("hour", obj_qj.getString("hour")); bundle.putString("day", obj_qj.getString("day")); bundle.putString("sjzg", obj_qj.getString("sjzg")); bundle.putString("department", obj_qj.getString("department")); bundle.putString("zdmc", obj_qj.getString("zdmc")); bundle.putString("guid", obj_qj.getString("zguid")); bundle.putString("gguid", obj_qj.getString("coguid")); bundle.putString("regsim", obj_qj.getString("regsim")); //bundle.putString("spbz", obj_qj.getString("spbz")); bundle.putString("spbz", "暂无数据-------------"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if(dbType.equals("2")){ JSONObject order_obj = (JSONObject) obj.get("orderinfo"); orderinfo.setCname(order_obj.getString("cname")); orderinfo.setDdbh(order_obj.getString("ddbh")); orderinfo.setDdzt(order_obj.getString("ddzt")); orderinfo.setJhtime(order_obj.getString("jhtime")); orderinfo.setLinkpersion(order_obj.getString("linkpersion")); orderinfo.setLinktel(order_obj.getString("linktel")); orderinfo.setShdz(order_obj.getString("shdz")); orderinfo.setShlxtel(order_obj.getString("shlxtel")); orderinfo.setShr(order_obj.getString("shr")); orderinfo.setShzt(order_obj.getString("shzt")); orderinfo.setXdr(order_obj.getString("xdr")); orderinfo.setXdTime(order_obj.getString("xdTime")); orderinfo.setXxzt(order_obj.getString("xxzt")); orderinfo.setXyed(order_obj.getString("xyed")); orderinfo.setAllcount(order_obj.getString("allcount")); orderinfo.setBz(order_obj.getString("bz")); //orderinfo.setSpbz(order_obj.getString("spbz")); orderinfo.setSpbz("暂无数据-------------"); JSONArray ordermxs = (JSONArray) order_obj.get("mxlist"); for(int i=0;i<ordermxs.length();i++){ try { JSONObject obj_db = (JSONObject) ordermxs.get(i); OrderMxDetailModel detail = new OrderMxDetailModel(); detail.setSpid(obj_db.getString("spid")); detail.setSpname(obj_db.getString("spname")); detail.setSpnum(obj_db.getString("spnum")); detail.setUnit(obj_db.getString("unit")); detail.setSaleprice(obj_db.getString("saleprice")); detail.setPrises(obj_db.getString("prises")); detail.setGgxh(obj_db.getString("ggxh")); detail.setCkprice(obj_db.getString("ckprice")); list_ordermx.add(detail); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }else if(dbType.equals("3")){ bundle = new Bundle(); String allCusts = "";//所有客户信息 String yzxCusts = "";//已执行客户信息 String dzxCusts = "";//待执行客户信息 JSONObject jh_obj = (JSONObject) obj.get("jhinfo"); bundle.putString("spid", jh_obj.getString("planId")); bundle.putString("addtime", jh_obj.getString("addtime")); bundle.putString("source", jh_obj.getString("source"));//计划来源 bundle.putString("status", jh_obj.getString("status"));//任务状态 bundle.putString("begTime", jh_obj.getString("begTime")); bundle.putString("endTime", jh_obj.getString("endTime")); bundle.putString("type", jh_obj.getString("type")); bundle.putString("guid", jh_obj.getString("guid")); bundle.putString("zdguid", jh_obj.getString("zdguid")); bundle.putString("gguid", jh_obj.getString("coguid")); bundle.putString("zdmc", jh_obj.getString("name")); bundle.putString("sjhm", jh_obj.getString("sjhm")); bundle.putString("cusum", jh_obj.getString("cusum")); bundle.putString("finishnum", jh_obj.getString("finishnum")); bundle.putString("bz", jh_obj.getString("bz")); bundle.putString("isShenhe", jh_obj.getString("isShenhe")); bundle.putString("fq", jh_obj.getString("fq")); bundle.putString("spbz", jh_obj.getString("spbz")); JSONArray allCus = (JSONArray) jh_obj.get("allCus"); for(int i=0;i<allCus.length();i++){ allCusts+=((JSONObject)allCus.get(i)).getString("custId")+","+((JSONObject)allCus.get(i)).getString("custName")+"#"; } if(!allCusts.equals("")){ allCusts = allCusts.substring(0, allCusts.length()-1); } JSONArray yzxCus = (JSONArray) jh_obj.get("yzxCus"); for(int i=0;i<yzxCus.length();i++){ yzxCusts+=((JSONObject)yzxCus.get(i)).getString("custId")+","+((JSONObject)yzxCus.get(i)).getString("custName")+"#"; } if(!yzxCusts.equals("")){ yzxCusts = yzxCusts.substring(0, yzxCusts.length()-1); } JSONArray dzxCus = (JSONArray) jh_obj.get("dzxCus"); for(int i=0;i<dzxCus.length();i++){ dzxCusts+=((JSONObject)dzxCus.get(i)).getString("custId")+","+((JSONObject)dzxCus.get(i)).getString("custName")+"#"; } if(!dzxCusts.equals("")){ dzxCusts = dzxCusts.substring(0, dzxCusts.length()-1); } bundle.putString("allCusts", allCusts); bundle.putString("yzxCusts", yzxCusts); bundle.putString("dzxCusts", dzxCusts); }else if(dbType.equals("4")){ JSONObject obj_cl = (JSONObject) obj.get("clinfo"); try { String jtfs = ""; bundle = new Bundle(); if(obj_cl.getString("jtfs").equals("1")){ jtfs = "飞机"; }else if(obj_cl.getString("jtfs").equals("2")){ jtfs = "火车"; }else if(obj_cl.getString("jtfs").equals("3")){ jtfs = "自驾"; }else if(obj_cl.getString("jtfs").equals("4")){ jtfs = "其它"; } bundle.putString("spid", obj_cl.getString("cid")); bundle.putString("cfrq", obj_cl.getString("cfrq")); bundle.putString("pro_start", obj_cl.getString("pro_start")); bundle.putString("city_start", obj_cl.getString("city_start")); bundle.putString("pro_end", obj_cl.getString("pro_end")); bundle.putString("city_end", obj_cl.getString("city_end")); bundle.putString("country_start", obj_cl.getString("country_start")); bundle.putString("country_end", obj_cl.getString("country_end")); bundle.putString("fhrq", obj_cl.getString("fhrq")); bundle.putString("ccsy", obj_cl.getString("bz")); bundle.putString("day", obj_cl.getString("day")); bundle.putString("addtime", obj_cl.getString("addtime")); bundle.putString("jtfs", jtfs); bundle.putString("sjzg", obj_cl.getString("sjzg")); bundle.putString("groupName", obj_cl.getString("groupName")); bundle.putString("zdmc", obj_cl.getString("zdmc")); bundle.putString("guid", obj_cl.getString("guid")); bundle.putString("gguid", obj_cl.getString("gguid")); bundle.putString("regsim", obj_cl.getString("regsim")); //bundle.putString("spbz", obj_cl.getString("spbz")); bundle.putString("spbz", "暂无数据-------------"); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } mgs = "0";//成功获得数据 }else{ mgs = jg.getString("detail"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); mgs = "查询失败,请联系你的管理员!"; } }else if(result.equals("-1")){ mgs = "抱歉,网络连接失败!"; }else{ mgs = "查询失败,请联系你的管理员!"; } System.out.println("msg:"+mgs); return mgs; } /** * 处理线程 */ class CxThread extends Thread implements Runnable{ @Override public void run() { // TODO Auto-generated method stub super.run(); Looper.prepare(); Message msg =new Message(); msg.what = 1; myHander.sendMessage(msg); Message msg2 =new Message(); String result = ""; Bundle bunlde = new Bundle(); if(againReq == 0){//第一次查询 int type = 0; if(moduleName.equals("dbsx") || moduleName.equals("yjxx")){ type = 1; }else if(moduleName.equals("lcgz")){ type = 2; } result = cxFirstFromServer(type); if(result.equals("0")){//网络连接失败 msg2.what = 4; }else{ msg2.what = 3; bunlde.putString("msg", result); } againReq = 1; }else{//以后查询 if(moduleName.equals("lcgz")){ result = cxProcessFromServer(); }else if(moduleName.equals("dbsx") || moduleName.equals("yjxx")){ result = cxFromServer(); } if(result.equals("0")){//网络连接失败 msg2.what = 2; }else{ msg2.what = 3; bunlde.putString("msg", result); } } msg2.setData(bunlde); myHander.sendMessage(msg2); Looper.loop(); } } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); //清空数据 OrderDetailModel orderinfo = new OrderDetailModel(); ArrayList<OrderMxDetailModel> list_ordermx = new ArrayList<OrderMxDetailModel>(); myApp.setOrderinfo(orderinfo); myApp.setList_ordermx(list_ordermx); } Handler myHander = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); switch(msg.what){ case 1: showDialog(1); break; case 2: removeDialog(1); if(myApp.getModuleName().equals("dbsx") || myApp.getModuleName().equals("yjxx")){ Intent intent =new Intent(); if(dbType.equals("1")){ intent.putExtra("lx", "qj"); intent.putExtra("spcs",spcs); intent.putExtras(bundle); }else if(dbType.equals("2")){ intent.putExtra("lx", "dd"); intent.putExtra("dbNum", dbNum); intent.putExtra("spcs",spcs); myApp.setOrderinfo(orderinfo); myApp.setList_ordermx(list_ordermx); }else if(dbType.equals("3")){ intent.putExtra("lx", "jh"); intent.putExtra("spcs",spcs); intent.putExtra("dbNum", dbNum); intent.putExtras(bundle); }else if(dbType.equals("4")){ intent.putExtra("lx", "cl"); intent.putExtra("spcs",spcs); intent.putExtras(bundle); } intent.setClass(PubList.this, InfoAndAct.class); startActivity(intent); }else if(myApp.getModuleName().equals("lcgz")){ Intent intent =new Intent(); intent.putExtra("lcinfo", processInfo); intent.putExtra("moduleName", "lcgz"); intent.setClass(PubList.this, Info.class); startActivity(intent); } break; case 3: removeDialog(1); Bundle bundle2 = msg.getData(); showToast(bundle2.getString("msg")); break; case 4: removeDialog(1); setShow(); } } /** * Serializeable传递对象的方法 */ /* private void SerializeMethod(){ Intent mIntent = new Intent(this,SerializableDemo.class); Bundle mBundle = new Bundle(); mBundle.putSerializable(SER_KEY,mPerson); mIntent.putExtras(mBundle); startActivity(mIntent); } */ }; /** * 结果显示 * @param message */ public void showToast(final String message){ new AlertDialog.Builder(PubList.this) .setTitle("提示") .setMessage(message) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { if(message.contains("失败") || message.contains("暂无待办事项!") || message.contains("暂无数据!") || message.contains("暂无预警信息!")){ finish(); } } }) .show(); } @Override protected Dialog onCreateDialog(int id) { // TODO Auto-generated method stub ProgressDialog dialog = new ProgressDialog(PubList.this); dialog.setIndeterminate(true); dialog.setCancelable(false); switch(id){ case 1: dialog.setMessage("正在查询,请稍候……"); break; case 2: break; case 3: break; } return dialog; } }