Browse Source

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into developer

RaoMeng 9 years ago
parent
commit
d4dbf850ff
19 changed files with 202 additions and 196 deletions
  1. 1 1
      WeiChat/build.gradle
  2. 2 2
      WeiChat/src/main/AndroidManifest.xml
  3. 5 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SubscriptionDao.java
  4. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java
  5. 15 49
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessActivity.java
  6. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java
  7. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessLessActivity.java
  8. 13 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/ClientActivity.java
  9. 6 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/SalesRankingActivity.java
  10. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java
  11. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  12. 3 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/HListViewOneAdapter.java
  13. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java
  14. 48 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  15. 35 45
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java
  16. 62 50
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java
  17. 1 1
      WeiChat/src/main/res/layout/activity_task_add.xml
  18. 1 0
      WeiChat/src/main/res/layout/fragment_outoffice.xml
  19. 1 0
      WeiChat/src/main/res/layout/item_grid_tv.xml

+ 1 - 1
WeiChat/build.gradle

@@ -4,7 +4,7 @@ apply plugin: 'com.getkeepsafe.dexcount'
 android {
     signingConfigs {
         config {
-            storeFile file('C:/CompanyProject/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

+ 2 - 2
WeiChat/src/main/AndroidManifest.xml

@@ -2,8 +2,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.xzjmyk.pm.activity"
-    android:versionCode="47"
-    android:versionName="4.7">
+    android:versionCode="48"
+    android:versionName="4.8">
 
     <uses-sdk
         android:minSdkVersion="11"

+ 5 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/db/dao/SubscriptionDao.java

@@ -9,8 +9,10 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
 import com.xzjmyk.pm.activity.ui.erp.db.DBOpenHelper;
+import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Created by gongpm on 2016/6/7.
@@ -34,7 +36,7 @@ public class SubscriptionDao {
     }
 
     //添加多个数据
-    public long addMessage(ArrayList<SubscriptionMessage> messages, String name) {
+    public long addMessage(List<SubscriptionMessage> messages, String name) {
         long k = 0;
         SQLiteDatabase db = sqliteHelper.getWritableDatabase();
         db.beginTransaction();
@@ -85,12 +87,12 @@ public class SubscriptionDao {
     public long deleteMessage(long date, long endDate, String name) {
         long k = 0;
         SQLiteDatabase db = sqliteHelper.getWritableDatabase();
-        String sql = "DELETE FROM SubscriptionMessage WHERE createdate_ > " + date + " and   createdate_ <" + endDate + " and name=" + name;
         try {
-            String where = "createdate_>?,createdate_<=?";
+            String where = "createdate_>? and createdate_<=?";
             String[] whereArg = {date + "", endDate + ""};
             k = db.delete(titleName, where, whereArg);
         } catch (SQLException e) {
+            e.printStackTrace();
         } finally {
             db.close();
         }

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/MainActivity.java

@@ -691,6 +691,7 @@ public class MainActivity extends BaseActivity implements NetWorkObservable.NetW
             initMsgUnReadTips(MyApplication.getInstance().mLoginUser.getUserId());
         }
         requestMyBusiness();
+        Runtime.getRuntime().gc();
     }
 
     @Override

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

@@ -70,16 +70,16 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
     private HListViewOneAdapter hl_adapter;
     private ArrayList<ArrayList<String>> gridlists = new ArrayList<ArrayList<String>>();
     private String gridData = "  [\n" +
-            "[\"颜色\",\"序号\",\"商机阶段\",\"商机数量\",\"商机转化率\"],\n" +
-            "[\"#FF0000\",\"1\",\"152,002\",\"1223\",\"22\"],\n" +
-            "[\"#00CCFF\",\"2\",\"8,775\",\"22\",\"323\"],\n" +
-            "[\"#FFFF00\",\"3\",\"2,000\",\"232\",\"43242\"],\n" +
-            "[\"#00FF00\",\"4\",\"11\",\"12312\",\"232433432\"],\n" +
-            "[\"#FF00FF\",\"5\",\"11\",\"12312\",\"232433432\"],\n" +
-            "[\"#FF9900\",\"6\",\"11\",\"12312\",\"232433432\"],\n" +
-            "[\"#993366\",\"7\",\"11\",\"12312\",\"232433432\"],\n" +
-            "[\"#C0C0C0\",\"8\",\"11\",\"12312\",\"232433432\"],\n" +
-            "[\"#FFCC99\",\"9\",\"11\",\"12312\",\"232433432\"]\n" +
+            "[\"颜色\",\"商机阶段\",\"商机数量\",\"商机转化率\"],\n" +
+            "[\"#FF0000\",\"152,002\",\"1223\",\"22\"],\n" +
+            "[\"#00CCFF\",\"8,775\",\"22\",\"323\"],\n" +
+            "[\"#FFFF00\",\"2,000\",\"232\",\"43242\"],\n" +
+            "[\"#00FF00\",\"11\",\"12312\",\"232433432\"],\n" +
+            "[\"#FF00FF\",\"11\",\"12312\",\"232433432\"],\n" +
+            "[\"#FF9900\",\"11\",\"12312\",\"232433432\"],\n" +
+            "[\"#993366\",\"11\",\"12312\",\"232433432\"],\n" +
+            "[\"#C0C0C0\",\"11\",\"12312\",\"232433432\"],\n" +
+            "[\"#FFCC99\",\"11\",\"12312\",\"232433432\"]\n" +
             "]";
 
     @Override
@@ -114,41 +114,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
         hl_adapter = new HListViewOneAdapter(ct, gridlists);
         lv_grid_dispaly.setAdapter(hl_adapter);
         layout.setVisibility(View.VISIBLE);
-
-
-        List<Integer> moneys = new ArrayList<>();
-        int x1 =444;
-        moneys.add(x1);
-        int x2 = 1;
-        moneys.add(x2);
-        int x3 = 5;
-        moneys.add(x3);
-        int x4 = 1;
-        moneys.add(x4);
-        int x5 = 1;
-        moneys.add(x5);
-        int x6 = 40;
-        moneys.add(x6);
-        int x7 = 5;
-        moneys.add(x7);
-        int x8 = 10;
-        moneys.add(x8);
-        int x9 = 5;
-        moneys.add(x9);
-        ArrayList<String> colors = new ArrayList<>();
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-        colors.add("#CC99FF");
-//        funnelView.setColors(colors);/**/
-        funnelView.setData(moneys, x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9, colors);
-        funnelView.animateY();
-       
+        
     }
 
 
@@ -207,7 +173,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                     if (!chances.isEmpty()) {
                         ArrayList<String> items = new ArrayList<>();
                         items.add("颜色");
-                        items.add("序号");
+                       // items.add("序号");
                         items.add("商机阶段");
                         items.add("商机数量");
                         items.add("商机转化率");
@@ -221,7 +187,7 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                             int count = chances.getJSONObject(i).getInteger("count");
                             items.add("#" + color);
                             colors.add("#" + color);
-                            items.add(String.valueOf(i + 1));
+                           // items.add(String.valueOf(i + 1));
                             items.add(currentprocess);
                             items.add(String.valueOf(count));
                             counts.add(count);
@@ -239,9 +205,9 @@ public class BusinessActivity extends BaseActivity implements View.OnClickListen
                     Log.i(TAG, "handleMessage:countToatal:" + countToatal);
                     if (countToatal==0){//数据为空,显示空视图
                         for (int i=0;i<counts.size();i++){
-                            counts.set(i,8);
+                            counts.set(i,50);
                         }
-                        countToatal=counts.size()*8;
+                        countToatal=counts.size()*50;
                     }
                     funnelView.setData(counts, countToatal, colors);
                     funnelView.animateY();

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

@@ -427,7 +427,8 @@ public class BusinessDetailActivty extends BaseActivity {
                 params.put("condition", "nvl(bc_status,' ')<>'已失效' and nvl(bc_doman,' ')=' ' and bc_nichehouse in (select bd_name from BusinessDataBase where bd_admincode=" +
                         "'" + CommonUtil.getSharedPreferences(ct, "erp_username") + "')");
             } else if (type == 3) {//商机列表
-                params.put("condition", "bc_currentprocess='" + business_steps + "'");
+                params.put("condition", "bc_currentprocess='" + business_steps + "' and bc_domancode='"+
+                CommonUtil.getSharedPreferences(ct,"erp_username")+"'");
             } else {//跟进
                 params.put("condition", "(bc_type='公有' or nvl(bc_type,' ')=' ')");
             }

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

@@ -15,6 +15,7 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSON;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
@@ -189,7 +190,7 @@ public class BusinessLessActivity extends BaseActivity implements View.OnClickLi
                 "\"bcd_date\":\"" + tv_date.getText().toString() + "\",\n" +
                 "\"bcd_bsname\":\"" + process + "\",\n" +
                 "\"bcd_type\":\"" + type + "\",\n" +
-                "\"bcd_man\":\"" + doman + "\"" + (this.type == 1 ? ",\n\"bcd_code\":\"" + bcd_code + "\"\n" : "") +
+                "\"bcd_man\":\"" + MyApplication.getInstance().mLoginUser.getNickName()+ "\"" + (this.type == 1 ? ",\n\"bcd_code\":\"" + bcd_code + "\"\n" : "") +
                 "}";
         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/updatebusinessChanceData.action";
         Map<String, Object> params = new HashMap<>();

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

@@ -336,6 +336,7 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
         sChart.setData(data);
         sChart.setNoDataText("暂时没有数据");
         sChart.invalidate();
+        
     }
 
 
@@ -485,8 +486,8 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                             if (sales.size() != 2) {
                                 //__元/第__名   第一名:__金额:__元
                                 CommonUtil.textAarrySpanForStyle(tv_rank_sale_left,
-                                        "¥__" + "/NO."+"1",
-                                        new String[]{"__","1"},ct.getResources().getColor(R.color.yellow_home)
+                                        "¥__" + "/NO."+"__",
+                                        new String[]{"__"},ct.getResources().getColor(R.color.yellow_home)
                                         );
                                 CommonUtil.textAarrySpanForStyle(tv_rank_sale_right,
                                         "NO.1:" + sales.getJSONArray(0).getString(1)
@@ -499,7 +500,7 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                 
                             } else {
                                 tv_rank_sale_left.setText(sales.getJSONArray(1).getIntValue(0) + "元/第1名");
-                                tv_rank_sale_right.setText("NO.1:" + sales.getJSONArray(0).getString(1)
+                                tv_rank_sale_right.setText("NO._:" + sales.getJSONArray(0).getString(1)
                                         + "¥:" + sales.getJSONArray(1).getIntValue(0) + "");
                                 sales.getJSONArray(1).getIntValue(0);//自己  元
                                 sales.getJSONArray(1).getString(1);//自己
@@ -512,12 +513,12 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                         if (visits.size() != 2) {
                             //名称 拜访次数,拜访个数,排名
                             CommonUtil.textAarrySpanForStyle(tv_rank_visit_left,
-                                    visits.getJSONArray(0).getIntValue(2) + "个/" +
+                                    "__" + "个/" +
                                            /* visits.getJSONArray(0).getIntValue(1) + "次/第"*/
-                                           "NO."+ visits.getJSONArray(0).getIntValue(3) ,
-                                    new String[]{String.valueOf(visits.getJSONArray(0).getIntValue(2))
+                                           "NO."+ "__" ,
+                                    new String[]{"__"
                                           /*  , String.valueOf(visits.getJSONArray(0).getIntValue(1))*/
-                                            , String.valueOf(visits.getJSONArray(0).getIntValue(3))
+                                            , "__"
                                     }, ct.getResources().getColor(R.color.yellow_home));
                             CommonUtil.textAarrySpanForStyle(tv_rank_visit_right,
                                     "NO.1:" + visits.getJSONArray(0).getString(0)
@@ -561,9 +562,9 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                             profits.getJSONArray(1).getIntValue(2);//第一名  元
                         } else {
                             CommonUtil.textAarrySpanForStyle(tv_rank_rirun_left,
-                                    "¥"+profits.getJSONArray(0).getIntValue(0)+ " /NO."+1+"",
-                                    new String[]{String.valueOf(profits.getJSONArray(0).getIntValue(0)
-                                            ),"1"},ct.getResources().getColor(R.color.yellow_home));
+                                    "¥"+"__"+ " /NO.__",
+                                    new String[]{
+                                            "__","__"},ct.getResources().getColor(R.color.yellow_home));
                             CommonUtil.textAarrySpanForStyle(tv_rank_rirun_right,
                                     "NO.1:" + profits.getJSONArray(0).getString(1)
                                             + "/¥" + profits.getJSONArray(0).getIntValue(0) + " "
@@ -586,8 +587,8 @@ public class ClientActivity extends BaseActivity implements View.OnClickListener
                             receivables.getJSONArray(1).getIntValue(2);//第一名  元
                         } else {
                             CommonUtil.textSpanForStyle(tv_rank_income_left,
-                                    "¥"+receivables.getJSONArray(0).getIntValue(0) + "/NO.1"
-                                    , String.valueOf(receivables.getJSONArray(0).getIntValue(0)),
+                                    "¥"+"__" + "/NO.__"
+                                    , "__",
                                     ct.getResources().getColor(R.color.yellow_home));
                             CommonUtil.textAarrySpanForStyle(tv_rank_income_right,
                                     "NO.1:" + receivables.getJSONArray(0).getString(1)

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

@@ -2,7 +2,6 @@ package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
 import android.content.Context;
 import android.os.Bundle;
-
 import android.os.Handler;
 import android.os.Message;
 import android.util.Log;
@@ -12,7 +11,6 @@ import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseAdapter;
-import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
 
@@ -21,7 +19,6 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshGridView;
-import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
@@ -31,9 +28,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 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.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
-import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.wheel.DatePicker;
 
 import java.util.ArrayList;
@@ -172,7 +167,8 @@ public class SalesRankingActivity extends BaseActivity {
                 holder.tv_money= (TextView) convertView.findViewById(R.id.tv_sale_num);
                 holder.tv_name= (TextView) convertView.findViewById(R.id.tv_sale_name);
                 holder.tv_depart= (TextView) convertView.findViewById(R.id.tv_sale_dep);
-               holder.iv_head=(ImageView)convertView.findViewById(R.id.iv_sale_head);
+                holder.iv_head=(ImageView)convertView.findViewById(R.id.iv_sale_head);
+                holder.tv_desc=(TextView)convertView.findViewById(R.id.tv_sale_desc);
                 convertView.setTag(holder);
             } else {
                 holder = (ViewHolder) convertView.getTag();
@@ -181,6 +177,7 @@ public class SalesRankingActivity extends BaseActivity {
             holder.tv_money.setText(mdata.getJSONObject(position).getString("id"));
             holder.tv_depart.setText(mdata.getJSONObject(position).getString("position")
             +"\n"+mdata.getJSONObject(position).getString("depart"));
+            holder.tv_desc.setText(mdata.getJSONObject(position).getString("desc"));
             AvatarHelper.getInstance().display(
                     mdata.getJSONObject(position).getString("imId")
                     , holder.iv_head, true, true);
@@ -191,6 +188,7 @@ public class SalesRankingActivity extends BaseActivity {
         class ViewHolder {
             TextView tv_name;
             TextView tv_depart;
+            TextView tv_desc;
             TextView tv_money;
             ImageView iv_head;
         }
@@ -223,6 +221,7 @@ public class SalesRankingActivity extends BaseActivity {
                         s.put("position",s_position);
                         s.put("depart",s_depart);
                         s.put("imId",s_imid);
+                        s.put("desc","销售总额冠军");
                         
                         int p_id=profits.getIntValue(0);
                         String p_name=profits.getString(1);
@@ -234,6 +233,7 @@ public class SalesRankingActivity extends BaseActivity {
                         p.put("position",p_position);
                         p.put("depart",p_depart);
                         p.put("imId", p_imid);
+                        p.put("desc","毛利润冠军");
                         rootArray.add(0, s);
                         rootArray.add(1, p);
 

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

@@ -248,7 +248,7 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
     private void showPriorityDialog(final EditText et, int type) {
         String[] str = null;
         if (type == 0x11) {//
-            str = new String[]{
+            str = new String[]{"特急",
                     "紧急", "一般", "不紧急"
             };
         } else if (type == 0x12) {

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java

@@ -610,6 +610,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                 viewholder.item_remak.setText(chche.getDepartment());
             } else if (chche.getRemark() != null) {
                 viewholder.item_remak.setText(chche.getRemark());
+                viewholder.item_remak.setVisibility(View.GONE);
             } else {
                 viewholder.item_remak.setText("");
             }

+ 3 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/HListViewOneAdapter.java

@@ -95,18 +95,14 @@ public class HListViewOneAdapter extends BaseAdapter {
 
     public TextView CreateTextView(Context ct){
         TextView tView=new TextView(ct);
-        LinearLayout.LayoutParams tp = new LinearLayout.LayoutParams(CommonUtil.dip2px(ct, 72), LayoutParams.MATCH_PARENT);
-       // tView.setMaxLines(8);
-        //tView.setWidth(CommonUtil.dip2px(ct, 45));
-       // tView.setMaxWidth(CommonUtil.dip2px(ct, 90));
+        LinearLayout.LayoutParams tp = new LinearLayout.LayoutParams(
+                CommonUtil.dip2px(ct, 72),
+                LayoutParams.MATCH_PARENT,1.0f);
         tView.setMinHeight(CommonUtil.dip2px(ct, 40));
-       // tView.setPadding(CommonUtil.dip2px(ct, 0),CommonUtil.dip2px(ct, 0),CommonUtil.dip2px(ct, 10),CommonUtil.dip2px(ct, 0));
-        //tp.setMargins(CommonUtil.dip2px(ct, 2), CommonUtil.dip2px(ct, 0), CommonUtil.dip2px(ct, 10), CommonUtil.dip2px(ct, 0));
         tView.setLayoutParams(tp);
         tView.setGravity(Gravity.CENTER);
         tView.setBackground(ct.getResources().getDrawable(R.drawable.shape_btn_nomargin));
         tView.setTextColor(ct.getResources().getColor(R.color.black));
-        //DisplayUtil.sp2px(ct,6f)
         tView.setTextSize(TypedValue.COMPLEX_UNIT_SP,10);
         return tView;
     }

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninClickFragment.java

@@ -115,7 +115,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                     }
                     break;
                 default:
-                    ToastUtil.showToast(ct, "网络连接失败,请稍后再试");
+                    ct.ToastMessage(message);
                     break;
             }
         }
@@ -421,6 +421,7 @@ public class SigninClickFragment extends EasyFragment implements View.OnClickLis
                 intent = new Intent(ct, LocationMapActivity.class);
                 startActivityForResult(intent, RECODE);
                 break;
+
         }
     }
 

+ 48 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -93,7 +93,6 @@ public class MessageFragment extends EasyFragment {
     private boolean isRefeshed;
     private MainActivity mActivity;
     public static final int REQUESTCODE = 0xa1;
-    public static final String REQUESTCODERe = "MessageFragment";
     //界面更新广播
     private BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() {
         @Override
@@ -175,7 +174,6 @@ public class MessageFragment extends EasyFragment {
     }
 
     private void initView() {
-
         mClearEditText = (ClearEditText) findViewById(R.id.search_edit);
         mClearEditText.addTextChangedListener(new TextWatcher() {
             @Override
@@ -332,6 +330,7 @@ public class MessageFragment extends EasyFragment {
         loadNoticeCount(mActivity);
         loadERPNewsNum(mActivity);
         loadB2bMessageNum();
+        loadNetData(mActivity);
     }
 
 
@@ -680,6 +679,18 @@ public class MessageFragment extends EasyFragment {
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, Constants.SUCCESS_INITDATA, null, null, "get");
     }
 
+    public void loadNetData(Context ct) {
+        //获取网络数据
+        String url = Constants.getAppBaseUrl(ct) + "common/desktop/subs/getSubs.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("count", 100);
+        param.put("condition", "where to_char(createdate_,'yyyymmdd')='" + TimeUtils.int_long_2_str(System.currentTimeMillis()) + "'");
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x16, null, null, "get");
+    }
+
     /**
      * @功能:加载商务信息-本地数据库
      * @author:Arisono
@@ -712,6 +723,27 @@ public class MessageFragment extends EasyFragment {
         @Override
         public void handleMessage(final Message msg) {
             switch (msg.what) {
+                case 0x16:
+                    String message = (String) msg.getData().get("result");
+                    int num = 0;
+                    if (JSON.parseObject(message).containsKey("data")) {
+                        List<SubscriptionMessage> messages = JSON.parseArray(JSON.parseObject(message).getJSONArray("data").toJSONString(), SubscriptionMessage.class);
+                        for (SubscriptionMessage e : messages) {
+                            if (e.getSTATUS_() == 0)
+                                num += 1;
+                        }
+                    }
+                    setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + num);
+                    if (num > 0) {
+                        num_tv.setText(num + "");
+                        num_tv.setVisibility(View.VISIBLE);
+                        content_tv.setText("您有" + num + "条订阅消息未阅读");
+                        time_tv.setText("刚刚");
+                    } else {
+                        num_tv.setVisibility(View.GONE);
+                        content_tv.setText("您暂无未阅读订阅消息");
+                    }
+                    break;
                 case Constants.SUCCESS_LOGIN://公告
                     updateGongGao(msg);
                     break;
@@ -758,18 +790,18 @@ public class MessageFragment extends EasyFragment {
                         schedule_content_tv.setText("您暂无未阅读审批流程");
                     }
                     break;
-                case SUBRICE_MSG:
-                    setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
-                    if (SUBRICE_count > 0) {
-                        num_tv.setText(SUBRICE_count + "");
-                        num_tv.setVisibility(View.VISIBLE);
-                        content_tv.setText("您有" + SUBRICE_count + "条订阅消息未阅读");
-                        time_tv.setText("刚刚");
-                    } else {
-                        num_tv.setVisibility(View.GONE);
-                        content_tv.setText("您暂无未阅读订阅消息");
-                    }
-                    break;
+//                case SUBRICE_MSG:
+//                    setListener(GONGGAO_count + NOTICE_count + NES_count + TASK_count + DAIBAN_count + SUBRICE_count);
+//                    if (SUBRICE_count > 0) {
+//                        num_tv.setText(SUBRICE_count + "");
+//                        num_tv.setVisibility(View.VISIBLE);
+//                        content_tv.setText("您有" + SUBRICE_count + "条订阅消息未阅读");
+//                        time_tv.setText("刚刚");
+//                    } else {
+//                        num_tv.setVisibility(View.GONE);
+//                        content_tv.setText("您暂无未阅读订阅消息");
+//                    }
+//                    break;
             }
         }
     };
@@ -925,8 +957,8 @@ public class MessageFragment extends EasyFragment {
                 }
                 TASK_count = task_num;
                 handler.sendEmptyMessage(TASK_MSG);
-                DAIBAN_count = daiban_num;
-                handler.sendEmptyMessage(DAIBAN_MSG);
+//                DAIBAN_count = daiban_num;
+//                handler.sendEmptyMessage(DAIBAN_MSG);
                 SUBRICE_count = pagin_num;
                 handler.sendEmptyMessage(SUBRICE_MSG);
             }

+ 35 - 45
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/SubscriptionActivity.java

@@ -20,7 +20,6 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSON;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
-import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.message.SortSubsrciprion;
 import com.xzjmyk.pm.activity.bean.message.SubscriptionMessage;
@@ -32,26 +31,24 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.tool.ThreadPool;
 import com.xzjmyk.pm.activity.util.LoadLocalImageUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.MyListView;
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 
 public class SubscriptionActivity extends BaseActivity {
-    private int type = -1;
-    private static final int DINGYUE = 0x1, DINGYUE_DEF = 0x2, DINGYUE_SELECT = 0x3;
+    private static final int LOAD_NET = 0x15;
     private int requestCode = 0x01;
+    private String emCode;
     private String baseUrl;
     private PullToRefreshListView listView;
-    private ArrayList<SubscriptionMessage> SubscriptionMessages;
+    private List<SubscriptionMessage> SubscriptionMessages;
     private SubscriptionAdapter adapter;
     private SubscriptionActivity activity = this;
     private ArrayList<SortSubsrciprion> sortSubsrciprions;
@@ -75,40 +72,38 @@ public class SubscriptionActivity extends BaseActivity {
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
-            String message = (String) msg.getData().get("result");
-            if (msg.what == 2) {
-                try {
-                    JSONObject object = new JSONObject(message);
-                    JSONArray array = object.getJSONArray("data");
-                    SubscriptionMessages = (ArrayList<SubscriptionMessage>) JSON.parseArray(array.toString(), SubscriptionMessage.class);
-                    setData();
-                } catch (JSONException e) {
-                    e.printStackTrace();
-                }
-            } else if (Constants.APP_SOCKETIMEOUTEXCEPTION == msg.what) {
-                //错误信息
-                if (listView != null)
-                    listView.onRefreshComplete();
-            } else if (msg.what == RESULT_OK) {
-                if (adapter == null) {
-                    adapter = new SubscriptionAdapter();
-                    listView.getRefreshableView().setAdapter(adapter);
-                } else {
-                    notifyAdapter();
-                }
+            if (listView != null && listView.isRefreshing())
                 listView.onRefreshComplete();
+            switch (msg.what) {
+                case LOAD_NET:
+                    String message =   msg.getData().getString("result");
+                    if (message != null && JSON.parseObject(message).containsKey("data")) {
+                        String str = JSON.parseObject(message).getJSONArray("data").toJSONString();
+                        SubscriptionMessages = JSON.parseArray(str, SubscriptionMessage.class);
+                        setData();
+                    } else {
+                        ToastUtil.showToast(ct, message == null ? "" : message);
+                    }
+                    break;
+                case RESULT_OK:
+                    if (adapter == null) {
+                        adapter = new SubscriptionAdapter();
+                        listView.getRefreshableView().setAdapter(adapter);
+                    } else {
+                        notifyAdapter();
+                    }
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    ToastUtil.showToast(ct,"系统内部错误");
+                    break;
+                default:
             }
+
+
         }
     };
-    String mLoginUserId;
-    private String emCode;
 
 
-    @Override//设置右划退出
-    public void setTouch(boolean b) {
-        super.setTouch(false);
-    }
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
 //        getMenuInflater().inflate(R.menu.menu_subscription, menu);
@@ -137,9 +132,7 @@ public class SubscriptionActivity extends BaseActivity {
     private void initView() {
         listView = (PullToRefreshListView) findViewById(R.id.listview);
         listView.setMode(PullToRefreshBase.Mode.BOTH);
-        View aa = LayoutInflater.from(this).inflate(R.layout.subscrip_emptyview, null);
-        getSupportActionBar().setCustomView(aa);
-        listView.setEmptyView(aa);
+        listView.setEmptyView(R.layout.subscrip_emptyview);
         listView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
@@ -174,7 +167,6 @@ public class SubscriptionActivity extends BaseActivity {
     }
 
     private void init() {
-        mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         baseUrl = CommonUtil.getSharedPreferences(this, "erp_baseurl");
         emCode = CommonUtil.getSharedPreferences(mContext, "erp_username") + CommonUtil.getSharedPreferences(mContext, "erp_master");
         //第一次进来获取数据库
@@ -185,7 +177,6 @@ public class SubscriptionActivity extends BaseActivity {
         calendar.set(Calendar.SECOND, 0);
         newlong = calendar.getTimeInMillis();
         SubscriptionMessages = SubscriptionDao.getInstance().findByDate(newlong, newlong + daylong, emCode);
-
         if (SubscriptionMessages != null && SubscriptionMessages.size() > 0) {//当天数据库有数据
             loadMore();
         } else {//当天数据库没有数据
@@ -281,14 +272,13 @@ public class SubscriptionActivity extends BaseActivity {
         }
         if (isRef) refresh();
         else loadMore();
-
     }
 
     private void clearDataToDB(long newlong, long date) {
-        SubscriptionDao.getInstance().deleteMessage(newlong, date, emCode);
+        long i = SubscriptionDao.getInstance().deleteMessage(newlong, date, emCode);
     }
 
-    private void saveDataToDB(ArrayList<SubscriptionMessage> subscriptionMessages) {
+    private void saveDataToDB(List<SubscriptionMessage> subscriptionMessages) {
         SubscriptionDao.getInstance().addMessage(subscriptionMessages, emCode);
     }
 
@@ -318,7 +308,7 @@ public class SubscriptionActivity extends BaseActivity {
         param.put("sessionId", CommonUtil.getSharedPreferences(this, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(this, "sessionId"));
-        ViewUtil.httpSendRequest(this, url, param, handler, headers, 2, null, null, "get");
+        ViewUtil.httpSendRequest(this, url, param, handler, headers, LOAD_NET, null, null, "get");
     }
 
     //外层list

+ 62 - 50
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/FunnelView.java

@@ -24,23 +24,33 @@ import java.util.List;
  */
 @SuppressLint("NewApi")
 public class FunnelView extends View implements ValueAnimator.AnimatorUpdateListener {
+    
     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 float mLastX;
+    private float mLastY;
+    private float mLastWidth;
+    private int maxHight;
+    
     private Paint mPaintLine;
     private Paint mPaintText;
-    private float mTotalHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, getResources().getDisplayMetrics());
+    private ObjectAnimator xAnimator;
+    private ObjectAnimator alphaAnimator;
+    private List<Integer> mMoneys = new ArrayList<>();
+    private ArrayList<Paint> mPaints = new ArrayList<>();
+    private ArrayList<String> colors = new ArrayList<>();
+    
     private ArrayList<Float> mPathHeights = new ArrayList<>();
     private ArrayList<Float> mPathAngleWidths = new ArrayList<>();
-
+    
+    private float mTotalHeight = 
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 250, 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());
+            TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 120, getResources().getDisplayMetrics());
     private float minLineH = 
             TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 0, getResources().getDisplayMetrics());
 
@@ -53,12 +63,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
             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) {
         this(context, null);
     }
@@ -71,21 +76,30 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         super(context, attrs, defStyleAttr);
         init();
     }
-
-    public void setColors(ArrayList<String> colors) {
-        this.colors = colors;
-    }
-
-    public void setData(List<Integer> moneys, int maxMoney,ArrayList<String> colors) {
+    
+    public  void setData(List<Integer> moneys, int maxMoney,ArrayList<String> colors) {
         this.mMoneys = moneys;
         this.maxMoney = maxMoney;
         this.colors=colors;
+        stopAnimator();
         init();
         calculate();
+        getMaxHight();
         requestLayout();
     }
 
-    private void calculate() {
+    private  void   getMaxHight() {
+        Log.i("FunnelMain2", JSON.toJSONString(mPathHeights));
+        for (int i=0;i<mMoneys.size();i++){
+            if (i==0) {
+                maxHight = (int) (startOffsetY + mPathHeights.get(i));
+            }else{
+                maxHight =(int)(maxHight+ mPathHeights.get(i));
+            }
+        }
+    }
+
+    private  void  calculate() {
         Log.i("Arison", "setData:moneys:" + JSON.toJSONString(mMoneys));
         Log.i("Arison", "setData:maxMoney:" + maxMoney);
         mPathHeights.clear();
@@ -99,16 +113,15 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
             } else if (mPathHeight > maxLineH * phaseX) {
                 mPathHeight = maxLineH * phaseX;
             }
-            mPathHeights.add(i,mPathHeight);
+            mPathHeights.add(i, mPathHeight);
             Float mPathAngleWidth = mPathHeight / ANGLE_SCALE;
-            mPathAngleWidths.add(i,mPathAngleWidth);
+            mPathAngleWidths.add(i, mPathAngleWidth);
         }
     }
 
     private void init() {
         mPaints.clear();
         for (int i = 0; i < mMoneys.size(); i++) {
-            Log.i("FunnelView", "init:" + i);
             Paint mPaint = new Paint();
             mPaint.setColor(Color.parseColor(colors.get(i)));
             mPaint.setStyle(Paint.Style.FILL);
@@ -128,7 +141,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         mPaintText.setTextAlign(Paint.Align.LEFT);
     }
 
-    Path mPath;
+   private Path mPath;
     
     private void draw2(Canvas canvas, Paint mPaint, Float mPathAngleWidth, Float mPathHeight,int i) {
         if (i==0){
@@ -147,7 +160,8 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         mLastX = mLastX + mPathAngleWidth;
         mLastY = mLastY + mPathHeight;
     }
-
+    
+   
 
     @Override
     protected void onDraw(Canvas canvas) {
@@ -155,23 +169,30 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         for (int i = 0; i < mMoneys.size(); i++) {
             draw2(canvas, mPaints.get(i), mPathAngleWidths.get(i), mPathHeights.get(i),i);
         }
-        maxHight = Math.round(mLastY);
-      //  drawText9(canvas);
     }
-
+    
     public void animateY() {
-        ObjectAnimator xAnimator = ObjectAnimator.ofFloat(this, "phaseX", 0, 1);
+         xAnimator = ObjectAnimator.ofFloat(this, "phaseX", 0, 1);
         xAnimator.setDuration(2000);
         xAnimator.addUpdateListener(this);
         xAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
         xAnimator.start();
 
-        ObjectAnimator alphaAnimator = ObjectAnimator.ofInt(this, "textAlpha", 0, 255);
+        alphaAnimator = ObjectAnimator.ofInt(this, "textAlpha", 0, 255);
         alphaAnimator.setDuration(2000);
         alphaAnimator.addUpdateListener(this);
         alphaAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
         alphaAnimator.start();
     }
+    
+    private void stopAnimator(){
+        if (xAnimator!=null&&alphaAnimator!=null)
+          if (xAnimator.isRunning()) {
+            xAnimator.end();
+            alphaAnimator.end();
+         }
+    }
+    
 
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
@@ -179,8 +200,7 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         setMeasuredDimension(getMeasuredLength(widthMeasureSpec, true),
                 getMeasuredLength(heightMeasureSpec, false));
     }
-
-
+    
     private int getMeasuredLength(int length, boolean isWidth) {
         int specMode = MeasureSpec.getMode(length);
         int specSize = MeasureSpec.getSize(length);
@@ -188,11 +208,8 @@ 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  );
+            size = maxHight+(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, getResources().getDisplayMetrics());
+            Log.i("FunnelMain", "onMeasure:"+ size);
         }
         return size;
     }
@@ -213,21 +230,16 @@ public class FunnelView extends View implements ValueAnimator.AnimatorUpdateList
         this.textAlpha = textAlpha;
     }
 
-
     @Override
     public void onAnimationUpdate(ValueAnimator animation) {
-        calculate();
-        postInvalidate();
+        Log.i("Animation", "onAnimationUpdate:动画更新...." );
+            calculate();
+            postInvalidate();
     }
-
-
-    private void drawText9(Canvas canvas) {
-        Paint.FontMetrics fontMetrics = mPaintText.getFontMetrics();
-        float fontTotalHeight = fontMetrics.bottom - fontMetrics.top;
-        float offY = fontTotalHeight / 2 - fontMetrics.bottom;
-        canvas.drawText("销售漏斗", mLastX + mLastWidth - mPathAngleWidths.get(mPathAngleWidths.size()-1) + 3 * textStartOffsetX, mLastY -
-                mPathHeights.get(mPathHeights.size()-1) / 2 + offY, mPaintText);
+    @Override
+    protected void onAnimationEnd() {
+        super.onAnimationEnd();
+        Log.i("Animation", "onAnimationUpdate:动画结束....");
+        maxHight=0;
     }
-
-
-}
+}

+ 1 - 1
WeiChat/src/main/res/layout/activity_task_add.xml

@@ -69,7 +69,7 @@
             <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
                 android:id="@+id/tv_executive"
                 style="@style/form_relative_right_text"
-                android:drawableRight="@drawable/nav_icon_search_default"
+             
                 android:hint="请选择"
                 editTextFormExample:testType="nocheck" />
         </RelativeLayout>

+ 1 - 0
WeiChat/src/main/res/layout/fragment_outoffice.xml

@@ -57,6 +57,7 @@
             android:layout_alignBottom="@+id/name_tv"
             android:layout_marginLeft="5dp"
             android:layout_toRightOf="@+id/tv"
+            android:paddingBottom="5dp"
             android:text="0 "
             android:textColor="@color/mainList2"
             android:textSize="25dp" />

+ 1 - 0
WeiChat/src/main/res/layout/item_grid_tv.xml

@@ -4,6 +4,7 @@
     android:id="@+id/ll_root"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:weightSum="4"
     android:background="@color/gray_light"
     android:orientation="horizontal" >
 </LinearLayout>