|
|
@@ -1,11 +1,9 @@
|
|
|
package com.uas.appworks.activity;
|
|
|
|
|
|
import android.content.Intent;
|
|
|
-import android.os.SystemClock;
|
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.text.TextUtils;
|
|
|
-import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.ImageView;
|
|
|
@@ -13,12 +11,16 @@ import android.widget.ImageView;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.fastjson.annotation.JSONField;
|
|
|
import com.common.LogUtil;
|
|
|
import com.common.data.JSONUtil;
|
|
|
import com.core.app.Constants;
|
|
|
import com.core.base.activity.BaseMVPActivity;
|
|
|
import com.core.utils.CommonUtil;
|
|
|
import com.me.network.app.base.HttpCallback;
|
|
|
+import com.me.network.app.base.HttpParams;
|
|
|
+import com.me.network.app.http.HttpRequest;
|
|
|
+import com.me.network.app.http.Method;
|
|
|
import com.uas.appworks.R;
|
|
|
import com.uas.appworks.adapter.B2BDetailListAdapter;
|
|
|
import com.uas.appworks.adapter.B2BQuotePriceAdapter;
|
|
|
@@ -27,7 +29,9 @@ import com.uas.appworks.model.bean.B2BQuotePriceBean;
|
|
|
import com.uas.appworks.presenter.WorkPlatPresenter;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @author RaoMeng
|
|
|
@@ -36,6 +40,8 @@ import java.util.List;
|
|
|
*/
|
|
|
|
|
|
public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPresenter> implements View.OnClickListener, HttpCallback {
|
|
|
+ private final int CUSTOMER_INQUIRY_REPLY = 0x14;
|
|
|
+ private final int CUSTOMER_INQUIRY_DETAIL = 0x15;
|
|
|
|
|
|
private RecyclerView mDataRecyclerView, mQuoteRecyclerView;
|
|
|
private ImageView mAddImageView;
|
|
|
@@ -45,7 +51,7 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
private B2BQuotePriceAdapter mB2BQuotePriceAdapter;
|
|
|
private List<B2BQuotePriceBean> mB2BQuotePriceBeans;
|
|
|
|
|
|
- private String mId, mState, mJson;
|
|
|
+ private String mId, mState = "", mJson;
|
|
|
private String mEnuu;
|
|
|
|
|
|
@Override
|
|
|
@@ -93,10 +99,10 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
JSONObject detailObject = JSON.parseObject(mJson);
|
|
|
JSONObject inquiryObject = detailObject.getJSONObject("inquiry");
|
|
|
String checked = JSONUtil.getText(inquiryObject, "checked");
|
|
|
- long endDate = JSONUtil.getLong(inquiryObject, "endDate");
|
|
|
- long currentDate = SystemClock.currentThreadTimeMillis() * 1000;
|
|
|
+ long endDate = inquiryObject.getLongValue("endDate");
|
|
|
+ long currentDate = System.currentTimeMillis();
|
|
|
if ("1".equals(checked) || currentDate > endDate) {
|
|
|
- initEditable(false, View.VISIBLE);
|
|
|
+ initEditable(false, View.GONE);
|
|
|
} else {
|
|
|
initEditable(true, View.VISIBLE);
|
|
|
}
|
|
|
@@ -120,6 +126,10 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
getSupportActionBar().setTitle(R.string.str_invalid);
|
|
|
initEditable(false, View.GONE);
|
|
|
break;
|
|
|
+ case Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO:
|
|
|
+ getSupportActionBar().setTitle(R.string.str_wait_quoted);
|
|
|
+ initEditable(true, View.VISIBLE);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -148,21 +158,44 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
@Override
|
|
|
protected void initData() {
|
|
|
if (mJson != null && JSONUtil.validate(mJson)) {
|
|
|
- JSONObject detailObject = JSON.parseObject(mJson);
|
|
|
+ initDetailData(mJson);
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initDetailData(String detail) {
|
|
|
+ if (detail != null && JSONUtil.validate(detail)) {
|
|
|
+ mB2BDetailListBeans.clear();
|
|
|
+ mB2BQuotePriceBeans.clear();
|
|
|
+
|
|
|
+ JSONObject detailObject = JSON.parseObject(detail);
|
|
|
JSONObject inquiryObject = detailObject.getJSONObject("inquiry");
|
|
|
JSONObject productObject = detailObject.getJSONObject("product");
|
|
|
+ if (inquiryObject == null) {
|
|
|
+ inquiryObject = JSON.parseObject("");
|
|
|
+ }
|
|
|
+ JSONObject enterpriseObject = inquiryObject.getJSONObject("enterprise");
|
|
|
JSONObject recorderUser = inquiryObject.getJSONObject("recorderUser");
|
|
|
|
|
|
- String userTel = JSONUtil.getText(recorderUser, "userTel");//客户联系电话
|
|
|
- String recorder = JSONUtil.getText(inquiryObject, "recorder");//客户
|
|
|
- String ship = JSONUtil.getText(inquiryObject, "ship");//客户地址
|
|
|
+ String customer = JSONUtil.getText(enterpriseObject, "enName");//客户
|
|
|
+ String customerAddress = JSONUtil.getText(enterpriseObject, "enAddress");//客户地址
|
|
|
+
|
|
|
+ String userTel = "";
|
|
|
+ if (recorderUser != null) {
|
|
|
+ userTel = JSONUtil.getText(recorderUser, "userTel");//客户联系电话
|
|
|
+ }
|
|
|
String billNum = JSONUtil.getText(inquiryObject, "code");//单据
|
|
|
|
|
|
- String title = JSONUtil.getText(productObject, "title");
|
|
|
- String spec = JSONUtil.getText(productObject, "spec");
|
|
|
- String code = JSONUtil.getText(productObject, "code");
|
|
|
- String material = title + (TextUtils.isEmpty(spec) ? "" : ("," + spec)
|
|
|
- + (TextUtils.isEmpty(code) ? "" : ("," + code)));//物料
|
|
|
+ String material = "";
|
|
|
+ if (productObject != null) {
|
|
|
+ String title = JSONUtil.getText(productObject, "title");
|
|
|
+ String spec = JSONUtil.getText(productObject, "spec");
|
|
|
+ String code = JSONUtil.getText(productObject, "code");
|
|
|
+ material = title + (TextUtils.isEmpty(spec) ? "" : ("," + spec)
|
|
|
+ + (TextUtils.isEmpty(code) ? "" : ("," + code)));//物料
|
|
|
+ }
|
|
|
+
|
|
|
String currency = JSONUtil.getText(detailObject, "currency");//币别
|
|
|
String taxrate = JSONUtil.getText(detailObject, "taxrate");//税率
|
|
|
String environment = JSONUtil.getText(inquiryObject, "environment");//环保要求
|
|
|
@@ -172,19 +205,19 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
String minOrderQty = JSONUtil.getText(detailObject, "minOrderQty");//最小起订
|
|
|
String minPackQty = JSONUtil.getText(detailObject, "minPackQty");//最小包装
|
|
|
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "客户", recorder, "", "客户", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "客户地址", ship, "", "客户地址", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "联系电话", userTel, "", "联系电话", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "单据", billNum, "", "单据", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "物料", material, "", "物料", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "币别", currency, "", "币别", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "税率", taxrate, "", "税率", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "环保要求", environment, "", "环保要求", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, "价格类型", priceType, "", "价格类型", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_customer), customer, "", "客户", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_customer_address), customerAddress, "", "客户地址", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_customer_phone), userTel, "", "联系电话", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_bill_num), billNum, "", "单据", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_material), material, "", "物料", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_currency), currency, "", "币别", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_taxrate), taxrate, "", "税率", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_environment), environment, "", "环保要求", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_TEXT, getString(R.string.customer_inquiry_price_type), priceType, "", "价格类型", ""));
|
|
|
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "交货周期", leadtime, "天", "交货周期", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "最小起订", minOrderQty, "PCS", "最小起订", ""));
|
|
|
- mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, "最小包装", minPackQty, "PCS", "最小包装", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, getString(R.string.customer_inquiry_leadtime), leadtime, "天", "leadtime", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, getString(R.string.customer_inquiry_min_order), minOrderQty, "PCS", "minOrderQty", ""));
|
|
|
+ mB2BDetailListBeans.add(createB2BDetailListBean(B2BDetailListBean.TYPE_DETAIL_EDIT, getString(R.string.customer_inquiry_min_pack), minPackQty, "PCS", "minPackQty", ""));
|
|
|
|
|
|
mB2BDetailListAdapter.notifyDataSetChanged();
|
|
|
|
|
|
@@ -198,10 +231,11 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
|
|
|
mB2BQuotePriceBeans.add(createB2BQuotePriceBean(id, amount, price));
|
|
|
}
|
|
|
- mB2BQuotePriceAdapter.notifyDataSetChanged();
|
|
|
+ } else {
|
|
|
+ mB2BQuotePriceBeans.add(createB2BQuotePriceBean(0, "", ""));
|
|
|
}
|
|
|
+ mB2BQuotePriceAdapter.notifyDataSetChanged();
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
private B2BDetailListBean createB2BDetailListBean(int itemType,
|
|
|
@@ -250,22 +284,169 @@ public class CustomerInquiryDetailActivity extends BaseMVPActivity<WorkPlatPrese
|
|
|
mB2BQuotePriceAdapter.notifyDataSetChanged();
|
|
|
} else if (i == R.id.customer_inquiry_detail_quote_btn) {
|
|
|
List<B2BQuotePriceBean> b2BQuotePriceBeans = mB2BQuotePriceAdapter.getB2BQuotePriceBeans();
|
|
|
- for (int j = 0; j < b2BQuotePriceBeans.size(); j++) {
|
|
|
- String s = b2BQuotePriceBeans.get(j).toString();
|
|
|
- Log.d("b2BQuotePriceBean", s);
|
|
|
+ List<B2BDetailListBean> b2BDetailListBeans = mB2BDetailListAdapter.getB2BDetailListBeans();
|
|
|
+
|
|
|
+ String leadtime = "", minPackQty = "", minOrderQty = "";
|
|
|
+ for (B2BDetailListBean b2BDetailListBean : b2BDetailListBeans) {
|
|
|
+ String flag = b2BDetailListBean.getFlag();
|
|
|
+ if ("leadtime".equals(flag)) {
|
|
|
+ leadtime = b2BDetailListBean.getValue();
|
|
|
+ if (TextUtils.isEmpty(leadtime)) {
|
|
|
+ toast(getString(R.string.delivery_period_can_not_be_empty));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("minPackQty".equals(flag)) {
|
|
|
+ minPackQty = b2BDetailListBean.getValue();
|
|
|
+ }
|
|
|
+ if ("minOrderQty".equals(flag)) {
|
|
|
+ minOrderQty = b2BDetailListBean.getValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Reply> replies = new ArrayList<>();
|
|
|
+ for (B2BQuotePriceBean b2BQuotePriceBean : b2BQuotePriceBeans) {
|
|
|
+ Reply reply = new Reply();
|
|
|
+ String amount = b2BQuotePriceBean.getAmount();
|
|
|
+ String price = b2BQuotePriceBean.getPrice();
|
|
|
+
|
|
|
+ if (TextUtils.isEmpty(amount) || TextUtils.isEmpty(price)) {
|
|
|
+ toast(getString(R.string.unfilled_items_in_subsection_quotation));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ reply.setLapQty(amount);
|
|
|
+ reply.setPrice(price);
|
|
|
+
|
|
|
+ replies.add(reply);
|
|
|
+ }
|
|
|
+
|
|
|
+ String repliesJson = JSON.toJSONString(replies);
|
|
|
+
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+// params.put("en_uu", mEnuu);
|
|
|
+ params.put("en_uu", 10041559);
|
|
|
+// params.put("user_tel", MyApplication.getInstance().mLoginUser.getTelephone());
|
|
|
+ params.put("user_tel", "15671616315");
|
|
|
+ params.put("inquiryItemId", mId);
|
|
|
+ params.put("replies", repliesJson);
|
|
|
+ params.put("leadtime", leadtime);
|
|
|
+ params.put("minPackQty", minPackQty);
|
|
|
+ params.put("minOrderQty", minOrderQty);
|
|
|
+
|
|
|
+ params.put("useruu", "1000002503");
|
|
|
+
|
|
|
+
|
|
|
+ showLoading(null);
|
|
|
+ String url = "mobile/sale/inquiry/items/" + mId + "/reply";
|
|
|
+ String host = "http://192.168.253.102:8090/platform-b2b/";
|
|
|
+ if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {
|
|
|
+ url = "inquiry/sale/mobile/quote";
|
|
|
+ host = "http://218.17.158.219:24000/";
|
|
|
}
|
|
|
+ HttpRequest.getInstance().sendRequest(host
|
|
|
+ , new HttpParams.Builder()
|
|
|
+ .url(url)
|
|
|
+ .method(Method.POST)
|
|
|
+ .flag(CUSTOMER_INQUIRY_REPLY)
|
|
|
+ .setHeaders(new HashMap<String, Object>())
|
|
|
+ .setParams(params).build(), this);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onSuccess(int flag, Object o) {
|
|
|
- hideLoading();
|
|
|
- LogUtil.prinlnLongMsg("customerdetailsuccess", o.toString());
|
|
|
+ String result = o.toString();
|
|
|
+ LogUtil.prinlnLongMsg("customerdetailsuccess", result);
|
|
|
+ if (flag == CUSTOMER_INQUIRY_REPLY) {
|
|
|
+ getSupportActionBar().setTitle(R.string.str_quoted_price);
|
|
|
+ toast(getString(R.string.quote_success));
|
|
|
+ if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {
|
|
|
+ setResult(Constants.FLAG.RESULT_PUBLIC_INQUIRY);
|
|
|
+ initEditable(false, View.GONE);
|
|
|
+ } else {
|
|
|
+ setResult(Constants.FLAG.RESULT_CUSTOMER_INQUIRY);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+// params.put("en_uu", mEnuu);
|
|
|
+ params.put("en_uu", 10041559);
|
|
|
+// params.put("user_tel", MyApplication.getInstance().mLoginUser.getTelephone());
|
|
|
+ params.put("user_tel", "15671616315");
|
|
|
+ params.put("itemId", mId);
|
|
|
+
|
|
|
+ String url = "mobile/sale/inquiry/" + mId + "/info";
|
|
|
+ String host = "http://192.168.253.102:8090/platform-b2b/";
|
|
|
+ if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {
|
|
|
+ url = "inquiry/sale/inquiry/detail";
|
|
|
+ host = "http://218.17.158.219:24000/";
|
|
|
+ }
|
|
|
+ HttpRequest.getInstance().sendRequest(host
|
|
|
+ , new HttpParams.Builder()
|
|
|
+ .url(url)
|
|
|
+ .method(Method.GET)
|
|
|
+ .flag(CUSTOMER_INQUIRY_DETAIL)
|
|
|
+ .setHeaders(new HashMap<String, Object>())
|
|
|
+ .setParams(params).build(), this);
|
|
|
+ } else if (flag == CUSTOMER_INQUIRY_DETAIL) {
|
|
|
+ hideLoading();
|
|
|
+
|
|
|
+ if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {
|
|
|
+
|
|
|
+ } else if (result != null && JSONUtil.validate(result)) {
|
|
|
+ JSONObject contentObject = JSON.parseObject(result);
|
|
|
+ JSONObject inquiryObject = contentObject.getJSONObject("inquiry");
|
|
|
+ String checked = JSONUtil.getText(inquiryObject, "checked");
|
|
|
+ long endDate = inquiryObject.getLongValue("endDate");
|
|
|
+ long currentDate = System.currentTimeMillis();
|
|
|
+ if ("1".equals(checked) || currentDate > endDate) {
|
|
|
+ initEditable(false, View.GONE);
|
|
|
+ } else {
|
|
|
+ initEditable(true, View.VISIBLE);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ initEditable(false, View.GONE);
|
|
|
+ }
|
|
|
+ initDetailData(result);
|
|
|
+
|
|
|
+ if (Constants.FLAG.STATE_PUBLIC_INQUIRY_TODO.equals(mState)) {
|
|
|
+ setResult(Constants.FLAG.RESULT_PUBLIC_INQUIRY);
|
|
|
+ } else {
|
|
|
+ setResult(Constants.FLAG.RESULT_CUSTOMER_INQUIRY);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onFail(int flag, String failStr) {
|
|
|
hideLoading();
|
|
|
LogUtil.prinlnLongMsg("customerdetailfail", failStr);
|
|
|
+ toast(failStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ class Reply {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * lapQty : 10
|
|
|
+ * price : 8.88
|
|
|
+ */
|
|
|
+
|
|
|
+ @JSONField(name = "lapQty")
|
|
|
+ private String lapQty;
|
|
|
+ @JSONField(name = "price")
|
|
|
+ private String price;
|
|
|
+
|
|
|
+ public String getLapQty() {
|
|
|
+ return lapQty;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setLapQty(String lapQty) {
|
|
|
+ this.lapQty = lapQty;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getPrice() {
|
|
|
+ return price;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setPrice(String price) {
|
|
|
+ this.price = price;
|
|
|
+ }
|
|
|
}
|
|
|
}
|