Newer
Older
GasOperationApp / app / src / main / java / com / casic / gasoperation / EditPersonActivity.java
[wangxitong] on 24 May 2021 16 KB first commit
package com.casic.gasoperation;

import android.app.Activity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;

import com.casic.gasoperation.config.ApiClent;
import com.casic.gasoperation.utils.ActivityTools;
import com.casic.gasoperation.utils.DictTypeModel;
import com.casic.gasoperation.utils.Msg;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


public class EditPersonActivity extends BaseActivity {
    private Button submit;
    private ImageView back;
    private EditText name,phone,personcode;
    private Spinner department,status,num,type;
    private ArrayAdapter<DictTypeModel> departmentAdapter,statusAdapter,typeAdapter,numAdapter;
    private TextView title;
    private String id;
    private String pageType;
    private String jobId;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.edit_person);
        submit = (Button) findViewById(R.id.submit);
        submit.setOnClickListener(onClickListener);
        back = (ImageView) findViewById(R.id.back);
        back.setOnClickListener(onClickListener);
        title = (TextView) findViewById(R.id.title);
        name = (EditText) findViewById(R.id.name);
        personcode = (EditText) findViewById(R.id.personcode);
        phone = (EditText) findViewById(R.id.phone);
        num = (Spinner) findViewById(R.id.num);
        department = (Spinner) findViewById(R.id.department);
        status = (Spinner) findViewById(R.id.status);
        type = (Spinner) findViewById(R.id.type);
        department.setClickable(false);
        num.setClickable(false);
        type.setClickable(false);
        numAdapter = ActivityTools.getInstance().getSpinAdapter("", null, EditPersonActivity.this);
        num.setAdapter(numAdapter);
        departmentAdapter = ActivityTools.getInstance().getSpinAdapter("", null, EditPersonActivity.this);
        department.setAdapter(departmentAdapter);
        typeAdapter = ActivityTools.getInstance().getSpinAdapter("", null, EditPersonActivity.this);
        type.setAdapter(typeAdapter);
        statusAdapter = ActivityTools.getInstance().getSpinAdapter("", null, EditPersonActivity.this);
        DictTypeModel item1 = new DictTypeModel("1","已授权","1");
        DictTypeModel item2 = new DictTypeModel("0","未授权","0");
        statusAdapter.add(item1);
        statusAdapter.add(item2);
        status.setAdapter(statusAdapter);
        final Bundle bundle=getIntent().getExtras();
        String data;
        pageType = bundle.getString("type");
        jobId = bundle.getString("jobId");
        title.setText(pageType+"工作人员");
        try {
            ApiClent.getDepartment(new ApiClent.ClientCallback() {
                @Override
                public void onSuccess(Object data) {
                    try {
                        JSONObject jsonObject = new JSONObject(data.toString());
                        JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("list");
                        if (jsonArray.length() == 0) {
                            Msg.showInfo(EditPersonActivity.this, "未查询到任何项");
                            DictTypeModel child = new DictTypeModel("", "", "");
                            departmentAdapter.add(child);
                            return;
                        } else {
                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject json = jsonArray.getJSONObject(i);
                                DictTypeModel child = new DictTypeModel(json.getString("id"), json.getString("fullname"), json.getString("id"));
                                departmentAdapter.add(child);
                            }
                            if(pageType.equals("编辑")){
                                for (int i = 0, count = department.getCount(); i < count; i++) {
                                    DictTypeModel typeItem = (DictTypeModel) department.getItemAtPosition(i);
                                    JSONObject json = new JSONObject(bundle.getString("data"));
                                    if (typeItem.getId().equals(json.getString("department"))) {
                                        department.setSelection(i, true);
                                        break;
                                    }
                                }
                            }

                        }
                        department.setClickable(true);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                @Override
                public void onFailure(String message) {
                }
                @Override
                public void onError(Exception e) {
                }
            });
            ApiClent.getPersonType(new ApiClent.ClientCallback() {
                @Override
                public void onSuccess(Object data)
                {
                    try {
                        JSONObject jsonObject = new JSONObject(data.toString());
                        JSONArray jsonArray = jsonObject.getJSONArray("data");
                        if (jsonArray.length()== 0) {
                            Msg.showInfo(EditPersonActivity.this, "未查询到任何项");
                            DictTypeModel child = new DictTypeModel("","","");
                            typeAdapter.add(child);
                            return ;
                        }else{
                            for(int i=0;i<jsonArray.length();i++)
                            {
                                JSONObject json = jsonArray.getJSONObject(i);
                                DictTypeModel child = new DictTypeModel(json.getString("value"),json.getString("name"),json.getString("value"));
                                typeAdapter.add(child);
                            }
                            if(pageType.equals("编辑")) {
                                for (int i = 0, count = type.getCount(); i < count; i++) {
                                    DictTypeModel typeItem = (DictTypeModel) type.getItemAtPosition(i);
                                    JSONObject json = new JSONObject(bundle.getString("data"));
                                    if (typeItem.getId().equals(json.getString("personType"))) {
                                        type.setSelection(i, true);
                                        break;
                                    }
                                }
                            }
                        }
                        type.setClickable(true);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                @Override
                public void onFailure(String message) {
                }
                @Override
                public void onError(Exception e) {
                }
            });
            ApiClent.getAuthorizeCode(jobId,new ApiClent.ClientCallback() {
                @Override
                public void onSuccess(Object data)
                {
                    try {
                        JSONObject jsonObject = new JSONObject(data.toString());
                        JSONArray jsonArray = jsonObject.getJSONArray("data");
                        if (jsonArray.length()== 0) {
                            Msg.showInfo(EditPersonActivity.this, "无可用手环编号");
                            DictTypeModel child = new DictTypeModel("请选择手环编号","请选择手环编号","请选择手环编号");
                            numAdapter.add(child);
                            return ;
                        }else{
                            DictTypeModel child = new DictTypeModel("请选择手环编号","请选择手环编号","请选择手环编号");
                            numAdapter.add(child);
                            for(int i=0;i<jsonArray.length();i++)
                            {
                                String str = jsonArray.getString(i);
                                child = new DictTypeModel(str,str,str);
                                numAdapter.add(child);
                            }
                            if(pageType.equals("编辑")) {
                                JSONObject json = new JSONObject(bundle.getString("data"));
                                if(json.getString("bangleCode").length()==0){
                                    num.setSelection(0, true);
                                }else {
                                    for (int i = 0, count = num.getCount(); i < count; i++) {
                                        DictTypeModel typeItem = (DictTypeModel) num.getItemAtPosition(i);
                                        if (typeItem.getId().equals(json.getString("bangleCode").substring(json.getString("bangleCode").length()-2))) {
                                            num.setSelection(i, true);
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                        num.setClickable(true);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                @Override
                public void onFailure(String message) {
                }
                @Override
                public void onError(Exception e) {
                }
            });
        }
        catch (Exception e) {
            Msg.showInfo(EditPersonActivity.this, "初始化人员信息出错!");
        }
        if(pageType.equals("编辑")) {
            init();
        }
    }
    public void init()
    {
        try {
            Bundle bundle=getIntent().getExtras();
            String data =bundle.getString("data");
            JSONObject json = new JSONObject(data);
            id = json.getString("id");
            name.setText(json.getString("name"));
            personcode.setText(json.getString("personCode"));
            phone.setText(json.getString("phone"));
//            if(json.getString("bangleCode").length()>2){
//                num.setText(json.getString("bangleCode").substring(json.getString("bangleCode").length()-2));
//            }
            if(json.getString("authorizeName").equals("已授权"))
                status.setSelection(0,true);
            else
                status.setSelection(1,true);
        }catch (Exception e)
        {
            Msg.showInfo(EditPersonActivity.this, "获取人员详情出错!");
        }
    }
    @Override
    protected void handleMessage(Message msg)
    {
    }
    @Override
    protected void onCancelProgress(DialogInterface arg0)
    {
        EditPersonActivity.this.finish();
    }
    private View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            if (arg0 == submit) {
                if(name.getText().length()==0||phone.getText().length()==0||personcode.getText().length()==0)
                {
                    Msg.showInfo(EditPersonActivity.this, "请补全信息");
                    return;
                }
                DictTypeModel selectDevice = (DictTypeModel) status.getSelectedItem();
                DictTypeModel numitem = (DictTypeModel) num.getSelectedItem();
                if(selectDevice.getName()=="已授权"&& numitem.getName().length()>2)
                {
                    Msg.showInfo(EditPersonActivity.this, "请填写授权手环编号");
                    return;
                }
                String telRegex = "13\\d{9}|14[57]\\d{8}|15[012356789]\\d{8}|18[01256789]\\d{8}|17[0678]\\d{8}";
                if(!phone.getText().toString().matches(telRegex)){
                    Msg.showInfo(EditPersonActivity.this, "请填写正确手机号码");
                    return;
                }
                DictTypeModel statusitem = (DictTypeModel) status.getSelectedItem();
                String statusstr = statusitem.getId();
                DictTypeModel departmentitem = (DictTypeModel) department.getSelectedItem();
                String departmentstr = departmentitem.getId();
                DictTypeModel typeitem = (DictTypeModel) type.getSelectedItem();
                String typestr = typeitem.getId();
                String numstr = numitem.getId();

                if(pageType.equals("编辑"))
                {
                    ApiClent.editPerson(id,name.getText().toString(),personcode.getText().toString(),departmentstr,statusstr,numstr,typestr,
                            phone.getText().toString(),jobId,
                            new ApiClent.ClientCallback() {
                        @Override
                        public void onSuccess(Object data)
                        {
                            try {
                                JSONObject jsonObject = new JSONObject(data.toString());
                                Msg.showInfo(EditPersonActivity.this, "编辑人员成功");
                                for (Activity activity : activedActivity)
                                {
                                    if (activity instanceof PersonManagerActivity)
                                    {
                                        ((PersonManagerActivity) activity).getPersonList();
                                    }
                                }
                                finish();
                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                        @Override
                        public void onFailure(String message) {
                            Msg.showInfo(EditPersonActivity.this, message);
                        }
                        @Override
                        public void onError(Exception e) {
                        }
                    });
                }
                else
                {
                    ApiClent.addPerson(name.getText().toString(),personcode.getText().toString(),departmentstr,statusstr,numstr,typestr,
                            phone.getText().toString(),jobId,
                            new ApiClent.ClientCallback() {
                                @Override
                                public void onSuccess(Object data)
                                {
                                    try {
                                        JSONObject jsonObject = new JSONObject(data.toString());
                                        Msg.showInfo(EditPersonActivity.this, "新增人员成功");
                                        for (Activity activity : activedActivity)
                                        {
                                            if (activity instanceof PersonManagerActivity)
                                            {
                                                ((PersonManagerActivity) activity).getPersonList();
                                            }
                                        }
                                        finish();
                                    } catch (JSONException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                                @Override
                                public void onFailure(String message) {
                                    Msg.showInfo(EditPersonActivity.this, message);
                                }
                                @Override
                                public void onError(Exception e) {
                                }
                            });
                }

            }
            else  if (arg0 == back) {
                finish();
            }
        }
    };
}