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