|
|
@@ -1,9 +1,14 @@
|
|
|
package com.uas.appworks.crm3_0.activity;
|
|
|
|
|
|
+import android.content.Intent;
|
|
|
+import android.graphics.Color;
|
|
|
+import android.os.Bundle;
|
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.util.SparseArray;
|
|
|
import android.view.LayoutInflater;
|
|
|
+import android.view.Menu;
|
|
|
+import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
|
|
|
import android.view.ViewGroup;
|
|
|
@@ -12,18 +17,26 @@ import android.widget.TextView;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.common.LogUtil;
|
|
|
import com.common.config.BaseConfig;
|
|
|
import com.common.data.DateFormatUtil;
|
|
|
import com.common.data.JSONUtil;
|
|
|
import com.common.data.ListUtils;
|
|
|
+import com.core.app.Constants;
|
|
|
+import com.core.base.BaseActivity;
|
|
|
import com.core.utils.CommonUtil;
|
|
|
+import com.core.utils.ToastUtil;
|
|
|
+import com.iflytek.cloud.thirdparty.V;
|
|
|
import com.me.network.app.http.Method;
|
|
|
import com.modular.apputils.activity.BaseNetActivity;
|
|
|
+import com.modular.apputils.activity.BillInputActivity;
|
|
|
import com.modular.apputils.listener.OnSmartHttpListener;
|
|
|
import com.modular.apputils.network.Parameter;
|
|
|
import com.modular.apputils.network.Tags;
|
|
|
+import com.modular.apputils.utils.UUHttpHelper;
|
|
|
import com.modular.apputils.widget.DivideRadioGroup;
|
|
|
import com.modular.apputils.widget.compactcalender.CompactCalendarView;
|
|
|
+import com.modular.apputils.widget.compactcalender.domain.Event;
|
|
|
import com.module.recyclerlibrary.ui.refresh.EmptyRecyclerView;
|
|
|
import com.uas.appworks.R;
|
|
|
import com.uas.appworks.model.VisitPlan;
|
|
|
@@ -38,7 +51,7 @@ import java.util.TimeZone;
|
|
|
/**
|
|
|
* CRM 3.0 客户拜访界面(拜访计划)
|
|
|
*/
|
|
|
-public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
+public class CustomerVisitActivity extends BaseActivity {
|
|
|
private final int LOAD_DATA = 0x11;
|
|
|
private final int TAG_DATE = 0x13;//记录获取的值对象,比如(20181101 表示2018-11 我的数据 20181102 表示2018-11 我的下属数据)
|
|
|
|
|
|
@@ -50,62 +63,81 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
private RecyclerView mRecyclerView;
|
|
|
private Date mCurrentDate;
|
|
|
private SparseArray<List<VisitPlan>> datas;
|
|
|
+ private UUHttpHelper mUUHttpHelper;
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
+ getMenuInflater().inflate(R.menu.menu_add_icon, menu);
|
|
|
+ return super.onCreateOptionsMenu(menu);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
- protected int getLayoutId() {
|
|
|
- return R.layout.activity_customer_visit;
|
|
|
+ public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
+ if (item.getItemId() == R.id.add_item) {
|
|
|
+ startActivity(new Intent(ct, BillInputActivity.class)
|
|
|
+ .putExtra(Constants.Intents.CALLER, "MOBILEOUTPLAN")
|
|
|
+ .putExtra(Constants.Intents.TITLE, "客户拜访计划")
|
|
|
+ .putExtra(Constants.Intents.ID, 0));
|
|
|
+ }
|
|
|
+ return super.onOptionsItemSelected(item);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- protected void init() throws Exception {
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ setContentView(R.layout.activity_customer_visit);
|
|
|
+ mUUHttpHelper = new UUHttpHelper(CommonUtil.getAppBaseUrl(this));
|
|
|
initView();
|
|
|
initData();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- protected String getBaseUrl() {
|
|
|
- return CommonUtil.getAppBaseUrl(this);
|
|
|
- }
|
|
|
-
|
|
|
private void initView() {
|
|
|
mCurrentDate = new Date();
|
|
|
myVisitRb = findViewById(R.id.myVisitRb);
|
|
|
- visitTypeRg = (DivideRadioGroup) findViewById(R.id.visitTypeRg);
|
|
|
- monthTv = (TextView) findViewById(R.id.monthTv);
|
|
|
- toDayTv = (TextView) findViewById(R.id.newDayTv);
|
|
|
- mCalendarView = (CompactCalendarView) findViewById(R.id.compactcalendar_view);
|
|
|
- EmptyRecyclerView mEmptyRecyclerView = (EmptyRecyclerView) findViewById(R.id.mEmptyRecyclerView);
|
|
|
+ final View myLine = findViewById(R.id.myLine);
|
|
|
+ final View otherLine = findViewById(R.id.otherLine);
|
|
|
+ visitTypeRg = findViewById(R.id.visitTypeRg);
|
|
|
+ monthTv = findViewById(R.id.monthTv);
|
|
|
+ toDayTv = findViewById(R.id.newDayTv);
|
|
|
+ mCalendarView = findViewById(R.id.compactcalendar_view);
|
|
|
+ EmptyRecyclerView mEmptyRecyclerView = findViewById(R.id.mEmptyRecyclerView);
|
|
|
mRecyclerView = mEmptyRecyclerView.getRecyclerView();
|
|
|
-
|
|
|
+ myLine.setVisibility(View.VISIBLE);
|
|
|
+ otherLine.setVisibility(View.INVISIBLE);
|
|
|
visitTypeRg.setOnCheckedChangeListener(new DivideRadioGroup.OnCheckedChangeListener() {
|
|
|
@Override
|
|
|
public void onCheckedChanged(DivideRadioGroup group, int checkedId) {
|
|
|
if (checkedId == R.id.myVisitRb) {
|
|
|
-
|
|
|
+ myLine.setVisibility(View.VISIBLE);
|
|
|
+ otherLine.setVisibility(View.INVISIBLE);
|
|
|
} else if (R.id.otherVisitRb == checkedId) {
|
|
|
-
|
|
|
+ myLine.setVisibility(View.INVISIBLE);
|
|
|
+ otherLine.setVisibility(View.VISIBLE);
|
|
|
}
|
|
|
+ loadData();
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
toDayTv.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- mCalendarView.setCurrentDate(new Date());
|
|
|
+ mCurrentDate = new Date();
|
|
|
+ mCalendarView.setCurrentDate(mCurrentDate);
|
|
|
+ loadData();
|
|
|
}
|
|
|
});
|
|
|
mCalendarView.setListener(new CompactCalendarView.CompactCalendarViewListener() {
|
|
|
@Override
|
|
|
public void onDayClick(Date dateClicked) {
|
|
|
-
|
|
|
+ mCurrentDate = dateClicked;
|
|
|
+ loadData();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onMonthScroll(Date firstDayOfNewMonth) {
|
|
|
mCurrentDate = firstDayOfNewMonth;
|
|
|
- loadData(!myVisitRb.isChecked());
|
|
|
+ loadData();
|
|
|
}
|
|
|
});
|
|
|
mCalendarView.setFirstDayOfWeek(Calendar.SUNDAY);
|
|
|
@@ -120,11 +152,13 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
|
|
|
private void initData() {
|
|
|
datas = new SparseArray<>();
|
|
|
- loadData(false);
|
|
|
+ loadData();
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void loadData(boolean isOther) {
|
|
|
+ private void loadData() {
|
|
|
+ progressDialog.show();
|
|
|
+ boolean isOther = !myVisitRb.isChecked();
|
|
|
String month = DateFormatUtil.date2Str(mCurrentDate, DateFormatUtil.YM);
|
|
|
int monthInt = 1;
|
|
|
try {
|
|
|
@@ -133,16 +167,16 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
}
|
|
|
List<VisitPlan> visitPlanArrayList = datas.get(monthInt);
|
|
|
if (visitPlanArrayList == null) {
|
|
|
- requestCompanyHttp(new Parameter.Builder()
|
|
|
+ mUUHttpHelper.requestCompanyHttp(new Parameter.Builder()
|
|
|
.mode(Method.GET)
|
|
|
.addParams("dataTime", month)
|
|
|
- .addParams("salesmanCode", BaseConfig.isDebug() ? "zhouy" : CommonUtil.getEmcode())
|
|
|
+ .addParams("salesmanCode", CommonUtil.getEmcode())
|
|
|
.addParams("flag", isOther ? 1 : 0)
|
|
|
.addTag(TAG_DATE, monthInt)
|
|
|
.record(LOAD_DATA)
|
|
|
- .url("/mobile/crm/getvisitplanmsg.action"), mOnSmartHttpListener);
|
|
|
+ .url("mobile/crm/getvisitplanmsg.action"), mOnSmartHttpListener);
|
|
|
} else {
|
|
|
- setAdapter(visitPlanArrayList);
|
|
|
+ handlerAndShowByDay(visitPlanArrayList);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -158,11 +192,21 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
handerData(monthInt, JSONUtil.getJSONArray(message, "visitPlan"));
|
|
|
break;
|
|
|
}
|
|
|
+ if (progressDialog != null) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onFailure(int what, String message, Tags tag) throws Exception {
|
|
|
-
|
|
|
+ if (JSONUtil.validateJSONObject(message)) {
|
|
|
+ ToastUtil.showToast(ct, JSONUtil.getText(message, "exceptionInfo"));
|
|
|
+ } else {
|
|
|
+ ToastUtil.showToast(ct, message);
|
|
|
+ }
|
|
|
+ if (progressDialog != null) {
|
|
|
+ progressDialog.dismiss();
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -174,21 +218,22 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
JSONObject object = array.getJSONObject(i);
|
|
|
int id = JSONUtil.getInt(object, "id");
|
|
|
String code = JSONUtil.getText(object, "code");
|
|
|
- String entryDate = JSONUtil.getText(object, "entry_date");
|
|
|
String customerName = JSONUtil.getText(object, "customer_name");
|
|
|
String customerAddress = JSONUtil.getText(object, "customer_address");
|
|
|
- String startTime = JSONUtil.getText(object, "start_time");
|
|
|
- String endTime = JSONUtil.getText(object, "end_time");
|
|
|
+ long entryDate = JSONUtil.getTime(object, "entry_date");
|
|
|
+ long startTime = JSONUtil.getTime(object, "start_time");
|
|
|
+ long endTime = JSONUtil.getTime(object, "end_time");
|
|
|
String status = JSONUtil.getText(object, "status");
|
|
|
String doman = JSONUtil.getText(object, "doman");
|
|
|
String domanCode = JSONUtil.getText(object, "domanCode");
|
|
|
mVisitPlan.setId(id);
|
|
|
mVisitPlan.setCode(code);
|
|
|
- mVisitPlan.setEntryDate(entryDate);
|
|
|
+ mVisitPlan.setStartDay(DateFormatUtil.long2Str(startTime, DateFormatUtil.YMD));
|
|
|
mVisitPlan.setCustomerName(customerName);
|
|
|
mVisitPlan.setCustomerAddress(customerAddress);
|
|
|
mVisitPlan.setStartTime(startTime);
|
|
|
mVisitPlan.setEndTime(endTime);
|
|
|
+ mVisitPlan.setEntryDate(entryDate);
|
|
|
mVisitPlan.setStatus(status);
|
|
|
mVisitPlan.setDoman(doman);
|
|
|
mVisitPlan.setDomanCode(domanCode);
|
|
|
@@ -196,11 +241,34 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
}
|
|
|
datas.put(monthInt, visitPlanArrayList);
|
|
|
}
|
|
|
- setAdapter(visitPlanArrayList);
|
|
|
+ handlerAndShowByDay(visitPlanArrayList);
|
|
|
}
|
|
|
|
|
|
private ListAdapter mListAdapter;
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理当月数据并显示
|
|
|
+ *
|
|
|
+ * @param visitPlanArrayList 获取到的月数据
|
|
|
+ */
|
|
|
+ private void handlerAndShowByDay(List<VisitPlan> visitPlanArrayList) {
|
|
|
+ mCalendarView.removeAllEvents();
|
|
|
+ if (ListUtils.isEmpty(visitPlanArrayList)) {
|
|
|
+ setAdapter(visitPlanArrayList);
|
|
|
+ } else {
|
|
|
+ List<VisitPlan> showPlan = new ArrayList<>();
|
|
|
+ String mCurrentDay = DateFormatUtil.date2Str(mCurrentDate, DateFormatUtil.YMD);
|
|
|
+ for (VisitPlan visitPlan : visitPlanArrayList) {
|
|
|
+ mCalendarView.addEvent(new Event(Color.argb(255, 169, 68, 65), visitPlan.getStartTime()));
|
|
|
+ if (mCurrentDay.equals(visitPlan.getStartDay())) {
|
|
|
+ showPlan.add(visitPlan);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ setAdapter(showPlan);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void setAdapter(List<VisitPlan> visitPlanArrayList) {
|
|
|
if (mListAdapter == null) {
|
|
|
mListAdapter = new ListAdapter(visitPlanArrayList);
|
|
|
@@ -208,6 +276,7 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
} else {
|
|
|
mListAdapter.updateVisitPlans(visitPlanArrayList);
|
|
|
}
|
|
|
+ progressDialog.dismiss();
|
|
|
}
|
|
|
|
|
|
private class ListAdapter extends RecyclerView.Adapter<ListAdapter.VisitRecordViewHolder> {
|
|
|
@@ -264,11 +333,27 @@ public class CustomerVisitActivity extends BaseNetActivity {
|
|
|
@Override
|
|
|
public void onBindViewHolder(VisitRecordViewHolder holder, int i) {
|
|
|
VisitPlan mVisitPlan = visitPlans.get(i);
|
|
|
- holder.contactTv.setText(mVisitPlan.getCode());
|
|
|
- holder.dateTv.setText(mVisitPlan.getCode());
|
|
|
- holder.doManTv.setText(mVisitPlan.getCode());
|
|
|
+ holder.contactTv.setText(mVisitPlan.getCustomerName());
|
|
|
+ holder.dateTv.setText(mVisitPlan.getStartDay());
|
|
|
+ holder.doManTv.setText(mVisitPlan.getDoman());
|
|
|
holder.statusTv.setText(mVisitPlan.getStatus());
|
|
|
+ holder.itemView.setTag(mVisitPlan);
|
|
|
+ holder.itemView.setOnClickListener(mOnItemClickListener);
|
|
|
}
|
|
|
+
|
|
|
+ private View.OnClickListener mOnItemClickListener = new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ if (view.getTag() != null && view.getTag() instanceof VisitPlan) {
|
|
|
+ VisitPlan mVisitPlan = (VisitPlan) view.getTag();
|
|
|
+ startActivity(new Intent(ct, CustomerVisitDetailsActivity.class)
|
|
|
+ .putExtra(Constants.Intents.TITLE, "客户拜访详情")
|
|
|
+ .putExtra(Constants.Intents.ID, mVisitPlan.getId())
|
|
|
+ .putExtra(Constants.Intents.CALLER, "MOBILEOUTPLAN")
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
}
|
|
|
|
|
|
}
|