package com.jiuqi.njt.management;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewStub;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.RepairsFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.SentEmployeeBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.file.ServiceFileBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.InnerManagementBean;
import com.jiuqi.mobile.nigo.comeclose.manager.base.IInnerManagementManager;
import com.jiuqi.mobile.nigo.comeclose.manager.file.ISentEmployeeManager;
import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext;
import com.jiuqi.njt.R;
import com.jiuqi.njt.adapter.TreeViewPgAdapter;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.model.UserTreeElement;
import com.jiuqi.njt.ui.AbstractNjtActivity03;
import com.jiuqi.njt.util.TitleBarUtil;
import com.jiuqi.njt.util.UIUtil;
/**
* 派工页面
*/
public class RepairActivity extends AbstractNjtActivity03 implements
OnClickListener {
// /显示的数量currentElements
private ArrayList<UserTreeElement> currentElements = new ArrayList<UserTreeElement>();
// /总的节点数
private ArrayList<UserTreeElement> alltreeElements = new ArrayList<UserTreeElement>();
private ListView listview;
public ViewStub rlTitleBar;
public static TreeViewPgAdapter treeViewAdapter;
private MyApp application;
private List<InnerManagementBean> innerList;
private LinearLayout bxLinear;
private Boolean resultBoo = false;
public static String innerEmployeeGuid = null;
private LinearLayout compleLinear;
private LinearLayout gjlinear;
private EditText find;//模糊搜索
private Button findkey, btncomplete;
private SentEmployeeBean sentEmployeeBean;
private RepairsFileBean repairsFileBean;
private Boolean chaBoolean = false;
private ServiceFileBean serviceFileBean ;
private String bxGuid = null;
private String wxdGuid = null;
private String wxName = null;
private String wxMobile = null;
private String guidBxDx;
private OptsharepreInterface sharePre;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@SuppressLint("NewApi")
protected void initWidgets() {
setContentView(R.layout.expandlist);
application = (MyApp) getApplication();
guidBxDx = getIntent().getStringExtra("guidBx");
sharePre = new OptsharepreInterface(getApplicationContext());
if (null != getIntent().getSerializableExtra("serviceFileBean")) {
serviceFileBean = new ServiceFileBean();
serviceFileBean =(ServiceFileBean)getIntent().getSerializableExtra("serviceFileBean");
bxGuid = serviceFileBean.getSentEmployeeBean().getRepairsFileBean().getGuid();
wxdGuid = serviceFileBean.getSentEmployeeBean().getRepairsFileBean().getRepairGuid();
wxName = serviceFileBean.getSentEmployeeBean().getRepairsFileBean().getRepairManName();
wxMobile = serviceFileBean.getSentEmployeeBean().getRepairsFileBean().getRepairManMobile();
}else {
repairsFileBean = new RepairsFileBean();
repairsFileBean =(RepairsFileBean) getIntent().getSerializableExtra("repairsFileBean");
bxGuid = repairsFileBean.getGuid();
wxdGuid = repairsFileBean.getRepairGuid();
wxName = repairsFileBean.getRepairManName();
wxMobile = repairsFileBean.getRepairManMobile();
}
initTitleBar();
bxLinear = (LinearLayout) findViewById(R.id.bxLinear);
compleLinear = (LinearLayout) findViewById(R.id.compleLinear);
gjlinear = (LinearLayout) findViewById(R.id.gjlinear);
find = (EditText) this.findViewById(R.id.find);
findkey = (Button) this.findViewById(R.id.findkey);
bxLinear.setVisibility(View.VISIBLE);
compleLinear.setVisibility(View.VISIBLE);
btncomplete = (Button) findViewById(R.id.btncomplete);
gjlinear.setVisibility(View.GONE);
listview = (ListView) this.findViewById(R.id.userlist);
}
protected void initTitleBar() {
rlTitleBar = (ViewStub) findViewById(R.id.titleBarStub);
TitleBarUtil.createTitleBar(this, rlTitleBar, "报修档案",
new View.OnClickListener() {
@Override
public void onClick(View v) {
RepairActivity.this.finish();
}
}, "维修单", new View.OnClickListener() {
@Override
public void onClick(View v) {
// 跳转到维修单界面,需传值
if (resultBoo) {
Intent intent = new Intent();
intent.setClass(RepairActivity.this,RepairOfSingleActivity.class);
intent.putExtra("pg", sentEmployeeBean);
startActivity(intent);
}else {
chaBoolean = true;
new Thread(runnable).start();
}
}
});
}
protected void initListeners() {
/*
* 传入报修单guid。查出派工单信息:ISentEmployeeManager 中的findSentEmployeeByRepairsFileGuid(报修单guid)。判断是否生成派工单,如果已生成派工单:IServiceFilesManager 中的findServiceFileBySentEmployeeGuid 传入参数为派工单guid
未生成派工单,需查出报修单信息: IRepairsFileManager 中的find(报修单guid)
*/
btncomplete.setOnClickListener(this);
findkey.setOnClickListener(this);
}
/**
* 获取用户列表
*/
protected void doQuery() {
name = find.getText().toString();
getUserTask = new GetUserTask();
getUserTask.execute();
}
@Override
protected void onQueryComplete() {
initListview();
}
private void initListview() {
initialData();
treeViewAdapter = new TreeViewPgAdapter(this, currentElements,alltreeElements,guidBxDx);
listview.setAdapter(treeViewAdapter);
}
private void initialData() {
if (null != parent) {
// 初始化数据
currentElements.clear();
alltreeElements.clear();
// UserTreeElement parentElement = new UserTreeElement("", "久其测试合作社",false, true, false, "", "0", "-1");
UserTreeElement parentElement = new UserTreeElement("", sharePre.getPres("username"),false, true, false, "", "0", "-1");
currentElements.add(parentElement);// 把久其测试首条写入
for (int i = 0; i < parent.size(); i++) {
UserTreeElement treeElements = new UserTreeElement(parent.get(i).getGuid(), parent.get(i).getUserName(), true,true, false, "", "-1", String.valueOf(i + 1));
alltreeElements.add(treeElements);
try {
ClientContext context = application.getClientContext();
IInnerManagementManager manager = context.getManager(IInnerManagementManager.class);
innerList = new ArrayList<InnerManagementBean>();
innerList = manager.findEmployeeByNameAndOrgAndGroup(name, user.getGuid(),parent.get(i).getGuid());
} catch (Exception e) {
}
if (innerList.size() != 0) {
for (int j = 0; j < innerList.size(); j++) {
UserTreeElement treeElementss = new UserTreeElement(innerList.get(j).getGuid(), innerList.get(j).getUserName(), true, false, false, "",String.valueOf(i + 1), "");
alltreeElements.add(treeElementss);
}
}else {
if (null == innerList || innerList.size() == 0 ) {
alltreeElements.remove(treeElements);
}
}
}// 分组
if (parentwfz.size() != 0) {
UserTreeElement treeElements = new UserTreeElement("", "未分组",true, true, false, "", "-1", String.valueOf(0));
alltreeElements.add(treeElements);
for (int k = 0; k < parentwfz.size(); k++) {
UserTreeElement treeElementss = new UserTreeElement(parentwfz.get(k).getGuid(), parentwfz.get(k).getUserName(), true, false, false, "",String.valueOf(0), "");
alltreeElements.add(treeElementss);
}
}// 未分组添加
}
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (null != innerEmployeeGuid) {
try {
// 传的参数
sentEmployeeBean = new SentEmployeeBean();
sentEmployeeBean.setRepairsGuid(bxGuid);//"报修单guid"
sentEmployeeBean.setRepairGuid(wxdGuid);//"指定维修点guid"
sentEmployeeBean.setRepairManName(wxName);
sentEmployeeBean.setRepairManMobile(wxMobile);
sentEmployeeBean.setSendState(2);
sentEmployeeBean.setDealState(2);
sentEmployeeBean.setInnerEmployeeGuid(innerEmployeeGuid);
sentEmployeeBean.setGuid();
// 传的参数
MyApp application = (MyApp) getApplication();
ClientContext context = application.getClientContext();
ISentEmployeeManager manager = context
.getManager(ISentEmployeeManager.class);
resultBoo = manager.createSentEmployeeAndUpdateRepairsFileDealState(sentEmployeeBean);
} catch (Exception e) {
}
handler.sendEmptyMessage(0);
}else {
handler.sendEmptyMessage(1);
}
}
};
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0:
if (resultBoo) {
Toast.makeText(RepairActivity.this, "派工完成", Toast.LENGTH_SHORT).show();
if (chaBoolean) {
Intent intent = new Intent();
intent.setClass(RepairActivity.this,RepairOfSingleActivity.class);
intent.putExtra("pg", sentEmployeeBean);
startActivity(intent);
}
} else {
Toast.makeText(RepairActivity.this, "派工失败", Toast.LENGTH_SHORT).show();
}
break;
case 1:
Toast.makeText(RepairActivity.this, "请选择维修工程师", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
};
};
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btncomplete:
new Thread(runnable).start();
break;
case R.id.findkey:
if (UIUtil.isFastDoubleClick()) {
return;
}
doQuery();
break;
default:
break;
}
}
public static void notifyData()
{
treeViewAdapter.notifyDataSetChanged();
}
}