package com.jiuqi.njt.ui.staffmanagement;
import java.util.ArrayList;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.InnerManagementBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.RoleBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.RoleCode;
import com.jiuqi.njt.R;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.model.CModuleBean;
import com.jiuqi.njt.register.AllTaskInterface;
import com.jiuqi.njt.register.RegisterUtils;
import com.jiuqi.njt.register.RegisterUtils.JDialogOnItemOnClick;
import com.jiuqi.njt.ui.PoiLocateActivity;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.PatternUtils;
import com.jiuqi.njt.util.ReturnObject;
import com.jiuqi.njt.util.TitleBarUtil;
import com.jiuqi.njt.util.UIUtil;
import com.jiuqi.njt.util.ValidateRule;
import com.jiuqi.njt.util.Validator;
import com.jqyd.android.module.lbs.util.CheckState_interface;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewStub;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**
* 新增和修改员工信息页面
*
* @author
*
*/
public class AddStaffActivity extends Activity implements OnClickListener {
private EditText etContacts;
private EditText etPhone;
private Button btnProvince;
private EditText etXianShi;
private EditText etComments;
private Button btnMap;
private Button btnSubmit;
private CModuleBean moduleBean;
protected AdminAreaBean xzqh;
protected OptsharepreInterface sharePre;
protected InnerManagementBean bean;
/**
* 是否是展示信息
*/
private boolean isShowData;
/**
* 要新增的用户是否可以创建
*/
private boolean isCanAdd;
protected double longitude; // 经度
protected double latitude; // 纬度
/**
* 员工类别
*/
private Button btn_staffCategory;
/**
* 员工类别下标
*/
private int staffCategoryIndex;
/**
* 可以添加的员工类型数组
*/
private ArrayList<RoleCode> staffCategoryArray;
/**
* 添加员工的角色Code
*/
private int addRoleCode = -1;
private MyApp application;
private View staffCategory;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
doinit();
}
private void doinit()
{
initParam();
initWidgets();
initListeners();
initUI();
}
private void initParam() {
application = (MyApp) getApplicationContext();
sharePre = new OptsharepreInterface(AddStaffActivity.this);
bean = (InnerManagementBean) getIntent().getSerializableExtra(
"InnerManagementBean");
if (null == bean) {
bean = new InnerManagementBean();
} else {
isShowData = true;
}
staffCategoryArray = RegisterUtils.getUserStaffRolesArray(AddStaffActivity.this);
}
private void initWidgets() {
setContentView(R.layout.activity_add_staff);
ViewStub rlTitleBar = (ViewStub) findViewById(R.id.titleBarStub);
String title = "";
if (null != moduleBean) {
title = moduleBean.getModuleFlag().toString();
} else {
title = "员工管理";
}
TitleBarUtil.createTitleBar(this, rlTitleBar, title,
new OnClickListener() {
@Override
public void onClick(View v) {
AddStaffActivity.this.finish();
}
});
staffCategory = findViewById(R.id.staffCategory);
btn_staffCategory = (Button) findViewById(R.id.btn_staffCategory);
etContacts = (EditText) findViewById(R.id.etContacts);
etPhone = (EditText) findViewById(R.id.etPhone);
btnProvince = (Button) findViewById(R.id.btnProvince);
etXianShi = (EditText) findViewById(R.id.etXianShi);
etComments = (EditText) findViewById(R.id.etComments);
btnMap = (Button) findViewById(R.id.btnMap);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
}
private void initListeners() {
btn_staffCategory.setOnClickListener(this);
btnSubmit.setOnClickListener(this);
btnMap.setOnClickListener(this);
btnProvince.setOnClickListener(this);
if (!isShowData) {
etPhone.addTextChangedListener(new MyTextWatcher(
AddStaffActivity.this, addRoleCode, etPhone,
new AllTaskInterface() {
@Override
public <T> void taskFinishReturn(T... result) {
// TODO Auto-generated method stub
isCanAdd = (Boolean) result[0];
}
}));
}
}
private void initUI() {
/**
* 如果员工的类别数据为空,怎隐藏选择用户类别的数据
*/
if (null == staffCategoryArray || staffCategoryArray.size() < 1) {
staffCategory.setVisibility(View.GONE);
} else {
if(isShowData){
for (int i = 0; i < staffCategoryArray.size(); i++) {
if (bean.getEmployeeTypeName().equals(staffCategoryArray.get(i))) {
staffCategoryIndex = i;
}
}
}else{
addRoleCode = staffCategoryArray.get(0).getCode();
}
}
if (isShowData) {
etContacts.setText(null == bean.getUserName() ? "" : bean
.getUserName());
etPhone.setText(null == bean.getContactNumber() ? "" : bean
.getContactNumber());
etXianShi.setText(null == bean.getAddress() ? "" : bean
.getAddress());
xzqh = bean.getArea();
if (null != xzqh) {
btnProvince.setText(null == xzqh.getFullName() ? "" : xzqh
.getFullName());
}
btn_staffCategory.setText(null == bean.getEmployeeTypeName() ? ""
: bean.getEmployeeTypeName());
}else{
if(null != staffCategoryArray && staffCategoryArray.size() >0){
btn_staffCategory.setText(staffCategoryArray.get(0).getName());
}
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_staffCategory:
ArrayList<String> temp = new ArrayList<String>();
for (RoleCode roleCode : staffCategoryArray) {
temp.add(roleCode.getName());
}
if(null!=temp&&temp.size()>0){
String[] items = temp.toArray(new String[] {}) ;
RegisterUtils.doPopWindow(AddStaffActivity.this, btn_staffCategory,
items, "员工类别", new JDialogOnItemOnClick() {
@Override
public void JItemClick(int index) {
// TODO Auto-generated method stub
staffCategoryIndex = index;
addRoleCode = staffCategoryArray.get(
staffCategoryIndex).getCode();
}
});
}else{
UIUtil.showMsg(AddStaffActivity.this, "获取数据异常请重新登录");
}
break;
case R.id.btnProvince:
UIUtil.requestXzqh(this, xzqh);
break;
case R.id.btnMap:
Intent intent = new Intent();
intent.setClass(this, PoiLocateActivity.class);
startActivityForResult(intent, Constants.REQUEST_MAP_LOCATE_CODE);
break;
case R.id.btnSubmit:
if (UIUtil.isFastDoubleClick()) {
return;
}
if (doValidate()) {
if (new CheckState_interface(AddStaffActivity.this)
.checkConnection()) {
new AddStaffAsyncTask(AddStaffActivity.this, savaData(),
isShowData).execute();
} else {
UIUtil.showMsg(AddStaffActivity.this,
Constants.NETWORK_STATE_ERROR);
}
}
break;
default:
break;
}
}
private boolean doValidate() {
// TODO Auto-generated method stub
Validator validator = null;
ReturnObject ro = null;
// 验证这些控件是不是都有内容了
TextView[] widgets = new TextView[] { etContacts, etPhone ,btn_staffCategory}; // btnProvince
validator = new Validator();
validator.addRules(ValidateRule.IS_NOT_EMPTY,
ValidateRule.IS_REACH_MAX_LENGTH);
for (TextView w : widgets) {
ro = validator.val(w.getText());
if (!ro.isSuccess) {
UIUtil.showMsg(this, w.getHint().toString());
w.requestFocus();
return false;
}
}
// 验证这些控件是不是都是纯数字
validator.clearRules();
validator.addRules(ValidateRule.IS_DIGITS_ONLY);
widgets = new TextView[] { etPhone };
for (TextView w : widgets) {
ro = validator.val(w.getText());
if (!ro.isSuccess) {
UIUtil.showMsg(this, ro.getErrorMessage());
w.requestFocus();
return false;
}
}
// 验证行政区划是不是选到县级
// if(null!=xzqh){
// if (xzqh.getProvinceCode() == 0 || xzqh.getCityCode() == 0
// || xzqh.getCountryCode() == 0) {
// btnProvince.requestFocus();
// UIUtil.showMsg(this, "请选择省市县(详细到县级)");
// return false;
// }
// }
if (!PatternUtils.isMobileNO(etPhone.getText().toString())) {
UIUtil.showMsg(this, "手机号码不符合格式!");
return false;
}
if (!isShowData) {
if (!isCanAdd) {
UIUtil.showMsg(this, "该手机号用户已经被创建,请更换手机号");
etPhone.requestFocus();
return false;
}
}
return true;
}
/**
* 保存新增数据
*
* @return
*/
private InnerManagementBean savaData() {
if (!isShowData) {
bean.setGuid();
bean.setCreateDate();
bean.setUserName(etContacts.getText().toString());
bean.setOrgGuid(sharePre.getPres("guid"));
// if (roleCode == 0 || roleCode == 1 || roleCode == 2
// || roleCode == 3 || roleCode == 17 || roleCode == 18) {//管理员添加的员工
// roleBean.setCode(RoleCode.OrgEmployee.getCode());
// } else if (roleCode == 11) { //维修点添加的员工
// roleBean.setCode(RoleCode.ReapirEmployee.getCode());
// } else if (roleCode == 12) {//经销商添加的员工
// roleBean.setCode(RoleCode.DealerEmployee.getCode());
// } else if (roleCode == 4) {//合作社添加的员工
// roleBean.setCode(RoleCode.CooperEmployee.getCode());
// }
// bean.setRole(roleBean);
}
if (null != staffCategoryArray && staffCategoryArray.size() > 0) {
RoleBean roleBean;
if (!isShowData) {
roleBean = new RoleBean();
} else {
roleBean = bean.getRole();
}
roleBean.setCode(staffCategoryArray.get(staffCategoryIndex).getCode());
bean.setRole(roleBean);
bean.setEmployeeType(RegisterUtils.getUserRolesArray(AddStaffActivity.this).get(staffCategoryIndex).getCode());
}
bean.setContactPersonal(etContacts.getText().toString());
bean.setUserName(etContacts.getText().toString());
bean.setContactNumber(etPhone.getText().toString());
bean.setMobileNumber(etPhone.getText().toString());
bean.setAddress(etXianShi.getText().toString());
bean.setArea(xzqh);
return bean;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case Constants.REQUEST_XZQH_CODE:
if (resultCode == RESULT_OK) {
AdminAreaBean xzqh = (AdminAreaBean) data
.getSerializableExtra(Constants.PARAM_XZQH);
this.xzqh = xzqh;
if (null != xzqh && !TextUtils.isEmpty(xzqh.getFullName())) {
btnProvince.setText(xzqh.getFullName());
}
}
break;
case Constants.REQUEST_MAP_LOCATE_CODE:
if (resultCode == RESULT_OK) {
longitude = data.getDoubleExtra("longitude", 0);
latitude = data.getDoubleExtra("latitude", 0);
btnMap.setText("已标记");
}
break;
default:
break;
}
}
}