package com.jqyd.newprocess;
import java.util.ArrayList;
import java.util.HashMap;
import com.jqyd.adapter.MyAdapter;
import com.jqyd.app.MyApp;
import com.jqyd.manager.R;
import com.jqyd.manager.Xszs;
import com.jqyd.model.CustomerModule;
import com.jqyd.model.GroupsModule;
import com.jqyd.model.ProTypeModule;
import com.jqyd.shareInterface.Optdb_interfce;
import com.jqyd.son.Info;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
/**
* 分组列表:员工、客户、商品、竞品
* @author Administrator
*
*/
public class GroupList extends Activity {
private ListView listView;
private EditText find;
private MyAdapter adapter;
private String groupNums = "";//存放一个分组编号
private ArrayList<String> groupNumList = null;//分组编号
private ArrayList<String> groupNameList = null;//分组名称
private boolean flag_exit = false;
private String dataType = "";
private String moduleName = "";//功能模块名称
//private boolean groupData = true;//判断当前分组下是否数据,如果没有则返回上一分组,否则返回分组初始化界面
private Optdb_interfce db;
private MyApp myApp;
private ArrayList<HashMap<String,String>> custList = null;
private ArrayList<HashMap<String,String>> goodList = null;
private ArrayList<HashMap<String,String>> compList = null;
private ArrayList<Bundle> listBundle = null;
private boolean isCust = false;
private int actNum = 0;//判断当条数据
private boolean longPress = true;//是否长按了
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.grouplist);
listView = (ListView) this.findViewById(R.id.listView);
find = (EditText) this.findViewById(R.id.find);
myApp = (MyApp) this.getApplication();
//数据类型1、客户2、商品3、竞品4、员工
dataType = myApp.getDataType();
moduleName = myApp.getModuleName();
System.out.println("分组类型-------------------"+dataType);
loadData();
mhSearch();
//将当前Activity放入存储器中
ArrayList<Activity> listActivity = myApp.getListActivity();
listActivity.add(GroupList.this);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("**************************");
}
/**
* 加载数据
*/
public void loadData(){
db = new Optdb_interfce(GroupList.this);
listBundle = new ArrayList<Bundle>();
System.out.println("加载数据***********************************************************************");
this.setTitle("请选择客户");
groupNumList = new ArrayList<String>();
groupNameList = new ArrayList<String>();
custList = new ArrayList<HashMap<String,String>>();
Bundle bundle = null;
groupNums = myApp.getGroupNums();
if(groupNums.equals("")){
ArrayList<Object> li = db.searchFGroups("0",1);//取出一级分组编号
for(int i=0;i<li.size();i++){
HashMap<String,String> map = new HashMap<String,String>();
GroupsModule group = (GroupsModule) li.get(i);
map.put("textView1", group.getGname());
custList.add(map);
groupNumList.add(group.getGid()+"");
groupNameList.add(group.getGname());
}
}else{
ArrayList<Object> li = db.searchFGroups(groupNums,1);//逐级取出分组编号及分组名称
//判断分组下是否有客户存在,如果存在,则直接在当前界面显示出来,否则不显示
ArrayList<Object> custs = new ArrayList<Object>();
custs = db.searchCustsByMoreGps(groupNums,1);
groupNums = "";
//分组循环
for(int i=0;i<li.size();i++){
HashMap<String,String> map = new HashMap<String,String>();
GroupsModule group = (GroupsModule) li.get(i);
map.put("textView1", group.getGname());
custList.add(map);
groupNumList.add(group.getGid()+"");
groupNameList.add(group.getGname());
}
//客户循环
for(int j=0;j<custs.size();j++){
HashMap<String,String> map = new HashMap<String,String>();
bundle = new Bundle();
CustomerModule cust = (CustomerModule) custs.get(j);
map.put("textView1", cust.getCname());
custList.add(map);
bundle.putString("cid", cust.getCid());
bundle.putString("cname", cust.getCname());
bundle.putString("linkman", cust.getLinkman());
bundle.putString("link_sim", cust.getLink_sim());
bundle.putString("address", cust.getAddress());
bundle.putString("lon", cust.getLon());
bundle.putString("lat", cust.getLat());
bundle.putString("clon", cust.getClon());
bundle.putString("clat", cust.getClat());
listBundle.add(bundle);
flag_exit = true;
}
}
//判断当前列表界面是否包含分组或分组下的数据
/* if(custList != null && custList.size()<1){
groupData = false;
}*/
db.close_SqlDb();
//显示数据
showList();
}
/**
* 当前列表显示数据
*/
public void showList(){
ArrayList<HashMap<String,String>> list = null;
list = custList;
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
System.out.println("-------------------------------单击事件-----------------------------");
if(flag_exit){
Bundle bundle = listBundle.get(position);
Intent intent =new Intent();
//intent.putExtras(bundle);
//保存客户信息
myApp.setCustBundle(bundle);
if(moduleName.equals("ddsb")){
myApp.setGroupNums("");
startActivity(intent.setClass(GroupList.this, CustEdit.class));
}else if(moduleName.equals("xssb") || moduleName.equals("kcsb")){
//清楚上次记忆的分组编号
myApp.setGroupNums("");
myApp.setDataType("2");
startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class));
}else if(moduleName.equals("jpsb")){
//清楚上次记忆的分组编号
myApp.setGroupNums("");
myApp.setDataType("3");
startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class));
}
}else{
System.out.println(flag_exit);
System.out.println("***"+dataType);
String groupNum = groupNumList.get(position);
myApp.setGroupNums(groupNum);//客户分组
startActivity(new Intent().setClass(GroupList.this, GroupList.class));
//finish();
}
finish();
}
});
/**
* 绑定长按时间监听器
* 目标对象:分组
* 条件:分组下存在客户(目前只做数据采集功能的处理)、客户、数据采集模块中的客户
*/
listView.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
System.out.println("-------------------------------长按事件-----------------------------");
isCust = false;//初始化
if(!flag_exit
&& (myApp.getModuleName().equals("xssb") || myApp.getModuleName().equals("kcsb") || myApp.getModuleName().equals("jpsb"))
&& myApp.getDataType().equals("1")){//
groupNums = groupNumList.get(position);
String fzmc = groupNameList.get(position);
//查询分组下是否有客户,有客户则下一步
db = new Optdb_interfce(GroupList.this);
//judageExitCust(groupNums,db);//执行查找逻辑
System.out.println("是否有客户----------------------------"+isCust);
db.close_SqlDb();
//if(isCust){
if(moduleName.equals("xssb") || moduleName.equals("kcsb")){
//清楚上次记忆的分组编号
myApp.setGroupNums("");
myApp.setDataType("2");
myApp.setFzid(groupNums);
myApp.setFzmc(fzmc);
startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class));
}else if(moduleName.equals("jpsb")){
//清楚上次记忆的分组编号
myApp.setGroupNums("");
myApp.setDataType("3");
myApp.setFzid(groupNums);
myApp.setFzmc(fzmc);
startActivity(new Intent().setClass(GroupList.this, GoodGroupList.class));
}
finish();
/*}else{
new Toast(GroupList.this).makeText(GroupList.this, "抱歉,该分组下无客户数据!", Toast.LENGTH_LONG).show();
//以下执行是为了阻止单击事件的执行
startActivity(new Intent().setClass(GroupList.this, GroupList.class));
finish();
}*/
}
return false;
}
});
}
/**
* 根据分组id,查询分组及其子分组下是否有客户信息
* @param groupNum
* @return
*/
public void judageExitCust(String groupNums,Optdb_interfce db){
System.out.println("分组编号*******************"+groupNums);
boolean isExit = false;
ArrayList<Object> custs = new ArrayList<Object>();
ArrayList<Object> li = db.searchFGroups(groupNums,1);//逐级取出分组编号及分组名称
custs = db.searchCustsByMoreGps(groupNums,1);//获得分组下的客户信息
System.out.println("客户数据*******************"+custs.size());
System.out.println("分组数据*******************"+li.size());
//判断分组下是否有客户
if(custs != null && custs.size()>0){
isCust = true;
}else{
groupNums = "";
//判断分组下有无子分组
if(li.size()>0){
//分组循环
for(int i=0;i<li.size();i++){
GroupsModule group = (GroupsModule) li.get(i);
//groupNumList.add(group.getGid()+"");
groupNums+=group.getGid()+",";
}
groupNums = groupNums.substring(0, groupNums.length()-1);
//循环查询
judageExitCust(groupNums,db);
}
}
}
/**
* 模糊搜索
*/
private void mhSearch(){
find.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
listBundle = new ArrayList<Bundle>();
Bundle bundle = null;
HashMap<String,String> map = null;
Optdb_interfce db = new Optdb_interfce(GroupList.this);
custList = new ArrayList<HashMap<String,String>>();
ArrayList<CustomerModule> custs = null;
if(find.getText().toString().equals("")){
loadData();//初始化
}else{
custs = db.searchCustomers(1,1,find.getText().toString());
for(int j=0;j<custs.size();j++){
map = new HashMap<String,String>();
bundle = new Bundle();
CustomerModule cust = custs.get(j);
map.put("textView1", cust.getShort_name());
custList.add(map);
bundle.putString("cid", cust.getCid());
bundle.putString("cname", cust.getCname());
bundle.putString("linkman", cust.getLinkman());
bundle.putString("link_sim", cust.getLink_sim());
bundle.putString("address", cust.getAddress());
bundle.putString("lon", cust.getLon());
bundle.putString("lat", cust.getLat());
bundle.putString("clon", cust.getClon());
bundle.putString("clat", cust.getClat());
listBundle.add(bundle);
flag_exit = true;
}
showList();
}
db.close_SqlDb();
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK){
System.out.println("--------------------------------------");
if(!myApp.getGroupNums().equals("")){
myApp.setGroupNums("");
startActivity(new Intent().setClass(GroupList.this, GroupList.class));
}
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}