ソースを参照

提交分类: 测试版本;
提交内容: 商机管理备份
当前版本: 正式版本6.4.4
是否冲突: 否

RaoMeng 7 年 前
コミット
2c0424b178
35 ファイル変更1221 行追加80 行削除
  1. 1 1
      app_core/common/src/main/java/com/common/data/NumberUtils.java
  2. 2 0
      app_core/common/src/main/java/com/core/app/Constants.java
  3. 1 0
      app_modular/appworks/src/main/AndroidManifest.xml
  4. 95 4
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/BusinessCompanyListActivity.java
  5. 161 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStageActivity.java
  6. 31 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStageContract.java
  7. 115 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStagePresenterImpl.java
  8. 10 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailContract.java
  9. 69 16
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailNewActivity.java
  10. 50 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailPresenterImpl.java
  11. 18 2
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessManageHome/BusinessManageHomeActivity.java
  12. 6 5
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessManageHome/BusinessManageHomePresenterImpl.java
  13. 29 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListActivity.java
  14. 2 1
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListContract.java
  15. 31 23
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListPresenterImpl.java
  16. 83 4
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessStage/BusinessStageActivity.java
  17. 1 0
      app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessStage/BusinessStagePresenterImpl.java
  18. 30 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/BusinessStageMenuAdapter.java
  19. 55 0
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/ChangeStageAdapter.java
  20. 1 17
      app_modular/appworks/src/main/java/com/uas/appworks/adapter/CustomerBillInputAdapter.java
  21. 83 0
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/BusinessAssociatedFragment.java
  22. 38 2
      app_modular/appworks/src/main/java/com/uas/appworks/fragment/BusinessMineListFragment.java
  23. 18 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/BusinessMineChildBean.java
  24. 55 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/ChangeStageBean.java
  25. 74 0
      app_modular/appworks/src/main/java/com/uas/appworks/model/bean/CommonColumnsBean.java
  26. 66 0
      app_modular/appworks/src/main/res/layout/activity_business_change_stage.xml
  27. 2 1
      app_modular/appworks/src/main/res/layout/activity_business_company_list.xml
  28. 3 1
      app_modular/appworks/src/main/res/layout/activity_business_detail_new.xml
  29. 3 0
      app_modular/appworks/src/main/res/layout/activity_business_manage_home.xml
  30. 12 0
      app_modular/appworks/src/main/res/layout/fragment_business_associated.xml
  31. 2 2
      app_modular/appworks/src/main/res/layout/item_business_mine_child.xml
  32. 1 1
      app_modular/appworks/src/main/res/layout/item_business_mine_parent.xml
  33. 14 0
      app_modular/appworks/src/main/res/layout/item_business_stage_menu.xml
  34. 30 0
      app_modular/appworks/src/main/res/layout/item_change_stage.xml
  35. 29 0
      app_modular/appworks/src/main/res/layout/pop_business_stage_menu.xml

+ 1 - 1
app_core/common/src/main/java/com/common/data/NumberUtils.java

@@ -10,7 +10,7 @@ import java.util.Stack;
  */
 public class NumberUtils {
 
-    private static final String[] CHINESE_NUMBERS = {"零", "一", "", "三", "四", "五", "六", "七", "八", "九", "十"};
+    private static final String[] CHINESE_NUMBERS = {"零", "一", "", "三", "四", "五", "六", "七", "八", "九", "十"};
 
     private static final ChineseUnit[] CHINESE_UNIT = {ChineseUnit.zero, ChineseUnit.ten
             , ChineseUnit.hundred, ChineseUnit.thousand, ChineseUnit.ten_thousand,

+ 2 - 0
app_core/common/src/main/java/com/core/app/Constants.java

@@ -550,6 +550,8 @@ public class Constants {
         /*密码重置*/
         String MODIFY_PASSWORD_EMAIL = "modify_password_email";
         String MODIFY_PASSWORD_TOKEN = "modify_password_token";
+
+        String COMMON_WHICH_PAGE = "common_which_page";
     }
 
     public interface CACHE {

+ 1 - 0
app_modular/appworks/src/main/AndroidManifest.xml

@@ -530,6 +530,7 @@
         <activity android:name=".activity.businessManage.businessStage.BusinessStageActivity" />
         <activity android:name=".activity.businessManage.businessDetailActivity.BusinessDetailNewActivity" />
         <activity android:name=".activity.businessManage.BusinessCompanyListActivity" />
+        <activity android:name=".activity.businessManage.businessChangeStage.BusinessChangeStageActivity"/>
     </application>
 
 </manifest>

+ 95 - 4
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/BusinessCompanyListActivity.java

@@ -1,19 +1,28 @@
 package com.uas.appworks.activity.businessManage;
 
+import android.content.Intent;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.TextView;
 
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.common.LogUtil;
+import com.core.app.Constants;
 import com.core.base.activity.MvpBaseActivity;
+import com.core.interfac.OnVoiceCompleteListener;
+import com.core.utils.CommonUtil;
+import com.core.widget.VoiceSearchView;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.uas.appworks.R;
+import com.uas.appworks.activity.businessManage.businessDetailActivity.BusinessDetailNewActivity;
 import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineListContract;
 import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineListPresenterImpl;
 import com.uas.appworks.adapter.BusinessMineAdapter;
 import com.uas.appworks.model.bean.BusinessMineChildBean;
+import com.uas.appworks.model.bean.CommonColumnsBean;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -27,15 +36,22 @@ import java.util.Map;
  */
 public class BusinessCompanyListActivity extends MvpBaseActivity<BusinessMineListContract.IBusinessMineListPresenter>
         implements BusinessMineListContract.IBusinessMineListView {
+    public static final int PAGE_BUSINESS_COMPANY = 863;
+    public static final int PAGE_BUSINESS_CHARGE = 864;
+    public static final int PAGE_BUSINESS_BRANCH = 865;
+
     private RefreshLayout mRefreshLayout;
     private int mPageIndex = 1, mPageSize = 20;
     private RecyclerView mRecyclerView;
+    private VoiceSearchView mVoiceSearchView;
     private List<BusinessMineChildBean> mBusinessMineBeans;
+    private List<CommonColumnsBean> mCommonColumnsBeans;
     private BusinessMineAdapter mBusinessMineAdapter;
     private View mEmptyView;
     private TextView mEmptyText;
     private String mCaller;
     private String mCondition = "1 = 1";
+    private int mWhichPage;
 
     @Override
     protected int getLayout() {
@@ -44,11 +60,27 @@ public class BusinessCompanyListActivity extends MvpBaseActivity<BusinessMineLis
 
     @Override
     protected void initView() {
-        setTitle("公司商机库");
-        mCaller = "BusinessChance";
-        mCondition = "1 = 1";
+        Intent intent = getIntent();
+        if (intent != null) {
+            mWhichPage = intent.getIntExtra(Constants.FLAG.COMMON_WHICH_PAGE, 0);
+        }
+
+        if (mWhichPage == PAGE_BUSINESS_COMPANY) {
+            setTitle("公司商机库");
+            mCaller = "BusinessChance";
+            mCondition = "1 = 1";
+        } else if (mWhichPage == PAGE_BUSINESS_CHARGE) {
+            setTitle("我负责的");
+            mCaller = "BusinessChance";
+            mCondition = "bc_domancode=\'" + CommonUtil.getEmcode() + "\'";
+        } else if (mWhichPage == PAGE_BUSINESS_BRANCH) {
+            setTitle("我下属的");
+            mCaller = "BusinessChance";
+            mCondition = "(bc_domancode in (select em_code from employee left join job on em_defaulthsid=jo_subof where jo_subof=(select em_defaulthsid from employee where em_code =\'" + CommonUtil.getEmcode() + "\')))";
+        }
 
         mRefreshLayout = $(R.id.business_company_list_refresh);
+        mVoiceSearchView = $(R.id.business_company_list_vsv);
         mRecyclerView = $(R.id.business_company_list_rv);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
 
@@ -79,6 +111,63 @@ public class BusinessCompanyListActivity extends MvpBaseActivity<BusinessMineLis
                 loadListData();
             }
         });
+
+        mVoiceSearchView.setOnVoiceCompleteListener(new OnVoiceCompleteListener() {
+            @Override
+            public void onVoiceComplete(String text) {
+                searchEvent(text);
+            }
+        });
+
+        mVoiceSearchView.setOnEnterActionListener(new VoiceSearchView.OnEnterActionListener() {
+            @Override
+            public void onEnterAction() {
+                String text = mVoiceSearchView.getText().toString();
+                searchEvent(text);
+            }
+        });
+
+        mBusinessMineAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                BusinessMineChildBean businessMineChildBean = mBusinessMineBeans.get(position);
+                startActivity(new Intent(mContext, BusinessDetailNewActivity.class)
+                        .putExtra("id", businessMineChildBean.getId())
+                        .putExtra("type", businessMineChildBean.getBcType())
+                        .putExtra("stage", businessMineChildBean.getStageCode())
+                        .putExtra("bc_code", businessMineChildBean.getBcCode())
+                        .putExtra("bc_description", businessMineChildBean.getBcDescription())
+                        .putExtra(Constants.FLAG.COMMON_WHICH_PAGE, "businessCompany"));
+            }
+        });
+
+    }
+
+    private void searchEvent(String text) {
+        if (mWhichPage == PAGE_BUSINESS_COMPANY) {
+            mCondition = "1 = 1";
+        } else if (mWhichPage == PAGE_BUSINESS_CHARGE) {
+            mCondition = "bc_domancode=\'" + CommonUtil.getEmcode() + "\'";
+        } else if (mWhichPage == PAGE_BUSINESS_BRANCH) {
+            mCondition = "(bc_domancode in (select em_code from employee left join job on em_defaulthsid=jo_subof where jo_subof=(select em_defaulthsid from employee where em_code =\'" + CommonUtil.getEmcode() + "\')))";
+        }
+
+        String searchCondition = "";
+        if (mCommonColumnsBeans != null) {
+            for (int i = 0; i < mCommonColumnsBeans.size(); i++) {
+                CommonColumnsBean commonColumnsBean = mCommonColumnsBeans.get(i);
+                if (commonColumnsBean != null) {
+                    searchCondition += "instr(" + commonColumnsBean.getDataIndex()
+                            + ",\'" + text + "\')>0 or ";
+                }
+            }
+        }
+
+        searchCondition = "(" + searchCondition.substring(0, searchCondition.length() - 4) + ")";
+
+        mCondition = searchCondition + " and (" + mCondition + ")";
+
+        loadListData();
     }
 
     @Override
@@ -87,6 +176,7 @@ public class BusinessCompanyListActivity extends MvpBaseActivity<BusinessMineLis
     }
 
     private void loadListData() {
+        LogUtil.prinlnLongMsg("raoCondition", mCondition);
         Map<String, Object> params = new HashMap<>();
         params.put("caller", mCaller);
         params.put("condition", mCondition);
@@ -96,7 +186,8 @@ public class BusinessCompanyListActivity extends MvpBaseActivity<BusinessMineLis
     }
 
     @Override
-    public void requestListSuccess(List<BusinessMineChildBean> businessMineBeans) {
+    public void requestListSuccess(List<BusinessMineChildBean> businessMineBeans, List<CommonColumnsBean> commonColumnsBeans) {
+        mCommonColumnsBeans = commonColumnsBeans;
         if (mPageIndex == 1) {
             mBusinessMineBeans.clear();
         }

+ 161 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStageActivity.java

@@ -0,0 +1,161 @@
+package com.uas.appworks.activity.businessManage.businessChangeStage;
+
+import android.content.Intent;
+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.TextView;
+
+import com.common.data.StringUtil;
+import com.core.base.activity.MvpBaseActivity;
+import com.core.widget.ClearEditText;
+import com.uas.appworks.R;
+import com.uas.appworks.adapter.ChangeStageAdapter;
+import com.uas.appworks.model.bean.BusinessStageBean;
+import com.uas.appworks.model.bean.ChangeStageBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 11:26
+ */
+public class BusinessChangeStageActivity extends MvpBaseActivity<BusinessChangeStageContract.IBusinessChangeStagePresenter>
+        implements BusinessChangeStageContract.IBusinessChangeStageView {
+
+    private TextView mStageTextView;
+    private BusinessStageBean mBusinessStageBean;
+    private String mWhichPage = "", mBcCode;
+    private RecyclerView mRecyclerView;
+    private TextView mConfirmButton;
+    private ClearEditText mRemarkEditText;
+    private List<ChangeStageBean> mChangeStageBeans;
+    private ChangeStageAdapter mChangeStageAdapter;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.activity_business_change_stage;
+    }
+
+    @Override
+    protected void initView() {
+        Intent intent = getIntent();
+        if (intent != null) {
+            mBusinessStageBean = (BusinessStageBean) intent.getSerializableExtra("currentStage");
+            mWhichPage = intent.getStringExtra("whichPage");
+        }
+        if ("businessDetail".equals(mWhichPage)) {
+            setTitle("填写商机记录");
+        } else {
+            setTitle("商机阶段详情");
+        }
+
+        mConfirmButton = $(R.id.business_change_stage_confirm_btn);
+        mStageTextView = $(R.id.business_change_stage_current_stage_tv);
+        mRemarkEditText = $(R.id.business_change_stage_remarks_et);
+        mRecyclerView = $(R.id.business_change_stage_rv);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+        mChangeStageBeans = new ArrayList<>();
+        mChangeStageAdapter = new ChangeStageAdapter(mChangeStageBeans);
+        mRecyclerView.setAdapter(mChangeStageAdapter);
+    }
+
+    @Override
+    protected BusinessChangeStageContract.IBusinessChangeStagePresenter initPresenter() {
+        return new BusinessChangeStagePresenterImpl();
+    }
+
+    @Override
+    protected void initEvent() {
+        mConfirmButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                List<ChangeStageBean> stageAdapterData = mChangeStageAdapter.getData();
+                Log.e("raoStages", stageAdapterData.toString());
+                String remarks = mRemarkEditText.getText().toString();
+                if (TextUtils.isEmpty(remarks)) {
+                    toast("阶段处理结果不能为空");
+                    return;
+                }
+                if ("businessStage".equals(mWhichPage)) {
+                    for (int i = 0; i < stageAdapterData.size(); i++) {
+                        ChangeStageBean changeStageBean = stageAdapterData.get(i);
+                        if (changeStageBean.getIsRequired() == 1 && TextUtils.isEmpty(changeStageBean.getValue())) {
+                            toast("阶段要点:" + changeStageBean.getName() + "不能为空");
+                            return;
+                        }
+                    }
+                }
+                mPresenter.requestChangeStage(mContext, stageAdapterData, mBusinessStageBean, remarks, mBcCode);
+            }
+        });
+    }
+
+    @Override
+    protected void initData() {
+        if (mBusinessStageBean != null) {
+            mStageTextView.setText(mBusinessStageBean.getBS_NAME());
+
+            String bs_posint = mBusinessStageBean.getBS_POINT();
+            String bs_poiniflag = mBusinessStageBean.getBS_POINTFLAG();
+            String bs_pointdeino = mBusinessStageBean.getBS_POINTDETNO();
+            if (!StringUtil.isEmpty(bs_posint) && !StringUtil.isEmpty(bs_poiniflag)
+                    && !StringUtil.isEmpty(bs_pointdeino)) {
+                String[] names = bs_posint.split("#");
+                String[] flags = bs_poiniflag.split("#");
+                String[] keys = bs_pointdeino.split("#");
+                for (int j = 0; j < names.length; j++) {
+                    ChangeStageBean changeStageBean = new ChangeStageBean();
+                    changeStageBean.setName(names[j]);
+                    if (flags.length > j) {
+                        changeStageBean.setIsRequired(Integer.valueOf(flags[j]));
+                    }
+                    if (keys.length > j) {
+                        changeStageBean.setStageKey(keys[j]);
+                    }
+                    changeStageBean.setValue("");
+                    mChangeStageBeans.add(changeStageBean);
+                }
+
+                if ("businessStage".equals(mWhichPage)) {
+                    mChangeStageAdapter.notifyDataSetChanged();
+                }
+            }
+        }
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+        progressDialog.show();
+    }
+
+    @Override
+    public void hideLoading() {
+        progressDialog.dismiss();
+    }
+
+    @Override
+    public void changeStageSuccess() {
+        if ("businessDetail".equals(mWhichPage)) {
+            toast("商机记录提交成功");
+        } else {
+            toast("商机阶段变更成功");
+        }
+        mPresenter.requestUpdataSchedule(this, mBcCode);
+    }
+
+    @Override
+    public void updateScheduleSuccess() {
+        toast("更新商机状态成功");
+    }
+
+    @Override
+    public void requestFail(int flag, String failStr) {
+        toast(failStr);
+    }
+}

+ 31 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStageContract.java

@@ -0,0 +1,31 @@
+package com.uas.appworks.activity.businessManage.businessChangeStage;
+
+import android.content.Context;
+
+import com.core.base.presenter.MvpPresenter;
+import com.core.base.view.MvpView;
+import com.uas.appworks.model.bean.BusinessStageBean;
+import com.uas.appworks.model.bean.ChangeStageBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 11:27
+ */
+public class BusinessChangeStageContract {
+    interface IBusinessChangeStageView extends MvpView {
+        void changeStageSuccess();
+
+        void updateScheduleSuccess();
+
+        void requestFail(int flag, String failStr);
+    }
+
+    interface IBusinessChangeStagePresenter extends MvpPresenter<IBusinessChangeStageView> {
+        void requestChangeStage(Context context, List<ChangeStageBean> changeStageBeans, BusinessStageBean businessStageBean, String remarks, String bc_code);
+
+        void requestUpdataSchedule(Context context, String bc_code);
+    }
+}

+ 115 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessChangeStage/BusinessChangeStagePresenterImpl.java

@@ -0,0 +1,115 @@
+package com.uas.appworks.activity.businessManage.businessChangeStage;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.common.data.StringUtil;
+import com.core.app.MyApplication;
+import com.core.base.presenter.BaseMvpPresenter;
+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.model.bean.BusinessStageBean;
+import com.uas.appworks.model.bean.ChangeStageBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 11:30
+ */
+public class BusinessChangeStagePresenterImpl extends BaseMvpPresenter<BusinessChangeStageContract.IBusinessChangeStageView>
+        implements BusinessChangeStageContract.IBusinessChangeStagePresenter, HttpCallback {
+    private static final int CHANGE_BUSINESS_STAGE = 895;
+    private static final int CHANGE_UPDATE_SCHEDULE = 896;
+
+    @Override
+    public void onMvpAttachView(BusinessChangeStageContract.IBusinessChangeStageView view, Bundle savedInstanceState) {
+        super.onMvpAttachView(view, savedInstanceState);
+    }
+
+
+    @Override
+    public void onMvpResume() {
+        super.onMvpResume();
+    }
+
+
+    @Override
+    public void requestChangeStage(Context context, List<ChangeStageBean> changeStageBeans, BusinessStageBean businessStageBean, String remarks, String bc_code) {
+        getMvpView().showLoading("");
+
+        String remark = StringUtil.toHttpString(remarks);
+        String gridSoreData = "{\n";
+        for (int i = 0; i < changeStageBeans.size(); i++) {
+            String value = changeStageBeans.get(i).getValue() == null ? "" : changeStageBeans.get(i).getValue();
+            gridSoreData = gridSoreData + "\"BCD_COLUMN" + changeStageBeans.get(i).getStageKey()
+                    + "\":\"" + value + "\",\n";
+        }
+        String emname = CommonUtil.getSharedPreferences(context, "erp_emname");
+        if (StringUtil.isEmpty(emname)) {
+            emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
+        }
+
+        String gridSore = gridSoreData +
+                "\"bcd_bccode\":\"" + bc_code + "\",\n" +
+                "\"bcd_remark\":\"" + remark + "\",\n" +
+                "\"bcd_leader\":\"" + "" + "\",\n" +
+                "\"bcd_date\":\"" + "" + "\",\n" +
+                "\"bcd_bsname\":\"" + businessStageBean.getBS_NAME() + "\",\n" +
+                "\"bcd_type\":\"" + businessStageBean.getBS_TYPE() + "\",\n" +
+                "\"bcd_man\":\"" + emname + "\"" +
+                "}";
+
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
+                new HttpParams.Builder()
+                        .url("mobile/crm/updatebusinessChanceData.action")
+                        .method(Method.POST)
+                        .flag(CHANGE_BUSINESS_STAGE)
+                        .addParam("gridStore", gridSore)
+                        .addParam("caller", "BusinessChanceData")
+                        .addParam("sessionId", CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .build(), this);
+    }
+
+    @Override
+    public void requestUpdataSchedule(Context context, String bc_code) {
+        getMvpView().showLoading("");
+
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
+                new HttpParams.Builder()
+                        .url("mobile/crm/updateSchedule.action")
+                        .method(Method.POST)
+                        .flag(CHANGE_UPDATE_SCHEDULE)
+                        .addParam("code", bc_code)
+                        .addParam("sessionId", CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .build(), this);
+    }
+
+    @Override
+    public void onSuccess(int flag, Object o) throws Exception {
+        getMvpView().hideLoading();
+        switch (flag) {
+            case CHANGE_BUSINESS_STAGE:
+                getMvpView().changeStageSuccess();
+                break;
+            case CHANGE_UPDATE_SCHEDULE:
+                getMvpView().updateScheduleSuccess();
+                break;
+            default:
+                break;
+        }
+    }
+
+    @Override
+    public void onFail(int flag, String failStr) throws Exception {
+        getMvpView().hideLoading();
+
+        getMvpView().requestFail(flag, failStr);
+    }
+}

+ 10 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailContract.java

@@ -2,8 +2,10 @@ package com.uas.appworks.activity.businessManage.businessDetailActivity;
 
 import android.content.Context;
 
+import com.alibaba.fastjson.JSONArray;
 import com.core.base.presenter.MvpPresenter;
 import com.core.base.view.MvpView;
+import com.core.model.SelectEmUser;
 import com.uas.appworks.model.bean.BusinessStageBean;
 import com.uas.appworks.model.bean.CommonFormBean;
 
@@ -21,6 +23,10 @@ public class BusinessDetailContract {
 
         void requestStageSuccess(List<BusinessStageBean> businessStageBeans);
 
+        void changeDomanSuccess();
+
+        void requestScheduleListSuccess(JSONArray jsonArray);
+
         void requestFail(int flag, String failStr);
     }
 
@@ -28,5 +34,9 @@ public class BusinessDetailContract {
         void requestMainDetail(Context context, int ID, String caller);
 
         void requestStageList(Context context);
+
+        void changeDoman(Context context, SelectEmUser user, String bc_code);
+
+        void requestScheduleList(Context context, String bc_code, String emname);
     }
 }

+ 69 - 16
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailNewActivity.java

@@ -15,15 +15,20 @@ import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSONArray;
 import com.common.data.NumberUtils;
 import com.common.data.StringUtil;
 import com.common.system.DisplayUtil;
+import com.core.app.Constants;
+import com.core.app.MyApplication;
 import com.core.base.activity.MvpBaseActivity;
 import com.core.model.OAConfig;
 import com.core.model.SelectCollisionTurnBean;
 import com.core.model.SelectEmUser;
+import com.core.utils.CommonUtil;
 import com.dinuscxj.progressbar.CircleProgressBar;
 import com.uas.appworks.R;
+import com.uas.appworks.activity.businessManage.businessChangeStage.BusinessChangeStageActivity;
 import com.uas.appworks.activity.businessManage.businessStage.BusinessStageActivity;
 import com.uas.appworks.adapter.CommonFormDetailAdapter;
 import com.uas.appworks.adapter.TabViewpagerAdapter;
@@ -44,6 +49,7 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
         implements BusinessDetailContract.BusinessDetailView, View.OnClickListener {
     private static final int REQUEST_CHANGE_PRINCIPAL = 363;
     private static final int REQUEST_CHANGE_STAGE = 364;
+    private static final int FILL_BUSINESS_RECORD = 365;
 
     private RecyclerView mMainRecyclerView;
     private CircleProgressBar mCircleProgressBar;
@@ -55,12 +61,13 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
     private List<String> mTitleStrings;
     private List<Fragment> mFragments;
     private ViewPager mViewPager;
+    private LinearLayout mBottomLayout;
     private CommonFormDetailAdapter mCommonFormDetailAdapter;
     private List<CommonFormBean> mCommonFormBeans;
     private List<BusinessStageBean> mBusinessStageBeans;
+    private BusinessStageBean mCurrentBusinessStage;
     private int mId;
-    private String mBctype;
-    private String mStageCode;
+    private String mBctype, mStageCode, mBcCode, mBcdescription, mWhichPage;
     private BusinessMineListFragment mChargeFragment, mBranchFragment;
     private PopupWindow mFollowPopupWindow;
     private View mFollowView;
@@ -79,8 +86,17 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
             mId = intent.getIntExtra("id", -1);
             mBctype = intent.getStringExtra("type");
             mStageCode = intent.getStringExtra("stage");
+            mBcCode = intent.getStringExtra("bc_code");
+            mBcdescription = intent.getStringExtra("bc_description");
+            mWhichPage = intent.getStringExtra(Constants.FLAG.COMMON_WHICH_PAGE);
         }
 
+        mBottomLayout = $(R.id.business_detail_new_bottom_ll);
+        if ("businessCharge".equals(mWhichPage)) {
+            mBottomLayout.setVisibility(View.VISIBLE);
+        } else {
+            mBottomLayout.setVisibility(View.GONE);
+        }
         mAddScheduleBtn = $(R.id.business_detail_new_add_schedule_tv);
         mFollowBtn = $(R.id.business_detail_new_follow_tv);
         mMainRecyclerView = $(R.id.business_detail_new_main_rv);
@@ -133,8 +149,8 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
         mTabLayout.addTab(mTabLayout.newTab().setText(mTitleStrings.get(0)));
         mTabLayout.addTab(mTabLayout.newTab().setText(mTitleStrings.get(1)));
 
-        mChargeFragment = BusinessMineListFragment.newInstance(BusinessMineListFragment.FLAG_BUSINESS_CHARGE);
-        mBranchFragment = BusinessMineListFragment.newInstance(BusinessMineListFragment.FLAG_BUSINESS_BRANCH);
+        mChargeFragment = BusinessMineListFragment.newInstance(BusinessMineListFragment.FLAG_BUSINESS_ASSOCIATED, mBcCode);
+        mBranchFragment = BusinessMineListFragment.newInstance(BusinessMineListFragment.FLAG_BUSINESS_ASSOCIATED, mBcCode);
 
         mFragments = new ArrayList<>();
         mFragments.add(mChargeFragment);
@@ -189,11 +205,16 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
     public void onClick(View view) {
         int i = view.getId();
         if (i == R.id.business_detail_new_stage_iv) {
-            startActivity(new Intent(mContext, BusinessStageActivity.class)
+            startActivityForResult(new Intent(mContext, BusinessStageActivity.class)
                     .putExtra("stageBeans", (Serializable) mBusinessStageBeans)
-                    .putExtra("stageCode", mStageCode));
+                    .putExtra("stageCode", mStageCode)
+                    .putExtra("bc_code", mBcCode), REQUEST_CHANGE_STAGE);
         } else if (i == R.id.business_detail_new_add_schedule_tv) {
-            toast("添加日程");
+            String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
+            if (StringUtil.isEmpty(emname)) {
+                emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
+            }
+            mPresenter.requestScheduleList(this, mBcCode, emname);
         } else if (i == R.id.business_detail_new_follow_tv) {
             if (mFollowPopupWindow != null && mFollowView != null) {
                 mFollowView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
@@ -208,11 +229,18 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
             }
         } else if (i == R.id.business_follow_menu1) {
             closeFollowMenu();
+            startActivityForResult(new Intent(mContext, BusinessChangeStageActivity.class)
+                    .putExtra("currentStage", mCurrentBusinessStage)
+                    .putExtra("whichPage", "businessDetail")
+                    .putExtra("bc_code", mBcCode), FILL_BUSINESS_RECORD);
         } else if (i == R.id.business_follow_menu2) {
-            startActivityForResult(new Intent(mContext, BusinessStageActivity.class)
-                    .putExtra("stageCode", mStageCode), REQUEST_CHANGE_STAGE);
             closeFollowMenu();
+            startActivityForResult(new Intent(mContext, BusinessStageActivity.class)
+                    .putExtra("stageBeans", (Serializable) mBusinessStageBeans)
+                    .putExtra("stageCode", mStageCode)
+                    .putExtra("bc_code", mBcCode), REQUEST_CHANGE_STAGE);
         } else if (i == R.id.business_follow_menu3) {
+            closeFollowMenu();
             Intent intent = new Intent("com.modular.main.SelectCollisionActivity");
             SelectCollisionTurnBean bean = new SelectCollisionTurnBean()
                     .setSureText(getString(R.string.common_sure))
@@ -222,7 +250,6 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
                     .setReBackSelect(true);
             intent.putExtra(OAConfig.MODEL_DATA, bean);
             startActivityForResult(intent, REQUEST_CHANGE_PRINCIPAL);
-            closeFollowMenu();
         } else {
 
         }
@@ -233,7 +260,7 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
         if (data != null && requestCode == REQUEST_CHANGE_PRINCIPAL) {
             SelectEmUser user = data.getParcelableExtra("data");
             if (user != null && !StringUtil.isEmpty(user.getEmCode())) {
-                // TODO: 2018/9/21 变更负责人
+                mPresenter.changeDoman(mContext, user, mBcCode);
             }
         }
         super.onActivityResult(requestCode, resultCode, data);
@@ -278,6 +305,7 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
                             mStageContentTextView.setText(pointStr);
                         }
                     }
+                    mCurrentBusinessStage = businessStageBean;
                     int stageIndex = i + 1;
                     mCircleProgressBar.setProgress(stageIndex);
                     mStageIndexTextView.setText("第" + NumberUtils.translateNumber2Chinese(stageIndex) + "阶段");
@@ -296,11 +324,36 @@ public class BusinessDetailNewActivity extends MvpBaseActivity<BusinessDetailCon
     }
 
     @Override
-    public void requestFail(int flag, String failStr) {
-        switch (flag) {
-            case BusinessDetailPresenterImpl.REQUEST_BUSINESS_DETAIL:
-                toast(failStr);
-                break;
+    public void changeDomanSuccess() {
+        toast("变更负责人成功");
+    }
+
+    @Override
+    public void requestScheduleListSuccess(JSONArray jsonArray) {
+        if (jsonArray == null) {
+            toast("日程请求失败,请重试");
+            return;
+        }
+        if (jsonArray.size() > 0) {
+            toast("不能重复添加到日程!");
+        } else {
+            Intent intent = new Intent("com.modular.appworks.TaskAddActivity");
+            intent.putExtra("type", 1);
+            intent.putExtra("from", "BusinessDetailInfo");
+            intent.putExtra("data", mBcCode);
+            intent.putExtra("bc_doman", CommonUtil.getName());
+            intent.putExtra("bc_custname", mBcdescription);
+            startActivityForResult(intent, 0x11);
         }
+
+    }
+
+    @Override
+    public void requestFail(int flag, String failStr) {
+//        switch (flag) {
+//            case BusinessDetailPresenterImpl.REQUEST_BUSINESS_DETAIL:
+        toast(failStr);
+//                break;
+//        }
     }
 }

+ 50 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessDetailActivity/BusinessDetailPresenterImpl.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.core.base.presenter.BaseMvpPresenter;
+import com.core.model.SelectEmUser;
 import com.core.utils.CommonUtil;
 import com.me.network.app.base.HttpCallback;
 import com.me.network.app.base.HttpParams;
@@ -32,6 +33,8 @@ public class BusinessDetailPresenterImpl extends BaseMvpPresenter<BusinessDetail
         implements BusinessDetailContract.BusinessDetailPresenter, HttpCallback {
     public static final int REQUEST_BUSINESS_DETAIL = 744;
     public static final int REQUEST_BUSINESS_STAGE = 745;
+    public static final int REQUEST_CHANGE_DOMAN = 746;
+    public static final int REQUEST_SCHEDULE_LIST = 747;
 
     @Override
     public void onMvpAttachView(BusinessDetailContract.BusinessDetailView view, Bundle savedInstanceState) {
@@ -75,6 +78,38 @@ public class BusinessDetailPresenterImpl extends BaseMvpPresenter<BusinessDetail
                         .build(), this);
     }
 
+    @Override
+    public void changeDoman(Context context, SelectEmUser user, String bc_code) {
+        getMvpView().showLoading("");
+
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
+                new HttpParams.Builder()
+                        .url("mobile/crm/updateBusinessChanceDoman.action")
+                        .method(Method.POST)
+                        .flag(REQUEST_CHANGE_DOMAN)
+                        .addParam("bc_code", bc_code)
+                        .addParam("bc_doman", user.getEmName())
+                        .addParam("bc_domancode", user.getEmCode())
+                        .addParam("type", 1)
+                        .addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .build(), this);
+    }
+
+    @Override
+    public void requestScheduleList(Context context, String bc_code, String emname) {
+        getMvpView().showLoading("");
+
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
+                new HttpParams.Builder()
+                        .url("mobile/crm/getSchedule.action")
+                        .method(Method.POST)
+                        .flag(REQUEST_SCHEDULE_LIST)
+                        .addParam("bccode", bc_code)
+                        .addParam("emname", emname)
+                        .addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"))
+                        .build(), this);
+    }
+
     @Override
     public void onSuccess(int flag, Object o) throws Exception {
         getMvpView().hideLoading();
@@ -92,6 +127,21 @@ public class BusinessDetailPresenterImpl extends BaseMvpPresenter<BusinessDetail
                 } catch (Exception e) {
                     getMvpView().requestStageSuccess(new ArrayList<BusinessStageBean>());
                 }
+                break;
+            case REQUEST_CHANGE_DOMAN:
+                getMvpView().changeDomanSuccess();
+                break;
+            case REQUEST_SCHEDULE_LIST:
+                try {
+                    String result = o.toString();
+                    LogUtil.prinlnLongMsg("raoScheduleSuc", result);
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray resultArray = resultObject.getJSONArray("result");
+                    getMvpView().requestScheduleListSuccess(resultArray);
+                } catch (Exception e) {
+                    getMvpView().requestScheduleListSuccess(new JSONArray());
+                }
+                break;
             default:
                 break;
         }

+ 18 - 2
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessManageHome/BusinessManageHomeActivity.java

@@ -25,6 +25,8 @@ import com.modular.apputils.activity.BillInputActivity;
 import com.modular.apputils.utils.RecyclerItemDecoration;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.uas.appworks.CRM.erp.activity.BusinessActivity;
+import com.uas.appworks.CRM.erp.activity.BusinessDetailActivty;
 import com.uas.appworks.R;
 import com.uas.appworks.activity.businessManage.BusinessCompanyListActivity;
 import com.uas.appworks.activity.businessManage.BusinessOvertimeListActivity;
@@ -59,7 +61,8 @@ public class BusinessManageHomeActivity extends MvpBaseActivity<BusinessManageHo
     private RecyclerView mrecordRecyclerView, mOvertimeRecyclerView, mRankRecyclerView;
     private LinearLayout mDataTimeLayout, mRecordAllLayout,
             mOvertimeAllLayout, mRankAllLayout,
-            mHeaderMineLayout, mHeaderCompanyLayout;
+            mHeaderMineLayout, mHeaderCompanyLayout,
+            mHeaderDistributionLayout, mHeaderGrapLayout, mHeaderFunnelLayout;
     private List<BusinessRecordBean> mBusinessRecordBeans;
     private List<BusinessOverTimeBean> mBusinessOverTimeBeans;
     private List<BusinessRankBean> mBusinessRankBeans;
@@ -90,6 +93,9 @@ public class BusinessManageHomeActivity extends MvpBaseActivity<BusinessManageHo
         mDataTimeLayout = $(R.id.business_manage_home_data_date_ll);
         mHeaderMineLayout = $(R.id.business_manage_home_mine_ll);
         mHeaderCompanyLayout = $(R.id.business_manage_home_company_ll);
+        mHeaderDistributionLayout = $(R.id.business_manage_home_distribution_ll);
+        mHeaderGrapLayout = $(R.id.business_manage_home_grap_ll);
+        mHeaderFunnelLayout = $(R.id.business_manage_home_funnel_ll);
         mNewlyTextView = $(R.id.business_manage_home_data_newly_tv);
         mChangeTextView = $(R.id.business_manage_home_data_change_tv);
         mWinTextView = $(R.id.business_manage_home_data_win_tv);
@@ -164,6 +170,9 @@ public class BusinessManageHomeActivity extends MvpBaseActivity<BusinessManageHo
         mDataTimeLayout.setOnClickListener(this);
         mHeaderMineLayout.setOnClickListener(this);
         mHeaderCompanyLayout.setOnClickListener(this);
+        mHeaderDistributionLayout.setOnClickListener(this);
+        mHeaderGrapLayout.setOnClickListener(this);
+        mHeaderFunnelLayout.setOnClickListener(this);
         mAddProjectBtn.setOnClickListener(this);
         mAddOemBtn.setOnClickListener(this);
 
@@ -217,7 +226,14 @@ public class BusinessManageHomeActivity extends MvpBaseActivity<BusinessManageHo
         } else if (i == R.id.business_manage_home_mine_ll) {
             startActivity(BusinessMineListActivity.class);
         } else if (i == R.id.business_manage_home_company_ll) {
-            startActivity(BusinessCompanyListActivity.class);
+            startActivity(new Intent(mContext, BusinessCompanyListActivity.class)
+                    .putExtra(Constants.FLAG.COMMON_WHICH_PAGE, BusinessCompanyListActivity.PAGE_BUSINESS_COMPANY));
+        } else if (i == R.id.business_manage_home_distribution_ll) {
+            startActivity(new Intent(this, BusinessDetailActivty.class).putExtra("bt_type", 2));
+        } else if (i == R.id.business_manage_home_grap_ll) {
+            startActivity(new Intent(this, BusinessDetailActivty.class).putExtra("bt_type", 1));
+        } else if (i == R.id.business_manage_home_funnel_ll) {
+            startActivity(BusinessActivity.class);
         } else if (i == R.id.business_home_menu1) {
             startActivity(new Intent(ct, BillInputActivity.class)
                     .putExtra(Constants.Intents.CALLER, "ProjectBusinessChance")

+ 6 - 5
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessManageHome/BusinessManageHomePresenterImpl.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.core.base.presenter.BaseMvpPresenter;
+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;
@@ -48,7 +49,7 @@ public class BusinessManageHomePresenterImpl extends BaseMvpPresenter<BusinessMa
     public void getBusinessData(Context context, String dataTime) {
         getMvpView().showLoading("");
 
-        HttpRequest.getInstance().sendRequest("http://192.168.253.52:8080/ERP/",
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
                 new HttpParams.Builder()
                         .url("mobile/crm/businessDataByMonth.action")
                         .flag(REQUEST_BUSINESS_DATA)
@@ -61,7 +62,7 @@ public class BusinessManageHomePresenterImpl extends BaseMvpPresenter<BusinessMa
     public void getBusinessRecord(Context context, String salesmanCode, int pageIndex, int pageSize) {
         getMvpView().showLoading("");
 
-        HttpRequest.getInstance().sendRequest("http://192.168.253.52:8080/ERP/",
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
                 new HttpParams.Builder()
                         .url("mobile/crm/businessRecord.action")
                         .flag(REQUEST_BUSINESS_RECORD)
@@ -76,7 +77,7 @@ public class BusinessManageHomePresenterImpl extends BaseMvpPresenter<BusinessMa
     public void getBusinessOvertime(Context context, String salesmanCode, int pageIndex, int pageSize) {
         getMvpView().showLoading("");
 
-        HttpRequest.getInstance().sendRequest("http://192.168.253.52:8080/ERP/",
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
                 new HttpParams.Builder()
                         .url("mobile/crm/businessOvertime.action")
                         .flag(REQUEST_BUSINESS_OVERTIME)
@@ -91,7 +92,7 @@ public class BusinessManageHomePresenterImpl extends BaseMvpPresenter<BusinessMa
     public void getBusinessRank(Context context, int pageIndex, int pageSize) {
         getMvpView().showLoading("");
 
-        HttpRequest.getInstance().sendRequest("http://192.168.253.52:8080/ERP/",
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
                 new HttpParams.Builder()
                         .url("mobile/crm/businessRank.action")
                         .flag(REQUEST_BUSINESS_RANK)
@@ -105,7 +106,7 @@ public class BusinessManageHomePresenterImpl extends BaseMvpPresenter<BusinessMa
     public void getBusinessAll(Context context, String dataTime, String salesmanCode) {
         getMvpView().showLoading("");
 
-        HttpRequest.getInstance().sendRequest("http://192.168.253.52:8080/ERP/",
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(context),
                 new HttpParams.Builder()
                         .url("mobile/crm/businessOppHome.action")
                         .flag(REQUEST_BUSINESS_ALL)

+ 29 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListActivity.java

@@ -1,11 +1,16 @@
 package com.uas.appworks.activity.businessManage.businessMineList;
 
+import android.content.Intent;
 import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.ViewPager;
+import android.view.Menu;
+import android.view.MenuItem;
 
+import com.core.app.Constants;
 import com.core.base.activity.MvpBaseActivity;
 import com.uas.appworks.R;
+import com.uas.appworks.activity.businessManage.BusinessCompanyListActivity;
 import com.uas.appworks.adapter.TabViewpagerAdapter;
 import com.uas.appworks.fragment.BusinessMineListFragment;
 
@@ -74,6 +79,30 @@ public class BusinessMineListActivity extends MvpBaseActivity {
 
     }
 
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.search, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        int i = item.getItemId();
+        if (i == R.id.search) {
+            int selectedTabPosition = mTabLayout.getSelectedTabPosition();
+            if (selectedTabPosition == 0) {
+                startActivity(new Intent(mContext, BusinessCompanyListActivity.class)
+                        .putExtra(Constants.FLAG.COMMON_WHICH_PAGE, BusinessCompanyListActivity.PAGE_BUSINESS_CHARGE));
+            } else if (selectedTabPosition == 1) {
+                startActivity(new Intent(mContext, BusinessCompanyListActivity.class)
+                        .putExtra(Constants.FLAG.COMMON_WHICH_PAGE, BusinessCompanyListActivity.PAGE_BUSINESS_BRANCH));
+            }
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     @Override
     public void showLoading(String loadStr) {
 

+ 2 - 1
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListContract.java

@@ -5,6 +5,7 @@ import android.content.Context;
 import com.core.base.presenter.MvpPresenter;
 import com.core.base.view.MvpView;
 import com.uas.appworks.model.bean.BusinessMineChildBean;
+import com.uas.appworks.model.bean.CommonColumnsBean;
 
 import java.util.List;
 import java.util.Map;
@@ -17,7 +18,7 @@ import java.util.Map;
 public class BusinessMineListContract {
 
     public interface IBusinessMineListView extends MvpView {
-        void requestListSuccess(List<BusinessMineChildBean> businessMineBeans);
+        void requestListSuccess(List<BusinessMineChildBean> businessMineBeans, List<CommonColumnsBean> commonColumnsBeans);
 
         void requestListFail(String failMsg);
     }

+ 31 - 23
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessMineList/BusinessMineListPresenterImpl.java

@@ -6,6 +6,7 @@ import android.os.Bundle;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.common.LogUtil;
 import com.common.data.JSONUtil;
 import com.core.base.presenter.BaseMvpPresenter;
 import com.core.utils.CommonUtil;
@@ -14,6 +15,7 @@ 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.model.bean.BusinessMineChildBean;
+import com.uas.appworks.model.bean.CommonColumnsBean;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,19 +52,6 @@ public class BusinessMineListPresenterImpl extends BaseMvpPresenter<BusinessMine
                         .setParams(params)
                         .addHeader("Cookie", CommonUtil.getErpCookie(context))
                         .build(), this);
-
-        /*new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                getMvpView().hideLoading();
-
-                List<SecondaryListAdapter.SecondaryListBean<Integer, BusinessMineChildBean>> businessMineBeans = new ArrayList<>();
-                for (int i = 0; i < 20; i++) {
-                    businessMineBeans.add(new SecondaryListAdapter.SecondaryListBean("", null));
-                }
-                getMvpView().requestListSuccess(businessMineBeans);
-            }
-        }, 1000);*/
     }
 
     @Override
@@ -72,24 +61,41 @@ public class BusinessMineListPresenterImpl extends BaseMvpPresenter<BusinessMine
             switch (flag) {
                 case REQUEST_BUSINESS_MINE_LIST:
                     String result = o.toString();
+                    LogUtil.prinlnLongMsg("raoMineSuc", result);
                     List<BusinessMineChildBean> businessMineChildBeans = new ArrayList<>();
+                    List<CommonColumnsBean> commonColumnsBeans = new ArrayList<>();
                     if (!JSONUtil.validate(result)) {
-                        getMvpView().requestListSuccess(businessMineChildBeans);
+                        getMvpView().requestListSuccess(businessMineChildBeans, commonColumnsBeans);
                         return;
                     }
                     JSONObject resultObject = JSON.parseObject(result);
                     if (resultObject == null) {
-                        getMvpView().requestListSuccess(businessMineChildBeans);
+                        getMvpView().requestListSuccess(businessMineChildBeans, commonColumnsBeans);
                         return;
                     }
                     JSONArray columnArray = resultObject.getJSONArray("columns");
                     if (columnArray == null) {
-                        getMvpView().requestListSuccess(businessMineChildBeans);
+                        getMvpView().requestListSuccess(businessMineChildBeans, commonColumnsBeans);
                         return;
                     }
+                    for (int i = 0; i < columnArray.size(); i++) {
+                        JSONObject columnObject = columnArray.getJSONObject(i);
+                        if (columnObject != null) {
+                            CommonColumnsBean commonColumnsBean = new CommonColumnsBean();
+
+                            commonColumnsBean.setDataIndex(JSONUtil.getText(columnObject, "dataIndex"));
+                            commonColumnsBean.setCaption(JSONUtil.getText(columnObject, "caption"));
+                            commonColumnsBean.setWidth(JSONUtil.getInt(columnObject, "width"));
+                            commonColumnsBean.setType(JSONUtil.getText(columnObject, "type"));
+                            commonColumnsBean.setFormat(JSONUtil.getText(columnObject, "format"));
+                            commonColumnsBean.setRender(JSONUtil.getText(columnObject, "render"));
+
+                            commonColumnsBeans.add(commonColumnsBean);
+                        }
+                    }
                     JSONArray listDataArray = resultObject.getJSONArray("listdata");
                     if (listDataArray == null) {
-                        getMvpView().requestListSuccess(businessMineChildBeans);
+                        getMvpView().requestListSuccess(businessMineChildBeans, commonColumnsBeans);
                         return;
                     }
 
@@ -100,25 +106,27 @@ public class BusinessMineListPresenterImpl extends BaseMvpPresenter<BusinessMine
                             businessMineParent.setItemType(BusinessMineChildBean.BUSINESS_MINE_PARENT);
                             businessMineChildBeans.add(businessMineParent);
 
-                            for (int j = 0; j < columnArray.size(); j++) {
-                                JSONObject columnObject = columnArray.getJSONObject(j);
-                                if (columnObject != null) {
+                            for (int j = 0; j < commonColumnsBeans.size(); j++) {
+                                CommonColumnsBean commonColumnsBean = commonColumnsBeans.get(j);
+                                if (commonColumnsBean != null) {
                                     BusinessMineChildBean businessMineChild = new BusinessMineChildBean();
-                                    String dataIndex = JSONUtil.getText(columnObject, "dataIndex");
-                                    businessMineChild.setCaption(JSONUtil.getText(columnObject, "caption"));
+                                    String dataIndex = commonColumnsBean.getDataIndex();
+                                    businessMineChild.setCaption(commonColumnsBean.getCaption());
                                     businessMineChild.setDataIndex(dataIndex);
                                     businessMineChild.setValue(JSONUtil.getText(listDataObject, dataIndex));
                                     businessMineChild.setItemType(BusinessMineChildBean.BUSINESS_MINE_CHILD);
                                     businessMineChild.setId(JSONUtil.getInt(listDataObject, "bc_id"));
                                     businessMineChild.setBcType(JSONUtil.getText(listDataObject, "bc_type"));
                                     businessMineChild.setStageCode(JSONUtil.getText(listDataObject, "bc_currentprocesscode"));
+                                    businessMineChild.setBcCode(JSONUtil.getText(listDataObject, "bc_code"));
+                                    businessMineChild.setBcDescription(JSONUtil.getText(listDataObject, "bc_description"));
 
                                     businessMineChildBeans.add(businessMineChild);
                                 }
                             }
                         }
                     }
-                    getMvpView().requestListSuccess(businessMineChildBeans);
+                    getMvpView().requestListSuccess(businessMineChildBeans, commonColumnsBeans);
 
                     break;
                 default:

+ 83 - 4
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessStage/BusinessStageActivity.java

@@ -1,16 +1,25 @@
 package com.uas.appworks.activity.businessManage.businessStage;
 
 import android.content.Intent;
+import android.graphics.drawable.BitmapDrawable;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.view.Gravity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.common.system.DisplayUtil;
 import com.core.base.activity.MvpBaseActivity;
+import com.modular.apputils.utils.RecyclerItemDecoration;
 import com.uas.appworks.R;
+import com.uas.appworks.activity.businessManage.businessChangeStage.BusinessChangeStageActivity;
 import com.uas.appworks.adapter.BusinessStageAdapter;
+import com.uas.appworks.adapter.BusinessStageMenuAdapter;
 import com.uas.appworks.model.bean.BusinessStageBean;
 
 import java.util.ArrayList;
@@ -23,12 +32,17 @@ import java.util.List;
  */
 public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract.IBusinessStagePresenter>
         implements BusinessStageContract.IBusinessStageView {
-    private RecyclerView mRecyclerView;
+    private final int FILL_BUSINESS_RECORD = 0x20;
+
+    private RecyclerView mRecyclerView, mMenuRecyclerView;
     private List<BusinessStageBean> mBusinessStageBeans;
     private BusinessStageAdapter mBusinessStageAdapter;
     private View mEmptyView;
-    private TextView mEmptyText;
+    private TextView mEmptyText, mCancelTextView;
+    private PopupWindow mMenuPopupWindow;
+    private BusinessStageMenuAdapter mBusinessStageMenuAdapter;
     private String mStageCode;
+    private String mBcCode;
 
     @Override
     protected int getLayout() {
@@ -45,6 +59,34 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
         mBusinessStageBeans = new ArrayList<>();
         mBusinessStageAdapter = new BusinessStageAdapter(mBusinessStageBeans);
         mRecyclerView.setAdapter(mBusinessStageAdapter);
+
+        initMenuPop();
+    }
+
+    private void initMenuPop() {
+        View menuView = View.inflate(this, R.layout.pop_business_stage_menu, null);
+        mMenuPopupWindow = new PopupWindow(menuView, LinearLayout.LayoutParams.MATCH_PARENT,
+                LinearLayout.LayoutParams.WRAP_CONTENT, true);
+        mMenuRecyclerView = menuView.findViewById(R.id.pop_business_stage_rv);
+        mMenuRecyclerView.setLayoutManager(new LinearLayoutManager(this));
+        mMenuRecyclerView.addItemDecoration(new RecyclerItemDecoration(1));
+        mBusinessStageMenuAdapter = new BusinessStageMenuAdapter(mBusinessStageBeans);
+        mMenuRecyclerView.setAdapter(mBusinessStageMenuAdapter);
+
+        mCancelTextView = menuView.findViewById(R.id.pop_business_stage_cancel_tv);
+
+        mMenuPopupWindow.setOutsideTouchable(true);
+        mMenuPopupWindow.setBackgroundDrawable(new BitmapDrawable());
+        mMenuPopupWindow.setAnimationStyle(R.style.MenuAnimationFade);
+        mMenuPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+            @Override
+            public void onDismiss() {
+                if (mMenuPopupWindow != null) {
+                    mMenuPopupWindow.dismiss();
+                }
+                DisplayUtil.backgroundAlpha(mContext, 1f);
+            }
+        });
     }
 
     @Override
@@ -54,7 +96,23 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
 
     @Override
     protected void initEvent() {
-
+        mCancelTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                closeMenuPop();
+            }
+        });
+
+        mBusinessStageMenuAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                closeMenuPop();
+                startActivityForResult(new Intent(mContext, BusinessChangeStageActivity.class)
+                        .putExtra("currentStage", mBusinessStageBeans.get(position))
+                        .putExtra("whichPage", "businessStage")
+                        .putExtra("bc_code", mBcCode), FILL_BUSINESS_RECORD);
+            }
+        });
     }
 
     @Override
@@ -66,6 +124,7 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
                 mBusinessStageBeans.addAll(stageBeans);
             }
             mStageCode = intent.getStringExtra("stageCode");
+            mBcCode = intent.getStringExtra("bc_code");
         }
 
         if (mBusinessStageBeans == null || mBusinessStageBeans.size() == 0) {
@@ -75,6 +134,12 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
         }
     }
 
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+
+        super.onActivityResult(requestCode, resultCode, data);
+    }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_change_business_stage, menu);
@@ -85,12 +150,25 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
     public boolean onOptionsItemSelected(MenuItem item) {
         int i = item.getItemId();
         if (i == R.id.change_business_stage) {
-
+            if (mBusinessStageBeans.size() == 0) {
+                toast("商机阶段为空,无法切换");
+                return true;
+            }
+            mMenuPopupWindow.showAtLocation(getWindow().getDecorView().findViewById(android.R.id.content)
+                    , Gravity.BOTTOM, 0, 0);
+            DisplayUtil.backgroundAlpha(mContext, 0.5f);
             return true;
         }
         return super.onOptionsItemSelected(item);
     }
 
+    private void closeMenuPop() {
+        if (mMenuPopupWindow != null) {
+            mMenuPopupWindow.dismiss();
+        }
+        DisplayUtil.backgroundAlpha(mContext, 1f);
+    }
+
     @Override
     public void showLoading(String loadStr) {
         progressDialog.show();
@@ -105,6 +183,7 @@ public class BusinessStageActivity extends MvpBaseActivity<BusinessStageContract
     public void requestStageSuccess(List<BusinessStageBean> businessStageBeans) {
         mBusinessStageBeans.addAll(businessStageBeans);
         mBusinessStageAdapter.notifyDataSetChanged();
+        mBusinessStageMenuAdapter.notifyDataSetChanged();
         if (mBusinessStageBeans.size() == 0) {
             if (mEmptyView == null || mEmptyText == null) {
                 mEmptyView = View.inflate(mContext, R.layout.layout_commom_empty, null);

+ 1 - 0
app_modular/appworks/src/main/java/com/uas/appworks/activity/businessManage/businessStage/BusinessStagePresenterImpl.java

@@ -60,6 +60,7 @@ public class BusinessStagePresenterImpl extends BaseMvpPresenter<BusinessStageCo
             case REQUEST_BUSINESS_STAGE:
                 try {
                     String result = o.toString();
+                    LogUtil.prinlnLongMsg("raoStageSuc", result);
                     List<BusinessStageBean> businessStageBeans = new ArrayList<>();
                     if (!JSONUtil.validate(result)) {
                         getMvpView().requestStageSuccess(businessStageBeans);

+ 30 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/BusinessStageMenuAdapter.java

@@ -0,0 +1,30 @@
+package com.uas.appworks.adapter;
+
+import android.support.annotation.Nullable;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.common.data.NumberUtils;
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.BusinessStageBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 16:46
+ */
+public class BusinessStageMenuAdapter extends BaseQuickAdapter<BusinessStageBean, BaseViewHolder> {
+
+    public BusinessStageMenuAdapter(@Nullable List<BusinessStageBean> data) {
+        super(R.layout.item_business_stage_menu, data);
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, BusinessStageBean item) {
+        int adapterPosition = helper.getAdapterPosition();
+        String position = NumberUtils.translateNumber2Chinese(adapterPosition + 1);
+        helper.setText(R.id.item_business_stage_tv, "阶段" + position);
+    }
+}

+ 55 - 0
app_modular/appworks/src/main/java/com/uas/appworks/adapter/ChangeStageAdapter.java

@@ -0,0 +1,55 @@
+package com.uas.appworks.adapter;
+
+import android.support.annotation.Nullable;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.widget.EditText;
+
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.uas.appworks.R;
+import com.uas.appworks.model.bean.ChangeStageBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 15:23
+ */
+public class ChangeStageAdapter extends BaseQuickAdapter<ChangeStageBean, BaseViewHolder> {
+
+    public ChangeStageAdapter(@Nullable List<ChangeStageBean> data) {
+        super(R.layout.item_change_stage, data);
+    }
+
+    @Override
+    protected void convert(BaseViewHolder helper, final ChangeStageBean item) {
+        helper.setText(R.id.item_change_stage_caption_tv, item.getName());
+        helper.setText(R.id.item_change_stage_value_tv, item.getValue() == null ? "" : item.getValue());
+
+        EditText valueEditText = helper.getView(R.id.item_change_stage_value_tv);
+        if (item.getIsRequired() == 1) {
+            valueEditText.setHint("请输入(必填)");
+        } else {
+            valueEditText.setHint("请输入(非必填)");
+        }
+
+        valueEditText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                item.setValue(editable.toString());
+            }
+        });
+    }
+}

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

@@ -1,30 +1,15 @@
 package com.uas.appworks.adapter;
 
 import android.content.Context;
-import android.support.annotation.LayoutRes;
 import android.support.annotation.NonNull;
-import android.support.v7.widget.RecyclerView;
-import android.text.Editable;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.common.LogUtil;
+
 import com.common.data.ListUtils;
-import com.core.widget.listener.EditChangeListener;
-import com.core.widget.view.MyGridView;
 import com.core.widget.view.SwitchView;
-import com.me.imageloader.ImageLoaderUtil;
 import com.modular.apputils.adapter.BillAdapter;
 import com.modular.apputils.model.BillGroupModel;
 import com.modular.apputils.utils.BillTypeChangeUtils;
-import com.modular.apputils.widget.VeriftyDialog;
 import com.uas.appworks.R;
 
 import java.util.List;
@@ -99,5 +84,4 @@ public class CustomerBillInputAdapter extends BillAdapter {
         });
     }
 
-
 }

+ 83 - 0
app_modular/appworks/src/main/java/com/uas/appworks/fragment/BusinessAssociatedFragment.java

@@ -0,0 +1,83 @@
+package com.uas.appworks.fragment;
+
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+
+import com.core.base.fragment.MvpBaseFragment;
+import com.uas.appworks.R;
+import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineListContract;
+import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineListPresenterImpl;
+import com.uas.appworks.adapter.BusinessMineAdapter;
+import com.uas.appworks.model.bean.BusinessMineChildBean;
+import com.uas.appworks.model.bean.CommonColumnsBean;
+
+import java.util.List;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/24 14:07
+ */
+public class BusinessAssociatedFragment extends MvpBaseFragment<BusinessMineListContract.IBusinessMineListPresenter>
+        implements BusinessMineListContract.IBusinessMineListView {
+
+    private RecyclerView mRecyclerView;
+    private View mEmptyView;
+    private TextView mEmptyText;
+    private List<BusinessMineChildBean> mBusinessMineBeans;
+    private BusinessMineAdapter mBusinessMineAdapter;
+    private String mCaller;
+    private String mCondition = "1 = 1";
+    private int mPageIndex = 1;
+    private int mPageSize = 100;
+
+    @Override
+    protected int getLayout() {
+        return R.layout.fragment_business_associated;
+    }
+
+    @Override
+    protected BusinessMineListContract.IBusinessMineListPresenter initPresenter() {
+        return new BusinessMineListPresenterImpl();
+    }
+
+    @Override
+    protected void initViews() {
+
+        mRecyclerView = $(R.id.business_associated_rv);
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
+
+    }
+
+    @Override
+    protected void initEvents() {
+
+    }
+
+    @Override
+    protected void initDatas() {
+
+    }
+
+    @Override
+    public void requestListSuccess(List<BusinessMineChildBean> businessMineBeans, List<CommonColumnsBean> commonColumnsBeans) {
+
+    }
+
+    @Override
+    public void requestListFail(String failMsg) {
+
+    }
+
+    @Override
+    public void showLoading(String loadStr) {
+
+    }
+
+    @Override
+    public void hideLoading() {
+
+    }
+}

+ 38 - 2
app_modular/appworks/src/main/java/com/uas/appworks/fragment/BusinessMineListFragment.java

@@ -8,6 +8,7 @@ import android.view.View;
 import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.core.app.Constants;
 import com.core.base.fragment.MvpBaseFragment;
 import com.core.utils.CommonUtil;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
@@ -19,6 +20,7 @@ import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineLis
 import com.uas.appworks.activity.businessManage.businessMineList.BusinessMineListPresenterImpl;
 import com.uas.appworks.adapter.BusinessMineAdapter;
 import com.uas.appworks.model.bean.BusinessMineChildBean;
+import com.uas.appworks.model.bean.CommonColumnsBean;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -33,8 +35,11 @@ import java.util.Map;
 public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListContract.IBusinessMineListPresenter>
         implements BusinessMineListContract.IBusinessMineListView {
     private static final String ARGUMENTS_BUSINESS_WHICHPAGE = "whichPage";
+    private static final String ARGUMENTS_BUSINESS_BCCODE = "bc_code";
+
     public static final int FLAG_BUSINESS_CHARGE = 1;
     public static final int FLAG_BUSINESS_BRANCH = 2;
+    public static final int FLAG_BUSINESS_ASSOCIATED = 3;
 
     private RecyclerView mRecyclerView;
     private View mEmptyView;
@@ -47,6 +52,7 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
     private int mPageIndex = 1;
     private int mPageSize = 20;
     private int mWhichPage;
+    private String mBcCode;
 
     public static BusinessMineListFragment newInstance(int whichPage) {
         BusinessMineListFragment businessMineListFragment = new BusinessMineListFragment();
@@ -56,6 +62,15 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
         return businessMineListFragment;
     }
 
+    public static BusinessMineListFragment newInstance(int whichPage, String bc_code) {
+        BusinessMineListFragment businessMineListFragment = new BusinessMineListFragment();
+        Bundle bundle = new Bundle();
+        bundle.putInt(ARGUMENTS_BUSINESS_WHICHPAGE, whichPage);
+        bundle.putString(ARGUMENTS_BUSINESS_BCCODE, bc_code);
+        businessMineListFragment.setArguments(bundle);
+        return businessMineListFragment;
+    }
+
     @Override
     protected int getLayout() {
         return R.layout.fragment_business_mine_list;
@@ -72,11 +87,18 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
         Bundle arguments = getArguments();
         if (arguments != null) {
             mWhichPage = arguments.getInt(ARGUMENTS_BUSINESS_WHICHPAGE);
+            mBcCode = arguments.getString(ARGUMENTS_BUSINESS_BCCODE);
         } else {
             mWhichPage = FLAG_BUSINESS_CHARGE;
         }
 
         mRefreshLayout = $(R.id.business_mine_list_refresh);
+        if (mWhichPage == FLAG_BUSINESS_ASSOCIATED) {
+            mRefreshLayout.setEnableRefresh(false);
+            mRefreshLayout.setEnableLoadMore(false);
+            mCaller = "BusinessProductQuery";
+        }
+
         mRecyclerView = $(R.id.business_mine_list_rv);
         mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
 //        mRecyclerView.setNestedScrollingEnabled(false);
@@ -107,11 +129,23 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
         mBusinessMineAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
             @Override
             public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
+                if (mWhichPage == FLAG_BUSINESS_ASSOCIATED) {
+                    return;
+                }
+                String page = "";
+                if (mWhichPage == FLAG_BUSINESS_BRANCH) {
+                    page = "businessBranch";
+                } else if (mWhichPage == FLAG_BUSINESS_CHARGE) {
+                    page = "businessCharge";
+                }
                 BusinessMineChildBean businessMineChildBean = mBusinessMineBeans.get(position);
                 startActivity(new Intent(mContext, BusinessDetailNewActivity.class)
                         .putExtra("id", businessMineChildBean.getId())
                         .putExtra("type", businessMineChildBean.getBcType())
-                        .putExtra("stage", businessMineChildBean.getStageCode()));
+                        .putExtra("stage", businessMineChildBean.getStageCode())
+                        .putExtra("bc_code", businessMineChildBean.getBcCode())
+                        .putExtra("bc_description", businessMineChildBean.getBcDescription())
+                        .putExtra(Constants.FLAG.COMMON_WHICH_PAGE, page));
             }
         });
     }
@@ -122,6 +156,8 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
             mCondition = "bc_domancode=\'" + CommonUtil.getEmcode() + "\'";
         } else if (mWhichPage == FLAG_BUSINESS_BRANCH) {
             mCondition = "(bc_domancode in (select em_code from employee left join job on em_defaulthsid=jo_subof where jo_subof=(select em_defaulthsid from employee where em_code =\'" + CommonUtil.getEmcode() + "\')))";
+        } else if (mWhichPage == FLAG_BUSINESS_ASSOCIATED) {
+            mCondition = "bp_bscode=\'" + mBcCode + "\'";
         }
 
         loadListData();
@@ -157,7 +193,7 @@ public class BusinessMineListFragment extends MvpBaseFragment<BusinessMineListCo
     }
 
     @Override
-    public void requestListSuccess(List<BusinessMineChildBean> businessMineBeans) {
+    public void requestListSuccess(List<BusinessMineChildBean> businessMineBeans, List<CommonColumnsBean> commonColumnsBeans) {
         if (mPageIndex == 1) {
             mBusinessMineBeans.clear();
         }

+ 18 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/BusinessMineChildBean.java

@@ -18,6 +18,8 @@ public class BusinessMineChildBean implements MultiItemEntity {
     private int mId;
     private String mBcType;
     private String mStageCode;
+    private String mBcCode;
+    private String mBcDescription;
 
     public void setItemType(int itemType) {
         mItemType = itemType;
@@ -71,6 +73,22 @@ public class BusinessMineChildBean implements MultiItemEntity {
         mStageCode = stageCode;
     }
 
+    public String getBcCode() {
+        return mBcCode;
+    }
+
+    public void setBcCode(String bcCode) {
+        mBcCode = bcCode;
+    }
+
+    public String getBcDescription() {
+        return mBcDescription;
+    }
+
+    public void setBcDescription(String bcDescription) {
+        mBcDescription = bcDescription;
+    }
+
     @Override
     public int getItemType() {
         return mItemType;

+ 55 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/ChangeStageBean.java

@@ -0,0 +1,55 @@
+package com.uas.appworks.model.bean;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/22 15:20
+ */
+public class ChangeStageBean {
+    private String name;//字段名
+    private int isRequired;//必填
+    private String value;//编辑值
+    private String stageKey;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getIsRequired() {
+        return isRequired;
+    }
+
+    public void setIsRequired(int isRequired) {
+        this.isRequired = isRequired;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getStageKey() {
+        return stageKey;
+    }
+
+    public void setStageKey(String stageKey) {
+        this.stageKey = stageKey;
+    }
+
+    @Override
+    public String toString() {
+        return "ChangeStageBean{" +
+                "name='" + name + '\'' +
+                ", isRequired=" + isRequired +
+                ", value='" + value + '\'' +
+                ", stageKey='" + stageKey + '\'' +
+                '}';
+    }
+}

+ 74 - 0
app_modular/appworks/src/main/java/com/uas/appworks/model/bean/CommonColumnsBean.java

@@ -0,0 +1,74 @@
+package com.uas.appworks.model.bean;
+
+/**
+ * @author RaoMeng
+ * @describe
+ * @date 2018/9/24 17:15
+ */
+public class CommonColumnsBean {
+
+
+    /**
+     * dataIndex : bc_address
+     * caption : 企业地址
+     * width : 200
+     * type : null
+     * format : null
+     * render : null
+     */
+
+    private String dataIndex;
+    private String caption;
+    private int width;
+    private String type;
+    private String format;
+    private String render;
+
+    public String getDataIndex() {
+        return dataIndex;
+    }
+
+    public void setDataIndex(String dataIndex) {
+        this.dataIndex = dataIndex;
+    }
+
+    public String getCaption() {
+        return caption;
+    }
+
+    public void setCaption(String caption) {
+        this.caption = caption;
+    }
+
+    public int getWidth() {
+        return width;
+    }
+
+    public void setWidth(int width) {
+        this.width = width;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getFormat() {
+        return format;
+    }
+
+    public void setFormat(String format) {
+        this.format = format;
+    }
+
+    public String getRender() {
+        return render;
+    }
+
+    public void setRender(String render) {
+        this.render = render;
+    }
+}

+ 66 - 0
app_modular/appworks/src/main/res/layout/activity_business_change_stage.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white"
+    android:orientation="vertical"
+    android:padding="10dp">
+
+    <android.support.v4.widget.NestedScrollView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="当前阶段:"
+                    android:textColor="#333"
+                    android:textSize="14sp" />
+
+                <TextView
+                    android:id="@+id/business_change_stage_current_stage_tv"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textColor="#666"
+                    android:textSize="15sp"
+                    tools:text="样品报价" />
+            </LinearLayout>
+
+            <com.core.widget.ClearEditText
+                android:id="@+id/business_change_stage_remarks_et"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:background="@drawable/shape_b2b_detail_edittext"
+                android:gravity="top"
+                android:hint="处理结果(必填)"
+                android:minHeight="100dp"
+                android:padding="6dp"
+                android:textSize="12sp" />
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/business_change_stage_rv"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp" />
+        </LinearLayout>
+    </android.support.v4.widget.NestedScrollView>
+
+    <TextView
+        android:id="@+id/business_change_stage_confirm_btn"
+        style="@style/commonButtonStyle"
+        android:text="@string/app_dialog_ok" />
+</LinearLayout>

+ 2 - 1
app_modular/appworks/src/main/res/layout/activity_business_company_list.xml

@@ -10,7 +10,8 @@
     <com.core.widget.VoiceSearchView
         android:id="@+id/business_company_list_vsv"
         android:layout_width="match_parent"
-        android:layout_height="48dp" />
+        android:layout_height="48dp"
+        android:imeOptions="actionSearch" />
 
     <com.scwang.smartrefresh.layout.SmartRefreshLayout
         android:id="@+id/business_company_list_refresh"

+ 3 - 1
app_modular/appworks/src/main/res/layout/activity_business_detail_new.xml

@@ -142,10 +142,12 @@
     </android.support.v4.widget.NestedScrollView>
 
     <LinearLayout
+        android:id="@+id/business_detail_new_bottom_ll"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:gravity="center"
-        android:padding="15dp">
+        android:padding="15dp"
+        android:visibility="gone">
 
         <TextView
             android:id="@+id/business_detail_new_add_schedule_tv"

+ 3 - 0
app_modular/appworks/src/main/res/layout/activity_business_manage_home.xml

@@ -65,6 +65,7 @@
                 </LinearLayout>
 
                 <LinearLayout
+                    android:id="@+id/business_manage_home_distribution_ll"
                     style="@style/business_manage_header_item">
 
                     <ImageView
@@ -82,6 +83,7 @@
                 </LinearLayout>
 
                 <LinearLayout
+                    android:id="@+id/business_manage_home_grap_ll"
                     style="@style/business_manage_header_item">
 
                     <ImageView
@@ -110,6 +112,7 @@
                 android:paddingTop="0dp">
 
                 <LinearLayout
+                    android:id="@+id/business_manage_home_funnel_ll"
                     style="@style/business_manage_header_item">
 
                     <ImageView

+ 12 - 0
app_modular/appworks/src/main/res/layout/fragment_business_associated.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/business_associated_rv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>

+ 2 - 2
app_modular/appworks/src/main/res/layout/item_business_mine_child.xml

@@ -9,7 +9,7 @@
     <TextView
         android:id="@+id/business_mine_child_caption_tv"
         android:layout_width="0dp"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:layout_marginLeft="10dp"
         android:layout_weight="2"
         android:background="@color/white"
@@ -24,7 +24,7 @@
     <TextView
         android:id="@+id/business_mine_child_value_tv"
         android:layout_width="0dp"
-        android:layout_height="wrap_content"
+        android:layout_height="match_parent"
         android:layout_marginRight="10dp"
         android:layout_weight="5"
         android:background="@color/white"

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

@@ -2,7 +2,7 @@
 <android.support.constraint.ConstraintLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="6dp"
+    android:layout_height="8dp"
     android:background="#f3f2f0">
 
 </android.support.constraint.ConstraintLayout>

+ 14 - 0
app_modular/appworks/src/main/res/layout/item_business_stage_menu.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<TextView
+    android:id="@+id/item_business_stage_tv"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:padding="10dp"
+    android:textColor="#333"
+    android:textSize="14sp"
+    tools:text="阶段一">
+
+</TextView>

+ 30 - 0
app_modular/appworks/src/main/res/layout/item_change_stage.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:paddingBottom="10dp"
+    android:paddingTop="10dp">
+
+    <TextView
+        android:id="@+id/item_change_stage_caption_tv"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:textColor="#333"
+        android:textSize="14sp"
+        tools:text="名称" />
+
+    <com.core.widget.ClearEditText
+        android:id="@+id/item_change_stage_value_tv"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="3"
+        android:background="@drawable/shape_b2b_detail_edittext"
+        android:hint="请输入(必填)"
+        android:padding="6dp"
+        android:textSize="12sp" />
+
+</LinearLayout>

+ 29 - 0
app_modular/appworks/src/main/res/layout/pop_business_stage_menu.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/white"
+    android:maxHeight="320dp"
+    android:orientation="vertical">
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/pop_business_stage_rv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="8dp"
+        android:background="#f2f2f2" />
+
+    <TextView
+        android:id="@+id/pop_business_stage_cancel_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:padding="10dp"
+        android:text="@string/cancel"
+        android:textColor="#333"
+        android:textSize="14sp" />
+</LinearLayout>