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