Sfoglia il codice sorgente

开始更改主界面ui界面

Arison 9 anni fa
parent
commit
530d710e46

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/crm/Business.java

@@ -11,6 +11,7 @@ public class Business {
     联系方式: XXXX
     备注:        XXXX*/
     private int bc_id;
+    private String code;
     private String num;
     private String name;
     private String leader;
@@ -112,4 +113,12 @@ public class Business {
     public void setBc_id(int bc_id) {
         this.bc_id = bc_id;
     }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
 }

+ 29 - 24
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java

@@ -18,6 +18,7 @@ import android.widget.Button;
 import android.widget.HorizontalScrollView;
 import android.widget.ListView;
 import android.widget.PopupWindow;
+import android.widget.Scroller;
 import android.widget.SimpleAdapter;
 
 import com.alibaba.fastjson.JSON;
@@ -54,6 +55,8 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
     private Button bt_create;
     @ViewInject(R.id.bt_manage)
     private Button bt_manage;
+    @ViewInject(R.id.sv_funnel)
+    private Scroller sv_funnel;
     @ViewInject(R.id.bt_go)
     private Button bt_go;
     @ViewInject(R.id.funnelview)
@@ -96,6 +99,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
         bt_manage.setOnClickListener(this);
         bt_go.setOnClickListener(this);
         bt_create.setOnClickListener(this);
+        lv_grid_dispaly.setFocusable(false);
     }
 
     public void initData() {
@@ -109,23 +113,23 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
 
 
         List<Integer> moneys = new ArrayList<>();
-        int x1 = 5000;
+        int x1 =444;
         moneys.add(x1);
-        int x2 = 4000;
+        int x2 = 1;
         moneys.add(x2);
-        int x3 = 5000;
+        int x3 = 5;
         moneys.add(x3);
-        int x4 = 4000;
+        int x4 = 1;
         moneys.add(x4);
-        int x5 = 5000;
+        int x5 = 1;
         moneys.add(x5);
-        int x6 = 4000;
+        int x6 = 40;
         moneys.add(x6);
-        int x7 = 4000;
+        int x7 = 5;
         moneys.add(x7);
-        int x8 = 4000;
+        int x8 = 10;
         moneys.add(x8);
-        int x9 = 4000;
+        int x9 = 5;
         moneys.add(x9);
         ArrayList<String> colors = new ArrayList<>();
         colors.add("#CC99FF");
@@ -138,8 +142,9 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
         colors.add("#CC99FF");
         colors.add("#CC99FF");
 //        funnelView.setColors(colors);/**/
-        funnelView.setData(moneys, x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9,colors);
+        funnelView.setData(moneys, x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9, colors);
         funnelView.animateY();
+       
     }
 
 
@@ -200,7 +205,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                         items.add("颜色");
                         items.add("序号");
                         items.add("商机阶段");
-                        items.add("商机阶段");
+                        items.add("商机数量");
                         items.add("商机转化率");
                         gridlists.add(items);
                         for (int i = 0; i < chances.size(); i++) {
@@ -227,10 +232,11 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                     layout.setVisibility(View.VISIBLE);
                     Log.i(TAG, "handleMessage:colors:" + JSON.toJSONString(colors));
                     Log.i(TAG, "handleMessage:counts:" + JSON.toJSONString(counts) );
-                    Log.i(TAG, "handleMessage:countToatal:" +countToatal );
+                    Log.i(TAG, "handleMessage:countToatal:" + countToatal);
 //                    funnelView.setColors(colors);
-                    funnelView.setData(counts, countToatal,colors);
+                    funnelView.setData(counts, countToatal, colors);
                     funnelView.animateY();
+                 
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
@@ -272,37 +278,37 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                     switch (position) {
-                        case 0:
+                    /*    case 0:
                             String month = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getTimesMonthmorning());
                             sendHttpResquest("to_char(bc_recorddate,'yyyymm')=" + month);
 
-                            break;
-                        case 1://本月
-                            month = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getTimesMonthmorning());
+                            break;*/
+                        case 0://本月
+                           String  month = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getTimesMonthmorning());
                             sendHttpResquest("to_char(bc_recorddate,'yyyymm')=" + month);
 
                             break;
-                        case 2://上月
+                        case 1://上月
                             String lastMonth = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getLastMonthStartMorning());
                             sendHttpResquest("to_char(bc_recorddate,'yyyymm')=" + lastMonth);
 
                             break;
-                        case 3://本季度
+                        case 2://本季度
                             String quarterStart = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getCurrentQuarterStartTime());
                             String quarterEnd = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getCurrentQuarterEndTime());
 
                             sendHttpResquest("to_char(bc_recorddate,'yyyymm')>=" + quarterStart + " and to_char(bc_recorddate,'yyyymm')< " + quarterEnd);
                             break;
-                        case 4://上季度
+                        case 3://上季度
                             String preStart = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getPreQuarterStartTime());
                             String preEnd = new SimpleDateFormat("yyyyMM").format(DateFormatUtil.getPreQuarterEndTime());
                             sendHttpResquest("to_char(bc_recorddate,'yyyymm')>=" + preStart + " and to_char(bc_recorddate,'yyyymm')< " + preEnd);
                             break;
-                        case 5://本年度
+                        case 4://本年度
                             String currentYear = new SimpleDateFormat("yyyy").format(DateFormatUtil.getCurrentYearStartTime());
                             sendHttpResquest("to_char(bc_recorddate,'yyyy')=" + currentYear);
                             break;
-                        case 6://上年度
+                        case 5://上年度
                             String preYear = new SimpleDateFormat("yyyy").format(DateFormatUtil.getPreYearStartTime());
                             sendHttpResquest("to_char(bc_recorddate,'yyyy')=" + preYear);
                             break;
@@ -333,8 +339,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
     private List<Map<String, Object>> getPopData() {
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
         Map<String, Object> map = new HashMap<String, Object>();
-        map.put("item_name", "时间");
-        list.add(map);
+      
 
         map = new HashMap<String, Object>();
         map.put("item_name", "本月");

+ 90 - 50
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java

@@ -60,7 +60,9 @@ public class BusinessDetailActivty extends BaseActivity {
     private ClearEditText search_edit;
     private String formCondition;
     private String gridCondition;
-    private int page=1;
+    private int page = 1;
+    private String bc_code;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -92,6 +94,7 @@ public class BusinessDetailActivty extends BaseActivity {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 final BussinessDetailAdapter.ViewHolder holder = (BussinessDetailAdapter.ViewHolder) view.getTag();
+              
                 startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class)
                                 .putExtra("type", holder.type)
                                 .putExtra("formCondition", formCondition + "=" + holder.bc_id)
@@ -121,11 +124,13 @@ public class BusinessDetailActivty extends BaseActivity {
             }
         });
     }
+
     int type;
+
     private void initData() {
         sendHttpResquest(Constants.HTTP_SUCCESS_INIT, page);
         Intent intent = getIntent();
-         type = 0;
+        type = 0;
         if (intent != null) {
             type = intent.getIntExtra("bt_type", 0);
         }
@@ -201,7 +206,7 @@ public class BusinessDetailActivty extends BaseActivity {
             } else {
                 holder = (ViewHolder) convertView.getTag();
             }
-            holder.bc_id=mdata.get(position).getBc_id();
+            holder.bc_id = mdata.get(position).getBc_id();
             holder.type = mdata.get(position).getType();
             holder.tv_num.setText(mdata.get(position).getNum());
             holder.tv_name.setText(mdata.get(position).getName());
@@ -220,13 +225,18 @@ public class BusinessDetailActivty extends BaseActivity {
                 holder.bt_event.setVisibility(View.VISIBLE);
                 holder.bt_event.setText("分配");
             }
-           // holder.tv_date.setText(mdata.get(position).getDate());
+            // holder.tv_date.setText(mdata.get(position).getDate());
             holder.bt_event.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
                     if (mdata.get(position).getType() == 1) {
-                        startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class));
+                        startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class)
+                                .putExtra("type", 1)
+                                .putExtra("formCondition", formCondition + "=" + mdata.get(position).getBc_id())
+                                        .putExtra("gridCondition", gridCondition + "=" + mdata.get(position).getBc_id())
+                        );
                     } else if (mdata.get(position).getType() == 2) {
+                        bc_code = mdata.get(position).getNum();
                         startActivityForResult(new Intent(ct, DbfindListActivity.class), 1);
                     }
                 }
@@ -241,23 +251,22 @@ public class BusinessDetailActivty extends BaseActivity {
                 protected FilterResults performFiltering(CharSequence constraint) {
                     //过滤数据
                     FilterResults searchResults = new FilterResults();
-                    
-                    if (constraint == null || constraint.length() == 0){
-                        searchResults.values=mData;
-                        searchResults.count=mData.size();
-                    }else{
+
+                    if (constraint == null || constraint.length() == 0) {
+                        searchResults.values = mData;
+                        searchResults.count = mData.size();
+                    } else {
                         ArrayList<String> searchKey = new ArrayList<String>();
-                        ArrayList<Business> newBusiness=new ArrayList<>();
-                        for (Business business:mdata){
-                            String num=business.getNum();
-                            String name=business.getName();
-                            String source=business.getSource();
-                            String links=business.getPhone();
-                            String remark=business.getNote();
-                            String date=business.getDate();
-                            if (num.contains(constraint)||name.contains(constraint)||source.contains(constraint)
-                                    ||links.contains(constraint)||remark.contains(constraint)||date.contains(constraint))
-                            {
+                        ArrayList<Business> newBusiness = new ArrayList<>();
+                        for (Business business : mdata) {
+                            String num = business.getNum();
+                            String name = business.getName();
+                            String source = business.getSource();
+                            String links = business.getPhone();
+                            String remark = business.getNote();
+                            String date = business.getDate();
+                            if (num.contains(constraint) || name.contains(constraint) || source.contains(constraint)
+                                    || links.contains(constraint) || remark.contains(constraint) || date.contains(constraint)) {
                                 newBusiness.add(business);
                             }
 //                            searchKey.add(num);
@@ -267,18 +276,18 @@ public class BusinessDetailActivty extends BaseActivity {
 //                            searchKey.add(remark);
 //                            searchKey.add(date);
                         }
-                        searchResults.values=newBusiness;
-                        searchResults.count=newBusiness.size();
+                        searchResults.values = newBusiness;
+                        searchResults.count = newBusiness.size();
                     }
                     return searchResults;
                 }
 
                 @Override
                 protected void publishResults(CharSequence constraint, FilterResults results) {
-                 //装配数据
-                    mdata= (ArrayList<Business>) results.values;
+                    //装配数据
+                    mdata = (ArrayList<Business>) results.values;
                     if (mAdapter.getCount() == 0) {
-                       
+
                     }
                     notifyDataSetChanged();
                 }
@@ -299,36 +308,39 @@ public class BusinessDetailActivty extends BaseActivity {
             Button bt_event;
             int type;
         }
-        
-        
+
+
     }
 
 
-    private Handler mHandler=new Handler(){
+    private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what){
+            switch (msg.what) {
                 case Constants.HTTP_SUCCESS_INIT:
                     progressDialog.dismiss();
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
-                    formCondition=JSON.parseObject(msg.getData().getString("result")).getString("keyField");
-                    gridCondition=JSON.parseObject(msg.getData().getString("result")).getString("pfField");
-                    JSONArray array= JSON.parseObject(msg.getData().getString("result")).getJSONArray("listdata");
-                    if(!array.isEmpty()){
-                        for (int i=0;i<array.size();i++){
-                            Business model=new Business();
+                    formCondition = JSON.parseObject(msg.getData().getString("result")).getString("keyField");
+                    gridCondition = JSON.parseObject(msg.getData().getString("result")).getString("pfField");
+                    if (StringUtils.isEmpty(formCondition))formCondition="bc_id";
+                    if (StringUtils.isEmpty(gridCondition))gridCondition="bc_id";
+                    JSONArray array = JSON.parseObject(msg.getData().getString("result")).getJSONArray("listdata");
+                    if (!array.isEmpty()) {
+                        for (int i = 0; i < array.size(); i++) {
+                            Business model = new Business();
                             model.setNum(array.getJSONObject(i).getString("bc_code"));
                             model.setDate(array.getJSONObject(i).getString("bc_recorddate"));
                             model.setName(array.getJSONObject(i).getString("bc_description"));
                             model.setPhone(array.getJSONObject(i).getString("bc_tel"));
                             model.setNote(array.getJSONObject(i).getString("bc_remark"));
                             model.setSource(array.getJSONObject(i).getString("bc_from"));
-                            if (array.getJSONObject(i).getObject("bc_id",Object.class) instanceof Integer)
-                            { model.setBc_id(array.getJSONObject(i).getInteger("bc_id"));}
+                            if (array.getJSONObject(i).getObject("bc_id", Object.class) instanceof Integer) {
+                                model.setBc_id(array.getJSONObject(i).getInteger("bc_id"));
+                            }
                             model.setType(type);
                             mData.add(model);
                         }
-                    }else{
+                    } else {
                         ToastMessage("数据加载完毕!");
                     }
 //                    "bc_tel":"",
@@ -340,7 +352,7 @@ public class BusinessDetailActivty extends BaseActivity {
 //                        "bc_id":730
                     mAdapter = new BussinessDetailAdapter(ct, mData);
                     mlist.setAdapter(mAdapter);
-                    if (page!=1) {
+                    if (page != 1) {
                         mlist.getRefreshableView().setSelection(mAdapter.getCount());
                     }
                     mlist.onRefreshComplete();
@@ -350,35 +362,63 @@ public class BusinessDetailActivty extends BaseActivity {
                     Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
                     mlist.onRefreshComplete();
                     break;
+                case BUSINESS_QIANG:
+                    Log.i(TAG, "handleMessage:" + msg.getData().getString("result"));
+                    progressDialog.dismiss();
+                    ToastMessage("抢商机成功!");
+                    startActivity(new Intent(ct, BusinessActivity.class));
+                    break;
+                case BUSINESS_FENPEI:
+                    progressDialog.dismiss();
+                    ToastMessage("分配商机成功!");
+                    startActivity(new Intent(ct, BusinessActivity.class));
+                    break;
             }
         }
     };
 
-    private void sendHttpResquest(int what,int page){
+    private void sendHttpResquest(int what, int page) {
         progressDialog.show();
-        String url= Constants.getAppBaseUrl(ct)+"mobile/common/list.action";
-        Map<String,Object> params=new HashMap<>();
-        if (page==1)mData.clear();
+        String url = Constants.getAppBaseUrl(ct) + "mobile/common/list.action";
+        Map<String, Object> params = new HashMap<>();
+        if (page == 1) mData.clear();
         params.put("page", page);
         params.put("pageSize", 10);
-        params.put("caller","BusinessChance");
-        params.put("condition", "1=1");
-        LinkedHashMap<String , Object> headers=new LinkedHashMap<>();
+        params.put("caller", "BusinessChance");
+        params.put("condition", "(bc_type='公有' or nvl(bc_type,' ')=' ')");
+        //bc_currentprocess=商机阶段
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
     }
 
+    private final int BUSINESS_FENPEI = 3;
+    private final int BUSINESS_QIANG = 2;
+
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        switch (requestCode){
+        switch (requestCode) {
             case 1:
                 if (data == null) {
                     return;
                 }
-                String en_name = data.getStringExtra("en_name");
-
+                String bt_doman = data.getStringExtra("en_name");
+                sendHttpBusinessQiang(BUSINESS_FENPEI, bc_code, bt_doman);
                 break;
         }
         super.onActivityResult(requestCode, resultCode, data);
     }
+
+
+    private void sendHttpBusinessQiang(int what, String bc_code, String bc_doman) {
+        progressDialog.show();
+        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/updateBusinessChanceDoman.action";
+        Map<String, Object> params = new HashMap<>();
+        params.put("bc_code", bc_code);
+        params.put("bc_doman", bc_doman);
+        params.put("bc_domancode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
+    }
 }

+ 6 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailInfoActivity.java

@@ -31,6 +31,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.DbfindListActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 
 import java.util.ArrayList;
@@ -132,9 +133,11 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
         bt_qiang.setOnClickListener(this);
         bt_fenpei.setOnClickListener(this);
     }
+
     private void initData() {
         sendHttpResquest(Constants.HTTP_SUCCESS_INIT, formCondition, gridCondition);
     }
+
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
@@ -152,7 +155,6 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                 break;
             case R.id.bt_fenpei:
                 startActivityForResult(new Intent(ct, DbfindListActivity.class), 1);
-                //sendHttpBusinessQiang(BUSINESS_FENPEI,bt_code,bt_doman);
                 break;
         }
     }
@@ -312,12 +314,12 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                     // ViewUtil.ToastMessage(ct, msg.getData().getString("result"));
                     progressDialog.dismiss();
                     ToastMessage("抢商机成功!");
-                    startActivity(new Intent(ct, BusinessActivity.class));
+                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",1));
                     break;
                 case BUSINESS_FENPEI:
                     progressDialog.dismiss();
                     ToastMessage("分配商机成功!");
-                    startActivity(new Intent(ct, BusinessActivity.class));
+                    startActivity(new Intent(ct, BusinessDetailActivty.class).putExtra("bt_type",2));
                     break;
                 case BUSINESS_RELEASE:
                     ToastMessage("商机释放成功!");
@@ -338,7 +340,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
         String url = Constants.getAppBaseUrl(ct) + "mobile/common/getPanel.action";
         Map<String, Object> params = new HashMap<>();
         params.put("caller", "BusinessChance");
-        params.put("formCondition", formCondition);
+        params.put("formCondition", "bc_id"+formCondition);
         params.put("gridCondition", gridCondition);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));

+ 58 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java

@@ -31,7 +31,9 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.crm.Business;
+import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.UserSelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
@@ -59,6 +61,12 @@ public class CustomerListActivity extends BaseActivity {
     private TextView tv_count_end;
     @ViewInject(R.id.tv_count_total)
     private TextView tv_count_total;
+    @ViewInject(R.id.tv_name)
+    private TextView tv_name;
+    @ViewInject(R.id.tv_department)
+    private TextView tv_department;
+    @ViewInject(R.id.tv_position)
+    private TextView tv_position;
     @ViewInject(R.id.list_business)
     private PullToRefreshListView mlist;
     private ArrayList<Business> mData = new ArrayList<Business>();
@@ -77,6 +85,7 @@ public class CustomerListActivity extends BaseActivity {
         ct = this;
         ViewUtils.inject(this);
         getSupportActionBar().setTitle("客户");
+        tv_name.setText(CommonUtil.getSharedPreferences(ct,"erp_username"));
     }
 
     private void initListener() {
@@ -85,12 +94,12 @@ public class CustomerListActivity extends BaseActivity {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                 page=1;
-                sendHttpResquest(Constants.HTTP_SUCCESS_INIT,0,page);
+                sendHttpResquest(Constants.HTTP_SUCCESS_INIT,0,page,isSelected,"");
             }
 
             @Override
             public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
-                sendHttpResquest(Constants.HTTP_SUCCESS_INIT,0,++page);
+                sendHttpResquest(Constants.HTTP_SUCCESS_INIT,0,++page,isSelected,"");
             }
         });
         mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@@ -114,7 +123,8 @@ public class CustomerListActivity extends BaseActivity {
     }
 
     private void initData() {
-        sendHttpResquest(Constants.HTTP_SUCCESS_INIT,0,page);
+        em_code= CommonUtil.getSharedPreferences(ct,"erp_username");
+        sendHttpResquest(Constants.HTTP_SUCCESS_INIT,kind,page,0,"");
     }
 
     @Override
@@ -228,7 +238,27 @@ public class CustomerListActivity extends BaseActivity {
             plist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-
+                   switch (position){
+                       case 0:
+                           em_code=  CommonUtil.getSharedPreferences(ct,"erp_username");
+                           isSelected=0;
+                           page=1;
+                           kind=0;
+                           sendHttpResquest(Constants.HTTP_SUCCESS_INIT,kind,page,isSelected,"");
+                           popupWindow.dismiss();
+                           break;
+                       case 1:
+                           Intent intent = new Intent(ct, UserSelectActivity.class);
+                           intent.putExtra("single", true);
+                           intent.putExtra("net", true);
+                           startActivityForResult(intent, 0x11);
+                           popupWindow.dismiss();
+                           break;
+                       case 2:
+                           popupWindow.dismiss();
+                           break;
+                       
+                   }
                 }
             });
             popupWindow = new PopupWindow(view, windowManager.getDefaultDisplay().getWidth() / 3, windowManager.getDefaultDisplay().getHeight() / 3);
@@ -308,20 +338,40 @@ public class CustomerListActivity extends BaseActivity {
         }
     };
 
-    private void sendHttpResquest(int what,int kind,int page){
+    private void sendHttpResquest(int what,int kind,int page,int isSelected,String emplist){
         progressDialog.show();
         String url= Constants.getAppBaseUrl(ct)+"/mobile/crm/getCustomerDetail.action";
         Map<String,Object> params=new HashMap<>();
-        params.put("emcode", CommonUtil.getSharedPreferences(ct,"erp_username"));
+        params.put("emcode", em_code);
         params.put("page", page);
         params.put("pageSize", "10");
+        params.put("isSelected",isSelected);
+        params.put("emplist",emplist);
         params.put("type", "2");
         params.put("kind",kind);
         LinkedHashMap<String , Object> headers=new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
     }
-
-
+    
+    private int isSelected=0;
+    private int kind;
+    private String em_code;
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (data == null) return;
+        if (requestCode == 0x11 && 0x11 == resultCode) {
+            MeetUserEntity entity = data.getParcelableExtra("data");
+            if (entity == null || entity.getEmCode() == null) return;
+            isSelected=1;
+            page=1;
+            kind=0;
+            em_code=entity.getEmCode();
+            tv_name.setText(entity.getName());
+            tv_department.setText(entity.getImId());
+            tv_position.setText("");
+            sendHttpResquest(Constants.HTTP_SUCCESS_INIT,kind,page,isSelected,em_code);
+        }
+    }
 
 }

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/SalesRankingActivity.java

@@ -115,7 +115,7 @@ public class SalesRankingActivity extends BaseActivity {
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.sale_date_select:
-                DatePicker picker = new DatePicker(this);
+                DatePicker picker = new DatePicker(this,DatePicker.YEAR_MONTH);
                 picker.setRange(1950, 2030);
                 picker.setAnimationStyle(R.style.Animation_CustomPopup);
                 picker.setSelectedItem(

+ 28 - 43
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java

@@ -15,6 +15,7 @@ import android.view.View;
 import android.view.animation.AccelerateDecelerateInterpolator;
 
 import com.alibaba.fastjson.JSON;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,40 +25,39 @@ import java.util.List;
  */
 @SuppressLint("NewApi")
 public class FunnelView extends View implements ValueAnimator.AnimatorUpdateListener {
-    public static final float ANGLE_SCALE = 3.0f;
+    public static final float ANGLE_SCALE = 2.0f;
     private List<Integer> mMoneys = new ArrayList<>();
     private int maxMoney;
-
     private float phaseX = 1f;
     private int textAlpha = 255;
-
     private ArrayList<Paint> mPaints = new ArrayList<>();
-    //颜色值设置
     private ArrayList<String> colors = new ArrayList<>();
-
-
     private Paint mPaintLine;
     private Paint mPaintText;
-
-    private ArrayList<Path> mPaths = new ArrayList<>();
     private float mTotalHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics());
     private ArrayList<Float> mPathHeights = new ArrayList<>();
     private ArrayList<Float> mPathAngleWidths = new ArrayList<>();
 
-    private float maxWidth = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 330, getResources().getDisplayMetrics());
-    private float maxLineH = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 90, getResources().getDisplayMetrics());
-    private float minLineH = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
+    private float maxWidth = 
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 330, getResources().getDisplayMetrics());
+    private float maxLineH = 
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics());
+    private float minLineH = 
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
 
-    private float startOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
-    private float startOffsetY = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
+    private float startOffsetX =
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
+    private float startOffsetY =
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics());
 
-    private float lineStartOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
-    private float textStartOffsetX = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 7, getResources().getDisplayMetrics());
+    private float lineStartOffsetX =
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
+    private float textStartOffsetX =
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 7, getResources().getDisplayMetrics());
 
     private float mLastX;
     private float mLastY;
     private float mLastWidth;
-
     private int maxHight;
 
     public FunnelView(Context context) {
@@ -77,33 +77,32 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         this.colors = colors;
     }
 
-    /**
-     * @desc:设置数据
-     * @author:Arison on 2016/8/15
-     */
     public void setData(List<Integer> moneys, int maxMoney,ArrayList<String> colors) {
         this.mMoneys = moneys;
         this.maxMoney = maxMoney;
         this.colors=colors;
         init();
         calculate();
-        invalidate();
+        requestLayout();
     }
 
     private void calculate() {
+        Log.i("Arison", "setData:moneys:" + JSON.toJSONString(mMoneys));
+        Log.i("Arison", "setData:maxMoney:" + maxMoney);
+        mPathHeights.clear();
+        mPathAngleWidths.clear();
         for (int i = 0; i < mMoneys.size(); i++) {
             int money = mMoneys.get(i);
             float scale = (float) money / maxMoney;
-
             Float mPathHeight = mTotalHeight * scale * phaseX;
             if (mPathHeight < minLineH * phaseX) {
                 mPathHeight = minLineH * phaseX;
             } else if (mPathHeight > maxLineH * phaseX) {
                 mPathHeight = maxLineH * phaseX;
             }
-            mPathHeights.add(mPathHeight);
+            mPathHeights.add(i,mPathHeight);
             Float mPathAngleWidth = mPathHeight / ANGLE_SCALE;
-            mPathAngleWidths.add(mPathAngleWidth);
+            mPathAngleWidths.add(i,mPathAngleWidth);
         }
     }
 
@@ -131,24 +130,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
     }
 
     Path mPath;
-
-    private void draw1(Canvas canvas, Paint mPaint, Float mPathAngleWidth, Float mPathHeight) {
-      
-        mPath = new Path();
-        mPath.moveTo(mLastX, startOffsetY);
-        mPath.lineTo(mLastX + mLastWidth, startOffsetY);
-        mPath.lineTo(mLastX + mLastWidth - mPathAngleWidth, mLastY + mPathHeight);
-        mPath.lineTo(mLastX + mPathAngleWidth, mLastY + mPathHeight);
-
-        mPath.close();
-        canvas.drawPath(mPath, mPaint);
-
-        mLastWidth = mLastWidth - 2 * mPathAngleWidth;
-        mLastX = mLastX + mPathAngleWidth;
-        mLastY = mLastY + mPathHeight;
-    }
-
-
+    
     private void draw2(Canvas canvas, Paint mPaint, Float mPathAngleWidth, Float mPathHeight,int i) {
         if (i==0){
             mLastX = startOffsetX;
@@ -208,7 +190,11 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         if (specMode == MeasureSpec.EXACTLY) {
             size = specSize;
         } else {
+            
             size = maxHight + 20;
+            if (size<900)
+                size=900;
+            Log.i("Arison", "getMeasuredLength:size :" + size  );
         }
         return size;
     }
@@ -232,7 +218,6 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
 
     @Override
     public void onAnimationUpdate(ValueAnimator animation) {
-        Log.i("Arison", "onAnimationUpdate");
         calculate();
         postInvalidate();
     }

+ 27 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/wheel/DatePicker.java

@@ -9,6 +9,8 @@ import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.xzjmyk.pm.activity.util.DateFormatUtil;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -60,7 +62,8 @@ public class DatePicker extends WheelPicker {
     public DatePicker(Activity activity) {
         this(activity, YEAR_MONTH_DAY);
     }
-
+    
+    private boolean loadMoreMonth=false;
     /**
      * Instantiates a new Date picker.
      *
@@ -74,10 +77,23 @@ public class DatePicker extends WheelPicker {
         super(activity);
         this.mode = mode;
         for (int i = 2000; i <= 2050; i++) {
-            years.add(String.valueOf(i));
+            if (!loadMoreMonth){
+                if (i<=DateFormatUtil.getCurrentYear()) {
+                    years.add(String.valueOf(i));
+                }
+            }else{
+                years.add(String.valueOf(i));
+            }
+          
         }
         for (int i = 1; i <= 12; i++) {
-            months.add(DateUtils.fillZero(i));
+            if (!loadMoreMonth){
+                if (i<=DateFormatUtil.getCurrentMonth()) {
+                    months.add(DateUtils.fillZero(i));
+                }
+            }else{
+                months.add(DateUtils.fillZero(i));
+            }
         }
         for (int i = 1; i <= 31; i++) {
             days.add(DateUtils.fillZero(i));
@@ -106,7 +122,14 @@ public class DatePicker extends WheelPicker {
     public void setRange(int startYear, int endYear) {
         years.clear();
         for (int i = startYear; i <= endYear; i++) {
-            years.add(String.valueOf(i));
+            if (!loadMoreMonth){
+                if (i<=DateFormatUtil.getCurrentYear()){
+                    years.add(String.valueOf(i));
+                }
+            }else{
+                years.add(String.valueOf(i));
+            }
+          
         }
     }
 

+ 63 - 50
WeiChat/src/main/res/layout/activity_business.xml

@@ -1,60 +1,73 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout
+    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:fillViewport="true"
-    android:background="@color/crm_basic_bg">
-    <RelativeLayout
+    android:layout_height="match_parent">
+    <ScrollView
+        android:id="@+id/sv_funnel"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessActivity">
-        <LinearLayout
-            android:id="@+id/ll_funnel"
+        android:background="@color/crm_basic_bg"
+        android:layout_above="@+id/ll_bottom"
+        android:fillViewport="true">
+
+        <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical">
-            <com.xzjmyk.pm.activity.view.FunnelView
-                android:id="@+id/funnelview"
+            android:layout_height="match_parent"
+            tools:context="com.xzjmyk.pm.activity.ui.erp.activity.crm.BusinessActivity">
+
+            <LinearLayout
+                android:id="@+id/ll_funnel"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:minHeight="200dp"
-                android:maxHeight="10000dp"
-                android:background="#ffffff" />
-        </LinearLayout>
-
-        <include
-            android:id="@+id/inc_grid"
-            android:layout_below="@+id/ll_funnel"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            layout="@layout/inculde_grid_view"></include>
-
-        <LinearLayout
-            style="@style/LinearLayout_horizontal"
-            android:weightSum="4"
-            android:layout_below="@+id/inc_grid">
-
-            <Button
-                android:id="@+id/bt_create"
-                android:text="创建商机"
-                style="@style/crm_business_btn" />
-
-            <Button
-                android:id="@+id/bt_qiang"
-                android:text="抢商机"
-                style="@style/crm_business_btn" />
-
-            <Button
-                android:id="@+id/bt_manage"
-                android:text="商机分配"
-                style="@style/crm_business_btn" />
-
-            <Button
-                android:id="@+id/bt_go"
-                android:text="商机跟进"
-                style="@style/crm_business_btn" />
-        </LinearLayout>
+                android:orientation="vertical">
+
+                <com.xzjmyk.pm.activity.view.FunnelView
+                    android:id="@+id/funnelview"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:background="#ffffff"
+                    android:maxHeight="10000dp"
+                    android:minHeight="200dp" />
+            </LinearLayout>
+
+            <include
+                android:id="@+id/inc_grid"
+                layout="@layout/inculde_grid_view"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/ll_funnel"></include>
+
+
+        </RelativeLayout>
+
+
+    </ScrollView>
+    <LinearLayout
+        android:id="@+id/ll_bottom"
+        style="@style/LinearLayout_horizontal"
+        android:layout_alignParentBottom="true"
+        android:weightSum="4">
+        <Button
+            android:id="@+id/bt_create"
+            style="@style/crm_business_btn"
+            android:text="创建商机" />
+
+        <Button
+            android:id="@+id/bt_qiang"
+            style="@style/crm_business_btn"
+            android:text="抢商机" />
+
+        <Button
+            android:id="@+id/bt_manage"
+            style="@style/crm_business_btn"
+            android:text="商机分配" />
+
+        <Button
+            android:id="@+id/bt_go"
+            style="@style/crm_business_btn"
+            android:text="商机跟进" />
+    </LinearLayout>
     </RelativeLayout>
-</ScrollView>
 

+ 0 - 8
WeiChat/src/main/res/layout/activity_business_detail_info.xml

@@ -138,7 +138,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="会议销售"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_from" />
             </LinearLayout>
@@ -156,7 +155,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="158********"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_phone" />
             </LinearLayout>
@@ -174,7 +172,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="行业交流大会,****************************************"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_remark" />
             </LinearLayout>
@@ -215,7 +212,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="已分配"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_state" />
             </LinearLayout>
@@ -233,7 +229,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="深圳商机库"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_name" />
             </LinearLayout>
@@ -251,7 +246,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="***"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_recorder" />
             </LinearLayout>
@@ -269,7 +263,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="2016-06-27 14:43"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_recorddate" />
             </LinearLayout>
@@ -287,7 +280,6 @@
 
                 <TextView
                     android:layout_marginLeft="5dp"
-                    android:text="2016-06-27 14:43"
                     style="@style/TextView_VerticalCenter"
                     android:id="@+id/bc_recorddate_update" />
             </LinearLayout>

+ 7 - 13
WeiChat/src/main/res/layout/activity_client.xml

@@ -111,15 +111,6 @@
             </LinearLayout>
         </LinearLayout>
         <!--我的排名-->
-        <com.xzjmyk.pm.activity.view.shadow.ShadowLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_margin="5dp"
-            app:sl_shadowRadius="8dp"
-            app:sl_shadowColor="@color/shadow"
-            app:sl_dx="0dp"
-            app:sl_dy="2dp"
-            app:sl_cornerRadius="12dp">
         <LinearLayout
             android:layout_margin="0dp"
             style="@style/crm_ll_card">
@@ -219,7 +210,7 @@
                 </LinearLayout>
             </LinearLayout>
         </LinearLayout>
-        </com.xzjmyk.pm.activity.view.shadow.ShadowLayout>
+   
         <LinearLayout style="@style/crm_ll_card">
 
             <RelativeLayout
@@ -740,7 +731,8 @@
                 <TextView
                     style="@style/TextView_Basic"
                     android:text="深圳优软科技有限公司"
-                    android:layout_margin="20dp" />
+                    android:layout_margin="20dp"
+                    android:id="@+id/tv_customer_name" />
 
                 <LinearLayout
                     android:weightSum="2"
@@ -759,14 +751,16 @@
 
                         <TextView
                             style="@style/TextView_Basic"
-                            android:text="2016年07月1日 18:00" />
+                            android:text="2016年07月1日 18:00"
+                            android:id="@+id/tv_customer_lastTime" />
                     </LinearLayout>
 
                     <TextView
                         android:layout_weight="1"
                         android:gravity="center_vertical"
                         style="@style/TextView_Basic_match"
-                        android:text="距离上次跟进188天" />
+                        android:text="距离上次跟进188天"
+                        android:id="@+id/tv_customer_days" />
                 </LinearLayout>
             </LinearLayout>
 

+ 6 - 3
WeiChat/src/main/res/layout/activity_customer_list.xml

@@ -27,7 +27,8 @@
             <TextView
                 android:text="chensir"
                 android:textColor="@color/white"
-                style="@style/TextView_Basic" />
+                style="@style/TextView_Basic"
+                android:id="@+id/tv_name" />
 
             <LinearLayout
                 android:layout_width="wrap_content"
@@ -36,7 +37,8 @@
                 <TextView
                     android:text="深圳总部"
                     android:textColor="@color/white"
-                    style="@style/TextView_Basic" />
+                    style="@style/TextView_Basic"
+                    android:id="@+id/tv_department" />
 
                 <View style="@style/app_line_v_1dp" />
 
@@ -44,7 +46,8 @@
                     android:text="总经理"
                     android:layout_marginLeft="15dp"
                     android:textColor="@color/white"
-                    style="@style/TextView_Basic" />
+                    style="@style/TextView_Basic"
+                    android:id="@+id/tv_position" />
             </LinearLayout>
         </LinearLayout>