|
|
@@ -19,6 +19,7 @@ import android.view.Menu;
|
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
import android.view.WindowManager;
|
|
|
+import android.widget.Button;
|
|
|
import android.widget.EditText;
|
|
|
import android.widget.PopupWindow;
|
|
|
import android.widget.TextView;
|
|
|
@@ -54,6 +55,7 @@ import com.xzjmyk.pm.activity.util.DateFormatUtil;
|
|
|
import com.xzjmyk.pm.activity.util.DisplayUtil;
|
|
|
import com.xzjmyk.pm.activity.util.StringUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
+import com.xzjmyk.pm.activity.util.ToastUtil;
|
|
|
import com.xzjmyk.pm.activity.view.crouton.Crouton;
|
|
|
import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
|
|
|
import com.xzjmyk.pm.activity.wxapi.ApiConfig;
|
|
|
@@ -74,6 +76,9 @@ import java.util.Map;
|
|
|
public class VisitReportAddActivity extends BaseActivity implements View.OnClickListener, RecognizerDialogListener {
|
|
|
|
|
|
private static final int LOAD_JIEDUAN = 67;
|
|
|
+ private static final int RES_SUBMIT_VISITRECORD = 0x213;
|
|
|
+ private static final int UPDATE_VISITRECORD = 0x214;
|
|
|
+ private static final int DELETE_VISITRECORD = 0x215;
|
|
|
@ViewInject(R.id.tv_address_login)
|
|
|
private FormEditText tv_address_login;
|
|
|
@ViewInject(R.id.tv_customer_login)
|
|
|
@@ -92,32 +97,66 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
private FormEditText tv_visit_content;
|
|
|
@ViewInject(R.id.tv_relate_business)
|
|
|
private FormEditText tv_relate_business;
|
|
|
+ @ViewInject(R.id.phone_tv)
|
|
|
+ private FormEditText phone_tv;//手机号
|
|
|
|
|
|
@ViewInject(R.id.tv_visit_type)
|
|
|
private FormEditText tv_visit_type;
|
|
|
+ @ViewInject(R.id.save_btn)
|
|
|
+ private Button save_btn;
|
|
|
+ @ViewInject(R.id.delete_btn)
|
|
|
+ private Button delete_btn;
|
|
|
|
|
|
private int vp_id = -1;
|
|
|
private int mVrId;
|
|
|
+ private int vr_code;
|
|
|
private boolean isB2b;
|
|
|
private boolean isOutplan;
|
|
|
+ /*
|
|
|
+ *单据状态和显示按钮的对应:
|
|
|
+ * 1.已提交==》反提交==》resSubmitVisitRecord.action
|
|
|
+ * 2.在录入==》删除==》deleteVisitRecord.action
|
|
|
+ * 3.无状态==》提交==》saveVisitRecord.action
|
|
|
+ * 4.反提交(点击反提交后的状态)==》更新==》updateVisitRecord.action
|
|
|
+ */
|
|
|
+ private int status;
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_visit_report_add);
|
|
|
- initView();
|
|
|
+ ViewUtils.inject(this);
|
|
|
initData();
|
|
|
+ initView();
|
|
|
initListener();
|
|
|
}
|
|
|
|
|
|
private void initView() {
|
|
|
- isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
|
|
|
- ViewUtils.inject(this);
|
|
|
getSupportActionBar().setTitle(getString(R.string.visitrecord));
|
|
|
findViewById(R.id.voice_search_iv).setOnClickListener(this);
|
|
|
if (isB2b) {
|
|
|
findViewById(R.id.stage_rl).setVisibility(View.GONE);
|
|
|
findViewById(R.id.business_rl).setVisibility(View.GONE);
|
|
|
+ findViewById(R.id.phone_rl).setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ switch (status) {
|
|
|
+ case 0:
|
|
|
+ save_btn.setText(R.string.common_submit_button);
|
|
|
+ delete_btn.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ save_btn.setText(R.string.unsubmit);
|
|
|
+ delete_btn.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ save_btn.setText(R.string.common_update_button);
|
|
|
+ delete_btn.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ save_btn.setText(R.string.unsubmit);
|
|
|
+ delete_btn.setVisibility(View.VISIBLE);
|
|
|
+ break;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -162,9 +201,12 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
tv_linksman_login.setFocusable(false);
|
|
|
tv_visit_type.setFocusable(false);
|
|
|
}
|
|
|
+ save_btn.setOnClickListener(this);
|
|
|
+ delete_btn.setOnClickListener(this);
|
|
|
}
|
|
|
|
|
|
private void initData() {
|
|
|
+ isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
|
|
|
if (!isB2b)
|
|
|
CommonUtil.getCommonId(this, "VISITRECORD_SEQ", mHandler, GET_VR_ID);
|
|
|
if (getIntent() == null) {
|
|
|
@@ -174,6 +216,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
int type = getIntent().getIntExtra("type", -1);
|
|
|
if (type == -1) return;
|
|
|
if (type == 2) {
|
|
|
+ status = 1;
|
|
|
String chche = getIntent().getStringExtra("data");
|
|
|
JSONObject object = JSON.parseObject(chche);
|
|
|
tv_date_start.setText(getTime(object, "vr_visittime", "vr_startdate"));
|
|
|
@@ -193,7 +236,10 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
nichecode = object.getString(getJSONString(object, "vr_nichecode"));
|
|
|
tv_relate_business.setText(getJSONString(object, "vr_nichename"));
|
|
|
// tv_visit_content.setText(getJSONString(object, "vr_detail"));
|
|
|
+ mVrId = OACheckUtil.getJsonIntager(object, "id");
|
|
|
+ vr_code = OACheckUtil.getJsonIntager(object, "vr_code");
|
|
|
} else if (type == 3) {
|
|
|
+ status = 0;
|
|
|
//1.开始日期==预计拜访时间 2.客户名称==公司名称 客户地址
|
|
|
String chche = getIntent().getStringExtra("data");
|
|
|
JSONObject object = JSON.parseObject(chche);
|
|
|
@@ -235,7 +281,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
|
|
|
@Override
|
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
- if (getIntent().getBooleanExtra("isMe", true)) {
|
|
|
+ if (getIntent().getBooleanExtra("isMe", true) && isB2b) {
|
|
|
getMenuInflater().inflate(R.menu.main_btn_submit, menu);
|
|
|
if (!getIntent().getBooleanExtra("isAgen", false)) {
|
|
|
menu.getItem(0).setTitle(getString(R.string.common_save_button));
|
|
|
@@ -248,17 +294,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
switch (item.getItemId()) {
|
|
|
case R.id.btn_save:
|
|
|
- if (canSubmit()) {
|
|
|
- if (isB2b) {
|
|
|
- saveB2bByHttp();
|
|
|
- } else
|
|
|
- CommonInterface.getInstance().getCodeByNet("VisitRecord", new CommonInterface.OnResultListener() {
|
|
|
- @Override
|
|
|
- public void result(boolean isOk, int result, String message) {
|
|
|
- sendHttpResquest(Constants.HTTP_SUCCESS_INIT, message);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ saveVisit();
|
|
|
break;
|
|
|
case android.R.id.home:
|
|
|
onBackPressed();
|
|
|
@@ -267,6 +303,20 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private void saveVisit() {
|
|
|
+ if (canSubmit()) {
|
|
|
+ if (isB2b) {
|
|
|
+ saveB2bByHttp();
|
|
|
+ } else
|
|
|
+ CommonInterface.getInstance().getCodeByNet("VisitRecord", new CommonInterface.OnResultListener() {
|
|
|
+ @Override
|
|
|
+ public void result(boolean isOk, int result, String message) {
|
|
|
+ sendHttpResquest(Constants.HTTP_SUCCESS_INIT, message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private static final int GET_VR_ID = 62;
|
|
|
private Handler mHandler = new Handler() {
|
|
|
@Override
|
|
|
@@ -283,12 +333,6 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
submit();
|
|
|
} else
|
|
|
endActivity();
|
|
|
-// mHandler.postDelayed(new Runnable() {
|
|
|
-// @Override
|
|
|
-// public void run() {
|
|
|
-//
|
|
|
-// }
|
|
|
-// }, 3000);
|
|
|
break;
|
|
|
case 0x16://更新状态接口
|
|
|
ToastMessage(getString(R.string.update_success));
|
|
|
@@ -339,6 +383,9 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
}
|
|
|
showSimpleDialog(tv_visit_steps, "商机阶段");
|
|
|
break;
|
|
|
+ case RES_SUBMIT_VISITRECORD:
|
|
|
+ save_btn.setText(R.string.common_update_button);
|
|
|
+ status = 2;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -394,6 +441,10 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
Crouton.makeText(ct, R.string.not_time_start_biger_end);
|
|
|
return false;
|
|
|
}
|
|
|
+ if (TextUtils.isEmpty(phone_tv.getText()) || !com.xzjmyk.pm.activity.util.StringUtils.isMobileNumber(phone_tv.getText().toString())) {
|
|
|
+ ToastUtil.showToast(ct, R.string.phone_number_format_error);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
if (TextUtils.isEmpty(tv_visit_content.getText())) {
|
|
|
Crouton.makeText(ct, getString(R.string.input_vist_context));
|
|
|
return false;
|
|
|
@@ -404,7 +455,8 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
return tv_customer_login.testValidity()
|
|
|
&& tv_linksman_login.testValidity()
|
|
|
&& tv_address_login.testValidity()
|
|
|
- && tv_visit_theme.testValidity();
|
|
|
+ && tv_visit_theme.testValidity()
|
|
|
+ ;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -420,6 +472,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ //保存
|
|
|
private void sendHttpResquest(int what, String code) {
|
|
|
String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
|
|
|
if (StringUtils.isEmpty(emname)) {
|
|
|
@@ -435,6 +488,8 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
"\"vr_class\":\"" + tv_visit_type.getHint().toString() + "\",\n" +
|
|
|
"\"vr_code\":\"" + code
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_tel\":\"" + phone_tv.getText().toString()
|
|
|
+ + "\",\n" +
|
|
|
"\"vr_visittime\":\""
|
|
|
+ tv_date_start.getText().toString() + //开始时间
|
|
|
"\",\n" +
|
|
|
@@ -506,6 +561,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
HashMap<String, Object> param = null;
|
|
|
@@ -626,6 +682,17 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
voice.setRecognizerDialogListener(this); //自己调用自己
|
|
|
voice.GetWordFromVoice();
|
|
|
break;
|
|
|
+ case R.id.save_btn:
|
|
|
+ if (save_btn.getText().toString().trim().equals(getString(R.string.unsubmit)))
|
|
|
+ resSubmitVisitRecord();
|
|
|
+ else if (save_btn.getText().toString().trim().equals(getString(R.string.common_update_button)))
|
|
|
+ updateVisitRecord();
|
|
|
+ else if (save_btn.getText().toString().trim().equals(getString(R.string.common_save_button)))
|
|
|
+ saveVisit();
|
|
|
+ else saveVisit();
|
|
|
+ case R.id.delete_btn:
|
|
|
+ deleteVisitRecord();
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -835,6 +902,115 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
|
|
|
ViewUtil.httpSendRequest(this, url, param, mHandler, headers, 0x16, null, null, "post");
|
|
|
}
|
|
|
|
|
|
+ private void resSubmitVisitRecord() {
|
|
|
+ String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") +
|
|
|
+ "crm/customermgr/resSubmitVisitRecord.action";
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("caller", "VisitRecord");
|
|
|
+ param.put("id", mVrId);
|
|
|
+ LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
+ headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
|
|
|
+ ViewUtil.httpSendRequest(this, url, param, mHandler, headers, RES_SUBMIT_VISITRECORD, null, null, "post");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteVisitRecord() {
|
|
|
+ if (!canSubmit()) return;
|
|
|
+ String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") +
|
|
|
+ "crm/customermgr/deleteVisitRecord.action";
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("caller", "VisitRecord");
|
|
|
+ param.put("id", mVrId);
|
|
|
+ LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
+ headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
|
|
|
+ ViewUtil.httpSendRequest(this, url, param, mHandler, headers, DELETE_VISITRECORD, null, null, "post");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateVisitRecord() {
|
|
|
+ String emname = CommonUtil.getName();
|
|
|
+ String formStore = "";
|
|
|
+ if (tv_customer_login.testValidity() && tv_linksman_login.testValidity()
|
|
|
+ && tv_address_login.testValidity() && tv_visit_theme.testValidity()
|
|
|
+ && tv_visit_content.testValidity()) {
|
|
|
+ formStore =
|
|
|
+ "{\n" +
|
|
|
+ "\"vr_id\":" + mVrId + ",\n" +
|
|
|
+ "\"vr_class\":\"" + tv_visit_type.getHint().toString() + "\",\n" +
|
|
|
+ "\"vr_code\":\"" + vr_code
|
|
|
+ + "\",\n" +
|
|
|
+ "\"vr_tel\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(phone_tv)
|
|
|
+ + "\",\n" +
|
|
|
+ "\"vr_visittime\":\""
|
|
|
+ + tv_date_start.getText().toString() + //开始时间
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_visitplace\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_address_login) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_cuname\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_customer_login) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_cucontact\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_linksman_login) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_contact\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_linksman_login) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_title\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_visit_theme) +//主题
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_nichestep\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_visit_steps) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_detail\":\"" +
|
|
|
+ CommonUtil.getNoMarkEditText(tv_visit_content) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_nichecode\":\"" +
|
|
|
+ nichecode +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_nichename\":\"" +
|
|
|
+ (TextUtils.isEmpty(tv_relate_business.getText()) ? "" : tv_relate_business.getText().toString()) +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_recorddate\":\"" +
|
|
|
+ DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd") +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_statuscode\":\"" +
|
|
|
+ "ENTERING" +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_recorder\":\"" +
|
|
|
+ emname +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_status\":\"" +
|
|
|
+ "在录入" +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_cuuu\":\"" +
|
|
|
+ cu_code +
|
|
|
+ "\",\n" +
|
|
|
+ "\"vr_visitend\":\"" +
|
|
|
+ tv_date_end.getText().toString() +//结束时间
|
|
|
+ "\"\n" +
|
|
|
+ "}";
|
|
|
+ } else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (progressDialog != null)
|
|
|
+ progressDialog.show();
|
|
|
+ String url = Constants.getAppBaseUrl(ct) + "uas/crm/customermgr/updateVisitRecord.action";
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("formStore", formStore);
|
|
|
+ params.put("caller", "VisitRecord");
|
|
|
+ String param1 = "{\"pl_detno\":1,\"pl_name\":" + emname + ",\"pl_vrid\":" + mVrId + "}";
|
|
|
+ params.put("param1", "[]");
|
|
|
+ params.put("param2", "[]");
|
|
|
+ params.put("param3", param1);
|
|
|
+ params.put("param4", "[]");
|
|
|
+ params.put("param5", "[]");
|
|
|
+ params.put("param6", "[]");
|
|
|
+ params.put("param7", "[]");
|
|
|
+ LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
|
|
|
+ headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
|
|
|
+ ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, UPDATE_VISITRECORD, null, null, "post");
|
|
|
+ }
|
|
|
+
|
|
|
//提交审批流
|
|
|
private void submit() {
|
|
|
String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") +
|