Browse Source

处理crm项目问题

Bitliker 7 years ago
parent
commit
37522f9c0a
19 changed files with 256 additions and 67 deletions
  1. 18 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java
  2. 5 5
      WeiChat/version.properties
  3. 4 4
      app_core/common/src/main/assets/work_menu.json
  4. 11 0
      app_core/common/src/main/java/com/core/model/SelectBean.java
  5. 4 0
      app_core/common/src/main/java/com/core/net/http/ViewUtil.java
  6. 2 0
      app_core/common/src/main/java/com/core/widget/view/Activity/SelectActivity.java
  7. 1 0
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/SelectIpActivity.java
  8. 67 1
      app_modular/apputils/src/main/java/com/modular/apputils/activity/BillInputActivity.java
  9. 6 6
      app_modular/apputils/src/main/java/com/modular/apputils/model/BillGroupModel.java
  10. 11 5
      app_modular/apputils/src/main/java/com/modular/apputils/presenter/BillPresenter.java
  11. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java
  12. 3 3
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java
  13. 6 4
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailNewActivity.java
  14. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/BusinessStageAdapter.java
  15. 2 0
      app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerListActivity.java
  16. 2 1
      app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerManageActivity.java
  17. 96 10
      app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerVisitBillInputActivity.java
  18. 1 0
      app_modular/appworks/src/main/res/layout/item_business_stage.xml
  19. 15 13
      app_modular/appworks/src/main/res/layout/item_customer_detail_bottom_visitrecord.xml

+ 18 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java

@@ -245,7 +245,7 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         initSaleBarChart();
         initListener();
         mMonths = getResources().getStringArray(R.array.month_list);
-        sales = getResources().getStringArray(R.array.sale_list);
+        sales=getResources().getStringArray(R.array.sale_list);
     }
 
     private void initListener() {
@@ -579,9 +579,14 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
 
     private void setData1(int count, float[] ydata) {
         ArrayList<String> xVals = new ArrayList<String>();
-        for (int i = 0; i < count; i++) {
-            xVals.add(sales[i % 12]);
-        }
+        String[] sale_list= getResources().getStringArray(R.array.sale_list);
+        xVals.add(sale_list[0]);
+        xVals.add(sale_list[2]);
+        xVals.add(sale_list[4]);
+        xVals.add(sale_list[6]);
+//        for (int i = 0; i < count; i++) {
+//            xVals.add(sales[i % 12]);
+//        }
 
         ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
 
@@ -892,15 +897,15 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage SalesKit:" + msg.getData().getString("result"));
                     root = JSON.parseObject(msg.getData().getString("result")).getJSONObject("datas");
-                    float[] ydata1 = {0, 0, 0, 0, 0, 0, 0};
+                    float[] ydata1 = {0, 0, 0, 0};
                     if (root != null) {
                         ydata1[0] = root.getIntValue("customercount");
-                        ydata1[1] = root.getIntValue("contactcount");
-                        ydata1[4] = root.getIntValue("salecount");
-                        ydata1[3] = root.getIntValue("nichechangecount");
-                        ydata1[2] = root.getIntValue("nichecount");
-                        ydata1[5] = root.getJSONArray("visit").getIntValue(1);
-                        ydata1[6] = root.getJSONArray("visit").getIntValue(0);
+//                        ydata1[1] = root.getIntValue("contactcount");
+                        ydata1[1] = root.getIntValue("nichecount");
+//                        ydata1[3] = root.getIntValue("nichechangecount");
+                        ydata1[2] = root.getIntValue("salecount");
+//                        ydata1[5] = root.getJSONArray("visit").getIntValue(1);
+                        ydata1[3] = root.getJSONArray("visit").getIntValue(0);
                         tv_chuhuo.setText(getString(R.string.crm_Shipments) + root.getFloatValue("saleamount") + getString(R.string.crm_wyuan));
                         tv_huikuan.setText(getString(R.string.crm_Back_money) + root.getFloatValue("backamount") + getString(R.string.crm_wyuan));
                         float maxHeight = 0;
@@ -912,9 +917,9 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
 
                         }
                         sChart.getAxisLeft().setAxisMaxValue(maxHeight + 10);
-                        setData1(7, ydata1);
+                        setData1(4, ydata1);
                     } else {
-                        setData1(7, ydata1);
+                        setData1(4, ydata1);
                         tv_chuhuo.setText(getString(R.string.crm_Shipments) + root.getIntValue("saleamount") + getString(R.string.crm_wyuan));
                         tv_huikuan.setText(getString(R.string.crm_Back_money) + root.getIntValue("backamount") + getString(R.string.crm_wyuan));
                     }

+ 5 - 5
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Wed Dec 05 14:08:27 CST 2018
-debugName=948
-versionName=651
-debugCode=948
-versionCode=206
+#Fri Dec 07 14:50:15 CST 2018
+debugName=969
+versionName=649
+debugCode=969
+versionCode=204

+ 4 - 4
app_core/common/src/main/assets/work_menu.json

@@ -276,10 +276,10 @@
       },
       {
         "isLocalMenu": true,
-        "menuName": "str_work_honor_rank",
-        "menuIcon": "ic_work_honor_rank",
-        "menuActivity": "com.modular.crm.SalesRankingActivity",
-        "menuTag": "local_honor_rank",
+        "menuName": "public_inquiry_contact",
+        "menuIcon": "icon_crm_contact",
+        "menuActivity": "com.modular.work.ContactsListActivity",
+        "menuTag": "local_inquiry_contact",
         "menuUrl": "",
         "caller": "",
         "isHide": false

+ 11 - 0
app_core/common/src/main/java/com/core/model/SelectBean.java

@@ -18,6 +18,15 @@ public class SelectBean implements Parcelable {
     private boolean isClick = false;//是否已被选择(默认非选择)
     private String object;//选择的内容详细信息 T
     private String json;//方式时候返回选择的jsonObject
+    private String dbfinds;
+
+    public String getDbfinds() {
+        return dbfinds;
+    }
+
+    public void setDbfinds(String dbfinds) {
+        this.dbfinds = dbfinds;
+    }
 
     public int getIndex() {
         return index;
@@ -98,6 +107,7 @@ public class SelectBean implements Parcelable {
         dest.writeByte(this.isClick ? (byte) 1 : (byte) 0);
         dest.writeString(this.object);
         dest.writeString(this.json);
+        dest.writeString(this.dbfinds);
     }
 
     public SelectBean() {
@@ -116,6 +126,7 @@ public class SelectBean implements Parcelable {
         this.isClick = in.readByte() != 0;
         this.object = in.readString();
         this.json = in.readString();
+        this.dbfinds = in.readString();
     }
 
     public static final Creator<SelectBean> CREATOR = new Creator<SelectBean>() {

+ 4 - 0
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -643,6 +643,10 @@ public class ViewUtil {
                 LoginEntity model = loginMsg.get(i);
                 if (model.getPlatform().equals("ERP")) {
                     isHasUas = true;
+                    if (model.getName().equals("UAS研发系统(测试)")){
+                        model.setWebsite("https://218.17.158.219:9443/uas_dev/");
+                    }
+
                     loginEntities.add(model);
                 } else if (model.getPlatform().equals("B2B")) {
                     List<LoginEntity.Spaces> sModel = model.getSpaces();

+ 2 - 0
app_core/common/src/main/java/com/core/widget/view/Activity/SelectActivity.java

@@ -282,6 +282,7 @@ public class SelectActivity extends BaseActivity {
         if (formBeaan == null) formBeaan = new ArrayList<>();
         else formBeaan.clear();
         SelectBean bean = null;
+        String dbfindsStr=JSON.toJSONString(dbfinds);
         if (fields != null) {
             ArrayList<String> values = new ArrayList<>();
             for (int i = 0; i < datas.size(); i++) {
@@ -308,6 +309,7 @@ public class SelectActivity extends BaseActivity {
                 }
                 // 修改为显示所有的
                 bean.setShowName(getName(item));
+                bean.setDbfinds(dbfindsStr);
                 bean.setFields(JSON.toJSONString(values));
                 bean.setJson(JSON.toJSONString(datas.get(i)));
                 formBeaan.add(bean);

+ 1 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/SelectIpActivity.java

@@ -75,6 +75,7 @@ public class SelectIpActivity extends BaseActivity {
             selectBeans.add(new SelectBean("陈金兴", "http://192.168.253.52:8080/ERP/"));
             selectBeans.add(new SelectBean("黄信", "http://192.168.253.35:8080/ERP/"));
             selectBeans.add(new SelectBean("刘鹏", "http://192.168.253.243:8080/ERP/"));
+            selectBeans.add(new SelectBean("UAS研发系统(测试)", "https://218.17.158.219:9443/uas_dev/"));
         }
 
         @Override

+ 67 - 1
app_modular/apputils/src/main/java/com/modular/apputils/activity/BillInputActivity.java

@@ -17,12 +17,14 @@ import android.view.View;
 import android.widget.LinearLayout;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.CalendarUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
+import com.common.data.TextUtil;
 import com.common.file.FileUtils;
 import com.common.ui.CameraUtil;
 import com.core.app.Constants;
@@ -46,6 +48,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -58,6 +61,7 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
     public final int REQUESTCODE_C_NET = 0x14;
     public final int REQUESTCODE_ENCLOSURE_LOW = 0x15;
     public final int REQUEST_CODE_CAPTURE_PHOTO = 0x16;
+    public final int REQUEST_CODE_SELECT_MORE = 0x17;
 
     public RecyclerView mRecyclerView;
     public BillPresenter mBillPresenter;
@@ -224,12 +228,39 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
                     findBydbFind(model);
                     break;
                 case "MF":
+                    //多选
+                    findMore(position, model);
                     break;
 
             }
         }
     }
 
+    private void findMore(int position, BillGroupModel.BillModel model) {
+        HashMap param = new HashMap<>();
+        String[] fields = new String[]{"sa_custname"};
+        param.put("caller", mBillPresenter.getFormCaller());
+        param.put("page", "1");
+        param.put("which", "form");
+        param.put("condition", "1=1");
+        param.put("pageSize", "30");
+        param.put("field", model.getField());
+        Bundle bundle = new Bundle();
+        bundle.putSerializable("param", param);
+        Intent intent = new Intent(ct, SelectActivity.class);
+        intent.putExtra("type", 1);
+        intent.putExtra("isSingle", false);
+        intent.putExtra("reid", R.style.OAThemeMeet);
+        intent.putExtras(bundle);
+        intent.putExtra("key", "combdatas");
+        intent.putExtra("showKey", model.getField());
+        intent.putExtra("fields", fields);
+        intent.putExtra("action", "common/dbfind.action");
+        intent.putExtra("title", model.getCaption());
+        intent.putExtra("id", model.getGroupIndex());
+        startActivityForResult(intent, REQUEST_CODE_SELECT_MORE);
+    }
+
     @Override
     public void toEnclosureSelect(int position, BillGroupModel.BillModel model) {
         selectPosition = position;
@@ -399,6 +430,42 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
         super.onActivityResult(requestCode, resultCode, data);
         if (data == null) return;
         switch (requestCode) {
+            case REQUEST_CODE_SELECT_MORE:
+                if (resultCode == 0x21) {//多选框
+                    int groupIndex = data.getIntExtra("id", 0);
+                    ArrayList<SelectBean> muliData = data.getParcelableArrayListExtra("data");
+                    JSONObject object = null;
+                    if (!ListUtils.isEmpty(muliData)) {
+                        object = JSON.parseObject(muliData.get(0).getJson());
+                        String dbFind = muliData.get(0).getDbfinds();
+                        for (int i = 1; i < muliData.size(); i++) {
+                            SelectBean b = muliData.get(i);
+                            JSONObject bObject = JSON.parseObject(b.getJson());
+                            for (Map.Entry<String, Object> entry : bObject.entrySet()) {
+                                String oldText = object.getString(entry.getKey());
+                                object.put(entry.getKey(), oldText + "#" + entry.getValue());
+                            }
+                        }
+                        if (!TextUtils.isEmpty(dbFind)) {
+                            JSONArray fbFindArray = JSON.parseArray(dbFind);
+                            if (!ListUtils.isEmpty(fbFindArray)) {
+                                for (int i = 0; i < fbFindArray.size(); i++) {
+                                    String dbGridField = JSONUtil.getText(fbFindArray.getJSONObject(i), "dbGridField");
+                                    String field = JSONUtil.getText(fbFindArray.getJSONObject(i), "field");
+                                    if (object.containsKey(dbGridField)) {
+                                        object.put(field,object.get(dbGridField));
+                                        object.remove(dbGridField);
+                                    }
+                                }
+                            }
+                        }
+                    }
+//                    mBillAdapter.updateBillModelValues(id, values, values);
+                    LogUtil.i("gong", "object=" + object);
+                    LogUtil.i("gong", "groupIndex=" + groupIndex);
+                    handlerSelectDbFind(object, groupIndex);
+                }
+                break;
             case REQUESTCODE_C_NET:
                 SelectBean mSelectBeanC = data.getParcelableExtra("data");
                 int position = data.getIntExtra("id", -1);
@@ -490,7 +557,6 @@ public class BillInputActivity extends OABaseActivity implements IBill, BillAdap
     }
 
     protected void handlerSelectDbFind(JSONObject object, int groupId) {
-        LogUtil.d("Arison", "groupId:" + groupId + " object:" + object.toJSONString());
         BillGroupModel mBillGroupModel = mBillAdapter.getBillGroupModel(groupId);
         if (mBillGroupModel != null) {
             if (!ListUtils.isEmpty(mBillGroupModel.getShowBillFields())) {

+ 6 - 6
app_modular/apputils/src/main/java/com/modular/apputils/model/BillGroupModel.java

@@ -20,7 +20,7 @@ public class BillGroupModel {
     private boolean isForm;//是否为主表
     private boolean lastInType;//是否当前单据明细的最后一个
     private int groupIndex;//当前组所在的整个显示集合里面的索引
-    private int minDetno = 10000000;//最小的序号
+    private float minDetno = 10000000;//最小的序号
     private String group;//组名
     private String keyField;//提交时候主表或明细表id字段名称
     private Map<String, Object> mTagMap;//附带信息
@@ -40,11 +40,11 @@ public class BillGroupModel {
         return mTagMap;
     }
 
-    public int getMinDetno() {
+    public float getMinDetno() {
         return minDetno;
     }
 
-    public void setMinDetno(int minDetno) {
+    public void setMinDetno(float minDetno) {
         this.minDetno = minDetno;
     }
 
@@ -175,7 +175,7 @@ public class BillGroupModel {
     public static class BillModel {
         private int id;//id
         private int groupIndex;//所在组索引
-        private int detno=1000000;//序号
+        private float detno=1000000;//序号
         private int length;//字符长度
         private int appwidth;//宽度
         private int isdefault;//是否显示
@@ -216,11 +216,11 @@ public class BillGroupModel {
             this.mBillJump = e.mBillJump;
         }
 
-        public int getDetno() {
+        public float getDetno() {
             return detno;
         }
 
-        public void setDetno(int detno) {
+        public void setDetno(float detno) {
             this.detno = detno;
         }
 

+ 11 - 5
app_modular/apputils/src/main/java/com/modular/apputils/presenter/BillPresenter.java

@@ -143,13 +143,19 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
             iBill.dimssLoading();
             return;
         }
+
+        String formStoreStr=JSONUtil.map2JSON(formStore);
+        String gridStoreStr=JSONUtil.map2JSON(gridStoreList);
+
+        LogUtil.i("gong","formStoreStr="+formStoreStr);
+        LogUtil.i("gong","gridStoreStr="+gridStoreStr);
         requestCompanyHttp(new Parameter.Builder()
                         .url(mId == 0 ? "mobile/oa/commonSaveAndSubmit.action" : "mobile/commonUpdate.action")
                         .addParams("caller", mCaller)
                         .mode(Method.POST)
                         .addParams("keyid", String.valueOf(mId))
-                        .addParams("formStore", JSONUtil.map2JSON(formStore))
-                        .addParams("gridStore", JSONUtil.map2JSON(gridStoreList))
+                        .addParams("formStore", formStoreStr)
+                        .addParams("gridStore", gridStoreStr)
                         .record(SAVE_AND_SUBMIT)
                 , this);
     }
@@ -444,7 +450,7 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
     private final Comparator<BillGroupModel> mComparator=new Comparator<BillGroupModel>() {
         @Override
         public int compare(BillGroupModel billGroupModel, BillGroupModel t1) {
-            return billGroupModel.getMinDetno()-t1.getMinDetno();
+            return (billGroupModel.getMinDetno()>t1.getMinDetno())?1:-1;
         }
     };
     //处理表单返回配置
@@ -502,7 +508,7 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
                         modelMap.put(group, mapBillGroupModel);
                     }
                     mBillModel.setGroupIndex(mapBillGroupModel.getGroupIndex());
-                    int minDetno = mapBillGroupModel.getMinDetno();
+                    float minDetno = mapBillGroupModel.getMinDetno();
                     if (minDetno > mBillModel.getDetno()) {
                         minDetno = mBillModel.getDetno();
                     }
@@ -569,7 +575,7 @@ public class BillPresenter extends BaseNetPresenter implements OnSmartHttpListen
         BillGroupModel.BillModel mBillModel = new BillGroupModel.BillModel();
         String caption = JSONUtil.getText(object, "fd_caption", "dg_caption");//字段名称
         String value = JSONUtil.getText(object, "fd_value", "dg_value");//字段名称
-        int fd_detno = JSONUtil.getInt(object, "fd_detno");//序号
+        float fd_detno = JSONUtil.getFloat(object, "fd_detno");//序号
         int id = JSONUtil.getInt(object, "fd_id", "gd_id");//id
         int length = JSONUtil.getInt(object, "fd_maxlength", "dg_maxlength");//字符长度
         int appwidth = JSONUtil.getInt(object, "fd_appwidth", "dg_appwidth");//宽度

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/ChangeMobileActivity.java

@@ -290,7 +290,7 @@ public class ChangeMobileActivity extends BaseActivity {
     /*补卡申请申诉*/
     private void suppleSignin(String message) {
         progressDialog.show();
-        String url = "mobile/oa/saveAndSubmitMobileSignCard.action";
+        String url = "mobile/oa/ saveAndSubmitMobileSignCard.action";
         Map<String, Object> param = new HashMap<>();
         param.put("caller", caller);
         Map<String, Object> params = new HashMap<>();

+ 3 - 3
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java

@@ -131,9 +131,9 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
     private final Comparator<Object> mComparator=new Comparator<Object>() {
         @Override
         public int compare(Object t0, Object t1) {
-            int detno0=JSONUtil.getInt((JSONObject) t0,"fd_detno");
-            int detno1=JSONUtil.getInt((JSONObject) t1,"fd_detno");
-            return detno0-detno1;
+            float detno0=JSONUtil.getFloat((JSONObject) t0,"fd_detno");
+            float detno1=JSONUtil.getFloat((JSONObject) t1,"fd_detno");
+            return detno0>detno1?1:-1;
         }
     };
     private Handler mHandler = new Handler() {

+ 6 - 4
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailNewActivity.java

@@ -376,11 +376,13 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
                     int stageIndex = i + 1;
                     mCircleProgressBar.setProgress(stageIndex);
                     try {
-                        mStageIndexTextView.setText("第" +
-                                NumberUtils.translateNumber2Chinese(businessStageBean.getBS_DETNO()) + "阶段");
+                        mStageIndexTextView.setText(businessStageBean.getBS_NAME());
+//                    mStageIndexTextView.setText("第" +
+//                                NumberUtils.translateNumber2Chinese(businessStageBean.getBS_DETNO()) + "阶段");
                     } catch (Exception e) {
-                        mStageIndexTextView.setText("第" +
-                                businessStageBean.getBS_DETNO() + "阶段");
+                        mStageIndexTextView.setText("");
+//                        mStageIndexTextView.setText("第" +
+//                                businessStageBean.getBS_DETNO() + "阶段");
                     }
 
                     isExist = true;

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/adapter/BusinessStageAdapter.java

@@ -56,7 +56,7 @@ public class BusinessStageAdapter extends BaseQuickAdapter<BusinessStageBean, Ba
             helper.setTextColor(R.id.item_business_stage_point_capiton_tv, mContext.getResources().getColor(R.color.gray_default_dark));
         }
 
-        helper.setText(R.id.item_business_stage_no_tv, "阶段" + item.getBS_DETNO());
+        helper.setText(R.id.item_business_stage_no_tv, "" + item.getBS_NAME());
         helper.setText(R.id.item_business_stage_name_tv, item.getBS_NAME());
         helper.setText(R.id.item_business_stage_explore_tv, "本阶段可停留" + item.getBS_DAYS() + "天");
         String bs_point = item.getBS_POINT();

+ 2 - 0
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerListActivity.java

@@ -10,6 +10,7 @@ import android.support.v4.app.FragmentTransaction;
 import android.text.TextUtils;
 import android.view.Menu;
 import android.view.MenuItem;
+import android.view.View;
 
 import com.common.data.TextUtil;
 import com.core.app.Constants;
@@ -66,6 +67,7 @@ public class CustomerListActivity extends BaseActivity {
         }
         DivideRadioGroup tabBottomRg = findViewById(R.id.tabBottomRg);
         changeFragment(LIST);
+        tabBottomRg.setVisibility(View.GONE);
         tabBottomRg.setOnCheckedChangeListener(new DivideRadioGroup.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(DivideRadioGroup group, int checkedId) {

+ 2 - 1
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerManageActivity.java

@@ -144,6 +144,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
         mPullToRefreshScrollView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ScrollView>() {
             @Override
             public void onRefresh(PullToRefreshBase<ScrollView> refreshView) {
+                showCustomerTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YM));
                 mCustomerManagePresenter.loadAllData();
             }
         });
@@ -371,7 +372,7 @@ public class CustomerManageActivity extends OABaseActivity implements ICustomerM
                 emCode = CommonUtil.getEmcode();
                 billListConfigs = new ArrayList<>();
                 mBillListConfig = new BillListConfig();
-                mBillListConfig.setTitle("我负责的");
+                mBillListConfig.setTitle("我的");
                 mBillListConfig.setMe(true);
                 mBillListConfig.setCaller("VisitRecord");
                 mBillListConfig.setCondition("vr_recordercode=\'" + emCode + "\'");

+ 96 - 10
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/CustomerVisitBillInputActivity.java

@@ -3,8 +3,13 @@ package com.uas.appworks.crm3_0.activity;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
+import android.view.MenuItem;
 import android.widget.PopupWindow;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baidu.mapapi.model.LatLng;
+import com.common.LogUtil;
 import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
@@ -42,6 +47,26 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
     private final int TAG_COMPANY_SELECT = 0x651;
     private PopupWindow popupWindow;
     private int keyValue;
+    private SelectAimModel address;
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == R.id.saveAndSubmit) {
+            if (address != null && address.getLatLng() != null) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("company", address.getName());
+                map.put("companyAddress", address.getAddress());
+                map.put("visitTime", DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
+                map.put("latitude", address.getLatLng().latitude);
+                map.put("longitude", address.getLatLng().longitude);
+                saveOutAddress(map);
+            }
+            mBillPresenter.saveAndSubmit(mBillAdapter.getBillGroupModels());
+        } else if (item.getItemId() == com.modular.apputils.R.id.list) {
+            toDataFormList();
+        }
+        return false;
+    }
 
     @Override
     public void setAdapter(List<BillGroupModel> groupModels) {
@@ -142,6 +167,22 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
         }
     }
 
+    @Override
+    protected void handlerSelectDbFind(JSONObject object, int groupId) {
+        super.handlerSelectDbFind(object, groupId);
+        String mp_cuname = JSONUtil.getText(object, "mp_cuname");
+        String mp_address = JSONUtil.getText(object, "mp_address");
+        if (!StringUtil.isEmpty(mp_cuname) || !StringUtil.isEmpty(mp_address)) {
+            if (address == null) {
+                address = new SelectAimModel();
+            }
+            address.setName(mp_cuname);
+            address.setAddress(mp_address);
+            loadLatLng(StringUtil.isEmpty(mp_address) ? mp_cuname : mp_address);
+        }
+    }
+
+
     private void sureSelectAim(SelectAimModel entity) {
         if (entity == null || selectPosition < 0 || selectPosition > ListUtils.getSize(mBillAdapter.getBillGroupModels())) {
             selectPosition = -1;
@@ -181,13 +222,28 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
     }
 
     @Override
-    public void commitSuccess(int keyValue, String code) {
+    public void commitSuccess(final int keyValue, String code) {
         this.keyValue = keyValue;
-        saveAddress();
+        ToastMessage("提交成功!");
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                if (mContext == null) return;
+                startActivity(new Intent(ct, CustomerVisitDetailsActivity.class)
+                        .putExtra(Constants.Intents.TITLE, "客户拜访详情")
+                        .putExtra(Constants.Intents.MY_DOIT, true)
+                        .putExtra(Constants.Intents.STATUS, "已提交")
+                        .putExtra(Constants.Intents.ID, keyValue)
+                        .putExtra(Constants.Intents.CALLER, "MobileOutPlans"));
+                finish();
+                overridePendingTransition(com.modular.apputils.R.anim.anim_activity_in, com.modular.apputils.R.anim.anim_activity_out);
+            }
+        }, 2000);
     }
 
 
     private void saveAddress() {
+        if (1 == 1) return;
         if (mUUHttpHelper == null) {
             mUUHttpHelper = new UUHttpHelper(CommonUtil.getAppBaseUrl(ct));
         }
@@ -216,11 +272,11 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
                     public void run() {
                         if (mContext == null) return;
                         startActivity(new Intent(ct, CustomerVisitDetailsActivity.class)
-                                        .putExtra(Constants.Intents.TITLE, "客户拜访详情")
-                                        .putExtra(Constants.Intents.MY_DOIT, true)
-                                        .putExtra(Constants.Intents.STATUS, "已提交")
-                                        .putExtra(Constants.Intents.ID,keyValue)
-                                        .putExtra(Constants.Intents.CALLER, "MobileOutPlans"));
+                                .putExtra(Constants.Intents.TITLE, "客户拜访详情")
+                                .putExtra(Constants.Intents.MY_DOIT, true)
+                                .putExtra(Constants.Intents.STATUS, "已提交")
+                                .putExtra(Constants.Intents.ID, keyValue)
+                                .putExtra(Constants.Intents.CALLER, "MobileOutPlans"));
                         finish();
                         overridePendingTransition(com.modular.apputils.R.anim.anim_activity_in, com.modular.apputils.R.anim.anim_activity_out);
                     }
@@ -230,6 +286,20 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
 
     }
 
+    private void loadLatLng(String address) {
+        if (StringUtil.isEmpty(address))return;
+        if (mUUHttpHelper == null) {
+            mUUHttpHelper = new UUHttpHelper(CommonUtil.getAppBaseUrl(ct));
+        }
+        mUUHttpHelper.requestCompanyHttp(new Parameter.Builder()
+                        .url("mobile/crm/getLngAndLat.action")
+                        .addParams("address", address.trim())
+                        .record(11)
+                        .mode(Method.GET)
+                , mOnSmartHttpListener
+        );
+    }
+
     //保存外勤计划目的地
     private void saveOutAddress(Map<String, Object> tagMap) {
         String company = (String) tagMap.get("company");
@@ -253,7 +323,7 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
         mUUHttpHelper.requestCompanyHttp(new Parameter.Builder()
                         .url("mobile/addOutAddress.action")
                         .addParams("caller", "lp")
-                        .mode(Method.POST)
+                        .mode(Method.POST).record(13)
                         .addParams("formStore", JSONUtil.map2JSON(formStore))
                 , mOnSmartHttpListener
         );
@@ -262,12 +332,28 @@ public class CustomerVisitBillInputActivity extends BillInputActivity {
     private OnSmartHttpListener mOnSmartHttpListener = new OnSmartHttpListener() {
         @Override
         public void onSuccess(int what, String message, Tags tag) throws Exception {
-            saveAddress();
+            switch (what) {
+                case 11:
+                    LogUtil.i("gong", "message=" + message);
+                    JSONObject object = JSON.parseObject(message);
+                    float lat = JSONUtil.getFloat(object, "lat");
+                    float lng = JSONUtil.getFloat(object, "lng");
+                    if (lat != 0 || lat != 0) {
+                        LatLng latLng = new LatLng(lat, lng);
+                        address.setLatLng(latLng);
+                    }
+                    break;
+                case 13:
+                    saveAddress();
+                    break;
+            }
         }
 
         @Override
         public void onFailure(int what, String message, Tags tag) throws Exception {
-            saveAddress();
+            if (what == 13) {
+                saveAddress();
+            }
         }
     };
 

+ 1 - 0
app_modular/appworks/src/main/res/layout/item_business_stage.xml

@@ -56,6 +56,7 @@
             <TextView
                 android:id="@+id/item_business_stage_name_tv"
                 android:layout_width="0dp"
+                android:visibility="gone"
                 android:layout_height="wrap_content"
                 android:layout_weight="2"
                 android:textColor="#FF666666"

+ 15 - 13
app_modular/appworks/src/main/res/layout/item_customer_detail_bottom_visitrecord.xml

@@ -5,20 +5,31 @@
     android:layout_height="wrap_content"
     android:background="@color/white"
     android:padding="@dimen/padding">
-
+    <TextView
+        android:id="@+id/statusTv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="已完成"
+        android:textColor="#FF2FCB7A"
+        android:textSize="12sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
     <TextView
         android:id="@+id/dateTag"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="计划拜访日期:"
+        android:text=""
         android:textColor="#FF333333"
         android:textSize="15sp" />
 
     <TextView
         android:id="@+id/dateTv"
-        android:layout_width="wrap_content"
+        android:layout_width="0dp"
+        android:paddingRight="8dp"
         android:layout_height="wrap_content"
         android:text="2018-09-23"
+        app:layout_constraintRight_toLeftOf="@id/statusTv"
         android:textColor="#FF666666"
         android:textSize="15sp"
         app:layout_constraintLeft_toRightOf="@id/dateTag" />
@@ -43,14 +54,5 @@
         android:textSize="12sp"
         app:layout_constraintTop_toBottomOf="@id/contactTv" />
 
-    <TextView
-        android:id="@+id/statusTv"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="已完成"
-        android:textColor="#FF2FCB7A"
-        android:textSize="12sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+
 </android.support.constraint.ConstraintLayout>